在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

脫離代碼談芯片驗證關鍵指標:覆蓋率

sanyue7758 ? 來源:芯片學堂 ? 2023-04-17 10:04 ? 次閱讀

驗證覆蓋率(Verification Coverage)的存在是為了試圖回答這樣一個問題:“你怎么知道驗證已經完成?”

實際上,就算驗證覆蓋率達到了100%,從邏輯上也不能保證當前的驗證是完備的。只不過,100%的驗證覆蓋率,可以讓工程團隊對即將tape out的芯片增添不少信心。

本文將重點厘清覆蓋率相關的概念,以及在芯片開發流程中跟覆蓋率相關的事項。

01

覆蓋率概述

要完成一項工程,需要從市場需求、產品計劃、工程流程、技術手段、監管機制、資源調配、評審體系等多個維度做全盤考量。而覆蓋率,就是芯片工程中,評審體系需要重點參考的一項技術指標,但也只是驗證相關的其中一項。 目前被業界廣泛采用的覆蓋率指標有功能覆蓋率(Function Coverage)和代碼覆蓋率(Code Coverage)。這兩項指標需要配合起來看,比如100%的代碼覆蓋率以及低于100%的功能覆蓋率,可以看出驗證不完整;100%的功能覆蓋率以及低于100%的代碼覆蓋率,可以看出代碼冗余或驗證計劃有誤;更多的分析可以得出更詳細的結論。

下面會對這兩種覆蓋率分別展開闡述,最后再補充一下用例通過率(Pass rate)和計劃覆蓋率(Plan Coverage)的內容。

02

功能覆蓋率

功能覆蓋率,被用來度量DUT中哪些功能/特性被測試用例測試到了。這項指標在隨機驗證中非常有用,通過它可以明確地知道在“大范圍的掃射”之后,哪些功能被命中了,也就對當前DUT的狀態有了大致的把握。 但要獲得這項指標也會比較麻煩,工程師們需要針對各種各樣的功能和應用場景,使用SV等驗證語言去實現覆蓋率模型(Coverage Model)或斷言(Assertion),并且從大量的回歸測試(Regression)中采集(Sample)覆蓋數據,然后進行統計數據的合并(Merge),最后做覆蓋率分析(Analysis)。

a1ec5092-dc3b-11ed-bfe3-dac502259ad0.png

這里提到的功能和應用場景,在不同層級的驗證中(模塊驗證/子系統驗證/系統驗證)有不同抽象的表達,比如模塊驗證會更關心模塊電路是否所有的功能都被觸發到了,而系統驗證會更關心是否耦合了各類工作場景。 這里提到的實現覆蓋率模型,是容易引入人為錯誤的地方。覆蓋率模型的定義決定了計算覆蓋率時的全集,比如設計文檔中提到了100個功能特性,驗證工程師在開發覆蓋率模型的時候由于理解不到位或者遺漏,導致只針對其中90個特性編寫了覆蓋點,那么最后就算達成100%的功能覆蓋率,也還是有10個功能特性沒有被測試到。

SV功能覆蓋率模型的實現,需要用到覆蓋組covergroup和覆蓋點coverpoint這些語法特性。覆蓋組可以定義在package包、module模塊、program程序、interface接口或者class類中。覆蓋組通過包含多個覆蓋點或覆蓋點交叉場景來完成對覆蓋率模型的描述,覆蓋組還需要指定采樣條件和其他配置選項。而覆蓋點,通常是需要被覆蓋的信號的邏輯或算術表達式,并且對具體覆蓋倉(bin)做劃分。

提個小建議,即使對SV相關語法很熟悉,實現覆蓋率模型的時候還是使用最直接和最簡單的方式。這樣可以提高可讀性,便于維護和評審。

03

代碼覆蓋率

代碼覆蓋率,被用來度量RTL中哪些代碼被仿真驗證執行到了。代碼覆蓋率是一種軟件和硬件開發都通用的手段,通過在仿真程序運行的過程中記錄統計數據,來說明代碼中哪些語句被分別執行了多少次。 通過對代碼覆蓋率的分析,我們很容易發現RTL中冗余的代碼塊(沒有被執行),這種“冗余”可能來自于RTL實現邏輯的錯誤,或者用例和環境沒有正確完成期望的測試序列,又或者驗證計劃不夠完備??傊?,對于驗證質量的把控是非常有益的。 代碼覆蓋率的收集相比于功能覆蓋率要方便得多。

收集代碼覆蓋率通常是由EDA工具在啟用相應功能的選項(option)之后自動化完成,不需要工程師再開發額外的代碼。同時,代碼覆蓋率是按照所有代碼作為全集來計算,不會像功能覆蓋率那樣存在人為引入的局限性。 但是,代碼覆蓋率有個本質上的問題,那就是代碼行本身不能代表功能特性,也就是說,某一些代碼被覆蓋到了,并不能說明RTL實現了某項功能,也不能說明功能實現的正確性和邏輯完備性。反過來,完整的代碼覆蓋率,不能識別出來哪些功能特性沒有被實現,不能識別出來實現了的功能特性所有可能的場景,也不能識別代碼行在執行順序上的正確性。

a20188d6-dc3b-11ed-bfe3-dac502259ad0.png

代碼覆蓋率的統計一般會再進一步做分類,即翻轉覆蓋率(Toggle Coverage)、行覆蓋率(Line Coverage)、語句覆蓋率(Statement Coverage)、分支覆蓋率(Branch Coverage)和狀態覆蓋率(FSM Coverage)。這些分類很好理解,都是字面意思,比如toggle cov就是看某個信號的翻轉情況,FSM cov就是有限狀態機的遍歷情況,這里不再一一展開贅述。

04

用例通過率和計劃覆蓋率

這是最后想要補充的兩個常見指標,用例通過率(Pass rate)和計劃覆蓋率(Plan Coverage)。 通過率指的是執行Pass的用例數占所有需要執行的用例的比例。嚴格來講,通過率并不能表示驗證工作的質量進度,它只能表征驗證工程師大致的工作量進度。在達成功能覆蓋率和代碼覆蓋率的目標前,一般要求用例是100%pass的,即手上已開發的用例都能執行通過。

計劃覆蓋率指的是測試通過的測試點(test point)占所有測試點的比例。嚴格來講,計劃覆蓋率同樣不能表征驗證工作的質量進度,因為測試點的拆分具有很大的主觀性,在實際工程中增加測試點是常有的事。 計劃覆蓋率的計算,會要求將用例執行結果反標回驗證計劃表,然后再對應到測試點,這樣就可以根據用例的執行結果來計算出計劃覆蓋率,它同樣只是能在一定程度上表征工作量進度。





審核編輯:劉清

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

    關注

    4

    文章

    267

    瀏覽量

    31794
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59791
  • fsm
    fsm
    +關注

    關注

    0

    文章

    35

    瀏覽量

    12825
  • DUT
    DUT
    +關注

    關注

    0

    文章

    189

    瀏覽量

    12386

原文標題:SystemVerilog | 脫離代碼談芯片驗證關鍵指標:覆蓋率

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    怎么用Vivado做覆蓋率分析

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

    關于SpinalHDL中的驗證覆蓋率收集簡單說明

    在做RTL仿真驗證時,覆蓋率收集往往是我們在驗證中需要注意的地方,本篇就SpinalHDL中的驗證覆蓋率收集做一個簡單說明。sbt配置在Sp
    發表于 06-24 15:56

    重點厘清覆蓋率相關的概念以及在芯片開發流程中跟覆蓋率相關的事項

    全盤考量。而覆蓋率,就是芯片工程中,評審體系需要重點參考的一項技術指標,但也只是驗證相關的其中一項。目前被業界廣泛采用的覆蓋率
    發表于 09-14 11:57

    結合覆蓋率驅動技術的RVM驗證方法學在SOC驗證中的應用

            本文首先介紹RVM驗證方法學和覆蓋率驅動技術,然后詳細分析如何使用結合覆蓋率驅動技術的RVM驗證
    發表于 09-05 08:53 ?15次下載

    針對功能覆蓋率驗證過程

    針對功能覆蓋率驗證過程神州龍芯集成電路設計公司徐偉俊 楊鑫 陳先勇 夏宇聞[摘要]:本文在介紹傳統驗證過程及其局限性的基礎上,闡述了針對功能覆蓋率
    發表于 12-23 16:12 ?13次下載

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查是檢查驗證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog
    發表于 04-29 12:35 ?8430次閱讀

    USCIS API的應用程序發熱覆蓋率

    功能覆蓋率是保證驗證過程整體完整性的關鍵指標,然而有很多證據表明覆蓋率模型往往不準確,不完整和具有誤導性。作者這種覆蓋缺陷是非常常見的,并且
    發表于 09-15 10:49 ?6次下載
    USCIS API的應用程序發熱<b class='flag-5'>覆蓋率</b>上

    嵌入式代碼覆蓋率統計方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通?;跍y試過程中已檢查的程序源代碼比例計算得出。代碼覆蓋率
    的頭像 發表于 01-06 15:06 ?3169次閱讀
    嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>統計方法和經驗

    嵌入式代碼覆蓋率如何進行統計有哪些方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通?;跍y試過程中已檢查的程序源代碼比例 計算得出。代碼覆蓋率
    的頭像 發表于 01-09 11:12 ?3082次閱讀
    嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>如何進行統計有哪些方法和經驗

    統計嵌入式代碼覆蓋率的方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中已檢查的程序源代碼比例計算得出。代碼覆蓋率
    的頭像 發表于 03-29 11:58 ?1954次閱讀
    統計嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>的方法和經驗

    怎么才能寫出高覆蓋率的Verilog代碼

    芯片前端工程中,測試驗證的核心理念:以提高覆蓋率為核心。設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression)
    的頭像 發表于 06-01 10:13 ?2631次閱讀

    覆蓋率的Verilog代碼的編寫技巧

    設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉覆蓋率(Toggle),狀態機覆蓋率。本文從ASIC設計的角度上來討論,如何寫出高
    的頭像 發表于 05-26 17:30 ?4286次閱讀

    代碼覆蓋率工具的重要性

    測試覆蓋率是軟件質量的重要指標,也是軟件維護的重要組成部分。它通過提供不同承保項目的數據來幫助評估測試的有效性。這種洞察力允許通過為未經測試的代碼定義新的測試用例來改進測試,從而提高代碼
    的頭像 發表于 12-08 15:13 ?1470次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>工具的重要性

    EDA仿真驗證環境中的激勵、檢查和覆蓋率

    下圖是一個典型的EDA仿真驗證環境,其中主要的組件就是激勵生成、檢查和覆蓋率收集。
    的頭像 發表于 04-15 10:13 ?1720次閱讀

    代碼覆蓋率記錄

    為確保具體的產品(例如,醫療或航空電子市場)質量合格, 通常需要提供語句覆蓋與判定覆蓋認證證明。對于各種嵌 入式系統,規范要求高度優化的代碼需要實時測試。禁止 代碼插裝和運行時篡
    發表于 11-03 11:02 ?0次下載
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>記錄
    主站蜘蛛池模板: 天天干天天弄| 成zzzwww日本免费| 免费番茄社区性色大片| 麻豆三级视频| 国产精品乳摇在线播放| www.久色| 天天色综合6| 91大神在线看| 在线啪| 色爱区综合激情五月综合激情 | 婷婷六月久久综合丁香一二| 色香视频一sxmv首页| 欧美一区二区三区四区视频 | 国产青草| 五月天婷婷网站| 国产香蕉98碰碰久久人人| 日本69式xxx视频| 婷婷激情综合五月天| xx视频在线观看| 国产视频黄色| 亚洲香蕉毛片久久网站老妇人| 色伊人网| 午夜视频在线观看www中文| 狠狠干狠狠干| 色wwww| 色婷婷基地| 国产nv精品你懂得| 欧美1024| 一区二区免费看| 伊人亚洲| 久久男女| 天天操伊人| 久久国产美女免费观看精品| 色婷婷一区二区三区四区成人 | 五月天丁香婷婷综合| 日本一区二区在线免费观看| 久久久鲁| 欧美三级黄色| 四虎影视院| 激情综合网五月激情| 天天操天天操天天操|