概述
Formal Verify,即形式驗(yàn)證,主要思想是通過使用數(shù)學(xué)證明的方式來驗(yàn)證一個修改后的設(shè)計和它原始的設(shè)計,在功能上是否等價。
用于比較的設(shè)計文件可以是一個RTL級的設(shè)計和它的門級網(wǎng)表,或者綜合后的門級網(wǎng)表和做完布局布線及優(yōu)化之后的門級網(wǎng)表。常見的工具是synopsys公司的Formality。
對于DFT工程師來說,要完成的形式驗(yàn)證有2種:
第一,驗(yàn)證插入DFT測試邏輯之后的設(shè)計文件與未插入DFT測試邏輯的原始設(shè)計文件之間是否等價;
第二,驗(yàn)證綜合后插入掃描鏈的門級網(wǎng)表與未插入掃描鏈的門級網(wǎng)表之間是否等價。
Why Formal Verify
做形式驗(yàn)證是為了確認(rèn)修改后的設(shè)計電路與原始設(shè)計電路是等價的。不管是人為的修改還是工具處理后的電路不一定能保證等價性,工具也是人做出來的,也有可能會出錯,所以要確認(rèn)。
DFT工程師運(yùn)用工具將DFT測試邏輯插入到設(shè)計中,不能改變原始電路的功能,所以在完成DFT設(shè)計后要驗(yàn)證電路是否等價于原始設(shè)計的電路。
Formal Verify****的分類
1、等價性檢查
用于比較設(shè)計的兩種實(shí)現(xiàn)是否一致,可分為組合等價性檢查和時序等價性檢查。利用數(shù)學(xué)技術(shù)來驗(yàn)證參考設(shè)計與改動后的設(shè)計等價,主要目的是在一個設(shè)計經(jīng)過變換之后,窮舉地檢驗(yàn)變換前后的功能一致性,即證明設(shè)計的變換沒有產(chǎn)生功能的變化。
2、形式模型檢查
是一種檢測設(shè)計是否具有所需屬性的方法,如安全性、活性和公平性。模型檢驗(yàn)所針對的對象是同步時序設(shè)計。系統(tǒng)的設(shè)計spec用時序狀態(tài)邏輯公式來描述。而通過對有限狀態(tài)系統(tǒng)的所有可能的狀態(tài)空間遍歷來證明設(shè)計是符合規(guī)范的,增強(qiáng)設(shè)計者的信心;或者是通過提供違反spec的反例,以幫助設(shè)計者來發(fā)現(xiàn)早期設(shè)計的錯誤。反例給出的方式是從系統(tǒng)的初始狀態(tài)出發(fā)到“壞”的狀態(tài)的路徑。系統(tǒng)的狀態(tài)空間能夠用有效的抽象符號算法來隱含地描述。
3、定理證明
是形式驗(yàn)證技術(shù)中最高的,它需要設(shè)計行為的形式化描述,通過嚴(yán)格的數(shù)學(xué)證明,比較HDL描述的設(shè)計和系統(tǒng)的形式化描述在所有可能輸入下是否一致。這種驗(yàn)證方法需要非常深厚的數(shù)學(xué)功底,而且不能完全自動化,所以應(yīng)用案例較少。
Formal Verify的流程
1、準(zhǔn)備HDL文件和fm_verify.tcl腳本
對于DFT工程師,需要準(zhǔn)備好原始設(shè)計的RTL-level的HDL文件、插入DFT測試邏輯之后RTL-level的HDL 文件和fm_verify.tcl運(yùn)行腳本,進(jìn)行RTL的Formal Verify;
準(zhǔn)備好綜合后的門級網(wǎng)表文件、插入掃描鏈之后門級網(wǎng)表 文件和fm_verify.tcl運(yùn)行腳本,進(jìn)行門級網(wǎng)表的Formal Verify。
2、設(shè)置design_name和讀取庫文件
set_top top, 設(shè)置頂層為top。
read_db/project/${USER}/library/db/*.db,用read_db讀取.db庫文件。
3、用read_verilog命令讀入設(shè)計
create_container pre_dft
read_verilog -f ./scripts/ref_filelist (未插DFT測試邏輯的設(shè)計)
create_container post_dft
read_verilog -f ./scripts/imp_filelist(已插DFT測試邏輯的設(shè)計)
讀入reference design和implement design
current_design top 設(shè)置當(dāng)前設(shè)計名稱為top
4、設(shè)置環(huán)境
讀取設(shè)計后,需要設(shè)置formal verification環(huán)境。比如插入dft以后,做function驗(yàn)證時,不需要考慮scan mode/test mode,或者人為創(chuàng)建的port,需要給這些port設(shè)置一個常量告訴工具不去檢查。
5、Match
檢查 reference design 和 Implemention design 的比較點(diǎn)是否匹配。
6、Verify
驗(yàn)證功能是否一致,電路是否等價。
總結(jié)
本文主要介紹了Formal Verify的概念、分類、進(jìn)行Formal Verify的原因以及Formal Verify的具體流程。
-
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59917 -
形式驗(yàn)證
+關(guān)注
關(guān)注
0文章
8瀏覽量
5707 -
SPEC
+關(guān)注
關(guān)注
0文章
31瀏覽量
15824 -
DFT設(shè)計
+關(guān)注
關(guān)注
0文章
10瀏覽量
8901 -
HDL語言
+關(guān)注
關(guān)注
0文章
47瀏覽量
8942
發(fā)布評論請先 登錄
相關(guān)推薦
評論