Bối cảnh và vấn đề nghiên cứu

Trong những năm gần đây, mạng nơ-ron tích chập (Convolutional Neural Networks - CNN) đã đạt được nhiều bước tiến lớn trong các ứng dụng thị giác máy tính như phân loại hình ảnh, phát hiện đối tượng và nhận diện gương mặt. Tuy nhiên, các mô hình CNN điển hình đòi hỏi tài nguyên bộ nhớ rất lớn (hàng triệu tham số) và khối lượng tính toán khổng lồ (hàng tỷ phép tính cho một lượt suy luận). Ví dụ, mạng VGG16 với 16 lớp nhận diện hình ảnh cần khoảng 31 Giga phép tính trên giây (31 GOp/s). Do đó, việc huấn luyện và thực thi CNN chủ yếu dựa vào hệ thống máy chủ gồm nhiều CPU và GPU thông qua các khung làm việc như Caffe, Theano và TensorFlow.

Tuy nhiên, việc triển khai CNN trên CPU và GPU tại máy chủ bộc lộ nhiều hạn chế khi ứng dụng vào các hệ thống nhúng (như xe tự hành hay robot) do tiêu hao nhiều năng lượng. Đồng thời, mô hình xử lý tập trung dữ liệu truyền từ máy khách (Client) về máy chủ (Server) dễ gây tắc nghẽn đường truyền và không đáp ứng được yêu cầu xử lý thời gian thực. Để giải quyết vấn đề này, giải pháp triển khai bộ tăng tốc CNN trên phần cứng FPGA (Field-Programmable Gate Array) hoạt động như một thiết bị đầu cuối (end-device) đã được lựa chọn, cho phép đưa dữ liệu vào và nhận kết quả trực tiếp tại biên mà không qua các bước truyền thông trung gian.

Mặc dù đã có nhiều công trình nghiên cứu bộ tăng tốc CNN trên FPGA, phần lớn các giải pháp hiện hữu tồn tại những nhược điểm:

  • Thuật toán Winograd giúp giảm khối lượng tính toán nhưng rất nhạy cảm với kích thước kernel tích chập, chỉ phù hợp với kernel đồng nhất (như VGG) mà không tối ưu cho kernel đa kích thước (như AlexNet).
  • Cách tiếp cận ánh xạ tích chập thành phép nhân ma trận trên nền OpenCL làm tăng độ sao chép thuộc tính đầu vào và mở rộng kích thước ma trận trọng số (Weight Matrix) cũng như ma trận đặc trưng (Feature Matrix), dẫn đến tiêu tốn bộ nhớ và quản lý truy xuất phức tạp.
  • Hầu hết các đề tài nghiên cứu trên FPGA trước đó chỉ tập trung hiện thực quá trình lan truyền thuận (Inference/Forward) mà chưa tích hợp lan truyền ngược (Training/Backward).

Mục tiêu và nhiệm vụ nghiên cứu của khóa luận được xác định cụ thể như sau:

  1. Thiết kế bộ tăng tốc tính toán mạng nơ-ron tích chập ở mức truyền thanh ghi (RTL - Register-Transfer Level).
  2. Xây dựng cấu trúc mạng 4 lớp hoàn chỉnh: 1 lớp đầu vào (Input Layer), 2 lớp ẩn (Hidden Layer 0, Hidden Layer 1) và 1 lớp đầu ra (Output Layer).
  3. Hiện thực đầy đủ cả khối tính toán lan truyền thuận (Forward) và khối tính toán lan truyền ngược (Backward) để cập nhật trọng số trực tiếp trên phần cứng.
  4. Tích hợp hàm kích hoạt ReLU có cơ chế bão hòa biên độ bit.
  5. Sử dụng kiểu dữ liệu số nguyên (Integer) trong toàn bộ mạch tính toán để tiết kiệm tài nguyên phần cứng.
  6. Đạt tần số hoạt động mục tiêu 170 MHz trên kit phát triển Virtex-7 FPGA.
  7. Xây dựng khả năng tham số hóa kiến trúc phần cứng và tự động sinh mã nguồn Verilog HDL tương ứng theo yêu cầu bài toán.

Đối tượng nghiên cứu của khóa luận là cấu trúc vi mạch của bộ tăng tốc mạng nơ-ron (Multi-Layer Perceptron / CNN) và cơ chế tự huấn luyện trên phần cứng. Phạm vi thực nghiệm tập trung vào việc mô phỏng logic, tổng hợp phần cứng trên nền tảng FPGA Xilinx Virtex-7, và đánh giá thuật toán qua hai bài toán kiểm thử: phát hiện ký tự "X" trên ma trận 9×9 và nhận diện chữ số viết tay từ 0 đến 9 trên tập dữ liệu MNIST.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình tính toán

Khóa luận xây dựng mô hình mạng nơ-ron 4 lớp (1 Input Layer, 2 Hidden Layers, 1 Output Layer) dựa trên các công thức toán học cơ bản:

  • Tính toán lan truyền thuận (Forward Propagation): Tổng có trọng số và bias tại các lớp được tính bằng phép toán nhân-tích lũy (Product-Sum): $$\text{Lớp ẩn 0: } Z_i^1 = \sum_j W_{ij}^1 x_j + b_i^1$$ $$\text{Lớp ẩn 1: } Z_i^2 = \sum_j W_{ij}^2 a_j^1 + b_i^2$$ $$\text{Lớp đầu ra: } Z_i^3 = \sum_j W_{ij}^3 a_j^2 + b_i^3$$
  • Hàm kích hoạt (Activation Function): Sử dụng hàm tuyến tính chỉnh lưu (ReLU) $a = \max(0, z)$ với đầu ra được giới hạn trong khoảng $[0, \text{MAX}]$ để tương thích với độ rộng bit cố định của nơ-ron.
  • Hàm chi phí (Cost Function): Sử dụng tổng sai số bình phương (Mean Squared Error): $$C = \sum_k C_k = \frac{1}{2} \sum_k (a_k^3 - t_k)^2$$ (trong đó $t_k$ là giá trị giám sát - Teacher signal).
  • Lan truyền ngược và cập nhật tham số (Backpropagation & Gradient Descent): Sai số $\delta$ tại các lớp được xác định bởi: $$\text{Lớp đầu ra: } \delta_k^3 = (a_k^3 - t_k) \cdot \phi'(Z_k^3)$$ $$\text{Lớp ẩn: } \delta_j^l = \left( \sum_k \delta_k^{l+1} W_{kj}^{l+1} \right) \cdot \phi'(Z_j^l)$$ Lượng cập nhật trọng số và độ lệch theo hệ số học $\eta$ (Learning Rate): $$\Delta W_{ij} = -\eta \cdot \delta_i \cdot a_j, \quad \Delta b_i = -\eta \cdot \delta_i$$ $$W_{ij}^{(\text{new})} = W_{ij}^{(\text{old})} + \Delta W_{ij}, \quad b_i^{(\text{new})} = b_i^{(\text{old})} + \Delta b_i$$

Phương pháp nghiên cứu

  • Thiết kế phần cứng: Thiết kế kiến trúc RTL hoàn toàn bằng ngôn ngữ mô tả phần cứng Verilog HDL, áp dụng cấu trúc tham số hóa (Parameterized Design) cho phép tùy biến số lượng nơ-ron và độ rộng bit.
  • Phương pháp điều khiển: Sử dụng giao thức bắt tay (Handshake Protocol) với cặp tín hiệu Valid và Ready để đồng bộ dữ liệu giữa các khối độc lập không phụ thuộc vào độ trễ số chu kỳ xung nhịp.
  • Mô phỏng và kiểm chứng:
    • Mô phỏng tiền tổng hợp (Pre-synthesis Simulation): Sử dụng công cụ MentorGraphics ModelSim-Altera 10.1d.
    • Mô hình đối chứng phần mềm (Software Reference Model): Tác giả tự phát triển một chương trình bằng Java mô phỏng chính xác các phép toán số nguyên của phần cứng để làm chuẩn đối sánh độ chính xác.
    • Tổng hợp và mô phỏng sau tổng hợp (Post-synthesis): Sử dụng phần mềm Xilinx Vivado để phân tích định thời, mức tiêu thụ tài nguyên phần cứng (LUT, FF, DSP, BRAM) và công suất tiêu thụ trên dòng chip Virtex-7 FPGA.
  • Nguồn dữ liệu: Dữ liệu số nguyên ngẫu nhiên phục vụ kiểm tra bắt tay logic; tập ma trận ký tự $9 \times 9$; tập dữ liệu chuẩn chữ số viết tay MNIST (kích thước ảnh $28 \times 28$ đã chuyển đổi sang ma trận dữ liệu).

Thiết kế và triển khai hệ thống phần cứng

Kiến trúc tổng thể và luồng dữ liệu

Hệ thống được tổ chức thành 4 lớp kết nối liên tiếp, kết hợp với khối kiểm thử Sink ở mức Testbench:

  • Input Layer: Nhận dữ liệu đầu vào và phân phối đến các khối trong lớp tiếp theo.
  • Hidden Layer 0 & Hidden Layer 1: Tiếp nhận dữ liệu, thực hiện nhân-tích lũy (Forward Maccum), kích hoạt phi tuyến (Neuron ReLU), tính toán lan truyền sai số (Backward Maccum & Delta) và cập nhật trọng số (BiasWeight).
  • Output Layer: Thực hiện lan truyền thuận để tạo kết quả cuối cùng, đồng thời tiếp nhận dữ liệu mẫu (Teacher data) để tính toán sai số đầu ra và cập nhật trọng số lớp cuối.

Quy trình xử lý hoàn chỉnh gồm 6 bước: (1) Nhận Teacher data; (2) Tính toán lan truyền thuận (Forward); (3) So sánh đầu ra với Teacher data; (4) Tính toán lan truyền ngược (Backward); (5) Cập nhật trọng số và bias; (6) Lặp lại chu trình cho đến khi sai số hội tụ.

+---------------------------------------------------------------------------------------+
|                                    BỘ TĂNG TỐC CNN                                   |
|                                                                                       |
| +-------------+     +----------------+     +----------------+     +-----------------+ |
| | Input Layer | --> | Hidden Layer 0 | --> | Hidden Layer 1 | --> |  Output Layer   | |
| +-------------+     +----------------+     +----------------+     +-----------------+ |
|                            ^                      ^                        |          |
|                            |                      |                        v          |
|                            +----------------------+----------------- [Teacher Data]  |
|                               (Quá trình lan truyền ngược)                            |
+---------------------------------------------------------------------------------------+

Các tham số cấu hình phần cứng

Hệ thống cho phép cấu hình linh hoạt thông qua các tham số phần cứng:

Tham số Ý nghĩa
NI Số lượng nơ-ron tại lớp đầu vào (Input Layer)
NH0 Số lượng nơ-ron tại lớp ẩn 0 (Hidden Layer 0)
NH1 Số lượng nơ-ron tại lớp ẩn 1 (Hidden Layer 1)
NO Số lượng nơ-ron tại lớp đầu ra (Output Layer)
WV Độ rộng bit dữ liệu đầu ra của nơ-ron

Chi tiết các khối chức năng

  1. Khối Broadcaster và Combiner:
    • Broadcaster: Tiếp nhận dữ liệu từ 1 nguồn và phân phối đồng thời đến 2 khối đích theo cơ chế Handshake. Dữ liệu chỉ được nạp mới khi cả hai khối đích đều sẵn sàng nhận.
    • Combiner: Chờ đồng bộ dữ liệu từ 2 nguồn trước khi chuyển tiếp đến 1 khối đích duy nhất.
    • Hỗ trợ 2 chế độ: Chế độ thông thường (Normal mode - truyền dữ liệu mỗi 2 chu kỳ clock, tiết kiệm tài nguyên) và Chế độ liên tục (Burst mode - truyền dữ liệu liên tục mỗi chu kỳ clock, tốn tài nguyên hơn).
  2. Khối nhân-tích lũy Forward (ForwardMaccum): Gồm mảng các bộ nhân (Mul) và cây bộ cộng (Sum tree) kết hợp bộ cộng bias (Add) để tính $Z = \sum W \cdot X + b$.
  3. Khối nhân-tích lũy Backward (BackwardMaccum): Thực hiện nhân sai số $\delta$ với ma trận chuyển vị trọng số $\sum \delta \cdot W$ (không cộng bias).
  4. Khối nơ-ron kích hoạt (Neuron ReLU): Nhận tín hiệu từ ForwardMaccum, so sánh và cắt giá trị trong đoạn $[0, \text{MAX}]$ nhằm đảm bảo độ rộng bit không bị phình to qua các tầng mạng.
  5. Khối tính toán sai số (Delta):
    • Tại lớp ẩn: So sánh trạng thái đầu ra của phép Forward để tính vi phân hàm kích hoạt, nhân với kết quả từ BackwardMaccum. Khối có mạch bão hòa (Saturation) giới hạn miền sai số.
    • Tại lớp đầu ra: Lấy hiệu số giữa kết quả suy luận và tín hiệu giám sát: $\delta = (a - t)$.
  6. Khối lưu trữ và cập nhật trọng số (BiasWeight): Bao gồm bộ nhân tốc độ học (Learning Rate), khối tính lượng thay đổi trọng số (Delta_w), và thanh ghi lưu trữ (Update) để cập nhật $W$ và $b$ theo thuật toán Gradient Descent.

Nội dung chính theo từng chương

Chương 1. Giới thiệu tổng quan đề tài

Chương này phân tích sự bùng nổ của mạng CNN và nhu cầu tính toán trong thị giác máy tính. Tác giả chỉ ra các rào cản về năng lượng và độ trễ khi triển khai CNN trên CPU/GPU hoặc kiến trúc điện toán đám mây. Đồng thời, chương 1 khảo sát các hướng tiếp cận FPGA trước đó (như thuật toán Winograd, OpenCL) và nghiên cứu của Huỳnh Vĩnh Phú (2019), từ đó xác lập mục tiêu thiết kế bộ tăng tốc CNN 4 lớp tích hợp tính năng tự học (Backward) với tần số 170 MHz trên FPGA Virtex-7.

Chương 2. Cơ sở lý thuyết

Trình bày cấu trúc toán học của mạng nơ-ron nhân tạo đa lớp. Nội dung tập trung làm rõ quy trình lan truyền thuận, các hàm kích hoạt (trọng tâm là ReLU), hàm chi phí bình phương tối thiểu (MSE), thuật toán lan truyền ngược Backpropagation và phương pháp hạ độ dốc Gradient Descent. Chương này cung cấp hệ thống ký hiệu và công thức toán học làm nền tảng cho việc chuyển đổi sang kiến trúc phần cứng.

Chương 3. Thiết kế hệ thống

Mô tả sơ đồ dòng dữ liệu (Data Flow) tổng thể giữa 4 lớp: Input Layer, Hidden Layer 0, Hidden Layer 1 và Output Layer. Tác giả trình bày quy trình hoạt động 6 bước khép kín từ nạp dữ liệu, suy luận, đối sánh sai số, lan truyền ngược đến cập nhật trọng số trên phần cứng.

Chương 4. Thiết kế chi tiết

Đi sâu vào thiết kế vi kiến trúc RTL cho từng mô-đun phần cứng:

  • Định nghĩa các cổng giao tiếp và bảng tín hiệu chi tiết cho từng lớp.
  • Chi tiết hóa mạch ghép nối Broadcaster, Combiner và thanh ghi Pipeline Register.
  • Kiến trúc chi tiết của các khối tính toán: ForwardMaccum, BackwardMaccum, Neuron (ReLU), Delta và BiasWeight.
  • Mô tả cơ chế điều khiển luồng dữ liệu bằng giao thức Handshake Valid/Ready.

Chương 5. Mô phỏng, tổng hợp và đánh giá kết quả

Trình bày quy trình kiểm thử và kết quả thực nghiệm:

  • Xây dựng Testbench với khối Sink để nạp dữ liệu kiểm thử.
  • Mô phỏng tiền tổng hợp trên ModelSim ở chế độ TEST không BURST với dữ liệu 16-bit và tốc độ học $01000000_2$.
  • Phân tích giản đồ dạng sóng (Waveform) của các tín hiệu Valid/Ready trong chế độ học (Learning mode) và chế độ suy luận (Inference mode).
  • Đánh giá sai số giữa phần cứng và phần mềm đối chứng Java, khẳng định độ lệch không vượt quá 1 đơn vị số nguyên.
  • Tổng hợp logic trên phần mềm Xilinx Vivado cho kit FPGA Virtex-7.

Chương 6. Ứng dụng

Hiện thực hai bài toán thử nghiệm thực tế:

  • Mục 6.1: Huấn luyện và phát hiện ký tự "X" trên bảng chữ cái biểu diễn dưới dạng lưới $9 \times 9$.
  • Mục 6.2: Nhận diện các chữ số viết tay từ 0 đến 9 trên tập dữ liệu ảnh MNIST ($28 \times 28$). Báo cáo các thông số về tài nguyên sử dụng, độ trễ và năng lượng tiêu thụ của mạch.

Chương 7. Kết luận và hướng phát triển đề tài

Tổng kết những mục tiêu đã hoàn thành, nêu rõ các khó khăn kỹ thuật gặp phải trong quá trình thiết kế phần cứng (xử lý tràn số nguyên, đồng bộ bắt tay nhiều tầng) và đề xuất hướng mở rộng cho các kiến trúc mạng phức tạp hơn.


Kết quả và đóng góp

Kết quả kỹ thuật chính

  • Khả năng tự huấn luyện trên phần cứng: Hiện thực thành công chu trình khép kín gồm cả chiều thuận (Forward) và chiều ngược (Backward), cho phép cập nhật trọng số và bias trực tiếp trên chip thông qua chức năng Backward Function.
  • Hiệu năng và tần số hoạt động: Mạch được tổng hợp thành công trên nền tảng Xilinx Virtex-7 FPGA, đạt tần số làm việc 170 MHz.
  • Độ chính xác tính toán: Kiểm chứng qua mô phỏng cho thấy toàn bộ các phép tính số nguyên 16-bit trên phần cứng có độ sai lệch so với mô hình tính toán lý thuyết bằng phần mềm Java không vượt quá 1 đơn vị LSB (sai số do làm tròn số nguyên).
  • Tính linh hoạt: Kiến trúc được tham số hóa hoàn toàn ($NI, NH0, NH1, NO, WV$), có khả năng tự động sinh mã Verilog HDL phù hợp với cấu hình đầu vào của từng bài toán.

So sánh với công trình nghiên cứu trước

Đặc tính kỹ thuật Nghiên cứu của Huỳnh Vĩnh Phú (2019) [15] Khóa luận của Trần Quang Diệu & Trương Anh Hào (2021)
Các khối xử lý Chỉ có khối Forward (Suy luận) Đầy đủ khối Forward và Backward (Học trên chip)
Kiểu dữ liệu Dấu chấm động 32-bit (Floating-point 32-bit) Số nguyên (Integer 16-bit)
Hàm kích hoạt ReLU ReLU (tích hợp mạch cắt bão hòa MAX)
Tần số hoạt động 166 MHz 170 MHz
Cấu trúc mạng Cố định 4 lớp, có khả năng tham số hóa và tự sinh RTL
Nền tảng mục tiêu FPGA Xilinx Virtex-7 FPGA

Đóng góp khoa học và ứng dụng

  1. Đề xuất kiến trúc vi mạch hoàn chỉnh cho mạng nơ-ron đa lớp có khả năng tự học tại biên (Edge device) mà không cần phụ thuộc vào máy chủ huấn luyện ngoại vi.
  2. Xây dựng cơ chế điều khiển luồng dữ liệu phi đồng bộ thông qua giao thức Handshake (Valid/Ready) kết hợp các mô-đun Broadcaster, Combiner và Pipeline Register, giúp mạch vận hành ổn định và triệt tiêu xung đột định thời giữa các tầng tính toán.
  3. Ứng dụng thành công vào bài toán nhận dạng mẫu ký tự $9 \times 9$ và phân loại chữ số viết tay trên bộ dữ liệu chuẩn MNIST.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Kiểu dữ liệu số nguyên: Mặc dù giúp tiết kiệm tài nguyên logic và DSP trên FPGA, việc sử dụng hoàn toàn kiểu dữ liệu số nguyên dẫn đến sai số cắt tỉa (truncation error) trong quá trình tính toán lan truyền ngược và cập nhật trọng số (sai số $\le 1$ đơn vị so với phần mềm).
  • Quy mô kiến trúc: Phần cứng hiện tại được kiểm thử trên mô hình 4 lớp (Multi-Layer Perceptron) phục vụ tính toán các lớp tích chập cơ bản; việc mở rộng lên các mạng nơ-ron sâu với hàng chục lớp sẽ đòi hỏi giải pháp tối ưu bộ nhớ đệm và phân chia khối ma trận lớn hơn.

Hướng nghiên cứu tiếp

  • Mở rộng kiến trúc phần cứng để hỗ trợ các mô hình mạng nơ-ron phức tạp và hiện đại hơn, cụ thể là triển khai thuật toán YOLO lên mạng CNN [16] để xử lý bài toán phát hiện đối tượng thời gian thực trên FPGA.
  • Tiếp tục tối ưu hóa năng lượng tiêu thụ và diện tích tài nguyên phần cứng (LUT, Flip-Flop, DSP) khi mở rộng kích thước ma trận.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo chuyên sâu và hữu ích cho:

  • Sinh viên và kỹ sư ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Thiết kế Vi mạch: Học hỏi phương pháp thiết kế phần cứng xử lý AI/CNN ở mức RTL bằng Verilog HDL.
  • Nhà nghiên cứu về hệ thống nhúng và AI tại biên (Edge AI): Tham khảo kiến trúc lan truyền ngược (On-chip Training) trên FPGA sử dụng kiểu số nguyên để tối ưu hóa tài nguyên.
  • Các nội dung có giá trị tham khảo nổi bật:
    • Thiết kế chi tiết các khối số học Maccum dạng cây cộng (Sum-tree) và khối vi phân sai số Delta.
    • Thiết kế bộ điều khiển giao thức bắt tay Valid/Ready thông qua các khối Broadcaster/Combiner.
    • Quy trình kiểm thử đối chuẩn (Hardware vs Software Model) kết hợp giữa ModelSim, chương trình Java và Vivado.

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

1. Bộ tăng tốc CNN trong khóa luận này hỗ trợ những chế độ lan truyền nào trên phần cứng?

Hệ thống hỗ trợ đầy đủ cả hai chế độ: chế độ lan truyền thuận (Forward Propagation / Inference mode) để thực hiện suy luận và chế độ lan truyền ngược (Backward Propagation / Learning mode) với khối Backward Function để tính toán gradient và cập nhật trọng số trực tiếp trên phần cứng.

2. Giao thức nào được sử dụng để điều khiển và đồng bộ luồng dữ liệu giữa các mô-đun trong mạch?

Toàn bộ các khối trong mạch được kết nối và đồng bộ bằng giao thức bắt tay (Handshake protocol) sử dụng cặp tín hiệu Valid và Ready, kết hợp cùng các khối phân phối Broadcaster, khối tích hợp Combiner và thanh ghi Pipeline Register. Quá trình chuyển dữ liệu giữa các giai đoạn chỉ diễn ra khi đồng thời cả Valid ở đầu vào và Ready ở đầu ra đều ở mức logic cao (CAO).

3. Kiểu dữ liệu nào được sử dụng trong tính toán và độ sai lệch giữa phần cứng so với mô hình phần mềm là bao nhiêu?

Hệ thống sử dụng kiểu dữ liệu số nguyên (Integer 16-bit) cho toàn bộ các phép tính. Kết quả mô phỏng đối sánh giữa mạch phần cứng và mô hình phần mềm viết bằng Java cho thấy sai số tính toán không vượt quá 1 đơn vị số nguyên (sai số làm tròn $\le 1$ LSB).

4. Đề tài đã thử nghiệm và đánh giá phần cứng trên những bài toán ứng dụng thực tế nào?

Phần cứng đã được thử nghiệm thành công trên hai bài toán: (1) Huấn luyện và phát hiện ký tự chữ cái "X" trên ma trận điểm $9 \times 9$; (2) Nhận diện các chữ số viết tay từ 0 đến 9 trên tập dữ liệu chuẩn MNIST.

5. Bộ tăng tốc này có những điểm cải tiến nào so với nghiên cứu năm 2019 của Huỳnh Vĩnh Phú?

So với nghiên cứu của Huỳnh Vĩnh Phú (chỉ hỗ trợ chiều Forward, dùng số thực dấu chấm động 32-bit, tần số 166 MHz), khóa luận này đã tích hợp thêm toàn bộ khối Backward để tự học trên chip, chuyển sang kiểu số nguyên để tiết kiệm tài nguyên, nâng tần số hoạt động lên 170 MHz và hỗ trợ cấu trúc tham số hóa tự động sinh mã Verilog HDL.


Kết luận

Khóa luận tốt nghiệp của sinh viên Trần Quang Diệu và Trương Anh Hào đã thiết kế và hiện thực thành công bộ tăng tốc mạng nơ-ron tích chập 4 lớp ở mức RTL trên nền tảng Xilinx Virtex-7 FPGA với tần số làm việc đạt 170 MHz. Điểm nổi bật của công trình là việc tích hợp trọn vẹn cả chu trình lan truyền thuận và lan truyền ngược sử dụng dữ liệu số nguyên 16-bit, cho phép thiết bị tự cập nhật trọng số trực tiếp tại biên mà không cần máy chủ hỗ trợ. Kết quả kiểm thử trên tập dữ liệu ký tự $9 \times 9$ và chữ số MNIST đã chứng minh tính đúng đắn của giải pháp thiết kế, mở ra tiềm năng ứng dụng hiệu quả cho các hệ thống nhúng thông minh và xử lý thị giác máy tính thời gian thực.