利用ModelSim SE6.0C實現時序模擬

admin @ 2014-03-26 , reply:0

1) 打開一個工程文件。

2) 打開Settings設置欄,選擇EDA Tools Settings下的Simulation欄。在右邊出現的設置欄中將“Tool name”的下拉菜單選擇“ModelSim(Verilog)”(如果工程用VHDL語言實現,則可以選擇“ModelSim(VHDL)”;如果ModelSim使用的是for Altera的專用版本,則可以選擇“ModelSim-Altera(Verilog)”或“ModelSim-Altera(VHDL)”)。

另外在設置欄中還有其他的核選框。

  1. 如果選中“Maintain hierarchy”,則表示在做時序模擬時就能看到像在功能模擬的工程文件層次結構,可以找到定義的內部信號。因為在做后仿時,源文件中的信號名稱已經沒有了,被映射為軟體綜合后自己生成的信號名,觀察起來很不方便。這個設置與ISE里綜合右鍵屬性的Keep Hierarchy選擇YES的功能是一樣的。
  2. 如果選中“Generate netlist for functional simulation only”,則表示只能做功能模擬。

3) 點擊  “Start Compilation”按鈕編譯工程,完成之後在當前的工程目錄下可以看到一個名為“Simulation”的新文件夾,下面的“ModelSim”文件夾下包括模擬需要的.vo網表文件和包含延遲信息的.sdo文件。

4) 打開ModelSim軟體(或者在Quartus下“Settings->EDA Tools Setting->Simulation”出現的設置欄中選中“Run this tool automatically after compilation”,直接從Quartus下調用ModelSim軟體),可以在當前工程目錄下新建一個Project。在Project標籤欄內點擊右鍵,出現在快捷菜單中選擇“Add to Project->Existing File…”。加入當前工程目錄的“\Simulation\ModelSim\”路徑下的.vo文件、TestBench文件和對應當前工程所選擇器件的網表文件。

比如:當前工程選擇的器件是Cyclone系列,Quartus安裝目錄在“C:\altera”路徑下。因此需要在“C:\altera\quartus50\eda\sim_lib”路徑下找到“cyclone_atom.v”的網表文件導入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目錄下找到對應有“_atom”後綴的.v文件。當然整個大前提是ModelSim SE版本已經加入了Alterta的模擬庫,不過ModelSim-Altera版本就不會存在這樣的問題。

  

5) 在出現的Project標籤欄的快捷菜單中選擇“Add to Project->Simulation Configuration”,會出現如上圖所示的名為“Simulation1”的模擬配置。右鍵點擊選擇“Properties”,彈出的“Simulation Properties”對話框中有幾個標籤欄。

在“Design”標籤欄內需要選擇模擬的文件,也就是TestBench文件。
 
在“SDF”標籤欄內需要選擇包含延遲信息的文件,即Quartus下生成的.sdo文件。這裡建議將.sdo文件與ModelSim的工程文件(.mpf文件)放在同一個目錄下,不然ModelSim會報類似無法讀取.sdo文件的錯誤。當加入.sdo文件時,需要在如下圖所示的“Apply to Region”的編輯框內填寫延遲信息文件作用的區域。

舉個例子來說明:

  1. TestBench文件中定義了測試文件的Module名稱為ConvEncdTestBnch。
  2. TestBench文件中調用待測頂層文件的實例名為top_encode_1。(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);這是TestBench文件中調用頂層的語句)
  3. 所以在作用區域內需要填寫“/ConvEncdTestBnch/top_encode_1”。

 
6) 右鍵點擊名為“Simulation1”的模擬配置,快捷菜單中選擇“Execute”命令,執行模擬。
7) 指定延時文件sdo 路徑時,特別注意“域”的指定,否則用戶會在timing 模擬中報load error “can’t find instance file”. 指定的域可以從sim標籤頁查看sim 的top 層,或要模擬的對象。另外,時序模擬時,一定要記住要把頂層top.v 用 top.vo 替換。同時要確保預編譯的庫中每個庫的名字必需遵循altera的要求,比如:cylcone 的device 庫必需命名為cycclone, maxii 的device命名為maxii, flex10Ke 和acex1K 都命名為flex10Ke,詳細查看文檔附件。Simulation.pdf
8) 提供一個testbench 的模板。
 

利用ModelSim SE6.0C實現功能模擬
功能模擬流程比較簡單,一般不會出現什麼問題,這裡不再多述。




[admin via 研發互助社區 ] 利用ModelSim SE6.0C實現時序模擬已經有1252次圍觀

http://cocdig.com/docs/show-post-43248.html