打印
[ISE]

Vivado联合modelsim仿真

[复制链接]
2428|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaochy1126|  楼主 | 2022-1-30 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    ModelsIm是FPGA仿真中最常见的软件之一。可以单独利用Modelsim来仿真或者通过开发工具调用来联合仿真。至于用哪一种方法呢?那就取决于个人的喜好了,经过一段时间的对比,目前我比较趋向于利用开发工具联调来仿真。主要有以下优势:
  • 联调仿真分析,操作简单。你几乎不需要手动敲Tcl指令就可以进行仿真,自动化程度更高。
  • 与单独用Modelsim建立工程仿真相比,联调仿真一般在仿真是所需要调用的库,软件会自动分析,不需要自己筛选仿真所需的库文件,且不容易出错。这一优势在你仿真工程中带有大量IP核、原语的时候,会体现得淋漓尽致。
  • 在仿真时候,多个测试用例仿真时,层次结构更加清晰。
本文就如何利用vivado联合modelsim仿真进行简要说明。
1.仿真前具体设置
  • 利用vivado先编译好modelsim仿真所需要的库。存放在某个文件夹中,方便以后调用。我的习惯一般将库放到modelsim的安装目录下,新建一个文件夹来存放新编译的库。如下图所示文件夹叫vivado2017_lib。方便区分,我就以我用的vivado版本来命名。


  • 修改modelsim.ini文件,将库添加到modelsim的启动中。具体做法在介绍modelsim仿真一文有详细说明,这里不展开。

  • 接Vivado的相关设置。主要包含以下4步,其中第4步是把仿真库指向前一个步骤编译出来的库文件。第5步是指向modelsim启动程序的路径。



以上即做好了联合仿真前的准备设置工作了。

使用特权

评论回复

相关帖子

沙发
gaochy1126|  楼主 | 2022-1-30 16:21 | 只看该作者
2.仿真步骤
工程准备完毕后,添加好仿真所需文件(testbench/仿真激励模块)。例如下图中,1是我准备要仿真的工程。2是仿真的顶层文件即测试用例,3是仿真包含的内容,包括需要仿真的文件(UDT),仿真激励,例如时钟以及复位产生文件等。其中UDT即仿真对象是可综合的文件。

**当前仿真的测试用例,就可以开始仿真了。
问题1:如何保留我这一次的观察信号设置?
具体操作步骤如下:

为了方便保留这一次仿真中的一些观察信号以及设置,我们可以把它保存下来。在modelsim软件呢中,点击保存,想这次的相关设置保存好do文件。注意:为例避免被覆盖掉,一般不能取默认的命名,建议将do文件命名与对应的测试用例对应上。

问题2:怎样还原上一次的仿真波形等设置?
在下一次启动modelsim的时候,选择File—>LoadàMacro_File,然后选择上一次保留的设置文件即可。

问题3.如何添加多个测试用例文件?
通过下述步骤添加仿真文件。例如不同的testbench等。
针对多个testbench的情况,通过设计set_as_top选择来**当前testbench,从而决定该次仿真的测试用例。如下图的工程中,包含了2个测试用例,当前**的是tb02。



使用特权

评论回复
板凳
gaochy1126|  楼主 | 2022-1-30 16:21 | 只看该作者
3.可能出现的问题
联合仿真的时候,有时候并不像单独利用modelsim仿真的那样,会弹出错误日志方便你定位。有时候有些错误(例如语法错误,编译顺序的问题,中文路径或者缺乏某个文件导致没能仿真成功)会导致vivado一直卡住了,没能够走到调用modelsim的不骤。那么碰到这种情况,我们可以去哪找到日志呢?
以我建的工程为例,一般在vivado存放仿真工程的路径中,可以找到compile.log和simulate.log这两个日志文件,方便定位。

4.仿真文件管理建议
一个好的仿真文件管理习惯,有助于快速还原当初的仿真环境,有助于定位问题。

最起码可以在仿真文件中包含以下几个子文件夹,其中HDL用于存放仿真是所编写的一些文件,例如仿真的时钟产生模块、外围芯片模型等;TB_PTN用于存放不同的测试用例,即不同的testbench。Wave文件用于存放针对不同testbench下观察信号的设置等等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:这个社会混好的两种人:一是有权有势,二是没脸没皮的。

1051

主题

11300

帖子

26

粉丝