欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

独立于三大FPGA平台采用modelsim仿真

发布时间:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 独立于三大FPGA平台采用modelsim仿真 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 背景
  • 1、Modelsim对Alteral器件的独立仿真
    • 1.1 对Quartus 的仿真
    • 1.2 对quartus 独立仿真实际案例
    • 1.3 保存波形文件
  • 2、Modelsim对ISE Xilinx器件的独立仿真
  • 3、Modelsim对vivado Xilinx器件的独立仿真

背景

独立于三大FPGA平台进行仿真,可以加快仿真速度,所以,完全有必要掌握以下,而且,我很纳闷儿的事情是每次修改了verilog后,修改了TB后,都要重新启动modelsim,这一点也让验证仿真的过程变得十分慢,而且每次都要在modelsim中,我们才知道tb的语法是否正确,这一点也让我觉得挺烦的。所以本篇文章开始致力于解决这件头疼的事情。另外modelsim SE版本是最高级的版本,而集成在这三大器件厂商的版本都是OEM版本,SE版和OEM版在功能和性能上有较大的差别,比如,对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本modelsim XE为例,对于代码少于40 000行的设计,SE要快10倍,而超过40 000行的设计,modelsim SE要快40倍。此外,SE还支持linux平台。

1、Modelsim对Alteral器件的独立仿真

后仿真又称之为时序仿真,是利用SDF文件对原有设计进行时序标注。后仿真从一定程度上可以反映设计的时序性能,modelsim本身并不能生成后仿真需要的SDF文件,但是由于Modelsim对多数FPGA厂商的支持,使其可以利用其它FPGA工具生成的SDF文件进行时序仿真。

1.1 对Quartus 的仿真

工具:modelsim SE-64 10.4 Quartus 13.1
当我们成功编译完verilog程序后,不用再simulation 设置里面匹配 tb 文件,此时,就可以把Quartus软件关闭了,接下来转为使用modelsim。
启动modelsim ,编译对应器件的库文件。也就是说,modelsim中需要有Alteral的器件库文件,这样才能调用这些器件库文件。为此,为了一劳永逸,我们需要在我们的modelsim中添加Alteral的器件库,然后编译进modelsim中。以下文本经过我多次检测,走了不少弯路,倒腾了很久。

  • 建立库



新建一个名字为ALT的库,当然上图不是空的,这是我成功后的图片。

  • 新建空文件

在modelsim中,在默认路径下面建立库,此时库里面是空的。然后在modelsim的安装路径中新建一个空文件。

  • 编译入库
    只有通过编译,我们才能添加到库中,我们把目录切换到上述图片的路径下面,然后点击编译


    注意选择编译到的库,另外选择alteral的安装路径下eda-》simlib,这里注意了,选择所有的verilog文件,不要全部.v和.vhd全部选,至于为什么,我之前试过好多次,全选后用verilog写的程序开启仿真会导致错误。由于,我本身也不会VHDL,这里我们就只选择所有的.v文件,通过编译入库吧。实际上,我们只需要我们需要的alteral_primerite.v以及cycloneiv_atoms.v入库即可,但是这里,我们就把所有都编译入库吧。

-修改ini
由于我们切换modelsim的工作路径过后,我们添加的编译的器件库就会消失,为了解决这个问题,我们可以在ini文件中,找到我们定义的库名,此处为ALT,ini中写的是ALT=ALT ,我们更改为:

重启软件,这样我们切换目录,完全不影响了

  • 开始仿真
    在开始仿真前,我们要新建一个工程,把用到的.v文都包含进一个新建的文件夹中,包括我们用到的IP的.v文件。
    然后在文件中新建一个工程。然后开始点击start simulation


如上图所示,选中要仿真的顶层实体,并且库,选择我们之前设置的ALT库,里面包含了我们的各种器件。当然,也包含了我们需要的cyclone iv的RAM IP核。

  • 注意事项
    首先,有时候点击编译是灰色的,这个时候,是因为我们的工程中已经编译完成了添加进来的实体。我们只需要继续添加即可,或者我们要添加器件库的话,就切换路径到默认路径(安装路径)

有时候切换路径按钮也是灰色的,这个时候需要在仿真里面,终止仿真。

此外,有些情况下,我们还需要关闭当前工程,恢复到无工程状态。

最后一点心得体会就是:不管modelsim的操作如何,思路很简单,要仿真,就得添加库进来,要添加库,只能通过编译入库,这样就可以调用这些库里面的函数和定义了。最后开启仿真即可。

1.2 对quartus 独立仿真实际案例

对于一个modelsim工程来说,需要有这几个文件组成:程序硬件设计verilog文件(包括IP的.v文件)、匹配的器件库文件、测试激励输入文件。
这里,我们要说的是需要先在quartus里面写好激励文件vt,编译,这样才能生成匹配的器件库。前面所说的方法,我们的用户往往电脑并不是这样设置的,所以,在项目交接过程中,我们最好提供给用户一个完整的modelsim工程,这样才能称得上独立的modelsim工程。下面,我就以一个实际的例子来说明。



如上图所示verilog_libs里面包含了匹配的器件库。

如上图所示,拷贝匹配的器件库到RAM工程文件夹中。另外,我们还需要拷贝.v文件

另外,把vt文件改成v文件,并把vt文件里面的名字改写成tb



然后·在modelsim中建立工程

进行编译

在开始编译的库选择中,选择我们modelsim工程文件中的这两个文件

在如下图的i 1中右键点击add wave就可以将所有的寄存器变量加入wave中观察

如下图所示,我们可以看到没有延迟。所采用的是功能仿真。

至此功能仿真完毕,我们又该如何增加时序仿真呢?下面我接着来讲解一番
我们向modelsim工程中添加vo文件,并拷贝到modelsim文件夹中来


然后编译仿真即可


从上图,我们可以看到出现了延时,以及跳变

1.3 保存波形文件

当我们一次运行了modelsim后,想要保存下来,以便下次直接打开,而不需要重新运行,我们点击保存。如下图所示,会提示我们保存为.do文件。这个文件包含了我们在modelism的波形操作设置,包括添加波形等等。如何看懂do文件的内容,后续我会补充。如下图,点击保存即可。

接下来,我们下次要打开波形的时候,首先打开.wlf文件,然后再进行运行
do wave.do

后续,我会继续完善怎么运行modelsim,由于独立运行modelsim不是必要条件,所以,我们也不急于求成,以后再慢慢来商讨,本次,先有了库的概念,然后进行后仿真的操作。虽然,我个人觉得,还有很多问题要解决,比如,如何进行前仿真,如何保存波形数据,如何与matlab互联等等,都是要解决的问题。这些问题,暂且留到以后吧。

参考:Modelsim电子系统分析及仿真 第七章

2、Modelsim对ISE Xilinx器件的独立仿真

对于modelsim,对ISE器件的仿真也是同样的道理,我们最重要的是添加ISE的xilinx器件库,这里我已经把库添加进去了,如果你还没有把xilinx的库添加进去,你可以按照联合仿真,然后拷贝用到库,再手动仿真。当然也可以先添加入库,详见:modelsim加入xilinx ISE库的方法


如上图所示

另外注意了,我们需要拷贝 RAM_IP.v 文件

如上图所示,注意添加xilinxcorelib文件。
这里要特别注意的一点是,请务必关掉优化,不然不能添加波形。



之后我们如果我们需要再次打开此modelsim工程,仍然可以保存do文件。然后打开wlf文件后在 run do文件即可

3、Modelsim对vivado Xilinx器件的独立仿真

这里由于我vivado的器件库并没有添加到Modelsim中,这里我将其添加到modelsim中,因为只要我添加进去,ISE就不能自动调用Modelsim了。这里,我先更改一下ini文件,将vivado的Xilinx库添加进去,后续我再删除。
这里,我就暂时不给出例子了,其实都是一样的步骤。
总结一下,就是加入器件库,然后编译仿真。

总结

以上是生活随笔为你收集整理的独立于三大FPGA平台采用modelsim仿真的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。