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ì.

(5.0) 1 đánh giá

14 học viên

Độ 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

"Trong thời đại AI, cách ứng phó chắc chắn nhất là tự mình chế tạo chất bán dẫn AI."

Quá trình này không phải là các bài giảng đại học thông thường lấy lý thuyết làm trọng tâm, cũng không phải chương trình đào tạo được chuẩn hóa của các khoa liên kết doanh nghiệp chỉ dừng ở việc đáp ứng những yêu cầu đặc thù về thông số. Ngoài ra, chương trình cũng không chỉ dừng lại ở kinh nghiệm sử dụng công cụ EDA hay khai thác thư viện như các hội thảo thực tiễn rời rạc hiện nay.

Khởi đầu với vai trò nhà nghiên cứu chất bán dẫn hệ thống tại Bộ phận DS của Samsung Electronics, giành Giải Bạc Giải thưởng Công nghệ Samsung (Giải thưởng của Chủ tịch Tập đoàn) trong lĩnh vực tự động hóa thiết kế, đồng thời từng đảm nhiệm vị trí Director tại các pháp nhân ở Anh và Đức cũng như Trưởng nhóm Tiếp thị & Kinh doanh System LSI, đây là khóa học thực tiễn độc đáo do một giáo sư kỹ thuật đang hành nghề với 30 năm kinh nghiệm trực tiếp thiết kế và kiểm chứng trên FPGA.

[ Điểm khác biệt cốt lõi dành cho nhân sự đang làm việc trong ngành & kỹ sư tương lai ]

  • Vượt qua giới hạn của kỹ sư đang làm việc trong ngành: Không chỉ dừng lại ở việc chỉnh sửa mã hoặc sử dụng IP có sẵn, bạn sẽ xây dựng năng lực thực tiễn ở cấp độ kiến trúc để trực tiếp thiết kế NPU và CPU bằng RTL.

  • Xây dựng quy trình thực hành Full-Flow: Hoàn thiện toàn bộ chuỗi giá trị từ phân tích thuật toán AI đến triển khai FPGA và kiểm chứng tích hợp phần cứng Bit-True, rồi mở rộng SoC AI dựa trên CPU + NPU + RTOS.

  • Đã được kiểm chứng thực tế: Vượt ra ngoài lý thuyết trong giảng đường đại học, khóa học chắt lọc những bí quyết thiết kế từ tuyến đầu ngành và cung cấp quy trình đã được kiểm chứng, có thể áp dụng ngay vào thực tế.

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

Không chỉ dành cho sinh viên đại học và học viên cao học, khóa học còn cung cấp hướng dẫn thực chiến tốt nhất, không thể thay thế, cho cả những người đang đi làm mong muốn vươn lên trở thành nhà thiết kế chất bán dẫn AI/SoC thế hệ tiếp theo.

 

Từ lý thuyết đến triển khai phần cứng AI thực tế

Chỉ với những kiến thức rời rạc và manh mú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 hộp đen đã hoàn thiện. Mục tiêu là từng bước trang bị năng lực thiết kế hệ thống, bao gồm tự thiết kế AI NPU và CPU RISC-V, tích hợp bộ nhớ và các thiết bị ngoại vi, port RTOS trên đó, và cuối cùng có thể xây dựng SoC AI của riêng mình.

Bắt đầu từ nền tảng về transistor và mạch kỹ thuật số, khóa học kết nối các kiến thức này qua FPGA, CPU, NPU, cho đến phần cứng tăng tốc Transformer và LLM.

 

Kiểm chứng kết quả nghiên cứu trên phần cứng FPGA thực tế.

Đây không phải là một 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ả của mô hình Python và RTL khớp nhau đến từng bit.

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. Chúng tôi công khai mã nguồn cần thiết cho phần thực hành, bao gồm CPU RISC-V do chính chúng tôi 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, khóa học cũng có thể sử dụng trên các bo mạch FPGA của Digilent, bao gồm cả Zybo Z7. Bạn chỉ cần điều chỉnh ánh xạ chân XDC (bo mạch) và các tham số chia tần số xung nhịp (RTL) cho phù hợp với bo mạch. Đối với khóa học 'NPU MNIST được xây dựng bằng FPGA', chỉ cần điều chỉnh ánh xạ chân XDC; còn các khóa học sử dụng OLED và Camera thì cần điều chỉnh các 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 lại giá trị chia tần để tần số mục tiêu vẫn giữ nguyên. 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ì vậy rất dễ nhầm là lỗi mã. Vui lòng kiểm tra.

 

Lộ trình full-stack liền mạch: từ nền tảng đế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ồ.

  • Step 1: Cơ bản về 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ộ tăng 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ả 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.

  • Kiểm chứng 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 quỹ 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í học thuật danh tiếng IJIBC được KCI xếp hạng A)

  • Được công nhận trên toàn cầu: Đã xuất bản 4 cuốn sách kỹ thuật trên Amazon toàn cầu (đạt vị trí số 1 về doanh số bán chạy nhất)


    Sách đã xuất bản: Roger Kim: sách, tiểu sử, cập nhật mới 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 đã hoạt động hoàn hảo trong môi trường Arty S7

     

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

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á

Tất cả

1 đánh giá

5.0

1 đánh giá

  • katechmario270520님의 프로필 이미지
    katechmario270520

    Đánh giá 1

    ∙

    Đánh giá trung bình 5.0

    5

    67% đã tham gia

    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!

    Giảm 25% cho thành viên mới

    572.486 ₫

    25%

    763.316 ₫