Xilinx Vivado 仿真波形分析实践指南

二牛学FPGA
文章2026-04-28
70

Quick Start:快速启动行为级仿真

打开 Vivado,创建一个新工程或打开现有工程。依次添加设计源文件(RTL)和仿真激励文件(Testbench)。在 Flow Navigator 面板中点击 “Run Simulation”“Run Behavioral Simulation”,即可启动行为级仿真。仿真启动后,波形窗口默认显示顶层模块的所有信号。你可以右键点击波形窗口,选择 “Add Wave”,或者直接拖拽信号到波形区域,以添加关注的信号。点击 “Run All” 运行仿真至结束,或点击 “Run For” 运行指定时间。使用缩放工具(放大镜图标)查看波形细节。点击 “Stop” 停止仿真,观察波形变化是否符合预期。

前置条件与环境

项目/推荐值说明替代方案
器件/板卡Xilinx 7系列或更高(如 Artix-7、Kintex-7)支持 Vivado 的任意 FPGA
EDA 版本Vivado 2020.1 及以上Vivado 2018.3(功能基本一致)
仿真器Vivado Simulator(内置)ModelSim、QuestaSim(需配置)
时钟/复位Testbench 中生成时钟(周期 10ns)和复位信号使用 IP 核时钟源
接口依赖无特殊接口要求标准 JTAG 调试
约束文件仿真阶段不需要 XDC 约束综合后仿真需 XDC

目标与验收标准

  • 功能点:成功启动行为级仿真,观察关键信号(如数据总线、控制信号)的波形。
  • 性能指标:仿真运行时间覆盖至少 1000 个时钟周期。
  • 资源:无特殊资源要求,仿真仅依赖 CPU 和内存。
  • 验收方式:波形中信号跳变符合设计逻辑,无 X 态或高阻态异常。

实施步骤

1. 工程结构

创建 Vivado 工程,添加 RTL 源文件(如 counter.v)和 Testbench(如 tb_counter.v)。确保 Testbench 中实例化设计模块,并生成时钟和复位。常见坑:Testbench 中未正确实例化模块,导致仿真无信号变化。检查模块名称和端口映射。

2. 关键模块:计数器示例

以计数器为例,RTL 代码如下:

module counter (    input clk,    input rst_n,    output reg [3:0] count);always @(posedge clk or negedge rst_n) begin    if (!rst_n)        count <= 4'b0000;    else        count <= count + 1'b1;endendmodule

3. 编写 Testbench

编写对应的 Testbench,生成时钟和复位,并实例化计数器模块:

module tb_counter;reg clk;reg rst_n;wire [3:0] count;// 时钟生成:周期 10nsalways #5 clk = ~clk;// 初始化initial begin    clk = 0;    rst_n = 0;    #20 rst_n = 1;    #1000 $finish;end// 实例化设计模块counter u_counter (    .clk(clk),    .rst_n(rst_n),    .count(count));endmodule

4. 启动仿真并添加信号

在 Flow Navigator 中点击 “Run Simulation”“Run Behavioral Simulation”。仿真启动后,波形窗口默认显示顶层模块的信号。右键点击波形窗口,选择 “Add Wave”,或直接拖拽 countclkrst_n 等信号到波形区域。

5. 运行仿真并观察波形

点击 “Run All” 运行仿真至结束,或点击 “Run For” 并输入时间(如 1000 ns)。使用缩放工具(放大镜图标)查看波形细节。点击 “Stop” 停止仿真,观察波形变化是否符合预期。

6. 验证结果

检查 count 信号是否从 0 开始递增,复位后归零。确认无 X 态或高阻态异常。若波形异常,检查 Testbench 中的实例化是否正确,时钟和复位时序是否合理。

排障指南

  • 仿真无波形:检查 Testbench 中是否实例化设计模块,时钟是否生成。
  • 信号全为 X:检查复位信号是否有效,模块端口映射是否正确。
  • 仿真时间过长:使用 “Run For” 控制仿真时间,或设置断点。

扩展:高级波形分析技巧

  • 使用光标测量:在波形窗口中点击并拖动光标,测量信号跳变的时间差。
  • 添加总线信号:右键点击总线信号,选择 “Radix” 切换显示格式(二进制、十六进制等)。
  • 保存波形配置:点击 “File”“Save Waveform Configuration”,方便后续复用。

参考

  • Vivado Design Suite User Guide: Simulation (UG900)
  • Xilinx 官方论坛:仿真相关常见问题

附录:完整 Testbench 代码

module tb_counter;reg clk;reg rst_n;wire [3:0] count;always #5 clk = ~clk;initial begin    clk = 0;    rst_n = 0;    #20 rst_n = 1;    #1000 $finish;endcounter u_counter (    .clk(clk),    .rst_n(rst_n),    .count(count));endmodule
分类
技术分享
标签
Vivado仿真波形分析
浏览 70
分享:

相关推荐

同频道 · 相近分类

暂无相关推荐

作者

二牛学FPGA查看主页

同分类阅读

文章

延伸阅读与实操

  • 文章 + 课程联动深度文章常对应体系课章节,可一键选课。
  • 学习产出可参考笔记与作业案例在学习产出广场持续更新。

探索全站