inflearn logo

Thiết kế CPU RISC-V để triển khai FPGA ① Tìm hiểu cấu trúc lệnh và nguyên lý thực thi RV32I bằng Python

Khi quyết định tự xây dựng một CPU, phần lớn mọi người thường bắt đầu bằng việc tìm sơ đồ mạch. Nhưng ngay khi mở bản vẽ ra, những câu hỏi không thể trả lời xuất hiện. Tại sao khối này phải nằm ở đây? Tại sao cổng đọc thanh ghi lại có hai cái? Tất cả câu trả lời đều nằm trong tập lệnh. Khi biết tập lệnh yêu cầu điều gì, ta sẽ xác định được cần những mạch nào. Làm theo thứ tự ngược lại thì không được. Đã có khá nhiều khóa học về RISC-V. Nhưng phần lớn chỉ hiển thị một giá trị trên slide, nói “nó hoạt động như thế này” rồi chuyển sang phần tiếp theo. Người học không có cách nào kiểm chứng giá trị đó có đúng hay không. Khóa học này đi kèm một trình mô phỏng thực thi lệnh bằng Python. Khi nhập run ADD, mã máy sẽ được lắp ráp ngay tại chỗ, 32 bit sẽ được phân tách theo từng trường, và sự thay đổi của các thanh ghi sẽ hiển thị trên màn hình. Mọi con số trong giáo trình đều là kết quả chạy từ công cụ này và sẽ được tái hiện y hệt trên màn hình của bạn. Trình gỡ lỗi thương mại cần giấy phép, còn trình mô phỏng thì vướng ở khâu cài đặt. Công cụ này chỉ cần có Python là đủ. Không cần bo mạch, giấy phép hay cài đặt. Đây là quá trình trực tiếp thực thi toàn bộ 40 lệnh RV32I, không bỏ sót một lệnh nào, để tự mình khám phá xem mạch cần phải làm gì.

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

Độ khó Cơ bản

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

riscv
riscv
cpu-architecture
cpu-architecture
instruction-set-architecture
instruction-set-architecture
FPGA
FPGA
Computer Architecture
Computer Architecture
riscv
riscv
cpu-architecture
cpu-architecture
instruction-set-architecture
instruction-set-architecture
FPGA
FPGA
Computer Architecture
Computer Architecture

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

  • · Bạn sẽ có được các tiêu chí thiết kế tập lệnh để thiết kế CPU của riêng mình.

  • · Có thể cụ thể hóa chủ đề thiết kế CPU cho thiết kế capstone, tham gia các cuộc thi và dự án tốt nghiệp.

  • · Có thể xem 32 bit mã máy để xác định đó là định dạng nào, tách các trường và đọc xem đó là lệnh gì.

  • · Có thể trực tiếp thực thi 40 lệnh RV32I và kiểm tra những thay đổi của các thanh ghi và bộ nhớ

  • · Có thể giải thích một lệnh đi qua những khối nào trong mạch và 13 tín hiệu điều khiển được xác định như thế nào.

  • · Bạn sẽ có một trình mô phỏng thực thi lệnh Python có thể chạy lại bất cứ lúc nào

  • Bạn có thể hiểu ý nghĩa của việc kiểm chứng Bit-True và xác định cụm từ "đã kiểm chứng" đảm bảo điều gì.

  • · Bạn có thể trả lời các câu hỏi phỏng vấn kỹ thuật về nguyên lý hoạt động của CPU bằng kinh nghiệm thực tế đã thực hiện, thay vì những câu trả lời học thuộc lòng.

Hãy tự xây dựng CPU trên FPGA.

CPU là bộ não của máy tính. Tuy nhiên, không có nhiều khóa học hướng dẫn một cách có hệ thống về cách tự thiết kế CPU. Phần lớn bắt đầu bằng việc cho xem mã RTL hoặc giải thích datapath. Nhưng câu hỏi thực sự là thế này.

Tại sao CPU phải có cấu trúc như thế này?

Tại sao lại có 32 thanh ghi?

Tại sao cần có ALU?

Tại sao lại có hai cổng đọc?

Tại sao Write Back lại tồn tại?

Câu trả lời cho tất cả những câu hỏi này đều nằm trong tập lệnh. CPU là một mạch được tạo ra để thực thi các lệnh. Nếu không hiểu lệnh, bạn cũng không thể hiểu CPU. Bài giảng này là quá trình học về tập lệnh dưới góc nhìn của người tạo ra CPU.


Mục tiêu của khóa học này

Mục tiêu của khóa học này không phải là ghi nhớ các lệnh RV32I. Mà là xây dựng nền tảng để trực tiếp thiết kế một CPU RISC-V hoạt động trên FPGA. Trong thời gian tới, các bạn sẽ

· CPU một chu kỳ

· CPU pipeline

· và triển khai trên FPGA.

Đây là bước đầu tiên trong quá trình này.


■ Tại sao lại theo thứ tự này?

Nhiều người bắt đầu học RTL để xây dựng CPU. Nhưng thứ tự đúng lại ngược lại.

Lệnh→thao tác cần thiết→đường dẫn dữ liệu→tín hiệu điều khiển→RTL→FPGA

CPU là kết quả của việc hiện thực các chức năng mà lệnh yêu cầu. Hãy lấy một lệnh ADD làm ví dụ.

Hai thanh ghi cần được đọc, ALU thực hiện phép tính, rồi kết quả phải được ghi trở lại vào thanh ghi. Những yêu cầu này quyết định tệp thanh ghi, ALU, MUX và khối điều khiển.

Lý do có hai cổng đọc cũng bắt nguồn từ đây. Trong số 40 lệnh RV32I, không có lệnh nào đọc từ ba thanh ghi trở lên. Khi hiểu được lệnh, bạn sẽ thấy vì sao cần mạch đó.


■ Bạn sẽ học gì?

Trực tiếp thực thi cả 40 lệnh RV32I. Đây không chỉ đơn giản là hiển thị add x5, x1, x2 → 0x002082B3. Bạn sẽ tự tạo mã máy, giải mã lại, thực thi, quan sát các thanh ghi thay đổi, xác nhận bộ nhớ biến đổi, đồng thời theo dõi cả đường truyền dữ liệu và các tín hiệu điều khiển.

Theo dõi đến cùng cách một lệnh di chuyển bên trong CPU.


■ Đặc điểm riêng của khóa học này

Khóa học này bao gồm RV32I Instruction Studio, trình mô phỏng lệnh dựa trên Python do chính giảng viên xây dựng. Bạn không cần bo mạch FPGA riêng. Cũng không cần trình mô phỏng phức tạp.

Chỉ cần cài đặt Python

· Thực thi lệnh

· Tạo mã máy

· Giải mã

· Kiểm tra thanh ghi

· Kiểm tra bộ nhớ

· Kiểm tra datapath

Bạn có thể tự mình thực hiện tất cả việc kiểm tra · tín hiệu điều khiển.


Bạn cũng có thể tái hiện chính xác mọi con số trong giáo trình.

· Thực thi toàn bộ 40 lệnh — đây không phải là ví dụ chỉ chọn những lệnh thường dùng

· Bạn phải vượt qua 1.231 bài kiểm tra xác minh của chính hệ thống thì mới bắt đầu học

· Cố tình cài 14 lỗi để kiểm tra xem quy trình xác minh có thực sự phát hiện ra chúng hay không

· Không có thư viện bên ngoài — toàn bộ chỉ 550KB, chỉ cần một dòng lệnh sau khi giải nén là có thể bắt đầu.


■ Chương trình học

Phần 1. Tìm hiểu những kiến thức cơ bản về CPU

1. CPU thực thi lệnh như thế nào — môi trường thực hành và các thanh ghi

2. Cấu trúc lệnh 32-bit và giá trị tức thời (Immediate)

Section 2. Thực thi các lệnh RV32I

3. Các lệnh số học · logic · dịch bit

4. Lệnh Load/Store · Branch · JAL/JALR

Section 3. CPU hoạt động như thế nào?

5. Datapath đơn chu kỳ và các tín hiệu điều khiển

Section 4. Kiểm chứng CPU và tổng kết

6. Kiểm chứng Bit-True và lộ trình các bước tiếp theo

Mỗi bài học đều có một Lab tiếp nối. Thứ tự thực hiện, kiểm tra màn hình, các mục tự kiểm tra, phần giải ví dụ của

Được cấu thành từ bốn bước, nội dung sẽ hiển thị rõ cần nhập gì và theo thứ tự nào.


■ Khóa học này phù hợp với những ai

· Những người muốn tự mình triển khai CPU trên FPGA

· Dành cho những người mới bắt đầu thiết kế CPU

· Dành cho những ai muốn học RISC-V một cách bài bản

· Những người muốn kết nối kiến trúc máy tính với thiết kế RTL

· Những người muốn triển khai CPU trong đồ án capstone hoặc các cuộc thi đối kháng

· Dành cho những người đang chuẩn bị xin việc trong lĩnh vực bán dẫn hệ thống và fabless


■ Môi trường thực hành

Dụng cụ cần chuẩn bị chỉ gồm Python và Jupyter Notebook.

https://github.com/estlit/SemiconductorSchool-Labs

→ Level4_Lab_RV32I_Instruction_Studio.zip

Giải nén, sau đó chỉ cần nhập dòng lệnh dưới đây trong Jupyter là có thể bắt đầu.

%run Lab01.py


■ Sau khi hoàn thành khóa học

Các bạn sẽ

· Hiểu được các lệnh RV32I

· Có thể giải thích datapath của CPU ҡар

· hiểu được tại sao cần tín hiệu điều khiển

· Nắm được nền tảng để triển khai CPU trên FPGA

Và trong phần tiếp theo, bạn sẽ hiện thực hóa các lệnh đã học lần này bằng Verilog RTL để chúng thực sự chạy trên bo mạch FPGA.

Volume 1 Cấu trúc và thực thi lệnh RV32I ← Bạn đang ở đây

Volume 2 TinyRV32I · đường ống 5 tầng và triển khai FPGA

Volume 3 CPU tiêu chuẩn · 40 lệnh và điều khiển hazard

Volume 4 Tầm nhìn · SoC NPU · Tích hợp camera và bộ tăng tốc


Đây là bước đầu tiên trong hành trình dài tạo ra CPU.

Hãy bắt đầu ngay bây giờ.

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

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

  • · Dành cho những ai muốn tự mình thiết kế CPU riêng dưới dạng phần cứng

  • · Nhà phát triển phần mềm hệ thống và firmware muốn làm quen với kiến trúc RISC-V thông qua thực hành

  • · Dành cho những ai muốn hiểu cấu trúc tập lệnh (ISA) thông qua việc thực thi thay vì tài liệu đặc tả

  • · Sinh viên đại học và sau đại học chuẩn bị thiết kế bộ xử lý dựa trên FPGA

  • · Những người đang chuẩn bị xin việc trong lĩnh vực bán dẫn hệ thống và fabless, cần năng lực về kiến trúc CPU

  • · Dành cho những người cần phân tích mã assembly và trạng thái thanh ghi trong công việc phát triển hệ thống nhúng thực tế

  • · Dành cho những người muốn kiểm tra hoạt động của CPU trong môi trường thực hành mà không cần giấy phép trình gỡ lỗi thương mại

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

  • Kiến thức cơ bản về Python (chỉ cần đủ để chạy và đọc được kết quả)

  • Kiến trúc máy tính cơ bản (Không có cũng vẫn có thể theo kịp)

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ả

6 bài giảng ∙ (1giờ 41phú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, kết thúc sau 2 ngày ngày

620.343 ₫

19%

768.044 ₫