modelsim仿真工具的一些使用心得
- 格式:pptx
- 大小:383.74 KB
- 文档页数:14
ModelSim使用的一点心得- -1、至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。
2、我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。
教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录- 编译代码- 启动仿真。
首先建立库就叫我头晕。
库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。
在我看来,教程应该这么写:<1> 建立一个目录modelsimStudy。
用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。
有clk、ena、reset输入,cnt作为输出。
<2> 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。
然后add existing file,把counter.vhd加入当前工程。
<3> 编译这个文件,通过之后,work下面会出现counter这个实体。
然后选中它,右键,simulate(左键双击也可)。
<4> ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的objects 和wave窗口就行了。
旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。
wave窗口刚打开时是空的,需要在objects窗口的add -> wave -> signals in region。
这时,wave上就有clk\ ena \ reset等信号了。
<5> 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。
modelsim调试技巧ModelSim是一款流行的电子设计自动化(EDA)工具,广泛应用于集成电路、通信系统和消费电子产品的仿真和调试。
本文将介绍ModelSim的一些调试技巧,帮助您更高效地进行仿真和调试。
一、设置仿真环境1. 启动ModelSim,创建一个新的工程或打开已有的工程。
2. 配置仿真参数,如仿真时钟频率、时序约束等。
3. 编写测试向量或测试脚本,用于验证设计的正确性。
二、常用调试技巧1. 实时监测:在仿真过程中,可以使用实时监测功能来观察仿真波形,以便快速发现设计中的问题。
可以使用“实时监测”工具栏中的相关按钮或命令。
2. 断点设置:在需要调试的代码行设置断点,以便在运行到该行时暂停仿真,从而方便查看该行执行前后的变量值和状态。
可以使用“断点”工具栏中的相关按钮或命令来设置断点。
3. 变量观察:在仿真过程中,可以使用“变量观察”功能来观察设计中的变量值。
可以在仿真波形窗口中双击需要观察的变量,将其添加到“变量观察”列表中。
4. 波形分析:ModelSim提供了强大的波形分析功能,可以帮助您分析仿真波形的异常情况,如信号过冲、下冲等。
可以使用“波形分析”工具栏中的相关按钮或命令来进行波形分析。
5. 脚本调试:如果您的测试脚本中有错误,可以使用ModelSim 的脚本调试功能来逐行执行脚本,并查看每行执行前后的变量值和状态,以便找到错误位置。
可以使用“脚本调试”工具栏中的相关按钮或命令来进行脚本调试。
三、高级调试技巧1. 仿真结果分析:通过分析仿真结果,可以发现设计中的潜在问题。
可以使用ModelSim提供的各种分析工具和报告功能,如时序分析、功耗分析等,来帮助您更好地理解仿真结果。
2. 多平台仿真:ModelSim支持与Xilinx、Intel等厂商的多种硬件平台进行联合仿真,以便更好地验证设计的兼容性和可靠性。
通过多平台仿真,您可以更快地发现设计中的潜在问题。
3. 自动测试生成:ModelSim提供了自动测试生成功能,可以根据设计的结构和行为自动生成测试向量或测试脚本。
【博友原创】modelsim三种仿真实验结果对比既然决定认认真真搞FPGA,学好modelsim,那么就一路坚持下去!首先,继续摸熟modelsim仿真。
今天摸清了用Modelsim做功能仿真,综合后仿真,时序仿真。
纪录下过程和对比下结果。
首先在前面的博客中,各种环境已经在前面搭建完毕,包括编译仿真库等,一会会有一个简单的各个仿真比较例子。
FPGA各种仿真概念(摘自CB书中)1.功能仿真(前仿真),验证逻辑功能,不用全编译,即ctrl+k 就可以了。
验证电路功能是否符合设计要求。
这个仿真一般是必须做的。
2.综合后的仿真,这个是FPGA综合产生的网表(会有门延时),一般是不用做的,这里要对比几个仿真结果的不同,也做一遍。
3.时序仿真,布局布线后的仿真,这个时候就包括了布线的延时,一般这个也需要做的。
偶然找到一张笔试卷子的题目的module,就以他为例来做了:首先写好v文件:如下:写好testbench文件:那么开始了一:功能仿真1.quartus建立工程后,编写v文件,ctrl+k,无错误(当然注意风格)2.编写testbench文件3.建立sim1仿真工程,在sim有单独的sim1的文件目录,将v和testbench拷贝到sim1这里我们没有用到altera的IP核,所以在library那里可以不用设置路径,如果有用到的话,就要指定路径了。
1.仿真,这个前面没什么区别,注意去掉 Enable optimization1.添加信号,run 500ns可以看到,在wr_en拉高的时候,cnt立马就有输出,这是没有任何延时的,是纯粹的功能仿真。
功能仿真需要文件:v源文件+testbench+指定仿真模型(altera仿真库等,等下就有用到)二:综合后的仿真1.关闭modelsim的sim1工程了,建立sim2文件目录,回到quartus2.然后,点击编译,会在dev目录下产生一个simulation文件夹,找到vo文件3.建立sim2的modelsim的工程,和上面的类似,但是注意:将vo文件和testbench文件拷贝到sim2文件夹,这一点和上面不同哦。
Modelsim 仿真软件的学习及理解一软件简介Modelsim仿真工具支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化,具备强大的模拟仿真功能,在设计、编译、仿真、测试、调试开发过程中,有一整套工具供你使用,而且操作起来极其灵活,可以通过菜单、快捷键和命令行的方式进行工作。
ModelSim的窗口管理界面让用户使用起来很方面,它能很好的与操作系统环境协调工作。
ModelSim 的一个很显著的特点就是它具备命令行的操作方式。
二功能介绍Modelsim的主要功能包括:对设计文件的设计、编译和仿真。
设计文件的设计:在Modelsim软件打开之后,在把库和工程建立好的前提下,编译设计文件,编译设计文件时遵循verilog的编程规则,语法方面注意关键字的用法,编译设计文件包括两个部分:设计文件源代码的编译和测试代码的编译,测试代码编写时注意函数的调用,尤其是端口的对应,包括名称对应和位置对应,同时还应该注意激励信号的设定,此时应该注意时钟的延时是否是惯性延时。
文件的编译:文件的编译的主要目的是:检查程序语言的语法错误,在编译过程中可以通过两种方法实现:工具按钮的编译法和指令输入的编译法,工具按钮编译法适合于初学者,而指令输入法适合于编程经验较足的编程人员。
编译的过程也就是第一轮检查程序代码的过程,通过编译,软件会以指令的形式在输出脚本框中显示出来,通过显示的错误信息,编程人员会再较短的时间内找处错误代码,及时修改,提高了编程的效率和准确性。
文件的仿真:文件的仿真即就是在写好的源代码和测试代码的基础上,给程序一定的激励信号,在激励信号的基础上观察源代码波形图的变化,是否符合设计初衷,是否满足设计的时序逻辑和组合逻辑的要求。
modelsim后仿真想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是vf1983cs@。
有空大家多交流。
一、为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver d:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
使用Modelsim仿真Altera FPGA工程(包括IP核)步骤以及问题汇总前提:计算机上已经安装QuartusII和Modelsim通用版,并且均已破解。
环境说明:所用的软件版本,QuartusII为9.0,Modelsim为6.5c。
本测试仅在WIN XP SP3上测试,对于VISTA/WIN7/LIN或者其他平台没做过测试。
但其他平台或者其他版本的过程应该都差不多。
其他:感谢teamo版主的破解和编译教程,以及后期对我的热心指导。
如果各位对整个步骤还有什么问题的华可以直接和我联系,我的论坛ID是lanphon,邮箱是lanphon@。
一、Altera库的编译(本部分基本上全部抄袭teamo版主的教程,懒得写了)1) 先到C:\modeltech_6.5目录下找到文件"modelsim.ini",将其属性改为可写(右键‐>属性)。
2) 启动modelsim se,选择【file】‐>【new】‐>【library】命令,在弹出的【create a newlibrary】窗口中将选项【create】设置为【a new library and a logical mapping to it】,在【libryr name】和【library library】窗口中将选项【create】设置为【a new library and a logical mapping to it】,在【libryr name】和【library physical name】中键入所要创建库名字,如Altera ,此时在主窗口中已多了一个Altera 项。
注:这个过程实质上想当于在modelsim 主窗口中的脚本区域中输入了vlib和vmap命令。
3) 在workspace中的library中选中你健入的库名Altera,在主菜单中选【compile】→【compile…】命令。
ModelSim使用的一点心得- -1、至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。
2、我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。
教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录- 编译代码- 启动仿真。
首先建立库就叫我头晕。
库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。
在我看来,教程应该这么写:<1> 建立一个目录modelsimStudy。
用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。
有clk、ena、reset输入,cnt作为输出。
<2> 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。
然后add existing file,把counter.vhd加入当前工程。
<3> 编译这个文件,通过之后,work下面会出现counter这个实体。
然后选中它,右键,simulate(左键双击也可)。
<4> ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的objects 和wave窗口就行了。
旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。
wave窗口刚打开时是空的,需要在objects窗口的add -> wave -> signals in region。
这时,wave上就有clk\ ena \ reset等信号了。
<5> 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。
软件环境说明:quartusII 7.2 sp3+altera_modelsim6.1g(作者:刘国华)1,软件的安装详细请看《如何破解ModelSim-Altera 6.1g.pdf》。
(一个注意的地方就是环境变量设置完后一定要重新启动)2,软件的设置《如何解決在Quartus II无法使用ModelSim-Altera模拟的問題.pdf》。
3,用altera_modelsim6.1g做功能仿真,设置地方有3处如下:接着就是运行仿真软件,进行仿真:方法有两种:①编译完后,通过自动运行②编译完后,手动运行,一般运行Gate Level Simulation仿真图如下,由于是功能仿真,所以没有延时信息出现:4,关于do文件的使用技巧问题:执行的默认脚本在:工程所在目录\simulation\modelsim下,例如我的工程:该do文件的内容为:transcript onif {[file exists gate_work]} { #判断库是否存在,存在的话就先删除vdel -lib gate_work -all}vlib gate_work #建立一个库vmap work gate_work #映射库vlog -vlog01compat -work work +incdir+. {counter.vo} #编译文件vlog -vlog01compat -work work +incdir+E:/pratice/verilog/my_counter {E:/pratice/verilog/my_counter/testbench.v} #编译文件vsim -t 1ps -L cyclone_ver -L gate_work -L work top_tb #启动仿真add wave * #把testbench.v的顶层信号加入到波形窗口中view structureview signals #打开信号窗口run –all #执行仿真、modelsim窗口指示的就是这个脚本:如把以下的选项勾起,并指定一个do文件:这个时候上面那个counter_run_msim_gate_verilog.do文件的脚本就会发生以下变化:transcript onif {[file exists gate_work]} {vdel -lib gate_work -all}vlib gate_workvmap work gate_workvlog -vlog01compat -work work +incdir+. {counter.vo}vlog -vlog01compat -work work +incdir+E:/pratice/verilog/my_counter {E:/pratice/verilog/my_counter/testbench.v}vsim -t 1ps -L cyclone_ver -L gate_work -L work top_tb#执行自己写的do文件,这样的话,就可以很好的控制自己想看的信号do E:/pratice/verilog/my_counter/simulation/modelsim/my.domy.do文件如下:view signalview waveadd wave *#将设计文件的内部信号cnt以无符号十进制的形式加入到波形图add wave -radix unsigned /top_tb/tb_counter/cntrun –all5,用altera_modelsim6.1g做布局布线后的仿真(后仿真),设置地方有2处如下:仿真图如下,可以看到下图明显存在延时信息:。
想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是****************。
有空大家多交流。
一、为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver d:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。