發表於 2017-11-24 11:54:06
Modelsim是Mentor公司開發的專業仿真軟體,支持VHDL、VerilogHDL和混合仿真的全系列流程。作為目前最流行的仿真工具之一,Modelsim提供了圖形界面和命令行兩種工作模式,既可以方便地使用滑鼠和對話框完成大部分的仿真操作,也可以通過編寫宏指令執行由文件驅動的工作流程以提高效率。
Modelsim的仿真方法Modelsim的仿真分為前端仿真和後端仿真,下面簡單介紹一下兩者的區別。
前端仿真:也稱為功能仿真,主旨在於驗證電路的功能是否符合設計要求,其特點是不考慮電路門延遲與線延遲,主要是驗證電路與理想情況是否一致。
後端仿真:也稱為時序仿真或者布局布線後仿真,是指電路已經映射到特定的工藝環境以後,綜合考慮電路的路徑延遲與門延遲的影響,驗證電路能否在一定時序條件下滿足設計構想的過程,是否存在時序違規。其輸入文件為從布局布線結果中抽象出來的門級網表、Testbench和擴展名為SDO或SDF的標準時延文件。SDO或SDF的標準時延文件不僅包含門延遲,還包括實際布線延遲,能較好地反映晶片的實際工作情況。一般來說後仿真是必做的。
用verilog,寫生成信號的模塊,稱為testbench, 把testbench和待仿真的模塊一起放在一個頂層裡一起跑,波形就來了
IP核生成文件:(Xilinx/Altera 同) IP核生成器生成 ip 後有兩個文件對我們比較有用,假設生成了一個 asyn_fifo 的核,則asyn_fifo.veo 給出了例化該核方式(或者在 Edit-》Language Template-》COREGEN 中找到verilog/VHDL 的例化方式)。asyn_fifo.v 是該核的行為模型,主要調用了 xilinx 行為模型庫的模塊,仿真時該文件也要加入工程。
調試方便。在 ISE/Quartus 中調用 modelsim仿真只能看到輸入輸出信 號,而對於設計的中間信號/變量,特別是ip核的內部信號/變量無法觀測。而在modelsim中直接仿真可以觀測設計中出現的任何信號/變量無和 ip 核內的任何信號/變量,這樣我們設計的數據流向就可以很清楚的表示出來,還可以檢測不同編程方式的處理效果,極大的方便了調試。
modelsim中輸入信號的波形如何設置?做好仿真(仿真波形之前保存了,如果正在仿真,那更好),那麼打開波形文件。找到tools-edit preferences。找到by windows-wave windows,可以看到一系列可以更改顏色的列表。
比如想把波形的背景顏色變成白色的,那麼選擇wavebackground,然後把它選擇成白色的,確認後波形就變成白色的了。
Modelsim仿真如何查看內部信號
一般Modelsim看的信號波形都是test bench中定義的默認信號。有時候需要看模塊內部信號。
可以選擇sim窗口,查看internal,一般選擇需要查看的信號在Objects窗口出現的信號,根據需要直接拖到Wave窗口即可。
還可以採用的方法是在Transcript窗口輸入命令add wave /testbench_name/design_unit_name/signal_name。該名字為其選擇信號的路徑。若不太清楚可以在Object窗口在需要信號的上面懸浮滑鼠可以顯示器路徑,如圖所示。
但是上述方法查看波形比較麻煩,因為每次從Quartus中調用Modelsim時都會進行默認配置,這就需要你每次查看內部信號,都得新添加該信號,而卻還得選擇simulate -》start simulation,添加信號後,在選擇 run -》run-all。還存在個問題就是,仿真波形,只能顯示此刻開始以後的。不能查看先前的。
若果要從開始查看波形信號變化情況,建議添加信號放在腳本文件(.do)文件中,然後在quartus仿真配置中,勾選use script to set up simulation,選擇 (.do)文件路徑。這樣每次仿真就會按照文件中的命令逐條執行。
關於腳本寫法如圖所示
這樣只要在quartus中設置好這個(.do)文件,modelsim就會按照自上而下產生所需波形。而且每次調試仿真不必再退出modelsim,直接在Transcript中,輸入quit -sim,可退出當前仿真結果,再輸入do **.do(及所需的.do文件),即可進行調試仿真。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴