Modelsim工具的一般仿真流程
![Modelsim工具的一般仿真流程](https://img.360docs.net/imgb6/1lbw4m8i2jyxkxr2xqfrl0s7go8zkhyn-61.webp)
![Modelsim工具的一般仿真流程](https://img.360docs.net/imgb6/1lbw4m8i2jyxkxr2xqfrl0s7go8zkhyn-92.webp)
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
|旳th
library □fate 冋叶 djibs/dltera 兰沖忡阿」if
library
Gsfrfr^r^/vM 」ih 叩袖暮 A 』I F
土扛就am_nF 』Pt Library
冷忡怕.VFT
l ihr^iy U Mr 耳丫
日皿 ^clgrsi
Library U fJter 耳什 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 血 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'7TT
T jrtL 驹肚哼 Ubhfiiy C ; |前岀i ■訝计M 」ibs/sMEe
f 4t 珂aS_Vd Llbifliy C^i'dlsre/Yri 1匚电_11&4护1口_样「 + A L #_血 ULr^ry
inciriELjrciir.js^sd 二 4^ vtaLocu Library iNUDEL.IECHf ../Vt^OCO 二 jL IP
library
钿 tWEL-TECHLQ
*_ 血 iTcddsinni 」ti library 榔口DEL JEO#. /rrcrtslcm 」H
函山,dd
library $WCiLELJEO*../£td 上 JtL ctdjdsssIc-ptrMt Library iMQLEL_7EO+
skps* 抄it
丄血 a^ncpsyi Library 4b !|NCi[jEL_IE'CHf../voracg Hl Ubraiy — ■pg M 丄 ::灯血刃向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^lntFA ffltllT mtUMn O5>*TTi 占艸 列4_¥? ■5i,i_^fd MtdiZDEO ■see _____ tn 处加i 」t> 1,直泅 4- 血 ^itd rfevd-^rrTS^I : t_ 刊「即裤 £ 血 Wl IJIJ trtrra v UbTs y Lltrof!/ li 啊母章 Llbrsr/ Libi Lib ary Libitr^ Llbrcrj^ Ubi-arji Libi BTy Libror^ Lihi aru LltfWy Li 輛屮 Hfeiar^ Ubtar^ Uts a 3 LlbiSTy Liti it J Libi CT 'J Lltiery Ubiery 心灯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 Ibsjdbgrs^nf C ; t^tri ■5,lwUcgJb^!dii ,?r3_Tf_ver 口 i^tei 讯 \rhdl 」b5」cytki 『前 口円忙叭 FijIVfldlrgJr^cyclDnFlI.^『 刚建立的work 库是空的,因为里面什么东西都没有,但是当添加了相应的文件后,编译一 次,work 就会有容了。新建的 Work ,右键设置Edit 一下他的属性,如图上所示, path name 这里指定到存放仿真工程的work的库文件夹即可。 2.建立新工程 File—>New- Project It It u Duncoy r hlatnc Type ralh * 血 血 血 血 血 AL 血 血 血 血 血 血 血 AL 血 1L 1L 血 血 削 血 血 皿 _ 涉 毎 涉 曲 出 曲 业 业 国 画 出 9- 囱 囱 囱 囱 1^ ib 囱 囱 阿 国 沪cH lunavalojbj Lbiary dteo Lbiary dtera_rmF Lbrary dter-a_nf3 & Lbrary 妣肖乂f Lbrary Cj/ckneii Lbrary tyilu t?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./my pi uyi an/ULART/alfera inujELiiii/^wk C;) dte-HkhdLlhs/alieri! C: /alta r^'+idljfek5/altera_mf C/ ‘了制洛lbQ」lh扩归 C; I allff ILyJIbi^^ilCT isll_' 丰MODELJHZCH/, .fFb 舟kllb C; /^ter^^hdljbj/^'n C:/ alter ^ iMODEljeCH/. 7mc2_lib (MODEL _1ECH/. iMuUtL.ltLH/, Jwm-Zl.c: $MODEL_TEQVJpaJti |MDDD__TCCII/.如卫 (MODEIJCCII/, Juvn l.ld f MODELJ6CH/. V MVW Ci /lltV^vMJbGyEqAt* iNQDEL.lELH/. J?V_SC |MODEL_1ECH/,加UlZOOD IMODCL.TC 匚砒jiocc |M9DEL_TECH/. ^mcdolsimjib $MODEL_7ECH/. 7rtc Crcttc frojcct IX PrajEct RJdEE fefaji Luray VC IK Cep/ Setting; Fram eJte;li_10H£c/a r Dd:L3ia. ini B 「jwae., | ?Cep/ Library Maopirgs Hefersnce jbrsr/ Mappngs 川 | 如3 I 然后就会弹出如下对话框,选择好工程的路径,命名好工程名字。 HI胁PrQTgwt 已丘;fm” p ▼ [ V 如果之前就已经编写 好了v或者vhd文件的话,直接选择add existing file,否则,选择Create New File。接下来把 所有的v或者vhd的文件都添加进来。 lodclSia SE 10. 2a File Edit Vi ew Compile Add Prcjjeci T^ols Layom t Booknidk 盲 | ( 號鳖議2:2丨訝母缶]时 j 逼*耳”野殆▼写 r s | 画 Praject - E:/my pro gr a m/U ART / alt era /simulation/uart_mo delsirn : --------- - --- - — T NarYK J 欣白 _LT*p 色 Ords ModiFied 3. 编写 testbench 4. 编译整个工程 FI 14 i i w 車 亡"询击13.?> S< h I*■尸弓空1 "口?;1?1址1|? W L e?Jm# Nmlf 国"》皿0蔽rjt 屯编灯心!, I z 叹灼]樹I 顷[」TP ■ ColuirrLSM^lJt XL1G2口 v .呂■ 3 怛■ -d 编写完testbench 之后,编译整个工程,以后每当工程中其中一个文件修改后,只需单 圍M 圍亘 3 旦 一 rorn_rxivhd □art_(ictive.vid pllQ.vbd UAP.T_Module.vhd sysdktree.vhd rornjx.vhd VHPLZ ? 驚 4 0^/19/2014 lOiDdiLF.u □ 08/19(201+Q9130; 10 .,, 2 08/19/201+ 10;ll :13 ,,, & 06/1^201+08:27:16 ... 3 UB/1^01+06;56;5^ .,, 1 OB/Hf20l+OB ;57:19 .,. 5 08/19/2014 09!30!45 ,.. :-E,: jftwy jam r?*m Jts-Mncl UART_TOP.vhd PC*T1_fM Xrhd 1 uflrt_?£h w ”w4~c UftRT_MI&diJ* ? vt>d ■Y* ?uMLtrvH. ■z a iid l^Vpe VHfH ^HDL VMDl VHDL VHUL VHDL sn 口 IL |-. i Mir-dlfed h gLXZEM* 斗 l?FL9f2:DE4 □ CWLWfZO'U □a/口 t 4 右 TLS/细* 3 Da^L4/20fe 4 i oa/ L 4[Fz HE 4 - ra 1C!D3!17 .... !(P ]<□:! I :1Z ... OiQlBgiSI .. r ll . E CZafriFi !■ ^■dd r-n PrcjH ct 円沪mm? tiw* F^eiect ClDS#- Ph :^#Ct Lpdafe Prc93£rtlac. - Fra|? 占nrrf-"? FHij | 匚 orr^zriH AJll ■Ci>irr*e? o it Corrifdl& Ord&t >> Coir^rie Report... ^unTY'flry i. Cnn-f-^s pr 口 |2^| E=/nrr>' p'-oqii ?m]"iLJA^T/H]tHir Ln# 1 1 ■ t 1-TIPB VCBk !-■ Z ixQduii 丄亡 tta ■ recr l_a Ik ■. r' -a, J UAi yg 社 1 T 3 - ■Ji r e - o-tar- Sr- d! Lc 』■ fr t 9n_ dL ? ±J ■- 1-1 x msizaciiE 12 I*. liiSccltlar LT l 昭 .bii 匸三?匸dlF P IS ■r ■聴1e.凶 PP LC E D *U 匸nt dir F 1? aa 2 1 21 33 £今 Z3 2 £ 32 m u >abi c m fi ■!? _rrc^? 独编译修改的那个文件即可。 (参见文档最后部分的例子) -work Library E:/my program/UARTyaltera/simifeHonMork . plio rom_n< romjtx sysdktree tb uart^active uartjnodsim uart module Eritity Entity Entfty Entity Module Entity Entity Entity Library Library Library I cihr iarw Eifm/ prografT>/LiAll.T/alter^/50dricefipciOr ,e/pl?x E:/my (\)gram/LlART/albera/proyam/rom_r>:... E:/my p?ogram/LiARTjalbera/sourceftzicore/r (j... Ei/iny prfjgramAJART/alterai/scuixe^yKlktre... E:/my prtJflram/VART/altera/smnulatBn/tbHY E;/my program/UAR.Tjalter3/sourc8Ajart_acti,.. Ei/my program^UART/altera/source/UART-T',■ Ei/nny program/LlART/altera/sourcs/UART-M^M/ Ci/altera/vhdljibs/altera C : (altera/^hdl_hbs/3ltera_mF C : (altera/verilo^ 」 it s/altera_mf_ver 5.仿真 回到Library 中,展开Library_work 中的文件,我们只需对 testbench 进行仿真即可。 编译元后,会发现在 Project 中,里面的文件都会打钩,并且在 simulation 文件夹里面 的子文件夹work 会多了一些东西出来。 返回到Library 这里,会发现之前是空的 wrok 文件库里面,现在也多了一些东西。需要注意 的是,在设置该library 路径的时候,一定要指定到仿真目录的 work 文件夹,否则很可能映 射不过来。 I il Library Type fdth 点击simulate,稍等片刻之后,就会弹出另外一个sim仿真窗口。 Ifl I ii-nmF -K—M.H■I iid? 在Objects选项中,选择自己想要观察的信号,添加到波形中。 si Iff. :M modelsim 的ini 文件,添加器件库信息,这里暂不做介绍。 6.(附)修改设计文件后的仿真 有时候经过仿真,发现设计文件的问题, 需要修改,然后再仿真, 碰到这种情况应该怎样做 呢?下面举一个修改了 PLL 的例子,简要说明。 -friaK- ? 0 rfAU -WS#6 ? LUn4*d ■ M D ■也_网7』肚 .qM a l^r "rt> ■ it^_h^E_!-M pad ■l ?-?&_?? ■血」 5f* .i^p^dL ■ afc^BjoimaEa u ?1_fld±■… 斗rhfndirw ww> 七T *1 M Elta 4fii_to (fcJ ... *!?:■ 设定好仿真时间,就可以仿真了。 A "氓I C&UW Jj E-MHC "lidn±i?fe. >■ C BW OiUC H K L. eM+F d 『NK?h- Sn* ■ ... 综上,整个脱离软件开发平台的仿真流程基本上如此。 文中只是简单介绍了最基本的, 后面 还会涉及到后仿真,针对单独某个文件仿真, testbench 的编写,为了以高效率的 Tel 命令等 等。在仿真之处,需要修改 I il* EJ HI fiadiiU *14 T4-4.B L 些盼卜4*?用右M H 1 >?Lt Dug 他 +??*■ t H 曰 IT -I ■-■.IF - Pjdjga P 玺碎 P-rf-Bje 1 *nj*W 1 円[M R ?irr ciuxScd 11 刘d ■碎 卄 4Ehl*lln ■fi 君 iwjr N Rit+'bs* ikd_b^_u... PflikHM 4h>4jM- + MC-1 4泄■. 4*=—. [■ —UAW 丄■ F_^ZT? r.EWRtflW 忙#叭』 **?K