Mô Phỏng và Hiện Thực CPU 32-Bit RISC-V Trên FPGA

Khóa luận trình bày mô phỏng và hiện thực hóa CPU RISC-V 32 bit trên FPGA, khám phá ứng dụng và hiệu suất trong kỹ thuật máy tính.

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

2022

80
19
5

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU VỀ KIẾN TRÚC TẬP LỆNH

1.1. Tổng quan về kiến trúc tập lệnh RISC-V

1.2. Các kiến trúc tập lệnh

1.3. Chi tiết kiến trúc tập lệnh RISC-V

1.4. Thiết kế hệ thống của CPU

2. CHƯƠNG 2: THIẾT KẾ VI XỬ LÝ RISC-V 32-BIT

2.1. Tổng quan thiết kế vi xử lý

2.2. Lý thuyết về xung đột (Pipeline hazard)

2.3. Xung đột cấu trúc (Structure hazard)

2.4. Xung đột dữ liệu (Data hazard)

2.5. Xung đột điều khiển (Control/Branch hazard)

2.6. Các khối chức năng có trong vi xử lý thông qua từng giai đoạn

2.7. THIẾT KẾ VI XỬ LÝ RISC-V 32-BIT VỚI GIAO THỨC AXI4

3. CHƯƠNG 3: ĐÓNG GÓI VI XỬ LÝ RISC-V VỚI GIAO THỨC AXI4

3.1. Kiến trúc vi xử lý trước khi đóng gói

3.2. Kiến trúc vi xử lý khi đóng gói thành IP

3.3. Giao thức AXI4

3.4. Tổng quan giao thức

3.5. Các tín hiệu cụ thể của giao thức AXI4 trong khóa luận

4. CHƯƠNG 4: THIẾT KẾ BLOCK DESIGN TRÊN VIVADO

4.1. Tổng quan thiết kế Block Design

4.2. Thiết kế trên Vivado

4.3. Các IP của Xilinx dự kiến dùng trong thiết kế Block Design

4.4. IP Memory Interface Generator (MIG 7 Series)

4.5. IP Central Direct Memory Access (IP CDMA)

4.6. IP AXI Bram Controller

5. CHƯƠNG 5: MÔ PHỎNG VÀ ĐÁNH GIÁ THIẾT KẾ

5.1. Kịch bản kiểm thử trên FPGA

5.2. Mô phỏng chức năng

5.3. Kết quả mô phỏng

5.4. Đánh giá thiết kế

5.5. Kết quả tổng hợp

5.6. Đánh giá thiết kế và so sánh với các đề tài khác

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

PHỤ LỤC I: KIT FPGA XILINX VIRTEX-7 VC707

PHỤ LỤC II: CÁC BƯỚC GENERATE BITSTREAM

Tóm tắt

I. Giới thiệu về Mô Phỏng và Hiện Thực CPU 32 Bit RISC V Trên FPGA

Mô phỏng và hiện thực CPU 32-Bit RISC-V trên FPGA là một chủ đề đang thu hút sự quan tâm lớn trong lĩnh vực thiết kế vi mạch. RISC-V, với kiến trúc mở, cho phép các nhà nghiên cứu và kỹ sư phát triển các giải pháp tùy chỉnh cho các ứng dụng khác nhau. FPGA (Field Programmable Gate Array) cung cấp một nền tảng linh hoạt để thử nghiệm và triển khai các thiết kế vi xử lý. Việc kết hợp giữa RISC-V và FPGA không chỉ giúp tối ưu hóa hiệu suất mà còn giảm chi phí sản xuất. Bài viết này sẽ đi sâu vào các khía cạnh quan trọng của mô phỏng và hiện thực hóa CPU RISC-V trên FPGA.

1.1. Tổng quan về Kiến Trúc RISC V và FPGA

Kiến trúc RISC-V là một trong những kiến trúc tập lệnh mã nguồn mở nổi bật hiện nay. FPGA là một giải pháp phần cứng linh hoạt cho phép lập trình viên tùy chỉnh thiết kế vi xử lý. Sự kết hợp giữa RISC-V và FPGA mang lại nhiều lợi ích cho việc phát triển các ứng dụng nhúng.

1.2. Lợi ích của Mô Phỏng CPU RISC V Trên FPGA

Mô phỏng CPU RISC-V trên FPGA giúp kiểm tra và tối ưu hóa thiết kế trước khi sản xuất. Điều này không chỉ tiết kiệm thời gian mà còn giảm thiểu rủi ro trong quá trình phát triển. Hơn nữa, việc sử dụng FPGA cho phép thử nghiệm nhiều cấu hình khác nhau một cách nhanh chóng.

II. Vấn Đề và Thách Thức Trong Mô Phỏng CPU RISC V

Mặc dù mô phỏng CPU RISC-V trên FPGA mang lại nhiều lợi ích, nhưng cũng tồn tại một số thách thức đáng kể. Các vấn đề như xung đột dữ liệu, xung đột điều khiển và hiệu suất tổng thể của hệ thống cần được giải quyết. Việc tối ưu hóa thiết kế để giảm thiểu các xung đột này là một trong những nhiệm vụ quan trọng trong quá trình phát triển.

2.1. Các Xung Đột Trong Thiết Kế Vi Xử Lý

Xung đột dữ liệu và xung đột điều khiển là hai vấn đề chính trong thiết kế vi xử lý. Những xung đột này có thể làm giảm hiệu suất và độ tin cậy của hệ thống. Việc hiểu rõ nguyên nhân và cách khắc phục là rất cần thiết.

2.2. Giải Pháp Đối Phó Với Các Thách Thức

Sử dụng các kỹ thuật như pipeline và tối ưu hóa mã lệnh có thể giúp giảm thiểu xung đột. Ngoài ra, việc áp dụng các phương pháp kiểm tra và mô phỏng hiệu quả cũng là một phần quan trọng trong quá trình phát triển.

III. Phương Pháp Thiết Kế CPU 32 Bit RISC V Trên FPGA

Thiết kế CPU 32-Bit RISC-V trên FPGA yêu cầu một quy trình rõ ràng và có hệ thống. Các bước từ việc xác định kiến trúc, thiết kế các khối chức năng cho đến việc mô phỏng và kiểm tra đều cần được thực hiện một cách cẩn thận. Việc sử dụng các công cụ thiết kế như Vivado giúp đơn giản hóa quy trình này.

3.1. Quy Trình Thiết Kế Vi Xử Lý RISC V

Quy trình thiết kế bao gồm việc xác định các khối chức năng, lập trình FPGA và kiểm tra tính năng. Mỗi bước đều cần được thực hiện một cách chính xác để đảm bảo hiệu suất tối ưu.

3.2. Sử Dụng Công Cụ Vivado Trong Thiết Kế

Vivado là một công cụ mạnh mẽ cho phép thiết kế và mô phỏng các hệ thống trên FPGA. Việc sử dụng Vivado giúp giảm thiểu thời gian phát triển và tăng cường khả năng kiểm tra các thiết kế.

IV. Ứng Dụng Thực Tiễn Của CPU RISC V Trên FPGA

CPU RISC-V trên FPGA có nhiều ứng dụng thực tiễn trong các lĩnh vực như IoT, thiết bị nhúng và hệ thống nhúng. Việc sử dụng RISC-V giúp tối ưu hóa hiệu suất và giảm chi phí sản xuất. Các ứng dụng này không chỉ mang lại giá trị kinh tế mà còn thúc đẩy sự phát triển của công nghệ vi mạch.

4.1. Ứng Dụng Trong Thiết Bị IoT

CPU RISC-V có thể được sử dụng trong các thiết bị IoT nhờ vào khả năng tiết kiệm năng lượng và hiệu suất cao. Điều này giúp các thiết bị hoạt động hiệu quả hơn trong môi trường hạn chế tài nguyên.

4.2. Tích Hợp Trong Hệ Thống Nhúng

Việc tích hợp CPU RISC-V vào các hệ thống nhúng giúp cải thiện khả năng xử lý và giảm thiểu chi phí sản xuất. Điều này mở ra nhiều cơ hội cho các nhà phát triển trong việc tạo ra các sản phẩm mới.

V. Kết Luận và Hướng Phát Triển Trong Tương Lai

Mô phỏng và hiện thực CPU 32-Bit RISC-V trên FPGA là một lĩnh vực đầy tiềm năng. Với sự phát triển không ngừng của công nghệ, việc tối ưu hóa thiết kế và ứng dụng RISC-V sẽ tiếp tục được nghiên cứu. Hướng phát triển trong tương lai có thể bao gồm việc mở rộng các phần mở rộng của RISC-V và cải thiện hiệu suất của FPGA.

5.1. Tương Lai Của Kiến Trúc RISC V

RISC-V có tiềm năng lớn trong việc phát triển các ứng dụng mới. Sự mở rộng của kiến trúc này sẽ tạo ra nhiều cơ hội cho các nhà nghiên cứu và kỹ sư.

5.2. Cải Thiện Hiệu Suất FPGA

Cải thiện hiệu suất của FPGA sẽ giúp tối ưu hóa các thiết kế vi xử lý. Việc nghiên cứu và phát triển các công nghệ mới sẽ là chìa khóa cho sự thành công trong tương lai.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính mô phỏng và hiện thực 32 bit risc v cpu trên fpga

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

Chương 1. Giới thiệu về kiến trúc tập lệnh. Tổng quan về kiến trúc tập lệnh RISC-V. Các kiến trúc tập lệnh.

Chỉ tiết kiến trúc tập lệnh RISC-V. Thiết kế hệ thống của CPU.-----22¿¿¿22222vEvevrtttEErkrtrrrrrrrrrrree 26 Chương 2. THIET KE VI XỬ LÝ RISC-V 32-BIT. Tổng quan thiết kế vi xử lý.

Lý thuyết về xung đột (Pipeline hazard). Xung đột cấu trúc (Structure hazard). Xung đột dữ liệu (Data hazard). Xung đột điều khiển (Control/Branch hazard).

Các khối chức năng có trong vi xử lý thông qua từng giai đoạn. THIET KE VI XỬ LÝ RISC-V 32-BIT VỚI GIAO THỨC AXI453 3. Đóng gói vi xử lý RISC-V với giao thức AXI4. Kiến trúc vi xử lý trước khi đóng gói.

Kiến trúc vi xử lý khi đóng gói thành IP. Giao thức AXI4. Tổng quan giao thức. Các tín hiệu cụ thể của giao thức AXI4 trong khóa luận.

THIẾT KÉ BLOCK DESIGN TRÊN VIVADO. Tổng quan thiết kế Block Design. Thiết kế trên Vivado. Các IP của Xilinx dự kiến dùng trong thiết kế Block Design.

IP Memory Interface Generator (MIG 7 Series). IP Central Direct Memory Access (IP CDMA). IP AXI Bram ContrOÏÏ€T. ¿5+ 5+ SSx+k+t‡v£eEexeeeketseerrvre 60 Chương 5.

MÔ PHONG VÀ ĐÁNH GIÁ THIET KÉ. Kịch bản kiêm thử trên FPGA. Mô phỏng chức năng. Kết quả mô phỏng.

Đánh giá thiết kế. Kết quả tổng hợp.----cc:22cs+csccvvrrrerrkvrrrrrrvrrrrrres 68 5. Đánh giá thiết kế và so sánh với các đề tài khác. KÉT LUẬN VÀ HƯỚNG PHÁT TRIẺN.

Những kinh nghiệm tích lũy. Các vấn đề hạn chế. Kết quả dat ẨƯỢC. Hướng phát triỂn.----¿:©222++++22E+++ttEEEEvtEEEEvrrtrrkrrrrrrrrrrrrrres 74 TÀI LIEU THAM KHẢO.

2222:2222 2222222222E2222EEEE22E3222EExerrrrrrree 75 PHU LỤC I. KIT FPGA XILINX VIRTEX-7 VC707.-------5-5-©5+55+ 76 PHỤ LỤC II. CÁC BƯỚC GENERATE BITSTREAM. DANH MỤC HÌNH Hình 1.1: Dinh dạng tập lệnh R`V32[.

+ - 5c tk Ekskrkekekrrrerree 21 Hình 1.2: Kiến trúc hệ thống CPU .1: Hình mô ta CPU RISC-V đơn chu kỳ.2: Hình mô tả chỉ tiết các khối chức năng trong vi xử ly 32-bit RISC-V 5- Stage pipeline sử dụng trong khoá luận .3: Hình mô tả các tín hiệu control qua các tầng.4: Module Controller trong thiết kế .5: Thanh ghi Program Counter (PC) .--‹- 5+ xxx sv£vxeeevexeeerrrrre 35 Hình 2.6: Module Program Counter add 4 (PC_ add4) .8: Thanh ghi IF to ID (IE_ tO_ TH). 5c 5c sv‡v£vxeeekexeerrrrrre 37 Hình 2. -¿- 1S: nh k9 12 1H HH1 Hy 38 Hình 2.10: Module imm_ øen.- --¿-+- 5° +55 **2E‡E‡EvEEk+EEEeEEkrkrkerrrerkrkrke 39 Hình 2.11: Module Branch CoimparatOr-.------ ¿+52 ++s25s£+++z++£+se+szsz++ 40 Hình 2.12: Module Branch Detection.13: Module Hazard Detection.14: Thanh ghi ID to EX (ID_to_EX) .--- ¿c5 S111 ST He 45 Hình 2.-- - - - ¿5< + +‡k+E‡E SE T111 1101012 H1 11 re, 46 Hình 2.18: Module Forwarding Unit .------ 5-52 5++s+se£e£zxzxerererereree 47 Hình 2.19: Module Addition Branch .------ 55+ 5+55+s+ss£ezezxserxersrsree 48 Hình 2.20: Thanh ghi EX to MEM (EX_to_MEM)). es ¿ST HH1” 00121 trà 50 Hình 2.22: Thanh ghi MEM to WB (MEM_to_WB).23: Module Mux_ẲW.- cv HH HH HT Hàng Hàn net 52 Hình 3.1: Kiến trúc vi xử lý RISC-V trước khi đóng gói.2: Kiến trúc vi xử lý sau khi đóng gói và được kết nói với IP System Hình 4.1: Thiết kế Block Design trên phần mềm Vivado.3: Kịch bản kiểm thử sử dụng SD Hình 5.4: Đoạn chương trình assembly và mã máy sau khi biên dịch để kiểm tra chức năng CPU.

¿+ 11k 111 T HH HH HH rà 64 Hình 5.5: Kết quả mô phỏng ba câu lệnh đầu tiên trên phần mềm Vivado.6: Kết quả mô phỏng ba câu lệnh đầu tiên trên Venus .7: Memory sau khi thực hiện lệnh SW trên CPU.8: Memory sau khi thực hiện lệnh SW trên phần mềm .9: Kết quả thanh ghi của CPU sau khi chạy xong đoạn chương trình.10: Kết quả thanh ghi của phần mềm Venus sau khi chạy xong đoạn chương trình .11: Tài nguyên sử dụng của CPU RISC-V.12: Tài nguyên sử dụng theo từng module của CPU RISC-V 69 Hình 5.13: Xung clock của CPU RISC-V.14: Phân tích timing cho CPU RISC-V .15: Tốc độ tối đa dự kiến của CPU RISC-V.---c¿cccvccc+cccseez 70 DANH MỤC BANG Bang 1.1: Trang thái phiên bản của ISA cơ sở và các phần mở rộng.2: Thuận lợi và bất lợi của mỗi ISA.3: Quy ước các thanh ghi của RISC-V.4: Lệnh RV32I thông qua ngôn ngữ assembly.1: Bảng mô tả các công đoạn khi xử ly câu lệnh.2: Bang mô tả tín hiệu điều khiển khối ALU .3: Bảng mô tả tín hiệu điều khiển thanh ghi PC.4: Bảng mô tả tín hiệu điều khiển halt.5: Bảng mô tả tín hiệu điều khiển khối Imm_Gen.6: Bảng mô tả tín hiệu BrE(Q.-- cscs 56522 ‡E‡+SEkrekekererrrkrkekrree 34 Bang 2.7: Bảng mô tả tín hiệu BTL7T. - <5 St S*£v+kekevrerererereerkekree 34 Bang 2.8: Bảng mô tả tín hiệu BrUn.9: Bảng các tín hiệu trong module Controller .10: Bảng các tín hiệu trong thanh ghi PC.11: Bảng các tín hiệu trong thanh ghi PC_ add4.12: Bảng các tín hiệu trong module IMEM.13: Bảng các tín hiệu trong thanh ghi IF_ to_TD.14: Bảng các tín hiệu trong RegFile. ----- 5 5++++c+c+cs+e+xzxscee 39 Bang 2.15: Bảng các tín hiệu trong khối imm_gen.16: Bảng các tín hiệu trong khối br_comp.:--c:zc5ss2 40 Bang 2.17: Bảng các tín hiệu trong khối branch_ detect.18: Bang các tín hiệu trong khối Hazard Detection.19: Bảng các tin hiệu trong thanh ghi ID_to_EX.20: Bang các tín hiệu trong khối MuxA.21: Bảng các tín hiệu trong khối MuxB.-----ccc¿-©2c2sssccc2 46 Bang 2.22: Bang các tín hiệu trong khối ALU .-----ccccc¿+¿222vcvccce2 46 Bang 2.23: Bảng các tín hiệu trong khối forwarding_unit.24: Bảng các tín hiệu trong khối add_br.25: Bảng các tín hiệu trong thanh ghi EX_to_MEM.26: Bảng các tín hiệu trong khối DMEM.---¿©+cc+2czssc+ 50 Bang 2.27: Bảng các tín hiệu trong thanh ghi MEM_to_WB.28: Bang các tín hiệu trong khối Mux_W.1: Các tín hiệu trong AXT4 bus.1: Bảng so sánh các thiết kế RISC-V pipeline [5].-------¿ 7I DANH MỤC TU VIET TAT Viết tắt Viết đầy đủ Ý nghĩa IP Intellectual Property Lõi sỡ hữu trí tuệ AXL | Advanced eXtensible Interface Giao diện bus mở rộng nâng cao CISC | Complex Instruction Set Computer | Máy tính với tập lệnh phức tạp. Máy tính với tập lệnh đơn giản RISC | Reduced Instruction Set Computer hóa Bộ xử lý dựa trên kiến trúc tập ARM.

| Advanced RISC Machines lệnh RISC MIPS Microprocessor without Kiến trúc tập lệnh RISC phát Interlocked Pipeline Stages trién bởi MIPS Technologies RAM | Random Access Memory Bộ nhớ truy cập ngẫu nhiên CPU_ | Central Processing Unit Bộ xử lý trung tâm Vi mạch tích hợp cỡ lớn dùng FPGA | Field Programmable Gate Array cấu trúc mảng phan tử logic ma người dùng có thê lập trình ALU | Arithmetic Logic Unit Khối số học logic Hệ thống kiểm soát tan số khép PLL | Phase Locked Loop kín RTL | Register Transfer Level Mức chuyền thanh ghi Trung tâm truy cập bộ nhớ trực CDMA | Central Direct Memory Access " tiép Trinh quan lý xung clock chế độ MMCM | Mixed-Mode Clock Manager hỗn hợp 12 TÓM TÁT KHÓA LUẬN Đề tài khóa luận bao gồm hai nội dung chính xoay quanh nghiên cứu thiết kế bộ vi xử ly RISC-V và đóng gói vi xử lý thành IP theo chuẩn giao tiếp AXI4. Nội dung thứ nhất là hướng đến nghiên cứu thiết kế vi xử lý RISC-V áp dụng kỹ thuật pipeline để xử lý câu lệnh. Vi xử lý gồm các khối chức năng xử lý lệnh trong tập lệnh RV32I và xử lý các xung đột. Tiếp đến là nhóm thực hiện thay thé hai khối Instruction Memory (IMEM) va Data Memory (DMEM) bằng IP System Cache v5.

Nội dung thứ hai của dé tài khóa luận là đóng gói bộ vi xử lý. Hau hết các IP trên phần mềm Vivado giao tiếp với nhau thông qua bus AXI4 hoặc AXI3. Trong khóa luận này, RISC-V sẽ được đóng gói theo chuẩn giao tiếp AXI4. Sau đó kết nối với các IP khác trên Block Design của phần mềm Vivado đề tạo sự liên kết giữa hai nội dung.

Trong Block Design, RISC-V đóng vai trò là một Master, yêu cầu đọc dữ liệu từ các Slaver thông qua bus AX14, tính toán và lưu các giá trị đó vào trong System Cache, đồng thời trả các giá trị đó cho Slaver hoặc xuất ra Uart. Qua hai nội dung của khóa luận này, nhóm thực hiện hy vọng sẽ tích lũy được thêm kinh nghiệm về việc thiết kế kiến trúc vi xử lý RISC-V, cải thiện tốc độ xử lý của vi xử lý theo các kiến trúc đã được học, về thiết kế hệ thống có tích hợp các khối IP có sẵn. Ngoài ra hiểu về cách sử dụng BUS AMBA AXI4 dé truyền nhận dữ liệu trong hệ thống. Đóng góp cho sự phát triển của kiến trúc RISC-V.

13 MỞ DAU Ngày nay, nhu cầu về chip bán dẫn của ngành sản xuất các thiết bị thông minh ngày càng tăng cao, tình trạng dịch Covid-19 trở nên phức tạp, mọi người dần chuyền đổi sang hình thức học tập, làm việc trực tuyến và giải trí tại nhà. Chính vì vậy, việc phát triển các thiết bị thông minh, hiện đại, đòi hỏi các thiết bị phải có vi xử lý mạnh mẽ, đáp ứng các nhu cầu của người dùng càng trở nên cấp thiết hơn. Tuy nhiên, giá thành cấu tạo các vi xử lý còn cao do qui trình chế tạo phức tạp, thêm với đó là những khó khăn đến từ van dé thiếu hụt nguyên liệu và nhân công do bối cảnh dịch Covid-19 kéo dài hiện nay. Các vấn đề trên càng làm tăng thêm sự quan trọng của các vi xử lý trong các thiết bị thông minh.

Từ thực trạng được nêu trên, chúng ta thay được sự cần thiết trong việc tối ưu hóa các bộ vi xử lý. Một trong những giải pháp được đề xuất là thiết kế các vi xử lý phù hợp với thiết bị thông minh. Một vi xử lý với câu trúc lệnh don giản dé có thê giảm số lượng các công logic trên thiết kế, làm giảm năng lượng hoạt động cho vi xử lý, khi ấy nhà sản xuất sẽ điều chỉnh giá thành hợp lý hơn, từ đó làm giảm giá thành khi đến tay người ding. Tai mức độ là sinh viên nghiên cứu, nhóm chúng em đề xuất dé tài khóa luận mang tên “NGHIÊN CỨU THIÉT KÉ BỘ VI XỬ LÝ RISC-V 32-BIT THEO KIEN TRÚC PIPELINE”, đề tài khóa luận có hai nội dung.

Nội dung thứ nhất hướng đến việc thiết kế vi xử lý RISC-V theo kiến trúc Pipeline 5-stage, tăng số lượng lệnh có thé xử lý trong đường ống của vi xử lý. Nội dung thứ hai đó là tinh chỉnh vi xử lý RISC-V thành một Master, có thể giao tiếp với các Slaver (System Cache) khác thông qua bus AXI4. Mục đích của nội dung này hướng đến việc tiếp cận thiết kế theo kiến trúc của các vi xử lý ngày nay, nhằm đóng góp cho sự phát triên của ngành vi mạch. Gi6i thiệu về kiến trúc tập lệnh Kiến trúc tập lệnh (ISA) là một phan trừu tượng của máy tính xác định cách CPU được điều khiển bởi phần mềm.

ISA hoạt động như một giao diện giữa phần cứng và phần mềm, chỉ định cả những gì bộ xử lý có khả năng thực hiện cũng như cách nó được thực hién.[1] ISA cung cấp cách duy nhất dé người dung có thể tương tác với phần cứng.

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