使用形式驗(yàn)證技術(shù)作為片上系統(tǒng) (SoC) 設(shè)計的主流技術(shù),終于成為消除驗(yàn)證差距的公認(rèn)方法。最近的一項(xiàng)調(diào)查表明,26% 的芯片設(shè)計項(xiàng)目現(xiàn)在使用基于斷言的正式驗(yàn)證 (ABV)。然而,這種經(jīng)典模擬的替代方法的承諾需要很多年才能開花結(jié)果,而且仍然只有高級驗(yàn)證環(huán)境才能包含它。為什么會這樣?到目前為止,我們可以從它的使用中學(xué)到什么,以便將其提供給整個 SoC 工程社區(qū)?
SoC 塊驗(yàn)證碰壁
自問世以來,SoC 設(shè)備一直是開發(fā)團(tuán)隊的驗(yàn)證噩夢。雖然現(xiàn)在驗(yàn)證完整的 SoC 最好留給仿真和快速原型設(shè)計系統(tǒng)來完成,但即使是這些設(shè)備上的較大塊也已經(jīng)超出了純仿真環(huán)境。
仿真、更快的模擬器、關(guān)鍵測試的驗(yàn)證知識產(chǎn)權(quán) (VIP) 以及通用驗(yàn)證方法 (UVM) 的出現(xiàn)都有助于緩解這種情況。盡管如此,驗(yàn)證要求仍超過了基于模擬的環(huán)境中的可用處理時間。
形式驗(yàn)證通過使用針對特定需求的自動化“應(yīng)用程序”有助于改進(jìn)塊驗(yàn)證,否則需要大量的模擬工作。檢查標(biāo)準(zhǔn)通信協(xié)議的正確操作、確保關(guān)鍵連接和寄存器操作、分析域重置時的正確啟動序列以及許多其他任務(wù)現(xiàn)在都由這些解決方案處理。
然而,我們才剛剛開始挖掘形式驗(yàn)證的真正威力。它的許多使用問題已被消除,使我們處于可能是全新驗(yàn)證時代的最前沿,因?yàn)樵摷夹g(shù)已部署用于核心驗(yàn)證。
形式驗(yàn)證:如果這么好,今天在哪里?
首先,快速回顧一下形式驗(yàn)證技術(shù),為什么它有可能創(chuàng)造這種根本性轉(zhuǎn)變,以及今天是什么阻止了它。
硬件仿真的工作原理是通過一系列有意義的狀態(tài)循環(huán)一個硬件描述語言 (HDL) 代碼塊來演示其操作。此狀態(tài)序列由輸入激勵(設(shè)備輸入上的一組事件的 HDL 描述)驅(qū)動,旨在探索正確的狀態(tài)以識別操作問題。
這種方法引出了一個問題:如果我們知道代碼塊可以進(jìn)入的所有狀態(tài)以及狀態(tài)間轉(zhuǎn)換,那么我們不能簡單地詢問有關(guān)代碼操作的問題以確保其正確嗎?這將避免必須編寫許多行刺激來嘗試使代碼塊進(jìn)入正確的信息承載狀態(tài)。這是形式驗(yàn)證工具使用的方法。
這種基本方法可以轉(zhuǎn)變?yōu)樵S多有用的應(yīng)用程序。例如,如果可以根據(jù)設(shè)計代碼的一個方面和要檢查的驗(yàn)證場景自動創(chuàng)建要問的問題,則可以創(chuàng)建用于驗(yàn)證目的的自動化應(yīng)用程序。這將不需要用戶編寫問題。如果正式工具可以用最少的輸入演示特定的狀態(tài)序列(例如狀態(tài)機(jī)操作),那么設(shè)計工程師就可以理解他或她的代碼如何執(zhí)行,從而揭示可能的錯誤。
當(dāng)工程師自己提出問題時,形式驗(yàn)證的真正威力才得以發(fā)揮。這需要使用斷言編寫問題或?qū)傩?,并在稱為基于斷言的驗(yàn)證或 ABV 的過程中應(yīng)用于設(shè)計。
當(dāng)然,這種高級描述掩蓋了 ABV 的問題,包括存儲這么多信息的工具的容量和性能要求已經(jīng)通過最新技術(shù)得到解決。
兩個問題仍然是 ABV 廣泛使用的障礙:
斷言的創(chuàng)作,通常使用 SystemVerilog 標(biāo)準(zhǔn)語法,可能很復(fù)雜且難以可視化
對驗(yàn)證進(jìn)度或覆蓋率的理解很難與其他驗(yàn)證方法的理解和對比
盡管在這兩個方面都取得了進(jìn)步,但還需要更多的努力來降低學(xué)習(xí)曲線,從而使 ABV 得以普遍擴(kuò)散。
ABV 應(yīng)用程序
在驗(yàn)證過程中應(yīng)用 ABV 有兩種常用方法。首先是檢查特定的極端案例類型的問題,這些問題通常需要花費(fèi)大量精力來構(gòu)建模擬測試平臺來分析問題。第二個是對塊進(jìn)行更一般的檢查,無論是結(jié)合模擬還是獨(dú)立檢查。
形式驗(yàn)證的第一個使用模型很有價值,可以在驗(yàn)證計劃中減少合理的百分比。第二個模型有可能改變特征驗(yàn)證過程,節(jié)省大量時間和資源支出,同時增加發(fā)現(xiàn)設(shè)計中每個錯誤的整體潛力。已經(jīng)有一些行業(yè)部門在第二種模式中廣泛使用 ABV。其中包括汽車和航空電子產(chǎn)品,其中高質(zhì)量和可靠性是一個因素。
在組合仿真-形式驗(yàn)證流程中,如圖 1 所示,通常使用仿真進(jìn)行一般操作分析并“感受”設(shè)計的行為和性能。此外,還有一些功能更適合模擬,例如數(shù)學(xué)數(shù)據(jù)處理或信號處理。然而,形式驗(yàn)證非常適合控制或數(shù)據(jù)傳輸種類的功能,如有限狀態(tài)機(jī)、數(shù)據(jù)通信和協(xié)議檢查。此外,確保某些類型的驗(yàn)證場景,例如安全檢查(例如,某項(xiàng)活動是否會發(fā)生),也是該技術(shù)的最佳選擇。這些代碼和場景示例通常需要很高比例的驗(yàn)證資源。

斷言創(chuàng)作改進(jìn)
與 UVM 推動模擬測試臺創(chuàng)建的分層方法相同,新技術(shù)正在出現(xiàn),將抽象引入斷言創(chuàng)作。這些抽象通過掩蓋斷言細(xì)節(jié)來降低復(fù)雜性,同時允許工程師考慮驗(yàn)證任務(wù)而不是斷言的個別特征。
例如,OneSpin 解決方案的 Operational Assertions 是一個 SystemVerilog 庫,它允許正式測試以類似事務(wù)時序圖的方式表示,與驗(yàn)證工程師廣泛認(rèn)可的高級 UVM 序列不同。Breker Verification Systems 的基于圖形的測試序列,現(xiàn)在由 Accellera Portable Stimulus 標(biāo)準(zhǔn)委員會考慮,是另一種抽象形式,也可以應(yīng)用于斷言創(chuàng)作。
這些技術(shù)在簡化形式測試應(yīng)用的同時,具有提供可識別且更自然的輸入方案的優(yōu)勢,允許工程師通過消除一些形式驗(yàn)證之謎來與正在進(jìn)行的驗(yàn)證過程相關(guān)聯(lián)。
常見的覆蓋模型
簡化斷言只是難題的一部分。該過程的另一端是整理來自各種來源的覆蓋率信息,以了解總體驗(yàn)證進(jìn)度,無論使用何種工具。模擬過程仍然主要集中在一種或另一種代碼覆蓋上,并包含一些功能覆蓋。形式驗(yàn)證覆蓋側(cè)重于斷言(所謂的“斷言覆蓋”),無論它們是否被執(zhí)行,它們是通過還是失敗,或者確實(shí)它們通過一個警告(例如,有界證明,例如“代碼在一定數(shù)量的時鐘周期內(nèi)通過”)。該信息可以反饋給驗(yàn)證計劃系統(tǒng)以提供一些有用的數(shù)據(jù)。
然而,測量正式的覆蓋率,確定由特定斷言測試的實(shí)際代碼,是領(lǐng)先的形式驗(yàn)證供應(yīng)商感興趣的領(lǐng)域。已經(jīng)提出了在精度和所需執(zhí)行資源方面都不同的方案。關(guān)鍵是能夠?qū)⑦@些正式模型與模擬模型進(jìn)行比較,以提供綜合的、有意義的覆蓋率評估。Accellera 統(tǒng)一覆蓋互操作性標(biāo)準(zhǔn) (UCIS) 委員會專注于這一目標(biāo),并提出了可以將兩者進(jìn)行比較的方法。在這方面需要做更多的工作,但很明顯,一些形式驗(yàn)證供應(yīng)商擁有允許計算合理的進(jìn)度度量的解決方案。
模擬風(fēng)格調(diào)試
以對以仿真為中心的工程師有意義的方式調(diào)試形式驗(yàn)證代碼,在很大程度上已被許多形式驗(yàn)證供應(yīng)商解決。大多數(shù)工具可以在斷言失敗的情況下輸出“見證”。也就是說,導(dǎo)致斷言失敗的仿真波形形式的一系列事件。事實(shí)上,包括 OneSpin 在內(nèi)的一些供應(yīng)商可以輸出模擬測試,允許在模擬器中重現(xiàn)故障以供進(jìn)一步研究。
破解主流ABV代碼
很明顯,ABV 的使用開始成為主流。ARM 和 Oracle 都宣布了 ABV 在其環(huán)境中的全部功能,并指出它現(xiàn)在在他們的項(xiàng)目中被大量使用。
解決 Assertion Authoring、Collated Coverage 和 Simulation-centric Debug 這三條腿的問題,并將其與對形式驗(yàn)證擅長的設(shè)計領(lǐng)域和場景的清晰理解相結(jié)合,將推動這種方法成為 SoC 驗(yàn)證的主流。一旦發(fā)生這種情況,將對未來的設(shè)計質(zhì)量和開發(fā)進(jìn)度產(chǎn)生巨大影響。
審核編輯:郭婷
-
ARM
+關(guān)注
關(guān)注
135文章
9499瀏覽量
388731 -
soc
+關(guān)注
關(guān)注
38文章
4514瀏覽量
227625 -
仿真
+關(guān)注
關(guān)注
53文章
4407瀏覽量
137671
發(fā)布評論請先 登錄
在Linux ubuntu上使用riscv-formal工具驗(yàn)證蜂鳥E203 SoC的正確性
新思科技RTL與功能簽核助力低功耗SoC驗(yàn)證
如何驗(yàn)證硬件冗余設(shè)計的有效性?
Veloce Primo補(bǔ)全完整的SoC驗(yàn)證環(huán)境
超大規(guī)模芯片驗(yàn)證:基于AMD VP1902的S8-100原型驗(yàn)證系統(tǒng)實(shí)測性能翻倍
新思科技VSO.ai如何顛覆芯片驗(yàn)證
硬件輔助驗(yàn)證(HAV) 對軟件驗(yàn)證的價值
FPGA EDA軟件的位流驗(yàn)證
概倫電子芯片封裝連接性驗(yàn)證工具PadInspector介紹

形式驗(yàn)證成為SoC模塊驗(yàn)證的主流
評論