当前位置:文档之家› ModelSim的前后仿真(Quartus)

ModelSim的前后仿真(Quartus)

利用Quartus5.0实现功能仿真1)打开一个工程文件。

2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。

在右边出现的设置栏中将“Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。

(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。

最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing”选项设为“On”,就可以选择最后一项。

编译的报告里也会分别列出最快和最慢的时序报告。

)3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法启动仿真。

4)新建一个波形仿真文件,文件后缀名为.vwf。

选择File菜单下的New->Other Files->VectorWaveform File。

如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。

波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。

将新建的波形仿真文件保存下来。

5)将需要仿真的信号加入波形编辑窗口。

在列表区任一位置双击或者点击右键选择“InsertNode or Bus…”,弹出的对话框点击“Node Finder”按钮。

在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。

如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。

界面中“Filter”下拉框中默认的是“Pins: all”,也就是说将要列出的信号都是IO管脚。

如果需要观察一些内部信号,可以改变下拉框的参数,比如“Registers: Pre-Synthesis”。

下图显示了仿真信号加入波形编辑窗口的情况。

对于有些总线信号可以改变其显示的进制格式,比如二进制、八进制、十进制和十六进制。

在列表中对应信号点击右键选择“Properties”,弹出的对话框中选择“Radix”下拉框实现进制的转换。

6)编辑仿真信号激励源。

在需要加入激励的信号上右键点击“Value”,子菜单下会有多种设置。

比如说时钟、固定电平、三态等等。

也可以点击在节点列表区旁边对应的图标完成激励的设置,鼠标放在图标上滞留一段时间会出现即时帮助。

有两个地方需要说明一下:○1“Value”下选择“Count V alue”,生成自加的信号激励,可以设置的选项包括自加的起始和步进长度,自加起始及终止的时间位置。

多用于设定地址或是数据信号的激励。

○2设置一些使能、读写等信号或者串行数据信号需要使用自定义的功能,可以选择对应的信号,点击“Waveform Editing Tool”图标,鼠标会变成图标显示的样子。

在需要变化的时域内拖动鼠标,即可以改变信号的高低电平。

如下图中显示的“rst”信号的设置。

7)从Tools菜单或快捷图标打开simulation tools, 在点击按钮前,注意检查两点:第一,确认simulation mode 是功能仿真(function mode),用户作function 仿真,和timing 仿真需要QuartusII 产生不同的netlist , 缺省情况下,QII产生的是timing netlist, 往往很多错误就是以为function 仿真就是在simulation tools 下选择function mode,客户必需注意要提前在“Processing”菜单下的“Generate Functional Simulation Netlist“产生好仿真网表文件。

第二,调整不同的*.vwf 文件,缺省时,所指向的激励向量文件就是顶层的,如果用户在设计中对各个底层的模块或关键模块仿真,需要注意切换向量文件。

8)所有信号激励设置完成之后,点击“Start Simulation”按钮,提示保存之后可以看到功能仿真的时序图。

9)最后,QII提供向量文件vwf 和语言vt 之间的转换。

即可以把VWF 文件转换成VT 的文件。

(verilog testbench),但这个vt 文件不能当作modelsim 的testbench 用,只能在QII 中用。

利用Quartus5.0实现时序仿真步骤与功能仿真基本一样,只要在第二步“Simulation Mode”下拉菜单选择“Timing”。

另外在开始仿真之前要完成工程的布线工作,选择“Processing”菜单下的“Start->Start Fitting”或者直接点击“Start Compilation”按钮。

因为是后仿,功能仿真中的第三步骤“Generate Functional Netlist”就不需要了。

利用ModelSim SE6.0C实现时序仿真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”的编辑框内填写延迟信息文件作用的区域。

举个例子来说明:○1TestBench文件中定义了测试文件的Module名称为ConvEncdTestBnch。

○2TestBench文件中调用待测顶层文件的实例名为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 仿真中报loaderror “can’t find instance file”. 指定的域可以从sim标签页查看sim 的top 层,或要仿真的对象。

另外,时序仿真时,一定要记住要把顶层top.v 用top.vo 替换。

同时要确保预编译的库中每个库的名字必需遵循altera的要求,比如:cylcone 的device 库必需命名为cycclone, maxii 的device命名为maxii, flex10Ke 和acex1K 都命名为flex10Ke,详细查看文档附件。

Simulation.pdf8)提供一个testbench 的模板。

功能仿真流程比较简单,一般不会出现什么问题,这里不再多述。

相关主题