一:形式驗(yàn)證的基本概念
-> 廣義上的形式驗(yàn)證?
形式驗(yàn)證不僅僅是芯片領(lǐng)域中的一個(gè)概念。正如文章開頭提到過,形式驗(yàn)證強(qiáng)調(diào)使用嚴(yán)格的數(shù)學(xué)推理和形式化技術(shù),以確保系統(tǒng)的行為是否符合預(yù)期的性質(zhì)和規(guī)格。所以說只要是可以通過量化方式構(gòu)建數(shù)學(xué)模型的系統(tǒng),都可以使用形式驗(yàn)證來check其功能性以及其他可量化特性。比如:
- 軟件工程:就拿區(qū)塊鏈舉個(gè)例子。形式驗(yàn)證不僅適用于智能合約本身,還適用于與智能合同交互的去中心化應(yīng)用。這可以幫助確保整個(gè)應(yīng)用的安全性和正確性。
- 金融領(lǐng)域:金融交易的驗(yàn)證是非常重要的,特別是在高頻交易和算法交易領(lǐng)域。形式驗(yàn)證可以確保交易的正確性和合規(guī)性,防止錯(cuò)誤交易和潛在的風(fēng)險(xiǎn)。
-> 芯片工程里的形式驗(yàn)證?
這里拿計(jì)數(shù)器舉一個(gè)簡單的形式驗(yàn)證示例。請(qǐng)注意,這只是一個(gè)簡化的示例,實(shí)際的形式驗(yàn)證可能涉及更復(fù)雜的設(shè)計(jì)和性質(zhì)。
假設(shè)有一個(gè)4位的計(jì)數(shù)器電路,可以從0計(jì)數(shù)到15。我們想要驗(yàn)證以下性質(zhì):當(dāng)計(jì)數(shù)器的值達(dá)到最大值15時(shí),下一個(gè)計(jì)數(shù)值應(yīng)該是0。
設(shè)計(jì):計(jì)數(shù)器電路有一個(gè)4位的計(jì)數(shù)器寄存器,可以遞增。當(dāng)計(jì)數(shù)器值達(dá)到15時(shí),下一個(gè)時(shí)鐘周期應(yīng)該將計(jì)數(shù)器重置為0。
形式驗(yàn)證屬性:我們使用SystemVerilog的屬性規(guī)約 (SVA) 來表達(dá)這個(gè)性質(zhì)。(一般形式驗(yàn)證的case都使用SVA來編寫)以下是一個(gè)簡化的屬性規(guī)約示例:
property reset_at_max;
@(posedge clk) disable iff (!rst_n)
(count == 4'b1111) |= > (next_count == 4'b0000);
endproperty
assert property (reset_at_max);
在這個(gè)屬性規(guī)約中,我們定義了一個(gè)屬性 reset_at_max ,它表達(dá)了當(dāng)計(jì)數(shù)器值為15時(shí),下一個(gè)計(jì)數(shù)值應(yīng)為0。這個(gè)屬性在時(shí)鐘上升沿觸發(fā)時(shí)進(jìn)行檢查。如果屬性不滿足,將會(huì)產(chǎn)生一個(gè)驗(yàn)證錯(cuò)誤。
在這個(gè)示例中,使用仿真進(jìn)行驗(yàn)證可能需要執(zhí)行多個(gè)時(shí)鐘周期來驗(yàn)證所有可能的計(jì)數(shù)序列。但是,使用形式驗(yàn)證可以直接進(jìn)行數(shù)學(xué)推理,驗(yàn)證屬性在所有可能的情況下是否成立.
除此之外,與基于仿真的驗(yàn)證不同,基于仿真的驗(yàn)證會(huì)使用各種輸入情景來測(cè)試設(shè)計(jì)以確保其正確行為,形式驗(yàn)證涉及數(shù)學(xué)分析以驗(yàn)證設(shè)計(jì)的屬性。這些屬性可以包括功能正確性、安全性、安全性以及某些類型錯(cuò)誤的缺失(例如,競(jìng)態(tài)條件、死鎖等)。
二:形式驗(yàn)證的優(yōu)勢(shì)
從上述的例子看來,那么形式驗(yàn)證要優(yōu)于基于仿真的驗(yàn)證?看似高性能的形式驗(yàn)證,要將它發(fā)揮得淋漓盡致也是需要代價(jià)的。
其實(shí)不然,形式驗(yàn)證也面臨著挑戰(zhàn)。它可能計(jì)算成本高昂,需要專門的專業(yè)知識(shí)來制定屬性并設(shè)置驗(yàn)證過程。通常與其他驗(yàn)證技術(shù)(如仿真和測(cè)試)結(jié)合使用,以提供全面的驗(yàn)證策略。形式驗(yàn)證和基于仿真的驗(yàn)證各有其優(yōu)勢(shì)和局限性,沒有絕對(duì)的優(yōu)劣之分。選擇哪種驗(yàn)證方法取決于具體的設(shè)計(jì)需求、時(shí)間和資源限制以及設(shè)計(jì)的復(fù)雜性。
形式驗(yàn)證VS動(dòng)態(tài)仿真
->形式驗(yàn)證的特點(diǎn):
- 高度可靠性 :形式驗(yàn)證提供了數(shù)學(xué)證明的可靠性,如果設(shè)計(jì)通過了形式驗(yàn)證,那么可以有很大的信心認(rèn)為設(shè)計(jì)是正確的。
- 全面性 :形式驗(yàn)證可以覆蓋所有可能的狀態(tài),從而捕獲設(shè)計(jì)中的所有潛在錯(cuò)誤,包括一些難以通過仿真檢測(cè)到的問題。
- 對(duì)于復(fù)雜設(shè)計(jì) :對(duì)于復(fù)雜的設(shè)計(jì),特別是關(guān)鍵性能的設(shè)計(jì),形式驗(yàn)證可以幫助發(fā)現(xiàn)隱藏的問題和時(shí)序錯(cuò)誤。
->動(dòng)態(tài)仿真驗(yàn)證的特點(diǎn):
- 易于實(shí)施 :基于仿真的驗(yàn)證通常比形式驗(yàn)證更容易實(shí)施,可以快速驗(yàn)證設(shè)計(jì)的基本功能和常見情況。
- 資源效率高 :在一些情況下,形式驗(yàn)證可能需要更多的計(jì)算資源和時(shí)間,而基于仿真的驗(yàn)證可能更具資源效率。
- 快速迭代 :基于仿真的驗(yàn)證允許設(shè)計(jì)團(tuán)隊(duì)迅速進(jìn)行修改和驗(yàn)證,特別適用于快速迭代的設(shè)計(jì)流程。
可見,trade-off的概念在芯片領(lǐng)域里面處處可見。魚與熊掌不可得兼。
三:在芯片驗(yàn)證中實(shí)現(xiàn)形式驗(yàn)證
形式驗(yàn)證主要由以下幾個(gè)部分組成:
- 性質(zhì)(Properties) :這些是描述設(shè)計(jì)所需屬性和規(guī)格的語句,例如時(shí)序關(guān)系、狀態(tài)轉(zhuǎn)換、約束等。常用的
- 規(guī)約語言 :通常使用形式規(guī)約語言,如 SystemVerilog Assertions(SVA)、Property Specification Language(PSL)等,來編寫性質(zhì)和約束。
- 定理證明器(Theorem Provers) :這些工具用于推理和證明性質(zhì)是否成立。它們基于形式化邏輯和推理規(guī)則來驗(yàn)證性質(zhì)。
- 模型檢查器(Model Checkers) :這些工具用于窮舉系統(tǒng)狀態(tài)空間,檢查是否存在滿足性質(zhì)的狀態(tài)序列。
在電子設(shè)計(jì)自動(dòng)化 (EDA) 工具中,許多主要的形式驗(yàn)證工具已經(jīng)集成到綜合工具鏈中,以幫助硬件工程師驗(yàn)證他們的設(shè)計(jì)。這些工具通常基于硬件描述語言 (如Verilog或VHDL) 。
比如:
1. Cadence JasperGold :JasperGold是一個(gè)集成式形式驗(yàn)證平臺(tái),支持屬性規(guī)約和模型檢查,廣泛應(yīng)用于驗(yàn)證硬件設(shè)計(jì)。
2. Synopsys VC Formal :VC Formal是Synopsys的形式驗(yàn)證工具,用于驗(yàn)證功能、時(shí)序和系統(tǒng)級(jí)性質(zhì)。
四:形式驗(yàn)證的未來
最近幾年,學(xué)術(shù)界
-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129966 -
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
1155瀏覽量
56676 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2315瀏覽量
98170 -
形式驗(yàn)證
+關(guān)注
關(guān)注
0文章
8瀏覽量
5844 -
SVA
+關(guān)注
關(guān)注
1文章
19瀏覽量
10361
發(fā)布評(píng)論請(qǐng)先 登錄
提前暴露設(shè)計(jì)缺陷:整車快速溫變?cè)囼?yàn)在研發(fā)驗(yàn)證中的關(guān)鍵作用
銅厚對(duì)阻抗的影響在實(shí)際設(shè)計(jì)中如何驗(yàn)證?
給燒錄工程師的 checklist:新批次芯片上線前的“三道保險(xiǎn)”
國內(nèi)首個(gè)汽車芯片標(biāo)準(zhǔn)驗(yàn)證平臺(tái)啟用,“消費(fèi)芯片”再難上車?
芯片抗單粒子性能研究及其在商業(yè)衛(wèi)星測(cè)傳一體機(jī)中的應(yīng)用
降低adc在不同PCB上的噪聲,如何做到接近AD4134驗(yàn)證板噪聲水平?
有哪些芯片工程師才懂的梗?
CYW43907系列在ModusToolbox的工程是否可以移植到Keil uVision中?
Veloce Primo補(bǔ)全完整的SoC驗(yàn)證環(huán)境
超大規(guī)模芯片驗(yàn)證:基于AMD VP1902的S8-100原型驗(yàn)證系統(tǒng)實(shí)測(cè)性能翻倍
CAN芯片邏輯響應(yīng)驗(yàn)證測(cè)試
FPGA EDA軟件的位流驗(yàn)證
MATLAB在工程中的應(yīng)用
芯華章以AI+EDA重塑芯片驗(yàn)證效率
形式驗(yàn)證及其在芯片工程中的應(yīng)用
評(píng)論