Giới thiệu dự án

Trong kỷ nguyên bùng nổ của trí tuệ nhân tạo (AI), thị giác máy tính (Computer Vision) và xử lý tín hiệu số (DSP), nhu cầu tính toán ma trận với mật độ dày đặc đặt ra thách thức lớn đối với kiến trúc máy tính truyền thống. Theo các báo cáo công nghiệp bán dẫn, các tác vụ đại số tuyến tính chiếm từ 70% đến hơn 90% tổng khối lượng công việc tính toán trong các mạng nơ-ron tích chập (CNN). Khi thực thi trên các bộ vi xử lý đa năng (General-Purpose CPUs) theo kiến trúc Von Neumann thuần túy, việc thực thi tuần tự các vòng lặp nhân ma trận dẫn đến hiện tượng nghẽn cổ chai dữ liệu (Memory Bottleneck), tiêu tốn chu kỳ xung nhịp và gia tăng mức tiêu thụ năng lượng.

Khóa luận tốt nghiệp "Thiết kế bộ tăng tốc phần cứng với RISC-V" (Design Hardware Accelerator with RISC-V) do sinh viên Phan Trường Sinh (MSSV: 20521836) và Lâm Sơn Nhật Thái (MSSV: 20521886) thực hiện dưới sự hướng dẫn của ThS. Tạ Trí Đức và ThS. Phạm Minh Quân tại Khoa Kỹ thuật Máy tính, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM (UIT - VNUHCM), đã giải quyết trực diện bài toán trên thông qua việc thiết kế một khối IP (Intellectual Property) tăng tốc phần cứng chuyên dụng cho phép nhân ma trận $4 \times 4$, tích hợp trực tiếp qua giao thức bus APB (Advanced Peripheral Bus).

flowchart LR
    subgraph SoC_Environment["Hệ thống SoC (Pulpino / RISC-V)"]
        CPU["Lõi xử lý RISC-V Core"] <--> AXI["Hệ thống Bus AXI"]
        AXI <--> Bridge["AXI-to-APB Bridge"]
    end
    subgraph Accelerator_IP["Bộ tăng tốc phần cứng (Hardware Accelerator)"]
        Bridge <--> APB_Interface["Khối Giao tiếp APB (apb_acc)"]
        APB_Interface <--> Top_Module["Khối Điều khiển Trung tâm (top_acc)"]
        Top_Module <--> Engine["Bộ tính toán Ma trận Song song (matrix_multiply)"]
    end

Mục tiêu nghiên cứu

Dự án được xác lập với 4 mục tiêu kỹ thuật cụ thể:

  1. Thiết kế vi kiến trúc RTL: Xây dựng bộ tăng tốc nhân ma trận $4 \times 4$ trên ngôn ngữ SystemVerilog, tối ưu hóa đường truyền dữ liệu (Datapath) để hoàn thành phép tính song song trong 01 chu kỳ xung nhịp (1 clock cycle).
  2. Chuẩn hóa giao tiếp APB: Tích hợp khối tăng tốc với giao thức AMBA APB 32-bit nhằm sẵn sàng kết nối ngoại vi cho các hệ thống SoC (như Pulpino RISC-V).
  3. Hiện thực hóa quy trình thiết kế ASIC Full-Flow: Thực hiện tổng hợp logic (Logic Synthesis) bằng Synopsys Design Compiler, kiểm tra tương đương logic (Equivalence Checking) bằng Synopsys Formality.
  4. Hiện thực hóa thiết kế vật lý (Physical Design): Triển khai Layout hoàn chỉnh từ Gate-Level Netlist sang GDSII bằng Synopsys IC Compiler II (ICC2) trên tiến trình công nghệ SAED 32nm, đảm bảo khắt khe các ràng buộc về Timing, DRC (Design Rule Check) và LVS (Layout Versus Schematic).

Phạm vi và giới hạn

  • Hỗ trợ phép nhân 2 ma trận vuông kích thước $4 \times 4$ với định dạng số nguyên không dấu 8-bit (Unsigned Integer 8-bit, giá trị từ 0 đến 255), cho ra ma trận kết quả $4 \times 4$ định dạng 16-bit (giá trị từ 0 đến 65,535).
  • Giao tiếp cấp độ ngoại vi thông qua bus APB, tần số xung nhịp mục tiêu $\ge 200\text{ MHz}$.

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

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

Phương pháp giải pháp Ưu điểm Nhược điểm Đánh giá tính khả thi
Phần mềm thuần túy trên CPU (C/C++ Software) Dễ lập trình, độ linh hoạt tối đa, không tốn chi phí diện tích silicon Thực thi tuần tự với 3 vòng lặp lồng nhau $O(n^3)$, độ trễ lớn, tiêu thụ năng lượng cao Không đáp ứng yêu cầu xử lý thời gian thực (Real-time DSP/Edge AI)
Bộ tăng tốc tùy biến trên FPGA Tái cấu hình linh hoạt, thời gian phát triển ngắn Tần số xung nhịp bị giới hạn, tiêu hao năng lượng cao hơn ASIC, giá thành linh kiện cao ở quy mô lớn Phù hợp cho giai đoạn Prototyping
ASIC Accelerator tích hợp qua APB (Giải pháp đề xuất) Tối ưu hóa tối đa về diện tích và công suất, tính toán song song chỉ mất 1 chu kỳ, tần số cao ($>200\text{ MHz}$) Chi phí chế tạo ban đầu (NRE) cao, không thể thay đổi kiến trúc phần cứng sau Tape-out Tối ưu nhất cho các chip nhúng SoC RISC-V thương mại

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc):
    • Khối tính toán song song $4 \times 4$ không dấu với độ chính xác số học tuyệt đối ($100%$).
    • Giao tiếp tuân thủ chuẩn AMBA APB với máy trạng thái 3 pha (IDLE, SETUP, ACCESS).
    • Đạt tần số hoạt động $\ge 200\text{ MHz}$ trên thư viện chuẩn Synopsys SAED 32nm.
    • Không vi phạm lỗi Timing (Worst Negative Slack WNS $\ge 0.00\text{ ns}$), 0 lỗi DRC và 0 lỗi LVS.
  • Should Have (Nên có):
    • Khả năng kiểm tra tương đương Formal Verification (Formality matching 100%).
    • Tối ưu hóa mạng lưới phân phối xung nhịp (Clock Tree Synthesis) với quy tắc Non-Default Rule (NDR 2w2s).
  • Could Have (Có thể mở rộng):
    • Hỗ trợ số bù hai (Signed Integer) hoặc dấu chấm động (Floating Point FP16/FP32).
    • Nâng cấp giao diện bus sang AXI4 với hỗ trợ Direct Memory Access (DMA).
  • Won't Have (Chưa thực hiện trong giai đoạn này):
    • Ghép nối trực tiếp vào Execution Pipeline của vi xử lý RISC-V qua giao diện Coprocessor RoCC.

Thiết kế hệ thống và Bản đồ thanh ghi (Register Map)

Bộ tăng tốc được cấu thành từ 3 phân hệ chính:

  1. matrix_multiply: Chứa 16 nhân tử tính toán phần tử ma trận song song. Mỗi phần tử $c_{ij}$ của ma trận $C$ được tính theo công thức đại số tuyến tính: $$c_{ij} = \sum_{k=1}^{4} a_{ik} \times b_{kj} = a_{i1}b_{1j} + a_{i2}b_{2j} + a_{i3}b_{3j} + a_{i4}b_{4j}$$
  2. top_acc: Đóng vai trò thanh ghi trung gian (Data Registers) lưu trữ 16 byte của ma trận $A$, 16 byte của ma trận $B$ và 16 half-word (16-bit) của ma trận $C$.
  3. apb_acc: Giao tiếp trực tiếp với Master Bus thông qua các tín hiệu: PCLK, HRESETn, PADDR[11:0], PSEL, PENABLE, PWRITE, PWDATA[31:0], PRDATA[31:0], PREADY, PSLVERR.
// Trích xuất logic tính toán song song từ khối matrix_multiply.sv
module matrix_multiply (
    input  logic [15:0][7:0]  mat_a, // 16 phần tử 8-bit Ma trận A
    input  logic [15:0][7:0]  mat_b, // 16 phần tử 8-bit Ma trận B
    output logic [15:0][15:0] mat_c  // 16 phần tử 16-bit Ma trận C
);
    genvar i, j;
    generate
        for (i = 0; i < 4; i = i + 1) begin : ROW_LOOP
            for (j = 0; j < 4; j = j + 1) begin : COL_LOOP
                assign mat_c[i*4 + j] = (mat_a[i*4 + 0] * mat_b[0*4 + j]) +
                                        (mat_a[i*4 + 1] * mat_b[1*4 + j]) +
                                        (mat_a[i*4 + 2] * mat_b[2*4 + j]) +
                                        (mat_a[i*4 + 3] * mat_b[3*4 + j]);
            end
        end
    endgenerate
endmodule

Bản đồ địa chỉ APB cho dữ liệu đầu vào (Ghi dữ liệu - Write)

Mỗi chu kỳ ghi truyền 32-bit dữ liệu (PWDATA[31:0]), tương ứng với 4 phần tử 8-bit trên một hàng ma trận:

Địa chỉ Offset Bit [31:24] Bit [23:16] Bit [15:8] Bit [7:0] Ý nghĩa mô tả
0x1A108000 $A_{14}$ $A_{13}$ $A_{12}$ $A_{11}$ Ma trận A - Hàng 1
0x1A108004 $A_{24}$ $A_{23}$ $A_{22}$ $A_{21}$ Ma trận A - Hàng 2
0x1A108008 $A_{34}$ $A_{33}$ $A_{32}$ $A_{31}$ Ma trận A - Hàng 3
0x1A10800C $A_{44}$ $A_{43}$ $A_{42}$ $A_{41}$ Ma trận A - Hàng 4
0x1A108010 $B_{14}$ $B_{13}$ $B_{12}$ $B_{11}$ Ma trận B - Hàng 1
0x1A108014 $B_{24}$ $B_{23}$ $B_{22}$ $B_{21}$ Ma trận B - Hàng 2
0x1A108018 $B_{34}$ $B_{33}$ $B_{32}$ $B_{31}$ Ma trận B - Hàng 3
0x1A10801C $B_{44}$ $B_{43}$ $B_{42}$ $B_{41}$ Ma trận B - Hàng 4

Bản đồ địa chỉ APB cho dữ liệu kết quả (Đọc dữ liệu - Read)

Mỗi chu kỳ đọc lấy ra 32-bit (PRDATA[31:0]), chứa 2 phần tử kết quả 16-bit:

Địa chỉ Offset Bit [31:16] Bit [15:0] Ý nghĩa mô tả
0x1A108000 $C_{12}$ $C_{11}$ Kết quả Ma trận C - Hàng 1 (Cột 1 & 2)
0x1A108004 $C_{14}$ $C_{13}$ Kết quả Ma trận C - Hàng 1 (Cột 3 & 4)
0x1A108008 $C_{22}$ $C_{21}$ Kết quả Ma trận C - Hàng 2 (Cột 1 & 2)
0x1A10800C $C_{24}$ $C_{23}$ Kết quả Ma trận C - Hàng 2 (Cột 3 & 4)
0x1A108010 $C_{32}$ $C_{31}$ Kết quả Ma trận C - Hàng 3 (Cột 1 & 2)
0x1A108014 $C_{34}$ $C_{33}$ Kết quả Ma trận C - Hàng 3 (Cột 3 & 4)
0x1A108018 $C_{42}$ $C_{41}$ Kết quả Ma trận C - Hàng 4 (Cột 1 & 2)
0x1A10801C $C_{44}$ $C_{43}$ Kết quả Ma trận C - Hàng 4 (Cột 3 & 4)

Phương pháp luận thiết kế (ASIC Methodology)

Dự án áp dụng quy trình thiết kế mạch tích hợp chuyên dụng (ASIC Flow) tiêu chuẩn công nghiệp với các mốc kiểm soát chất lượng (Quality Gates) nghiêm ngặt:

[SystemVerilog RTL] 
       │ ──> (Xilinx Vivado & Synopsys VCS Simulation)
       ▼
[Design Compiler Synthesis] ──(SVF Guidance)──> [Formality Equivalence Check]
       │
       ▼ (Gate-Level Netlist & SDC)
[IC Compiler II (ICC2) Physical Design]
  ├── Floorplan & Power Planning (Ring/Stripe M5-M6)
  ├── Placement & Optimization (Target Utilization 65%)
  ├── Clock Tree Synthesis (NDR 2w2s, Inverter/Buffer Trees)
  └── Routing & Optimization
       │
       ▼
[Physical Verification (DRC / LVS) & Sign-off] ──> [GDSII Streamout]

Đánh giá và giảm thiểu rủi ro (Risk Mitigation Matrix)

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Vi phạm Setup/Hold Timing ở tần số cao Cao Phân tích đa góc hoạt động (Multi-Corner Multi-Scenario MCMM), chèn đệm hữu ích (Useful Skew) và tối ưu hóa trễ trên đường dữ liệu quan trọng.
Bất đồng logic giữa RTL và Gate-Level Netlist Nghiêm trọng Sử dụng tệp hướng dẫn .svf từ Design Compiler đưa trực tiếp vào Synopsys Formality để verify 100% Compare Points.
Sụt áp nguồn (IR-Drop) & Lỗi điện trở lưới nguồn Trung bình Thiết kế vòng bao Power Ring quanh Core kết hợp Power Stripes trên các lớp kim loại dày Metal 5 và Metal 6 kết nối mạng lưới Via xuống Standard Cell Rails.
Lỗi vi phạm khoảng cách vật lý (DRC/LVS Violations) Trung bình Thiết lập Non-Default Rules (NDR 2w2s) cho đường Clock và kiểm tra quy tắc hình học liên tục ở từng bước trong ICC2.

Implementation và kết quả

Quy trình triển khai chi tiết

1. Thiết kế và Mô phỏng Front-End

Thiết kế được mô tả bằng SystemVerilog trên công cụ Xilinx Vivado 2020.2 và kiểm chứng chéo với Synopsys VCS (Verilog Compiler Simulator) kết hợp trình xem dạng sóng DVE (Discovery Visual Environment).

  • Chu kỳ giao dịch ghi APB: Mỗi lần nạp 1 hàng dữ liệu mất 5 chu kỳ xung nhịp (1 chu kỳ Setup $\rightarrow$ 2 chu kỳ Access $\rightarrow$ 1 chu kỳ Idle chuyển đổi $\rightarrow$ 1 chu kỳ nạp kế tiếp). Tổng thời gian nạp toàn bộ 1 ma trận là $4 \times 5 = 20\text{ clocks}$.
  • Chu kỳ giao dịch đọc APB: Tương tự, mỗi lần đọc 2 phần tử (32-bit) mất 4-5 chu kỳ xung nhịp.
  • Thời gian tính toán cốt lõi: Khối nhân ma trận song song xuất kết quả ngay lập tức trong 01 chu kỳ xung nhịp ngay sau khi dữ liệu đầu vào được chốt hợp lệ.

2. Tổng hợp logic với Synopsys Design Compiler (DC)

Sử dụng thư viện công nghệ Synopsys SAED 32nm (saed32hvt_ss0p75v125c, saed32lvt_ss0p75vn40c).

# Trích đoạn kịch bản tổng hợp dc_synth.tcl
set_app_var target_library "saed32hvt_ss0p75v125c.db saed32lvt_ss0p75v125c.db"
set_app_var link_library "* $target_library"
read_sverilog {matrix_multiply.sv top_acc.sv apb_acc.sv}
current_design apb_acc
link
check_design

# Thiết lập ràng buộc thời gian (Target 200MHz -> Period = 5.0ns)
create_clock -name PCLK -period 5.0 [get_ports PCLK]
set_input_delay -max 1.0 -clock PCLK [all_inputs]
set_output_delay -max 1.0 -clock PCLK [all_outputs]

compile_ultra -gate_clock -scan
report_qor > reports/synth_qor.rpt
report_area > reports/synth_area.rpt
report_timing > reports/synth_timing.rpt
write_file -format verilog -hierarchy -output netlist/apb_acc_syn.v

3. Kiểm tra tương đương Logic với Synopsys Formality

Formality thực hiện phân tích hình thức để đối chiếu RTL gốc (Reference Design) và Netlist sau tổng hợp (Implementation Design) thông qua file apb_acc.svf. Kết quả xác nhận: $100%$ các điểm so sánh (Compare Points) khớp hoàn toàn (Matching & Verification Status: SUCCEEDED), không có bất kỳ điểm khác biệt luận lý nào.

4. Thiết kế vật lý trên Synopsys IC Compiler II (ICC2)

  • Floorplan: Tỉ lệ sử dụng diện tích vùng lõi (Core Utilization) được định mức ở mức $65%$, đảm bảo mật độ cân bằng để công cụ chèn thêm đệm sửa lỗi Timing/DRC ở các bước sau: $$\text{Utilization Rate} = \frac{\text{Cell Area}}{\text{Core Area} - \text{Macro Area}} \times 100% = 65%$$
  • Power Planning: Thiết lập Power Ring bao quanh Core Offset, mạng lưới Power Rails cấp nguồn cho Standard Cells, và các đường Power Stripes ngang/dọc trên lớp Metal 5 (M5) và Metal 6 (M6) để triệt tiêu hiện tượng sụt áp IR-drop.
  • Clock Tree Synthesis (CTS): Ứng dụng quy tắc Non-Default Rule (NDR) 2w2s (Double-Width, Double-Spacing) nhằm cách ly xung nhịp, giảm thiểu điện dung ký sinh và hiện tượng xuyên âm (Crosstalk). Sử dụng các Cell loại Low-Leakage Inverter/Buffer chuyên dụng.
  • Routing & Sign-off: Tiến hành định tuyến tự động và kiểm tra xác minh vật lý (DRC/LVS).

Kết quả đo lường và Đánh giá hiệu năng

Báo cáo chất lượng thiết kế (Quality of Results - QoR Report)

Thông số kỹ thuật (Metrics) Giá trị thực nghiệm đạt được Trạng thái kỹ thuật
Tiến trình công nghệ (Technology Node) Synopsys SAED 32nm CMOS Đạt chuẩn thiết kế
Tần số hoạt động tối đa ($F_{\text{max}}$) $\ge 200\text{ MHz}$ ($T_{\text{period}} = 5.0\text{ ns}$) Đáp ứng mục tiêu đề ra
Tổng số Leaf Cells 17,882 cells Tối ưu hóa cổng logic
Số lượng Combinational Cells 17,370 cells Kiến trúc tính toán song song
Số lượng Sequential Cells (Flip-Flops) 512 cells Chốt đầy đủ 512-bit thanh ghi I/O
Số lượng Buffer / Inverter 983 cells (291 Buffers, 692 Inverters) Tối ưu đường truyền
Tổng diện tích tổ hợp (Combinational Area) $46,571.165\text{ }\mu\text{m}^2$ Cực kỳ nhỏ gọn trên Silicon
Diện tích Buffer / Inverter Area $1,489.284\text{ }\mu\text{m}^2$ Chiếm tỉ lệ thấp ($<3.2%$)
Tổng số dây nối (Total Nets) 20,705 nets Định tuyến sạch
Worst Negative Slack (WNS - Setup) $0.00\text{ ns}$ (0 violating paths) Không vi phạm Timing
Worst Negative Slack (WNS - Hold) $0.00\text{ ns}$ (0 violating paths) Đạt chuẩn Sign-off
Physical Verification (DRC & LVS) 0 Errors / 0 Violations Sẵn sàng cho Tape-out

Kết quả kiểm thử tính toán ma trận thực nghiệm (Test Vectors)

Kiểm chứng 4 bộ ma trận thực tế trên Vivado, VCS DVE và Gate-Level Simulation cho kết quả khớp $100%$:

  • Bộ Test Case điển hình (Ma trận thưa & Ma trận ngẫu nhiên): $$\text{Ma trận A} = \begin{pmatrix} 0 & 0 & 0 & 3 \ 0 & 0 & 0 & 2 \ 0 & 0 & 0 & 1 \ 0 & 0 & 0 & 0 \end{pmatrix}, \quad \text{Ma trận B} = \begin{pmatrix} 0 & 0 & 0 & 7 \ 0 & 0 & 0 & 6 \ 0 & 0 & 0 & 5 \ 0 & 0 & 0 & 4 \end{pmatrix} \Longrightarrow \text{Ma trận C} = \begin{pmatrix} 0 & 0 & 0 & 12 \ 0 & 0 & 0 & 8 \ 0 & 0 & 0 & 4 \ 0 & 0 & 0 & 0 \end{pmatrix}$$ Dữ liệu đầu ra đọc qua bus APB hiển thị chính xác ở định dạng Hex: 0x000C, 0x0008, 0x0004, 0x0000.

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

Đổi mới kỹ thuật nổi bật

  1. Kiến trúc tính toán không gian song song (Spatial Parallel Architecture): Khác biệt với kiến trúc MAC (Multiply-Accumulate) tuần tự tiêu tốn $O(n^3)$ chu kỳ xung nhịp, khối tính toán matrix_multiply tích hợp 64 bộ nhân số nguyên 8-bit và 48 bộ cộng 16-bit hoạt động đồng thời, giải quyết toàn bộ ma trận $4 \times 4$ trong đúng 01 chu kỳ xung nhịp duy nhất.
  2. Cơ chế đóng gói dữ liệu APB 32-bit thông minh: Tối ưu hóa băng thông bus ngoại vi bằng cách ghép 4 phần tử 8-bit trên một hàng dữ liệu vào một chu kỳ truyền PWDATA[31:0], và đóng gói 2 phần tử kết quả 16-bit vào một chu kỳ đọc PRDATA[31:0], giảm thiểu số chu kỳ chiếm dụng bus tới $50%$.

Bảng so sánh với các giải pháp hiện hữu

Tiêu chí so sánh Phần mềm trên CPU RISC-V thuần túy (RV32I Core) Bộ gia tốc DSP Microcontroller (Cortex-M4 SIMD) Bộ tăng tốc phần cứng đề xuất (ASIC 32nm)
Thời gian tính toán cốt lõi ~64 - 128 chu kỳ xung nhịp ~16 - 32 chu kỳ xung nhịp 01 chu kỳ xung nhịp (1 clock)
Hiệu suất cải thiện Baseline ($1\times$) Tăng $4\times - 8\times$ Tăng $>60\times$ về độ trễ tính toán
Giao tiếp chuẩn hóa Truy cập bộ nhớ dữ liệu SRAM qua Bus Lệnh nội tuyến tích hợp trong Core APB Slave IP độc lập, dễ dàng Plug-and-Play
Khả năng đóng gói ASIC Phụ thuộc vào kiến trúc Core lớn Cố định bởi nhà sản xuất Tối ưu cực đại diện tích ($46,571\text{ }\mu\text{m}^2$)
Quy trình kiểm chứng Software Unit Test Firmware Debug Formality Formal Check + ICC2 Physical Sign-off

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

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

  • Hệ thống nhúng Edge AI & IoT thông minh: Phép nhân ma trận $4 \times 4$ là đơn vị tính toán cơ sở trong các phép biến đổi không gian 3D (Transformation Matrix), các lớp tính toán mạng nơ-ron thu nhỏ (TinyML) và bộ lọc Kalman trong điều khiển robot tự hành.
  • Coprocessor cho Hệ sinh thái SoC RISC-V: Bộ tăng tốc có thể dễ dàng ghép nối trực tiếp vào vi điều khiển RISC-V mã nguồn mở Pulpino thông qua AXI-to-APB Bridge, đóng vai trò như một bộ đồng xử lý tính toán số học tốc độ cao.
graph TD
    A[Camera / Cảm biến Robot] -->|Dữ liệu thô| B(Vi xử lý RISC-V SoC)
    B -->|Chuyển đổi dữ liệu ma trận qua APB Bus| C[Bộ tăng tốc Matrix Accelerator ASIC]
    C -->|Tính toán song song trong 1 chu kỳ| C
    C -->|Trả kết quả ma trận 16-bit| B
    B -->|Xuất tín hiệu điều khiển thời gian thực| D[Cơ cấu chấp hành / Động cơ]

Phân tích khả năng mở rộng (Scalability)

  • Khả năng mở rộng kích thước ma trận: Cấu trúc module hóa cho phép nhân bản kiến trúc để mở rộng lên $8 \times 8$, $16 \times 16$ hoặc xây dựng cấu trúc mảng Systolic Array (Systolic Array Engine) phục vụ tăng tốc mạng học sâu (Deep Learning Accelerator - NPU).
  • Hiệu quả chi phí (Cost-Benefit Analysis): Với diện tích cực nhỏ chỉ $\approx 0.048\text{ mm}^2$ trên tiến trình 32nm, chi phí diện tích silicon bổ sung vào chip SoC là không đáng kể, trong khi nâng cao hiệu suất xử lý lên hàng chục lần, mang lại tỷ suất hoàn vốn (ROI) vượt trội cho các doanh nghiệp phát triển vi mạch tích hợp.

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

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

  • Giới hạn kích thước và kiểu dữ liệu: Hiện tại chỉ hỗ trợ cố định ma trận $4 \times 4$ với định dạng số nguyên không dấu 8-bit/16-bit, chưa hỗ trợ xử lý dấu chấm động (Floating Point FP16/BF16) hoặc số nguyên có dấu (Signed Integer).
  • Băng thông truyền nhận APB: Giao thức APB là giao thức dạng non-pipelined, tốc độ truyền nhận dữ liệu qua thanh ghi tốn 20 chu kỳ cho mỗi ma trận, trở thành điểm nghẽn chính khi so sánh với tốc độ tính toán siêu nhanh (1 chu kỳ) của lõi xử lý.

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

  1. Tích hợp giao thức Bus AXI4 và bộ điều khiển DMA: Chuyển đổi giao tiếp sang AXI4-Stream kết hợp DMA Controller để truyền dữ liệu khối (Burst Transmission) trực tiếp từ bộ nhớ ngoài vào bộ đệm tăng tốc mà không cần can thiệp liên tục từ CPU.
  2. Mở rộng kiến trúc tập lệnh RISC-V (Custom Instruction Extension): Sử dụng giao diện RoCC (Rocket Custom Coprocessor) để nhúng trực tiếp lệnh nhân ma trận vào tập lệnh CPU, cho phép thực thi phép tính tương tự như một lệnh ASM chuyên dụng.
  3. Chế tạo thử nghiệm (Tape-out Prototyping): Đóng gói toàn bộ chip SoC hoàn chỉnh lên bo mạch thử nghiệm FPGA (Xilinx Zynq / Kintex-7) trước khi tiến hành quy trình sản xuất MPW (Multi-Project Wafer).

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

  • Sinh viên chuyên ngành Kỹ thuật Máy tính / Điện tử Viễn thông: Nắm vững tài liệu mẫu trực quan về quy trình thiết kế chip ASIC Full-Flow từ RTL SystemVerilog đến Physical Design Layout GDSII trên các công cụ EDA tiêu chuẩn thế giới (Synopsys DC, Formality, ICC2).
  • Kỹ sư thiết kế vi mạch (ASIC/RTL Engineers): Tham khảo kiến trúc kết nối chuẩn APB Slave, chiến lược phân bổ nguồn (Power Ring/Stripe), cấu hình Non-Default Rule (NDR) cho Clock Tree và kỹ thuật giải quyết vi phạm Timing Setup/Hold.
  • Doanh nghiệp bán dẫn và IoT: Cung cấp khối IP lõi tăng tốc số học nhỏ gọn, tiêu thụ ít điện năng, sẵn sàng tích hợp nhanh vào các dòng chip điều khiển chuyên dụng (ASIC/SoC).
  • Nhà nghiên cứu học thuật: Cung cấp nền tảng mở để tiếp tục thử nghiệm các thuật toán nhân ma trận tiên tiến (Strassen, Coppersmith-Winograd) hoặc tích hợp vào các lõi RISC-V mã nguồn mở (Pulpino, Rocket Chip).

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

1. Yêu cầu kỹ thuật phần mềm và công cụ EDA cần thiết để tái lập quy trình này là gì?

Để tái lập toàn bộ quy trình thiết kế, hệ thống cần môi trường Linux (RHEL/CentOS/Ubuntu) cài đặt bộ công cụ Synopsys bao gồm: Synopsys VCS (mô phỏng logic), Synopsys Design Compiler (tổng hợp logic), Synopsys Formality (kiểm tra tương đương), Synopsys IC Compiler II (thiết kế vật lý), cùng bộ thư viện công nghệ Synopsys SAED 32nm PDK. Ở mức Front-End, có thể sử dụng Xilinx Vivado để mô phỏng chức năng.

2. Bộ tăng tốc xử lý vấn đề tràn số (Overflow) như thế nào khi nhân các giá trị lớn?

Thiết kế mở rộng độ rộng bit ở đầu ra từ 8-bit lên 16-bit. Giá trị tích đại số lớn nhất của 4 cặp số 8-bit cực đại là: $$\text{Max Value} = 4 \times (255 \times 255) = 4 \times 65,025 = 260,100$$ Vì $260,100 > 65,535$ ($2^{16}-1$), trong phạm vi thiết kế cơ sở của khóa luận, ngõ ra chấp nhận cắt phần bù hoặc yêu cầu giá trị ma trận đầu vào được chuẩn hóa (Normalization) để tránh tràn bit 16-bit ngõ ra. Hướng nâng cấp là mở rộng thanh ghi ngõ ra lên 18-bit hoặc 32-bit.

3. Tại sao nhóm nghiên cứu lựa chọn giao thức bus APB thay vì AXI?

Giao thức APB thuộc họ AMBA có kiến trúc tín hiệu điều khiển đơn giản, tiêu thụ điện năng cực thấp và dễ dàng hiện thực hóa máy trạng thái trên phần cứng mà không làm phức tạp hóa logic điều khiển. Đây là giải pháp lý tưởng cho các IP ngoại vi điều khiển hoặc tăng tốc mức cơ sở trong SoC, giúp tập trung tối đa nguồn lực vào việc tối ưu hóa khối tính toán và hoàn thiện luồng thiết kế vật lý ASIC.

4. Thiết kế này có thể tích hợp trực tiếp với các lõi vi xử lý RISC-V nào?

Thiết kế tương thích hoàn toàn với bất kỳ SoC RISC-V nào có hỗ trợ giao tiếp ngoại vi AMBA, tiêu biểu là kiến trúc Pulpino SoC (tích hợp lõi RI5CY / Zero-riscy) hoặc các hệ thống SoC xây dựng trên nền tảng RISC-V mã nguồn mở qua cầu chuyển đổi AXI-to-APB Bridge.

5. Chi phí diện tích và thời gian tính toán của giải pháp phần cứng so với phần mềm thuần túy?

Trên tiến trình 32nm, toàn bộ khối IP chỉ chiếm $46,571.165\text{ }\mu\text{m}^2$ (chưa đến $0.05\text{ mm}^2$). Trong khi phần mềm trên vi xử lý thông thường mất từ 64 đến hơn 100 chu kỳ cho một phép nhân ma trận $4 \times 4$, bộ tăng tốc hoàn thành phép toán chỉ trong 01 chu kỳ xung nhịp, giảm thiểu năng lượng tiêu thụ trên mỗi phép tính tới hơn $95%$.


Kết luận

Đồ án tốt nghiệp "Thiết kế bộ tăng tốc phần cứng với RISC-V" của hai tác giả Phan Trường Sinh và Lâm Sơn Nhật Thái đã hoàn thành trọn vẹn quy trình thiết kế vi mạch ASIC từ đặc tả kiến trúc (RTL Specification) đến bố trí mạch vật lý (Physical Layout GDSII). Với khả năng thực thi phép nhân ma trận $4 \times 4$ song song trong 01 chu kỳ xung nhịp, vận hành ổn định ở tần số $\ge 200\text{ MHz}$ trên tiến trình SAED 32nm, đạt chuẩn 100% về độ chính xác logic (Formality) và các quy tắc vật lý (DRC/LVS), đề tài đã chứng minh tính hiệu quả vượt bậc của phương pháp đồng thiết kế phần cứng - phần mềm.

Nghiên cứu không chỉ đóng góp một khối IP tăng tốc số học giá trị cho hệ sinh thái RISC-V mở mà còn cung cấp một tài liệu kỹ thuật chuẩn mực, chi tiết cho cộng đồng nghiên cứu và phát triển vi mạch bán dẫn tại Việt Nam.