原创 利用ModelSim SE6.0C实现时序仿真

2008-9-8 00:03 3486 5 5 分类: FPGA/CPLD

1) 打开一个工程文件。


2) 打开Settings设置栏,选择EDA Tools Settings下的Simulation栏。在右边出现的设置栏中将“Tool name”的下拉菜单选择“ModelSim(Verilog)”(如果工程用VHDL语言实现,则可以选择“ModelSim(VHDL)”;如果ModelSim使用的是for Altera的专用版本,则可以选择“ModelSim-Altera(Verilog)”或“ModelSim-Altera(VHDL)”)。


另外在设置栏中还有其他的核选框。



  1. 如果选中“Maintain hierarchy”,则表示在做时序仿真时就能看到像在功能仿真的工程文件层次结构,可以找到定义的内部信号。因为在做后仿时,源文件中的信号名称已经没有了,被映射为软件综合后自己生成的信号名,观察起来很不方便。这个设置与ISE里综合右键属性的Keep Hierarchy选择YES的功能是一样的。
  2. 如果选中“Generate netlist for functional simulation only”,则表示只能做功能仿真。

3) 点击  “Start Compilation”按钮编译工程,完成之后在当前的工程目录下可以看到一个名为“Simulation”的新文件夹,下面的“ModelSim”文件夹下包括仿真需要的.vo网表文件和包含延迟信息的.sdo文件。


4) 打开ModelSim软件(或者在Quartus下“Settings->EDA Tools Setting->Simulation”出现的设置栏中选中“Run this tool automatically after compilation”,直接从Quartus下调用ModelSim软件),可以在当前工程目录下新建一个Project。在Project标签栏内点击右键,出现在快捷菜单中选择“Add to Project->Existing File…”。加入当前工程目录的“\Simulation\ModelSim\”路径下的.vo文件、TestBench文件和对应当前工程所选择器件的网表文件。


比如:当前工程选择的器件是Cyclone系列,Quartus安装目录在“C:\altera”路径下。因此需要在“C:\altera\quartus50\eda\sim_lib”路径下找到“cyclone_atom.v”的网表文件导入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目录下找到对应有“_atom”后缀的.v文件。当然整个大前提是ModelSim SE版本已经加入了Alterta的仿真库,不过ModelSim-Altera版本就不会存在这样的问题。


  


5) 在出现的Project标签栏的快捷菜单中选择“Add to Project->Simulation Configuration”,会出现如上图所示的名为“Simulation1”的仿真配置。右键点击选择“Properties”,弹出的“Simulation Properties”对话框中有几个标签栏。


在“Design”标签栏内需要选择仿真的文件,也就是TestBench文件。
 
在“SDF”标签栏内需要选择包含延迟信息的文件,即Quartus下生成的.sdo文件。这里建议将.sdo文件与ModelSim的工程文件(.mpf文件)放在同一个目录下,不然ModelSim会报类似无法读取.sdo文件的错误。当加入.sdo文件时,需要在如下图所示的“Apply to Region”的编辑框内填写延迟信息文件作用的区域。


举个例子来说明:



  1. TestBench文件中定义了测试文件的Module名称为ConvEncdTestBnch。
  2. TestBench文件中调用待测顶层文件的实例名为top_encode_1。(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);这是TestBench文件中调用顶层的语句)
  3. 所以在作用区域内需要填写“/ConvEncdTestBnch/top_encode_1”。

 
6) 右键点击名为“Simulation1”的仿真配置,快捷菜单中选择“Execute”命令,执行仿真。
7) 指定延时文件sdo 路径时,特别注意“域”的指定,否则用户会在timing 仿真中报load error “can’t find instance file”. 指定的域可以从sim标签页查看sim 的top 层,或要仿真的对象。另外,时序仿真时,一定要记住要把顶层top.v 用 top.vo 替换。同时要确保预编译的库中每个库的名字必需遵循altera的要求,比如:cylcone 的device 库必需命名为cycclone, maxii 的device命名为maxii, flex10Ke 和acex1K 都命名为flex10Ke,详细查看文档附件。Simulation.pdf
8) 提供一个testbench 的模板。
 


利用ModelSim SE6.0C实现功能仿真
功能仿真流程比较简单,一般不会出现什么问题,这里不再多述。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条