国"》皿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.vM1307Ptrocwaha3e^hirt.
William・cpevtb
Iggd-c却•nb
>LoaULQ*std.atartlat:
^
二0311二了std・t^xuo(rody)
Loali^crlCCC.OU_1001C_1164(t0C!
7l
Loallr.tfvoik・vuea&viQK)。
】