您好,登錄后才能下訂單哦!
這篇文章主要講解了“code coverage有什么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“code coverage有什么用”吧!
Code coverage起源于軟件測試,它可以描述在測試過程中代碼覆蓋的程度。
與functional coverage不同,Code coverage的分析統計是一個自動過程。因此,將Code coverage整合到現有的仿真流程中非常簡單,不需要更改當前的設計或測試平臺。
regression run期間實現100%的Code coverage意味著測試平臺提供了激活RTL代碼中所有結構的激勵,但是設計上可能有些功能沒有經過驗證,仍然存在功能上的Bug。
Code coverage指標無法分析功能驗證的情況,但是由于Code coverage的自動化方面的優勢,其仍然是驗證流程中的一個非常重要的驗證指標。
Code Coverage類型
Toggle Coverage
Toggle Coverage用于測量register 或者wire的每個bit toggle的次數。
查看Toggle Coverage分析報告比較費力,而且價值不大,通常用于IP之間的連接檢查。此外,Toggle Coverage對于one-hot選擇等控制信號也很有用。
Line Coverage
Line Coverage用于分析RTL代碼中哪些行在仿真期間被執行。
Line Coverage分析通常會發現,由于代碼中的bug或者某些IP特定的配置導致某些代碼從未被執行。對于無效的代碼,可以選擇在Line Coverage統計期間過濾掉,僅關注相關代碼。
Statement Coverage
Statement Coverage用于分析RTL代碼中哪些語句在仿真過程中被執行。Statement Coverage比Line Coverage更有用,因為一條語句(Statement)通常跨越多行(Line)代碼-或多條語句可以在一行代碼。
Branch Coverage
Branch Coverage(也稱為decision coverage)是分析控制結構(例如if,case,while,repeat,forever,for和loop語句)中布爾表達式覆蓋率。
Finite-State Machine Coverage
當今的code coverage分析工具能夠識別RTL源代碼中的有限狀態機。因此,工具可以自動提取FSM code coverage指標。例如,進入狀態機中每個狀態的次數,從一個狀態轉換(transition)到其它狀態的次數
收集和分析code coverage指標的目的是識別RTL代碼中在當前的驗證環境中未被執行的部分。
從項目的角度來看,通常最好等到RTL實現接近完成的時候才開始收集和分析code coverage,否則,可能會因為RTL代碼的修改,浪費大量沒有意義的時間。
在開始收集code coverage之前,先運行一些仿真以解決code coverage流程中的其他問題。
感謝各位的閱讀,以上就是“code coverage有什么用”的內容了,經過本文的學習后,相信大家對code coverage有什么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。