今天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更进一步的使用,就参照下一个文档
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:
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是进行电路仿真的,要知道电路由各种器件组合在PCB板上而成,与软件设计不同,电路做成实物成本较高枝搏物,难猛液于修改,所以要有这样的软件,先银稿在电脑上模拟电路制作出来以后的运行功能状态(这里面有复杂的器件模型),然后看看是不是符合你的预期,如果有问题,就要调整你的电路(通常是用HDL语言),直到看上去都没什么问题,才下决心去制板,这样成功率就比较高啦(虽然绝大多数情况下,我做出来的板子还是会让我崩溃……)。
您好,同许多其他软件一样,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输入信号赋值示例:
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文件,再保存;
本文到这结束,希望上面文章对大家有所帮助
本文暂时没有评论,来添加一个吧(●'◡'●)