生活随笔
收集整理的這篇文章主要介紹了
Modelsim基础使用一
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Modelsim使用基礎(chǔ)1 使用GUI進(jìn)行仿真 1.GUI建立工程Project 1.1建工程操作 1.2填寫工程相關(guān)信息 1.3添加源文件 2.編譯 2.1界面認(rèn)識(shí) 2.2仿真 2.3查看波形 3.仿真 3.1界面認(rèn)識(shí) 3.2運(yùn)行仿真 4仿真數(shù)據(jù)保存 4.1 Wave信號(hào)列表保存 4.2波形數(shù)據(jù)保存
注意,不建議使用Modelsim進(jìn)行代碼編輯!易亂碼。
軟件界面:
下圖是基本界面,左邊是庫(kù)和工程;右邊是Transcript用于顯示信息及輸入命令。其他界面在使用到相應(yīng)功能時(shí)會(huì)自動(dòng)出現(xiàn),如Memory List、Wave等,當(dāng)然也可以從菜單欄的View中主動(dòng)點(diǎn)出。 通過Transcript可以學(xué)習(xí)如何寫do腳本命令!
仿真使用:
大體上分成使用do腳本和使用gui界面兩種,但是 實(shí)際上熟練之后就無所謂了,完全可以混合,怎么方便怎么來。
使用GUI進(jìn)行仿真
1.GUI建立工程Project
1.1建工程操作
1.2填寫工程相關(guān)信息
包括工程名和工程保存路徑設(shè)置:
1.3添加源文件
一般情況下都是使用外部編輯器寫好.v文件,然后通過Add Existing File將文件添加入工程。 添加時(shí)逐文件夾添加,同個(gè)文件夾下的可多選一次性添加。 然后會(huì)自動(dòng)切換到Project界面,并顯示剛剛添加的源文件,并且其狀態(tài)顯示為問號(hào),該狀態(tài)指示:文件發(fā)生過更改還未編譯 。
2.編譯
2.1界面認(rèn)識(shí)
通過編譯按鈕啟動(dòng)編譯,三種按鈕分別表示:編譯所選中的文件、編譯所有變化了的文件和編譯所有文件。 點(diǎn)擊編譯后,會(huì)顯示編譯情況,如果有明顯語法錯(cuò)誤,Transcript窗口將顯示出來。
2.2仿真
在獲得了0 failed with no errors的編譯結(jié)果之后,才可以進(jìn)行仿真。 仿真分成兩種:無ip和有ip
2.2.1 無ip的仿真:
在Library窗口中找到work,點(diǎn)開work,找到工程的頂層文件; 右鍵點(diǎn)擊該頂層文件,選擇Simulate without Optimization,不帶優(yōu)化的仿真,此選項(xiàng)可保證所有信號(hào)都能保留。所謂頂層文件,其實(shí)也是相對(duì)的,不一定要使用整個(gè)Project的頂層,也可以直接對(duì)單個(gè)模塊啟動(dòng)“Simulate”操作,從而對(duì)該模塊及被其例化的模塊進(jìn)行仿真。 此時(shí),Transcript窗口能看到相應(yīng)的指令: 如果選擇Simulate(或直接雙擊左鍵),則是帶優(yōu)化的仿真: 點(diǎn)擊仿真之后,Modelsim的界面會(huì)“劇烈變化”,莫慌。
2.2.2有ip的仿真
在菜單欄點(diǎn)擊Simulate--Start Simulation... 在Start Simulation窗口中,選擇Libraries頁,添加所需要的ip庫(kù) 然后回到Design頁,選中要仿真的模塊(選中后在Design Units下能看到work.xxx,xxx為你所選中的模塊),注意不要啟用optimization(優(yōu)化) 。然后點(diǎn)擊ok運(yùn)行。
2.3查看波形
點(diǎn)擊仿真并且沒有報(bào)錯(cuò)的情況下,會(huì)出現(xiàn)sim窗口,窗口中按照例化邏輯會(huì)將所有被例化的模塊羅列出來。 而在右側(cè)Objects窗口中則會(huì)展示sim窗口當(dāng)前被選中的模塊中的信號(hào); 當(dāng)在模塊上右鍵選擇Add Wave時(shí),會(huì)出現(xiàn)Wave窗口,并將本模塊中所有reg和net類型的信號(hào)一齊添加到Wave窗口中; 注意 ,可以分批次將多個(gè)模塊的信號(hào)添加到Wave中。同時(shí)也可以在右側(cè)的Objects窗口中在信號(hào)名稱上右鍵Add Wave。對(duì)于parameter 類型的信號(hào),必須使用此方法才能進(jìn)行繪制。 Add Wave 窗口就是繪制波形的窗口,只有將所需觀察的信號(hào)添加到該窗口中才能觀察信號(hào)變化。
3.仿真
3.1界面認(rèn)識(shí)
Wave窗口中,有幾個(gè)重要部分包括:1仿真運(yùn)行相關(guān)按鈕、2顯示區(qū)域相關(guān)按鈕、3Cursor相關(guān)按鈕、4Wave信號(hào)列表和5繪圖區(qū)。注意,并不是每次生成的Wave窗口的工具欄都有所有上述按鈕,如果沒有可從Modelsim主窗口中找到。 通過在信號(hào)(可用ctrl、shift多選)上點(diǎn)擊每個(gè)信號(hào)都可以設(shè)置數(shù)據(jù)格式包括:進(jìn)制格式和信號(hào)格式(數(shù)字或模擬)。對(duì)于如正弦波等波形數(shù)據(jù)可設(shè)置Format為Analog,此時(shí)信號(hào)顯示區(qū)域高度很大很多,可以展示波形變化。 常用設(shè)置均已框出。 信號(hào)列表中,信號(hào)可以拖動(dòng)調(diào)整位置,也可以通過Ctrl+x剪切Ctrl+V粘貼進(jìn)行對(duì)多個(gè)信號(hào)的同時(shí)調(diào)整順序,也可以delete刪除。
3.2運(yùn)行仿真
仿真時(shí)長(zhǎng)設(shè)置。具體數(shù)值根據(jù)頂層模塊的`timescale以及頂層模塊所生成的時(shí)鐘頻率來考慮,單位可直接填寫(如ps ns us ms)。注意,仿真時(shí)長(zhǎng)不宜太長(zhǎng),不要使用s的單位。如果運(yùn)行結(jié)束發(fā)現(xiàn)長(zhǎng)度不夠可以再次點(diǎn)擊run來運(yùn)行,會(huì)自動(dòng)接著已有的時(shí)間繼續(xù)運(yùn)行,并最終確定總時(shí)間需要多少。 運(yùn)行完,如果發(fā)現(xiàn)代碼需要更改,改好之后。如果只是更改了簡(jiǎn)單的邏輯,沒有增減信號(hào)等情況,可直接重新“Compile”,然后點(diǎn)擊Restart和“Run”運(yùn)行仿真。 如果代碼邏輯有大的更改,則需要重新進(jìn)行“Compile”、“Simulate”、“Add Wave”和“Run”四步操作。 在波形界面上,右鍵可呼出顯示區(qū)域相應(yīng)的操作的菜單,菜單右側(cè)為其快捷鍵(英文輸入模式下)。藍(lán)色線為高阻z,紅色為未知x,深綠色為單bit信號(hào)有數(shù)據(jù)的情況(0、1)、淺綠色為多bit總線有數(shù)據(jù)的情況。
4仿真數(shù)據(jù)保存
4.1 Wave信號(hào)列表保存
點(diǎn)擊Wave窗口內(nèi)任意未知,然后Crtl+s,呼出波形保存界面 設(shè)置文件名,xxx.do,然后“ok”,在工程目錄下可找到該do文件。 do文件的使用則需要靠運(yùn)行命令do xxx.do來進(jìn)行,該命令可直接寫在Transcript窗口中,也可以寫在其他do腳本中來運(yùn)行。 該do文件中自動(dòng)記錄了與Wave窗口設(shè)置相關(guān)的所有東西,包括信號(hào)名列表、信號(hào)順序、列表寬度、信號(hào)的進(jìn)制與格式、顯示的時(shí)間區(qū)間等信息,可用編輯器打開觀察學(xué)習(xí)。
4.2波形數(shù)據(jù)保存
波形數(shù)據(jù)的保存需要通過設(shè)置Cursor來進(jìn)行,且至少需要兩個(gè)Cursor。默認(rèn)會(huì)有一個(gè),須再建一個(gè)。 然后通過拖動(dòng)Cursor光標(biāo)來調(diào)整位置,兩個(gè)Cursor之間的區(qū)域即為所選擇的要保存的區(qū)域。 在Cursor所在行上,點(diǎn)擊右鍵 點(diǎn)擊Filter Waveform...,然后彈出Wave Filter對(duì)話框 設(shè)置Wave Filter,包括:起點(diǎn)、終點(diǎn)、保存路徑及文件名xxx.wlf和保存的信號(hào)范圍。如果勾選Filter Selected Signals Only則保存所選中的單個(gè)或多個(gè)信號(hào)(在Wave的信號(hào)列表中進(jìn)行選擇),否則自動(dòng)保存列表中的所有信號(hào)。其中Now選項(xiàng)即為仿真運(yùn)行的終點(diǎn)。 wlf文件可直接用modelsim打開,可快速恢復(fù)工程和所選信號(hào)的波形。
總結(jié)
以上是生活随笔 為你收集整理的Modelsim基础使用一 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。