01
對于仿真的激勵測試,其實會有代碼覆蓋率一說,不過我們平常可能更多是功能覆蓋,代碼覆蓋估計關注的人要少些,不過作為相對系統(tǒng)性的學習,還是大概看下這個功能吧~
02
涉及到的測試代碼文件就文末自行獲取了,直接開始正題吧。
把文件準備好后,打開Modelsim,將路徑切換到對于的文件路徑
例:cd E:/Soft_File/Sim_File/coverage
接著創(chuàng)建工作庫(work)=> 編譯.v文件(指定覆蓋測試的類項)
vlib work vlog *.v +cover=bcesxf
附:代碼覆蓋率,在Modelsim中提供了以下幾種覆蓋的類型,簡單說明一下
A-語句覆蓋(Statement coverage):逐行統(tǒng)計每個語句的執(zhí)行情況
B-分支覆蓋(Branch coverage):統(tǒng)計每個條件“if/then/else”和“case”的執(zhí)行情況
C-條件覆蓋(Condition coverage):算是分支覆蓋的擴展吧,把判斷條件都覆蓋到
D-表達式覆蓋(Expression coverage):和條件覆蓋又有點相似,就表達式左右側的比對
E-跳轉覆蓋(Toggle coverage):邏輯節(jié)點的跳轉,狀態(tài)發(fā)生變化的意思
F-FSM覆蓋(FSM coverage):有限狀態(tài)機的狀態(tài)、轉換還有路徑統(tǒng)計
G-SystemVerilog類覆蓋(SystemVerilog class coverage):這部分沒咋涉及過,應該是SV的類統(tǒng)計
然后命令中的 +cover=bcesxf大概就知道是指什么了吧?除了x要特殊一丟丟
branch, condition,expression, statement, extended toggle, finite state machine
03
啟動覆蓋測試吧~
vsim -coverage test_sm
先關注這個界面,通過這個界面可以執(zhí)行指定的的覆蓋測試,然后分析的結果會以那個小圖標的形式顯示出來,或者,然后有對應的右下標字母,字母和剛剛介紹的一個意思,還會有個E的字樣,就是被排除在覆蓋測試之外產(chǎn)生的一些狀態(tài)。
可以在這選對應的覆蓋測試
稍微運行一下,做語句覆蓋測試,結果發(fā)生改變
run 1ms
在Files的窗口也能看到相應的代碼覆蓋率
打開sim的窗口,選中不同的目標,在右側的分析窗口會變成相應的代碼覆蓋情況
直接雙擊對應的目標,會直接顯示其在源碼中的位置
接著在分析界面將覆蓋類型換成Toggle,然后選中test_sm,分析界面再點dat,詳細說明的界面就會出現(xiàn)對應的跳轉情況
要是沒這個Details的界面,可以在菜單里,View > Coverage > Details 將其使能
切換到sim窗口,選中test_sm,然后View > Objects,再然后右鍵后Show All Columns
這時可以看到相應跳變的靜態(tài)指示
04
在Files的界面中雙擊beh_sram.v打開源碼界面,然后看到40行,條件覆蓋沒滿足的情況,點Xc那個圖標,在詳細界面可以看到對應的描述
接著將覆蓋次數(shù)顯示出來,Tools > Code Coverage > Show coverage numbers
軟件大小有點問題,50001只顯示到了0001......
關掉數(shù)字的顯示,恢復圖標顯示的情況,鼠標直接放到對應的代碼位置,也能顯示
05
在Files界面,可以選定要排除覆蓋測試的文件,右鍵 > Code Coverage > Exclude Selected File ,Cancel...就可以取消排除。
然后可以看到整體發(fā)生變化,代碼界面的√和×都變?yōu)榱薊的字樣
E*指的就是被排除在外,但測試時還是被擊中過,E就是完全被排除在外了,可以點那個圖標,然后看詳細描述里的信息理解。
06
完成代碼覆蓋的測試后,可以將其導出,Tools > Coverage Report > Text ,類型就看自己需要了
(也可以在Instance, sim, files 界面右鍵找對應的導出鍵)
根據(jù)要的內(nèi)容做報告
導出后,文件內(nèi)容
導出那個HTML就相對圖形化顯示
如果要把使用了排除覆蓋測試的文件狀態(tài)也導出,就可以用這個
基本就這樣了,結束本次仿真吧~
quit -sim
-
仿真
+關注
關注
50文章
4129瀏覽量
134070 -
ModelSim
+關注
關注
5文章
174瀏覽量
47401 -
代碼
+關注
關注
30文章
4837瀏覽量
69130
原文標題:Modelsim的仿真之路(代碼覆蓋率)
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
Altera ModelSim 6.5仿真入門教程
![Altera <b class='flag-5'>ModelSim</b> 6.5<b class='flag-5'>仿真</b>入門教程](https://file.elecfans.com/web2/M00/49/63/pYYBAGKhtEuAIZpHAACJu7wcj1s007.jpg)
Modelsim的功能仿真和時序仿真
使用 ModelSim 進行設計仿真詳解
modelsim仿真詳細過程(功能仿真與時序仿真)
![<b class='flag-5'>modelsim</b><b class='flag-5'>仿真</b>詳細過程(功能<b class='flag-5'>仿真</b>與時序<b class='flag-5'>仿真</b>)](https://file1.elecfans.com//web2/M00/A7/18/wKgZomUMQliATB8tAAAgfRLsRio719.png)
仿真軟件ModelSim及其應用,ModelSim的仿真流程
Modelsim仿真教程Modelsim的基礎入門基礎教程免費下載
![<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>教程<b class='flag-5'>Modelsim</b>的基礎入門基礎教程免費下載](https://file.elecfans.com/web1/M00/91/25/pIYBAFzHunqAShWWAAC3O5U4MWQ535.png)
Modelsim與MATLAB的聯(lián)合仿真
基于ModelSim使用二聯(lián)合Quarus自動仿真教程
![基于<b class='flag-5'>ModelSim</b>使用二聯(lián)合Quarus自動<b class='flag-5'>仿真</b>教程](https://file.elecfans.com/web2/M00/0A/67/poYBAGD6MPeAK191AAAxYF02lXg266.png)
基于ModelSim使用四ModelSim手動仿真教程
如何夾帶modelsim的仿真波形白底黑線
ModelSim手動仿真教程
芯片設計之Modelsim仿真工具
Modelsim的仿真之路(Memory小技能)
Vivado調(diào)用Modelsim仿真
![Vivado調(diào)用<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>](https://file1.elecfans.com/web2/M00/8D/8C/wKgaomS9PFqAXf4vAAB28yDKffU771.png)
評論