0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳解Modelsim代碼覆蓋率功能使用

電子設計 ? 來源:FPGA技術聯(lián)盟 ? 作者:默宸 ? 2020-12-09 11:45 ? 次閱讀

作者:默宸

Modelsim代碼覆蓋率功能Code coverage,能報告出statement(語句)、branch(分支)、condition(條件)、expression(表達)、toggle(信號翻轉)、fsm(有限狀態(tài)機)等多種覆蓋率情況。

1、編譯選項(compile option):

在Modelsim的Workspace里選中需要查看代碼覆蓋率的文件,然后點擊右鍵選擇compile—>compile properties,如下圖所示。

之后選擇“Coverage”選項,出現(xiàn)下圖所示的窗口,根據(jù)需要選擇選項,這里選statement、branch、condition、expression和toggle。選完點ok。

2、編譯(compile)

點工具欄中的,編譯所有的選中的文件,成功后進行下面的步驟。

3、仿真(simulate)

點工具欄中的,出現(xiàn)下面的窗口:

(注:不要選擇“Enable optimization”)

選擇Others,出現(xiàn)如下圖所示的窗口:

選擇“Enable code coverage”后點“ok”后出現(xiàn)下面的窗口:

4、觀察結果

完成以上操作后,代碼覆蓋率的窗口就出現(xiàn)了,點擊(run –all)之后代碼覆蓋率的情況就出現(xiàn)在各窗口中。

下面介紹各子窗口:

(1)Workspace窗口

在workspace窗口選擇Files標簽頁并拖動滾動條到右側,設計的每個文件顯示了語句、分支、條件和表達式等語句的執(zhí)行覆蓋率匯總統(tǒng)計信息。

在workspace窗口選擇Files標簽頁并拖動滾動條到右側,本窗口將以設計中的每一條目來顯示執(zhí)行覆蓋統(tǒng)計。

(2)Missed Coverage(未覆蓋到對象列表窗)窗口
本窗口用于顯示所選擇文件未被執(zhí)行的語句、分支、條件、表達式或未翻轉過的信號。

在workspace窗口的Files標簽頁中選擇不同的文件,Missed Coverage窗口的顯示會隨著選擇的文件而更新。

上圖為分支覆蓋率的情況

上圖為statement coverage(語句覆蓋率)的情況。此時選擇任何一個實體在源代碼窗口中顯示相應的行,設計如果包含為被執(zhí)行的語句或分支的行,則被粉紅色高亮顯示,如下圖。圖中包含了Hits 和BC 欄用來顯示語句執(zhí)行(statement Hits)和分支覆蓋(BC)的情況。

如下圖所示,在主窗口菜單欄選擇Tool—>Code Coverage—>Show coverage number.

Hits和BC 欄中的每一行圖標將會被數(shù)字代替,這些數(shù)字代表了該語句或分支被執(zhí)行的次數(shù)。

下表描述了個圖標的含義:

pIYBAF9uDnKAOu80AABaDdAm_SU899.png

(3)Current Exclusion(當前不做覆蓋率統(tǒng)計列表窗)

本窗口用于列出所指定的不進行覆蓋統(tǒng)計的所有文件和行。

3.1 設置排出文件

如圖,右擊所選中的項,按圖所示操作,

操作完后,在Current Exclusion窗口就會出現(xiàn)被排除的文件,同時源代碼窗口的Hits欄的一些行會出現(xiàn),表明這些行不做代碼覆蓋統(tǒng)計。

在Current Exclusion窗口中右擊需要取消排除設置的文件,選擇Cancel Selected Exclusions,恢復成原狀,可以做代碼覆蓋率。

3.2 設置排出行

如圖,在源代碼窗口右擊Hits欄中需要排除行的圖標,圖中為105行,選擇第一個選項。

之后,在Current Exclusion窗口會顯示出被排除的行信息,同時在源代碼窗口,被排除行的Hits欄會出現(xiàn),表明該行不做代碼覆蓋統(tǒng)計。

o4YBAF9uDoCAAbTBAAHnxVaqGE8498.png

取消排除行操作同上。

(4)Details(詳細資料窗)窗口:

本窗口顯示了如真值表或翻轉細節(jié)等詳細的未被覆蓋到的情況。

當在Missed Coverage窗口中選擇一行,可以在Details窗口中查看相應的詳細信息,如下圖:

(5)Instance Coverage(實例覆蓋列表窗)

本窗口顯示了每個實例的覆蓋統(tǒng)計。

(6)Objects Window(信號窗口)

在該窗口中可以查看狀態(tài)翻轉統(tǒng)計,翻轉覆蓋統(tǒng)計了信號從一個狀態(tài)變換到另一個狀態(tài)的次數(shù)。

具體操作入下圖所示:

o4YBAF9uDoqAI0n3AAKlF_576mo203.png

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

pIYBAF9uDoyABFCiAAJCLy3HNXI633.png

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

o4YBAF9uDo-AXL5zAAMGhb8k8jc518.png

出現(xiàn)下圖所示的子窗口(報告設置窗口),根據(jù)需求設置各選項和報告存放路徑。

點ok后即可查看Code Coverage Report:

o4YBAF9uDpSAWK9OAAHksFnniZc496.png

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ModelSim
    +關注

    關注

    5

    文章

    172

    瀏覽量

    47013
  • 代碼
    +關注

    關注

    30

    文章

    4671

    瀏覽量

    67765
收藏 人收藏

    評論

    相關推薦

    利用靜態(tài)檢查工具完善功能安全中測試覆蓋率

    功能安全中測試覆蓋率是比較重要的概念,也是在驗證過程中通常需要花費時間較多的步驟,如果能借助于靜態(tài)檢查工具的死邏輯查找和聲明、測試用例自動補全等功能往往能取得事半功倍的效果。
    的頭像 發(fā)表于 09-05 09:15 ?153次閱讀
    利用靜態(tài)檢查工具完善<b class='flag-5'>功能</b>安全中測試<b class='flag-5'>覆蓋率</b>

    單元測試工具TESSY 新版本亮點速覽:提供測試駕駛艙視圖、超級覆蓋率、代碼訪問分析、增強覆蓋率審查

    各種測試對象和方法的所有覆蓋率測量結果,并記錄在新的測試總結報告中。 了解更多TESSY新版本功能詳情或申請免費試用,歡迎咨詢TESSY中國授權分銷商——龍智。 新版本功能亮點速覽: 1、超級
    的頭像 發(fā)表于 07-08 16:20 ?292次閱讀
    單元測試工具TESSY 新版本亮點速覽:提供測試駕駛艙視圖、超級<b class='flag-5'>覆蓋率</b>、<b class='flag-5'>代碼</b>訪問分析、增強<b class='flag-5'>覆蓋率</b>審查

    如何將SystemVerilog斷言屬性和覆蓋屬性置于在設計上?

    功能覆蓋、激勵生成和運行管理是當今功能驗證的三大相互關聯(lián)的任務。其中,功能覆蓋率可以說是最重要的,主要是因為
    的頭像 發(fā)表于 05-28 10:30 ?488次閱讀
    如何將SystemVerilog斷言屬性和<b class='flag-5'>覆蓋</b>屬性置于在設計上?

    怎么用Vivado做覆蓋率分析

    在做仿真的時候往往會去做代碼覆蓋率功能覆蓋率的分析,來保證仿真是做的比較充分完備的。
    的頭像 發(fā)表于 01-03 12:34 ?1233次閱讀
    怎么用Vivado做<b class='flag-5'>覆蓋率</b>分析

    詳解pcb回流焊溫度選擇與調(diào)整

    詳解pcb回流焊溫度選擇與調(diào)整
    的頭像 發(fā)表于 12-29 10:20 ?1190次閱讀

    詳解pcb的組成和作用

    詳解pcb的組成和作用
    的頭像 發(fā)表于 12-18 10:48 ?1175次閱讀

    詳解pcb微帶線設計

    詳解pcb微帶線設計
    的頭像 發(fā)表于 12-14 10:38 ?2056次閱讀

    詳解pcb的msl等級

    詳解pcb的msl等級
    的頭像 發(fā)表于 12-13 16:52 ?7592次閱讀

    詳解PCB半成品類型

    詳解PCB半成品類型
    的頭像 發(fā)表于 12-11 15:41 ?1009次閱讀

    詳解pcb電路板是怎么制作的

    詳解pcb電路板是怎么制作的
    的頭像 發(fā)表于 12-05 11:18 ?1243次閱讀

    詳解pcb不良分析

    詳解pcb不良分析
    的頭像 發(fā)表于 11-29 17:12 ?994次閱讀

    詳解TVS二極管

    詳解TVS二極管
    的頭像 發(fā)表于 11-29 15:10 ?1302次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>詳解</b>TVS二極管

    代碼覆蓋率記錄

    為確保具體的產(chǎn)品(例如,醫(yī)療或航空電子市場)質(zhì)量合格, 通常需要提供語句覆蓋與判定覆蓋認證證明。對于各種嵌 入式系統(tǒng),規(guī)范要求高度優(yōu)化的代碼需要實時測試。禁止 代碼插裝和運行時篡
    發(fā)表于 11-03 11:02 ?0次下載
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>記錄

    詳解pcb地孔的作用

    詳解pcb地孔的作用
    的頭像 發(fā)表于 10-30 16:02 ?1328次閱讀

    詳解pcb和smt的區(qū)別

    詳解pcb和smt的區(qū)別
    的頭像 發(fā)表于 10-08 09:31 ?2927次閱讀