FPGA 设计工具:Xilinx Vivado、Intel Quartus Prime 使用教程
FPGA(Field-Programmable Gate Array,现场可编程门阵列)作为一种灵活、可定制的硬件平台,在数字电路设计、嵌入式系统、人工智能等领域得到了广泛应用。要进行FPGA设计,离不开强大的FPGA开发工具,Xilinx Vivado 和 Intel Quartus Prime 无疑是其中的佼佼者。本文将详细介绍这两款工具的使用方法,帮助读者快速上手FPGA设计。
一、Xilinx Vivado 设计工具
Xilinx Vivado Design Suite 是 Xilinx 公司推出的新一代 FPGA 设计工具,它集成了逻辑综合、布局布线、仿真、功耗分析等功能,为用户提供了一个完整的 FPGA 开发流程。
1. Vivado 安装与配置
-
下载: 首先,需要从 Xilinx 官网下载 Vivado Design Suite 安装包。下载时需要注册并登录 Xilinx 账号,选择合适的版本(例如 WebPACK 版本是免费的,适合学习)。
-
安装: 下载完成后,运行安装程序。安装过程中需要选择需要安装的器件系列(例如 Artix-7, Kintex-7, Virtex-7, Zynq-7000 等),以及需要安装的工具(例如 Vivado Design Suite, Vivado HLS, System Generator 等)。建议根据实际需要选择,避免占用过多磁盘空间。
-
许可证配置: 安装完成后,需要配置许可证才能正常使用 Vivado。如果使用 WebPACK 版本,则无需额外许可证。如果使用付费版本,则需要购买并配置许可证。许可证可以通过 Xilinx 官网获取,并可以通过 Vivado License Manager 进行配置。
-
环境变量配置: 建议将 Vivado 的安装目录添加到系统环境变量中,方便在命令行中使用 Vivado 工具。
2. Vivado 工程创建与配置
-
新建工程: 打开 Vivado,点击 “Create Project”,按照向导新建一个工程。
- Project name: 输入工程名称和存储路径。
- Project Type: 选择 “RTL Project”,用于基于 RTL 代码的设计。
- Add Sources: 可以选择现在添加设计文件,也可以稍后添加。
- Default Part: 非常重要的一步,需要根据实际使用的 FPGA 器件型号选择相应的器件。例如,选择 “Artix-7 XC7A35T-1CPG236C”。
-
工程配置: 创建工程后,可以在 “Project Settings” 中对工程进行配置。
- Target Language: 设置目标语言,通常选择 “VHDL” 或 “Verilog”。
- Simulator: 选择仿真器,例如 “XSim” (Vivado自带仿真器)。
- Implementation Settings: 可以设置布局布线策略和优化目标。
- Synthesis Settings: 可以设置综合策略和约束条件。
3. Vivado 设计流程
Vivado 的设计流程主要包括以下几个步骤:
-
RTL 代码编写: 使用 VHDL 或 Verilog 编写 FPGA 的逻辑功能代码。
“`verilog
module adder (
input clk,
input rst,
input [7:0] a,
input [7:0] b,
output reg [8:0] sum
);always @(posedge clk) begin
if (rst) begin
sum <= 9’b0;
end else begin
sum <= a + b;
end
endendmodule
“` -
RTL 代码仿真: 使用仿真工具 (例如 XSim) 对 RTL 代码进行功能验证。
- 创建测试激励文件 (Testbench): 编写测试激励文件,对设计进行输入信号的模拟,并观察输出结果。
- 添加测试激励文件到工程: 将测试激励文件添加到 Vivado 工程。
- 进行仿真: 点击 “Run Simulation” 运行仿真,观察波形,验证设计的功能是否符合预期。
-
逻辑综合: 将 RTL 代码转换为门级电路。
- 运行综合: 点击 “Run Synthesis” 运行综合。
- 查看综合报告: 综合完成后,查看综合报告,了解设计的资源使用情况和时序性能。
-
约束文件编写: 编写约束文件 (.xdc),对 FPGA 的引脚分配、时序约束等进行设置。
“`xdc
Clock constraint
create_clock -period 10.000 [get_ports clk]
Input/Output pin assignment
set_property PACKAGE_PIN Y17 [get_ports clk]
set_property PACKAGE_PIN W5 [get_ports rst]
set_property PACKAGE_PIN AA14 [get_ports {a[0]}]
set_property PACKAGE_PIN AA15 [get_ports {a[1]}]… 更多引脚分配
IO Standard
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports rst]
set_property IOSTANDARD LVCMOS33 [get_ports {a[]}]
set_property IOSTANDARD LVCMOS33 [get_ports {b[]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sum[*]}]“`
-
布局布线: 将门级电路放置到 FPGA 芯片上,并进行互连。
- 运行布局布线: 点击 “Run Implementation” 运行布局布线。
- 查看布局布线报告: 布局布线完成后,查看布局布线报告,了解设计的时序性能和资源使用情况。
-
生成 Bitstream: 将布局布线结果转换为可以下载到 FPGA 芯片上的 Bitstream 文件 (.bit)。
- 运行生成 Bitstream: 点击 “Generate Bitstream” 生成 Bitstream 文件。
-
下载 Bitstream: 使用 Vivado Hardware Manager 将 Bitstream 文件下载到 FPGA 芯片上。
- 打开 Hardware Manager: 点击 “Open Hardware Manager”。
- 连接目标器件: 连接到目标 FPGA 器件。
- 下载 Bitstream: 将 Bitstream 文件下载到 FPGA 芯片上。
4. 常用 Vivado 工具
-
IP Integrator: 用于构建基于 IP 核的系统。可以方便地将 Xilinx 提供的 IP 核 (例如 MicroBlaze, AXI Interconnect 等) 集成到设计中。
-
Logic Analyzer (ILA): 用于在线调试 FPGA 设计。可以设置触发条件,捕获内部信号,并进行分析。
-
Power Analysis: 用于评估 FPGA 设计的功耗。
二、Intel Quartus Prime 设计工具
Intel Quartus Prime 是 Intel (原 Altera) 公司推出的 FPGA 设计工具,同样提供了完整的 FPGA 开发流程。
1. Quartus Prime 安装与配置
-
下载: 从 Intel 官网下载 Quartus Prime Design Suite 安装包。下载时需要注册并登录 Intel 账号,选择合适的版本(例如 Lite 版本是免费的,适合学习)。
-
安装: 运行安装程序。安装过程中需要选择需要安装的器件系列(例如 Cyclone, Arria, Stratix 等),以及需要安装的工具(例如 Quartus Prime, ModelSim-Intel FPGA Edition 等)。
-
许可证配置: 安装完成后,需要配置许可证才能正常使用 Quartus Prime。如果使用 Lite 版本,则无需额外许可证。如果使用付费版本,则需要购买并配置许可证。
-
环境变量配置: 建议将 Quartus Prime 的安装目录添加到系统环境变量中。
2. Quartus Prime 工程创建与配置
-
新建工程: 打开 Quartus Prime,点击 “New Project Wizard”,按照向导新建一个工程。
- Working directory: 输入工程存储路径。
- Project name: 输入工程名称。
- Device: 选择目标 FPGA 器件型号。例如,选择 “Cyclone IV E EP4CE6E22C8″。
-
工程配置: 创建工程后,可以在 “Assignments -> Settings” 中对工程进行配置。
- EDA Tool Settings: 可以配置仿真器 (例如 ModelSim-Intel FPGA Edition)。
- Timing Settings: 可以设置时序约束。
3. Quartus Prime 设计流程
Quartus Prime 的设计流程与 Vivado 类似,主要包括以下几个步骤:
-
RTL 代码编写: 使用 VHDL 或 Verilog 编写 FPGA 的逻辑功能代码。
“`verilog
module adder (
input clk,
input rst,
input [7:0] a,
input [7:0] b,
output reg [8:0] sum
);always @(posedge clk) begin
if (rst) begin
sum <= 9’b0;
end else begin
sum <= a + b;
end
endendmodule
“` -
RTL 代码仿真: 使用仿真工具 (例如 ModelSim-Intel FPGA Edition) 对 RTL 代码进行功能验证。
- 创建测试激励文件 (Testbench): 编写测试激励文件,对设计进行输入信号的模拟,并观察输出结果。
- 添加测试激励文件到工程: 将测试激励文件添加到 Quartus Prime 工程。
- 进行仿真: 运行 ModelSim 仿真,观察波形,验证设计的功能是否符合预期。
-
综合: 将 RTL 代码转换为门级电路。
- 运行综合: 点击 “Processing -> Start Compilation” 运行综合。
- 查看综合报告: 综合完成后,查看综合报告,了解设计的资源使用情况。
-
约束文件编写: 编写约束文件 (.sdc),对 FPGA 的引脚分配、时序约束等进行设置。
“`sdc
Clock constraint
create_clock -period 10.000 [get_ports clk]
Input/Output pin assignment
set_location_assignment PIN_48 -to clk
set_location_assignment PIN_12 -to rst
set_location_assignment PIN_30 -to a[0]
set_location_assignment PIN_31 -to a[1]… 更多引脚分配
IO Standard
set_global_assignment -name IO_STANDARD “3.3-V LVTTL” -to clk
set_global_assignment -name IO_STANDARD “3.3-V LVTTL” -to rst
set_global_assignment -name IO_STANDARD “3.3-V LVTTL” -to a[]
set_global_assignment -name IO_STANDARD “3.3-V LVTTL” -to b[]
set_global_assignment -name IO_STANDARD “3.3-V LVTTL” -to sum[*]
“` -
布局布线: 将门级电路放置到 FPGA 芯片上,并进行互连。
- 运行布局布线: 在运行 “Processing -> Start Compilation” 时,也会自动运行布局布线。
- 查看布局布线报告: 布局布线完成后,查看布局布线报告,了解设计的时序性能和资源使用情况。
-
生成 Programming File: 将布局布线结果转换为可以下载到 FPGA 芯片上的编程文件 (.sof)。
- 运行生成 Programming File: 在运行 “Processing -> Start Compilation” 时,也会自动生成 Programming File。
-
下载 Programming File: 使用 Quartus Prime Programmer 将 Programming File 下载到 FPGA 芯片上。
- 打开 Programmer: 点击 “Tools -> Programmer”。
- 连接目标器件: 连接到目标 FPGA 器件。
- 下载 Programming File: 将 Programming File 下载到 FPGA 芯片上。
4. 常用 Quartus Prime 工具
-
Platform Designer (原 Qsys): 用于构建基于 IP 核的系统。可以方便地将 Intel 提供的 IP 核 (例如 Nios II, Avalon Interconnect 等) 集成到设计中。
-
Signal Tap Logic Analyzer: 用于在线调试 FPGA 设计。可以设置触发条件,捕获内部信号,并进行分析。
-
Power Analysis: 用于评估 FPGA 设计的功耗。
三、Vivado 和 Quartus Prime 的比较
特性 | Vivado | Quartus Prime |
---|---|---|
公司 | Xilinx (现 AMD) | Intel |
架构 | 更加面向对象,基于 TCL 脚本驱动 | 更加传统,GUI 操作较为直观 |
综合 | 通常具有更好的综合结果和时序性能 | 综合速度较快 |
布局布线 | 布局布线算法更加先进,性能更优 | 布局布线结果可能需要更多优化才能达到目标性能 |
IP 核 | 提供丰富的 IP 核,例如 MicroBlaze, AXI 等 | 提供丰富的 IP 核,例如 Nios II, Avalon 等 |
调试工具 | ILA (Integrated Logic Analyzer) | Signal Tap Logic Analyzer |
易用性 | 学习曲线相对陡峭 | 较为容易上手 |
免费版本 | WebPACK (功能受限) | Lite Edition (功能受限) |
四、总结
Xilinx Vivado 和 Intel Quartus Prime 都是强大的 FPGA 设计工具,各有优缺点。选择哪个工具取决于具体的项目需求、个人习惯以及对 FPGA 器件的偏好。 一般来说,Vivado 在高性能设计方面表现更佳,而 Quartus Prime 在易用性和开发速度方面具有优势。建议初学者可以先从 Quartus Prime 的 Lite 版本入手,熟悉 FPGA 设计流程,然后再深入学习 Vivado。无论选择哪一款工具,都需要花费时间学习和实践,才能真正掌握 FPGA 设计技术。希望本文能帮助读者快速入门 FPGA 设计,并为后续的学习打下坚实的基础。