VCS學習(5)-Code Coverage


一:類型

  line(行)覆蓋率,Toggle(跳變)覆蓋率,condition(條件)覆蓋率,FSM(狀態機)覆蓋率,path(路徑)覆蓋率

二:覆蓋率

1:行覆蓋率

  一般要求100%,例如缺else,default

  例子如下,缺少else,default;但這不一定是錯誤,可能故意為之;二次檢查

  

2:條件覆蓋率

  代碼中有if語句,實際可能出現某種情況,但程序沒有覆蓋,則報告

3:Toggle coverage

  信號是否有0->1,1->0的跳變;x->1,x->0不會報告

  

 

4:FSM覆蓋率

  報告state1-state2沒有轉換

5:path覆蓋率

  路徑是否覆蓋

三:什么時候使用覆蓋率

1:behavior code

   line,condition,path,FSM

2:RTL code

  line, condition,path,Toggle(not command),FSM

3:Gate-level code

  Toggle

四:覆蓋率編譯執行開關

1:compile   

  #vcs -cm<coverage_type> <other option>;例如 -cm cond+line+tgl+fsm+path

  coverage_type:

  line,tgl,cond,fsm,path

2:simulation

  #./simv -cm<coverage_type> <other switches>

  -cm_name filename: 覆蓋率文件的名字

  -cm_dir directory_of_file:覆蓋率文件所在文件;后綴為vdb

  -cm_log:覆蓋率log文件

  

 

3:dve

  dve -covdir *.vdb &             即可看覆蓋率文件

  在dve界面,file-generate URG report-Report Format-可選中網頁或者txt方式閱讀覆蓋率文件

4:不想報告某段code或者文件的覆蓋率(比如一些在仿真時輔助的行為級代碼,后仿真時會去掉)

  針對某段code屏蔽覆蓋率報告但不屏蔽綜合://VCS coverage off

                                                        //VCS coverage on

  針對某段code屏蔽覆蓋率報告且屏蔽綜合   ://synopsys translate_off

                       //synopsys translate_on

  針對某個文件屏蔽覆蓋率   :

  在compile開關中添加-cm_hier<name_of_file>。-cm_hier ./filename  先在當前文件夾下新建一個文件,用gvim打開這個文件,輸入-module fs,則在報告中屏蔽這個module的報告;輸入    +module fs,則報告里只有fs的覆蓋率;輸入-file fs.v,則在報告里屏蔽fs.v文件;輸入+file fs.v,則只有文件fs的報告


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM