作者:默宸
Modelsim代碼覆蓋率功能Code coverage,能報告出statement(語句)、branch(分支)、condition(條件)、expression(表達)、toggle(信號翻轉)、fsm(有限狀態機)等多種覆蓋率情況。
1、編譯選項(compile option):
在Modelsim的Workspace里選中需要查看代碼覆蓋率的文件,然后點擊右鍵選擇compile—>compile properties,如下圖所示。
之后選擇“Coverage”選項,出現下圖所示的窗口,根據需要選擇選項,這里選statement、branch、condition、expression和toggle。選完點ok。
選擇“Enable code coverage”后點“ok”后出現下面的窗口:
4、觀察結果
完成以上操作后,代碼覆蓋率的窗口就出現了,點擊(run –all)之后代碼覆蓋率的情況就出現在各窗口中。
下面介紹各子窗口:
(1)Workspace窗口
在workspace窗口選擇Files標簽頁并拖動滾動條到右側,本窗口將以設計中的每一條目來顯示執行覆蓋統計。
(2)Missed Coverage(未覆蓋到對象列表窗)窗口
本窗口用于顯示所選擇文件未被執行的語句、分支、條件、表達式或未翻轉過的信號。
在workspace窗口的Files標簽頁中選擇不同的文件,Missed Coverage窗口的顯示會隨著選擇的文件而更新。
上圖為分支覆蓋率的情況
上圖為statement coverage(語句覆蓋率)的情況。此時選擇任何一個實體在源代碼窗口中顯示相應的行,設計如果包含為被執行的語句或分支的行,則被粉紅色高亮顯示,如下圖。圖中包含了Hits 和BC 欄用來顯示語句執行(statement Hits)和分支覆蓋(BC)的情況。
如下圖所示,在主窗口菜單欄選擇Tool—>Code Coverage—>Show coverage number.
Hits和BC 欄中的每一行圖標將會被數字代替,這些數字代表了該語句或分支被執行的次數。
下表描述了個圖標的含義:
(3)Current Exclusion(當前不做覆蓋率統計列表窗)
本窗口用于列出所指定的不進行覆蓋統計的所有文件和行。
3.1 設置排出文件
如圖,右擊所選中的項,按圖所示操作,
操作完后,在Current Exclusion窗口就會出現被排除的文件,同時源代碼窗口的Hits欄的一些行會出現,表明這些行不做代碼覆蓋統計。
3.2 設置排出行
如圖,在源代碼窗口右擊Hits欄中需要排除行的圖標,圖中為105行,選擇第一個選項。
之后,在Current Exclusion窗口會顯示出被排除的行信息,同時在源代碼窗口,被排除行的Hits欄會出現,表明該行不做代碼覆蓋統計。
取消排除行操作同上。
本窗口顯示了如真值表或翻轉細節等詳細的未被覆蓋到的情況。
當在Missed Coverage窗口中選擇一行,可以在Details窗口中查看相應的詳細信息,如下圖:
(5)Instance Coverage(實例覆蓋列表窗)
本窗口顯示了每個實例的覆蓋統計。
(6)Objects Window(信號窗口)
在該窗口中可以查看狀態翻轉統計,翻轉覆蓋統計了信號從一個狀態變換到另一個狀態的次數。
具體操作入下圖所示:
上述操作完之后出現Objects窗口,這樣就可以查看每個信號翻轉的具體情況。
5、創建代碼覆蓋率報告
如下圖所示,在主窗口菜單欄選擇Tool—>Code Coverage—>Reports
出現下圖所示的子窗口(報告設置窗口),根據需求設置各選項和報告存放路徑。
點ok后即可查看Code Coverage Report:
編輯:hfy
-
ModelSim
+關注
關注
5文章
174瀏覽量
47125 -
代碼
+關注
關注
30文章
4753瀏覽量
68368
發布評論請先 登錄
相關推薦
評論