Modelsim工具的一般仿真流程.docx
- 文档编号:7824844
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:1.55MB
Modelsim工具的一般仿真流程.docx
《Modelsim工具的一般仿真流程.docx》由会员分享,可在线阅读,更多相关《Modelsim工具的一般仿真流程.docx(19页珍藏版)》请在冰豆网上搜索。
Modelsim工具的一般仿真流程
Modelsim工具的使用
仿真流程
1.建立work库
通常modelsim在使用的时候,和大多数开发软件一样,第一步先建立一个工程。
而modelsim在建立工程之前,一般都要建立一个工作库(library),命名为work,仿真的时候工程就运行在这个库里面。
通常modelsim在第一次运行的时候,并没有work这个库文件,所
以没有work库的话,先建立一个work的library,再建立新的工程。
一般的工程路径设置如下:
project放置FPGA的工程文件,source放置源代码(ipcore,建议放在工程的根目录下,有同事发现ipcore改变其路径,仿真的时候会出错,并且工程里面要手动添加IP核的文件),simulation放置modelsim的仿真工程。
新建一个work库。
FileNew-Library
^Hamc
Type
|旳th
library
□fate冋叶djibs/dltera
兰沖忡阿」if
library
Gsfrfr^r^/vM」ih叩袖暮a』iF
土扛就am_nF』Pt
Library
冷忡怕.VFT
lihr^iy
UMr耳丫
日皿^clgrsi
Library
UfJter耳什d.libqkydbMii
r車cyclorigii^ver匸•fbalfi讨b
Ipm
Library
C:
fafcsr^/Y«riag」ts|cy!
cbn“i』er
Library
押aOEL.TECHT简adfbdb
Library
C;I'dtere/Yf-dJib訓pm
r血IfTTlfCF
Library
Cii'dterc/Ycrioqitsl|prnvei
(Knr匚E」b(emipo)
Library
JHODELlEO-i/.JirEiJb
—机rrtlA/m上rrtCWm
Library
Library
SwaEiBL_TEOf.,^IIi
J1MCiCiELJEOif,.jbm-2J2
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'7TT
tjrtL驹肚哼
Ubhfiiy
C;|前岀i■訝计M」ibs/sMEe
f4t珂aS_Vd
Llbifliy
C^i'dlsre/Yri1匚电_11&4护1口_样「
+Al#_血
ULr^ry
inciriELjrciir.js^sd
二4^vtaLocu
Library
iNUDEL.IECHf../Vt^OCO
二jLip
library
钿tWEL-TECHLQ
*_血iTcddsinni」ti
library
榔口DELJEO#./rrcrtslcm」H
函山,dd
library
$WCiLELJEO*../£td
上JtLctdjdsssIc-ptrMt
Library
iMQLEL_7EO+skps*抄it
丄血a^ncpsyi
Library
4b 工忙vsrilog Library ! |NCi[jEL_IE'CHf../voracg HlUbraiy— ■pg M 丄 : : 灯血刃向dlHk,±o-i Mirai -dteie_rfdtei0jrf_W5TjL业dteia_^-r+札iy叭戸■1血ryderal■湘于土丸1幻畝惟」血±-fl.晌1JL布肝■榆血(mptr)t-血+脚.fil": 皿1七J^lntFA ffltllT mtUMn O5>*TTi 占艸列4_¥・■5i,i_^fdMtdiZDEO ■see tn处加i」t>1,直泅 4-血^itdrfevd-^rrTS^I: t_刊「即裤£血WlIJIJ trtrravUbTsyLltrof! / li啊母章Llbrsr/ LibiLibaryLibitr^Llbrcrj^Ubi-arjiLibiBTyLibror^ LihiaruLltfWyLi輛屮Hfeiar^Ubtar^Utsa3LlbiSTyLitiitjLibict'jLltieryUbiery 心灯t冋vMIJte/dmU.TtinqghdlIb5]l或er士nf Uidtei■5,lm1kgJt5jdiiT! r3_Tf_ver■"LMlteldJ^lkg」二吋*阳d.-'if! C\i^tti时』hdl」b5」cytkKiH*G: jairHi^iv**lkgJr^ci _wi『 Ibsjdbgrs^nf C;t^tri■5,lwUcgJb^! dii,? r3_Tf_ver 口i^tei讯\rhdl」b5」cytki『前 口円忙叭FijIVfldlrgJr^cyclDnFlI.^『 刚建立的work库是空的,因为里面什么东西都没有,但是当添加了相应的文件后,编译一 次,work就会有容了。 新建的Work,右键设置Edit一下他的属性,如图上所示,pathname 2.建立新工程 File—>New-Project It It u Duncoy rhlatncTyperalh *血血血血血AL血血血血血血血AL血1L1L血血削血血皿_涉毎涉曲出曲业业国画出9-囱囱囱囱1^lib囱囱阿国 沪cHlunavalojbj Lbiary dteo Lbiary dtera_rmF Lbrary dter-a_nf3& Lbrary 妣肖乂f Lbrary Cj/ckneii Lbrary tyilut? ll_vcr Lbrdry fbatfixlb Lbiary Ipm Lbiary lpm_ver Lbra^y racSjib(empty) Lbtary nutA^m Lbtary ntWih Lbtary MPA Lbrdry rillPr LLrtary ritU^m Lbiory CC/MTi Lbtary «g占t* Lbtary Lbtary sv夕d Lbrary ^taisaoD Lbrdfy Lblary rwedokin」ilb Lbtary 辰d Lbrsry C./mypiuyian/ULART/alferainujELiiii/^wkC;)dte-HkhdLlhs/alieri! C: /altar^'+idljfek5/altera_mf C/‘了制洛lbQ」lh扩归 C;IallffILyJIbi^^ilCTisll_' 丰MODELJHZCH/,.fFb舟kllbC;/^ter^^hdljbj/^'n C: /alter^ $MODEL_TEQVJpaJti|MDDD__TCCII/.如卫(MODEIJCCII/,Juvnl.ldfMODELJ6CH/.Vmvw Ci/lltV^vMJbGyEqAt* iNQDEL.lELH/.J? V_SC|MODEL_1ECH/,加UlZOODIMODCL.TC匚砒jiocc|M9DEL_TECH/.^mcdolsimjib$MODEL_7ECH/.7rtc Crcttcfrojcct IX PrajEctRJdEE fefajiLuray VCIK Cep/Setting;FrameJte;li_10H£c/arDd: L3ia.iniB「jwae.,| ・Cep/LibraryMaopirgsHefersncejbrsr/Mappngs 如3I 然后就会弹出如下对话框,选择好工程的路径,命名好工程名字。 hi胁PrQTgwt已丘;fm”p ▼[V 如果之前就已经编写 好了v或者vhd文件的话,直接选择addexistingfile,否则,选择CreateNewFile。 接下来把 所有的v或者vhd的文件都添加进来。 lodclSiaSE10.2a FileEditViewCompileAddPrcjjeciT^olsLayomtBooknidk盲 |( 號鳖議2: 2丨訝母缶]时 j逼*耳”野殆▼写 rs |画Praject-E: /myprogram/UART/altera/simulation/uart_modelsirn: — TNarYK J 欣白_LT*p色OrdsModiFied 3.编写testbench 4.编译整个工程 FI14iiw車亡"询击13.«>S 国"》皿0蔽rjt屯编灯心! ,Iz叹灼]樹I顷[」TP■ ColuirrLSM^lJtXL1G2口 v.呂■3怛■-d 编写完testbench之后,编译整个工程,以后每当工程中其中一个文件修改后,只需单 编译元后,会发现在Project中,里面的文件都会打钩,并且在simulation文件夹里面 的子文件夹work会多了一些东西出来。 返回到Library这里,会发现之前是空的wrok文件库里面,现在也多了一些东西。 需要注意 的是,在设置该library路径的时候,一定要指定到仿真目录的work文件夹,否则很可能映 射不过来。 5.仿真 回到Library中,展开Library_work中的文件,我们只需对testbench进行仿真即可。 点击simulate,稍等片刻之后,就会弹出另外一个sim仿真窗口。 IflIii-nmF-k—m.H■Iiid™ 在Objects选项中,选择自己想要观察的信号,添加到波形中。 siIff.: M modelsim的ini文件,添加器件库信息,这里暂不做介绍。 6.(附)修改设计文件后的仿真 有时候经过仿真,发现设计文件的问题,需要修改,然后再仿真,碰到这种情况应该怎样做 呢? 下面举一个修改了PLL的例子,简要说明。 Vnvn TiltE41tYZ尿』,曲Io£13加軌舖址抵时讪打肖* IF-PefgJf Iit t*tE.1ft.1|略.MV窘唱土 F±1J >-■*€->? '^±rrh: \上矗皑竽 題Q*卑13漏[pZ旦 ■i推r 1 4吐应丄叭—讪舅叫邸忖4 汕H.F¥l曙眄: 爭机ItfflMI 0 H: u ytb|Liijortnr^3rlzlk5M ~l i^B 在修改之前,PLL出来了一个20MHz和5MHz的时钟,如图上所示。 返回Quartus修改设计文件,修改PLL的参数,让其输出20MHz和10MHz的时钟,修改后发现Modelsim已经检测到pll的变化,原来的勾,变成了问号。 重新编译该pll文件(这里的强大之处是,不 需要等待在Quartus将工程重新编译),重新仿真即可。 SE10.2c FileEditViewCompileSimul&t电AddFrojectToolsLayoutEgkm&rk営WindoMrHelp 國T戸図豔IX电陋2: 2! #4^|]會・*i団|刽虱 灵頁做EHelp|舖 mset-E: /myprogrami/lJART/afcera/amulation/uartjnodelsini;E舀田 BNam&]sta-^]TypaJondejModilied rom_tx.vhdUART_TOP.vhd rflm_rx.vhduartactive.vhd 5402DLDLDLDLmwww pllO.vhd UART_Modute.vhd sysclktreeivtid 空PL|6 VHDL3 VHDL1 08/19)201409: 30145... D6/19/201410: 0347... D6/19/201409: 30110... 08/19/201410: 11: 13... □8/21/201402: 32: 06... Da/14/201408: 56: 54... 08/14/201408: 57: 19... tt.vVerilog7 03/20/20M05: 07;12 12752 elsiz(arg 12753 str: = 1275^ elsestr: ■ 12755 endif; 1275S returnstr; 12757 endoutputentr 127SB 12759 begin 12760 If(aceset 12761 c_phva 12762 ENDIF; 12763 12764<> if(init)t 12765 if(m■ 1276S elk 12767 elk 圖Ticnent/CYCLOrJEIII_ALTPLL/M5)-De估血: ■? : Ln#]<□Nc 如上图所示,证明仿真结果和修改后所需的设计一致。 ^■udel^jLH5ElU-Zc Fl2aBd.LtTjftsClTip^1>aSlriil^tai.ddLi: jr-arrTool: 匚ayuul卫山山匹匕¥l.咖Hilp 但是发现当利用xilinx平台调用仿真的时候,在仿真的目录里面,会自己产生一个 modelsim.lni文件,差别可能就在这里。 果然,当利用ISE平台自己调用的时候,发现在 modelsim文件库里面多了很多东西。 其部分都是Minx的器件库。 ^IodelSi»SE1U.7c从上图中可以看到,利用ISE平台调用的Modelsim仿真,果然自己往配置文件里面添加了不少Xilinx的库,由于单独使用modelsim的时候,没有把相应的库文件添加进去,所以仿真不成功。 编译库的路径如下: 将ISE仿真生产的库,存放到一个自己清楚,方便调用的文件夹中,方便修改Modelsim启 动的ini配置文件。 •lib 寸岀㈢刪凤即昔石谕忖朗丁旦n帮貼切 综上所述,脱离xilinx平台的仿真和Altera平台仿真,所走的流程是一样的,比较有可能不一样的地方就是出现在IP核这块了,从实验中出现的现象来看也证实了这个问题。 实验的程序中用到了ROM,只不过Altera的ROM用的是mif文件,而Xilinx的ROM用 的是coe文件,但是在生产IP核的时候,(暂还不确定是不是因为曾在ISE中调用过 mif文件,反正在利用Modelsim来仿真的时候,ROM和Altera一样,需要将mif文件,放到仿真文件夹的 下面报了一个时间精度的问题,由于测试文件的时间 导致仿真出错。 (所以,以后再编写程序的时候,要注 iLeadingunisim・町1£: 9(匕! 口曲)~ £**Uarning: (vsini-3479)Timeunit'ps1islesstlLantitlesimulatorresolution(Ins)¥Time: 0nsIteration: 0Instance: /vtb/uuVlSysClkTree/PILL/demspinst #Laedingimisiiimdciii_sp(dcm_sp_v)#1 #Loedingimisijm.demspclockdividebv2(deni3pclockdivideby2v)#1 tfT.nfsrltrtnIthtiHim.Hnnftqn■maiviminnnA-trinrlnTspir'kidr-™口nmRvTmi口mruar1! nrf戶nktf! 4AI pff.*nn frTUKtaan^zTuxair■=>'CT'|'.K''|'U1|'I'j1土伫mluie±xm<=jeopiemd^*th・xuuJtnJJ.: b«'11i;u). 1TW: R須 iTtrmms4氐4»吐;群 fh*F/^li.51'rFfE,FLaaT]&j汕也応 1TjAeiBno iTtf&c-LUii4血ObMiurbuurF_5T5ru: Tctti,l? i,ifLL."ji0^? ^,iJii! -E«<: e£hLaejpbfeMinilTJlltiCi/Xinaj^K]/]: ■£』卜「]: 變皿日1.丿5<0血"1_・訝为11・"1叶1匚用专"阳4 iTst-fllcech1bJiwws■ler.^LiliHjhMe.D'hlftCi^tlra.-14=t? tc'■ml=-Lm.I'ML1ktJ&1 I I惟XrvliivvE|uni^■: ・Jerpp-i1iiEE: ■rXi.liai■'£4.工若丿卞丑丿也HIJrupslMMihFrlil」*ei7w/D口.utul3107PrDM»tli-caeilsjhi_fihuH_Jbjfe 在用verilog写的测试文件中,可以通过'timescale1ns/1ps,来设定仿真时的时间精度。 但是 Vhdl暂时没有发现。 网上查了一下,发现可以通过以下命令修改: 其中vtb是testbench,即 所要用来仿真的文件。 vsi»-tpsveb.vhd •lipenPiievtb.vhd VSM10>run •CannotCOTtmuebecev^eoffocolerror・ •HDLcall5caucnce: •stoppedotc: /xilirDc/L4.l/lSE^PS/isczimdl/arc/uniPira/prioiicivc/Dcn^sp.vM1307Ptrocwa William・cpevtb Iggd-c却•nb >LoaULQ*std.atartlat: ^ 二0311二了std・t^xuo(rody) Loali^crlCCC.OU_1001C_1164(t0C! 7l Loallr.tfvoik・vuea&viQK)。 】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Modelsim 工具 一般 仿真 流程