modelsim建库流程_vip
Modelsim简单教程.

Modelsim入门技术文档单位:深圳大学EDA中心实验室指导老师:徐渊作者:陈战夫rshamozhihu@时间:2010-1-7说明:本文档作为EDA中心研究生modelsim入门用。
分三个章节阐述。
1.modelsim中库的编译1.自己新建一个文件夹,如D:\modelsimpro\counter,将counter.v与counter_tb.v文件拷贝到该文件夹下。
2.点击modelsim的图标,打开modelsim的界面窗口。
3.选择File > Change Directory,选择步骤1中的目录,点击OK。
4.选择File > New > Library。
5.在library name与library physical name两栏中均填work.点击OK。
(在transcript窗口中可看到vlib workvmap work work)。
6.选择Compile > Compile,出现如下窗口。
同时选中counter.v与counter_tb.v两个文件。
7.点击compile.再点击done.8.在library标签点击work库前面的“+”号,可看到counter.v与counter_tb.v均在其目录下。
9.双击counter_tb.v可将该设计装载到本次工程库中。
10.选择View > Debug Windows >wave.将弹出波形窗口。
11.在workspace窗口下点击sim标签。
12.右击counter_tb.v,在出现的菜单中选择Add > Add to Wave。
13.在transcript窗口中VSIM>后敲入run 1000.则系统将仿真1000ns.我们可根据波形查看仿真结果。
14.在workspace窗口中点击files标签,鼠标左键双击counter.v,打开counter.v文件。
15.在第10行数字10旁鼠标左键点击一下,可出现一小红点,即断点。
Modelsim 自动化仿真平台搭建

Modelsim do文件的自动化仿真 创建虚拟信号
虚拟信号可以把实际信号转化为更人性化的信号,比如将信号的数值转化为字符显示,例如状 态机的跳转可以用虚拟信号标注这样更清晰。
virtual type { {1 IDLE} {2 READ} {4 WRITE} {8 STOP} } state_struc 以上简历一个虚拟的结构体,结构体的名字叫state_struc
Modelsim do文件的自动化仿真 Tcl语言的语法
vlib:创建库。格式vlib <library name>,默认库的名字为work 示例: vlib work vmap:映射逻辑库名,将逻辑库名映射库路径。语法格式vmap work <library name> 示例:vlib work work vdir:显示指定库的内容 。语法格式vdir –lib <library name> 示例:vdir –lib work vlog:编译Verilog 源代码,库名缺省编译到work本地库,文件按顺序编译。语法格式 vlog
modelsim将加载两次,这种结果不是我们想要的。 .SDO文件并不是标准的延时文件,如果想转到标准的延迟文件可以用以下命令,sdf文件比
sdo文件小加载速度快。sdf文件采用了gzip压缩。 sdfcom netlist/my_design.sdo netlist/my_design.sdf
Modelsim 自动化仿真平台源自Modelsim GUI仿真流程
1. 打开Modelsim 软件,建一个工程文件夹,简历Modelsim 仿真工程。 2. 在用户窗口界面加入需要仿真的所有代码和库文件。 3. 编译有文件 4. 选择testbench顶层文件启动仿真。 5. 选择所要观察的目标信号,并将其加入到波形观察窗口,如需更改bus显示
ModelSimSE中建立Xilinx仿真库

ModelSim SE中建立Xilinx仿真库版本说明:ModelSim SE 6.5,Xilinx 10.1(Xilinx 10.1要安装ModelSim SE 6.3c以上的版本)目录1 ModelSim不同的版本比较 (1)2 ModelSim SE中Xilinx仿真库的建立步骤: (2)2.1 为modelsim生成3个库 (2)2.2 DOS下输入命令法 (6)3 关联Xilinx和ModelSim (6)1 ModelSim不同的版本比较ModelSim分几种不同的版本:SE、PE、LE和OEM,其中SE是最高级的版本而集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。
SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE 比ModelSim XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。
以下列表介绍了OEM版本(以Xilinx公司提供的ModelSim XE版本为例)与ModelSim SE版本之间的差异。
ModelSim SE支持PC、UNIX和LINUX混合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标准;Mentor Graphics公司提供业界最好的技术支持与服务。
ModelSim版本功能与性能差异技术差异 ModelSim SE ModelSim XE II单一语言支持 支持 支持im_ver,Unisim_ver,Xilinxcorelib_ver这三个库的,可以采用2.1的方法。
2.2介绍了一种更加简单的方法。
提醒:无论是安装文件的路径还是库的保存路径,都不能含有空格,如不能安装在“p p”的路径下。
Modelsim中建立库文件

在modelsim中建立库的方法步骤如下:
1,打开modelsim,选择FileChange Directory,将当前的地址切换到想要建立库文件的地址,如下图所示:
2,选择FileNewLibrary,如下图所示:
3,在弹出的对话框中填入想命名的库文件名称,选择Ok。如下图所示:
4,选择CompileCompile…,如下图所示:
5,在弹出的对话框中,选中新建的库文件的名称,在“查找范围”对话框中,选择自己需要编译的库文件,然后点击“Compile”,如下图所示:
6,Байду номын сангаас编译结束后,选择“Done”。
7,在modelsim相应的安装目录下,选择modelsim.ini文件,用UE打开,将
lattice_ecp_work =
C:\ispTOOLS8_1\cae_library\simulation\verilog\modelsim_lib\lattice_ecp_work写入该文件中,保存,关系Modelsim,然后重新打开modelsim,即可发现新建库已经在modelsim的Library中。如下图所示:
Modelsim 中建立仿真库的简单方法(我一直用方法3)

方法一(参照方法二,设置真的很复杂....):奶奶的,搞了一晚上的modelsim仿真库,找了很多方法,找到一种一劳永逸的,介绍如下:看下图,我新建一个工程时,注意到最下面的Copy Setting From,里面的内容是D:/Program Files/modeltech_6.5b/examples/modelsim.ini,我发现这个是modelsim系统的一个默认配置,所以一劳永逸的方法就是更改这个文件:modelsim.ini。
1.参照我的上述路径取消Modelsim.ini配置文件的只读属性。
2.找一个永久保存的路径,比如我的是在在D:\2_Project\FPGA\sim_lib。
打开modelsim,然后file->change Direcory,指向D:\2_Project\FPGA\sim_lib。
3.执行File->New->Library,在弹出的对话框中,Create项选择"a new library and a logical mapping to it";Library Name项填写新建库的名称,我的是altera_mf_sim;Library Physical Name中也自动修改为altera_mf_sim。
点击OK后,在D:\2_Project\FPGA\sim_lib下将会看到新建的altera_mf_sim文件夹。
4.执行Compile->Compile,弹出如下对话框。
在Library下拉列表中选择库,表示编译工作是对该库进行的,我选择新建的altera_mf_sim库;然后在下面窗口中选择仿真模型文件,这里以altera_mf.v为例,它是quartus自带的仿真模型文件,在quartus安装路径\eda\sim_lib 文件夹中可以找到。
选择库和文件后(可以是多个文件),点击"Compile"按钮,等待编译完成,然后点击"Done"按钮退出。
modelsim使用教程

modelsim使用教程ModelSim是一款常用的硬件描述语言(HDL)仿真工具,本教程将向您介绍如何使用ModelSim进行仿真。
步骤1:安装ModelSim首先,您需要下载和安装ModelSim软件。
在您的电脑上找到安装程序并按照提示进行安装。
步骤2:创建工程打开ModelSim软件,点击"File"菜单中的"New",然后选择"Project"。
在弹出的对话框中,选择工程的存储位置,并为工程命名。
点击"OK"完成工程创建。
步骤3:添加设计文件在ModelSim的工程窗口中,右键点击"Design"文件夹,选择"Add Existing File"。
然后选择包含您的设计文件的目录,并将其添加到工程中。
步骤4:配置仿真设置在工程窗口中,右键点击"Design"文件夹,选择"Properties"。
在弹出的对话框中,选择"Simulation"选项卡。
在"Top level entity"字段中,选择您的设计的顶层模块。
点击"Apply"和"OK"保存设置。
步骤5:运行仿真在ModelSim的工具栏中,找到"Simulate"按钮,点击并选择"Start Simulation"。
这将打开仿真窗口。
在仿真窗口中,您可以使用不同的命令来控制和观察设计的行为。
步骤6:查看仿真结果您可以在仿真窗口中查看信号波形、调试设计并分析仿真结果。
在仿真窗口的菜单栏中,您可以找到一些常用的查看和分析工具,如波形浏览器、信号分析器等。
步骤7:结束仿真当您完成仿真时,可以选择在仿真窗口的菜单栏中找到"Simulate"按钮,并选择"End Simulation"以结束仿真。
modelsim的详细使用方法

一、简介ModelSim是一款由美国Mentor Graphics公司推出的集成电路仿真软件,广泛应用于数字电路和系统设计领域。
它提供了强大的仿真和验证功能,能够帮助工程师快速高效地进行电路设计与验证工作。
本文将详细介绍ModelSim的使用方法,以帮助读者更好地掌握这一工具的操作技巧。
二、安装与配置1. 下载ModelSim安装包,并解压到指定目录2. 打开终端,进入ModelSim安装目录,执行安装命令3. 安装完成后,配置环境变量,以便在任何目录下都能够调用ModelSim程序4. 打开ModelSim,进行软件注册和授权,确保软件可以正常运行三、工程创建与管理1. 新建工程:在ModelSim主界面点击“File” -> “New” -> “Project”,输入工程名称和存储路径,选择工程类型和目标设备,点击“OK”完成工程创建2. 添加文件:在工程目录下右键点击“Add Existing”,选择要添加的源文件,点击“OK”完成文件添加3. 管理工程:在ModelSim中可以方便地对工程进行管理,包括文件的增删改查以及工程参数的设置等四、代码编写与编辑1. 在ModelSim中支持Verilog、VHDL等多种硬件描述语言的编写和编辑2. 在ModelSim主界面点击“File” -> “New” -> “File”,选择要新建的文件类型和存储位置,输入文件名称,点击“OK”完成文件创建3. 在编辑器中进行代码编写,支持代码高亮、自动缩进、语法检查等功能4. 保存代码并进行语法检查,确保代码符合规范,没有错误五、仿真与调试1. 编译工程:在ModelSim中进行代码编译,生成仿真所需的可执行文件2. 设置仿真参数:在“Simulation”菜单下选择“S tart Simulation”,设置仿真时钟周期、输入信号等参数3. 运行仿真:点击“Run”按钮,ModelSim将开始对设计进行仿真,同时显示波形图和仿真结果4. 调试设计:在仿真过程中,可以通过波形图和仿真控制面板对设计进行调试,查找并解决可能存在的逻辑错误六、波形查看与分析1. 查看波形:在仿真过程中,ModelSim会生成相应的波形文件,用户可以通过“Wave”菜单查看波形并进行波形分析2. 波形操作:支持波形的放大、缩小、平移、选中等操作,方便用户对波形进行分析和观察3. 波形保存:用户可以将波形结果保存为图片或文本文件,以便日后查阅和分析七、性能优化与验证1. 时序优化:在设计仿真过程中,可以通过观察波形和性能分析结果,对设计进行优化,提高设计的时序性能2. 逻辑验证:通过对仿真的结果进行逻辑验证,确保设计符合预期的逻辑功能3. 时序验证:对设计的时序性能进行验证,确保信号传输和时钟同步的正确性八、项目输出与文档整理1. 输出结果:在仿真和验证完成后,可以将仿真结果、波形图和性能分析结果输出为文本文件或图片,方便后续的文档整理和报告撰写2. 结果分析:对仿真结果和验证结果进行详细的分析,确定设计的性能和功能是否符合设计要求3. 文档整理:根据仿真和验证结果,进行文档整理和报告撰写,为后续的设计和优化工作提供参考九、总结与展望ModelSim作为一款专业的集成电路仿真软件,具有着强大的功能和丰富的特性,可以帮助工程师进行电路设计与验证工作。
Modelsim的基本使用流程(没法再省的步骤)

Modelsim的基本使用流程—————By Metcalf 一、预备准备一个源文件和一个相应的测试文件,并在QuartusII或ISE环境下编译成功。
没有的自行百度搜。
二、整体流程工程的建立、编译文件和仿真。
三、具体流程1.工程的建立1)File→New→New Project…2)在D盘新建文件夹,命名为Metcalf(笔者暂时的英文名),将工程命名为Counter_Design,默认库名work,其他选项不需要改动,如图1所示,再点击“OK”。
图1 建立工程3)在弹出的对话框选择“Add Existing File”,又弹出一个对话框,在该对话框点击“Browse..”,添加准备好的两个文件,如图2所示,点击“打开”,选中“Copy to project directory”,如图3所示,点击“OK”,得到的效果如图4所示。
图2 选取文件图3 添加文件到工程里图4 添加文件后的效果2.编译文件Compile→Compile All,产生的效果如图5,注意红色方框内的前后变化。
Library库里work的变化如图6所示。
文件夹的变化如图7。
图5 编译后的效果图6 work的变化图7 文件夹里的变化3.仿真1)Simulate→Start Simulation,弹出图8,选中work里的Counter_Design_TB,去掉Enable optimization的选项,点击“OK”。
图8 选择并设置测试文件2)选中图9中红色方框里的内容,鼠标右击,Add→To Wave→All items in region,出现图10。
图9图103)Simulate→Run→Run-All,额,怎么没有波形,别急,左手按住Ctrl,右手滚动鼠标滑轮,波形图出现了!如图11所示。
图11。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Modelsim建库流程——在已有的IEEE库中加入新的库文件1.将所需要的库对应的vhd文件拷贝至C:\Actel\Libero_v9.0\Model\vhdl_src\ieee文件夹下;2.确保modelsim不是处于仿真状态下:3.编译库中的文件,首先需要选中库,确认如下4.可以在vhdl模块中调用ieee.math_utility_pkg文件了。
采用上述方法,可以加入math_utility_pkg和fixed_pkg等vhdl-93中没有包括的库文件,增加vhdl语言支持的综合功能。
5.点击modelsim项目文件中的presynth.mpf文件,可以打开这个modelsim项目,然后可以对所有文件进行编译、仿真等操作。
6.对于定点数运算,需要以下两个库:math_utility_pkg.vhdl - Types used in the fixed point packagefixed_pkg_c.vhdl - Fixed-point package (VHDL-93 compatibility version)而这两个库中又会调用floatfixlib库:这个库包含Actel/Libero_v9.1/Model/vhdl_src/floatfixlib 目录下的三个文件:fixed_pkg_c.vhd, float_pkg_c.vhd, math_utility_pkg.vhd,也就是说,要用这三个文件生成floatfixlib库。
----------------------------------------------------------------------Modelsim仿真流程-经验总结7.Modelsim简介略。
2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。
其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。
基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。
8.建立库并映射在modelsim中,任何使用VHDL、Verilog HDL、SystemC等语言实现的设计,都被编译到一个库中。
♥方法一:File>New>Library选择新建并映射到该库;♥方法二:在modelsim>提示符下运行命令vlib work2-建立库,vmap work work2-建立映射库;9.建立工程Modelsim仿真需要建立自己的工程,同时modelsim还提供了文件夹管理工程的功能。
♥step1:File>New>project,并指定库文件名;♥step2:新建文件或导入文件;10.编译文件建立好工程后,使用compile功能对源文件进行编译。
Libero环境启动modelsim 时,系统执行run.do脚本文件自动编译源文件。
♥鼠标右击文件,选择compile All对所有的工程文件执行编译操作;♥启动仿真,使用simulation>start simulation>选择design选项卡功能使modelsim进入仿真状态,之后可以运行仿真。
在libero环境下,运行modelsim 直接从运行仿真这一步骤开始。
♥运行仿真可以设置仿真时间或选择仿真全部♥tcl命令: do run.do –当设计修改后,使用此命令重新导入设计;Do wave.do-打开波形列表文件,或者向当前波形添加列表;Restart-复位当前仿真,从0时刻重新仿真;Run 1ms-运行仿真1ms时间;Run all-运行全部的仿真;在libero环境下,可以自己编写脚本文件代替run.do文件,在项目比较大的情况下可以大大简化仿真的操作。
※do wave.do添加自己所需要的波形列表;※restart复位当前仿真到0时刻;※文件名要区别于run.do文件;※libero中设置:Project->settings->simulation导入自己编写的.do文件;2.4分析数据――wave,wave波形窗口直观方便的观察仿真结果,是最常用窗口之一。
可以使用菜单view>wave或者命令view wave打开♥添加信号:※在信号等窗口中右键使用”Add to wave”功能;※在主窗口中使用add wave命令添加信号;※在主窗口中使用do<filename>.do命令添加信号列表;※使用“拖-放”操作,直接从信号、结构等窗口向wave窗口中拖放;♥快捷操作:※波形放大缩小等操作,放大-键盘“+”,缩小-键盘“-”,全屏-键盘“F”,光标放大-键盘“C”;※区域放大,选中的区域全屏显示;※使添加光标,可以利用光标时间差计算周期等参数;※显示/隐藏信号路径,方便阅读;♥设置断点:※右击变量,选择‘Insert Breakpoint’;当选中的变量波形值发生变化时,仿真自动暂停。
♥保存/打开列表:※波形列表为.do可执行脚本文件;打开列表可以使用do<filename>.do命令执行;※waveform formats选项保存变量、显示方式及变量相对位置等属性;♥保存/打开波形:※波形文件为.wlf格式文件,使用File>datasets>saveas 来保存波形;※波形文件可用于波形对比的对象,使用File>datasets>open来打开;♥波形对比:※在AE版本中,只能实现简单的手动对比波形;※用File>datasets方式打开波形文件,向wave窗口中添加需要对比的信号;♥分析数据――list:表格化显示数据,方便通过搜索特殊值或者特定条件的数据,简化分析数据的过程。
List窗口可通过菜单View>list,或者命令view list 打开。
♥分析数据――source:source窗口具有完全的编辑能力,同时提供分析数据的一些操作。
Source窗口可通过双击workspace的总的文件或信号打开。
※查看变量值:鼠标停留在变量上面,可显示当前值;※设置断点: source源代码窗口设置条件断点;♥分析数据――Memories: memory窗口列出工程中存储单元的数据,方便调试存储器的操作。
※step1:展开调用RAM单元的模块,并展开至RAM_ROC>STATCONFIG;※step2:objects窗口选择MEM_512_9选择View Memory Contonts;♥分析数据――watch: watch窗口中可实现监测变量的变化情况,watch窗口可通过菜单view>watch,或者命令view watch打开。
Watch窗口中的对象可以以拖拉的方式从object窗口、wave窗口、source窗口中拖拉进来;♥分析数据――signals:signals窗口显示被选中进程模块的变量、变量值。
Signals窗口可通过菜单view>signals,或者命令view signals打开。
※排序:支持按字母的升序或降序排列。
※拖放操作:可以将信号拖动到wave、list、watch窗口;※过滤器:选择要察看的信号(输入、输出部信号等等)。
※对信号右键操作,可查看源代码;3、Modelsim高级功能 SE版本支持,AE版本不支持的功能。
3.1 Code Coverage Modelsim SE版可以统计代码覆盖率。
代码覆盖率是指代码的覆盖程度,是一种度量方式。
※语句覆盖(statement Coverage)※分支覆盖(Branch Coverage)※条件覆盖(Condition Coverage)※状态机覆盖(FSM Coverage)※路径覆盖(Path Coverage)Modelsim SE版本可以测试代码覆盖率,代码覆盖率是测试验证的一个重要指标♥关于测试验证中的一般观点:※覆盖率只代表测试过哪些代码,不代表是否测试好这些代码;※不要过于相信覆盖率数据;※一个稳定的全面的测试仿真要求某些覆盖率尽量100%;※路径覆盖率>判定覆盖>语句覆盖。
♥统计覆盖率操作流程:※step1:设置编译选项,勾选要统计的代码覆盖率类别;※step2:使能代码覆盖率统计功能,启动仿真;※运行仿真,并分析数据;3.2Waveform Compare 波形对比能快速定位设计在修改前后的区别,在进行波形对比之前要保存原设计的波形文件,此文件为作为对比文件。
※step1:打开波形对比向导设置;tools->waveform compare->comparison wizard;※step2:导入波形文件,作为对比对象;※step3:选择对比信号的范围;※step4:根据信号范围选择需要对比的信号;※step5:分析数据;3.3 追踪数据流:数据流窗口能够对VHDL信号或者Verilog的线网型变量进行图示化跟踪,在界面中驱动信号或驱动线网变量的进程显示在左边,反之被驱动信号显示在右边。
可通过双击wave窗口中需要追踪的信号打开dataflow窗口。
※观察设计的连接性:可以检查设计的物理连接性,可以逐个单元的观察所关注的信号、互联网络或寄存器的输入/输出情况。
※跟踪事件:跟踪一个非预期的输出事件,使用嵌入波形观察器,可以由一个信号的跳变回溯追踪,查到事件的源头。
※追踪未知态:未知态在设计中是传递的,用dataflow中Trace>chaseX功能很容易追踪不定态的来源。
※显示层次结构:可以使用层次化实例显示设计的连通性。
数据流窗口追踪不定态的功能是工程师比较青睐的,在dataflow窗口中使用Trace>ChaseX功能,不断往驱动级追踪不定态传递的源头。
小结:仿真验证在整个项目的过程中有着重要的意义,科学合理的仿真方法和仿真技巧可以达到事半功倍的效果;反之,如果只是一味的理论分析而不会整合利用多种工具的优点特点,可能项目会寸步难行。
做到:※合理仿真系统的每一个模块,缩短系统的设计周期;※完整支持从功能前到布局布线后的仿真功能。