資源描述:
《利用modelsim實現(xiàn)時序仿真》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、1)?打開一個工程文件。2)?打開Settings設(shè)置欄,選擇EDAToolsSettings下的Simulation欄。在右邊出現(xiàn)的設(shè)置欄中將“Toolname”的下拉菜單選擇“ModelSim(Verilog)”(如果工程用VHDL語言實現(xiàn),則可以選擇“ModelSim(VHDL)”;如果ModelSim使用的是forAltera的專用版本,則可以選擇“ModelSim-Altera(Verilog)”或“ModelSim-Altera(VHDL)”)。另外在設(shè)置欄中還有其他的核選框。1.如果選中“Maintainhierarchy”,則表
2、示在做時序仿真時就能看到像在功能仿真的工程文件層次結(jié)構(gòu),可以找到定義的內(nèi)部信號。因為在做后仿時,源文件中的信號名稱已經(jīng)沒有了,被映射為軟件綜合后自己生成的信號名,觀察起來很不方便。這個設(shè)置與ISE里綜合右鍵屬性的KeepHierarchy選擇YES的功能是一樣的。2.如果選中“Generatenetlistforfunctionalsimulationonly”,則表示只能做功能仿真。3)?點擊?“StartCompilation”按鈕編譯工程,完成之后在當前的工程目錄下可以看到一個名為“Simulation”的新文件夾,下面的“ModelSi
3、m”文件夾下包括仿真需要的.vo網(wǎng)表文件和包含延遲信息的.sdo文件。4)?打開ModelSim軟件(或者在Quartus下“Settings->EDAToolsSetting->Simulation”出現(xiàn)的設(shè)置欄中選中“Runthistoolautomaticallyaftercompilation”,直接從Quartus下調(diào)用ModelSim軟件),可以在當前工程目錄下新建一個Project。在Project標簽欄內(nèi)點擊右鍵,出現(xiàn)在快捷菜單中選擇“AddtoProject->ExistingFile…”。加入當前工程目錄的“Simulat
4、ionModelSim”路徑下的.vo文件、TestBench文件和對應(yīng)當前工程所選擇器件的網(wǎng)表文件。比如:當前工程選擇的器件是Cyclone系列,Quartus安裝目錄在“C:altera”路徑下。因此需要在“C:alteraquartus50edasim_lib”路徑下找到“cyclone_atom.v”的網(wǎng)表文件導(dǎo)入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目錄下找到對應(yīng)有“_atom”后綴的.v文件。當然整個大前提是ModelSimSE版本已經(jīng)加入了Alterta的仿真庫,不過ModelSim-
5、Altera版本就不會存在這樣的問題。??5)?在出現(xiàn)的Project標簽欄的快捷菜單中選擇“AddtoProject->SimulationConfiguration”,會出現(xiàn)如上圖所示的名為“Simulation1”的仿真配置。右鍵點擊選擇“Properties”,彈出的“SimulationProperties”對話框中有幾個標簽欄。在“Design”標簽欄內(nèi)需要選擇仿真的文件,也就是TestBench文件。?在“SDF”標簽欄內(nèi)需要選擇包含延遲信息的文件,即Quartus下生成的.sdo文件。這里建議將.sdo文件與ModelSim的工
6、程文件(.mpf文件)放在同一個目錄下,不然ModelSim會報類似無法讀取.sdo文件的錯誤。當加入.sdo文件時,需要在如下圖所示的“ApplytoRegion”的編輯框內(nèi)填寫延遲信息文件作用的區(qū)域。舉個例子來說明:1.TestBench文件中定義了測試文件的Module名稱為ConvEncdTestBnch。2.TestBench文件中調(diào)用待測頂層文件的實例名為top_encode_1。(top_encodetop_encode_1(clk,rst,dataIn,serialData,parData);這是TestBench文件中調(diào)用頂層
7、的語句)3.所以在作用區(qū)域內(nèi)需要填寫“/ConvEncdTestBnch/top_encode_1”。?6)?右鍵點擊名為“Simulation1”的仿真配置,快捷菜單中選擇“Execute”命令,執(zhí)行仿真。7)?指定延時文件sdo路徑時,特別注意“域”的指定,否則用戶會在timing仿真中報loaderror“can’tfindinstancefile”.指定的域可以從sim標簽頁查看sim的top層,或要仿真的對象。另外,時序仿真時,一定要記住要把頂層top.v用top.vo替換。同時要確保預(yù)編譯的庫中每個庫的名字必需遵循altera的要求
8、,比如:cylcone的device庫必需命名為cycclone,maxii的device命名為maxii,flex10Ke和acex1K都命名為fl