Modelsim仿真流程
Modelsim仿真流程
1、 Modelsim簡介
略。
2、 modelsim仿真流程:modelsim基本的仿真流程包括建立庫、建立工程并編譯、仿真、調試、但在libero環境中運行modelsim時,軟件自動映射庫和生成工程文件。其中功能仿真、綜合仿真以及后仿真分別映射presynth、postsynth和postlayout庫。
????? 基本流程是:建立工作庫→編譯源代碼→啟動仿真→分析、調試。
2.1? 建立庫并映射
在modelsim中,任何使用VHDL、Verilog HDL、SystemC等語言實現的設計,都被編譯到一個庫中。
?方法一:File>New>Library選擇新建并映射到該庫;
?方法二:在modelsim>提示符下運行命令vlib work2-建立庫,vmap work work2-建立映射庫;
2.2? 建立工程
Modelsim仿真需要建立自己的工程,同時modelsim還提供了文件夾管理工程的功能。
?step1:File>New>project,并指定庫文件名;
?step2:新建文件或導入文件;
2.3? 編譯文件
建立好工程后,使用compile功能對源文件進行編譯。Libero環境啟動modelsim時,系統執行run.do腳本文件自動編譯源文件。
?鼠標右擊文件,選擇compile All對所有的工程文件執行編譯操作;
?啟動仿真,使用simulation>start simulation>選擇design選項卡功能使modelsim進入仿真狀態,之后可以運行仿真。在libero環境下,運行modelsim直接從運行仿真這一步驟開始。
?運行仿真 可以設置仿真時間或選擇仿真全部
?tcl命令: do run.do – 當設計修改后,使用此命令重新導入設計;
Do wave.do-打開波形列表文件,或者向當前波形添加列表;
Restart-復位當前仿真,從0時刻重新仿真;
Run 1ms-運行仿真1ms時間;
Run all-運行全部的仿真;
在libero環境下,可以自己編寫腳本文件代替run.do文件,在項目比較大的情況下可以大大簡化仿真的操作?!鵧o wave.do添加自己所需要的波形列表;※restart復位當前仿真到0時刻;※文件名要區別于run.do文件;※libero中設置:Project->settings->simulation導入自己編寫的.do文件;
2.4? 分析數據――wave,wave波形窗口直觀方便的觀察仿真結果,是最常用窗口之一??梢允褂貌藛蝪iew>wave或者命令view wave打開?添加信號:※在信號等窗口中右鍵使用”Add to wave”功能;
※在主窗口中使用add wave命令添加信號;
※在主窗口中使用do<filename>.do命令添加信號列表;
※使用“拖-放”操作,直接從信號、結構等窗口向wave窗口中拖放;
?快捷操作:※波形放大縮小等操作,放大-鍵盤“+”,縮小-鍵盤“-”,全屏-鍵盤“F”,光標放大-鍵盤“C”;
※?? 區域放大,選中的區域全屏顯示;
※?? 使添加光標,可以利用光標時間差計算周期等參數;
※?? 顯示/隱藏信號路徑,方便閱讀;
?設置斷點:※右擊變量,選擇‘Insert Breakpoint’;當選中的變量波形值發生變化時,仿真自動暫停。
?保存/打開列表:※波形列表為.do可執行腳本文件;打開列表可以使用do<filename>.do命令執行;※waveform formats選項保存變量、顯示方式及變量相對位置等屬性;
?保存/打開波形:※波形文件為.wlf格式文件,使用File>datasets>saveas來保存波形;※波形文件可用于波形對比的對象,使用File>datasets>open來打開;
?波形對比:※在AE版本中,只能實現簡單的手動對比波形;
※?? 用File>datasets方式打開波形文件,向wave窗口中添加需要對比的信號;
?分析數據――list:表格化顯示數據,方便通過搜索特殊值或者特定條件的數據,簡化分析數據的過程。List窗口可通過菜單View>list,或者命令view list打開。
?分析數據――source:source窗口具有完全的編輯能力,同時提供分析數據的一些操作。Source窗口可通過雙擊workspace的總的文件或信號打開。※查看變量值:鼠標停留在變量上面,可顯示當前值;※設置斷點: source源代碼窗口設置條件斷點;
?分析數據――Memories: memory窗口列出工程中存儲單元的數據,方便調試存儲器的操作?!鵶tep1:展開調用RAM單元的模塊,并展開至RAM_ROC>STATCONFIG;※step2:objects窗口選擇MEM_512_9選擇View Memory Contonts;
?分析數據――watch: watch窗口中可實現監測變量的變化情況,watch窗口可通過菜單view>watch,或者命令view watch打開。Watch窗口中的對象可以以拖拉的方式從object窗口、wave窗口、source窗口中拖拉進來;
?分析數據――signals:signals窗口顯示被選中進程模塊的變量、變量值。Signals窗口可通過菜單view>signals,或者命令view signals打開?!判?#xff1a;支持按字母的升序或降序排列?!戏挪僮?#xff1a;可以將信號拖動到wave、list、watch窗口;※過濾器:選擇要察看的信號(輸入、輸出部信號等等)?!鶎π盘栍益I操作,可查看源代碼;
3、 Modelsim高級功能 SE版本支持,AE版本不支持的功能。
3.1? ?Code Coverage? Modelsim SE版可以統計代碼覆蓋率。代碼覆蓋率是指代碼的覆蓋程度,是一種度量方式。
※語句覆蓋(statement Coverage)
※分支覆蓋(Branch Coverage)
?
※條件覆蓋(Condition Coverage)
※狀態機覆蓋(FSM Coverage)
※路徑覆蓋(Path Coverage)
Modelsim SE版本可以測試代碼覆蓋率,代碼覆蓋率是測試驗證的一個重要指標?關于測試驗證中的一般觀點:※覆蓋率只代表測試過哪些代碼,不代表是否測試好這些代碼;※不要過于相信覆蓋率數據;※一個穩定的全面的測試仿真要求某些覆蓋率盡量100%;※路徑覆蓋率>判定覆蓋>語句覆蓋。
?統計覆蓋率操作流程:※step1:設置編譯選項,勾選要統計的代碼覆蓋率類別;※step2:使能代碼覆蓋率統計功能,啟動仿真;※運行仿真,并分析數據;
3.2???Waveform Compare 波形對比能快速定位設計在修改前后的區別,在進行波形對比之前要保存原設計的波形文件,此文件為作為對比文件?!鵶tep1:打開波形對比向導設置;tools->waveform compare->comparison wizard;※step2:導入波形文件,作為對比對象;※step3:選擇對比信號的范圍;※step4:根據信號范圍選擇需要對比的信號;※step5:分析數據;
3.3???追蹤數據流:數據流窗口能夠對VHDL信號或者Verilog的線網型變量進行圖示化跟蹤 ,在界面中驅動信號或驅動線網變量的進程顯示在左邊,反之被驅動信號顯示在右邊。可通過雙擊wave窗口中需要追蹤的信號打開dataflow窗口。
※?? 觀察設計的連接性:可以檢查設計的物理連接性,可以逐個單元的觀察所關注的信號、互聯網絡或寄存器的輸入/輸出情況。
※?? 跟蹤事件:跟蹤一個非預期的輸出事件,使用嵌入波形觀察器,可以由一個信號的跳變回溯追蹤,查到事件的源頭。
※?? 追蹤未知態:未知態在設計中是傳遞的,用dataflow中Trace>chaseX功能很容易追蹤不定態的來源。
※?? 顯示層次結構:可以使用層次化實例顯示設計的連通性。
數據流窗口追蹤不定態的功能是工程師比較青睞的,在dataflow窗口中使用Trace>ChaseX功能,不斷往驅動級追蹤不定態傳遞的源頭。
小結:
仿真驗證在整個項目的過程中有著重要的意義,科學合理的仿真方法和仿真技巧可以達到事半功倍的效果;反之,如果只是一味的理論分析而不會整合利用多種工具的優點特點,可能項目會寸步難行。
做到:※合理仿真系統的每一個模塊,縮短系統的設計周期;※完整支持從功能前到布局布線后的仿真功能。
?
(轉自:http://blog.eccn.com/space.php?uid=170730&do=blog&id=3950)
轉載于:https://www.cnblogs.com/Jerome_Lee/archive/2009/12/20/1628191.html
總結
以上是生活随笔為你收集整理的Modelsim仿真流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取sqlserver数据库中所有库、表
- 下一篇: javascript 获取应用程序根路径