FPGA 设计工具:Xilinx Vivado、Intel Quartus Prime 使用教程 – wiki基地

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
    end

    endmodule
    “`

  • 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
    end

    endmodule
    “`

  • 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 设计,并为后续的学习打下坚实的基础。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部