1、work的預設子資料夾,還有Viterbi.cr.mti、Viterbi.mpf兩個檔案 主操作畫面左邊的Workspace內,在原本的Library標籤外,會出現另一個Project標籤(但此時裡面內容是空的) 還會蹦出另一個Add items to the Project視窗.mpf 檔儲存的是此project的相關資料,下次要開啟此project 就是利用FileOpenProject.開啟此.mpf若要移除之前建立的project,請從FileDelete移除2. 載入Project 的HDL source codes按視窗中的Add Existing File(或是從FileAdd
2、toProjectExisting Files .)HDL files擺放的位置,路徑名稱不能有中文,否則軟體會抓不到files關掉視窗,此時的Project下出現了HDL File,一堆問號表示這些檔案都還沒compile。如果要對project新增或移除HDL File:在Workspace內按滑鼠右鍵,選擇Add to Project Existing File.(新增)Remove from Project(移除)3. Compile在Project標籤頁內,選定任一檔案,按滑鼠右鍵選擇Compile CompileAll或是直接按 iconCompile Out-of-Data只重新
3、compile有修改過的檔案 (比較節省時間,故也較常用)此刻只做Compile 還沒做Simulate,而ModelSim必須要作完Simulate (Loading)後才會把所有檔案link起來。如果compiler的結果出現有errors或warnings的訊息,直接在該訊息上雙擊,即可進一步帶出詳細的訊息說明。如果您處理的是VHDL project,那在做Compile前,先在Project標籤頁內,選定所有檔案,按滑鼠右鍵選擇Properties做如下設定:3. Simulate (Loading)切換到Library標籤頁,展開目錄,其下可以看到此project包含的所有檔案,檔案
4、前的符號M,表示這些檔案的性質是Module;如果你寫的是VHDL程式那檔案前所看到的符號會變成E(Entity) and A(Architecture)。如果compiler完,work目錄底下仍然看不到東西,無法展開,請稍等510秒(等程式update最新狀態),或是按滑鼠右鍵選擇Update重新整理4-1 直接以滑鼠左鍵雙擊要Simulate 的檔案,或是按滑鼠右鍵選擇Simulate。此處選擇要Simulate (Loading)的檔案不一定要是top-level file,但如果你選的不是top-level file,project中的sub-ciricuit必須一個一個load,比
5、較麻煩。請注意,這裡的Simulate並沒有真的做模擬,只是把程式Loading進來,並將sub-module 彼此間 link 起來Loading 要simulate 的檔案的動作,也可以按Simulate icon來完成執行以上動作時,如果再附加一個設定步驟:到Options標籤頁下,核選Enable source file coverage,即可在模擬的程序中,附帶幫你檢查testbench 對於 if / case conditional statement的模擬涵蓋率。執行完Simulate (Load)的動作後,程式會自動再跳出兩個標籤頁Sim與Files,此時在Sim下可以看到整
6、個Project的Hierarchy關係要編輯HDL file,可以從Project(顯示檔案的狀態)或File標籤頁內雙擊HDL檔案以開啟編輯視窗(edit window)。sim標籤頁內雖然也有列出所有HDL檔案,但雙擊HDL檔案開啟的是來源視窗(source window),不能edit。檔案編輯(修改)完成(存檔)後,回到Project標籤頁內看該檔案的狀態時,會發現它變成未compile的問號,要重新對它做compile,把目前的Simulate關掉(Simulate End Simulation.),再重新 load一次,才能對新的程式做模擬 。若要查看此project架構,必須切
7、換到Sim標籤頁;不像VeriLogger Pro只要Compiler完,就可以在同一個Project畫面下看到整個project structure / hierarchy。Sim 標籤頁另外一個有趣的功能是:在Sim 標籤頁內選定哪一個module,其相對的內容會自動update 於signals、source、edit.等window (如果你有開啟這些視窗的話)。另外,source與edit window兩者都可用來查看模擬時的某一個變數值或設定中斷點,但前者不可編輯。 Project 標籤頁用以顯示HDL檔案的狀態(也可以開啟其編輯視窗) Library標籤頁用以選定要Simulat
8、e的檔案 Sim 標籤頁用以查看project structure與開啟某module的來源視窗 File 標籤頁用以開啟某HDL檔案的編輯視窗= 四個功能拆成四個設定頁,這是ModelSim 比較耍寶的地方。以下,我們接著要把想觀察的訊號引出來,然後Runsimulation .4-2 在Sim標籤頁內選定top-level file (system.v),打開 signals window:View Signals就可以看到top-level file的所有I/O signal。4-3 在signals window的左半邊欄位內選定想看的訊號(如orig_bit_s1、y1_s1、y2_
9、s1、decoded_coulmn_s1),按滑鼠右鍵Add to WaveSelected Signals,會跳出另一個wave window並把您想觀察的訊號都列出來直接把signals window 的訊號拖曳到wave window 也可以 (訊號的排列次序也可以用左鍵拖曳搬移)。 訊號的排列次序,可以直接用滑鼠拖曳調整。如果要看的是module / sub-module 所有訊號,4-24-3步驟可以一次完成:4-4 切回主視窗,SimulateRunRun 100ns - 預設Run length=100ns (一次跑100ns;可以更改)SimulateRun Run-All 跑
10、到按 Break才暫停 按Continue Run則繼續Step 單步執行程式 (for debugging)Run Restart 重新執行模擬程式執行暫停或是跑到中斷點時,要查看任一訊號或變數的數值,方法有三種 從wave window查看 游標指到source or edit視窗內的該變數,即會顯示該變數當時的數值 ViewVariables 模擬結果如下 如果想要看所有波形的範圍:ViewZoom ZoomFull 以滑鼠左鍵在波形顯示區域點一下,就會出現黃色的垂直座標線(cursor, 參閱step 5-4)。直接在訊號波形上雙擊,會帶出Dataflow window (step 5
11、-3);如果你是在紅色的(unknown)線上雙擊,還可以進一步的在Dataflow window內選定該unknown signal 的wire,按滑鼠右鍵選擇TraceX協助你debug如果訊號不想以預設的二進位表示,可以在wave window內選定該訊號名稱,按滑鼠右鍵選擇Signal Properties.,然後選擇表示方法(如十進位表示Decimal)。5. Dataflow window(for debugging and tracing)Dataflow window可用來檢視所設計的電路,其訊號的實際連接情況(Drivers / Receivers),也就是顯示訊號在執行模擬
12、的過程中,經過哪些程序(process),開啟的方法有兩個: 直接雙擊wave window的訊號波形,會自動跳出dataflow window,其中顯示該訊號的連接情況;以這種方法帶出dataflow window會在下方同時顯示wave viewer,不需要的話可以從ViewShowWave取消。 從ModelSim主視窗中的ViewDataflow開啟視窗,從signals window將要看的訊號拖曳到Dataflow window5-1假設我們要看的是orig_del_bit_s1訊號,此時Dataflow window顯示如下:5-2如果想進一步察看此訊號的Receiver,選定其
13、輸出連線(red highlight),按(expand net to all readers, ie. dow-stream circuit) 就會顯示如下結果:(直接以滑鼠左鍵雙擊red highlighted line也有同樣效果)同理,可以使用查看訊號的Drivers (ie. up-stream circuit)、使用查看訊號的Drivers and Receivers。(Erase All):清除dataflow window5-3從dataflow視窗的ViewShowWave,打開embedded wave viewer 選定dataflow視窗內的元件#ASSIGN#104,此時會看到wave視窗內列出該元