前序
對(duì)于激勵(lì)文件,我常用的是直接手寫,最初學(xué)這個(gè)的時(shí)候,好像是用的Quartus里的那個(gè)Modelsim-Altera的工具去弄了下圖形化編輯去制作約束,現(xiàn)在講到這ModelSim了,也就再撿點(diǎn)來折騰下,還是有點(diǎn)學(xué)習(xí)價(jià)值,畢竟編輯的約束就真的很“直觀”了。
編譯文件
其他的就不多回憶了,直接開正題吧,一如既往,把待用的文件準(zhǔn)備好,這次就只需要一個(gè)counter.v的文件,然后把ModelSim的當(dāng)前路徑切換到你文件所放的路徑,接著在腳本窗口敲:
vlib work
再把文件編譯一下:
vlog counter.v
在菜單欄里 Simulate => Start Simulation,彈出來的窗口把文件選好準(zhǔn)備進(jìn)仿真界面;
產(chǎn)生激勵(lì)信號(hào)
在仿真的界面,選中Objects的窗口里的clk,右鍵如下操作:
出來的界面,就是設(shè)置類型,然后就是開始和結(jié)束的時(shí)間,精度都是ns,根據(jù)自己情況改,我就默認(rèn)Next下去
這個(gè)窗口就是讓你配時(shí)鐘參數(shù),占空比、周期之類的,初始值寫個(gè)0進(jìn)去
接著就在Wave的界面出現(xiàn)一個(gè)帶“Edit”還有紅色標(biāo)記的clk信號(hào)
時(shí)鐘有了,就再加個(gè)復(fù)位信號(hào)
操作與上類似,類型就選個(gè)常數(shù)
把變量值寫個(gè)0
結(jié)束后,就有復(fù)位信號(hào)出現(xiàn)了
因?yàn)檫@個(gè)文件的功能比較簡(jiǎn)單,所以有這兩個(gè)信號(hào)就夠用了,接著演示下怎么圖形化的去編輯波形,從而得到自己想要的激勵(lì)形式;
編輯激勵(lì)信號(hào)
因?yàn)榇a是使用的高電平復(fù)位,所以先讓復(fù)位工作起來,再停止復(fù)位,就相當(dāng)于在現(xiàn)在的0常量里頭加一個(gè)高電平脈沖,先鼠標(biāo)點(diǎn)下Wave的界面,然后工具欄里的這個(gè)Edit Mode的圖標(biāo)就會(huì)生效
把模式切換到編輯模式,選中reset,右鍵后的Wave Editor就可以看到Inset Pulse的功能
出現(xiàn)的設(shè)置項(xiàng),就是要保持多長(zhǎng)時(shí)間,已經(jīng)開始插入脈沖的時(shí)刻;
reset就發(fā)生對(duì)應(yīng)的變化
如果添加的不對(duì),就可以選擇好添加脈沖的邊沿時(shí)刻,然后再工具欄找到“Delete Edge”的圖標(biāo)(右鍵Wave Editor里也是一樣),點(diǎn)一下,出現(xiàn)的窗口是需要?jiǎng)h除的邊沿時(shí)刻,確定后就會(huì)把這個(gè)對(duì)應(yīng)的時(shí)刻后邊的整個(gè)邊沿連續(xù)的部分,都刪除(刪除了記得再插回去哈,接著往下演)
如果復(fù)位時(shí)間感覺不夠,就再補(bǔ)個(gè)拉伸的操作,把邊沿?cái)U(kuò)長(zhǎng),比如在150ns的時(shí)刻,從后向前補(bǔ)50ns(就相當(dāng)于高電平在前面的50ns)
然后就可以看到效果了,在邊沿拉升到了100ns處
如果要往后面補(bǔ),就選后邊沿,從前往后補(bǔ)
編輯上就是這樣根據(jù)自己情況去插入或者刪除多余的狀態(tài),然后再過一下,把時(shí)鐘的信號(hào)隨便打亂幾拍(亂操作哈,別當(dāng)成實(shí)際應(yīng)用了.....)
約束就假裝編輯好了,然后可以準(zhǔn)備“逆”生成一個(gè)激勵(lì)文件了~
激勵(lì)文件生成
開始導(dǎo)出對(duì)應(yīng)的文件
選擇Verilog形式的激勵(lì)文件(也搞個(gè)ECVD File),1000ns后結(jié)束激勵(lì),選好存儲(chǔ)的路徑,文件名也設(shè)置好就可以O(shè)K
在對(duì)應(yīng)的路徑就能有這兩個(gè)文件了
這時(shí)候再將Obejcets里的count變量添加到Wave窗口,并運(yùn)行1000ns仿真,發(fā)現(xiàn)數(shù)據(jù)出來了~
退出仿真
Testbench測(cè)試
準(zhǔn)備用剛剛導(dǎo)出的激勵(lì)文件來進(jìn)行仿真測(cè)試,先把它編譯到工作庫(kù)里
vlog export_tb.v
然后運(yùn)行仿真
把信號(hào)添加到Wave里作觀察,并運(yùn)行1000ns的仿真
add wave *
run 1000ns
可以看到仿真按激勵(lì)進(jìn)行~
退出仿真
EVCD測(cè)試
接著演示下VCD文件的使用,直接啟動(dòng)counter的仿真,然后先點(diǎn)下Wave界面,把這個(gè)EVCD的導(dǎo)入形式激活
再把EVCD導(dǎo)進(jìn)來,編輯的信號(hào)就又出來了,再把count的變量也加到Wave里,并運(yùn)行1000ns
run 1000ns
補(bǔ)個(gè)EVCD的使用,如果EVCD里的信號(hào)沒有和對(duì)應(yīng)的代碼變量名對(duì)應(yīng)起來,可以自己手動(dòng)去把它進(jìn)行映射,比如,clk
在窗口里選擇要映射的信號(hào),OK后就映射好了
結(jié)束
這種可視化編輯,然后再產(chǎn)生出激勵(lì)文件的形式大概就這樣了,還不會(huì)咋寫激勵(lì)文件的可以這樣嘗試折騰折騰,說不定就突然很有“靈感”了。
原文標(biāo)題:Modelsim的仿真之路(激勵(lì)文件“逆”生成)
文章出處:【微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
仿真
+關(guān)注
關(guān)注
52文章
4289瀏覽量
135872 -
ModelSim
+關(guān)注
關(guān)注
5文章
174瀏覽量
48126 -
編譯
+關(guān)注
關(guān)注
0文章
679瀏覽量
33999
原文標(biāo)題:Modelsim的仿真之路(激勵(lì)文件“逆”生成)
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ISE 關(guān)聯(lián) Modelsim 詳細(xì)操作
modelsim激勵(lì)程序怎么編寫
Modelsim百問(一)
modelsim仿真詳細(xì)過程(功能仿真與時(shí)序仿真)

仿真軟件ModelSim及其應(yīng)用,ModelSim的仿真流程
三態(tài)門原理HDL語(yǔ)言DSP和ARM總線的仿真及Modelsim使用教程資料

FPGA設(shè)計(jì)的全部流程詳細(xì)說明

基于ModelSim使用四ModelSim手動(dòng)仿真教程
BOSHIDA DC電源模塊檢測(cè)穩(wěn)定性能詳細(xì)流程

評(píng)論