作者:默宸
Modelsim代碼覆蓋率功能Code coverage,能報(bào)告出statement(語句)、branch(分支)、condition(條件)、expression(表達(dá))、toggle(信號(hào)翻轉(zhuǎn))、fsm(有限狀態(tài)機(jī))等多種覆蓋率情況。
1、編譯選項(xiàng)(compile option):
在Modelsim的Workspace里選中需要查看代碼覆蓋率的文件,然后點(diǎn)擊右鍵選擇compile—>compile properties,如下圖所示。
之后選擇“Coverage”選項(xiàng),出現(xiàn)下圖所示的窗口,根據(jù)需要選擇選項(xiàng),這里選statement、branch、condition、expression和toggle。選完點(diǎn)ok。
選擇“Enable code coverage”后點(diǎn)“ok”后出現(xiàn)下面的窗口:
4、觀察結(jié)果
完成以上操作后,代碼覆蓋率的窗口就出現(xiàn)了,點(diǎn)擊(run –all)之后代碼覆蓋率的情況就出現(xiàn)在各窗口中。
下面介紹各子窗口:
(1)Workspace窗口
在workspace窗口選擇Files標(biāo)簽頁(yè)并拖動(dòng)滾動(dòng)條到右側(cè),設(shè)計(jì)的每個(gè)文件顯示了語句、分支、條件和表達(dá)式等語句的執(zhí)行覆蓋率匯總統(tǒng)計(jì)信息。
在workspace窗口選擇Files標(biāo)簽頁(yè)并拖動(dòng)滾動(dòng)條到右側(cè),本窗口將以設(shè)計(jì)中的每一條目來顯示執(zhí)行覆蓋統(tǒng)計(jì)。
(2)Missed Coverage(未覆蓋到對(duì)象列表窗)窗口
本窗口用于顯示所選擇文件未被執(zhí)行的語句、分支、條件、表達(dá)式或未翻轉(zhuǎn)過的信號(hào)。
在workspace窗口的Files標(biāo)簽頁(yè)中選擇不同的文件,Missed Coverage窗口的顯示會(huì)隨著選擇的文件而更新。
上圖為分支覆蓋率的情況
上圖為statement coverage(語句覆蓋率)的情況。此時(shí)選擇任何一個(gè)實(shí)體在源代碼窗口中顯示相應(yīng)的行,設(shè)計(jì)如果包含為被執(zhí)行的語句或分支的行,則被粉紅色高亮顯示,如下圖。圖中包含了Hits 和BC 欄用來顯示語句執(zhí)行(statement Hits)和分支覆蓋(BC)的情況。
如下圖所示,在主窗口菜單欄選擇Tool—>Code Coverage—>Show coverage number.
Hits和BC 欄中的每一行圖標(biāo)將會(huì)被數(shù)字代替,這些數(shù)字代表了該語句或分支被執(zhí)行的次數(shù)。
下表描述了個(gè)圖標(biāo)的含義:

(3)Current Exclusion(當(dāng)前不做覆蓋率統(tǒng)計(jì)列表窗)
本窗口用于列出所指定的不進(jìn)行覆蓋統(tǒng)計(jì)的所有文件和行。
3.1 設(shè)置排出文件
如圖,右擊所選中的項(xiàng),按圖所示操作,
操作完后,在Current Exclusion窗口就會(huì)出現(xiàn)被排除的文件,同時(shí)源代碼窗口的Hits欄的一些行會(huì)出現(xiàn),表明這些行不做代碼覆蓋統(tǒng)計(jì)。
3.2 設(shè)置排出行
如圖,在源代碼窗口右擊Hits欄中需要排除行的圖標(biāo),圖中為105行,選擇第一個(gè)選項(xiàng)。
之后,在Current Exclusion窗口會(huì)顯示出被排除的行信息,同時(shí)在源代碼窗口,被排除行的Hits欄會(huì)出現(xiàn),表明該行不做代碼覆蓋統(tǒng)計(jì)。

取消排除行操作同上。
(4)Details(詳細(xì)資料窗)窗口:
本窗口顯示了如真值表或翻轉(zhuǎn)細(xì)節(jié)等詳細(xì)的未被覆蓋到的情況。
當(dāng)在Missed Coverage窗口中選擇一行,可以在Details窗口中查看相應(yīng)的詳細(xì)信息,如下圖:
(5)Instance Coverage(實(shí)例覆蓋列表窗)
本窗口顯示了每個(gè)實(shí)例的覆蓋統(tǒng)計(jì)。
(6)Objects Window(信號(hào)窗口)
在該窗口中可以查看狀態(tài)翻轉(zhuǎn)統(tǒng)計(jì),翻轉(zhuǎn)覆蓋統(tǒng)計(jì)了信號(hào)從一個(gè)狀態(tài)變換到另一個(gè)狀態(tài)的次數(shù)。
具體操作入下圖所示:

上述操作完之后出現(xiàn)Objects窗口,這樣就可以查看每個(gè)信號(hào)翻轉(zhuǎn)的具體情況。

5、創(chuàng)建代碼覆蓋率報(bào)告
如下圖所示,在主窗口菜單欄選擇Tool—>Code Coverage—>Reports

出現(xiàn)下圖所示的子窗口(報(bào)告設(shè)置窗口),根據(jù)需求設(shè)置各選項(xiàng)和報(bào)告存放路徑。
點(diǎn)ok后即可查看Code Coverage Report:

編輯:hfy
-
ModelSim
+關(guān)注
關(guān)注
5文章
175瀏覽量
49302 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
74012
發(fā)布評(píng)論請(qǐng)先 登錄
半導(dǎo)體嵌入式單元測(cè)試的核心技術(shù)、工具選型與落地全流程
嵌入式軟件單元測(cè)試必要性與專業(yè)工具重要性的系統(tǒng)性專業(yè)研究報(bào)告
海爾智家借助MATLAB技術(shù)提高測(cè)試覆蓋率
芯片測(cè)試覆蓋率99%就夠了嗎?給DFT設(shè)計(jì)提個(gè)醒
汽車軟件質(zhì)量躍遷的系統(tǒng)性路徑:基于ISO 26262標(biāo)準(zhǔn)的單元測(cè)試體系重構(gòu)與中日實(shí)踐深度對(duì)比(2026學(xué)術(shù)研究報(bào)告)
C語言單元測(cè)試在嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用
單片機(jī)開發(fā)功能安全中編譯器
【產(chǎn)品介紹】Questa One Sim軟件
【產(chǎn)品介紹】Modelsim:HDL語言仿真軟件
HarmonyOSAI編程單元測(cè)試用例
太陽光模擬器關(guān)鍵參數(shù) | 光譜匹配度、光譜覆蓋率及光譜偏離率
太陽光模擬器性能的影響參數(shù):光譜匹配度、光譜覆蓋率及光譜偏離率
HarmonyOS AI輔助編程工具(CodeGenie)代碼測(cè)試
新思科技VSO.ai如何顛覆芯片驗(yàn)證
智能駕駛域控測(cè)試革命:實(shí)現(xiàn)99.99% 功能安全的中國(guó)方案!
一文詳解Modelsim代碼覆蓋率功能使用
評(píng)論