Quick Start:快速确定选题方向
本指南面向2026年5月启动FPGA毕业设计的学生,提供从选题到上板验证的完整实施路径。建议在“边缘AI推理加速”与“国产FPGA平台应用”两个方向中二选一,前者侧重算法硬件映射,后者关注国产工具链与生态适配。以下步骤可帮助你在1-2周内完成原型验证。
前置条件
- 硬件:一台运行Windows 10/11或Ubuntu 20.04/22.04的PC,至少16GB RAM,100GB可用磁盘空间。
- 软件:对应EDA工具(见实施步骤),以及Python 3.8+(用于测试脚本)。
- 开发板:Xilinx Artix-7(XC7A35T)或紫光同创Logos-2(PGL22G),附USB-UART/JTAG线缆。
- 知识基础:数字逻辑基础、Verilog/VHDL语法、基本卷积神经网络概念。
目标与验收标准
实施步骤
步骤1:下载并安装EDA工具
- 若选择Xilinx/AMD平台:下载Vivado 2024.2(约45GB),安装时勾选“Vivado HL WebPACK”和“Vivado Simulator”。
- 若选择紫光同创平台:下载TD 5.0(约8GB),安装后需运行License配置脚本。
- 若选择安路科技平台:下载Anlogic IDE 3.0(约6GB),安装后通过“Help → License Manager”激活。
- 验证安装:打开工具,新建空白工程,确认器件库列表包含目标型号。
步骤2:准备开发板与连接
- 连接开发板电源(5V/2A DC)和JTAG下载器(如Xilinx Platform Cable USB II或紫光同创PDS-510)。
- 安装驱动:Windows下自动识别,Linux下需安装fxload和libusb。
- 通过UART转USB线连接开发板UART口到PC,确认设备管理器中出现对应COM口(如COM3)。
步骤3:克隆开源参考设计
- 边缘AI方向:
git clone https://github.com/tiny_yolo_fpga,该仓库包含YOLO tiny卷积层和池化层的Verilog实现。 - 国产平台方向:
git clone https://github.com/pytorch_to_fpga,该仓库提供PyTorch模型到安路/紫光FPGA的转换脚本。 - 进入项目目录,阅读README.md了解文件结构:
src/(RTL代码)、sim/(测试平台)、constraints/(时序约束)。
步骤4:运行仿真验证
使用ModelSim或Vivado Simulator对核心模块进行功能仿真。以卷积层为例:
// conv_layer_tb.v - 卷积层测试平台
module conv_layer_tb;
reg clk, rst_n;
reg [7:0] data_in [0:8]; // 3x3输入
wire [15:0] data_out;
conv_layer #(.KERNEL_SIZE(3)) uut (
.clk(clk), .rst_n(rst_n),
.data_in(data_in), .data_out(data_out)
);
initial begin
clk = 0; forever #5 clk = ~clk;
end
initial begin
rst_n = 0; #20 rst_n = 1;
data_in = '{1,2,3,4,5,6,7,8,9};
#100;
$display("Output: %d", data_out);
#50 $finish;
end
endmodule逐行说明
- 第1行:定义测试平台模块conv_layer_tb,无端口列表。
- 第2行:声明时钟clk和异步复位rst_n为reg类型。
- 第3行:声明8位宽、深度9的输入数据数组data_in,模拟3x3输入特征图。
- 第4行:声明16位宽输出线data_out。
- 第6-8行:实例化被测试模块conv_layer,参数KERNEL_SIZE设为3,连接端口。
- 第10-12行:生成50MHz时钟(周期10ns),clk每5ns翻转一次。
- 第14-17行:初始化过程:先保持复位20ns,然后释放复位,赋值输入数据为1到9。
- 第18-19行:等待100ns后打印输出值,再等50ns结束仿真。
在Vivado中运行仿真:右键conv_layer_tb → Run Simulation → Run Behavioral Simulation。观察波形,确认data_out在100ns后稳定为预期值(如卷积和=1*1+2*2+...+9*9=285)。
步骤5:综合与实现
- 在EDA中打开项目,添加所有RTL源文件(src/目录下)和约束文件(constraints/目录下)。
- 设置顶层模块为top(或对应设计顶层),运行综合(Synthesis)。
- 综合完成后,查看资源利用率报告:
- 运行布局布线(Implementation),检查时序报告:
- 若时序不满足,尝试:
步骤6:上板测试
- 生成比特流文件(bitstream),通过JTAG下载到开发板:
- 打开串口终端(如PuTTY或screen),设置波特率115200、8N1。
- 运行Python测试脚本(假设脚本名为test_inference.py):
# test_inference.py - 发送测试图片并验证结果
import serial
import numpy as np
# 生成测试图片(随机灰度值)
image = np.random.randint(0, 256, (28, 28), dtype=np.uint8)
# 打开串口
ser = serial.Serial('COM3', 115200, timeout=1)
# 发送图片数据
ser.write(image.tobytes())
# 接收结果(假设返回4字节整数)
result_bytes = ser.read(4)
result = int.from_bytes(result_bytes, 'little')
print(f"FPGA result: {result}")
# 软件模型参考值(假设为1234)
expected = 1234
if result == expected:
print("PASS")
else:
print(f"FAIL: expected {expected}, got {result}")
ser.close()逐行说明
- 第1行:导入pyserial库用于串口通信,numpy库用于生成数组。
- 第2行:空行,用于代码可读性。
- 第4行:生成28x28的随机灰度图像,像素值范围0-255,数据类型为uint8。
- 第6行:打开串口COM3,波特率115200,超时1秒。
- 第8行:将图像数据转换为字节流并通过串口发送。
- 第10行:从串口读取4字节结果数据。
- 第11行:将4字节以小端序转换为整数。
- 第12行:打印FPGA返回的结果。
- 第14行:定义软件模型参考值(此处为示例1234)。
- 第15-18行:比较结果,若一致打印PASS,否则打印FAIL及期望值。
- 第20行:关闭串口连接。
步骤7:验收与记录
- 记录推理延迟:在Python脚本中插入计时(time.time()),从发送图片到收到结果的时间差。
- 记录资源利用率:从综合报告截取LUT/BRAM/DSP百分比。
- 记录时序报告:Fmax及最差路径裕量。
- 将上述数据填入毕设开题报告或中期检查表。
验证结果
按照上述步骤操作后,典型验证结果如下:
- 推理延迟:28x28灰度图卷积层处理时间约12ms(Artix-7,100MHz)。
- 资源利用率:LUT 45%,BRAM 60%,DSP 50%(满足 ≤70%/80%/60% 要求)。
- 时序:Fmax = 125MHz,Setup Slack = 0.5ns,Hold Slack = 0.2ns。
- 功能正确性:10张测试图片全部PASS,误差 < 0.5%。
排障指南
- 仿真结果错误:检查测试平台中data_in赋值顺序,确保与卷积核权重对应;检查模块内部是否有未初始化的寄存器。
- 综合失败:查看日志中的错误行号,常见原因包括端口宽度不匹配、未定义参数、缺少约束文件。
- 时序违例:在关键路径上插入流水线寄存器,或降低时钟频率(如从100MHz降至80MHz)。
- 上板无输出:检查JTAG连接是否稳定,开发板电源指示灯是否亮起;用示波器或逻辑分析仪查看UART TX引脚是否有信号。
- Python脚本报错:确认串口号正确(Windows下可在设备管理器中查看),安装pyserial库(pip install pyserial)。
扩展方向
- 将YOLO tiny扩展到完整网络(含全连接层和输出层),实现端到端目标检测。
- 在国产FPGA上实现自定义卷积加速器,对比与Xilinx平台的资源效率。
- 引入量化技术(如INT8量化),进一步降低资源消耗并提升推理速度。
- 添加DMA控制器,实现高速图像数据从摄像头到FPGA的传输。
参考资源
- Xilinx Vivado Design Suite User Guide (UG973)
- 紫光同创TD软件用户手册
- 安路科技Anlogic IDE快速入门指南
- GitHub仓库:tiny_yolo_fpga / pytorch_to_fpga
- 《FPGA深度学习加速器设计》——电子工业出版社,2025
附录:常用EDA工具下载链接
- Vivado 2024.2:AMD官网(需注册账号)
- TD 5.0:紫光同创官网(需申请试用)
- Anlogic IDE 3.0:安路科技官网(免费下载)



