Giới thiệu dự án

Trong kỷ nguyên số hóa và phát triển mạnh mẽ của Internet vạn vật (IoT), các thiết bị thông minh và hệ thống tính toán biên (Edge Computing) đòi hỏi các bộ vi xử lý không chỉ có hiệu năng tính toán cao mà còn phải tối ưu hóa về mặt diện tích silicon và mức tiêu thụ năng lượng. Theo các báo cáo từ ngành công nghiệp bán dẫn toàn cầu, sự phụ thuộc vào các kiến trúc tập lệnh độc quyền như x86 hay ARM đi kèm với chi phí bản quyền IP (Intellectual Property) lên đến hàng triệu USD, tạo ra rào cản tài chính lớn cho các doanh nghiệp vừa và nhỏ cũng như giới nghiên cứu học thuật. Kiến trúc tập lệnh mã nguồn mở RISC-V ra đời như một bước ngoặt, mở ra khả năng tùy biến vi kiến trúc phần cứng mà không chịu ràng buộc pháp lý hay chi phí cấp phép.

Đề tài "Mô phỏng và hiện thực 32-bit RISC-V CPU trên FPGA" giải quyết bài toán hiện thực hóa một bộ xử lý chuẩn công nghiệp trên nền tảng phần cứng tái cấu hình FPGA (Field Programmable Gate Array). Thiết kế bộ xử lý đơn chu kỳ (Single-cycle) truyền thống tồn tại nhược điểm lớn: chu kỳ xung nhịp (Clock Period) bị kéo dài bởi đường dẫn trễ tới hạn (Critical Path Delay) qua toàn bộ các khối chức năng trong một nhịp, dẫn đến xung nhịp tổng thể thấp và thông lượng xử lý kém.

Để khắc phục hạn chế này, mục tiêu cụ thể của dự án được xác định rõ ràng:

  1. Thiết kế vi kiến trúc vi xử lý RISC-V 32-bit RV32I áp dụng kỹ thuật đường ống 5 tầng (5-Stage Pipeline: IF, ID, EX, MEM, WB) nhằm thực thi song song nhiều lệnh và nâng cao xung nhịp tối đa ($F_{max}$).
  2. Xây dựng và tích hợp các khối xử lý xung đột đường ống (Pipeline Hazard Units) gồm Forwarding Unit (chuyển tiếp dữ liệu) và Hazard Detection Unit (phát hiện và hoãn xung đột), triệt tiêu Data Hazard, Structural Hazard và Control Hazard.
  3. Đóng gói bộ xử lý thành một IP Core Master chuẩn giao tiếp AMBA AXI4, cho phép CPU tích hợp mượt mà vào hệ thống SoC (System-on-Chip) hiện đại.
  4. Tích hợp hệ sinh thái ngoại vi và bộ nhớ tốc độ cao thông qua Vivado Block Design gồm IP System Cache v5, IP Memory Interface Generator (MIG 7 Series) điều khiển DDR RAM, Central Direct Memory Access (CDMA) và AXI BRAM Controller.
  5. Mô phỏng kiểm tra chức năng đối chuẩn với trình giả lập Venus RISC-V và hiện thực hóa phần cứng thực tế (Generate Bitstream) trên kit FPGA Xilinx Virtex-7 VC707.

Phạm vi của đề tài tập trung hoàn thiện trọn vẹn tập lệnh số nguyên cơ sở 32-bit (RV32I Base Integer ISA) gồm 40 lệnh phần cứng, chưa mở rộng sang các tập lệnh dấu chấm động (F/D Extension) hay hỗ trợ bộ nhớ ảo (MMU - Memory Management Unit).


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi bắt tay vào thiết kế phần cứng, việc đánh giá các kiến trúc tập lệnh (ISA) hiện có trên thị trường là bước then chốt để xác định chiến lược kiến trúc tối ưu.

Tiêu chí so sánh x86 (Intel/AMD) ARM (ARMv7/ARMv8) MIPS (MIPS32) RISC-V (RV32I)
Mô hình kiến trúc CISC (Phức tạp) RISC (Load-Store) RISC (Load-Store) RISC (Load-Store)
Bản quyền & Giấy phép Độc quyền nghiêm ngặt Trả phí bản quyền cao Độc quyền / Giới hạn Mã nguồn mở hoàn toàn
Độ dài lệnh Thay đổi (1 - 15 bytes) Cố định (32-bit/Thumb) Cố định (32-bit) Cố định 32-bit (Hỗ trợ nén 16-bit)
Bộ giải mã lệnh Rất phức tạp Phức tạp trung bình Đơn giản Cực kỳ tối ưu và phân vị trí cố định
Khả năng mở rộng (Modularity) Rất khó mở rộng Theo các phân lớp A, R, M Hạn chế opcode mở rộng Thiết kế theo Base + Standard Extensions

Theo mô hình phân loại yêu cầu MoSCoW:

  • Must-have (Bắt buộc): Hoàn thiện 40 lệnh RV32I, đường ống 5 tầng, Forwarding Unit xử lý xung đột dữ liệu, Master AXI4 Interface.
  • Should-have (Cần có): Khối System Cache v5 thay thế IMEM/DMEM tĩnh, giao tiếp bộ nhớ ngoài DDR3 qua MIG IP.
  • Could-have (Có thể mở rộng): Tích hợp thêm bộ truyền nhận không đồng bộ UART, DMA truyền dữ liệu khối.
  • Won't-have (Chưa triển khai): Phần mở rộng nhân/chia phần cứng RV32M, quản lý đặc quyền Supervisor/User Mode.

Thiết kế hệ thống

Kiến trúc vi xử lý được chia thành 5 giai đoạn đường ống độc lập, ngăn cách bởi các thanh ghi giao tầng (Pipeline Registers) nhằm cân bằng đường trễ tổ hợp (Combinational Logic Delay):

+---------------------------------------------------------------------------------------+
|                                    RISC-V 32-BIT PIPELINE CPU                         |
|                                                                                       |
|  +--------+   IF/ID   +--------+   ID/EX   +--------+   EX/MEM  +--------+   MEM/WB   +--------+
|  |   IF   |  ======>  |   ID   |  ======>  |   EX   |  ======>  |  MEM   |  ======>   |   WB   |
|  | Stage  |           | Stage  |           | Stage  |           | Stage  |            | Stage  |
|  +--------+           +--------+           +--------+           +--------+            +--------+
|      |                    |                    |                    |                     |
|      | PC + IMEM          | RegFile + ImmGen   | ALU + Add_Br       | System Cache        | Mux_W  |
|      |                    | Hazard Detection   | Forwarding Unit    | AXI4 Master         | RegWEn |
+---------------------------------------------------------------------------------------+

+---------------------------------------------------------------------------------------+
|                               SOC BLOCK DESIGN ARCHITECTURE                           |
|                                                                                       |
|  +------------------------+             AXI4 Bus              +--------------------+  |
|  | RISC-V Master IP Core  | <===============================> | AXI Interconnect / |  |
|  +------------------------+                                   | SmartConnect       |  |
|              | (Cache Bus)                                    +--------------------+  |
|              v                                                           |            |
|  +------------------------+                                              |            |
|  | IP System Cache v5     |                                              |            |
|  +------------------------+                                              |            |
|              |                                                           |            |
|              +-------------------+--------------------+                  |            |
|                                  |                    |                  |            |
|                                  v                    v                  v            |
|                         +-----------------+  +-----------------+  +-----------------+ |
|                         | IP CDMA         |  | IP MIG 7 Series |  | AXI BRAM Ctrl   | |
|                         | (Direct Memory) |  | (DDR3 Memory)   |  | (Local Memory)  | |
|                         +-----------------+  +-----------------+  +-----------------+ |
+---------------------------------------------------------------------------------------+

Technology Stack và thông số kỹ thuật:

  • Ngôn ngữ mô tả phần cứng: Verilog HDL / SystemVerilog.
  • Môi trường phát triển & Tổng hợp: Xilinx Vivado Design Suite 2020.2.
  • Phần cứng mục tiêu: Xilinx Virtex-7 FPGA VC707 Evaluation Kit (FPGA Chip: XC7VX485T-2FFG1761C).
  • Trình mô phỏng & Đối chuẩn: Vivado XSim Simulator và Venus RISC-V Simulator.
  • Giao thức kết nối hệ thống: AMBA AXI4 (Address Read AR, Read Data R, Address Write AW, Write Data W, Write Response B).

Methodology

Quy trình phát triển tuân theo mô hình V-Model lặp thích ứng cho thiết kế vi mạch (ASIC/FPGA Design Flow):

  1. Thiết kế mức RTL (Register Transfer Level): Mô tả hành vi các khối chức năng từ Controller, Datapath, ALU đến Pipeline Registers.
  2. Kiểm thử mô phỏng mức khối (Unit-level Simulation): Xác minh từng khối đơn lẻ bằng các testbench độc lập.
  3. Mô phỏng toàn hệ thống (System Integration Test): Chạy toàn bộ chương trình hợp ngữ phức tạp để kiểm tra các trường hợp biên của Hazard.
  4. Tổng hợp và Hiện thực (Synthesis & Implementation): Chuyển đổi mã RTL sang Netlist cổng logic, ánh xạ tài nguyên phần cứng (LUT, FF, BRAM) và phân tích Timing Closure (WNS - Worst Negative Slack $\ge 0$).
  5. Generate Bitstream & Đóng gói: Nạp file cấu hình lên kit phần cứng FPGA Virtex-7 qua giao tiếp JTAG.

Implementation và kết quả

Development process

Cấu trúc lõi vi xử lý bao gồm các module trọng yếu sau:

  1. Khối phát hiện xung đột dữ liệu (Hazard Detection Unit): Hoãn đường ống (Stall) 1 chu kỳ khi phát hiện xung đột Load-Use (khi lệnh kế tiếp đọc dữ liệu từ thanh ghi vừa được nạp bởi lệnh lw nhưng dữ liệu chưa kịp về từ bộ nhớ).
  2. Khối chuyển tiếp dữ liệu (Forwarding Unit): Chuyển trực tiếp kết quả tính toán từ đầu ra của tầng EX/MEM hoặc MEM/WB quay ngược về đầu vào ALU của tầng EX, loại bỏ hoàn toàn việc phải dừng chu kỳ chờ ghi vào Register File đối với các lệnh tính toán dạng R-type/I-type.

Đoạn mã Verilog mô tả giải thuật chuyển tiếp dữ liệu (Forwarding Unit) trong đề tài:

// Forwarding Unit logic for RISC-V 5-stage Pipeline
module forwarding_unit (
    input  wire [4:0] EX_MEM_rd,
    input  wire [4:0] MEM_WB_rd,
    input  wire [4:0] ID_EX_rs1,
    input  wire [4:0] ID_EX_rs2,
    input  wire       RegW_in1,      // RegWrite signal from EX/MEM
    input  wire       RegW_in2,      // RegWrite signal from MEM/WB
    output reg  [1:0] ForwardA,
    output reg  [1:0] ForwardB
);

always @(*) begin
    // ForwardA logic (ALU operand 1)
    if (RegW_in1 && (EX_MEM_rd != 5'd0) && (EX_MEM_rd == ID_EX_rs1)) begin
        ForwardA = 2'b10; // Forward from EX/MEM Stage
    end else if (RegW_in2 && (MEM_WB_rd != 5'd0) && (MEM_WB_rd == ID_EX_rs1)) begin
        ForwardA = 2'b01; // Forward from MEM/WB Stage
    end else begin
        ForwardA = 2'b00; // No Forwarding (Use register value from ID/EX)
    end

    // ForwardB logic (ALU operand 2)
    if (RegW_in1 && (EX_MEM_rd != 5'd0) && (EX_MEM_rd == ID_EX_rs2)) begin
        ForwardB = 2'b10; // Forward from EX/MEM Stage
    end else if (RegW_in2 && (MEM_WB_rd != 5'd0) && (MEM_WB_rd == ID_EX_rs2)) begin
        ForwardB = 2'b01; // Forward from MEM/WB Stage
    end else begin
        ForwardB = 2'b00; // No Forwarding
    end
end

endmodule

Logic điều khiển phát hiện xung đột Load-Use Hazard:

// Hazard Detection Unit logic
module hazard_detection (
    input  wire [4:0] ID_EX_rd,
    input  wire [4:0] IF_ID_rs1,
    input  wire [4:0] IF_ID_rs2,
    input  wire       ID_EX_MemRead,
    output reg        pc_rewrite,
    output reg        stage1_rewrite,
    output reg        stall
);

always @(*) begin
    // Detect Load-Use Data Hazard
    if (ID_EX_MemRead && ((ID_EX_rd == IF_ID_rs1) || (ID_EX_rd == IF_ID_rs2))) begin
        stall          = 1'b1; // Insert bubble (NOP) into ID/EX
        pc_rewrite     = 1'b1; // Hold current Program Counter
        stage1_rewrite = 1'b1; // Hold current IF/ID pipeline register
    end else begin
        stall          = 1'b0;
        pc_rewrite     = 1'b0;
        stage1_rewrite = 1'b0;
    end
end

endmodule

Testing và validation

Quá trình kiểm chứng chức năng được thực hiện bằng cách biên dịch một chương trình hợp ngữ tổng hợp (Assembly Test Suite) chứa đầy đủ các nhóm lệnh: tính toán số học (add, sub, addi), nhảy rẽ nhánh (beq, bne, blt), truy xuất bộ nhớ (lw, sw) và nhảy không điều kiện (jal, jalr).

Mã Assembly kiểm tra tính toán và lưu trữ dữ liệu bộ nhớ:

# Test program: Arithmetic, Branching, and Memory Operations
.text
    addi x1, x0, 10       # x1 = 10
    addi x2, x0, 20       # x2 = 20
    add  x3, x1, x2       # x3 = x1 + x2 = 30 (Forwarding test)
    sw   x3, 0(x0)        # Store 30 at memory address 0
    lw   x4, 0(x0)        # Load data from memory (Load-use hazard test)
    addi x5, x4, 5        # x5 = 30 + 5 = 35 (Requires 1-cycle stall)
    beq  x3, x4, target   # Branch taken if x3 == x4 (Branch resolution)
    addi x5, x0, 0        # Should be flushed if branch is taken
target:
    addi x6, x5, 10       # x6 = 35 + 10 = 45

Kết quả mô phỏng dạng sóng (Waveform Simulation) trên Vivado được đối chiếu với trình giả lập chuẩn Venus RISC-V:

  • Trạng thái thanh ghi sau khi thực thi: x1 = 0x0000000A, x2 = 0x00000014, x3 = 0x0000001E, x4 = 0x0000001E, x5 = 0x00000023, x6 = 0x0000002D.
  • Giá trị bộ nhớ tại địa chỉ 0x00000000: 0x0000001E (30).
  • Sự tương quan giữa kết quả mô phỏng RTL và giả lập phần mềm đạt độ chính xác 100%, khẳng định logic điều khiển đường ống và các bộ chuyển tiếp dữ liệu hoạt động chính xác tuyệt đối.

Kết quả đạt được

Hệ thống CPU RISC-V 32-bit RV32I 5-Stage Pipeline được tổng hợp và đóng gói hoàn chỉnh với các thông số định lượng cụ thể:

Thông số phần cứng / Đơn vị Giá trị đạt được trên FPGA Virtex-7 Tỷ lệ sử dụng phần cứng
Tần số xung nhịp tối đa ($F_{max}$) 100.00 MHz (Clock Period = 10.0 ns) -
Worst Negative Slack (WNS) +2.145 ns (Timing Met hoàn toàn) -
Số lượng Look-Up Tables (LUTs) 2,845 LUTs ~0.94% (Tổng 303,600)
Số lượng Flip-Flops (FFs) 1,620 FFs ~0.27% (Tổng 607,200)
Khối bộ nhớ Block RAM (BRAM 36Kb) 4 Blocks (cho Cache/Local Memory) ~0.39% (Tổng 1,030)
Số lệnh RV32I hỗ trợ 40 / 40 lệnh cơ sở 100%
Chỉ số CPI trung bình (Cycles Per Instruction) ~1.12 - 1.25 (phụ thuộc tỷ lệ rẽ nhánh) Gần lý tưởng ($CPI = 1.0$)

Đổi mới và đóng góp

  1. Kiến trúc phần cứng mở chuẩn hóa AXI4 Master: Khác với các đề tài nghiên cứu hàn lâm chỉ dừng lại ở mức thiết kế lõi CPU cô lập với bộ nhớ tĩnh đơn giản (BRAM nội bộ), đề tài đã đóng gói hoàn chỉnh CPU thành một AXI4 Master IP. Điều này cho phép vi xử lý giao tiếp trực tiếp với hệ thống bus chuẩn công nghiệp của Xilinx và ARM.
  2. Tích hợp System Cache v5 tối ưu băng thông: Việc loại bỏ các khối Instruction Memory (IMEM) và Data Memory (DMEM) cục bộ để thay thế bằng IP System Cache v5 giúp giảm độ trễ truy xuất dữ liệu từ bộ nhớ chính DDR3, tăng tốc độ xử lý dữ liệu lớn lên hơn 35% so với truy xuất bộ nhớ không có Cache.
  3. Cơ chế xử lý Hazard toàn diện: Bằng việc kết hợp Forwarding Unit 2 tầng và Hazard Detection Unit, số chu kỳ trễ (Stall cycles) của các lệnh tính toán liên tiếp giảm về 0 chu kỳ (cải thiện 100% thời gian trễ so với phương pháp Stall truyền thống vốn mất 2 - 3 chu kỳ trống).

Bảng so sánh đối chuẩn thiết kế với các kiến trúc tương đương:

Đặc tính kỹ thuật CPU Đơn chu kỳ (Single-Cycle) Khóa luận (5-Stage RISC-V + AXI4) Lõi MIPS32 R2 Pipeline [Tham chiếu]
Kiến trúc ISA RISC-V RV32I RISC-V RV32I MIPS32 Release 2
Số tầng Pipeline 1 tầng 5 tầng (IF-ID-EX-MEM-WB) 5 tầng
Cơ chế Hazard Không cần Forwarding + Detection Forwarding + Hazard Unit
Chuẩn Bus SoC Không hỗ trợ AMBA AXI4 Master Avalon / Custom Bus
Bộ nhớ đệm Không có IP System Cache v5 Cache 4-way Set Associative
Tần số xung nhịp ($F_{max}$) ~25 MHz 100 MHz (Tăng 400%) ~85 MHz

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  1. Bộ vi điều khiển nhúng chuyên dụng (Dedicated Microcontroller): Ứng dụng trong các hệ sinh thái IoT, quản lý cảm biến, điều khiển động cơ trong dây chuyền tự động hóa công nghiệp nhờ kích thước silicon siêu nhỏ (dưới 3,000 LUTs).
  2. Bộ đồng xử lý (Coprecessor / Accelerator Management): Đóng vai trò CPU điều khiển chính trong các hệ thống xử lý tín hiệu số DSP hoặc AI Inference trên FPGA, giao tiếp qua bus AXI4 với các khối tăng tốc phần cứng (Hardware Accelerators).
  3. Nền tảng đào tạo và R&D vi mạch: Làm lõi tham chiếu cho sinh viên và kỹ sư nghiên cứu phát triển thêm các tập mở rộng như RISC-V Vector (RVV) hoặc mã hóa bảo mật phần cứng (Cryptographic Extensions).

Hướng dẫn triển khai trên Xilinx FPGA VC707

[Mã nguồn RTL (.v)] 
  • Yêu cầu phần cứng: Kit FPGA Xilinx Virtex-7 VC707, cáp nạp Micro-USB JTAG, nguồn DC 12V.
  • Yêu cầu phần mềm: Xilinx Vivado Design Suite 2020.2 trở lên, trình biên dịch riscv32-unknown-elf-gcc hoặc Venus Assembler.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Xử lý rẽ nhánh tĩnh (Static Branching): Lõi CPU hiện tại áp dụng phương pháp dừng/xóa lệnh (Flush/Stall) khi nhánh được thực thi, chưa có bộ dự đoán rẽ nhánh động (Dynamic Branch Predictor) dẫn đến lãng phí 1 - 2 chu kỳ khi gặp lệnh Branch.
  • Chưa có phần mở rộng nhân chia phần cứng: Các phép tính nhân/chia hiện phải thực thi qua thuật toán phần mềm bằng vòng lặp cộng/dịch bit, làm tăng số chu kỳ thực thi tổng thể.
  • Thiếu đơn vị quản lý bộ nhớ ảo (MMU): Giới hạn khả năng chạy các hệ điều hành hoàn chỉnh như Linux, hiện chỉ phù hợp chạy mã Bare-metal hoặc các RTOS nhỏ (FreeRTOS).

Hướng phát triển tương lai

  1. Bổ sung bộ dự đoán rẽ nhánh 2-bit (2-bit Dynamic Branch Prediction Unit - BPU) và Branch Target Buffer (BTB) để giảm Branch Penalty xuống dưới 5%.
  2. Hiện thực tập mở rộng RV32M (Hardware Multiplier & Divider) và RV32C (Compressed Instructions 16-bit) để tăng mật độ mã nguồn lên 25 - 30%.
  3. Tích hợp bộ điều khiển ngắt nâng cao (PLIC - Platform-Level Interrupt Controller) và cổng giao tiếp UART/SPI hoàn chỉnh để chạy hệ điều hành thời gian thực FreeRTOS trên phần cứng FPGA.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Máy tính & Điện tử Viễn thông: Tài liệu tham khảo trực quan, chi tiết về thiết kế vi kiến trúc vi xử lý từ mức cổng logic RTL đến đóng gói IP SoC chuẩn công nghiệp.
  • Kỹ sư thiết kế vi mạch (ASIC/FPGA RTL Engineers): Nắm vững phương pháp xử lý xung đột đường ống (Hazard Handling) và kinh nghiệm thiết kế giao tiếp bus AMBA AXI4 với hệ thống bộ nhớ phân cấp (System Cache).
  • Doanh nghiệp R&D phần cứng: Tiết kiệm hàng chục nghìn USD chi phí bản quyền IP bằng cách ứng dụng lõi vi xử lý RV32I mã nguồn mở tùy biến trên FPGA.

Câu hỏi thường gặp

1. Yêu cầu hệ thống phần cứng và phần mềm tối thiểu để chạy thiết kế này là gì?

Cần máy tính cấu hình tối thiểu CPU 4 nhân, 16GB RAM chạy hệ điều hành Linux (Ubuntu 20.04/22.04 LTS) hoặc Windows 10/11, cài đặt bộ công cụ Xilinx Vivado Design Suite 2020.x trở lên. Phần cứng kiểm thử mục tiêu là kit FPGA Xilinx Virtex-7 VC707 (hoặc có thể cấu hình lại để nạp lên các kit Artix-7, Kintex-7 với tài nguyên tương đương).

2. Sự khác biệt cơ bản giữa Forwarding Unit và Hazard Detection Unit là gì?

Forwarding Unit giải quyết xung đột dữ liệu bằng cách dẫn tín hiệu trực tiếp từ đầu ra của các tầng sau (EX/MEM, MEM/WB) về đầu vào ALU mà không làm dừng CPU. Trong khi đó, Hazard Detection Unit chỉ can thiệp khi gặp xung đột không thể giải quyết bằng chuyển tiếp (điển hình là Load-Use Hazard), lúc này khối sẽ bắt buộc chèn 1 chu kỳ dừng (Stall/Bubble) vào đường ống.

3. Tại sao cần đóng gói vi xử lý thành IP chuẩn giao tiếp AXI4 thay vì kết nối dây trực tiếp?

Chuẩn bus AMBA AXI4 là giao thức kết nối công nghiệp tiêu chuẩn, hỗ trợ truyền nhận dữ liệu dạng burst, tách biệt độc lập 5 kênh địa chỉ/dữ liệu/phản hồi. Đóng gói chuẩn AXI4 giúp lõi CPU dễ dàng kết nối dạng plug-and-play với toàn bộ thư viện IP của Xilinx (DDR Memory Controller, DMA, Cache, Interconnect) mà không cần viết lại giao tiếp vật lý.

4. Lõi CPU này có chạy được hệ điều hành nhúng không?

Lõi CPU hiện tại hoàn toàn đủ khả năng chạy mã nguồn Bare-metal C/Assembly và các hệ điều hành thời gian thực mức cơ bản (như FreeRTOS) sau khi tích hợp thêm bộ Timer và ngắt điều khiển. Để chạy Linux đầy đủ, CPU cần nâng cấp lên RV64I hoặc bổ sung tập đặc quyền Privileged Architecture và khối MMU (Sv32/Sv39).

5. Chi phí tài nguyên FPGA của lõi CPU RISC-V này có lớn không?

Không. Với mức sử dụng chỉ 2,845 LUTs (~0.94%) và 1,620 FFs (~0.27%) trên chip Virtex-7, lõi vi xử lý chiếm tỷ trọng tài nguyên rất nhỏ, cho phép dành hơn 98% diện tích logic còn lại của FPGA cho các bộ tăng tốc phần cứng, xử lý đồ họa hoặc mạng nơ-ron AI.


Kết luận

Khóa luận tốt nghiệp "Mô phỏng và hiện thực 32-bit RISC-V CPU trên FPGA" đã chứng minh tính khả thi, độ tin cậy và hiệu năng vượt trội của kiến trúc đường ống 5 tầng RV32I kết hợp cùng chuẩn giao tiếp công nghiệp AXI4. Bằng việc giải quyết triệt để các dạng xung đột đường ống thông qua Forwarding Unit và tích hợp bộ nhớ đệm System Cache v5, thiết kế đạt tần số hoạt động 100 MHz trên nền tảng FPGA Xilinx Virtex-7 VC707 với độ chính xác logic đạt 100% đối chuẩn mô phỏng. Đây là bước đệm quan trọng, đóng góp thiết thực vào xu hướng làm chủ công nghệ thiết kế vi mạch bán dẫn và phát triển hệ sinh thái phần cứng mã nguồn mở tại Việt Nam.