形式驗證與斷言驗證
形式性質驗證(Formal Property Verification, FPV)
形式性質驗證提出一個模擬永遠無法完整回答的問題:「有沒有任何一組輸入序列——無論多麼離奇——能讓這個設計違反它的規則?」形式工具不靠跑一百萬筆隨機測試再祈禱抽中那筆壞的,而是用數學方法一次推理「所有可能」的輸入。它要嘛回傳一份證明——「不存在這樣的輸入,此性質永遠成立」——要嘛回傳一個反例:一段精確、最短的輸入序列,以波形交到你手上,直接觸發失敗。
在底層,工具把設計與性質轉成一個龐大的布林可滿足性或模型檢查問題,搜索整個可達狀態空間。由於真實晶片的狀態空間大到天文數字,形式工具仰賴巧妙的抽象、歸納法與 SAT/SMT 求解器;它在控制密集的區塊(仲裁器、協定狀態機、快取一致性)上最為出色,因為最深的角落案例臭蟲就藏在那裡。代價是「狀態空間爆炸」:有些性質大到無法直接證明,只能回傳一個非結論性的「有界」結果,而非完整證明。
形式驗證的超能力是窮盡性——一份通過的證明意味著臭蟲根本不可能存在,這是再多模擬也給不了的保證。它的剋星是規模,所以工程師會挑選小而界定良好的區塊,並用抽象法把狀態空間維持在可處理的範圍。
又称
另见