跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Vivado 入门实战:从工程创建到比特流烧录

Vivado 是 Xilinx FPGA 开发的核心工具,本指南从零开始演示完整流程。涵盖工程初始化、Verilog 代码编写、Testbench 仿真验证、管脚约束配置以及最终比特流生成与烧录。重点解决常见编译错误处理及仿真波形观察技巧,帮助开发者快速上手硬件逻辑设计。

信号故障发布于 2026/4/8更新于 2026/10/1898 浏览
Vivado 入门实战:从工程创建到比特流烧录

第一步:创建工程

启动 Vivado 后,主界面左侧是项目导航区。点击 Create Project(或打开已有工程),右侧会显示最近访问的项目列表。

![截图:Vivado 欢迎界面]

进入向导后,为工程命名并指定存放路径。这里以 D 触发器为例进行演示。

![截图:工程命名与路径设置]

选择 RTL Project 类型,点击 Next。系统会询问是否添加源文件,此时可以先跳过,后续在工程中统一添加即可,直接点击 Next。

![截图:添加源文件选项]

接下来选择目标芯片型号。这一步很关键,必须根据实际开发板上的 FPGA 型号来选择,否则后续约束文件无法匹配。确认信息无误后,点击 Finish 完成创建。

![截图:芯片型号选择]

第二步:创建设计文件

工程建立完成后,进入主工作区。在左侧 Project Manager 面板中,右键点击 Sources,选择 Add Sources。

![截图:添加源文件入口]

选择 Add or create design sources,语言选 Verilog,输入文件名后完成创建。

![截图:新建 Verilog 文件]

创建时可以选择定义端口,这会自动生成部分代码框架,比手动敲更快捷。若未在此定义,默认端口类型为 wire,如需寄存器输出可手动声明 output reg q。

![截图:端口定义界面]

文件创建成功后,会在 Sources 窗口中看到对应的模块结构。

![截图:设计文件创建完成]

第三步:编写代码

我们以 D 触发器为例编写逻辑。将以下代码复制到新建的 .v 文件中:

`timescale 1ns / 1ps
module dff(
    input  wire clk,  // 时钟信号
    input  wire d,    // 数据输入
    output reg  q,    // 数据输出
    output reg  q_n   // 反相输出
);
    always @(posedge clk) begin
        q  <= d;
        q_n <= !d;
    end
endmodule

保存后点击 Run Synthesis 进行综合编译。如果报错,请查看下方的 Messages 窗口,重点关注 Error 级别的提示。

![截图:运行综合界面]

编译过程中可以调整 CPU 线程数(Number of Jobs),配置较高的电脑可选更多线程以加速计算。遇到错误时,根据提示信息修改代码直到通过为止。

![截图:综合日志与线程设置]

第四步:仿真验证

综合通过后,需要创建 Testbench 进行功能验证。参考上一步的操作,选择 Add or create simulate sources。

Testbench 代码如下:

`timescale 1ns / 1ps
module dff_tb();
    reg clk_sim;
    reg d_sim;
    wire q_sim;
    wire q_n_sim;

    // 每 10ns 翻转一次时钟,周期 20ns
    always #10 clk_sim = ~clk_sim;

    initial begin
        clk_sim = 0;
        d_sim = 0;
        #20;      // 延时 20ns
        d_sim = 1;
        #40;      // 延时 40ns
        d_sim = 0;
        #100;     // 延时 100ns
        $stop;    // 停止仿真
    end

    // 实例化被测模块
    dff u_dff (
        .clk (clk_sim),
        .d   (d_sim),
        .q   (q_sim),
        .q_n (q_n_sim)
    );
endmodule

保存后再次运行 Run Simulation。如果有多个 TB 文件,记得右键选中当前要运行的那个,设为 Active。

注意:仿真时长可在 Tool Settings -> Simulation 中调整。如果波形显示不全,检查时间设置是否足够。

![截图:运行仿真按钮]

观察生成的波形图,每当 clk 上升沿到来时,q 端应跟随 d 端的值变化,说明 D 触发器逻辑正确。

![截图:仿真波形结果]

第五步:配置管脚

仿真无误后,开始物理实现。点击 Run Implementation,等待流程跑完。

![截图:运行实现界面]

实现完成后,点击 Open Implemented Design,然后在菜单栏选择 Window -> I/O Ports。

在这里分配引脚。已分配的引脚状态栏会显示 Fixed 勾选。通常 I/O Standard 设置为 LVCMOS33(具体需查阅开发板手册)。

![截图:IO 端口分配界面]

按 Ctrl+S 保存,输入文件名后确定,系统会生成 .xdc 约束文件。文件位置可在 Sources 窗口中找到。

![截图:XDC 约束文件位置]

第六步:生成 Bitstream 并烧录

最后一步是生成比特流文件。点击 Generate Bitstream。

![截图:生成比特流按钮]

硬件连接方面,确保开发板已通电且 USB 下载线连接正常。点击 Open Hardware Manager,系统会自动搜索设备。

![截图:打开硬件管理器]

找到芯片型号后,右键选择 Program Device,点击 Program 即可将逻辑烧录进 FPGA。

![截图:烧录设备界面]

目录

  1. 第一步:创建工程
  2. 第二步:创建设计文件
  3. 第三步:编写代码
  4. 第四步:仿真验证
  5. 第五步:配置管脚
  6. 第六步:生成 Bitstream 并烧录

更多推荐文章

查看全部
  • AI Skills:前端开发的新效率工具
  • Python 函数基础:定义、参数与变量作用域
  • 生产环境中使用 git revert 的 5 个真实案例
  • 大模型技术原理详解:从 Transformer 到 RLHF
  • PaperZZ 论文查重与 AIGC 检测工具评测
  • 前端问卷系统评分题保存草稿报错解决方案
  • 延凡 AI 工业视觉分析算法平台技术架构与应用
  • 利用 DeepSeek API 快速构建贪吃蛇游戏
  • OpenClaw:AI 行动型智能体框架的技术架构与实现解析
  • 用 nanobot 搭建 QQ AI 机器人并扩展搜索引擎
  • GLM-4.6V-Flash-WEB:轻量级多模态模型落地与部署实践
  • C++ STL 核心数据结构:红黑树详解
  • MyBatisPlus 与 Thymeleaf 全栈分页整合实战
  • Whisper.cpp 量化模型清单及 ggml 格式下载指南
  • Rust 与 WebAssembly 实战:在浏览器与 Node.js 中运行高性能代码
  • 5 年经验社招后端面试真题与经验总结
  • 解决 VS Code 远程连接服务器后 GitHub Copilot 无法使用问题
  • LoRA 微调 LLaMA 类模型:原理与实战指南
  • FPGA 工程师职业方向详解:岗位分类与核心能力
  • Meta Segment Anything 模型核心解析与 SA-1B 数据集详解

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online