精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

路科驗證 ? 來源:EETOP ? 作者:EETOP ? 2022-11-29 14:31 ? 次閱讀

形式驗證如何在 signoff之前發現bug。

形式化驗證在數學上能夠詳盡地證明一個芯片設計符合一組斷言的能力。

形式化技術是當今芯片成功設計、驗證和實現的核心。

形式化驗證的優點在芯片開發中是眾所周知和公認的。但事實并非總是如此;幾十年前,形式技術被廣泛認為是一種需要“魔法”才能在實際項目中成功使用的外來技術。在這段時間里,許多在signoff前發現的真正可怕的bug的成功故事,幫助提高了人們對形式驗證的認識和信心。 用數學方式詳盡地證明芯片設計滿足一組斷言的能力與仿真形成鮮明對比,仿真不能證明沒有bug。如果由于合法的設計方案違反了斷言而不能實現證明,形式化工具就會把這些作為反例提出來,并提供信息以幫助設計者調試它們。用戶提供約束條件,使形式化分析保持在合法范圍內,確保反例是在硅片后使用中可能發生的的真實故障場景。 這一切聽起來很好,那么為什么不是每個人都在運行形式驗證呢?它每天都被數百家芯片和系統公司的數千人成功使用,但一些設計者和驗證工程師仍然不情愿。這可能部分是由于一些持續存在的關于形式化技術的誤區所致,使它看起來太難或太昂貴。這篇文章研究了這些誤解,并解釋了為什么它們不應該成為擔憂的原因。

1. 您需要博士學位才能使用形式驗證。

對于第一代形式化工具來說,這個誤區可以說是正確的,這些工具是為學術目的而設計的。他們需要學習一種晦澀難懂的數學符號來指定斷言和約束。這些工具需要大量的手動指導,所以大多數用戶實際上是專門研究形式驗證技術的教授和博士生。 比如考慮RISC-V弱內存模型的負載值公理。它表示,對于線程i、j和k,如果線程i執行一個STORE操作,接著線程j執行另一個STORE操作,然后線程k執行LOAD操作,那么LOAD從內存中檢索的值將是STORE更新的最新值。形式上,數學上精確的符號可以表示這一點,如圖1所示。然而,一個普通的設計或驗證工程師可能無法理解這些符號,它們對形式方法博士來說是友好的,但對其他人來說則不然。

f3fc4d82-6f9f-11ed-8abf-dac502259ad0.png

1. RISC-V弱內存模型的負載值公理示例。 不過近年來發生了很大變化。斷言和約束通常使用 SystemVerilog 斷言 (SVA) 指定,SVA 是設計人員和驗證工程師已經知道和使用的 SystemVerilog 語言的子集。正式工具變得更加智能和獨立,并且更少依賴用戶專業知識?,F在,許多都為調試反例或幫助實現完整證明提供了可視化和更好的提示。不需要博士學位。 還有一大類形式化應用(App),通常不需要用戶編寫任何斷言。例如,一個時鐘域交叉(CDC)工具可以自動確定芯片中出現交叉的位置,以及必須證明哪些斷言以保證正確的操作。用戶只需要提供一些關于時鐘的信息,其中大部分信息在綜合和布局工具使用的約束文件中已經存在。

2. 形式化驗證很難,因為你需要形式化專用的規范。

規格說明對于其他形式的驗證(如模擬或仿真)是不必要的,這是不正確的SoC 仿真中的固件和驅動程序堆棧已經提供了合適的環境來將激勵驅動到芯片中進行測試;檢查程序依賴于需求來確定在運行測試時需要發生什么。如果沒有規范,驗證工程師就不能為模擬、通用驗證方法(UVM)或功能覆蓋編寫定向測試。 形式化方法對規范明顯更敏感,因為定義不明確的需求的影響更加嚴重。形式化測試(指定為斷言、約束和覆蓋)會產生意想不到的結果,因為形式化工具驅動激勵模式的所有可能組合。如果從需求中捕獲的約束不準確,這可能會導致驅動虛假激勵。 在許多情況下,從規范派生形式驗證需求的行為可能會暴露bug。事實上,一個好的規范是成功的形式化驗證的一個隱藏的條件(圖2)。

f4108dd8-6f9f-11ed-8abf-dac502259ad0.png

2. Better specifications are a hidden bargain for formal verification

3. 您無法將形式化技術擴展到大型設計。

這是前幾代形式技術的另一個誤區;用戶僅限于分析小型設計塊。今天的形式驗證工具具有更大的容量,并且許多工具能夠在服務器或云上以分布式模式運行。形式驗證的技術和方法也得到了擴展。 設計人員和驗證工程師通常會將形式驗證應用于大型復雜子系統,包括端到端地驗證整個多線程 64 位處理器。圖 3 顯示了基于Axiomise抽象的解決方案在具有超過 10 億個門(3.38 億觸發器)的高度參數化片上網絡 (NoC) 中捕獲的bug示例。

f45ef4aa-6f9f-11ed-8abf-dac502259ad0.png

3. 這個功能漏洞,在一個有超過 10億個門的設計中,是 Axiomise 使用 CadenceJasperGold 發現的。 形式化應用程序可能具有更大的容量,因為它們專注于單個任務。例如,CDC分析始終在全芯片上運行,以檢查整個時鐘網絡。

4. 形式驗證需要很長時間才能收斂。

在某些情況下可能會發生這種情況,尤其是當形式測試testbench沒有自然設計為最佳性能時。但是,在大多數情況下,形式屬性收斂得非???。 當然,形式驗證工具的運行時間取決于設計大小、設計復雜性以及斷言和約束的數量。有多種方法可以管理形式驗證流程以保持運行時合理。隨著設計的增長以增量方式運行和在分布式模式下運行都有幫助。

5. 形式化技術只對構建證明有用。

這個誤區也源于學術形式工具,其中的重點完全是實現完整的證明。雖然完整的證明為設計正確性提供了最大的信心,但形式驗證通過發現棘手的極端情況bug(如圖 4 中的示例)來增加價值。

f4743c70-6f9f-11ed-8abf-dac502259ad0.png

4. 端到端RISC-V形式驗證:使用Axiomise formalISA,在本例中,使用西門子的QuestaPropCheck,在30分鐘內完成50%。 圖 5 所示的波形顯示了使用 Axiomise 形式驗證解決方案在 ibex RISC-V 內核中捕獲的bug。僅當調試請求在控制器 FSM 處于解碼狀態時以相同的時鐘周期到達時,此Bug才會出現在設計中。該Bug不會以任何其他狀態顯示。調試到來的精確時間將使這種bug很難通過動態仿真來捕獲,其中激勵的可控性和詳盡的覆蓋范圍將是一個重大挑戰。

f4d9241e-6f9f-11ed-8abf-dac502259ad0.png

5. 由于 ibex RISC-V 內核中的bug而導致 BEQ 指令失敗,僅當FSM 控制器處于解碼狀態時,才會由傳入的調試請求觸發。

6. 如果您以 100% 的覆蓋率運行了模擬仿真,則不需要正式的技術。

如前所述,形式驗證非常適合查找模擬或仿真遺漏的極端情況bug。此外,這個誤區夸大了覆蓋指標的價值。它們在識別尚未執行的設計部分方面非常有價值,在這種情況下,不可能找到所有bug。 但是,如前所述,仿真無法建立詳盡的數學證明。即使是 100% 的功能覆蓋率也不能保證沒有bug逃逸——它只是確認了所選指標所涵蓋的設計部分的實踐。正式分析將考慮所有可能的行為,并且很可能會發現其他bug。

7. 形式化技術只對查找極端情況的bug有用。

許多形式化的用戶對形式化的bug搜索深信不疑,有時甚至使他們的管理層認為形式化只適合于bug搜索。形式化最大的好處之一是確定在設計中不存在與形式化證明的需求有關的bug。 例如,考慮一下RISC-V。許多以前通過仿真驗證的處理器最終都有bug逃逸,然后被形式化抓住。形式化可以毫無疑問地證明,一旦bug被修復,就不存在bug了,因為形式化的屬性證明了設計的所有可達到的狀態(圖6)。

f4f16826-6f9f-11ed-8abf-dac502259ad0.png

6. 這種情況下與JasperGold 一起使用的 Axiomise formISA 應用程序如何用于查找bug并構建架構正確性證明,以便對 64 位 RISC-V 處理器進行端到端驗證。 當然,沒有什么比發現一個深層的、可怕的、需要翻轉芯片的bug更能證明形式化的力量了。一個驗證工程師說 "我們在模擬仿真中永遠不會發現這個問題",很快就會讓人相信形式化。 但是形式驗證可以更快地發現各種bug,包括通常在仿真中發現的bug。出于這個原因,今天的芯片項目通常包含多個區塊,其中一些區塊相當大,無需任何區塊級仿真即可正式驗證。

8. 一旦你應用了形式化技術,你就不需要模擬及仿真了。

通常,每個形式驗證環境都使用約束來描述接口。這些約束需要在仿真中驗證,以檢查它們是否被正確建模和解釋以進行形式驗證。 此外,形式通常在流程的早期應用,以獲得驗證shift-left的最大值。當設計成熟并編碼更多模塊時,某些接口約束可能不再有效,因此必須在仿真中重新驗證它們。 此外,仿真和形式化對于查找與硬件-軟件交互相關的bug很有價值,這些bug僅在軟件在嵌入式或主機處理器上運行時在模擬或仿真中發生。同樣,模擬-數字接口上的bug可能僅在運行混合信號仿真時發現。

9. 形式化技術不提供任何覆蓋指標,因此很難知道您是否做得足夠多。

這顯然是不正確的,因為證明提供了一種形式的覆蓋指標。知道設計中100%的斷言永遠不會被違反,這顯然是一個強有力的聲明。 但是,所有現代工具現在都會生成與形式展示中經過驗證的斷言相關的代碼覆蓋率視圖(圖 7)。它顯示了在形式證明期間激活并運行了哪些設計代碼行。

f5391298-6f9f-11ed-8abf-dac502259ad0.png

7. JasperGold 覆蓋 32 位 cv32e40p 處理器的檢查器覆蓋率應用程序顯示,已通過 RISC-V 的 Axiomise 正式ISA 應用程序驗證。 以前使用形式工具在沒有任何形式檢查器的情況下評估代碼覆蓋率。他們仍然可以提供對無法訪問和死代碼的見解,這可能是由于設計代碼或配置沖突的結果。正式工具還廣泛用于證明UVM環境中無法訪問的代碼覆蓋漏洞可能始終無法訪問,或者可能會在UVM中發現覆蓋差距。 Axiomise 開發的六維覆蓋流程描述了如何從定性和定量上計算形式覆蓋率(圖 8)。

f5553996-6f9f-11ed-8abf-dac502259ad0.png

8. 正規覆蓋的六個維度。

10. 模擬仿真和形式驗證不能合并使用。

如前所述,這兩種核查辦法是相輔相成的。每個人都可以找到對方可能不會找到的某些類型的bug。沒有一個芯片項目運行一個而沒有另一個??梢詫⑵湟暈榧僭O接口假設以保證形式驗證中塊不存在bug,然后在仿真中驗證假設以關閉完整的循環。 此外,在仿真中使用形式化來建立覆蓋差距是結合這兩種技術的一個很好的例子。許多跟蹤覆蓋率結果的項目管理工具從模擬和形式驗證中收集指標,以提供驗證進度的統一視圖。這有助于讓老板相信團隊正在滿足指標驅動驗證的要求。

11. 形式化技術僅對功能驗證有用。

斷言、約束、詳盡的數學分析、證明和反例的一般概念出現在芯片開發領域,而不僅僅是檢查功能正確性。 如今,形式驗證工具被廣泛部署用于驗證架構需求、CDC、連接、電源、死鎖、微架構功能需求、安全性、安保和 X 傳播(圖 9)。

f57049fc-6f9f-11ed-8abf-dac502259ad0.png

9. 形式驗證的普遍使用。 在DAC 2021上展示的最新示例顯示了如何使用形式驗證來查找RISC-V內核中的安全漏洞(機密性,完整性和可用性),并根據漏洞評分對其進行排名。安全性的最大挑戰是處理未知的攻擊場景。這就是形式真正閃耀的地方,因為它引入了各種輸入激勵,試圖做到詳盡無遺,找到設計師通常永遠不會考慮的場景。 部署正式的行為迫使設計師和架構師考慮在架構開發的早期階段利用漏洞,避免下游出現任何的意外。 形式化技術是當今芯片成功設計、驗證和實現的核心。隨著11個誤區的消除,相信您將會毫不猶豫的接受形式驗證技術。

編輯:黃飛

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

    關注

    68

    文章

    19160

    瀏覽量

    229116
  • 觸發器
    +關注

    關注

    14

    文章

    1995

    瀏覽量

    61051
  • 驗證
    +關注

    關注

    0

    文章

    59

    瀏覽量

    15167
  • 芯片開發
    +關注

    關注

    0

    文章

    10

    瀏覽量

    2470
  • RISC-V
    +關注

    關注

    44

    文章

    2228

    瀏覽量

    46026

原文標題:關于形式驗證的11個誤區

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    形式化方法的工程化

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

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

    ? M. V. Achutha Kiran Kumar 隨著Formal技術的發展,業內已經有不少公司有專門的形式化驗證團隊,也培養了批熱愛Formal,愿意來鉆研這門技術的EDA人。 仿真方法學是動態驗證
    的頭像 發表于 09-01 09:10 ?1372次閱讀

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

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

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

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

    軟件形式化開發的水波優化方法

    形式化方法有助于從根本上提高軟件系統的質量與可靠性,但其開發成本往往過于高昂.種折衷的辦法是在軟件系統中選取關鍵性部件進行形式化開發,但目前尚無非常有效的定量選擇方法.將軟件系統
    發表于 01-15 15:47 ?0次下載

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

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

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

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

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

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

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

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

    上??匕瞚Verifier計算機聯鎖系統驗證工具概述

    傳統的聯鎖系統開發、設計和測試,只能從功能上保證其邏輯的正確性,而無法保證其安全需求完全得到滿足。SmartRocket iVerifier作為上??匕矒碛凶灾鲗@夹g的計算機聯鎖系統形式化驗證工具
    的頭像 發表于 08-09 16:37 ?1424次閱讀
    上??匕瞚Verifier計算機聯鎖系統<b class='flag-5'>驗證</b>工具概述

    關于形式驗證的11誤區

    對于第形式化工具來說,這個誤區可以說是正確的,這些工具是為學術目的而設計的。他們需要學習種晦澀難懂的數學符號來指定斷言和約束。這些工具需要大量的手動指導,所以大多數用戶實際上是專
    的頭像 發表于 11-29 14:31 ?799次閱讀

    如何利用形式化驗證提高RISC-V處理器質量?

    RISC-V是模塊化的指令集架構,可以為其開發架構測試套件。它被用于基于仿真的驗證,以
    發表于 04-17 14:54 ?546次閱讀

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

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

    形式驗證及其在芯片工程的應用

    形式驗證不僅僅是芯片領域中的概念。正如文章開頭提到過,形式
    的頭像 發表于 10-20 10:46 ?1039次閱讀