Modelsim仿真的步驟
? ? ? ?(1)創建新的工程。
? ? ? ?(2)在彈出的窗口中,確定項目名和工作路徑,庫保持為work不變(如有需要可以根據需求進行更改)。
? ? ? ?(3)添加已經存在的文件(rtl代碼和tb代碼)。
? ? ? ?如果這里關閉后,還想繼續添加,也可以直接在界面空白處右鍵進行添加。
? ? ? ?加錯了文件,也可以右鍵對應的文件,把它移出工程。
? ? ? ?(4)把文件都添加進來后,需要對代碼進行編譯。在上方的菜單欄有Compile(編譯)選項,然后可以選擇編譯所有或者部分編譯。
?? ? ? ?編譯完后,如果沒有問題,代碼后面的status會是一個綠色的對號。
? ? ? ?代碼有問題的話,會是一個紅色的叉,雙擊下方Transcript中的errors,會彈出一個對話框,指明代碼的問題,我們針對這些信息對代碼修改即可。
? ? ? ?(5)進行仿真,選擇上方菜單欄的simulate,其中第一個選擇是優化的設置,我們可以在后面仿真的時候再去優化,第二個是開始仿真,第三個是運行的選項。后面的選項都是仿真的控制選項,釋義很直白。點擊開始仿真。
? ? ? ?在彈出的窗口中,design是仿真相關的庫,我們用的庫默認是work,在work中選中我們仿真的tb代碼,下面的Design Unit(s)就會有對應的顯示,而在其右邊的Resolution欄是仿真的單位,我們這里直接選默認即可。
? ? ? ?Libraries可以添加我們的庫。
? ? ? ?SDF是延遲的文件,一般用于時序仿真,做IC設計時會頻繁涉及時序仿真,做FPGA開發的話,時序仿真不多,仿真比較慢,一般只做功能仿真,驗證功能是否有問題,時序一般是通過開發工具來查看時序報告看有沒有時序問題。
?? ? ? ?而對于開始仿真窗口的使能優化,對于以前版本的modelsim,一般是不勾選的,但我使用的2020.4版本屬于比較新的版本,必須要使能優化,否則仿真的時候會報錯。
? ? ? ?再點擊右側的優化選項,把visibility從默認的第一個選項改為第二個選項,把所有要觀測的模塊都顯示出來,不然的話有些信號就看不到了。然后連續點擊OK即可。
?? ? ? ?然后會進入到下圖所示的界面:
? ? ? ?(6)把需要觀察的信號添加到觀察列表當中。上圖左側的u_led對應tb代碼中例化的模塊。
? ? ? ?右擊想要觀測的模塊,選擇Add wave。
? ? ? ?窗口會變化為如下圖所示:
? ? ? ?現在波形的窗口還比較小,我們想把它單獨拉出來,可以選擇波形窗口右上角×的左邊那個按鈕,就可以把它獨立出來。
? ? ? ?左側的信號默認是帶有路徑的,如果不想顯示路徑,可以選擇上方菜單欄中的format,選擇toggle leaf names,就可以隱藏路徑了。
?? ? ? ?如果不想看某個信號,也可以單擊它,按鍵盤上的Delete把它刪除。
? ? ? ?而如果想單獨添加某一個信號,可以在外面的窗口找到對應的信號,把它添加到觀察列表。
? ? ? ?(7)開始仿真。在下圖所示的仿真時間100ns右側是幾種運行的按鈕,分別是運行一次,持續運行,一直運行,中斷仿真。選擇運行一次,就會仿真運行左側小框內的時間,根據自己的需求修改即可。
? ? ? ?其中一些有用的按鈕,如下圖所示,這里Zoom In和Zoom Out分別是放大和縮小,第三個Zoom Full,是讓有效波形鋪滿整個屏幕。
一些其他的小技巧
? ? ? ?1,可以在外面Transcipt窗口執行運行命令,如:
run 20us
?? ? ? ?就會讓波形在原來的基礎上仿真運行20us。
? ? ? ?2,添加標尺。鼠標點中波形的某個地方,可以添加一個標尺。點擊Insert Cursor按鈕,可以再添加一個標尺。
? ? ? ?3,點擊左下角標尺前面的小鎖,可以把對應的標尺鎖定,想要刪除標尺則可以點擊x。
?? ? ? ?4,更換信號的顯示進制。右擊想要更改的信號,選擇Radix,選擇想要更改的進制即可,Unsigned為無符號十進制,Binary為二進制,Octal為八進制,Hexadecimal為十六進制。
? ? ? ?5,放大縮小的另一種方法。先用標尺選中一個地方,然后點擊上方菜單欄的Zoom In和Zoom Out 進行放大和縮小,這樣就會基于我們選擇的地方進行放大縮小,更加關注我們選中的位置。另外,也可以按住ctrl鍵,單擊鼠標按住不放選中需要觀測的區域進行查看;按住ctrl鍵,點按鼠標左鍵往左上方滑動,可以縮小。
? ? ? ?6,重頭開始運行。
? ? ? ?可以單擊仿真時間左側的ReStart,在彈出的對話框中選擇OK即可。
? ? ? ?也可以像前面在外面的Transcipt窗口執行運行命令:
restart -f
? ? ? ?7,改變波形顏色。modelsim默認的波形是綠色的,如果想要改變波形顏色,可以先選中波形,然后點擊鼠標右鍵,選擇最后的屬性。
? ? ? ?再點擊“corlor”,在彈出的窗口選擇自己想要的顏色即可。
? ? ? ?8,實際的工程應用中,往往是頂層加多個底層的源文件結構,如果不對信號進行一定的分組,就會顯得雜亂不堪,后面我補充了一篇博客介紹如何對信號進行分組。效果如下圖所示: