
Modelsim工具的一般仿真流程.docx
13页Modelsim 工具的使用工具的使用一、一、 仿真流程仿真流程1. 建立建立 work 库库通常 modelsim 在使用的时候,和大多数开发软件一样,第一步先建立一个工程而 modelsim 在建立工程之前,一般都要建立一个工作库(library),命名为 work,仿真的时候 工程就运行在这个库里面通常 modelsim 在第一次运行的时候,并没有 work 这个库文件, 所以没有 work 库的话,先建立一个 work 的 library,再建立新的工程 一般的工程路径设置如下:project放置 FPGA 的工程文件,source放置源代码 (ipcore,建议放在工程的根目录下,有同事发现 ipcore 改变其路径,仿真的时候会出错, 并且工程里面要手动添加 IP 核的文件) ,simulation放置 modelsim 的仿真工程新建一个 work 库 FileNew-Library刚建立的 work 库是空的,因为里面什么东西都没有,但是当添加了相应的文件后,编译一 次,work 就会有内容了新建的 Work,右键设置 Edit 一下他的属性,如图上所示,pathname 这里指定到存放仿真工程的 work 的库文件夹即可。
2. 建立新工程建立新工程File—>New-Project然后就会弹出如下对话框,选择好工程的路径,命名好工程名字如果之前就已经编写 好了 v 或者 vhd 文件的话,直接选择 add existing file,否则,选择 Create New File接下来把 所有的 v 或者 vhd 的文件都添加进来3. 编写编写 testbench……4. 编译整个工程编译整个工程编写完 testbench 之后,编译整个工程,以后每当工程中其中一个文件修改后,只需单独编译修改的那个文件即可 (参见文档最后部分的例子) 编译完后,会发现在 Project 中,里面的文件都会打钩,并且在 simulation 文件夹里面 的子文件夹 work 会多了一些东西出来返回到 Library 这里,会发现之前是空的 wrok 文件库里面,现在也多了一些东西需要注 意的是,在设置该 library 路径的时候,一定要指定到仿真目录的 work 文件夹,否则很可 能映射不过来5. 仿真仿真回到 Library 中,展开 Library_work 中的文件,我们只需对 testbench 进行仿真即可点击 simulate,稍等片刻之后,就会弹出另外一个 sim 仿真窗口。
在 Objects 选项中,选择自己想要观察的信号,添加到波形中设定好仿真时间,就可以仿真了综上,整个脱离软件开发平台的仿真流程基本上如此文中只是简单介绍了最基本的,后 面还会涉及到后仿真,针对单独某个文件仿真,testbench 的编写,为了以高效率的 Tcl 命 令等等在仿真之处,需要修改 modelsim 的 ini 文件,添加器件库信息,这里暂不做介绍6. (附)修改设计文件后的仿真(附)修改设计文件后的仿真有时候经过仿真,发现设计文件的问题,需要修改,然后再仿真,碰到这种情况应该怎样 做呢?下面举一个修改了 PLL 的例子,简要说明在修改之前,PLL 出来了一个 20MHz 和 5MHz 的时钟,如图上所示返回 Quartus 修 改设计文件,修改 PLL 的参数,让其输出 20MHz 和 10MHz 的时钟,修改后发现 Modelsim 已经检测到 pll 的变化,原来的勾,变成了问号重新编译该 pll 文件(这里的强大之处是, 不需要等待在 Quartus 将工程重新编译) ,重新仿真即可如上图所示,证明仿真结果和修改后所需的设计一致2014 年 8 月 25 日星期一 上周进行了脱离 Altera 平台的 Modelsim 仿真,现在当在做脱离 ISE 平台的仿真时,报 了以下错误,仔细观察了一下,这些错误都是调用了 IP 核的文件,很有可能是因为没有把 xilinx 的相关的库添加到 modelsim.ini 这个文件当中。
截图如下:但是发现当利用 xilinx 平台调用仿真的时候,在仿真的目录里面,会自己产生一个modelsim.Ini 文件,差别可能就在这里果然,当利用 ISE 平台自己调用的时候,发现在 modelsim 文件库里面多了很多东西其中大部分都是 Xilinx 的器件库本着这种想法,对比了以下两次仿真时,所用到得配置文件 modelsim.ini 文件的区别截 图如下:从上图中可以看到,利用 ISE 平台调用的 Modelsim 仿真,果然自己往配置文件里面添加了 不少 Xilinx 的库,由于单独使用 modelsim 的时候,没有把相应的库文件添加进去,所以仿 真不成功 编译库的路径如下:将 ISE 仿真生产的库,存放到一个自己清楚,方便调用的文件夹中,方便修改 Modelsim 启 动的 ini 配置文件然后在配置文件中,将红色圈圈圈起来文件夹里的库,添加到 modelsim.ini 的配置文件中 具体截图如下:综上所述,脱离 xilinx 平台的仿真和 Altera 平台仿真,所走的流程是一样的,比较有可 能不一样的地方就是出现在 IP 核这块了,从实验中出现的现象来看也证实了这个问题。
实验的程序中用到了 ROM,只不过 Altera 的 ROM 用的是 mif 文件,而 Xilinx 的 ROM 用的是 coe 文件,但是在生产 IP 核的时候, (暂还不确定是不是因为曾在ISE中调用过 modelsim 来仿真的时候,自动生成了 mif 文件,反正在利用 Modelsim 来仿真的时候, ROM 确实需要 mif 文件) 在仿真的时候,和 Altera 一样,需要将 mif 文件,放到仿真文件 夹的根目录下才不会报错 在编译的过程中出现了以下错误,下面报了一个时间精度的问题,由于测试文件的时 间精度和 modelsim 软件的精度不一样,导致仿真出错 (所以,以后再编写程序的时候, 要注意添加时间精度表达 )在用 verilog 写的测试文件中,可以通过`timescale 1ns/1ps,来设定仿真时的时间精度但 是 Vhdl 暂时没有发现网上查了一下,发现可以通过以下命令修改:其中 vtb 是 testbench,即 所要用来仿真的文件。
