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