VCS - 使用VCS生成覆蓋率報告


轉自:http://blog.csdn.net/limanjihe/article/details/52430286

         對於vcs工具,支持生成覆蓋率報告,通過查看覆蓋率報告,即可知道設計中有什么問題。

         要生成覆蓋率報告,要在編譯和仿真的時候,加入一個選項。

         -cm  line | fsm | tgl | cond , 指定生成針對什么條件的覆蓋率報告。

         如下的makefile,就生成上述四個的覆蓋率報告。注意,編譯和仿真,都要加上-cm這個選項。

clip_image002

         執行 make vcs , make sim后,會生成simv.vdb文件夾,該文件夾下包含了覆蓋率的內容,但是我們需要將內容生成報告,這樣,才方便我們查看。

clip_image004

 

         生成報告,使用的是 urg命令,該命令也是屬於vcs工具里面的。

clip_image006

         -dir: 指定 .vdb文件夾的位置

         -report: 指定生成報告的格式,報告格式有兩種,一種網頁格式,一種text格式。這里,both代表生成兩種。

         執行 make urg后,就會生成both文件夾。

clip_image008

 

         這文件夾下的文件,就是覆蓋率報告了。

clip_image010

 

         打開dashboard.html。可以看到整體的一些信息。

clip_image012

 

         但是我們關心的是設計的,而不是testbench的。點擊hierarchy,得到層次。

clip_image014

         點擊u1,也就是設計的頂層。可以看到關於該頂層的信息。因為在頂層,都是調用各個子模塊(這里是調用 band_generaterx_tx, uart_txd模塊),所以沒有line的覆蓋率統計,但是有TOGGLE的覆蓋率統計,也就是信號的翻轉。

clip_image016

         從上面可以看出,對於rst_n信號,沒有從1->0的翻轉,而這個信號是testbench中傳遞的,因此看出,在testbench設計,對於rst_n信號產生,有bug。

         點擊左下角的uart_txd_1,查看該模塊的信息。

clip_image018

         對於該設計,因為有具體的實現,所以可以看到有line的覆蓋率,toggle的覆蓋率,FSM的覆蓋率。

         對於line覆蓋率,從報告看出,總共有42行,覆蓋到了41行。通過查看代碼,可以知道是哪一行沒有被執行到。

clip_image020       

對於toggle覆蓋率。從報告看出,只有rst_n有問題,而這問題是testbench的的bug造成的。

clip_image022

         對於FSM的檢查。從報告看出,每個狀態都有被覆蓋到。但是從有些狀態跳轉到另外的狀態,沒有被覆蓋到。因此造成FSM的覆蓋率不高。

clip_image024

         通過查看覆蓋率報告,可以查找到設計的缺陷,從而進行修正。


免責聲明!

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



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