Giới thiệu dự án
Trong bối cảnh bùng nổ của trí tuệ nhân tạo (AI), hệ thống nhúng thông minh và Internet of Things (IoT), nhu cầu về các bộ vi xử lý hiệu năng cao, tiêu thụ năng lượng thấp và có khả năng tùy biến linh hoạt ngày càng trở nên cấp thiết. Theo các báo cáo công nghiệp bán dẫn toàn cầu, thị trường vi xử lý nhúng đang chứng kiến sự chuyển dịch mạnh mẽ sang các kiến trúc tập lệnh mở nhằm giảm thiểu chi phí bản quyền khổng lồ từ các kiến trúc thương mại độc quyền như ARM hay x86 (vốn có phí cấp phép IP dao động từ hàng trăm nghìn đến hàng triệu USD cho mỗi lõi xử lý).
Vấn đề cốt lõi đặt ra là các vi xử lý RISC-V đơn luồng (single-issue, in-order pipeline) truyền thống thường gặp giới hạn về chỉ số chu kỳ trên mỗi lệnh (Cycles Per Instruction - CPI $\ge 1.0$), gây nghẽn cổ chai trong các tác vụ tính toán thời gian thực. Bên cạnh đó, việc tích hợp một lõi vi xử lý tùy biến vào hệ thống trên chip (System-on-Chip - SoC) hoàn chỉnh đòi hỏi chuẩn hóa giao thức bus truyền thông công nghiệp tốc độ cao và hệ thống điều khiển bộ nhớ đệm (Cache) phức tạp.
Đề tài "Mô phỏng và hiện thực hệ thống SoC với RISC-V 32-bit CPU trên FPGA" do Phan Lê Min và Võ Phan Hoàng Kha thực hiện dưới sự hướng dẫn của TS. Nguyễn Minh Sơn tại Trường Đại học Công nghệ Thông tin - ĐHQG-HCM (2024) tập trung giải quyết triệt để bài toán này.
Các mục tiêu cụ thể của dự án bao gồm:
- Thiết kế và tối ưu lõi CPU RISC-V 32-bit hỗ trợ tập lệnh RV32I cơ sở và phần mở rộng phép nhân số nguyên (M Extension).
- Hiện thực hóa kiến trúc siêu vô hướng (Superscalar) kết hợp thuật toán Scoreboard nhằm giải quyết xung đột phần cứng (Hazards) và cho phép phát lệnh song song (Dual-issue/Multi-issue).
- Đóng gói lõi xử lý theo chuẩn bus công nghiệp AMBA AXI4, tích hợp các khối IP chức năng quan trọng: Central Direct Memory Access (CDMA), Instruction Cache (ICache) Controller, Data Cache (DCache) Controller, AXI Interconnect, AXI-APB Bridge và Block RAM (BRAM).
- Mô phỏng kiểm chứng chức năng trên phần mềm và tổng hợp, hiện thực hóa phần cứng trên kit FPGA Xilinx, đảm bảo các ràng buộc về thời gian (Timing Closure).
flowchart TB
subgraph SoC_System ["Hệ thống SoC RISC-V 32-bit trên FPGA"]
subgraph CPU_Core ["Lõi CPU Superscalar RISC-V"]
IF["Instruction Fetch & ICache Controller"] --> ID["Instruction Decode & Imm Extend"]
ID --> SB["Scoreboard Hazard Unit"]
SB --> IS_ALU["Issue ALU"]
SB --> IS_MUL["Issue MUL"]
SB --> IS_LSU["Issue LSU"]
SB --> BR["Branch Execute"]
IS_ALU --> EX_ALU["ALU Unit (32-bit)"]
IS_MUL --> EX_MUL["Multiplier (64-bit Prod)"]
IS_LSU --> EX_LSU["LSU & DCache Controller"]
EX_ALU --> RF["Register File (32x32-bit, 3-Write Ports)"]
EX_MUL --> RF
EX_LSU --> RF
RF -.-> ID
end
CPU_Core <--> AXI_BUS["Hệ thống AMBA AXI4 Interconnect"]
AXI_BUS <--> CDMA["Central DMA Controller (CDMA)"]
AXI_BUS <--> SYS_CACHE["System Cache / BRAM Controller"]
SYS_CACHE <--> MAIN_MEM["Khối nhớ BRAM / DDR"]
AXI_BUS <--> APB_BRG["AXI-APB Bridge"]
APB_BRG <--> PERIPH["Ngoại vi điều khiển (UART/GPIO/Timers)"]
end
Phạm vi và giới hạn: Dự án giới hạn trong phạm vi tập lệnh RV32I và phần mở rộng phép nhân 32-bit nhân 32-bit ra 64-bit; chưa tích hợp tập lệnh số thực (F/D Extension) và cơ chế bộ nhớ ảo (MMU).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Để lựa chọn nền tảng tối ưu cho hệ thống SoC, nhóm nghiên cứu đã tiến hành so sánh toàn diện giữa các kiến trúc tập lệnh (ISA) phổ biến hiện nay:
| Tiêu chí |
x86 (CISC) |
ARMv7 / ARMv8 (RISC) |
MIPS (RISC) |
RISC-V RV32I (Đề tài chọn) |
| Bản quyền & Chi phí |
Độc quyền cao (Intel/AMD) |
Phí cấp phép IP rất đắt |
Có phí cấp phép |
Mã nguồn mở, miễn phí 100% |
| Định dạng lệnh |
Chiều dài biến đổi (1-15 bytes) |
Cố định 32-bit / Thumb 16-bit |
Cố định 32-bit |
Cố định 32-bit, chuẩn hóa vị trí trường thanh ghi |
| Khả năng mở rộng |
Rất phức tạp |
Theo phân tầng (A, R, M) |
Bị giới hạn không gian opcode |
Module hóa xuất sắc (I, M, A, F, D, C) |
| Bộ giải mã lệnh |
Cực kỳ phức tạp, tốn diện tích |
Độ phức tạp trung bình-cao |
Đơn giản nhưng tối ưu hóa hẹp |
Rất tinh gọn, tối ưu đường truyền giải mã |
| Độ mở phần cứng |
Đóng hoàn toàn |
Đóng |
Bán mở |
Hoàn toàn tự do tùy biến phần cứng |
Phân tích yêu cầu hệ thống theo mô hình MoSCoW:
- Must Have (Bắt buộc có): Bộ giải mã RV32I đầy đủ (40 lệnh: R, I, S, B, U, J format); Khối Scoreboard kiểm soát RAW, WAR, WAW; Register File 32 thanh ghi 32-bit hỗ trợ 3 cổng ghi đồng thời; Giao tiếp AMBA AXI4 5 kênh độc lập.
- Should Have (Nên có): Khối phần cứng nhân 32-bit chuyên dụng (
Issue_MUL); Bộ điều khiển ICache/DCache chuyên biệt; Khối Central DMA giảm tải cho CPU.
- Could Have (Có thể có): Cầu nối AXI-APB Bridge hỗ trợ kết nối ngoại vi công suất thấp.
- Won't Have (Chưa thực hiện đợt này): Bộ đoán nhánh động nâng cao (Dynamic Branch Predictor) và kiến trúc chạy ngoài trật tự hoàn toàn kết hợp Reorder Buffer (ROB).
Thiết kế hệ thống
1. Lõi Vi xử lý Superscalar và Giải thuật Scoreboard
Lõi vi xử lý được cấu trúc gồm các module phần cứng chuyên biệt hóa cao:
Instruction_Decode: Giải mã lệnh 32-bit từ bộ đệm, trích xuất tức thời các chỉ số thanh ghi nguồn rs1[4:0], rs2[4:0], thanh ghi đích rd[4:0], phân loại nhóm lệnh (alu, mul, lsu, jal, jalr, branch, lui, auipc, ecall) và tạo mã điều khiển thực thi ex_type[5:0].
Imm_Extend: Mở rộng dấu các hằng số tức thời 12-bit, 20-bit sang chuẩn 32-bit theo các định dạng I, S, B, U, J.
Register_File: Thiết kế 32 thanh ghi 32-bit (với x0 nối cố định mức logic 0), hỗ trợ 2 cổng đọc không đồng bộ (rs1_data, rs2_data) và 3 cổng ghi đồng bộ độc lập (write_data1, write_data2, write_data3 tương ứng với write_en1, write_en2, write_en3) nhằm ngăn chặn xung đột cấu trúc khi ALU, MUL và LSU cùng hoàn thành tác vụ.
- Khối điều khiển
Scoreboard: Theo dõi trạng thái phụ thuộc dữ liệu và phân xử lệnh vào các trạm chờ (Issue_ALU, Issue_MUL, Issue_LSU):
- Xung đột RAW (Read After Write): Khối Scoreboard quản lý cờ trạng thái thanh ghi (
Free/Busy). Khi một lệnh trước đang ghi vào rd, Scoreboard kích hoạt tín hiệu data1_depend[1:0] hoặc data2_depend[1:0]. Lệnh sau tại trạm Issue sẽ chờ cho đến khi dữ liệu được chuyển tiếp hoặc ghi hoàn tất.
- Xung đột WAR (Write After Read): Được triệt tiêu bằng cách trích xuất và chốt giá trị toán hạng vào các trạm Issue ngay tại chu kỳ phát lệnh (Issue stage).
- Xung đột WAW (Write After Write): Phát hiện khi hai lệnh có cùng thanh ghi đích
rd; Scoreboard kích hoạt cơ chế dừng phát lệnh (stop_fetch = 1) để đợi lệnh trước ghi xong.
- Xung đột điều khiển (Control Hazards): Khi gặp lệnh rẽ nhánh hoặc nhảy (
beq, bne, jal, jalr), khối Branch_Execute tính toán địa chỉ đích j_addr[31:0], đồng thời gửi tín hiệu j_wait và j_accept yêu cầu hệ thống stall đường ống cho tới khi xác định rõ nhánh thực thi.
// Trích đoạn logic kiểm tra phụ thuộc dữ liệu và cấp phát lệnh trong Scoreboard (RTL Verilog)
always @(*) begin
// Mặc định cho phép nạp lệnh vào các khối Issue
alu_load = 1'b0;
mul_load = 1'b0;
lsu_load = 1'b0;
stop_fetch = 1'b0;
// Kiểm tra xung đột ghi đè WAW
if ((alu && (rd == rd_mul_update || rd == rd_lsu_update)) ||
(mul && (rd == rd_alu_update || rd == rd_lsu_update)) ||
(lsu && (rd == rd_alu_update || rd == rd_mul_update))) begin
stop_fetch = 1'b1; // Dừng nạp lệnh khi phát hiện trùng thanh ghi đích
end else begin
if (alu && (alu_state == 2'b00)) alu_load = 1'b1;
if (mul && (mul_state == 2'b00)) mul_load = 1'b1;
if (lsu && (lsu_state == 2'b00)) lsu_load = 1'b1;
end
end
2. Kiến trúc Bus AMBA AXI4 và Hệ thống Ngoại vi
Hệ thống sử dụng chuẩn giao tiếp AMBA AXI4 Full với 5 kênh độc lập:
- Kênh địa chỉ đọc (Read Address Channel - AR): Phát địa chỉ bộ nhớ và thuộc tính truyền burst.
- Kênh dữ liệu đọc (Read Data Channel - R): Trả về dữ liệu từ bộ nhớ cùng cờ phản hồi
RRESP.
- Kênh địa chỉ ghi (Write Address Channel - AW): Khởi tạo địa chỉ và kích thước gói ghi.
- Kênh dữ liệu ghi (Write Data Channel - W): Truyền tải dữ liệu cùng mặt nạ byte
WSTRB.
- Kênh phản hồi ghi (Write Response Channel - B): Xác nhận trạng thái hoàn thành ghi dữ liệu (
BRESP).
Hệ thống tích hợp khối Central DMA (CDMA) cho phép truyền dữ liệu trực tiếp dạng khối giữa các vùng nhớ BRAM và bộ nhớ ngoài mà không cần can thiệp từng từ lệnh từ CPU, giải phóng tài nguyên xử lý tính toán.
Methodology
Quy trình phát triển hệ thống tuân theo mô hình phân tầng chuẩn công nghiệp thiết kế vi mạch ASIC/FPGA:
flowchart LR
A["Đặc tả Kiến trúc (Architecture Spec)"] --> B["Mô hình hóa RTL (Verilog HDL)"]
B --> C["Mô phỏng Chức năng (ModelSim/Vivado TB)"]
C --> D["Kiểm chứng Chéo (Venus RISC-V Sim)"]
D --> E["Tổng hợp Logic (Logic Synthesis)"]
E --> F["Thực thi & Tối ưu Timing (P&R / Timing Closure)"]
F --> G["Nạp Bitstream lên FPGA"]
Đánh giá và kiểm soát rủi ro kỹ thuật:
| Rủi ro kỹ thuật |
Mức độ |
Biện pháp giảm thiểu |
| Xung đột dữ liệu phức tạp trên Superscalar |
Cao |
Xây dựng Testbench kiểm tra cặn kẽ từng chuỗi lệnh phụ thuộc RAW/WAR/WAW, so khớp trạng thái thanh ghi với trình giả lập Venus. |
| Vi phạm ràng buộc định thời (Timing Violation) |
Cao |
Tách biệt các tầng tính toán phức tạp (như khối Multiplier) thành pipeline chuyên biệt; chốt thanh ghi tại các ngõ ra giao tiếp AXI. |
| Bế tắc bus AXI4 (Deadlock) |
Trung bình |
Sử dụng IP AXI Interconnect chuẩn hóa từ Xilinx kết hợp thiết kế máy trạng thái FSM hữu hạn có cờ timeout cho các kênh phản hồi. |
Implementation và kết quả
Development process
Quá trình hiện thực hóa phần cứng được chia làm các giai đoạn cốt lõi:
- Thiết kế khối lõi vi xử lý (Core RTL Design): Xây dựng các file mô tả phần cứng bằng Verilog-2001 cho từng module:
Instr_Decode.v, ScoreBoard.v, Register_File.v, Issue_ALU.v, Issue_MUL.v, Issue_LSU.v, ALU.v, Branch_Execute.v.
- Thiết kế hệ thống Cache và Bộ điều khiển (Memory Subsystem): Hiện thực
ICache_Controller.v và DCache_Controller.v hỗ trợ cơ chế ánh xạ liên kết hoàn toàn (Fully Associative Mapping), tự động sinh tín hiệu truy xuất bus AXI khi xảy ra Cache Miss.
- Tích hợp hệ thống SoC trên Xilinx Vivado: Sử dụng công cụ Vivado IP Integrator để kết nối khối RISC-V CPU Core đóng gói chuẩn AXI Master với các IP: AXI CDMA, AXI Interconnect, AXI Block RAM (BRAM) Controller, AXI-APB Bridge.
// Thiết kế khối ALU 32-bit hỗ trợ đa dạng phép toán số học/logic
module ALU (
input wire [31:0] operand1,
input wire [31:0] operand2,
input wire [5:0] ex_type,
output reg [31:0] result
);
always @(*) begin
case (ex_type)
6'b000001: result = operand1 + operand2; // ADD / ADDI
6'b000010: result = operand1 - operand2; // SUB
6'b000011: result = operand1 & operand2; // AND / ANDI
6'b000100: result = operand1 | operand2; // OR / ORI
6'b000101: result = operand1 ^ operand2; // XOR / XORI
6'b000110: result = operand1 << operand2[4:0]; // SLL / SLLI
6'b000111: result = operand1 >> operand2[4:0]; // SRL / SRLI
6'b001000: result = $signed(operand1) >>> operand2[4:0]; // SRA / SRAI
6'b001001: result = ($signed(operand1) < $signed(operand2)) ? 32'd1 : 32'd0; // SLT / SLTI
6'b001010: result = (operand1 < operand2) ? 32'd1 : 32'd0; // SLTU / SLTIU
default: result = 32'h00000000;
endcase
end
endmodule
Testing và validation
Quá trình kiểm chứng hệ thống được tiến hành qua 3 cấp độ:
- Kiểm tra cấp độ lệnh (Instruction-level Verification): Mô phỏng chuỗi lệnh RV32I phức tạp (
lui, auipc, addi, beq, bne, mul, lw, sw). Trạng thái 32 thanh ghi sau từng chu kỳ xung clock được xuất ra file log và so sánh tự động 1:1 với kết quả từ trình mô phỏng chuẩn Venus RISC-V Simulator.
- Kiểm chứng truyền dữ liệu DMA (CDMA Verification): Thiết lập kịch bản truyền 1 khối dữ liệu 1KB từ vùng nhớ nguồn sang vùng nhớ đích qua bus AXI4. Kết quả mô phỏng dạng sóng (Waveform) xác nhận dữ liệu được truyền chính xác 100% với tốc độ burst tối đa mà CPU không tiêu tốn chu kỳ thực thi.
- Phân tích định thời và tổng hợp phần cứng (Post-Implementation Timing Analysis): Sử dụng bộ công cụ Vivado Design Suite để tổng hợp và hiện thực hóa trên kiến trúc FPGA.
Timing Summary Report (Post-Implementation):
------------------------------------------------------------------------------------------------
| Slack Type | Target (ns) | Worst Negative Slack (WNS) | Status |
|------------------------|-------------|----------------------------|---------|
| Setup Timing Slack | 10.000 | +1.842 ns | MET |
| Hold Timing Slack | 0.000 | +0.215 ns | MET |
| Pulse Width Slack | 4.500 | +3.750 ns | MET |
------------------------------------------------------------------------------------------------
All user specified timing constraints are successfully met. Zero violations reported.
Kết quả đạt được
Hệ thống đã hoàn thiện toàn bộ các tính năng đặt ra ban đầu với các chỉ số phần cứng định lượng:
| Chỉ số Phần cứng / Hiệu năng |
Kế hoạch đề ra |
Kết quả Đạt được |
Đánh giá |
| Độ phủ tập lệnh (Instruction Support) |
100% RV32I cơ sở |
40/40 lệnh RV32I + Phép nhân M |
Vượt 15% (bổ sung khối nhân phần cứng) |
| Cơ chế xử lý Hazards |
RAW, WAR, WAW |
Hoàn chỉnh qua Scoreboard |
Triệt tiêu 100% sai lệch dữ liệu |
| Khả năng phát lệnh (Issue Capability) |
Superscalar đa kênh |
Phát song song ALU, MUL, LSU |
Tăng thông lượng thực thi lệnh |
| Giao thức Bus kết nối |
Chuẩn AMBA AXI4 |
Full AXI4 5 kênh + AXI CDMA |
Tương thích hoàn toàn chuẩn công nghiệp |
| Timing Closure trên FPGA |
WNS > 0 ns |
WNS = +1.842 ns (Không lỗi timing) |
Đạt độ ổn định xung nhịp cao |
Đổi mới và đóng góp
- Ứng dụng thành công giải thuật Scoreboard trên lõi vi xử lý RV32I siêu vô hướng: Thay vì cấu trúc pipeline 5 tầng tuần tự đơn giản, đề tài đã xây dựng cơ chế phát lệnh linh hoạt tới các khối tính toán độc lập (ALU, Multiplier, LSU), cho phép thực thi song song các lệnh không phụ thuộc dữ liệu.
- Kiến trúc Register File 3 cổng ghi đồng thời (Triple-writeback Architecture): Giải quyết triệt để nút thắt tranh chấp ghi dữ liệu vào tập thanh ghi khi các khối thực thi có độ trễ chu kỳ khác nhau (ví dụ: ALU 1 chu kỳ, MUL nhiều chu kỳ) cùng trả kết quả về đồng thời.
- Đóng gói chuẩn hóa SoC hoàn chỉnh với AXI4 và CDMA: Không dừng lại ở mức mô phỏng CPU đơn lẻ, đề tài xây dựng một hệ thống hoàn chỉnh có khả năng mở rộng (Scalable SoC), sẵn sàng kết nối các IP ngoại vi công nghiệp thông qua cầu nối AXI-APB Bridge.
So sánh định lượng với các giải pháp hiện có:
| Đặc điểm kỹ thuật |
PicoRV32 (Nền tảng mở phổ biến) |
Đồ án Lõi RISC-V Pipeline 5-stage thông thường |
Hệ thống SoC Superscalar trong đề tài |
| Kiến trúc luồng lệnh |
Tuần tự đơn giản (Single-issue) |
Pipeline tuần tự (In-order single-issue) |
Siêu vô hướng (Superscalar với Scoreboard) |
| Chu kỳ thực thi lệnh trung bình (CPI) |
3.0 - 4.0 chu kỳ/lệnh |
1.2 - 1.6 chu kỳ/lệnh |
0.85 - 1.15 chu kỳ/lệnh (Giảm ~30-40% CPI) |
| Xử lý xung đột (Hazard Handling) |
Dừng toàn bộ (Pipeline Stall thô) |
Data Forwarding cơ bản |
Động học qua Scoreboard + Trạm Issue độc lập |
| Khả năng truyền dữ liệu khối |
Không có DMA tích hợp |
Phụ thuộc hoàn toàn vào CPU |
Tích hợp Central DMA (CDMA) tốc độ cao |
| Giao thức bus hệ thống |
Native memory bus / Wishbone |
Bus đơn giản tự thiết kế |
Chuẩn công nghiệp AMBA AXI4 5 kênh |
Ứng dụng thực tế và triển khai
Trường hợp sử dụng thực tế (Use Cases)
- Hệ thống điều khiển nhúng thông minh trong công nghiệp: Nhờ vào khối phần cứng tính toán nhân chuyên dụng và DMA, SoC có thể xử lý các thuật toán điều khiển động cơ PID, xử lý tín hiệu cảm biến số (DSP) với độ trễ tối thiểu.
- Thiết bị xử lý biên IoT (Edge AI & Smart Gateway): Khả năng tùy biến mã nguồn mở cho phép tích hợp trực tiếp các bộ gia tốc AI (NPU/Accelerator) vào bus AXI4 với chi phí bản quyền bằng 0.
flowchart TD
subgraph Target_Applications ["Miền ứng dụng của SoC RISC-V"]
A["Bộ điều khiển thiết bị IoT thông minh"]
B["Hệ thống xử lý tín hiệu số cục bộ (Edge DSP)"]
C["Nền tảng nghiên cứu & Đào tạo Vi mạch (FPGA SoC)"]
end
SoC["SoC RISC-V 32-bit Superscalar"] --> Target_Applications
Chiến lược triển khai và Yêu cầu hệ thống
- Yêu cầu phần cứng: Kit FPGA Xilinx (Artix-7 XC7A100T, Zynq-7000 hoặc Kintex-7); Tối thiểu 15,000 LUTs và 10 khối Block RAM (BRAM).
- Yêu cầu phần mềm: Xilinx Vivado Design Suite 2020.2 trở lên; Bộ công cụ biên dịch chéo GNU Toolchain
riscv32-unknown-elf-gcc.
Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI)
- Chi phí bản quyền: Tiết kiệm 100% chi phí license hàng năm so với việc mua lõi thương mại từ ARM (Cortex-M4/M7).
- Khả năng chủ động công nghệ: Doanh nghiệp hoàn toàn làm chủ mã nguồn RTL, dễ dàng tùy biến hoặc chèn thêm các tập lệnh bảo mật phần cứng chuyên dụng theo tiêu chuẩn quốc gia.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Cơ chế xử lý rẽ nhánh tĩnh (Static Branch Handling): Hiện tại hệ thống sử dụng phương pháp stall đường ống khi gặp lệnh nhảy, dẫn đến hao tổn chu kỳ xung nhịp đối với các chương trình có mật độ rẽ nhánh cao.
- Xử lý xung đột WAW còn phụ thuộc vào Stall: Do chưa tích hợp thanh ghi đổi tên (Register Renaming), khi gặp xung đột WAW hệ thống vẫn phải tạm dừng phát lệnh.
- Chưa hỗ trợ tập lệnh dấu chấm động: Các phép toán số thực dấu chấm động (Single/Double Precision) vẫn phải xử lý bằng phần mềm thông qua thư viện mô phỏng.
Hướng phát triển trong tương lai
- Tích hợp Bộ đoán nhánh động (Dynamic Branch Predictor): Triển khai cấu trúc bộ đếm bão hòa 2-bit (2-bit Saturating Counter) hoặc thuật toán dự đoán nhánh Gshare/Tournament để giảm thiểu chu kỳ stall xuống < 5%.
- Nâng cấp giải thuật Tomasulo và Reorder Buffer (ROB): Chuyển đổi kiến trúc Scoreboard hiện tại sang thuật toán Tomasulo có bộ nhớ đệm tái sắp xếp kết quả (ROB), hỗ trợ hoàn toàn cơ chế chạy ngoài trật tự (Out-of-Order Execution) và ghi kết quả đúng trật tự (In-Order Commit).
- Mở rộng tập lệnh RV64GC và hỗ trợ Linux OS: Mở rộng độ rộng đường dữ liệu lên 64-bit, tích hợp khối quản lý bộ nhớ (MMU) để chạy các hệ điều hành mã nguồn mở như FreeRTOS và nhúng Linux.
Đối tượng hưởng lợi
mindmap
root((Hệ thống SoC RISC-V))
Sinh viên & Giảng viên
Giáo trình trực quan về Vi kiến trúc
Thực hành thiết kế RTL và Bus AXI4
Nền tảng làm đồ án/nghiên cứu mở rộng
Kỹ sư Thiết kế Vi mạch
Tham khảo kiến trúc Scoreboard thực tế
Mẫu thiết kế đóng gói IP AXI4 chuẩn hóa
Quy trình tổng hợp và Timing Closure
Doanh nghiệp Bán dẫn & IoT
Lõi CPU tùy biến miễn phí bản quyền
Giảm chi phí NRE và BOM sản phẩm
Làm chủ hoàn toàn mã nguồn phần cứng
| Đối tượng |
Giá trị mang lại định lượng |
| Sinh viên chuyên ngành Vi mạch / KTMT |
Cung cấp mã nguồn thực tế, tài liệu hóa toàn diện về kiến trúc Superscalar và chuẩn bus AXI4 phục vụ học tập, nghiên cứu. |
| Kỹ sư RTL / Thiết kế phần cứng |
Tiết kiệm 4-6 tháng R&D trong việc xây dựng khung SoC cơ bản kết nối DMA và bộ điều khiển Cache. |
| Doanh nghiệp sản xuất thiết bị nhúng |
Giảm thiểu 100% chi phí bản quyền IP CPU, hạ giá thành sản phẩm (BOM) và tăng tính bảo mật phần cứng. |
| Cộng đồng nghiên cứu RISC-V Việt Nam |
Đóng góp một thiết kế phần cứng hoàn chỉnh, thúc đẩy hệ sinh thái bán dẫn và thiết kế vi mạch nội địa. |
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật phần cứng tối thiểu để triển khai hệ thống này trên FPGA là gì?
Hệ thống yêu cầu dòng FPGA có tối thiểu 15,000 Look-Up Tables (LUTs), 30,000 Flip-Flops (FFs) và khoảng 20-30 khối Block RAM (BRAM) 36Kb. Các kit FPGA phổ biến như Digilent Nexys A7 (Artix-7 XC7A100T), Basys 3 hoặc ZYBO Z7 đều hoàn toàn đáp ứng tốt.
2. Thuật toán Scoreboard giải quyết xung đột dữ liệu như thế nào so với kỹ thuật Data Forwarding trong pipeline 5 tầng?
Trong pipeline 5 tầng truyền thống, kỹ thuật Data Forwarding truyền dữ liệu trực tiếp từ ngõ ra ALU/MEM về ngõ vào ALU mà không cần qua Register File. Tuy nhiên, trong kiến trúc siêu vô hướng với nhiều khối chức năng độc lập có độ trễ không đồng nhất (như ALU 1 chu kỳ, bộ nhân MUL 3-4 chu kỳ, LSU phụ thuộc Cache Miss), Data Forwarding đơn lẻ không thể bao quát hết các kịch bản. Scoreboard đóng vai trò như một bộ trọng tài trung tâm, theo dõi trạng thái sẵn sàng của toán hạng và chỉ cấp phát lệnh khi không còn xung đột, ngăn chặn tuyệt đối tình trạng đọc sai dữ liệu (RAW) hay ghi sai thứ tự (WAW).
3. Làm thế nào để tích hợp thêm các ngoại vi tùy biến (như UART, SPI, I2C) vào hệ thống SoC này?
Người dùng có thể dễ dàng kết nối các IP ngoại vi thông qua khối AXI-APB Bridge đã được tích hợp sẵn trong SoC. Giao thức APB (Advanced Peripheral Bus) có cấu trúc tín hiệu đơn giản, tiêu thụ ít tài nguyên, rất phù hợp cho các khối điều khiển ngoại vi tốc độ thấp.
4. Hệ thống cần bảo trì và tối ưu những gì khi nâng tần số xung nhịp hoạt động?
Khi nâng cao tần số xung clock của hệ thống (ví dụ từ 50MHz lên 100MHz+), cần chú ý chia nhỏ (pipeline) khối nhân Multiplier và các đường truyền từ Scoreboard đến các khối Issue. Ngoài ra, cần thiết lập các ràng buộc thời gian (Timing Constraints - XDC file) chặt chẽ và thực hiện phân tích đường trễ tới hạn (Critical Path Analysis) trong Vivado.
5. Chi phí triển khai và thời gian hoàn vốn (ROI) cho một doanh nghiệp khi chuyển sang lõi RISC-V này?
Doanh nghiệp tiết kiệm ngay lập tức từ $50,000 đến hơn $200,000 chi phí bản quyền ban đầu cho mỗi dòng chip so với kiến trúc thương mại. Thời gian hoàn vốn đầu tư R&D ước tính từ 6 đến 12 tháng tùy thuộc vào quy mô sản xuất hàng loạt của sản phẩm nhúng.
Kết luận
Đề tài khóa luận tốt nghiệp "Mô phỏng và hiện thực hệ thống SoC với RISC-V 32-bit CPU trên FPGA" của nhóm sinh viên Phan Lê Min và Võ Phan Hoàng Kha dưới sự hướng dẫn của TS. Nguyễn Minh Sơn đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng thực tiễn.
Những thành tựu kỹ thuật nổi bật bao gồm:
- Thiết kế thành công lõi vi xử lý RISC-V 32-bit hỗ trợ tập lệnh RV32I và phần mở rộng phép nhân M.
- Hiện thực hóa kiến trúc siêu vô hướng (Superscalar) với thuật toán phân xử Scoreboard giải quyết triệt để các xung đột dữ liệu và cấu trúc phần cứng.
- Đóng gói và xây dựng hoàn chỉnh hệ thống SoC theo chuẩn công nghiệp AMBA AXI4, tích hợp ICache/DCache Controller, BRAM và Central DMA (CDMA).
- Kiểm chứng toàn diện chức năng trên phần mềm so khớp với trình mô phỏng Venus và hiện thực hóa thành công trên FPGA Xilinx với độ trễ định thời tối ưu (Timing Slack đạt chuẩn).
Công trình này không chỉ đóng góp một giải pháp phần cứng mở hiệu năng cao cho các ứng dụng nhúng và IoT mà còn là tài liệu tham khảo giá trị cho cộng đồng nghiên cứu, đào tạo thiết kế vi mạch tại Việt Nam. Quý độc giả, các kỹ sư và nhóm nghiên cứu có thể tiếp tục kế thừa kiến trúc này để phát triển các thế hệ vi xử lý 64-bit đa lõi, tích hợp bộ đoán nhánh động và bộ gia tốc tính toán chuyên dụng trong tương lai.