色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

形式化驗證最佳實踐之三:實現端到端屬性

ruikundianzi ? 來源:IP與SoC設計 ? 2023-11-24 14:48 ? 次閱讀

在本系列的前兩集中,我們看到了如何為高速緩存建立一個高效的正式測試平臺,如何發現一個真正的漏洞以及如何重現一個死鎖漏洞和找到一個設計修復方法。在這一點上,我們確信不存在其死鎖漏洞。本集將介紹我們如何驗證強大的斷言,怎么準備正式測試平臺以驗證端到端屬性(端到端屬性將根據 DUT 的輸入檢查 DUT 的輸出),以及新的最佳實踐。

基本屬性

實際上,讓我們從一個不是端到端但對高速緩存至關重要的屬性開始。該屬性是我們唯一需要檢查內部細節的屬性。它可以驗證緩存中的命中請求是否只有一種命中方式。如果不遵守這一點,那么在讀取或寫入哪種數據時就會非常模糊。

hit_onehot: assert property(i_ucache.i_hit_stage.is_hit |-> $onehot(i_ucache.i_hit_stage.hit_way);

在緩存中執行查找時,地址會被分割成一個標記(下圖中為 123)、一個索引(1)和一個偏移量。索引用于尋址標記方式。如果該索引的內容有效,而標簽在兩種方式(下圖中的 0 和 2)中相同,這就是 "多重命中",也是一個嚴重的問題。許多潛在的設計錯誤都可以看作是對這一屬性的違反。

5450bd94-8a84-11ee-939d-92fbcf53809c.png

查找標記方式

然而,要摒棄對這一斷言的錯誤失效,需要幾個約束條件。如第一集所述,我們抽象了不同的 RAM 陣列,包括 tagram。這意味著緩存讀取 tagram 的結果是 "隨機 "的。這一點都不好,會導致斷言很快失敗。

引入 CAM 組件

這就是內容可尋址內存(CAM)發揮作用的地方。CAM 是內存的縮小版。它不能容納數千個單元(每個地址一個單元),而只能容納少數幾個選定的地址,但這些地址不受任何限制。這實際上是某種固定長度的關聯數組,其長度遠遠小于實際數組的大小。

下圖左邊顯示的是一個真實的 tagram,右邊顯示的是一個 CAM 抽象。

546d3cb2-8a84-11ee-939d-92fbcf53809c.png

我們可以看到,真實標記圖在索引 2 處包含一個有效標記。但在 CAM 中卻沒有。為了避免因緩存讀取索引 2 而導致錯誤失敗,我們只需限制所有讀?。ê蛯懭耄┒急仨氃?CAM 中存在的索引處進行:

request_in_cam: assume property(request |-> there_exists_one_in_cam(req_index));

這是一個很強的過約束,我們可以通過正確調整 CAM 的大小來緩解這個問題。為此,我們定義了覆蓋屬性,以確定使用了多少個不同的索引。通過對這些屬性的證明,我們可以確定哪些 CAM 大小過大,無法充分利用,因為形式分析會變得過于復雜。我們通常使用 FV 無法充分利用的最小 CAM 大小。

我們使用一個 CAM 實例數組來表示所有標簽陣列。此外,使用 CAM 可以抽象出緩存的初始內容。我們只需讓數組中的值不受限制即可。事實上,并非完全無約束!hit_onehot 斷言仍然會在一個簡單的情況下失效:讀取請求進來后,會以兩種方式命中,因為每個 CAM 的初始狀態允許在同一索引中有兩種方式擁有相同的有效標記。我們需要添加僅適用于復位后第一個周期的約束:

548f2674-8a84-11ee-939d-92fbcf53809c.png

這給形式分析增加了很多復雜性,所以只有在需要時才使用這些約束。不幸的是,我們還沒有完成 hit_onehot 斷言,還需要使用 CAM 內容的新約束:

對于 CAM 中已經存在的地址,高速緩存不得收到 "非高速緩存 "請求。

我們還需要用 CAM 為 dirtyram 陣列建模,并使標簽和 dirty CAM 的內容保持一致(即 dirty 行必須有效)。

CAM 中的地址必須在內存映射寄存器范圍之外。

其中一些約束用于確保 CAM 的初始內容正確無誤。我們還可以使用非常類似的屬性作為斷言來檢查任何循環。只需刪除 "init_cycle "項即可:

549ba50c-8a84-11ee-939d-92fbcf53809c.png

對死循環狀態存有敬意!

正如前面提到的,我們需要限制到達 tagram(實際上是 CAM)的請求,使它們只針對 CAM 中存在的索引。這有一個隱藏的缺點。為了說明這一點,讓我先總結一下什么是 FV 中的 "深度錯誤查找"。

深度漏洞查找

有多種不同的查找方法,所有方法都是 "半正式 "的,這意味著它們并非詳盡無遺。但是它們在查找故障方面非常出色。

除了從復位狀態開始進行形式分析外,主要技術還使用軌跡末端來啟動形式分析。首先根據用戶定義的覆蓋屬性或自動生成的覆蓋屬性生成軌跡。然后,從這一跟蹤的最后一個周期(或最后幾個周期)開始,執行另一項形式分析,找到其他跟蹤,用于啟動其他形式分析等。它們也可能會發現錯誤。這種方法能夠發現需要大量循環才能出現的錯誤,而標準(窮舉)FV 是無法發現這些錯誤的。

下面以窮舉式 FV 為例進行說明:窮舉式 FV 僅從重置狀態開始探索,在探索了所有狀態直至幾個周期后就達到了極限。相反,深度錯誤查找從復位狀態開始探索,但也會探索一些其他狀態(綠色),并且可以深入設計,可能會發現錯誤狀態(紅色),但也會遺漏一些狀態(灰色)。

54ddf9ac-8a84-11ee-939d-92fbcf53809c.png

在深度錯誤查找中,當從跟蹤結束處開始新的形式分析時,跟蹤前綴會被凍結。我們所說的 "死循環狀態 "是指由于某些約束條件在其后適用,因此無法進入下一個狀態。死端狀態越多,深度錯誤查找的效率就越低。

如何消除死鎖狀態

假設高速緩存接收到一個地址 A 的請求。然后,該請求觸發了對 CAM 的訪問,訪問的索引 I 取決于 A。針對 A 的請求本應在幾個周期前就避免。

遵循這個簡單的規則可以大大緩解死鎖狀態問題:盡快對事物進行約束。在本例中,它包括對高速緩存輸入端的地址進行限制,這樣對于可緩存請求,只有在 CAM 中匹配地址的請求才會被發出。

為 tagram 和 dirtyram 添加 CAM 以及相關限制并不容易。只有在調試重要斷言(如 hit_onehot 斷言)失敗時,才能逐步添加抽象和約束。不過,這也是一種投資。你會看到,我們在緩存驗證的其余部分中都使用了它。最后,我們沒有發現任何關于 hit_onehot 的失敗,但即使過了很長時間,也沒有得到任何證明。這并不奇怪,因為這個斷言幾乎驗證了設計的全部控制(在分析覆蓋率時可以看到......在下一集中)。然而,手動添加一些令人討厭的錯誤,很快就會被視為該斷言的失敗,這是一個好兆頭。

關于這次的收獲可以來回顧一下。

我們已經看到了如何大大增強(或復雜化?。┪覀兊恼綔y試平臺。這需要驗證一個基本的控制斷言,之后還需要驗證數據完整性斷言。以下是我們確定的最佳實踐。

54f6f93e-8a84-11ee-939d-92fbcf53809c.png

審核編輯:黃飛

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

    關注

    31

    文章

    5357

    瀏覽量

    120685
  • 內存
    +關注

    關注

    8

    文章

    3037

    瀏覽量

    74148
  • 死鎖
    +關注

    關注

    0

    文章

    25

    瀏覽量

    8081
  • CAM
    CAM
    +關注

    關注

    5

    文章

    200

    瀏覽量

    43046
  • DUT
    DUT
    +關注

    關注

    0

    文章

    189

    瀏覽量

    12425

原文標題:形式化驗證最佳實踐之三:實現端到端屬性

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鑒源論壇 · 觀模丨形式化驗證——以操作系統任務調度算法驗證為案例

    形式化方法為軟件開發過程提供了一種較為透徹的思維方式,該方式可以用于工程化系統設計,并且可以很好地幫助工程人員建立系統抽象模型,從而進行系統精化和驗證
    的頭像 發表于 11-09 11:25 ?513次閱讀
    鑒源論壇 · 觀模丨<b class='flag-5'>形式化驗證</b>——以操作系統任務調度算法<b class='flag-5'>驗證</b>為案例

    芯片開發中形式化驗證的是一個誤區

    今天的形式驗證工具具有更大的容量,并且許多工具能夠在服務器或云上以分布式模式運行。形式驗證的技術和方法也得到了擴展。
    的頭像 發表于 11-29 14:31 ?1966次閱讀

    形式化方法的工程化

    形式化工程方法,是以軟件形式化方法理論為基礎,以系統化的工程方法引導工業界工程人員構建高質量的軟件模型,用以引導后續的代碼編寫和相關測試分析。并選取了工業實際場景中的某操作系統的調度系統的形式化驗證
    的頭像 發表于 03-24 11:01 ?1500次閱讀
    <b class='flag-5'>形式化</b>方法的工程化

    EDA形式化驗證漫談:仿真之外,驗證之內

    “在未來五年內仿真將逐漸被淘汰,僅用于子系統和系統級驗證。與此同時,形式化驗證方法已經開始處理一些系統級任務。隨著技術發展,更多Formal相關的商業標準化會推出。” Intel?fellow
    的頭像 發表于 09-01 09:10 ?1451次閱讀

    ACRN 之InterruptWindow功能正確性形式化驗證

    重磅推薦|ACRN 之InterruptWindow功能正確性形式化驗證
    發表于 06-18 16:04

    化驗證和封裝形式有關系嗎?

    無關,任何形式的封裝,皆需要做老化實驗。蘇試宜特提供客戶量身訂制全方位的一站式服務, 從老化驗證的硬件設計/制造樣品調試/實驗/報告, 蘇試宜特都可以協助客戶完成。
    發表于 09-13 09:46

    基于串空間的協議認證屬性標準化驗證過程

    針對目前串空間理論依賴分析人員主觀判斷、無法使用自動化工具進行驗證的問題,提出了基于串空間理論的協議認證屬性標準化驗證過程。首先為協議消息項定義類型標簽,對串空間及認證測試理論進行擴展;然后通過判斷
    發表于 01-07 12:13 ?0次下載

    VaaS平臺已支持區塊鏈平臺智能合約的形式化驗證

    VaaS形式化驗證平臺,采用了多種形式化驗證方法,具有驗證效率高、自動化程度高、人工參與度低、易于使用、支持多個合約開發語言、可支持大容量區塊鏈底層平臺的形式化驗證等優點。
    發表于 12-14 10:18 ?1104次閱讀

    閃電網絡通過形式化驗證結果表明和比特幣一樣安全

    of the Lightning Network” 的論文認為,如今閃電網絡已經被用于保護至少 8500 萬美元的真實資金,但其代碼規范缺乏形式化驗證是一件 “極其嚴重的事”。
    發表于 09-24 10:29 ?701次閱讀

    安全測試之離線免費版自動形式化驗證工具Beosin—VaaS

    近期,筆者注意一款智能合約自動形式化驗證工具BeosinVaaS推出了離線免費版。所謂離線免費版,相較于之前該公司推出的在線免費版、企業版而言,亮點自然不言而喻。對于開發者來說,離線版的驗證工具將
    發表于 11-23 00:06 ?753次閱讀

    基于定理證明其的有限域及其形式化研究

    方法只能在η固定的特定有限域上進行驗證,而且計算量往往超出計算機的能力。基于交互式定理證眀器的形式化驗證為有限域性質的通用驗提供了可能性,但這方面的工作難度較大。已有研究主要針對有服域的抽象性質進行形式化驗證,但計
    發表于 04-25 11:41 ?1次下載
    基于定理證明其的有限域及其<b class='flag-5'>形式化</b>研究

    虹科PagerDuty通過自動化響應實現最佳實踐

    虹科PagerDuty / 現代化事件響應 通過更快地解決關鍵事件來防止未來可能出現的事件,改善客戶體驗,通過的自動化響應實現最佳
    的頭像 發表于 08-10 15:21 ?1446次閱讀

    從小眾走向普及,形式化驗證對系統級芯片開發有多重要?

    形式化驗證作為一種全新的驗證方法,近年來在芯片開發中快速發展,正逐漸取代傳統的仿真方法。 雖然仿真在系統級驗證方面仍然發揮著重要的作用,但對于單元級的signoff而言,形式化驗證已經
    的頭像 發表于 04-21 19:35 ?678次閱讀
    從小眾走向普及,<b class='flag-5'>形式化驗證</b>對系統級芯片開發有多重要?

    國內首例!空運“”碳中和實踐獲圓滿成功

    在國際物流生態鏈綠色物流領域“”碳中和解決方案的首個落地實例,實現了中興通訊成品從南京智能制造基地西班牙馬德里倉庫的全鏈路碳中和綠色
    的頭像 發表于 07-12 13:15 ?445次閱讀
    國內首例!空運“<b class='flag-5'>端</b><b class='flag-5'>到</b><b class='flag-5'>端</b>”碳中和<b class='flag-5'>實踐</b>獲圓滿成功

    測試用例怎么寫

    測試方法,旨在驗證整個應用程序從前端后端的流程是否能夠按照預期工作。它涉及多個系統組件和接口的交互,確保業務流程的完整性和正確性。 二、編寫
    的頭像 發表于 09-20 10:29 ?499次閱讀
    主站蜘蛛池模板: 亚洲精品无码葡京AV天堂| 拔萝卜在线高清观看视频| 攻把受做得合不拢腿play| 飘雪韩国在线观看免费高清完整版| 337p欧洲亚大胆精品| 秋霞电影院兔费理论观频84mb| 都市妖奇谈有声| 亚洲AV噜噜狠狠网址蜜桃尤物| 精品久久久久久久高清| 最新日本免费一区| 日本妈妈JMZZZZZ| 国精产品一区一区三区有限公司| 亚洲欧洲日产国产 最新| 蜜芽最新域名解析网站| 菲律宾毛片| 一道本无吗d d在线播放| 欧洲日韩av无线在码| 国产精品一区二区AV交换| 国产亚洲精品久久综合阿香蕉 | 免费精品美女久久久久久久久久 | 国产亚洲精品a在线观看app| 野花韩国高清完整版在线观看5| 美女挑战50厘米长的黑人| 国产SUV精品一区二区69| 永久精品免费影院在线观看网站| 日本另类xxxx| 久久精品国产午夜伦班片| 二级毛片免费观看全程| 中国xxxxxxxxx孕交| 玩弄朋友娇妻呻吟交换电影| 老阿姨才是最有V味的直播| 成人永久免费视频| 中文字幕人妻无码系列第三区| 私密按摩师在线观看 百度网盘| 噜妇插内射精品| 国产亚洲精品A久久777777 | ewp绞死vk失禁编| 亚洲欧美自拍明星换脸| 日韩视频中文字幕精品偷拍| 快播最新电影网站| 含羞草传媒在线观看|