跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
编程语言

Vivado 入门实战:基于 Verilog 的 D 触发器设计与烧录

综述由AI生成演示了如何在 Vivado 中从零搭建工程,完成 Verilog 代码编写、仿真验证、管脚约束配置及 Bitstream 生成。通过 D 触发器实例,涵盖工程创建、源文件管理、综合报错处理、Testbench 仿真波形分析以及硬件下载流程,适合 FPGA 初学者快速上手开发环境。

DotNetGuy发布于 2026/4/12更新于 2026/5/810 浏览
Vivado 入门实战:基于 Verilog 的 D 触发器设计与烧录

一、创建工程

启动 Vivado 后,在左侧面板点击 Create Project(或打开已有工程)。

文章配图

进入向导界面,输入工程名称并选择存放路径。本例以 D 触发器为例,后续步骤均围绕此展开。

文章配图

点击 Next 选择项目类型,通常保持默认的 RTL Project 即可。随后会进入添加源文件环节,这里可以先跳过,稍后手动添加 .v 文件也是一样的操作。

文章配图 文章配图

最后一步是选择芯片型号。这一步很关键,必须根据你手头开发板的具体 FPGA 型号来选择,选错会导致后续管脚约束无法生效。确认无误后点击 Finish 完成工程创建。

文章配图

二、创建源文件

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

文章配图

在弹出的对话框中选择 Verilog 语言,输入文件名(例如 dff.v)。

文章配图 文章配图

这里有一个小技巧:如果勾选 Define ports now,系统会自动生成端口定义的代码框架,比自己手写更快捷。默认端口类型为 wire,若需寄存器输出可手动指定为 reg(如 output reg q)。

文章配图 文章配图

文件创建成功后,会在左侧 Source 列表中看到它。

文章配图

三、编写代码

我们以一个基础的 D 触发器为例。在编辑器中输入以下代码,注意语法细节和缩进。

`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 线程数设置可根据电脑配置调整,配置越高可选线程越多,能加快处理速度。

四、仿真验证

代码逻辑正确与否,需要通过仿真来验证。参考'创建源文件'的步骤,这次选择 Add or create simulation sources。

新建一个 Testbench 文件(例如 dff_tb.v),内容如下:

`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 dff_inst (
        .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 端的值变化,且 q_n 为反相输出。这证明 D 触发器的逻辑实现无误。

文章配图

五、配置管脚

仿真通过后,进行物理实现。点击 Run Implementation,等待流程跑完。成功后,之前禁用的仿真选项会解锁(一般用不到)。

文章配图

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

在这里分配引脚。将代码中的端口映射到开发板上的具体物理引脚,已分配的引脚在 Fixed 栏会自动打勾。I/O Standard 通常设置为 LVCMOS33(具体视板卡而定)。

文章配图 文章配图

按 Ctrl+S 保存,命名确认后 OK,系统会生成 XDC 约束文件。你可以在 Source 层级找到该文件的位置。

文章配图 文章配图

六、生成 Bitstream 文件并烧录

最后一步是将设计下载到硬件。

  1. 点击 Generate Bitstream 生成比特流文件。

文章配图

  1. 点击 Open Hardware Manager,自动连接硬件。确保开发板已通电且 USB 线连接正常,否则无法识别设备。

文章配图

  1. 连接成功后,右侧会显示芯片型号(应与工程创建时选择的一致)。右键点击芯片型号,选择 Program Device,然后点 Program 开始烧录。

文章配图

至此,一个简单的 FPGA 开发流程就全部走通了。

目录

  1. 一、创建工程
  2. 二、创建源文件
  3. 三、编写代码
  4. 四、仿真验证
  5. 五、配置管脚
  6. 六、生成 Bitstream 文件并烧录
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 函数核心用法与最佳实践
  • GitHub Copilot 安装与使用指南
  • GLM-4-9B-Chat-1M 实战:vLLM 加速与 Chainlit 前端集成
  • 使用 Python 构建机器学习预测模型全流程指南
  • Qwen3 与 Qwen Agent 智能体开发实战:接入 MCP 工具
  • Sentry 前端监控配置:AI 应用错误上报与隐私保护
  • Windows 系统安装与配置 Neo4j 图数据库指南
  • 大模型应用开发工程师技术指南与实战路径
  • GitHub Copilot Pro 学生免费获取与 VS Code 配置指南
  • Vue 项目使用 Nginx 部署指南
  • 前端防抖与节流:原理、区别与实战示例
  • Kafka 架构详解:高吞吐分布式消息系统设计
  • AI Agent 新范式:基于 FastGPT 与 MCP 协议构建工具增强型智能体
  • AI Agent 架构:基础组成模块深度解析
  • Qwen2.5-0.5B 边缘计算实战:轻量级对话机器人部署指南
  • Windows JDK 版本管理工具 JVMS 使用指南
  • Python 自适应大邻域搜索(ALNS)算法教程
  • VS Code Copilot 实战指南:从安装到 Agent 模式
  • OpenClaw 环境搭建、模型配置及 WebUI 远程访问指南
  • Vue 3 计算属性详解:选项式与组合式实战

相关免费在线工具

  • 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