ModelSim后仿真 详细流程介绍
- 格式:pptx
- 大小:1.08 MB
- 文档页数:31
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 6.5e (Quartus II 10.0) Starter Edition内容1 设计流程使用ModelSim仿真的基本流程为:图1.1 使用ModelSim仿真的基本流程2 开始2.1 新建工程打开ModelSim后,其画面如图2.1所示。
图2.1 ModelSim画面1. 选择File>New>Preject创建一个新工程。
打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。
一般情况下,设定Default Library Name为work。
指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。
该对话框如图2.2所示,此外还允许通过选择.ini文件来映射库设置,或者将其直接拷贝至工程中。
图2.2 创建工程的对话框2. 按照图2.3所示,设置Project Name为LED_FLOW,Project Location为D:/led_flow。
图2.3 输入工程信息当单击OK按钮后,在主体窗口的下方将出现Project标签,如图2.4所示。
图2.4 Project标签3. 之后,将出现Add Items to the Project的对话框,如图2.5所示。
图2.5 在工程中,添加新项目2.2 在工程中,添加新项目在Add Items to the Project对话框中,包括以下选项:•Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL或文本文件•Add Existing File——添加一个已存在的文件•Create Simulation——创建指定源文件和仿真选项的仿真配置•Create New Folder——创建一个新的组织文件夹1. 单击Create New File。
打开图2.6所示窗口。
图2.6 创建工程文件夹2. 输入文件名称:LED_FLOW,然后选择文件类型为Verilog。
使用ModelSim的仿真步骤:
1.建立工程:选file/new/project菜单,打开Create Project窗口.
填Project Name栏,为你的工程启一个名子.
按Browse按纽,为你的工程指定一个盘上目录,作为以后工程文件的存放位置.
指定缺省库名为Work库.
2.在出现的ADD ITEMS TO THE PROJECT窗口中选Create New File为当前工程加入一个新建文件,或选Add existing File为当前工程加入一个已存在的文件.
3.选Compile/compile All对当前设计工程进行编译.
4.选Simulate/Star Simulation菜单项,打开仿真器.
5.在仿真器中选Design页,点击WORK页前的加号,打开WORK 库,选一个仿真文件,选好后,点击右下脚的OK按纽.
6.在出现的Object窗口中,会有芯片的引脚列表.选一个引脚,压鼠标右键,弹出一菜单,在其中选Add to wave/Selected Signal菜单项,可将引脚对象加入到Wave窗口中.重复上述过程,将全部引脚加入到Wave波形窗口中.
7.在WAVE中,选一个引脚,用WAVE窗口的工具画加在引脚上的波形.
8.画完输入引脚的波形后,输入RUN –ALL,回车,执行仿真.
注:上述仿真过程,可用命令:
vsim work.filename
启动仿真窗口.
view wave
打开波形窗口
add wave –dec *
加入所有波形信号,以十进制方式force
为每个引脚加入驱动信号
run –all
执行仿真任务。
我想很多人跟我一样,被M o d e l S i m的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有 意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了M o d e l S i m后仿真的问题,那就可能是软件版本的问题。
1, M o d e l S i m S e6.1b2, S y n p l i f y P r o7.5.13, I S E5.2i(这个是老了点)4, W i n d o w s X P(这个应该没有多大的关系)还有就是我使用的是v e r i l o g,我想V H D L的方法与v e r i l o g是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是v f1983c s@163.c o m。
有空大家多交流。
一、 为m o d e l s i m生成3个库。
首先,介绍一下这三个库。
S i m p r i m_v e r:用于布局布线后的仿真。
U n i s i m_v e r:如果要做综合后的仿真,还要编译这个库。
X i l i n x c o r e l i b_v e r:如果设计中调用了C o r e G e n产生的核,则还需要编译这个库。
我们要为m o d e l s i m生成的是标准库。
所谓的标准库就是m o d e l s i m运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然m o d e l s i m找不到。
第一步:在m o d e l s i m环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作s i m p r i m_v e r。
Modelsim仿真方法总结第一篇:Modelsim 仿真方法总结Modelsim 仿真方法总结Modeling 仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真。
Modelsim各版本的使用方法大体一致,Modelsim仿真主要分为前仿真和后仿真。
下面来具体介绍modelsim 的仿真方法,涉及quartus-modelsim联合(使用)仿真的差异会特别提示。
前仿真与后仿真说明 1.1 前仿真前仿真也称为功能仿真、行为仿真。
旨在验证电路的功能是否符合设计要求,其特点是不考虑延迟(包括门延迟与线延迟),主要验证电路与理想情况是否一致。
前仿真需要用到RTL级代码(由源代码经过综合后产生)与T estbench。
1.2)后仿真后仿真也称为时序仿真或者布局布线仿真。
是指在电路已经映射到特定的工艺环境以后,综合考虑门延迟与线延迟的影响,验证电路在一定的时序条件下是否存在时序违规以及能否满足设计构想的过程。
需要用到的文件是——从布局布线结果中抽象出来的门级网表、testbench和后缀名为sdo或者sdf的标准时延文件。
注:扩展名为sdo和sdf的标准时延文件包含门延迟与实际布线延迟,能较好的反应芯片的实际工作情况。
二)modelsim仿真主要有以下几个步骤:(1)建立库并映射库到物理目录;(2)编译源代码(包括Testbench);(3)执行仿真;解释:①库:modelsim中有两类仿真库。
一种是工作库,默认名为work;另一种是资源库。
Work库中存放当前工程下所有已经编译过的文件,所以编译前一定要建立一个work库。
资源库存放work库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被存放在不同的资源库内。
(例如要想对综合在cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库。
)映射库用于将已经预编译好的文件所在目录映射为一个modelsim可识别的库。
利用Quartus5.0实现功能仿真1)打开一个工程文件。
2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。
在右边出现的设置栏中将“Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。
(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。
最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing”选项设为“On”,就可以选择最后一项。
编译的报告里也会分别列出最快和最慢的时序报告。
)3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法启动仿真。
4)新建一个波形仿真文件,文件后缀名为.vwf。
选择File菜单下的New->Other Files->VectorWaveform File。
如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。
波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。
将新建的波形仿真文件保存下来。
5)将需要仿真的信号加入波形编辑窗口。
在列表区任一位置双击或者点击右键选择“InsertNode or Bus…”,弹出的对话框点击“Node Finder”按钮。
在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。
如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。
modelsim仿真详解-回复什么是ModelSim仿真?ModelSim是一种著名的仿真工具,用于数字和模拟电路的功能仿真和时序仿真。
它是由美国Mentor Graphics公司开发的,提供了一整套的仿真、调试和验证功能,广泛应用于电子设计自动化领域。
ModelSim仿真工具可以模拟数字电路的行为和时序,在仿真过程中可以观察和分析电路的运行状态,以验证设计的正确性。
它支持Verilog和VHDL两种高级硬件描述语言,并且提供了强大的波形编辑和调试功能,便于用户分析和调试设计中的问题。
ModelSim仿真的基本原理和流程是什么?ModelSim仿真的基本原理是利用编译过程将Verilog或VHDL代码转化为可执行的仿真模型,然后通过激励文件对模型进行驱动和刺激,最后观察波形输出并进行分析。
下面是ModelSim仿真的基本流程:1. 编写设计代码:使用Verilog或VHDL语言编写设计代码,包括设计模块、信号连接、时钟和复位逻辑等。
2. 创建测试平台:编写测试平台代码,包括生成激励信号和检查输出结果的内容。
3. 编译设计代码:使用ModelSim提供的编译器将设计代码编译成仿真模型,产生可执行的仿真对象文件。
4. 创建仿真模型:使用ModelSim提供的工具和命令,创建仿真模型并加载仿真对象文件。
5. 配置仿真环境:设置仿真时钟、仿真时间、仿真启动方式等仿真环境参数,准备仿真的相关设置。
6. 运行仿真:启动仿真过程,模拟电路的行为和时序,并根据测试平台的激励信号来驱动设计,产生波形输出。
7. 观察波形:利用ModelSim提供的波形窗口,观察和分析仿真波形结果,验证设计的正确性。
8. 调试和分析:根据波形结果来调试和分析电路中的问题,定位和解决设计中的错误,优化电路的性能。
ModelSim仿真工具的优势是什么?ModelSim仿真工具在电子设计自动化领域具有很高的知名度和广泛的应用,其主要优势如下:1. 支持多种设计语言:ModelSim支持Verilog和VHDL两种常用的硬件描述语言,用户可以根据自己的需求选择合适的语言进行设计和仿真。
modelsim怎么仿真波形ModelSim是一款用于硬件描述语言(HDL)仿真的软件,它支持Verilog、VHDL等多种硬件描述语言。
使用ModelSim进行波形仿真的基本步骤如下:1.新建工程:首先,在ModelSim中创建一个新的工程。
点击左上角的“File”菜单,选择“Project”,然后在弹出的界面中输入工程名字和选择工程路径,点击“OK”完成新建工程。
2.新建或导入工程文件:完成新建工程后,会弹出添加文件界面。
你可以选择“Create New File”来新建工程文件,或者通过“Add Existing File”来加入已有的工程文件。
3.文档编译:添加文件后,文件会有一个问号表示状态未知,需要右键点击选择“Compile all”进行编译。
编译成功后,文档显示为对勾。
4.开始仿真:在“Project”界面点击“Simulate”后,选择“start simulation”。
并选择你的测试文件(tb)作为仿真主文件。
注意,若在“Library”界面直接点击上方的Simulate可能会报错,需要在该界面的work下,选择需要仿真的文件,右键进行Simulate。
5.添加仿真波形:在仿真阶段,会自动出现sim界面。
此时,你需要手动添加观测信号。
在出现的objects窗口中选择你想观察的信号,右键选择“Add to”,然后选择“wave”,再选择“selected signal”。
6.调整仿真时间并运行仿真:你可以设置仿真时间,然后点击仿真图标开始仿真。
仿真结果会在波形窗口中显示出来,你可以放大或缩小波形以便观察。
以上就是在ModelSim中进行波形仿真的基本步骤。
如果你在使用过程中遇到任何问题,建议查阅ModelSim的官方文档或者在线教程,这些资源提供了详细的帮助和指导。
利用ModelSim进行的功能仿真,综合后仿真,时序仿真功能仿真,就是在理想状态下(不考虑延迟),验证电路的功能是否符合设计的要求。
功能仿真需要:1.TestBench或者其他形式的输入激励2.设计代码(HDL源程序)3.调用器件的模块定义(供应商提供,如FIFO,RAM等等)值得一提的是,可以在ModelSim直接编写TestBench,使用View->Source->Show language templates.综合后仿真(门级仿真),实际上就是将对综合后的门级网表进行仿真,只考虑门延迟,而没有加入时延文件。
在功能仿真之后检验综合的结果是否满足功能要求。
综合后仿真需要:1.综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HD L源代码.2.测试激励3.元件库Altera的仿真库位置为*:\altera\quartus\eda\sim_lib所谓时序仿真,就是在综合后仿真的基础上加上时延文件(sdf文件),综合考虑了路径延迟和门延迟的情况,验证电路是否存在时序违规。
时序仿真需要:1.综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HD L源代码.2.测试激励3.元件库Altera的仿真库位置为*:\altera\quartus\eda\sim_lib4.较门级仿真还需要具有包含时延信息的反标记文件*.sdf可以有两种方法实现门级仿真,或时序仿真。
1.工程编译成功后,自动启用ModelSim来运行门级仿真,前提是要在Quartus II的Options中设置好ModelSim的路径(和有些参考PDF上说的环境变量好像无关,至少我用的Quartus II 9.0 Web Edti on是这样的)具体方法是,进入Quartus9.0->Tools->Options,在Categroy里选中General下的EDA Tool Options,在ModelSim右边的Location of Executable中双击来改变路径,就并且在工程中设置了自动启动ModelSim,就可以自动启用了。
Modelsim工具的使用仿真流程1.建立work库通常modelsim在使用的时候,和大多数开发软件一样,第一步先建立一个工程。
而modelsim在建立工程之前,一般都要建立一个工作库(library),命名为work,仿真的时候工程就运行在这个库里面。
通常modelsim在第一次运行的时候,并没有work这个库文件,所以没有work库的话,先建立一个work的library,再建立新的工程。
一般的工程路径设置如下:project 放置FPGA的工程文件,source 放置源代码(ipcore, 建议放在工程的根目录下,有同事发现ipcore改变其路径,仿真的时候会出错,并且工程里面要手动添加IP核的文件),simulation 放置modelsim的仿真工程。
新建一个work库。
File New- Library^Hamc Type|旳thlibrary □fate 冋叶 djibs/dltera 兰沖忡阿」iflibraryGsfrfr^r^/vM 」ih 叩袖暮 A 』I F土扛就am_nF 』Pt Library冷忡怕.VFTl ihr^iy U Mr 耳丫日皿 ^clgrsiLibrary U fJter 耳什 d.libqkydbMii r 車 cyclorigii^ver 匸• fbalfi 讨 bIpm Library C :fafcsr^/Y«riag 」ts|cy!cbn“i 』er Library 押 aOEL.TECHT 简 adfbdb Library C; I'dtere/Yf-dJib 訓 pm r 血 IfTTl fCF Library Cii'dterc/Ycrioq itsl|prn vei (K nr 匚E 」b (emipo) Library JHODEL lEO-i/.JirEiJb —机 rrtlA/m 上rrtCWm Library Library SwaEiBL_TEOf.,^IIi J1MCiCiELJEOif,.jbm-2J 2 4-jt^ nrtPA 上虫nrtU^F Library 4MaOELJBOf..#ia_lb Library ^OCEL_lKHf../upfJlb 七 >[■ nrtlJ /in Library 4HariELjEa-v.,Aj^-i.]d 二九 Oiv^fn Libr^^y jH0CEL_lEair..1iO5V'7TTT jrtL 驹肚哼 Ubhfiiy C ; |前岀i ■訝计M 」ibs/sMEef 4t 珂aS_Vd Llbifliy C^i'dlsre/Yri 1匚电_11&4护1口_样「 + A L #_血 ULr^ryinciriELjrciir.js^sd 二 4^ vtaLocu Library iNUDEL.IECHf ../Vt^OCO 二 jL IPlibrary钿 tWEL-TECHLQ*_ 血 iTcddsinni 」ti library 榔口DEL JEO#. /rrcrtslcm 」H函山,ddlibrary $WCiLELJEO*../£td 上 JtL ctdjdsssIc-ptrMt Library iMQLEL_7EO+skps* 抄it丄血 a^ncpsyi Library 4b<GDEL_7EQf ii/syncpsyi 工忙 vsrilog Library!|NCi[jEL_IE'CHf../voracgHl Ubraiy — ■pgM 丄::灯血刃向dl H K , ±O -I Mirai-dtei e_rf dtei 0jrf_W5T J L 业 dteia_^-r +札i y 叭戸■ 1血ryderal ■湘于 土丸1幻畝惟」血 ± -fl.晌 1 JL 布肝■榆 血 (mptr) t-血 + 脚.fil":皿1 七 J^lntFAffltllTmtUMnO5>*TTi占艸 列4_¥・■5i,i_^fd MtdiZDEO■see _____ tn 处加i 」t> 1,直泅4- 血 ^itd rfevd-^rrTS^I : t_ 刊「即裤 £ 血 Wl IJIJtrtrra v UbTs y Lltrof!/li 啊母章 Llbrsr/ Libi Lib ary Libitr^ Llbrcrj^ Ubi-arji Libi BTy Libror^ Lihi aru LltfWy Li 輛屮 Hfeiar^ Ubtar^ Uts a 3LlbiSTy Liti it JLibi CT 'JLltieryUbiery 心灯t 冋vMIJte/dm U.Ttinqghdl Ib5]l 或er 士 nf U idtei ■5,lm1kgJt5jdiiT!r3_Tf_ver ■"LMlteldJ^lkg 」二吋*阳 d.-'if!C\ i^tti 时』hdl 」b5」cytkKiH* G :jairHi^iv**lkgJr^ci<l0rFl!_wi 『Ibsjdbgrs^nfC ; t^tri ■5,lwUcgJb^!dii ,?r3_Tf_ver口 i^tei 讯 \rhdl 」b5」cytki 『前口円忙叭 FijIVfldlrgJr^cyclDnFlI.^『刚建立的work 库是空的,因为里面什么东西都没有,但是当添加了相应的文件后,编译一 次,work 就会有容了。
Modelsim脚本仿真教程
以计数器C OUNTER为例
第1步:建立工程文件夹
在电脑中任意位置建立一个空文件夹(路径不能包含中文),把设计源代码.v文件,仿真激励文件.v,仿真脚本文件.do拷贝到该目录下。
打开Modelsim软件,点击菜单项File->Change Directory..,选择刚才建立的文件夹作为当前工程路径。
第2步:执行脚本文件
在Transcript栏中输入“do sim.do”,按回车键,执行仿真脚本文件。
如果Modelsim软件中没有出现Transcript栏,只需在菜单项选择View->Transcript即可。
第3步:在Wave窗口中观察波形
第4步:结束仿真
在菜单项选择Simulate->End Simulation即可结束当前仿真。
如若波形有错,则修改源代码或激励文件后重新执行第2步。
附件:。
modelsim仿真流程ModelSim6.4仿真的操作流程1. ModelSim简介ModelSim是Mentor公司的产品。
在业界,它被认为是最优秀的HDL语言仿真软件。
它提供友好的仿真环境,是支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、T cl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。
其个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
其主要特点可概括如下:RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;VHDL和Verilog混合仿真;源代码模版、项目管理;集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象(Virtual Object)、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C和T cl/Tk接口,C调试;对SystemC的直接支持和HDL任意混合;支持SystemVerilog的设计功能;对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;ASIC Sign off。
ModelSim分几种不同的版本:它们分别是SE、PE、LE和OEM,其中SE(System Edition)是最高级的版本,PE是版本,LE是版本,而集成在Actel、Atmel、Altera、Xilinx以及Lattice 等FPGA厂商设计工具中的均是其OEM(Original Equipment Manufacture,原始设备生产商)版本。
SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE 比ModelSim XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。
Modelsim仿真流程-经验总结Modelsim仿真流程-经验总结1.Modelsim简介略。
2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。
其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。
基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。
2.1建立库并映射在modelsim中,任何使用VHDL、Verilog HDL、SystemC等语言实现的设计,都被编译到一个库中。
方法一:File>New>Library选择新建并映射到该库;方法二:在modelsim>提示符下运行命令vlib work2-建立库,vmap work work2-建立映射库;2.2建立工程Modelsim仿真需要建立自己的工程,同时modelsim还提供了文件夹管理工程的功能。
step1:File>New>project,并指定库文件名;step2:新建文件或导入文件;2.3编译文件建立好工程后,使用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文件,在项目比较大的情况下可以大大简化仿真的操作。
Modelsim做后仿真(基于xilinx)一、新建modelsim后仿真库为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_verd:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
以下凡是要根据自己系统环境改变的内容,我都会用绿色标出,并加一个下划线。
编译完之后,你会发现你的工程文件夹下出现了一个simprim文件夹,里面又有很多个文件夹。
这些就是我们要的库了。
第四步:按照上面的方法,编译另外两个库。
所需要键入的命令分别如下:vlog -work unisim_ver d:/Xilinx/verilog/src/unisims/*.vvlog -work xilinxcorelib_verd:/Xilinx/verilog/src/XilinxCoreLib/*.v如果你想要编译的是VHDL的库,你需要建立的库分别是simprim,unisim和xilinxcorelib。
这三个库所需要的modelsim指令分别如下:vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_Vcomponents.vhd vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_Vpackage.vhd vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_VITAL.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VCOMP.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VPKG.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VITAL.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VCFG4K.vhdvcom –work xilinxcorelib d:Xilinx/VHDL/src/ XilinxCoreLib/*.vhd关于VHDL方面,我没有实践过,如果有误的话,改一下应该问题也不大。
Modelsim 后仿真操作步骤后仿就是时序仿真,因为时序仿真是在综合之后故称后仿真。
现将综合到后仿的简单步骤细列如下(并附图):一,综合(所用工具是quartus)1,建立工程,其他不变,只是在选择仿真工具时留意下图红圈处。
(图1)2,设置仿真工具:assignments->settings...->EDA Tool Settings->Simulation 的Toll name 选择modelsim,其他默认设置即可,3,综合,综合成功后,可以看到再工程目录的simulateion->modelsim下面有两个文件.sdo和.vo文件,前者是加了标准延时的时序反标注文件,后者是综合出来的网标文件。
(图2)那么后仿时就是对.vo文件进行仿真,且仿真文件(testbench)就是前仿真时的文件。
只是还要加入库文件,和延时文件(.sdo)。
二,时序方针(所用工具是modelsim)1.首先编译altera 库文件: 在modelsim新建工程,在工程的library下新建一个库命名为sim;(图3)再加入文件,浏览到altera/quartus的安装目录再找eda->sim_lib,(图4)我的是:D:\altera\80\quartus\eda\sim_lib,选择所有.vhdl文件或者.verilog文件(根据自己设计所采用的语言,选择相应的文件,如果阁下是两种语言联合编程,那就把所有的文件全部编译,肯定错不了,我试过了。
),全部编译后,可以在libraray->sim中看到编译后的文件了。
2,在modelsim下建立新的工程,将在quartusII下生成的.vo文件和测试文件testbench加入工程中,(图5)全部编译,通过后,选择状态栏中start simulation打开一个仿真对话框,(图6)选择仿真对象为work->testbench,(图7)再选择library添加库sim,(图8)再选择SDF,添加延时文件.sdo,注意这里在Apply to Region文本框中填上所选择延时文件的作用域,即您老在testbench里面所实例化的顶层文件的实例化名(红色圈出)。
Modelsim后仿真过程具体流程:1、在综合后的网表中关联库文件:在综合后文件开头使用`include "路径/文件名.v"语句即可。
2、新建库:在库信息栏(如图1)空白处右击,选择new,library,打开创建库窗口(如图2),在creat一栏选择新建库并逻辑映射到该库,库名自己命名(注意不要与库信息栏已经存在的库如work、std等起相同的名字,以免冲突),库物理名默认与已命名的库名一致,建议不做修改,然后点击ok。
图1图23、设置文件编译到新建库:在project信息栏(如图3)空白处右击,选择properties,打开工程编译设置窗口(如图4),Do Not Compile不选;点击Compile to library旁边的倒三角,选择自己已新建的库;Place in Folder同样点击旁边的倒三角选择,一般都是默认顶层;然后点击ok。
图3图44、编译与仿真:编译步骤1中所得的综合后的网表文件,并进行仿真,其过程与前仿过程一样,这里不再赘述,但注意此时仿真时要在自己新建的库中找欲仿真模块,与前仿时在work中找欲仿真模块是同样的过程。
疑点回答:(1)`include "路径/文件名.v"中的路径可以是绝对路径,也可以是相对路径,若库文件(.v文件)与综合后的网表文件在同一路径下,则路径可以省略,即为`include "文件名.v"。
(2)在综合后的网表中添加库文件的目的是将他们“关联”成一个文件,这样编译时就可以识别综合后的网表中调用的库元件,也就是实现了库的调用。
(3)我们新建的库只是一个空的可存储编译信息的库类型文件包,并不是实际的引入了库,其目的就是用来存放已关联库文件的综合后的网表的编译信息,至于与实际库信息的关联是通过网表关联实现的;而其他自带的库(work库除外,其用于存放前仿编译信息,也是空的,不含任何库信息)比如std等都是实际存在的,若不新建,直接在这些库中编译会造成不必要的麻烦。