Quick Start
本指南面向FPGA竞赛参赛者,提供一套可复现的高效硬件设计流程。以下8个步骤可在1小时内让一个基础LED闪烁设计在开发板上运行,用于验证环境是否就绪。
前置条件
- 一台安装Windows 10/11或Linux(Ubuntu 20.04+)操作系统的电脑,至少8 GB内存和50 GB空闲磁盘空间。
- 一块支持JTAG下载的FPGA开发板(如Xilinx Artix-7或Intel Cyclone IV系列)。
- USB下载线(如Xilinx Platform Cable或USB-Blaster),以及对应驱动。
- 已安装并激活的EDA工具:Vivado(推荐2022.1及以上版本)或Quartus Prime(22.1及以上版本)。
- 具备基本的Verilog语法知识和FPGA开发流程概念。
目标与验收标准
目标:在1小时内完成从EDA工具安装到LED闪烁的完整流程,验证开发环境与设计工具链正常工作。
验收标准:
- EDA工具打开后新建工程无报错。
- 开发板通过JTAG被电脑正确识别(设备管理器显示对应设备)。
- 综合与实现过程无critical warning(关于未连接端口)。
- 比特流下载进度100%,板载LED以1 Hz频率闪烁。
- 时序报告显示时钟和复位路径已约束,无未约束路径。
实施步骤
步骤1:安装EDA工具
下载并安装Vivado(推荐2022.1及以上版本)或Quartus Prime(22.1及以上版本),确保License已激活。安装时选择对应器件系列的库文件(如Artix-7或Cyclone IV)。
验收点:打开工具,新建工程无报错。
步骤2:准备开发板
连接开发板(如Xilinx Artix-7或Cyclone IV)至电脑,安装JTAG驱动。对于Xilinx板卡,通常需要安装Vivado自带的Cable Drivers;对于Intel板卡,安装Quartus自带的USB-Blaster驱动。
验收点:在设备管理器中看到对应JTAG设备(如“Xilinx USB Cable”或“Altera USB-Blaster”)。
步骤3:创建工程
在EDA工具中新建RTL工程,选择目标器件。例如在Vivado中,器件选xc7a35tcsg324-1(对应Artix-7 35T);在Quartus中,选EP4CE6E22C8(对应Cyclone IV)。
验收点:工程面板显示目标器件型号。
步骤4:编写顶层模块
新建Verilog文件,写入以下LED闪烁代码。该代码将50 MHz系统时钟分频至约1 Hz,驱动板载LED。
module led_blink (
input wire clk, // 50 MHz 系统时钟
input wire rst_n, // 异步复位,低有效
output reg led // LED 输出
);
reg [25:0] cnt; // 分频计数器
// 50 MHz 分频至 ~1 Hz: 50_000_000 / 2 = 25_000_000 个周期
// 计数器范围 0 ~ 24_999_999,翻转一次即 0.5 秒
// 完整周期 1 秒
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
cnt <= 26'd0;
led <= 1'b0;
end else if (cnt == 26'd24_999_999) begin
cnt <= 26'd0;
led <= ~led;
end else begin
cnt <= cnt + 1'b1;
end
end
endmodule验收点:语法检查通过(Vivado中点击“Check Syntax”无错误)。
步骤5:添加约束文件
新建XDC文件(Vivado)或SDC文件(Quartus),绑定时钟和LED引脚。以下为Vivado示例(根据实际板卡原理图修改引脚号):
# 时钟引脚约束
set_property PACKAGE_PIN E3 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
# 复位引脚约束(若使用板载按键)
set_property PACKAGE_PIN C12 [get_ports rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
# LED引脚约束
set_property PACKAGE_PIN F5 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports led]验收点:约束无冲突(Vivado中“Check Constraints”无错误)。
步骤6:综合与实现
在Vivado中依次点击“Run Synthesis”和“Run Implementation”。Quartus中对应“Analysis & Synthesis”和“Fitter”。综合将RTL代码映射为逻辑门网表,实现则完成布局布线。
验收点:综合和实现均成功,无critical warning(关于未连接端口或时序违例)。
步骤7:生成比特流并下载
点击“Generate Bitstream”(Vivado)或“Assembler”(Quartus),生成下载文件。成功后,连接开发板并点击“Program Device”,选择对应的JTAG链。
验收点:下载进度100%,无错误提示。
步骤8:观察现象
板载LED以约1 Hz频率闪烁(亮0.5秒,灭0.5秒)。若闪烁频率异常,检查时钟频率或分频系数。
验收点:肉眼可见周期闪烁,符合预期。
验证结果
完成上述步骤后,验证结果应包括:
- EDA工具工程无报错。
- JTAG设备被正确识别。
- 综合与实现无critical warning。
- 比特流下载成功。
- LED以1 Hz闪烁。
- 时序报告显示时钟和复位已约束,无未约束路径。
若以上全部通过,则开发环境与基础设计流程验证成功,可进入竞赛项目开发。
排障指南
- 工具安装失败:检查系统兼容性,关闭杀毒软件,以管理员身份运行安装程序。
- JTAG设备未识别:更换USB端口,重新安装驱动,检查板卡供电。
- 综合报错:检查Verilog语法,确认模块名和端口名一致,无未定义信号。
- 约束冲突:检查引脚编号是否与原理图一致,IOSTANDARD是否匹配。
- 下载失败:检查JTAG链连接,确保开发板处于编程模式,尝试重新上电。
- LED不闪烁:检查时钟频率与分频系数,确认约束中时钟引脚正确。
- 时序违例:对于简单设计通常不会出现,若出现则检查时钟约束是否正确。
扩展实践
在基础LED闪烁验证通过后,可尝试以下扩展:
- 修改分频系数,实现不同频率的LED闪烁(如2 Hz、5 Hz)。
- 添加多个LED,实现流水灯或PWM调光效果。
- 引入按键输入,控制LED闪烁模式或频率。
- 使用IP核(如时钟管理单元)生成不同时钟域,实现跨时钟域设计。
- 集成UART或SPI接口,与上位机通信,为竞赛项目积累模块。
参考资源
- Vivado Design Suite User Guide (UG910)
- Quartus Prime Handbook
- 开发板原理图与数据手册
- Verilog语法参考(IEEE Std 1364-2005)
附录
附录A:Vivado工程创建快速参考
- File → New Project → Next → 输入工程名和路径 → Next → 选择RTL Project → Next → 添加源文件(可选)→ Next → 选择器件(如xc7a35tcsg324-1)→ Finish。
附录B:Quartus Prime工程创建快速参考
- File → New Project Wizard → Next → 输入工程名和路径 → Next → 添加文件(可选)→ Next → 选择器件(如EP4CE6E22C8)→ Next → 选择EDA工具设置(默认)→ Next → Finish。
附录C:常见EDA工具快捷键
- Vivado:Ctrl+S保存,F6运行综合,F7运行实现,Ctrl+Shift+B生成比特流。
- Quartus:Ctrl+S保存,Ctrl+K运行分析与综合,Ctrl+L运行布局布线,Ctrl+Shift+G生成编程文件。



