Thiết Kế Vi Xử Lý RISC-V RV32I và Khối Điều Khiển JTAG Trên FPGA

Khóa luận tốt nghiệp nghiên cứu tốt nghiệp kỹ thuật máy tính thiết kế lõi vi xử ký risc v rv32i tích hợp khối điều khiển jtag ứng, vận dụng lý thuyết vào thực tế, đề xuất giải

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

82
21
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

1.1. Các nghiên cứu liên quan

1.2. Mục tiêu đề tài

1.3. So sánh thiết kế với khóa luận trước

2. CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC GIAO TIẾP JTAG

2.1. Giới thiệu tổng quan về JTAG

2.2. Lịch sử phát triển

2.3. Ứng dụng

3. CHƯƠNG 3: THIẾT KẾ LÕI ĐIỀU KHIỂN JTAG - TAP

3.1. Tổng quan thiết kế JTAG

3.2. Mô tả thiết kế

3.3. Nguyên lý hoạt động cơ bản của JTAG

3.4. Bộ điều khiển TAP — TAP Controller

3.5. Quá trình điều khiển thanh ghi

3.6. Lệnh SAMPLE/PRELOAD

4. CHƯƠNG 4: QUY TRÌNH THIẾT KẾ LÕI VI XỬ LÝ RV32I

4.1. Giới thiệu RISC-V RV32I

4.2. Lịch sử phát triển

4.3. Lợi ích của việc sử dụng RISC-V

4.4. Quá trình Pipeline

4.5. Xung đột dữ liệu (data hazard) và xung đột điều khiển (Control hazard)

4.6. Tổng quan thiết kế RISC-V

4.7. Chu kỳ nạp lệnh (FETCH CYCLE), giải mã lệnh (DECODE CYCLE), thực thi (EXECUTE CYCLE), truy xuất bộ nhớ (MEMORY CYCLE), ghi kết quả (WRITE-BACK CYCLE)

4.8. Mô phỏng kiểm tra hoạt động

5. CHƯƠNG 5: THIẾT KẾ TỔNG HỢP

5.1. Mô hình thiết kế tổng hợp

6. CHƯƠNG 6: KỊCH BẢN KIỂM TRA THIẾT KẾ

6.1. Hiện thực kịch bản kiểm tra

7. CHƯƠNG 7: KẾT QUẢ ĐỀ TÀI

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

TÓM TẮT KHÓA LUẬN

Tóm tắt

I. Giới thiệu tổng quan về thiết kế vi xử lý RISC V RV32I

Thiết kế vi xử lý RISC-V RV32I đang trở thành xu hướng trong lĩnh vực vi mạch nhờ vào tính linh hoạt và khả năng mở rộng. RISC-V là một kiến trúc tập lệnh mở, cho phép các nhà phát triển tùy chỉnh và tối ưu hóa theo nhu cầu cụ thể. Việc áp dụng RISC-V trong thiết kế vi xử lý không chỉ giúp giảm chi phí mà còn nâng cao hiệu suất. Bài viết này sẽ đi sâu vào các khía cạnh quan trọng của thiết kế RISC-V RV32I.

1.1. Lịch sử phát triển của RISC V

RISC-V được phát triển từ những năm 2010 tại Đại học California, Berkeley. Kiến trúc này đã nhanh chóng thu hút sự chú ý của cộng đồng nghiên cứu và công nghiệp nhờ vào tính mở và khả năng tùy biến cao.

1.2. Lợi ích của việc sử dụng RISC V

Việc sử dụng RISC-V mang lại nhiều lợi ích như giảm chi phí phát triển, khả năng tùy chỉnh cao và hỗ trợ cho các ứng dụng nhúng. Điều này giúp các nhà phát triển dễ dàng tích hợp và tối ưu hóa thiết kế của mình.

II. Thách thức trong thiết kế vi xử lý RISC V RV32I

Mặc dù RISC-V mang lại nhiều lợi ích, nhưng việc thiết kế vi xử lý RV32I cũng gặp phải một số thách thức. Các vấn đề như xung đột dữ liệu, xung đột điều khiển và tối ưu hóa hiệu suất là những vấn đề cần được giải quyết. Bài viết này sẽ phân tích các thách thức chính trong thiết kế RISC-V.

2.1. Xung đột dữ liệu trong RISC V

Xung đột dữ liệu xảy ra khi hai hoặc nhiều lệnh cố gắng truy cập cùng một dữ liệu trong cùng một thời điểm. Điều này có thể làm giảm hiệu suất của vi xử lý và cần được xử lý thông qua các kỹ thuật như pipeline.

2.2. Xung đột điều khiển trong RISC V

Xung đột điều khiển xảy ra khi có sự thay đổi trong luồng điều khiển, ví dụ như khi một lệnh nhảy được thực hiện. Việc quản lý xung đột điều khiển là rất quan trọng để đảm bảo tính chính xác của chương trình.

III. Phương pháp thiết kế vi xử lý RISC V RV32I hiệu quả

Để thiết kế vi xử lý RISC-V RV32I hiệu quả, cần áp dụng các phương pháp tối ưu hóa và kỹ thuật hiện đại. Việc sử dụng mô hình hóa và mô phỏng là rất quan trọng trong quá trình thiết kế. Bài viết này sẽ trình bày các phương pháp chính trong thiết kế RISC-V.

3.1. Mô hình hóa thiết kế vi xử lý

Mô hình hóa giúp các nhà phát triển hình dung và kiểm tra thiết kế trước khi thực hiện. Sử dụng ngôn ngữ mô tả phần cứng như VHDL hoặc Verilog là rất phổ biến trong quá trình này.

3.2. Tối ưu hóa hiệu suất thiết kế

Tối ưu hóa hiệu suất có thể đạt được thông qua việc sử dụng các kỹ thuật như pipelining, superscalar và out-of-order execution. Những kỹ thuật này giúp tăng tốc độ xử lý và giảm thời gian thực thi.

IV. Khối điều khiển JTAG và ứng dụng trong thiết kế RISC V

Khối điều khiển JTAG là một phần quan trọng trong thiết kế vi xử lý RISC-V. Nó cho phép kiểm tra, gỡ lỗi và nạp chương trình vào vi xử lý một cách hiệu quả. Bài viết này sẽ khám phá vai trò của JTAG trong thiết kế RISC-V.

4.1. Giới thiệu về giao thức JTAG

Giao thức JTAG (Joint Test Action Group) là một chuẩn giao tiếp được sử dụng để kiểm tra và gỡ lỗi các vi mạch. Nó cho phép truy cập vào các thành phần nội bộ của vi xử lý, giúp việc kiểm tra trở nên dễ dàng hơn.

4.2. Ứng dụng của JTAG trong thiết kế RISC V

JTAG được sử dụng để nạp chương trình vào vi xử lý RISC-V và kiểm tra các kết nối bên trong. Điều này giúp đảm bảo rằng thiết kế hoạt động đúng và hiệu quả.

V. Kết quả nghiên cứu và ứng dụng thực tiễn

Kết quả nghiên cứu về thiết kế vi xử lý RISC-V RV32I và khối điều khiển JTAG cho thấy những cải tiến đáng kể trong hiệu suất và khả năng kiểm tra. Các ứng dụng thực tiễn của thiết kế này đang ngày càng mở rộng. Bài viết này sẽ trình bày các kết quả nghiên cứu và ứng dụng thực tiễn.

5.1. Kết quả thực nghiệm từ thiết kế

Các thử nghiệm cho thấy vi xử lý RISC-V RV32I hoạt động ổn định và hiệu quả. Thời gian thực thi các lệnh được cải thiện đáng kể so với các thiết kế trước đó.

5.2. Ứng dụng trong ngành công nghiệp

Thiết kế vi xử lý RISC-V RV32I và khối điều khiển JTAG đã được áp dụng trong nhiều lĩnh vực như điện tử tiêu dùng, ô tô và thiết bị y tế. Điều này cho thấy tính khả thi và tiềm năng phát triển của công nghệ này.

VI. Kết luận và tương lai của thiết kế vi xử lý RISC V

Thiết kế vi xử lý RISC-V RV32I và khối điều khiển JTAG đang mở ra nhiều cơ hội mới trong lĩnh vực vi mạch. Tương lai của công nghệ này hứa hẹn sẽ mang lại nhiều cải tiến và ứng dụng mới. Bài viết này sẽ tóm tắt những điểm chính và dự đoán về tương lai của thiết kế RISC-V.

6.1. Tóm tắt những điểm chính

Thiết kế RISC-V RV32I và JTAG đã chứng minh được tính hiệu quả và khả năng mở rộng. Những thách thức trong thiết kế đã được giải quyết thông qua các phương pháp hiện đại.

6.2. Dự đoán về tương lai

Với sự phát triển không ngừng của công nghệ, thiết kế vi xử lý RISC-V sẽ tiếp tục được cải tiến và ứng dụng rộng rãi hơn trong các lĩnh vực khác nhau. Điều này sẽ thúc đẩy sự phát triển của ngành công nghiệp vi mạch.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế lõi vi xử ký risc v rv32i tích hợp khối điều khiển jtag ứng dụng vào việc nạp lệnh chương trình trên fpga

Trích đoạn nội dung tài liệu

Đặt vấn đề Ngày nay, các thiết kế vi mạch có số lượng chân lớn ngày càng phô biến và mật độ tích hợp các linh kiện trên một bo mạch ngày cảng tăng cao. Di kèm với đó là vấn đề kiểm tra, kiểm thử thiết kế trở nên phức tạp, cần được cải thiển với độ chính xác cao và tốn it thời gian hơn. Do đó, các phương pháp kiểm tra thiết kế dan được hoàn thiện và tạo thành một hệ thống sỡ lỗi hoàn chỉnh. Hệ thống này cho phép người dùng kiểm tra, gỡ lỗi trực tiếp trên thiết kế.

Hệ thống gỡ lỗi có thiết kế phức tạp và được chia làm hai hệ thống chính: phần mềm và phần cứng. Phần mềm được thiết kế nhằm tạo nên một môi trường cho phép người dùng dé dàng kiểm tra gỡ lỗi. Đối với phần cứng thì được thiết kế như một hệ thống SoC bao gồm cả thiết kế cần kiểm tra. Hai hệ thống này được thiết kế tách biệt hoàn toàn với nhau, dé hai hệ thống này có thé giao tiếp với nhau người ta thường sử dụng một chuẩn giao thức được gọi là JTAG.

Nhiều hệ thống gỡ lỗi ngày nay chủ yếu sử dụng chuẩn giao thức JTAG này, nhờ có nó nên nhiều phương pháp kiểm tra hiện này có độ chính xác cao và giúp tiết kiệm thời gian và chi phí khi kiểm tra. Các nghiên cứu liên quan Ngày nay, giao thức JTAG được sử dụng rất phô biến, ứng dụng của nó hầu hết nằm trong các hệ thống SoC, hệ thống gỡ lỗi. Các nghiên cứu ứng dụng JTAG hầu hết đều có thiết kế theo chuẩn IEEE 1149. Hiện nay, trong nước ta chưa có bai viết nghiên cứu ứng dụng JTAG cụ thể, tuy nhiên có một số bài viết giới thiệu về JTAG.

Bài viết của tác giả Nguyễn Quân vào năm 2019 trên trang blog cá nhân, giới thiệu về JTAG, ứng dụng và các kiến thức liên quan khác. Ngoài ra, bài viết còn trình bày ứng dụng lập trình bộ nhớ trên 3 chip tích hợp với giao thức JTAG, ứng dụng nay gan tương tự với một hệ thống gỡ lỗi phan cứng. Với các nghiên cứu ở nước ngoài hầu hết đều có ứng dụng cụ thể. Như bài nghiên cứu có tên “A High-Performance SoC Debug Platform” của nhóm tác giả Kuo-Kai Liu, Wen-Hsuan Hsu & Kuen-Jong Lee được công bố vào năm 2015, nghiên cứu trình bay một hệ thống gỡ lỗi hoàn chỉnh được nhóm tác giả hoàn thiện.

Hệ thống này là một ứng dụng phô biến của JTAG hiện nay. Bên cạnh đó, trong thư viện các đề tài khóa luận đã tốt nghiệp của Khoa Kỹ thuật Máy tính — Trường Dai học Công nghệ Thông tin cũng có một nghiên cứu về JTAG-TAP hỗ trợ cho vi xử lý MIPS-32bits của tác giả Chướng Sec Váy. Ở nghiên cứu này, nhóm sẽ dựa trên thiết kế của anh Chướng Sec Váy để đánh giá so sánh về mức độ cải tiên của đê tài. Mục tiêu đề tài Tìm hiểu, nghiên cứu chức năng hoạt động, đồng thời kiêm tra chức năng thiết kế JTAG-TAP.

Thiết kế lõi vi xử ly RISC-V RV32I, sau đó kiểm tra chức năng hoạt động của thiết kế. Tích hợp khối điều khiên JTAG-TAP với lõi vi xử lý RISC-V RV32I, thiết kế các lệnh phù hợp trên lõi điều khiên JTAG-TAP nhằm hỗ trợ cho việc nạp lệnh chương trình và gỡ lỗi của lõi vi xử lý RISC-V. Xây dựng test-bench, test case dé kiểm tra hoạt động toàn bộ thiết kế. Khi đã chắc chăn thiết kế hoạt động đúng, tiễn hành viết code cho module Arduino Nano nhằm điều khiển I/O port của FPGA.

Hiện thực và tối ưu kết quả trên board mach FPGA. Ở đây nhóm sử dụng board mạch DE2 Cyclone II của tập đoàn Altera. So sánh thiết kế với khóa luận trước Đặc điểm nghiên cứu | Khóa luận trước Thiết kế này FPGA Virtex 7 DE2 Cyclone II Tần số 55,6 MHz Cao hơn khóa luận trước Chức năng Chỉ hỗ trợ debug | Hỗ trợ nạp lệnh và debug Chương 2. TONG QUAN VE GIAO THUC GIAO TIẾP JTAG 2.

Giới thiệu tổng quan về JTAG Giao thức JTAG là cách gọi ngắn gọn theo tên của nhóm tạo ra chuẩn giao tiếp này. Tên chính thức của chuẩn giao tiếp này là “IEEE Standard Test Access Port and Boundary Scan Architecture”. Trong đó, hai nội dung chính được đề cập: e Nội dung về TAP quy định giao tiếp và hoạt động của TAP trên chip. e Boundary Scan quy định một phương pháp và cách thức kiểm tra các kết nối bên trong chip và các chân trên bo mach in.

JTAG là một giao thức được sử dụng trong việc kiểm tra, nạp chương trình và gỡ lỗi các vi mạch số. Nó cung cấp khả năng truy cập và điều khiển các thành phần nội bộ của một hệ thống số, bao gồm vi xử lý, bộ nhớ và các thiết bị ngoại vi. Giao thức JTAG sử dụng các tín hiệu đồng bộ để truyền dữ liệu và kiểm soát trạng thái của các thành phần. TAG-TAP cho phép truy cập và điều khién các thành phan nội bộ của một hệ thống số thông qua các tín hiệu và trạng thái đã đề cập.

Nó được sử dụng rộng rãi trong việc nạp chương trình vào vi điều khién và FPGA kiểm tra lỗi và gỡ lỗi vi mạch số, thậm chí trong việc phân tích và đọc lại các thiết kế vi mạch. JTAG-TAP cung cấp khả năng truy cập đầy đủ vào các thành phần nội bộ của một vi mạch sé, bao gồm thanh ghi dữ liệu (data registers), thanh ghi chỉ thi (instruction registers), các mạch kiểm tra logic (logic test circuits) và các thành phần khác. Nó cho phép lập trình, đọc và ghi dữ liệu vào các thanh ghi, kiểm tra và điều khiển các tín hiệu nội bộ, thậm chí thay đổi cấu hình của vi mạch. Tính linh hoạt và khả năng truy cập mạnh mẽ của JTAG-TAP đã làm cho nó trở thành một công cụ quan trọng trong việc xây dựng, kiểm tra và gỡ lỗi các hệ thống số phức tạp.

Nó được sử dụng trong nhiều lĩnh vực như thiết kế vi mạch, sản xuất, nghiên cứu và phát triên phân mêm nhúng. Lịch sử phát triển Vào những năm 80 của thé ki 20, mach in nhiều lớp, mạch tích hợp với số lượng chân lớn có dạng đóng gói ở dạng mạng lưới như ball grid array hoặc pin grid array và các bo mạch in có tích hợp số lượng lớn linh kiện ngày càng phổ biến. Do đó, khiến việc kiểm tra kết nối của chip trên bo mạch phức tạp, tốn nhiều thời gian và khó sử dụng phương pháp đầu dò (probe) thông thường. Bên cạnh đó, tại thời điểm này, việc kiểm tra một bo mạch chủ yếu dựa vào hai phương pháp Bed-of-nails và kiểm tra chức năng (function test).

Bed-of-nails, tạm dịch là “nền đinh”. Phương pháp này kiểm tra bo mạch bang cách đặt bo mach cần kiểm tra lên trên nền đỉnh hay còn gọi là đầu do, tiếp xúc trực tiếp với các điểm kiểm tra trên bo mạch đề thực hiện việc kiểm tra. Kiểm tra chức năng là việc kiểm tra khả năng hoạt động của một linh kiện bằng cách đưa các mẫu (giá trị) kiểm tra đến linh kiện cần kiểm tra và giám sát các đáp ứng từ linh kiện này. Việc chỉ sử dụng hai phương pháp trên làm thời gian kiểm tra lâu, chi phí cao.

Năm 1985, tô chức Joint Test Action Group được thành lập và bat đầu phát triển một tiêu chuẩn giải quyết các van đề trên. Giữa năm 1986 và 1988, tiêu ban kỹ thuật JTAG (JTAG Technical Subcommittee) đã phát triển và công bố một nhóm các đề xuất về dạng chuẩn của boundary-scan. Trong năm 1988, JTAG được quyết định sẽ trở thành nền tảng của một tiêu chuẩn trong họ Bus kiểm tra (Testability Bus) va dự án P1149.1 được khởi động. Vào thang 2 năm 1990, chuẩn giao tiếp này được phê duyệt lần đầu tiên và được tiếp tục chỉnh sửa, nâng cấp và hoàn thiện.

Tháng 6 năm 1993, phiên bản IEEE Std 1149.1-1193 được chấp nhận với những bổ sung thêm: e Hai lệnh tùy chon là CLAMP và HIGH-Z. e Cơ chế cho phép chuyển đổi chế độ hoạt động của một thành phan (component) tương thích chuẩn này sang một cơ chế DFT khác. Tháng 9 năm 1994, phiên bản IEEE Std 1149.1b-1994 được chấp nhận. Bản này bổ sung thêm phụ lục về ngôn ngữ mô tả Boundary-scan (Boundary-Scan Description Language).

Phiên bản mới nhất được sử dụng cho tới ngày nay là IEEE 1149. Phiên bản này có nhiêu bô sung hơn so với các phiên bản trước đó: Các lệnh mới của JTAG: CLAMP_HOLD, TMP_STATUS, CLAMP_RELEASE, ECIDCODE, INIT_ SETUP, INIT_SETUP_CLAMP, INIT_RUN, IC_RESET. Phu luc C về ngôn ngữ mô ta thủ tục PDL (Procedural Description Language), một ngôn ngữ mới ghi lai các yêu cầu về thủ tục và dit liệu cho các lệnh mới. Phụ lục D trình bày thêm các ví dụ cho BSDL và PDL khi sử dụng cùng nhau.

Phụ lục E đưa ra một số ví dụ pseudo-code về việc thực thi của lệnh iApply trong PDL, một lệnh phức tạp nhất trong các lệnh mới của PDL. Một số chỉnh sửa bổ sung khác. Ứng dụng So với các phương pháp kiểm tra trước đó, phương pháp sử dụng giao thức giao tiếp JTAG có nhiều ưu điểm hơn như: Số lượng chân giao tiếp ít. Hoạt động của giao thức đơn giản làm cho thiết kế phần cứng cũng như lập trình phần mềm đơn giản hơn.

Tính linh động, cho phép tích hợp nhiều chức năng riêng. Với những ưu điểm trên, JTAG được sử dụng rộng rãi với nhiều mục đích như: Program - Nạp chương trình cho chip. Chip test - Kiểm tra kết nói và hoạt động bên trong chip sau khi chế tạo thông qua việc điều khiển các thành phan DFT của chip. Debug - hoạt động của chip trong quá trình phát triển phần mềm, firmware và software.

Connection test - Kiểm tra kết nói khi chip tích hợp trên bo mạch in. THIẾT KE LOI DIEU KHIỂN JTAG - TAP 3. Tống quan thiết kế JTAG 3. Mô tả thiết kế Thiết kế của chuẩn giao tiếp JTAG dựa theo chuan IEEE 1149.1 có sơ đồ kiến trúc được mô tả như Hình 3.

Device TD Register š (DR) š User Data Register - xn 1 (DR) > 1 ser Data Register- n (DR) Instruction Decoder TDI TAP Controller TCK TMS Hình 3. So đồ thiết kế chuẩn giao tiếp JTAG Kiến trúc của chuẩn giao tiếp JTAG bao gồm các thành phan chính sau đây: © Các chân giao tiếp JTAG được gọi là TAP bao gồm các chân: TCK, TMS, TRST, TDI, TDO. e TAP Controller- bộ điều khiển chính của thiết kế. Các tín hiệu điều khiển từ bus master sẽ được bộ điều khiển này nhận và tạo ra các tín hiệu điều khiến cho các thanh ghi và các thành phần khác.

e Thanh ghi lệnh — IR, thành phan lưu trữ lệnh điều khiển của JTAG.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ