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

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

3天內(nèi)不再提示

關于形式驗證的11個誤區(qū)

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

形式驗證如何在 signoff之前發(fā)現(xiàn)bug。

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

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

形式化驗證的優(yōu)點在芯片開發(fā)中是眾所周知和公認的。但事實并非總是如此;幾十年前,形式技術被廣泛認為是一種需要“魔法”才能在實際項目中成功使用的外來技術。在這段時間里,許多在signoff前發(fā)現(xiàn)的真正可怕的bug的成功故事,幫助提高了人們對形式驗證的認識和信心。 用數(shù)學方式詳盡地證明芯片設計滿足一組斷言的能力與仿真形成鮮明對比,仿真不能證明沒有bug。如果由于合法的設計方案違反了斷言而不能實現(xiàn)證明,形式化工具就會把這些作為反例提出來,并提供信息以幫助設計者調試它們。用戶提供約束條件,使形式化分析保持在合法范圍內(nèi),確保反例是在硅片后使用中可能發(fā)生的的真實故障場景。 這一切聽起來很好,那么為什么不是每個人都在運行形式驗證呢?它每天都被數(shù)百家芯片和系統(tǒng)公司的數(shù)千人成功使用,但一些設計者和驗證工程師仍然不情愿。這可能部分是由于一些持續(xù)存在的關于形式化技術的誤區(qū)所致,使它看起來太難或太昂貴。這篇文章研究了這些誤解,并解釋了為什么它們不應該成為擔憂的原因。1. 您需要博士學位才能使用形式驗證。對于第一代形式化工具來說,這個誤區(qū)可以說是正確的,這些工具是為學術目的而設計的。他們需要學習一種晦澀難懂的數(shù)學符號來指定斷言和約束。這些工具需要大量的手動指導,所以大多數(shù)用戶實際上是專門研究形式驗證技術的教授和博士生。 比如考慮RISC-V弱內(nèi)存模型的負載值公理。它表示,對于線程i、j和k,如果線程i執(zhí)行一個STORE操作,接著線程j執(zhí)行另一個STORE操作,然后線程k執(zhí)行LOAD操作,那么LOAD從內(nèi)存中檢索的值將是STORE更新的最新值。形式上,數(shù)學上精確的符號可以表示這一點,如圖1所示。然而,一個普通的設計或驗證工程師可能無法理解這些符號,它們對形式方法博士來說是友好的,但對其他人來說則不然。

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

1. RISC-V弱內(nèi)存模型的負載值公理示例。 不過近年來發(fā)生了很大變化。斷言和約束通常使用 SystemVerilog 斷言 (SVA) 指定,SVA 是設計人員和驗證工程師已經(jīng)知道和使用的 SystemVerilog 語言的子集。正式工具變得更加智能和獨立,并且更少依賴用戶專業(yè)知識?,F(xiàn)在,許多都為調試反例或幫助實現(xiàn)完整證明提供了可視化和更好的提示。不需要博士學位。 還有一大類形式化應用(App),通常不需要用戶編寫任何斷言。例如,一個時鐘域交叉(CDC)工具可以自動確定芯片中出現(xiàn)交叉的位置,以及必須證明哪些斷言以保證正確的操作。用戶只需要提供一些關于時鐘的信息,其中大部分信息在綜合和布局工具使用的約束文件中已經(jīng)存在。2. 形式化驗證很難,因為你需要形式化專用的規(guī)范。規(guī)格說明對于其他形式的驗證(如模擬或仿真)是不必要的,這是不正確的SoC 仿真中的固件和驅動程序堆棧已經(jīng)提供了合適的環(huán)境來將激勵驅動到芯片中進行測試;檢查程序依賴于需求來確定在運行測試時需要發(fā)生什么。如果沒有規(guī)范,驗證工程師就不能為模擬、通用驗證方法(UVM)或功能覆蓋編寫定向測試。 形式化方法對規(guī)范明顯更敏感,因為定義不明確的需求的影響更加嚴重。形式化測試(指定為斷言、約束和覆蓋)會產(chǎn)生意想不到的結果,因為形式化工具驅動激勵模式的所有可能組合。如果從需求中捕獲的約束不準確,這可能會導致驅動虛假激勵。 在許多情況下,從規(guī)范派生形式驗證需求的行為可能會暴露bug。事實上,一個好的規(guī)范是成功的形式化驗證的一個隱藏的條件(圖2)。

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

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

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

3. 這個功能漏洞,在一個有超過 10億個門的設計中,是 Axiomise 使用 CadenceJasperGold 發(fā)現(xiàn)的。 形式化應用程序可能具有更大的容量,因為它們專注于單個任務。例如,CDC分析始終在全芯片上運行,以檢查整個時鐘網(wǎng)絡。4. 形式驗證需要很長時間才能收斂。在某些情況下可能會發(fā)生這種情況,尤其是當形式測試testbench沒有自然設計為最佳性能時。但是,在大多數(shù)情況下,形式屬性收斂得非??臁?當然,形式驗證工具的運行時間取決于設計大小、設計復雜性以及斷言和約束的數(shù)量。有多種方法可以管理形式驗證流程以保持運行時合理。隨著設計的增長以增量方式運行和在分布式模式下運行都有幫助。5. 形式化技術只對構建證明有用。這個誤區(qū)也源于學術形式工具,其中的重點完全是實現(xiàn)完整的證明。雖然完整的證明為設計正確性提供了最大的信心,但形式驗證通過發(fā)現(xiàn)棘手的極端情況bug(如圖 4 中的示例)來增加價值。

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

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

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

5. 由于 ibex RISC-V 內(nèi)核中的bug而導致 BEQ 指令失敗,僅當FSM 控制器處于解碼狀態(tài)時,才會由傳入的調試請求觸發(fā)。6. 如果您以 100% 的覆蓋率運行了模擬仿真,則不需要正式的技術。如前所述,形式驗證非常適合查找模擬或仿真遺漏的極端情況bug。此外,這個誤區(qū)夸大了覆蓋指標的價值。它們在識別尚未執(zhí)行的設計部分方面非常有價值,在這種情況下,不可能找到所有bug。 但是,如前所述,仿真無法建立詳盡的數(shù)學證明。即使是 100% 的功能覆蓋率也不能保證沒有bug逃逸——它只是確認了所選指標所涵蓋的設計部分的實踐。正式分析將考慮所有可能的行為,并且很可能會發(fā)現(xiàn)其他bug。7. 形式化技術只對查找極端情況的bug有用。許多形式化的用戶對形式化的bug搜索深信不疑,有時甚至使他們的管理層認為形式化只適合于bug搜索。形式化最大的好處之一是確定在設計中不存在與形式化證明的需求有關的bug。 例如,考慮一下RISC-V。許多以前通過仿真驗證的處理器最終都有bug逃逸,然后被形式化抓住。形式化可以毫無疑問地證明,一旦bug被修復,就不存在bug了,因為形式化的屬性證明了設計的所有可達到的狀態(tài)(圖6)。

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

6. 這種情況下與JasperGold 一起使用的 Axiomise formISA 應用程序如何用于查找bug并構建架構正確性證明,以便對 64 位 RISC-V 處理器進行端到端驗證。 當然,沒有什么比發(fā)現(xiàn)一個深層的、可怕的、需要翻轉芯片的bug更能證明形式化的力量了。一個驗證工程師說 "我們在模擬仿真中永遠不會發(fā)現(xiàn)這個問題",很快就會讓人相信形式化。 但是形式驗證可以更快地發(fā)現(xiàn)各種bug,包括通常在仿真中發(fā)現(xiàn)的bug。出于這個原因,今天的芯片項目通常包含多個區(qū)塊,其中一些區(qū)塊相當大,無需任何區(qū)塊級仿真即可正式驗證。8. 一旦你應用了形式化技術,你就不需要模擬及仿真了。通常,每個形式驗證環(huán)境都使用約束來描述接口。這些約束需要在仿真中驗證,以檢查它們是否被正確建模和解釋以進行形式驗證。 此外,形式通常在流程的早期應用,以獲得驗證shift-left的最大值。當設計成熟并編碼更多模塊時,某些接口約束可能不再有效,因此必須在仿真中重新驗證它們。 此外,仿真和形式化對于查找與硬件-軟件交互相關的bug很有價值,這些bug僅在軟件在嵌入式或主機處理器上運行時在模擬或仿真中發(fā)生。同樣,模擬-數(shù)字接口上的bug可能僅在運行混合信號仿真時發(fā)現(xiàn)。9. 形式化技術不提供任何覆蓋指標,因此很難知道您是否做得足夠多。這顯然是不正確的,因為證明提供了一種形式的覆蓋指標。知道設計中100%的斷言永遠不會被違反,這顯然是一個強有力的聲明。 但是,所有現(xiàn)代工具現(xiàn)在都會生成與形式展示中經(jīng)過驗證的斷言相關的代碼覆蓋率視圖(圖 7)。它顯示了在形式證明期間激活并運行了哪些設計代碼行。

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

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

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

8. 正規(guī)覆蓋的六個維度。10. 模擬仿真和形式驗證不能合并使用。如前所述,這兩種核查辦法是相輔相成的。每個人都可以找到對方可能不會找到的某些類型的bug。沒有一個芯片項目運行一個而沒有另一個??梢詫⑵湟暈榧僭O接口假設以保證形式驗證中塊不存在bug,然后在仿真中驗證假設以關閉完整的循環(huán)。 此外,在仿真中使用形式化來建立覆蓋差距是結合這兩種技術的一個很好的例子。許多跟蹤覆蓋率結果的項目管理工具從模擬和形式驗證中收集指標,以提供驗證進度的統(tǒng)一視圖。這有助于讓老板相信團隊正在滿足指標驅動驗證的要求。11. 形式化技術僅對功能驗證有用。斷言、約束、詳盡的數(shù)學分析、證明和反例的一般概念出現(xiàn)在芯片開發(fā)領域,而不僅僅是檢查功能正確性。 如今,形式驗證工具被廣泛部署用于驗證架構需求、CDC、連接、電源、死鎖、微架構功能需求、安全性、安保和 X 傳播(圖 9)。

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

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

審核編輯 :李倩

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

    關注

    452

    文章

    50025

    瀏覽量

    419765
  • RISC-V
    +關注

    關注

    44

    文章

    2181

    瀏覽量

    45904
收藏 人收藏

    評論

    相關推薦

    形式驗證如何加速超大規(guī)模芯片設計?

    引言隨著集成電路規(guī)模的不斷擴大,從設計到流片(Tape-out)的全流程中,驗證環(huán)節(jié)的核心地位日益凸顯。有效的驗證不僅是設計完美的基石,更是確保電路在實際應用中穩(wěn)定運行的保障。尤為關鍵的是,邏輯或
    的頭像 發(fā)表于 08-30 12:45 ?434次閱讀
    <b class='flag-5'>形式</b><b class='flag-5'>驗證</b>如何加速超大規(guī)模芯片設計?

    關于工控變頻器節(jié)電節(jié)能的誤區(qū)

    工控變頻器的主要功能是調整電機的運行速度和扭矩,以適應不同的生產(chǎn)需求。它通過改變電機供電的頻率和電壓來實現(xiàn)這一目的。然而,普遍存在一誤解,認為變頻器本身直接產(chǎn)生節(jié)能效果。實際上,變頻器的節(jié)能效果
    的頭像 發(fā)表于 08-28 15:44 ?210次閱讀

    關于云計算的3誤解

    雖然云計算應用已經(jīng)從概念成為現(xiàn)實并且有相當長時間了,但是仍然有一些人對云計算持有誤解。以下是關于云計算的3誤區(qū),是時候來認清事實讓我們來真正認識云計算了。 誤區(qū)1:私有云天然安全 許
    的頭像 發(fā)表于 07-26 16:33 ?214次閱讀

    必看!光伏并網(wǎng)逆變器的3典型認識誤區(qū)

    必看!光伏并網(wǎng)逆變器的3典型認識誤區(qū)-古瑞瓦特 逆變器作為光伏系統(tǒng)的中樞控制器,對整個系統(tǒng)的運行和產(chǎn)出起到關鍵作用。當系統(tǒng)出現(xiàn)待機、停機、告警、故障、發(fā)電量未達預期、數(shù)據(jù)監(jiān)控中斷等問題時,運維人員
    的頭像 發(fā)表于 07-11 16:32 ?443次閱讀
    必看!光伏并網(wǎng)逆變器的3<b class='flag-5'>個</b>典型認識<b class='flag-5'>誤區(qū)</b>

    負載電容的誤區(qū): 如何選擇合適的電容器?

    在振蕩電路設計中,石英晶體負載電容的正確理解和應用對于保證振蕩器性能至關重要。然而,這一概念常常因為誤解而導致設計上的錯誤。我們首先澄清一些常見的誤區(qū),并提供選擇合適電容器的方法。誤區(qū)澄清:1.
    發(fā)表于 06-05 11:41

    激光切管機購買注意事項--必看的常見誤區(qū)

    在考慮購買激光切管機時,您應該先確定自己要加工的管材的尺寸、壁厚以及工藝需求,避免一些常見的誤區(qū)是至關重要的。以下是一些關于激光切管機購買的必看誤區(qū)誤區(qū)一:以為激光切管機只能切割薄材
    的頭像 發(fā)表于 05-23 11:05 ?206次閱讀
    激光切管機購買注意事項--必看的常見<b class='flag-5'>誤區(qū)</b>

    常見的BGA混裝工藝誤區(qū)分享

    BGA混裝工藝中,存在關于鉛相擴散不完整的誤區(qū)。隨著全球無鉛工藝的普及,大多數(shù)BGA器件已采用無鉛工藝,但由于特殊需求部分企業(yè)仍使用有鉛制程進行焊接。對于不涉及BGA器件的產(chǎn)品,其工藝可以完全按照有鉛工藝進行操作。只有含有無鉛BGA的有鉛制程才屬于真正的混裝工藝。對此,業(yè)
    的頭像 發(fā)表于 04-28 09:50 ?2.3w次閱讀
    常見的BGA混裝工藝<b class='flag-5'>誤區(qū)</b>分享

    如何避免工業(yè)級路由器使用誤區(qū),提高網(wǎng)絡效率

    工業(yè)級路由器在工業(yè)自動化、物聯(lián)網(wǎng)等領域發(fā)揮著至關重要的作用。然而,由于其應用環(huán)境的特殊性,使用過程中容易出現(xiàn)一些誤區(qū),導致網(wǎng)絡效率低下。本文將針對這些誤區(qū),提出相應的解決方案,幫助讀者避免使用誤區(qū),提高網(wǎng)絡效率。
    的頭像 發(fā)表于 04-12 14:15 ?230次閱讀

    貼片電容使用的四誤區(qū)

    貼片電容是一種常用的電子元件,具有優(yōu)異的性能和可靠性,在各類電路中得到廣泛應用。貼片電容在電子電路中起著至關重要的作用,但在使用過程中,存在一些常見的誤區(qū)。以下是四主要的誤區(qū)誤區(qū)
    的頭像 發(fā)表于 04-12 11:32 ?356次閱讀
    貼片電容使用的四<b class='flag-5'>個</b><b class='flag-5'>誤區(qū)</b>

    工控變頻器在節(jié)電節(jié)能中的誤區(qū)

    工控變頻器(變頻調速器)是一種用于調節(jié)交流電動機運行速度和輸出功率的電子設備。通過改變電機輸入電壓的頻率和幅值,變頻器可以精確控制電動機的速度,從而實現(xiàn)節(jié)能效果。然而,在實際應用中,關于變頻器
    的頭像 發(fā)表于 02-16 17:23 ?1544次閱讀

    低功耗設計的幾個誤區(qū)分享

    FPGA功耗的根本方法。 誤區(qū)五:這些小芯片的功耗都很低,不用考慮 點 評:對于內(nèi)部不太復雜的芯片功耗是很難確定的,它主要由引腳上的電流確定,一ABT16244,沒有負載的話耗電大概不到1毫安
    發(fā)表于 01-09 08:04

    MES需求六大常見誤區(qū)

    電子發(fā)燒友網(wǎng)站提供《MES需求六大常見誤區(qū).docx》資料免費下載
    發(fā)表于 12-21 11:08 ?0次下載

    示波器探頭的使用誤區(qū)

    示波器探頭是電子測試中常用的工具,但在使用過程中存在一些常見誤區(qū)。小編將詳細介紹這些誤區(qū),幫助您更好地理解和使用示波器探頭。 ? ? ? ? ? 誤區(qū)一:探頭匹配問題 許多示波器探頭在連接
    的頭像 發(fā)表于 12-18 14:49 ?462次閱讀
    示波器探頭的使用<b class='flag-5'>誤區(qū)</b>

    模擬設計中噪聲分析的11誤區(qū)

    電子發(fā)燒友網(wǎng)站提供《模擬設計中噪聲分析的11誤區(qū).pdf》資料免費下載
    發(fā)表于 11-28 10:25 ?0次下載
    模擬設計中噪聲分析的<b class='flag-5'>11</b><b class='flag-5'>個</b><b class='flag-5'>誤區(qū)</b>

    關于圖像傳感器圖像質量的四大誤區(qū)!你踩過幾個坑?

    關于圖像傳感器圖像質量的四大誤區(qū)!你踩過幾個坑?
    的頭像 發(fā)表于 11-27 16:56 ?395次閱讀
    <b class='flag-5'>關于</b>圖像傳感器圖像質量的四大<b class='flag-5'>誤區(qū)</b>!你踩過幾個坑?