Thiết kế CPU RISC-V để triển khai FPGA ③ Tự xây dựng CPU hoàn chỉnh với 40 lệnh RV32I

Khi học về CPU và RISC-V, bạn có thể hiểu được chức năng của các lệnh nhưng lại gặp khó khăn ở những câu hỏi như: “Các lệnh này được thực thi như thế nào trên phần cứng thực tế?” và “Làm thế nào để xác nhận CPU do chính mình thiết kế thực sự hoạt động đúng?”. Nhiều tài liệu trên thị trường chỉ dừng ở việc giải thích ISA hoặc các ví dụ CPU đơn giản; trong nhiều trường hợp, người học cũng chỉ sử dụng các IP hoàn thiện. Vì vậy, không dễ để trải nghiệm toàn bộ quá trình tự thiết kế, xác minh CPU và chạy chương trình trên FPGA thực tế. Tôi đã có nhiều năm kinh nghiệm nghiên cứu, phát triển và kinh doanh trong lĩnh vực bán dẫn hệ thống, đồng thời hiện đang giảng dạy về thiết kế bán dẫn và FPGA tại trường đại học. Qua đó, tôi nhận thấy rõ khoảng cách trong quá trình học tập này. Vì vậy, khóa học được xây dựng không theo phương pháp cung cấp một CPU hoàn thiện rồi chỉ kiểm tra hoạt động, mà bắt đầu từ câu hỏi “Cần có những phần cứng nào để thực thi các lệnh RV32I?”, từ đó trực tiếp thiết kế cấu trúc CPU theo phương pháp White Box. Trong Volume 3, dựa trên TinyRV32I của Volume 2, chúng ta mở rộng thành CPU 32-bit Full-Version sử dụng 40 lệnh RV32I. Data path, Decoder, Branch·Jump và Byte/Halfword Memory Access được mở rộng; đồng thời triển khai Forwarding và Load-Use Interlock để Pipeline 5 tầng có thể tự xử lý các phụ thuộc dữ liệu. Tiếp đó, bằng cách tích hợp CSR, Exception, Interrupt, Trap và MRET, chúng ta hoàn thiện một CPU có khả năng xử lý không chỉ việc thực thi chương trình thông thường mà cả các ngoại lệ và sự kiện bên ngoài. Quá trình thiết kế không kết thúc ở RTL Simulation. Chúng ta sẽ thực thi chương trình thực tế trên CPU, so sánh kết quả với Spike Reference Model, đồng thời học về mục đích cũng như quy trình thực hiện và đánh giá của RISC-V Architecture Compatibility Test thông qua các trường hợp xác minh thực tế. Cuối cùng, CPU đã được xác minh sẽ được triển khai trên FPGA Arty S7-25, nhận đầu vào từ Switch và Button, thực thi chương trình và kiểm tra kết quả được xuất ra LED. Vấn đề mà khóa học này hướng tới không đơn giản chỉ là biết thêm nhiều lệnh RISC-V. Mục tiêu là kết nối các bước từ lệnh → kiến trúc CPU → Verilog RTL → điều khiển Pipeline → thực thi chương trình → xác minh dựa trên tiêu chuẩn → hoạt động thực tế trên FPGA thành một quy trình thống nhất, giúp học viên hiểu một cách căn bản cấu trúc bên trong CPU và hình thành năng lực kỹ thuật để tự thiết kế, xác minh CPU.

1 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

FPGA
FPGA
verilog
verilog
riscv
riscv
rtl
rtl
cpu-architecture
cpu-architecture
FPGA
FPGA
verilog
verilog
riscv
riscv
rtl
rtl
cpu-architecture
cpu-architecture

Bạn sẽ nhận được điều này sau khi học.

  • Khả năng thiết kế CPU RISC-V phiên bản đầy đủ thực thi 40 lệnh RV32I

  • Khả năng triển khai pipeline 5 giai đoạn và Hazard Control

  • Năng lực thiết kế cấu trúc điều khiển CPU bao gồm CSR·Exception·Interrupt·Trap

  • Năng lực thực tiễn trong việc kiểm chứng CPU một cách có hệ thống

  • Trải nghiệm hoàn thiện khi vận hành CPU tự thiết kế trên FPGA bằng chương trình thực tế

Tự mình thiết kế CPU Full-Version sử dụng 40 lệnh RV32I

Vượt qua mini-CPU, bạn sẽ tự hoàn thiện một CPU RISC-V 32 bit có thể chạy các chương trình thực tế.

Khóa học này là quá trình mở rộng TinyRV32I trong Volume 2 thành một CPU Full-Version sử dụng 40 lệnh RV32I. Thay vì sử dụng IP CPU hoàn chỉnh, bạn sẽ phân tích cấu trúc phần cứng mà các lệnh yêu cầu và trực tiếp triển khai bằng Verilog RTL.

Bạn sẽ học quá trình hiện thực hóa các lệnh thành datapath và cấu trúc điều khiển thực tế khi mở rộng không chỉ các phép toán số học và logic mà còn cả Shift, Compare, Jump, Byte/Halfword Load·Store, CSR và các lệnh System.


Mở rộng pipeline 5 tầng thành một cấu trúc có thể thực thi chương trình thực tế

Khi số lượng lệnh tăng lên, chỉ mở rộng Decoder thì chưa thể hoàn thiện CPU.

Mở rộng các đường dẫn ALU, Immediate Generator, Branch/Jump, Load/Store và Write Back, đồng thời triển khai Forwarding và Load-Use Interlock để phần cứng trực tiếp xử lý các phụ thuộc dữ liệu của chương trình.

Nếu giá trị cần thiết đã được tạo sẵn thì thực hiện Forwarding; nếu giá trị chưa sẵn sàng như trong trường hợp Load, tạm thời dừng Pipeline. Đồng thời triển khai cả việc chuyển đổi PC và Flush theo Branch và Jump, qua đó hiểu Pipeline 5 tầng thực thi chương trình thực tế một cách chính xác như thế nào.


Triển khai truy cập bộ nhớ Byte/Halfword và cả MMIO

32 bit Word erişiminden ileri giderek Byte ve Halfword birimleriyle Load·Store işlemlerini gerçekleştiririz.

Xử lý mở rộng có dấu/không dấu, Byte Enable và Address Alignment, đồng thời kết nối các Switch, Button và LED trên bo mạch FPGA với CPU thông qua Memory-Mapped I/O.

Qua đó, bạn sẽ hiểu toàn bộ quy trình mà một lệnh Load hoặc Store trải qua: tính toán địa chỉ → truy cập bộ nhớ → chọn dữ liệu → thanh ghi hoặc thiết bị ngoại vi.


Tích hợp CSR, Exception, Interrupt và Trap vào CPU

Không chỉ thực hiện các lệnh thông thường, mà còn trực tiếp triển khai các exception và Interrupt bên ngoài phát sinh trong CPU.

Xây dựng các CSR ở cấp Machine như mstatus, mtvec, mepc, mcause, mtval, mie, mip, đồng thời xử lý ECALL, EBREAK, Illegal Instruction, Misaligned Access, External Interrupt và MRET., and handle ECALL, EBREAK, Illegal Instruction, Misaligned Access, External Interrupts, and MRET.

Qua đó, bạn sẽ tìm hiểu ở cấp độ RTL cách việc thực thi chương trình bình thường → phát sinh Trap → chuyển đến Handler → lưu trạng thái → quay lại chương trình diễn ra trong một CPU.


Vượt ra ngoài Testbench tự xây dựng, tiến hành xác minh dựa trên các tiêu chuẩn chuẩn mực.

Không thể khẳng định thiết kế là đúng chỉ vì CPU chạy một vài chương trình kiểm thử riêng.

Sau khi xác minh từng chức năng bằng Testbench và Simulation, chúng tôi đã so sánh kết quả thực thi với Spike Reference Model và thực hiện RISC-V Architecture Compatibility Test và đạt PASS. (Xem bên dưới)
[Compliance Report] EdgeChipLab_CPU_v1 successfully passed RV32I ACT · Issue #1600 · riscv/riscv-arch-test


Giải thích trường hợp CPU này được xác minh hoạt động của các lệnh dựa trên tiêu chuẩn. Các tệp liên quan đến ACT không được bao gồm trong tài liệu cung cấp. Không chỉ đơn giản kiểm tra kết quả PASS, bạn còn tìm hiểu đã thực thi những gì, so sánh những gì và kết quả đó chứng minh độ chính xác của CPU trong phạm vi nào.


ACT vượt qua CPU và chạy chương trình thực tế trên đó.

Đây là điểm khác biệt lớn nhất của khóa học này.

Thiết kế trực tiếp một CPU sử dụng 40 lệnh RV32I và xác minh bằng Architecture Compatibility Test, đồng thời triển khai chính CPU đó trên FPGA thực tế.

Trên CPU đã hoàn thiện, chạy chương trình thực tế để đọc đầu vào từ Switch và Button, thực hiện phép tính và rẽ nhánh trên CPU, sau đó xuất kết quả ra LED.

Toàn bộ quá trình được kết nối như sau.

RV32I 40 lệnh → Pipeline 5 giai đoạn → Điều khiển Hazard → CSR/Trap → Xác minh ACT → FPGA → Chương trình thực tế


Cung cấp tài liệu thực hành cần thiết cho việc thiết kế và kiểm chứng CPU.

Cung cấp các tài liệu thiết kế và kiểm chứng chính được sử dụng trong khóa học, được cấu trúc để bạn có thể trực tiếp chạy và chỉnh sửa.

  • Verilog RTL

  • Testbench

  • Chương trình Assembly

  • Ảnh bộ nhớ


  • RTL cấp cao nhất của FPGA

  • Ràng buộc chân XDC

  • Tài liệu triển khai Vivado

Bạn không chỉ xem kết quả hoàn chỉnh mà còn có thể trực tiếp tái hiện toàn bộ quy trình thiết kế → Simulation → kiểm chứng tiêu chuẩn → triển khai FPGA.


Đây là giai đoạn Full-Version của loạt thiết kế CPU RISC-V.

Khóa học này là phần thứ ba trong loạt bài thiết kế CPU RISC-V được mở rộng theo từng giai đoạn.

Tập 1 Cấu trúc và thực thi các lệnh RV32I
Tập 2 TinyRV32I · Pipeline 5 tầng và triển khai trên FPGA
Tập 3 Full RV32I 40 lệnh · Trường hợp xác minh ACT · Thực thi chương trình trên FPGA ← Bạn đang ở đây
Tập 4 Tích hợp CPU·NPU·Peripheral thành AI SoC


Mục tiêu của khóa học này không phải là ghi nhớ 40 lệnh. Đó là chia sẻ trải nghiệm về việc CPU RISC-V Full-Version do chính bạn thiết kế vượt qua quá trình kiểm chứng dựa trên tiêu chuẩn, đồng thời trải nghiệm toàn bộ quy trình cho đến khi chạy chương trình trên FPGA thực tế.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Kỹ sư phần cứng muốn học những kiến thức cơ bản về CPU RISC-V và mở rộng sang thiết kế CPU đường ống Full-Version

  • Nhà phát triển có kinh nghiệm thiết kế RTL và muốn thực hành các phương pháp xử lý ngoại lệ cũng như kiểm chứng tiêu chuẩn của kiến trúc CPU.

  • Dành cho những ai muốn tự thiết kế một CPU hoàn thiện hơn, vượt qua các ví dụ CPU đơn giản.

  • Dành cho những ai muốn vượt qua mô phỏng và thử vận hành CPU do chính mình thiết kế trên FPGA thực tế.

  • Dành cho những ai muốn tìm hiểu quá trình tích hợp nhiều khối RTL thành một hệ thống duy nhất

Cần biết trước khi bắt đầu?

  • Kinh nghiệm thiết kế và mô phỏng RTL dựa trên HDL như Verilog hoặc VHDL

  • Kiến thức cơ bản về cấu trúc CPU (Datapath, Control Unit, pipeline) và ISA RISC-V

  • Kinh nghiệm sử dụng Vivado hoặc các công cụ phát triển FPGA tương tự và khả năng sử dụng bo mạch FPGA

Xin chào
Đây là EdgeChipLab

Xác minh sự nghiệp

Tự mình thiết kế và triển khai chất bán dẫn AI bằng FPGA

Với tư cách là giáo sư đại học đang đương nhiệm, tôi đã đưa vào đây 30 năm kinh nghiệm trong ngành công nghiệp bán dẫn hệ thống cùng bí quyết nghiên cứu và giảng dạy về bán dẫn AI.

Bắt đầu từ vị trí nghiên cứu viên bán dẫn hệ thống tại Bộ phận DS của Samsung Electronics, trải qua các vị trí Director tại chi nhánh Anh và Đức, cũng như Trưởng nhóm Marketing·Kinh doanh System LSI, hiện là giáo sư giảng dạy kỹ thuật bán dẫn, trực tiếp thiết kế và kiểm chứng trên FPGA để xây dựng chương trình đào tạo mang tính thực tiễn.

Đây không phải là khóa học chỉ đơn thuần dạy cách sử dụng FPGA.
Bạn sẽ hiểu các thuật toán AI → trực tiếp thiết kế NPU và CPU bằng RTL → triển khai trên FPGA → kiểm chứng trên phần cứng thực tế → và cuối cùng mở rộng đến AI SoC.

Thuật toán AI → Thiết kế RTL → Triển khai FPGA → Xác minh Bit-True → AI SoC

 

Vượt qua lý thuyết để hiện thực hóa phần cứng AI thực tế

Chỉ với những kiến thức rời rạc và phiến diện thì khó có thể đạt được năng lực thiết kế chất bán dẫn AI ở cấp độ hệ thống.

Học viên không chỉ dừng lại ở việc sử dụng các IP dạng hộp đen hoàn chỉnh. Mục tiêu là từng bước trang bị năng lực thiết kế hệ thống, có thể tự thiết kế AI NPU và CPU RISC-V, tích hợp bộ nhớ cùng các thiết bị ngoại vi, và cuối cùng xây dựng AI SoC của riêng mình.

Bắt đầu từ những kiến thức cơ bản về transistor và mạch số, bạn sẽ tìm hiểu xuyên suốt từ FPGA, CPU, NPU đến phần cứng tăng tốc Transformer và LLM.

 

Xác minh kết quả nghiên cứu trên phần cứng FPGA thực tế.

Đây không phải là khóa học chỉ xem bằng mắt. Không dừng lại ở lý thuyết hay mô phỏng đơn thuần, bạn sẽ cho mạch bán dẫn AI do chính mình thiết kế hoạt động trên FPGA thực tế và thực hiện kiểm chứng Bit-True, trong đó kết quả RTL khớp với mô hình Python đến từng bit.

Chúng tôi cũng kết nối các kết quả nghiên cứu, bao gồm 4 bài báo được đăng trên KCI của giảng viên về AI bán dẫn, FPGA và RISC-V với nội dung đào tạo, từ đó đưa các công nghệ đã được kiểm chứng trong nghiên cứu vào thiết kế thực tế và triển khai trên FPGA.

Công khai mã nguồn cần thiết cho thực hành, bao gồm CPU RISC-V do chúng tôi tự phát triển, mã Python dùng để huấn luyện hình ảnh và Verilog RTL.

Được xây dựng xoay quanh bo mạch FPGA Arty S7-25 phổ thông và công cụ thiết kế Vivado miễn phí, khóa học giúp người học có thể tự mình tái hiện toàn bộ quy trình từ thiết kế, triển khai đến kiểm chứng.

Ngoài ra, cũng có thể sử dụng với các bo mạch FPGA của Digilent, bao gồm Zybo Z7. Bạn chỉ cần điều chỉnh ánh xạ chân XDC (bo mạch) và tham số chia tần số xung nhịp (RTL) cho phù hợp với bo mạch.

'NPU MNIST được xây dựng bằng FPGA' chỉ cần chỉnh sửa ánh xạ chân XDC, còn các bài giảng sử dụng OLED và Camera thì cần chỉnh sửa tham số chia tần số xung nhịp (RTL).

→Phần thực hành của khóa học được thiết lập các tham số chia tần dựa trên xung nhịp đầu vào 100 MHz của Arty S7. Vì các bo mạch khác có xung nhịp đầu vào khác nhau (ví dụ: Zybo Z7 là 125 MHz), bạn cần tính toán lại giá trị chia tần để đạt được cùng tần số mục tiêu. Nếu bỏ qua phần này, màn hình hoặc video sẽ không hiển thị bình thường, và rất dễ hiểu lầm là lỗi mã, vì vậy hãy kiểm tra kỹ.

 

Lộ trình full-stack liền mạch: từ cơ bản đến bộ tăng tốc mini LLM

Tất cả các bài giảng không phải là những mảnh ghép rời rạc, mà là hành trình hoàn thiện một hệ thống khổng lồ duy nhất.

  • Bước 1: Cơ sở lý thuyết AI và xử lý hình ảnh (bao gồm Machine Learning)

  • Step 2: Thiết kế và kiểm chứng bộ gia tốc AI (NPU) (bao gồm Machine Learning)

  • Bước 3: Thiết kế CPU RISC-V và tích hợp hệ thống

  • Bước 4: Triển khai SoC AI nâng cao và mở rộng thành nền tảng tăng tốc mini LLM (liên tục cập nhật nội dung)

     

 

Các chỉ số kiểm chứng khách quan

Tất cả các sản phẩm thiết kế của khóa học này đều đã trải qua quá trình kiểm chứng nghiêm ngặt theo các tiêu chuẩn toàn cầu và giới học thuật.

  • Xác minh kiến trúc RISC-V: CPU RISC-V do chúng tôi tự phát triển đã vượt qua bài kiểm tra tuân thủ chính thức (ACT) của tổ chức quốc tế và công khai mã nguồn (GitHub)

  • Uy tín học thuật: 4 bài báo học thuật với tư cách tác giả duy nhất (đăng trên tạp chí danh tiếng IJIBC thuộc danh mục học thuật KCI hạng A)

  • Được công nhận toàn cầu: Đã xuất bản 2 cuốn sách công nghệ trên Amazon toàn cầu (đạt hạng 3 trong danh sách bán chạy nhất)

  • Đã hoàn tất xác minh hoạt động thực tế: Các IP cốt lõi như CPU RV32I, NPU, hệ thống thị giác, GPS, Transformer, SoC AURA-Edge đều hoạt động hoàn hảo trong môi trường Arty S7

Hãy thử thách bản thân. Khi quá trình tự mình đưa mã lên bo mạch và kiểm tra kết quả này kết thúc, bạn sẽ nâng tầm trở thành một kỹ sư phần cứng với tầm nhìn hoàn toàn khác so với trước đây.

Thêm

Chương trình giảng dạy

Tất cả

11 bài giảng ∙ (6giờ 2phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của EdgeChipLab

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

5.141.069 ₫

9%

5.702.450 ₫