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

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

3天內不再提示

IP開發時如何考慮復用覆蓋率

西西 ? 2018-02-18 12:08 ? 次閱讀

如何在開發IP的同時去鞏固集成和復用覆蓋率?IP的某些功能和性能是可以配置的,需要考慮的是IP被各種合理配置后的工作是否都能夠正常,將功能覆蓋率先整理為層次化的抽象功能覆蓋率模型,稱之為cover model。

這是一篇關于IP開發時如何考慮復用覆蓋率的論文。就硬件設計IP而言,我們無非是在實現IP,或者集成IP。就目前情形來看,IP的實現越來越多被集中在大型公司。一方面是由于他們有更多的經驗來保證可配置化的IP可以滿足各種用戶需求,另外一方面是由于他們的客戶基礎深厚,同時高質量的IP研發成本和大量的silicon-proven可以形成良好的業務發展。目前多數公司在重要IP上面都會采用商業IP,這來自于多方面的考慮。作為Verifier可能會有更多的機會去一家SoC公司,從事于定制模塊、核心知識模塊或者IP模塊的驗證。SoC中至少有三分之一以上的工作都屬于IP模塊的集成驗證,SoC verifier看待IP更多的角度是從集成驗證出發的。

這次摘錄的這篇論文的視角則是從IP開發的角度出發的。正好借這個機會,小編可以有空梳理一下IP在設計和驗證兩方面開發的流程。由于文章中以PCIe為例,我接下來關于IP開發流程和集成驗證流程的敘述也以PCIe為例吧。

對于一個成熟的PCIe IP而言,一家商業IP公司可能出售它的硬件設計IP,也可能出售它的驗證IP,或者兩者都出售。例如Synopsys就同時出售它的設計IP和驗證IP,也就是說這家大型的IP百貨公司在出售給你設計方案的同時,還會建議你購買他家的驗證方案。無論是設計還是驗證,你都首先需要一個PCIe功能模式的配置。這個配置是結合SoC的架構來制定的,從前期架構研究中會選擇合適的功能、性能以及功耗等參數。Designer和verifier將都使用這個配置文件來生成定制化的設計IP或者驗證IP。那么可以將配對的設計IP和驗證IP進行測試環境搭建,繼而進行IP級或者SoC級的驗證工作。但是在驗證的過程中,我們如何完成在IP級和SoC級的驗證量化呢?這肯定離不開覆蓋率,尤其是功能覆蓋率。但是往往功能覆蓋率不會伴隨著設計IP或者驗證IP一并生成,這是為什么?其實還是跟高度可配置化的IP本身有關。在這篇論文中就PCIe設計IP為例,講述了針對可配置化IP定義功能覆蓋率的困難之處。

由于IP的某些功能和性能是可以配置的,比如有一些功能可能在配置之后就會被禁止(靜態的),也有一些功能可能通過仿真時的寄存器配置被禁止(動態的),那么這些不同的配置就對定義一種通用的功能覆蓋率模型提出了挑戰。從文章來看,PCIe IP的開發者在驗證時已經很苦惱,因為他們面臨的挑戰要遠大于SoC verifier,前者需要考慮所有的配置可能,而后者只需要選擇有限的配置進行集成驗證?;蛘哌@樣說,前者需要考慮的是IP被各種合理配置后的工作是否都能夠正常,而后者需要考慮的是IP在被SoC集成后是否能夠良好地融入系統。

IP集成的一個問題是,IP提供者不知道IP在被各種客戶集成時,集成方式是否正確;而IP使用者也幾乎對于生成的IP其自身的可靠性、在IP系統級和SoC級的測試覆蓋情況抱有模糊的認識。擋在雙方中間的障礙來自于他們缺少一個清晰的數據來表明對方的測試完成狀況。從這篇文章來看,如果IP提供商可以在生成定制IP的同時也能夠生成定制的功能覆蓋率,那么這樣的一份覆蓋率無論對于IP開發者在驗證IP自身,或者是IP集成者在驗證IP的集成時,都將產生指導性的幫助。

那么是否存在這樣一份伴隨著IP配置文件而可以定制生成的功能覆蓋率呢?這篇文章給出了一種解決方案。從這篇文章最后的結論部分來看,可配置化的功能覆蓋率將伴對應著每一種配置化的IP,而在測試這么多的IP配置時,開發者可以利用這些功能覆蓋率來衡量IP的驗證完備情況。如果這樣一份功能覆蓋率也能夠伴隨著IP一同交給SoC集成方,在IP集成時就可以綜合IP級和SoC級的驗證情況來收集反饋在這份功能覆蓋率模型上。這樣如果IP提供方和集成方都基于同一個功能覆蓋率模型進行交流,那么也將更容易一起回顧IP的功能測試和集成情況。

接下來小編概括這篇論文是如何實現高度可配置化IP的功能覆蓋率定制情況的。

將功能覆蓋率先整理為層次化的抽象功能覆蓋率模型,稱之為cover model。

抽象覆蓋率模型由多個block model構成,這些block model所代表的某一項重要的功能最終合并起來,就可以構成整體的功能情況,即cover model。

對于block model各自的樹狀結構,其每一個樹狀末端構成了一個覆蓋變量,cover variable。但是這些覆蓋變量并不指向具體的信號,而仍然從抽象上來描述它所要測試的功能、關系的值域。

利用cover variable,可以將它們放置,或者交叉生成新的覆蓋率,稱之為cover group。

這些樹狀的覆蓋率模型包含的底層cover variable和cover group被收入到Excel表格中。伴隨它們的,還有配置化變量。配置化變量之所以重要是因為不同的設定可能決定了某些cover variable的值域范圍,或者是否存在某些cover variable。

層次化放置的Excel表格被Perl腳本讀取,并且產生了層次化的SystemVerilog covergroup。這些covergroup也伴隨著block model,與各個功能一一對應,構成了層次關系,最終作為一個定制化產生的cover model。

這篇論文同我現在做的一些在SoC級定義功能覆蓋率的方式不謀而合。首先功能覆蓋率在沉淀之前,需要有抽象的功能定義,那么不同的功能將可以作為獨立的block model。復雜的功能可以進一步拆解為child block model,最終拆解到不能拆分為之,那么不能拆分的點就是cover variable。也許有的公司習慣于將功能測試點以平鋪的方式(plain text)展開,這對應的也將是平鋪的SV cover group定義;如果你定義的功能點是抽絲剝繭,從Excel表格開始就得到了腳本處理的保障,那么你可以一開始將設計拆分為幾大功能,接下來利用層次化方法定義子一級的block model。

樹狀的覆蓋率模型與平鋪的覆蓋率模型相比有什么優勢呢?它容易做測試回顧(review)和覆蓋率分析,而對于這篇論文中的IP驗證,樹狀結構也有利于一些變量的層次化傳遞和腳本的針對性處理。從復用角度來看,如果實現了Excel到SV cover group的腳本化流程,那么樹狀結構的功能點拆分也有利于日后的維護,例如從樹狀結構中刪除某一個節點及其以下的所有子節點(即刪除某一項功能),又例如將IP級的覆蓋率樹狀結構嫁接到SoC系統的覆蓋率樹狀結構中,使其成為其中的某一個節點,都是可行的方法。

結語

Excel到SV cover group的自動化是一個合適的方向,但在實現過程中,還需要理清,如何將抽象的功能點測試具象到各個cover group。比如功能點測試之間可能具有包含的關系,比如某些功能點測試可能仍然過于抽象需要進一步細分,這篇論文利用腳本結合Excel中的IP配置變量來生成了層次化的功能覆蓋率模型,是一個不錯的嘗試。這個覆蓋率如果可以從IP級貫穿到SoC級,那么將能夠更好地衡量IP集成測試的情況。

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

    關注

    0

    文章

    1

    瀏覽量

    7588
  • pcle
    +關注

    關注

    0

    文章

    18

    瀏覽量

    5688
收藏 人收藏

    評論

    相關推薦

    怎么用Vivado做覆蓋率分析

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

    請問如何獲得RM48芯片的失效率λ?故障覆蓋率?

    本帖最后由 一只耳朵怪 于 2018-5-22 14:58 編輯 最近有RM48芯片做的產品,需要對它的可靠性進行評估,但是如何獲得它的失效率λ故障覆蓋率呢?只知道這個芯片滿足SIL3等級,SIL3PFD 10-4~10-3PFH10-8~10-7
    發表于 05-22 07:30

    請問依靠RM48系列MCU的自身資源是否可以實現對時鐘的高覆蓋率診斷?

    本帖最后由 一只耳朵怪 于 2018-5-22 16:25 編輯 MCU型號:RM48目標功能:實現對時鐘的高覆蓋率診斷背景描述:1. 根據IEC61508-2:2010對時鐘高覆蓋率診斷
    發表于 05-22 01:58

    為什么覆蓋率分析師沒有證明電阻器已經過測試?

    您好,我對Coverage Analyst有疑問。我使用的是Coverage Analyst版本5.21p。覆蓋率分析師完成覆蓋率報告確定(html文件),但我對報告中顯示的結果有疑問: - 覆蓋率
    發表于 01-07 16:06

    如何改善5G覆蓋率?

    改善5G覆蓋率的方法
    發表于 12-15 07:52

    如何增加板級互連的故障診斷覆蓋率?

    在邊界掃描機制引入電路設計的前提下,如何增加板級互連的故障診斷覆蓋率?
    發表于 04-26 06:37

    如何提高DFT設計測試覆蓋率?

    提高DFT設計測試覆蓋率的有效方法是什么
    發表于 05-07 06:37

    怎么提高非隨機圖形設計的故障覆蓋率?

    怎么提高非隨機圖形設計的故障覆蓋率?為LBIST設計提高故障檢測能力的技術是什么?
    發表于 05-08 07:11

    VCO中的子帶覆蓋率是否跟開關電容的取值有關?

    仿真VCO時候,開關電容陣列中開關電容的值取30fF,子帶呈現不規律變化。當取100fF時,子帶才呈現比特位控制那樣規律變化,但這樣子帶覆蓋率會存在問題。求遇到過同樣問題的大神解答下!感謝!
    發表于 06-25 06:19

    嵌入式仿真平臺SkyEye的覆蓋率分析相關資料下載

    代碼執娜行覆蓋情況的功能,來檢測代碼中未執行覆蓋情況。在覆蓋率分析時需要分析嵌入式軟件的指令覆蓋率、指令函數覆蓋率、指令函數分支
    發表于 12-17 07:27

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

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

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

    中提到了100個功能特性,驗證工程師在開發覆蓋率模型的時候由于理解不到位或者遺漏,導致只針對其中90個特性編寫了覆蓋點,那么最后就算達成100%的功能覆蓋率,也還是有10個功能特性沒有
    發表于 09-14 11:57

    Systemverilog覆蓋率的合并和計算方式

      在systemverilog中,對于一個covergroup來說,可能會有多個instance,我們可能需要對這些instance覆蓋率進行操作?! ≈槐4鎐overgroup type的覆蓋率
    發表于 03-21 14:24

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查是檢查驗證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog代碼描述的功能有多少在仿真過程中被驗證過了,代碼覆蓋率分析包括以下分析內容。
    發表于 04-29 12:35 ?8041次閱讀

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

    設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉覆蓋率(Toggle),狀態機覆蓋率。本文從ASIC設計的角度上來討論,如何寫出高
    的頭像 發表于 05-26 17:30 ?3817次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>