当前位置:首页 > 新闻资讯 > FPGA之家动态 >

Vivado使用入门(四)仿真

时间:2024-07-30      来源:网络搜集 关于我们 0

本系列文章将详细介绍Vivado软件的使用方法,帮助初学者快速掌握AMD FPGA开发。

本文将详细介绍vivado仿真功能,包括如何使用、测试激励文件的撰写,以及如何调用第三方仿真测试软件。

一、仿真概述

仿真是FPGA设计流程中的重要环节,它允许设计者在实际硬件实现之前,对设计进行逻辑功能和时序行为的验证。Vivado软件中的仿真功能主要包括行为仿真(Functional Simulation)和时序仿真(Timing Simulation)。

1、行为仿真

行为仿真,又称为功能仿真,主要关注设计的逻辑功能是否正确。在此阶段,仿真器不考虑硬件的具体实现细节,如门延迟和布线延迟,只关注设计是否按照预期的逻辑行为工作。

2、时序仿真

时序仿真则关注设计在特定硬件实现条件下的时序行为。它考虑了实际硬件中的延迟因素,如门延迟和布线延迟,以验证设计是否满足时序约束。

二、功能仿真需要的文件

进行功能仿真前,需要准备以下文件:

1、设计HDL源代码

设计HDL源代码是仿真的基础,可以是VHDL或Verilog语言编写。这些源代码构成了被测试单元(Unit Under Test, UUT)。

2、测试激励代码(TestBench)

测试激励代码(TestBench)用于生成UUT的输入信号,并验证输出信号。TestBench不需要进行综合,因此具有很高的灵活性。

3、仿真模型/库

根据设计中使用的IP核或第三方模块,可能需要相应的仿真模型或库。Vivado集成了预编译的仿真模型,可以直接使用。

三、具体步骤

1、创建TestBench

在Vivado IDE中,通过“Sources”窗口中的“+”号添加TestBench。

选择“Add or Create Simulation Sources”,点击next。

然后点击“Create File”。

输入文件名TestBench,点击OK。

最后点击finish。

一路点击OK,点击Yes。最后在source窗口下,可看到testbench.v文件。

2、编写TestBench代码

在创建的TestBench文件中,编写测试激励代码。这通常包括初始化输入信号、生成时钟信号、监视输出信号等。

双击打开testbench.v文件,输入测试激励即可。

`timescale 1ns / 1ps // 定义时间单位和时间精度module testbench;// 定义测试激励信号reg clk; // 时钟信号reg reset; // 复位信号wire [3:0] led; // LED输出信号// 实例化待测试的设计模块test uut ( .clk(clk), .reset(reset), .led(led));initial begin // 初始化时钟和复位信号 clk = 1b0; reset = 1b1; // 应用复位 #20 reset = 1b0; // 等待一段时间,观察LED信号的变化 #10000 $finish;end// 时钟信号生成always #5 clk = ~clk; // 每隔5ns翻转时钟信号// 监控输出信号initial begin $monitor("Time = %t, reset = %b, led = %b",$time, reset, led);endendmodule// 这里是待测试的设计模块module test( input clk, input reset, output reg [3:0] led); reg [15 : 0] cnt; always @ (posedge clk) begin if (reset) cnt <= 0; else cnt <= cnt + 1; end always @ (posedge clk) begin if (reset) led <= 4b0001; else if (cnt == 16hffff) led <= led == 4b1000 ? 4b0001 : led << 1; endendmodule

更多有关测试激励编写可以查看:TestBench内容编写与方法总结

3、 运行仿真

在“Flow Navigator”窗口中点击“Run Simulation”,选择合适的仿真类型(如“Run Behavioral Simulation”)并启动仿真。

常用的一般是行为功能仿真(Run Behavioral Simulation),时序仿真测试不如直接上板调试来的快。

4、查看和分析结果

使用Vivado的Scope、Waveform等窗口查看和分析仿真结果。可以通过添加信号到波形窗口,保存波形配置信息,并进行波形的缩放、测量等操作。

四、高级技巧

1、波形配置信息的保存与加载

在仿真过程中,可以将波形配置信息保存为“.wcfg”文件,以便在后续的仿真中重用。

2、仿真时间的设置

可以在仿真设置中调整仿真的默认时间,以便更好地观察和分析信号的变化。

3、代码修改与重新仿真

在观察到仿真结果与预期不符时,可以对HDL源代码进行修改,并通过“Relaunch”功能重新加载并仿真,以便快速迭代和调试。

4、时钟和复位信号的生成

在TestBench中,通常会生成时钟和复位信号,以便模拟实际硬件的工作条件。

5、仿真精度的调整

根据需要,可以调整仿真的精度,如将仿真单位设置为1ns/1ps,以便更精确地观察信号的变化

如果需要工程源码,想要掌握更多的FPGA图像处理算法,学习FPGA图像算法的实现。

请阅读下面这篇文章:

FPGA图像处理算法专栏(倒计时3天,即将涨价20)

FPGA图像处理专栏系列文章汇总


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言