跳转到主要内容

Vivado仿真功能

judy 提交于

本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/6C2L26xqsG4Imu2roubiug"&gt; FPGA入门到精通微信公众号</a></span>

仿真是FPGA开发中常用的功能,通过给定测试激励,对比输出结果,来验证设计的功能性。本文将介绍vivado中仿真功能的使用。

<strong>一、 仿真功能概述</strong>

Vivado支持:Vivado Simulator、Questa、ModelSim、IES、VCS、Rivera-PRO和Active-HDl等等仿真工具。

vivado中的仿真可以分为三种:

RTL级行为仿真:一种在综合和实现前用来验证设计的方法,主要用来检测模块的功能是否符合要求。

综合后仿真:综合后使用网表进行仿真,以验证综合后设计是否满足要求,包括时序仿真和功能仿真。

实现后仿真:布线实现后进行功能仿真和时序仿真,接近真实的运行情况。

注意:综合后仿真和实现后仿真,运行耗时较长,一般不用。
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>

<strong>二、测试激励</strong>

测试激励(Testbench)是一种用于仿真的输入信号,主要用于触发设计中的逻辑流程并生成仿真波形。在Vivado中,我们可以使用Verilog或VHDL编写测试激励代码,在仿真过程中使用该代码来生成输入信号。

Vivado Simulator支持VHDL(IEEE-STD-1076-1993)、Verilog(IEEE-STD-1364-2001)、SystemVerilog中的可综合子集(IEEE-STD-1800-2009)三种硬件描述语言,此外还支持IEEE P1735加密标准。

在实际应用中,测试激励可以根据需求进行定制,例如添加复杂的数学计算,以更好地测试设计的性能。

<strong>三、 第三方仿真器设置</strong>

Vivado除了自带的仿真器以外,还有一些第三方仿真器可供选择。使用第三方仿真器可以提高仿真效率和灵活性,并允许设计人员使用他们熟悉的工具进行仿真。

在使用第三方仿真器之前,需要将其设置为Vivado的默认仿真器。这可以通过Vivado中的仿真设置完成。首先,进入Vivado的“Flow Navigator”中选择“Settings”,然后选择“Simulation”,设置默认仿真器为第三方仿真器。
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>

<strong>四、仿真库编译</strong>

使用Vivado Simulator时,不需要编译仿真库。如果使用第三方仿真工具时,则必须先编译仿真库,才能正确运行。仿真库中包含了仿真模型,比如FPGA和IP的行为模型和时序模型。编译之后的库可以在多个设计工程中使用。

编译仿真库的方法,如下图:
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>

<strong>五、 仿真设置</strong>

在vivado仿真设置中,设定目标仿真器、仿真集、仿真顶层模块名称等选项,如下图所示:
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>

<strong>六、仿真集功能</strong>

Vivado提供了仿真集(Simulation Sets)功能,可以将不同设计阶段所用到的不同测试激励添加到不同的仿真集中。
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>

当工程中有多个仿真集时,当前正在使用的仿真集会标注为Active状态:
<center><img src="https://cdn.eetrend.com/files/2023-10/%E5%8D%9A%E5%AE%A2/100574824-3197…; alt=""></center>

<strong>七、 总结</strong>

本文介绍了FPGA开发中的仿真功能,包括测试激励、第三方仿真器设置、仿真库编译、仿真设置、仿真集功能等方面的内容。