登录/注册

vivado开发流程

更多

Vivado 是 Xilinx(现为 AMD 旗下)提供的用于 FPGA 和 SoC 设计的主要集成开发环境 (IDE)。其标准开发流程主要包含以下步骤,我们用中文详细说明:

  1. 创建项目:

    • 启动 Vivado。
    • 选择 Create ProjectFile -> Project -> New
    • 指定项目名称和存储位置。
    • 选择项目类型:通常选择 RTL Project(从 RTL 代码开始设计),你也可以选择使用 IP Integrator 创建 Block Design,或在已有设计上添加源文件。
    • (可选)添加现有的设计源文件(HDL 代码、约束文件、IP 核等)。如果还没有,可以跳过,稍后添加。
    • 选择目标器件:这是最关键的一步。根据你使用的开发板(如 Zynq-7000, Zynq UltraScale+, Artix-7, Kintex-7, Virtex 等系列的具体型号和封装速度等级)或项目需求,精确选择 FPGA 或 SoC 器件型号。可以通过搜索、筛选器或直接指定型号来选择。
    • 确认总结信息,完成项目创建。
  2. 设计输入 / 源文件添加:

    • HDL 源代码: 这是设计的核心。
      • Sources 窗口中,右键点击 Design Sources,选择 Add Sources 或直接使用 Add Sources 按钮。
      • 选择 Add or create design sources
      • 可以添加现有的 HDL 文件(.v, .vh, .sv, .vhd, .vhdl),也可以在 Vivado 中创建新的 HDL 文件(使用 Create File 按钮,选择语言 VHDL 或 Verilog/SystemVerilog)。编写或修改你的硬件描述代码。
    • 约束文件 (.xdc): 定义设计的物理和时序要求。
      • Sources 窗口中,右键点击 Constraints,选择 Add Sources 或使用 Add Sources 按钮。
      • 选择 Add or create constraints
      • 可以添加现有的 .xdc 文件,也可以创建一个新的约束文件。约束主要包括:
        • 时钟约束: 定义时钟频率、不确定性等。
        • 输入/输出延迟约束: 定义信号相对于时钟的到达时间要求。
        • 管脚位置约束: 将设计的顶层端口绑定到 FPGA 的物理管脚。
        • 时序例外约束:set_false_path, set_multicycle_path 等。
        • 物理约束: (如布局约束,通常较少在 XDC 中直接写,更多在实现后通过 GUI 设置)。
    • IP 核: 使用 Vivado IP Catalog 中的预验证模块加速开发。
      • 打开 IP Catalog
      • 浏览或搜索需要的 IP 核(如时钟发生器 Clocking Wizard, 存储器控制器 MIG, 处理器系统 PS, 各种接口 IP 如 AXI, UART, Ethernet, PCIe 等)。
      • 双击 IP 核进行配置(参数化)。
      • 生成输出文件(通常包括 HDL 封装、约束、网表等)。生成的 IP 会自动添加到项目中。
      • 在你的顶层设计中实例化该 IP。
  3. RTL 分析 (RTL Analysis) / 语法检查 (Elaboration):

    • Flow Navigator 中的 RTL ANALYSIS 部分,点击 Open Elaborated Design
    • 此步骤检查 HDL 代码的语法和基本语义错误。
    • 生成设计的原理图视图(Schematics),便于理解模块连接关系。
    • 检查 I/O Ports 是否正确定义。
    • 注意: 这不是综合,只是初步分析。
  4. 综合 (Synthesis):

    • Flow NavigatorSYNTHESIS 部分,点击 Run Synthesis
    • Vivado 综合引擎 (synth_design) 将你的 RTL (Verilog/VHDL) 描述转换为底层 FPGA 基本元件(查找表 LUTs、寄存器 Registers、块存储器 BRAMs、DSP Slices 等)组成的逻辑网表。
    • 执行一些初步的优化。
    • 检查逻辑资源使用情况。
    • 生成初步的时序报告(基于线负载模型估算,不精确)。
    • 综合后,可以点击 Open Synthesized Design 查看综合后的原理图、资源利用率报告、时序报告等,进行初步分析。
  5. 实现 (Implementation):

    • Flow NavigatorIMPLEMENTATION 部分,点击 Run Implementation
    • 注意: 有时需要先对综合后的设计进行约束修改或分析,再启动实现。
    • 实现包含三个主要自动化子步骤:
      • 布局 (Placement - place_design): 将综合网表中的逻辑单元(LUTs, Regs, BRAMs, DSPs)分配到 FPGA 芯片上的特定物理位置。
      • 布线 (Routing - route_design): 使用 FPGA 内部的可编程连线资源,连接所有已布局单元之间的信号。
      • 物理优化 (Physical Optimization): 在布局布线过程中和完成后进行的优化,以满足时序和性能要求。
    • 实现是最耗时且最关键的阶段之一,目标是在满足所有约束(主要是时序约束)的前提下,完成物理映射。
    • 实现完成后,点击 Open Implemented Design。这是分析设计物理实现的关键环节:
      • 查看布局布线结果: Device 视图、Routing 视图。
      • 分析关键时序报告: 非常重要!检查是否满足所有时序约束(Setup/Hold)。查看关键路径(Critical Path)信息。
      • 查看资源利用率报告: 确认使用的 LUTs, Registers, BRAMs, DSPs 等是否在目标器件容量范围内。
      • 检查管脚分配: 确认 I/O Ports 是否按约束文件正确映射到物理管脚。
      • 功耗分析: 运行功耗估算(需提供翻转率或仿真文件)。
    • 迭代: 如果时序不满足或资源超限,通常需要回到前面步骤修改 HDL 代码、优化逻辑、调整约束(尤其是时序约束或布局约束)、优化 IP 配置,然后重新运行综合和实现。
  6. 生成比特流 (Generate Bitstream):

    • Flow NavigatorPROGRAM AND DEBUG 部分,点击 Generate Bitstream
    • 此步骤将经过验证的实现结果(布局布线信息、配置信息)转换成 FPGA 能够加载和执行的二进制配置文件,通常称为比特流 (Bitstream),文件后缀为 .bit
    • 可以选择同时生成用于间接编程的文件(如 .bin)。
    • 比特流包含了配置 FPGA 内部所有可编程资源(逻辑、布线、IO、Block RAM 初始化等)的信息。
  7. 下载与调试 (Download & Debug):

    • 硬件连接: 将开发板通过 JTAG 或 USB 电缆连接到主机(通常使用 Platform Cable USB II 或 SmartLynq 下载器)。
    • 打开硬件管理器:Flow NavigatorPROGRAM AND DEBUG 部分,点击 Open Hardware Manager
    • 自动检测硬件: 点击 Open target -> Auto Connect。Vivado 应该能检测到 JTAG 链上的 FPGA 或下载器。
    • 编程器件:
      • Hardware 窗口中右键检测到的器件(通常是 xc7...),选择 Program Device...
      • 在弹出的对话框中,浏览并选择生成的 .bit 文件。
      • (可选)勾选 Program debug cores 如果你在设计中插入了 ILA 或 VIO 等调试核。
      • 点击 Program。比特流将被下载到 FPGA 中,设计开始运行。
    • 片上调试 (ChipScope/ILA):
      • 如果设计中集成了集成逻辑分析仪 (ILA) 或虚拟输入输出 (VIO) 核,在下载包含调试核的比特流后,可以在 Hardware Manager 中看到这些调试核。
      • 设置触发条件 (Trigger Setup)。
      • 运行 (Run Trigger)。
      • 捕获并查看内部信号波形进行调试分析。
  8. 验证 (Verification - 贯穿始终):

    • 虽然常被单独列出,但验证是贯穿整个流程的关键活动,并非仅在最后一步。
    • RTL 仿真 (Simulation): 在设计早期(综合前),使用 HDL 仿真器(如 Vivado 自带的 XSim,或第三方 Modelsim, VCS)对 RTL 代码进行功能验证。创建 Testbench (.v/.vhd/.sv) 来激励设计并检查输出。
    • 时序仿真 (Post-Implementation Simulation): 在实现后,利用布局布线后的延时信息进行更精确的仿真(较少使用,通常静态时序分析 STA 更高效)。
    • 静态时序分析 (STA - Static Timing Analysis): 在综合后(估算)和实现后(精确)进行。这是验证设计是否满足所有时序约束的主要手段(步骤 5 中分析的关键环节)。Vivado 的时序报告是 STA 的结果。
    • 板上验证: 下载比特流到 FPGA 后,配合外部仪器(示波器、逻辑分析仪)或软件进行实际功能测试。

总结流程图:

创建项目(选器件) -> 设计输入(HDL代码 + 约束 + IP核) -> RTL分析/语法检查 (Elaboration) -> 综合 (Synthesis) -> 实现 (Implementation:布局Place + 布线Route) -> 时序/资源分析 -> [不满足? -> 修改设计/约束 -> 重新综合/实现] -> 满足 -> 生成比特流 (Bitstream) -> 下载到FPGA -> 调试/验证 (ILA, 功能测试)

关键点:

这个流程提供了 Vivado FPGA/SOC 开发的标准框架。具体项目的细节和复杂度会有所不同,但这个基本步骤是通用的在实际开发中,需要根据具体需求熟练运用 Vivado 的各种功能(如时序约束向导、DRC 检查、功耗分析、版本控制集成等)。

(可选)Linux 用户注意: Vivado 也支持 Linux 环境(如 Ubuntu)。安装和启动命令 (vivado, vitis) 通常在终端执行。项目流程本身与 Windows 版本基本相同。

Vivado无法选中开发板的常见原因及解决方法

对应的器件信息和约束文件(XDC),大大简化工程初始化流程。然而,在某些情况下,我们可能会发现 Vivado 的界面中无法选中目标开发板,导致只

2025-07-15 10:19:43

vivado主界面及设计流程

Vivado设计主界面,它的左边是设计流程导航窗口,是按照FPGA的设计流程设置的,只要按照导航窗口一项一项往下进行,就会完成从设计输入到最后下

2023-09-17 15:40:17

vivado仿真流程

vivado开发软件自带了仿真工具,下面将介绍vivado的仿真流程,方

2023-07-18 09:06:59

Vivado设计套件用户指南(设计流程概述)

电子发烧友网站提供《Vivado设计套件用户指南(设计流程概述).pdf》资料免费下载

资料下载 申根换 2023-09-15 09:55:07

Vivado设计流程指导说明

Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project Mode。在本手册中,我们将以一个简单的实验案例,一步一步的完成 Vivado

资料下载 姚小熊27 2021-03-25 14:39:13

Vivado设计流程指导手册

Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project Mode。在本手册中,我们将以一个简单的实验案例,一步一步的完成 Vivado

资料下载 姚小熊27 2021-03-22 11:39:53

Vivado 开发教程(一) 创建新硬件工程

本文主要介绍如何使用Vivado 开发套件创建硬件工程。

资料下载 旧念 2021-02-02 07:13:32

Vivado的安装生成bit文件及烧录FPGA的简要流程教程免费下载

本文档的主要内容详细介绍的是Vivado的安装生成bit文件及烧录FPGA的简要流程教程免费下载。

资料下载 jollylin7788 2019-06-18 08:00:00

vivado创建工程流程

vivado的工程创建流程对于大部分初学者而言比较复杂,下面将通过这篇博客来讲解详细的vivado工程创建

2023-07-12 09:26:57

用TCL定制Vivado设计实现流程

今天推出Xilinx已发布的《Vivado使用误区与进阶》系列:用TCL定制Vivado设计实现流程。

2023-05-05 09:44:46

Xilinx FPGA Vivado 开发流程

设计流程。话不多说,上货。Xilinx FPGA Vivado 开发流程

2023-04-13 15:18:52

Xilinx FPGA Vivado开发流程介绍

系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。本次带来Vivado系列,Vivado

2023-02-21 09:16:44

基于microblaze的vivado开发流程

、SW拨码开关以下是官网提供的资料链接:arty a7开发板资料Pmod DA4资料vivado安装说明board files添加基于microblaze的v

2022-01-18 08:09:43

Vivado与ISE的开发流程以及性能差异

的 .mdl 的模型文件依旧可以被打开,编辑,保存,如果需要的话,新的模型也可以被向后兼容保存成 .mdl 格式。为了体现Vivado与ISE的开发流程

2021-01-08 17:07:20

Vivado综合引擎的增量综合流程

从 Vivado 2019.1 版本开始,Vivado 综合引擎就已经可以支持增量流程了。这使用户能够在设计变化较小时减少总的综合运行时间。

2019-07-21 11:02:08

7天热门专题 换一换
相关标签