欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > modelsim仿真心得体会

modelsim仿真心得体会

时间:2016-04-21 18:06

如何用Modelsim进行后仿真

step1:在qurtus改变编译选项:assignments->EDA tool setting:选择verilog还是vhdl。

step2:编译。

你会在你的工程所在目录 看到一个simulation的目录,这里面有你生成的网表文件和标准延时文件。

step3:在目录:\\\\quartus\\\\eda\\\\sim_lib找到你选用器件对应的库文件,将库文件和网表文件以及延时文件和testbench文件放在同一目录,在modelsim里进行编译库文件、网表文件以及bench文件。

step4:编译成功后,然后进行load,在load design的时候,需要制定延时文件的路径,以及延时文件作用的区域,延时文件的左右区域就是testbench里面调用顶层文件取的名字。

step5:打开signal窗口(view->signal)和wave窗口(view->signal),将你希望仿真的信号添加进去。

Step:仿真。

利用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)”)。

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

如果选中“Maintain hierarchy”,则表示在做时序仿真时就能看到像在功能仿真的工程文件层次结构,可以找到定义的内部信号。

因为在做后仿时,源文件中的信号名称已经没有了,被映射为软件综合后自己生成的信号名,观察起来很不方便。

这个设置与ISE里综合右键属性的Keep Hierarchy选择YES的功能是一样的。

如果选中“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”的编辑框内填写延迟信息文件作用的区域。

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

TestBench文件中调用待测顶层文件的实例名为top_encode_1。

(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);这是TestBench文件中调用顶层的语句)所以在作用区域内需要填写“\\\/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.pdf8) 提供一个testbench 的模板。

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

modelsim有什么优点

为什么要用它仿真

设置断点或者程序中有结束条件。

modelsim的run -all命令会一直进行仿真 检查transcript窗口的信息可以知道仿真是结束于哪一行代码($finish或$stop)

modelsim 仿真问题

module clk(clk,sclk);input clk;output sclk;reg sclk;initial begin sclk = 1‘b0;end always @(posedge clk)begin sclk<=~sclk;endendmodule这样添加就可以了

modelsim仿真的问题

第一个warning出现是因为你在testbench里头没有指明timescale,也就是说你的#50是表示50ns,还是50ps,或者是50us

修改方法:在testbench里第一行,modlue testbenchcounter之前,加上一行`timescale 1ns\\\/1ns,前一个表示你在tb里头写的数字的单位,后一个表示仿真时候的精度。

第二个error是因为q对于counter来说是output,所以在testbench里头应该声明为wire型变量,并且不需要在initial里头对它进行赋初始值。

初始值的赋予应该在设计模块中引入reset信号,如下面的程序:module counter10(clk,rst,q); input clk; input rst; output reg [3:0] q; always @(posedge clk or posedge rst) begin if(rst) q <= 4'b0; else if(q==4'b1) q <= 4'b0; else q <= q+1; endendmodule个人觉得如果只是0,1计数的话,q有1位就可以了,在clk上升沿来的时候,q <= ~q就行了。

module testbenchCounter; reg clk,rst; wire [3:0] q;counter10 U1 (clk,rst,q);initial begin clk=1'b0; rst=1'b0; #1000 rst=1'b1; #1000 rst=1'b0;end always begin #50 clk=~clk; end

modelsim的仿真问题,请赐教

说句实话,engineering没人care显示好不好看。

仿真的目的是verify functionality, 现实工作中需要考虑最悲观情况或者各种平行情况。

所以我的建议是,尽量体现自己仿真上考虑问题的严谨和完全,不能以显示看着不舒服为原因就要改test_bench. 如果真的想改显示,那就在波形那个窗口改下radix吧。

怎样用modelsim做后仿真

程 file -> new -> project... 此时会弹出一个Creat Project对话框,输入一个工程名,选择保存路径 (不含中文),其他默认就行了;2.点OK弹出一个Add items to the Project,里面有几个可选项,应该很容易明白;3.添加好文件后,点close把Add items to the Project对话框关闭,这时在左侧的workspace的project窗口里可以看到刚才添加的文件,双击可以打开这些文件进行编辑,编辑好后保存;4.右击刚才编辑好的文件compile -> compile select(或根据自己需要选其他项),如果没有错误,则在底部的命令窗口可以看到编译成功的消息(呈绿色),否则会出现出错的消息(呈红色),双击它会弹出一个更具体的窗口提示你出错的地方.5.修改所有错误直到编译成功.这时可以在菜单栏选择Simulation -> Start simulatio... 这时会弹出一个Start simulatio的对话框,在Design的标签下你会看到有很多库,展开work库会看到刚才编译成功的文件(如果有多个文件的话选择一个你想仿真的,比如测试程序,这时底部的OK会由刚才的不可用变成可用的),然后把Opitimization选项下的Enable opitimization前复选取消(这样可以保证过会儿所有的输入输出都可以看到,你可以试试不取消这项有何区别),然后点OK就行了.6.选择view -> Objects就可以看到你想仿真的各个量,选中它们并右击Add to wave -> Selected signals,这时就会弹出一个波形仿真窗口.如果你的测试文件写得没问题的话就可以看到仿真波形,你也可以观察底部的命令窗口察看相关信息.7.如果没写测试文件的话,在波形仿真窗口右击相关信号,选择force...设置想仿真的值或clock...把该量设置为时钟,然后点工具栏上的Run或Simulation菜单下的Run.

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片