行业资讯

modelsimModelsim的自动化使用 一 脚本的基本使用

2016-02-23 6:11:37 行业资讯 浏览:31次


今天pink来给大家分享一些关于modelsimModelsim的自动化使用 一 脚本的基本使用方面的知识吧,希望大家会喜欢哦

1、通过vivado联合Modelsim调试,自动生成脚本,通过学习人家写好的脚本,来学习如何自动化使用Modelsim。毕竟,每一次游晌都在那几个按钮上点来点去,实在是太恶心人了,我觉得,没有人喜欢这样重复做实验,因此,写了这篇blog。本文,最后会给一个简单的Modelsim通用型工具脚本。如果对笔者的实验过程,不感兴趣,可以直接跳到最后,简单肆老看看,直接拿来用即可。

2、住里面主要说明两种文件:

3、这个脚本,调用了位于D:\modelsim\win64的vism.exe文件,让modelsim执行了tb_test_compile.do脚本,并将日志信息,输出到了compile.log文件中

4、编译的过程是:

5、前面三条语句是新建一个库,并设置库的位置,如下图

6、vmap是把系统的work库文件映射到新建的work库中

7、vlog添加并编译HDL文件

8、在编译成功之后,就使用simulate.bat去仿真目标模块

9、和刚才编译时,一样,只是调用vsim.exe去执行相应的脚本

10、vsim命令的编译选项:

执行完下面的指令之后

两个set无关紧要,也就关一关警告。

之后,就执行tb_test_wave.do脚本

这个脚本的内容很简单

说白了就是添加了所有的信号线,放到了右边的框里(这个时候,已经仿真完了),完事之后,执行:

查看波形,查看结构,查看信号线,同时设置了一下神雹锋具体时间。

通过上面的论述,其实只需要更改Vivado生成的脚本,就可以做一个简单的通用Modelsim仿真自动化工具了

改的东西,最基本的仅仅是:

modelsim更进一步的使用,就参照下一个文档

如何用Modelsim仿真

step1:在qurtus改变编译选项:

assignments-EDAtoolsetting:选择verilog还是vhdl。

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

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

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

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

Step:仿真。。。

利用ModelSimSE6.0C实现时序仿真!!!

1)打开一个工程文件。

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

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

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

如果选中“Generatenetlistforfunctionalsimulationonly”,则表示只能做功能仿真。

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

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

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

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

在“Design”标签栏内需要选择仿真的文件,也就是TestBench文件。

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

举个例子来说明:

TestBench文件中定义了测试文件的Module名称为ConvEncdTestBnch。

TestBench文件中调用待测顶层文件的实例名为top_encode_1。(top_encodetop_encode_1(clk,rst,dataIn,serialData,parData);这是TestBench文件中调用顶层的语句)

所以在作用区域内需要填写“/ConvEncdTestBnch/top_encode_1”。

6)右键点击名为“Simulation1”的仿真配置,快捷菜单中选择“Execute”命令,执行仿真。

7)指定延时文件sdo路径时,特别注意“域”的指定,否则用户会在timing仿真中报loaderror“can’tfindinstancefile”.指定的域可以从sim标签页查看sim的top层,或要仿真的对象。另外,时序仿真时,一定要记住要把顶层top.v用top.vo替换。同时要确保预编译的库中每个库的名字必需遵循altera的要求,比如:cylcone的device库必需命名为cycclone,maxii的device命名为maxii,flex10Ke和acex1K都命名为flex10Ke,详细查看文档附件。Simulation.pdf

8)提供一个testbench的模板。

利用ModelSimSE6.0C实现功能仿真

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

quartusii和modelsim有什么区别?

一、性质不同:

quartusii:

quartusii是综合性PLD/FPGA开发软件。

modelsim:

modelsim是HDL语言仿真软件。

二、特点不同:

1、quartusii:

支持包括原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬卖核件配置的完整PLD设计流程。

2、modelsim:

提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿橡配芦真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。

扩展资料

MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

ModelSim有几种不同的版本:SE、PE、LE和OEM,其中SE是梁带最高级的版本,而集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。

参考资料来源:百度百科-modelsim

参考资料来源:百度百科-QuartusII

modelsim仿真软件?什么意思?这软件是制作什么功能?

modelsim是进行电路仿真的,要知道电路由各种器件组合在PCB板上而成,与软件设计不同,电路做成实物成本较高枝搏物,难猛液于修改,所以要有这样的软件,先银稿在电脑上模拟电路制作出来以后的运行功能状态(这里面有复杂的器件模型),然后看看是不是符合你的预期,如果有问题,就要调整你的电路(通常是用HDL语言),直到看上去都没什么问题,才下决心去制板,这样成功率就比较高啦(虽然绝大多数情况下,我做出来的板子还是会让我崩溃……)。

ModelSim仿真

您好,同许多其他软件一样,ModelsimSE同样需要合法的License,通常我们用Kengen产生license.dat。

1解压安装工具包开始安装,安装时选择Fullproduct安困漏装。当出现InstallHardwareSecurityKeyDriver时选择否。当出现AddModelsimToPath选择是。出现ModelsimLicenseWizard时选择Close。

2在C盘高迅根目录新汪念烂建一个文件夹flexlm,用Keygen产生一个License.dat,然后复制到该文件夹下。若License通过,但是打开ModelSim仍出错,则将系统时间调到2008年之前,重新生成License,再将时间调回来即可。

3修改系统的环境变量。右键点击桌面我的电脑图标,属性-高级-环境变量-(系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了,请用";"将其与要填的路径分开。LM_LICENSE_FILE=c:\flexlm\license.dat

4安装完毕,可以运行。

Counter源代码:

`timescale1ns/100ps

moduleCounter(

inputCLK,

inputRST_N,

output[3:0]CNT

);

reg[3:0]cnt;

assignCNT=cnt;

always@(posedgeCLK,negedgeRST_N)begin

if(!RST_N)

cnt=#54'h0;

else

cnt=#0cnt+1'b1;

end

endmodule

Counter_tb源代码:

`timescale1ns/100ps/**/

moduleCounter_tb;

wire[3:0]CNT;

regRST_N;

regCLK;

Counter

DUT(

.CNT(CNT),

.RST_N(RST_N),

.CLK(CLK));

/***********************/

initialbegin

#0CLK=1'b0;

RST_N=1'b0;

#5RST_N=1'b1;

end

//50MHz

always#10CLK=~CLK;

/**********************/

endmodule

modelsim怎么给输入信号赋值?

modelsim输入信号赋值示例:

vlibwormodelsimk//新建work库;

vmapwork//将work库映射到当前工作目录下;

vlogcounter.v//新建counter.v文件,默认编译到work库下;

vsim-Lworkwork.counter-t1ns//仿真work库中名为counter模块,最小时间单位为1ns;

addwave-r/*//将所有信号加入到波形图中旁肆去;

forcea16#aa//将a赋值为16进制的AA(10101010);

forceb164bb//将b赋值为16进制的BB(10111011);

forcen_rst1//将n_rst信号置1;

run40//运行40(ns),即40个最小单位时间;

forcen_rst0//将n_rst信号置0;

run20//运行40(ns);运物轿

forcen_rst1//将n_rst信号置1;

forcea16#55//将a赋值为16进制的蚂乎55(01010101);

forceb16#aa//将b赋值为16进制的AA(10101010);

run20//运行20ns;

扩展资料

在Modelsim中,将工作目录切换到counter.v和counter.do两个文件所在目录下,然后在命令行中输入docounter.do即可。

PS:1,如果在仿真的时候要修改.do文件,需要现在modelsim里运行quit-sim,退出仿真,然后修改.do文件,再保存;

本文到这结束,希望上面文章对大家有所帮助

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论: