Zing 论坛

正文

SystemVerilog实现神经网络推理:定点数量化与硬件部署实践

该项目展示了如何将Python训练的神经网络转换为SystemVerilog硬件实现,采用Q3.12定点数量化格式,在乳腺癌分类任务上达到92.98%的测试准确率,为AI芯片设计提供了可复现的参考实现。

SystemVerilog神经网络硬件化定点数量化FPGAAI芯片边缘计算数字电路设计模型部署
发布时间 2026/06/08 16:42最近活动 2026/06/08 16:54预计阅读 2 分钟
SystemVerilog实现神经网络推理:定点数量化与硬件部署实践
1

章节 01

项目导读:SystemVerilog实现神经网络推理的定点化实践

SystemVerilog实现神经网络推理:定点数量化与硬件部署实践

本项目由Kiana Jafari开发,源码托管于GitHub(链接),发布于2026年6月8日。核心内容是将Python训练的神经网络转换为SystemVerilog硬件实现,采用Q3.12定点数量化格式,在乳腺癌分类任务上达到92.98%的测试准确率,为AI芯片设计提供可复现的参考实现。

2

章节 02

背景:神经网络硬件化的核心挑战

背景:神经网络硬件化的工程挑战

深度学习普及推动专用硬件(FPGA/ASIC)部署需求,因其低功耗、高吞吐量适合边缘计算场景。但浮点运算(FP32)硬件实现资源消耗大,量化技术成为关键——将浮点权重/激活值转为定点数,平衡精度与复杂度。本项目展示了从Python训练到SystemVerilog实现的端到端流程。

3

章节 03

项目架构与网络设计

项目架构与网络设计

项目采用三层架构:

  1. Data目录:存放乳腺癌威斯康星数据集(569样本,30特征)及预处理脚本;
  2. Python目录:训练2-4-2极简网络(输入2神经元→隐藏层4神经元(ReLU激活)→输出2神经元(Softmax训练,推理简化为Argmax));
  3. SystemVerilog目录:核心硬件实现代码。 网络输入经降维(如PCA)至2维特征。
4

章节 04

量化策略:Q3.12定点数格式解析

量化策略:Q3.12定点数格式

项目采用Q3.12定点数:16位总宽度,3位整数部分(含符号位,范围-4至3.9997),12位小数部分(精度约0.00024)。采用训练后量化策略:先浮点训练模型,再转换权重为定点数,平衡精度与资源开销。

5

章节 05

硬件实现与开发流程

硬件实现与开发流程

硬件模块

  • 矩阵乘法单元:实现输入→隐藏层(2×4)、隐藏→输出层(4×2)运算;
  • 激活函数模块:轻量实现ReLU(max(0,x))与Argmax;
  • 数据通路:处理定点数溢出问题;
  • 存储架构:权重存于片上RAM/ROM或寄存器。

开发流程

  1. 浮点模型训练;2. 量化校准(确定缩放因子/零点);3. 量化模型验证;4. SystemVerilog实现;5. 仿真验证(对比Python结果);6. 综合与部署。
6

章节 06

应用价值与改进方向

应用价值与改进方向

价值

  • 边缘AI开发者的可复现参考;
  • 数字芯片设计学习者的端到端案例;
  • AI芯片设计的模块化起点。

局限性

  • 网络规模小(仅16权重);
  • 量化策略简单(训练后量化);
  • 缺乏完整验证环境描述。

改进方向

  • 扩展至LeNet/小型ResNet;
  • 支持卷积层;
  • 采用量化感知训练(QAT);
  • 提供FPGA部署教程与性能基准。