TWI471748B - 形式性質驗證之假設的自動近似 - Google Patents

形式性質驗證之假設的自動近似 Download PDF

Info

Publication number
TWI471748B
TWI471748B TW99105823A TW99105823A TWI471748B TW I471748 B TWI471748 B TW I471748B TW 99105823 A TW99105823 A TW 99105823A TW 99105823 A TW99105823 A TW 99105823A TW I471748 B TWI471748 B TW I471748B
Authority
TW
Taiwan
Prior art keywords
hypothesis
subset
determination
satisfied
hypotheses
Prior art date
Application number
TW99105823A
Other languages
English (en)
Other versions
TW201042481A (en
Inventor
Ashvin M Dsouza
Original Assignee
Synopsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of TW201042481A publication Critical patent/TW201042481A/zh
Application granted granted Critical
Publication of TWI471748B publication Critical patent/TWI471748B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

形式性質驗證之假設的自動近似
此揭露主要有關於電子設計自動化。詳言之,此揭露關於在形式電路驗證期間簡化一組假設之技術及系統。
使用高階硬體描述語言來描述電路允許硬體工程師界定電路的功能並最佳化電路的架構,之後再將此高階描述轉換成電路之詳細的實體布局。
形式驗證技術之目的在於證實驗證下電路(CUV)於操作期間將如希望般操作。形式驗證技術典型利用兩種邏輯函數:假設及判定(assertions)。假設為用來模型化運行時間環境之邏輯函數,且判定為界定希望的CUV行為之邏輯函數。若無假設,CUV不侷限於合法行為,且可能不正確地證虛(falsify)被驗證的判定。
希望能減少形式驗證CUV所需之時間量。不幸地,該組假設可能大且複雜,且當嘗試證實或證虛判定時對整組假設執行形式分析有時在運算上難以實行。詳言之,形式性質驗證已知為PSPACE-困難的問題。因此,大且複雜之假設組可能不成比例地增加形式驗證問題的複雜度,使得形式驗證CUV在運算上難以實行。
一些實施例提供自動近似假設之系統及技術以減少形式驗證問題的複雜度。注意到近似組的假設可能與原始組的假設邏輯上不等效。
於操作期間,系統可非必要地簡化該組假設以獲得與原始組的假設邏輯上等效之簡化組假設。接著,系統可非必要地將簡化的假設之子集與一組判定中之一判定聯合。注意到將假設之子集與一判定聯合可減少複雜度,因為當證實聯合之判定時僅需考量假設子集(相較於整組假設)。
系統可接著近似簡化組的假設,藉此改變該組可允許的輸入分配。若未執行簡化程序,系統可近似原始組假設。詳言之,可不足近似或過近似一組假設。當不足近似一組假設時,其限制在原始組假設下可允許的輸入分配之序列。當過近似一組假設時,其允許比在原始組假設下所允許的更多之輸入分配。注意到,當近似一組假設時,所得組的假設與原始組假設邏輯上不等效。
一旦系統具有近似組假設,系統可使用近似組假設來執行形式驗證。注意到若不足近似該組假設,維持判定證虛。換言之,證虛不足近似組假設之一判定的跡線亦會證虛原始組假設之該判定。相反地,若過近似該組假設,維持判定證實,亦即過近似組假設之一判定的證實對於原始組假設亦有效。
提出下列說明以讓熟悉此技藝人士得據以製造並使用本發明,並在特定應用及其要求的情境下提供下列說明。熟悉此技藝人士可輕易得到所揭露實施例的各種變化,且在此所界定之上位原則可應用至其他實施例與應用,而不背離本發明之精神與範疇。因此,本發明不限於所示之實施例,但應給予與在此所揭露之原則及特徵一致之最廣的解釋範圍。
描述在此詳細說明中之資料結構及碼典型儲存在電腦可讀取儲存媒體上,其可為可儲存供電腦系統使用的碼及/或資料之任何裝置或媒體。電腦可讀取儲存媒體包括但不限於依電性記憶體、非依電性記憶體、磁性及光學儲存裝置,如磁碟機、磁帶、光碟(CD)、數位多功能碟或數位視訊碟(DVD)或能夠儲存電腦可讀取媒體之已知或未來開發的其他媒體。
描述在此詳細說明中方法及程序可體現為碼及/或資料,其可儲存在上述的電腦可讀取儲存媒體中。當電腦系統讀取並執行儲存在電腦可讀取儲存媒體中之碼及/或資料時,電腦系統執行體現成資料結構及碼並儲存在電腦可讀取儲存媒體中之方法及程序。
此外,於下說明之方法及程序可包括在硬體模組中。例如,硬體模組可包括但不限於專門應用積體電路(ASIC)晶片、現場可編程閘陣列(FPGA)及已知或未來開發的其他可編程邏輯裝置。當啟動硬體模組時,硬體模組執行包括在硬體模組內之方法及程序。
積體電路(IC)設計流程
第1圖描繪根據本發明之一實施例的積體電路的設計與製造中的各個階段。
程序典型上以產品構想(操作100)開始,其可使用以電子設計自動化(EDA)程序設計之積體電路加以實現(操作110)。一旦設計完成後,典型將其設計定案(tapeout)(事件140),此時其經歷製造程序(操作150)及封裝與組裝程序(操作160)以產生已製造之微晶片(結果170)。
EDA程序(操作110)包含操作112至130,於下加以描述,此僅為了說明而非意圖限制本發明。尤其,實際積體電路設計可能需要設計人員以與以下所述的順序不同之順序來執行設計操作。
系統設計(操作112):在此階段中,設計人員描述實行產品構想之功能。他們亦可執行「假使...又如何」(what-if)計畫以精簡功能性、執行成本分析等等。硬體軟體架構區分可在此階段發生。可用於此階段之來自新思科技公司(SYNOPOSYS,INC.)的範例EDA軟體產品包括Model Architect、Saber、System Studio、及DesignWare
邏輯設計及功能驗證(操作114):在此階段,編寫系統中之模組的VHDL或Verilog碼,並檢查設計的功能正確性。詳言之,可檢查設計以確保其產生正確的輸出。可用在此階段之來自新思科技公司的範例EDA軟體產品包括VCS、Vera、DesignWare、MagellanTM 、Formality、ESP、及Leda
測試用之合成及設計(操作116):可在此階段中將VHDL/Verilog來源碼轉譯成網路連線表(netlist)。可針對目標技術最佳化此網路連線表,並可設計並實施測試以檢查製造的微晶片。可用在此階段之來自新思科技公司的範例EDA軟體產品包括Design Compiler、Physical Compiler、Test Compiler、Power CompilerTM 、FPGA Compiler、TetraMAX、及DesignWare
網路連線表驗證(操作118):在此階段中,檢查網路連線表與時序約束的順應性以及與VHDL/Verilog來源碼的對應性。可用在此階段之來自新思科技公司的範例EDA軟體產品包括Formality、PrimeTime、及VCS
設計計畫(操作120):在此階段中,構成微晶片的整體平面佈置圖並分析時序及高階路由。可用在此階段之來自新思科技公司的範例EDA軟體產品包括AstroTM 及IC Compiler產品。
實體實施(操作122):自此階段發生佈置(電路元件之定位)及路由(互連之佈置)。可用在此階段之來自新思科技公司的範例EDA軟體產品包括AstroTM 及IC Compiler產品。
分析及提取(操作124):在此階段,於電晶體等級驗證電路功能;此則允許「假使...又如何」精簡。可用在此階段之來自新思科技公司的範例EDA軟體產品包括AstroRailTM 、PrimeRail、PrimeTime、及Star-RCXTTM
實體驗證(操作126):在此階段中,檢查設計以確保製造、電性問題、微影問題、及電路之正確性。可用在此階段之來自新思科技公司的範例EDA軟體產品包括HerculesTM
解析度增進(操作128):此階段涉及布局之幾何操縱以改善設計之可製造性。可用在此階段之來自新思科技公司的範例EDA軟體產品包括Proteus/Progen、ProteusAF、及PSMGen。
遮罩資料備置(操作130):此階段提供可提供遮罩產生之「設計定案」資料以產生已完成之微晶片。可用在此階段之來自新思科技公司的範例EDA軟體產品包括CATS系列的產品。
概觀
一些實施例提供利用形式驗證技術來證實CUV在操作期間將如希望般操作之系統及技術。在一些實施例中,這些形式驗證技術藉由判斷當滿足一組假設時CUV是否滿足一組判定來驗證CUV之功能。一假設為一組邏輯函數,用來模型化CUV之運行時間環境的合法行為。一判定為一組邏輯函數,界定CUV之合法行為。注意到CUV的運行時間環境可包括CUV之至少數個主要輸入及/或主要輸出。
在一些實施例中,系統藉由首先判斷CUV的運行時間環境是否滿足CUV的該組假設來驗證CUV的判定。若不滿足該組假設,系統不形式驗證判定,因CUV不在合法狀態中。另一方面,若滿足該組假設,系統嘗試證實判定。
在一些實施例中,系統藉由產生證實或證虛該組判定中之一判定所需的該組假設的近似來促進大型CUV之形式驗證的執行。
第2圖描繪根據本發明之一些實施例藉由近似假設來促進電路驗證之執行的設備。設備202可包含數個機制,其經由有線或無線通訊通道互相通訊。可用一或更多積體電路實現設備202,且其可整合於電腦系統中,或可實現成能夠與其他電腦系統及/或裝置通訊的個別裝置。詳言之,電路驗證設備202可包括聯合(association)機制204、近似機制206、及驗證機制208。
在一些實施例中,電路驗證設備202拿CUV 214、模型化CUV 214之合法操作環境的假設210、及界定希望的CUV 214行為的判定212作為輸入。電路驗證設備202產生驗證結果216作為輸出,其指明當滿足假設210時CUV 214是否滿足判定212。
注意到假設可為可組合或次序的。一組合的假設指明兩或更多變數間的邏輯關係,這些變數的值係在特定時間點所求得。另一方面,一次序假設指明兩或更多變數間的邏輯關係,這些變數的值係在不同時間點所求得。例如,一組合假設可陳述每當狀態「a 」為真時,狀態「b 」必定也為真。另一方面,一次序假設可指出每當狀態「a 」為真時,狀態「b 」在至少「n 」週期中必定維持為真。
聯合機制204可將假設210與判定212聯合。一假設可與一判定聯合,若該假設直接或間接地與判定共享邏輯。聯合機制204的輸出可為至近似假設之近似機制的輸入。
近似機制206可產生假設近似220,使得假設近似220近似假設210。注意到若被A 1 允許CUV的一組輸入序列也被A 2 允許,則一組假設A 1 不足近似(under-approximate)一組假設A 2 。相反地,若被A 2 允許CUV的一組輸入序列也被A 1 允許,則該組假設A 1 過近似(over-approximate)該組假設A 2 。若A 1 不足近似及過近似A 2 ,則該組假設A 1 與該組假設A 2 邏輯上等效。
當過近似一組假設時,額外的輸入序列可能導致不正確地證虛判定。因此,在過近似的事態中,若一判定被驗證機制208證虛,電路驗證設備202可使用近似機制206來精化假設近似220,並嘗試在經精化的假設下驗證判定。
類似地,當一組假設為不足近似時,某些輸入序列的缺乏可能導致不正確地證實判定。因此,在不足近似的事態中,若一判定被驗證機制208證實,電路驗證設備202可使用近似機制206來精化假設近似220,並嘗試在經精化的假設下驗證判定。
注意到驗證機制208及近似機制206之間的互動可允許電路驗證設備202反覆精化假設近似220直到電路驗證設備202證實或證虛CUV的判定212為止。
第3圖描繪根據本發明之一實施例藉由電路驗證系統使用假設近似來驗證電路設計所執行之程序中的各個階段。在一些實施例中,此程序包括六個操作階段:重寫假設、聯合假設、分離假設、近似假設、驗證CUV、及精化假設。注意到可跳過一或更多階段或可改變其之順序。例如,在一些實施例中,系統可僅執行近似假設階段及驗證CUV階段。
重寫(REWRITE)(操作302):系統將CUV的假設重寫成較小假設,其一起與CUV的原始假設等效。注意到在執行重寫操作302之後假設的總大小可增加,但針對已重寫之一假設的範圍減少。
聯合(ASSOCIATE)(操作304):系統將假設的子集與一判定聯合。詳言之,系統在此操作中可使用由重寫操作302所產生的假設。一般而言,所有假設與所有判定聯合。因此,若無此操作,形式驗證工具在證實或證虛一判定時會考慮所有的假設。
分離(DISASSOCIATE)(操作306):結構性分析可為保守的。因此,聯合操作304可將一假設與一判定聯合,即使此假設對於證實或證虛該判定並無幫助。於分離操作306期間,系統執行詳細分析以辨別假設,無論滿足此假設與否,聯合的判定係可滿足。系統接著從該判定分離已辨別的假設。
近似(APPROXIMATE)(操作308):系統放鬆關於每一判定該組假設與原始組的假設等效之要求。如此允許系統更積極地重寫及分離假設,藉此產生從原始組假設顯著減少的一組假設。若系統試圖證虛一判定,則系統產生不足近似原始組假設的一組假設近似。否則,若系統試圖證實一判定,則系統產生過近似原始組假設的一組假設近似。
驗證(VERIFY)(操作310):系統使用該假設近似來執行對CUV的形式驗證。注意到若該組假設近似為初始組假設的過近似,系統嘗試證實聯合的判定。否則,若該組假設近似為初始組假設的不足近似,系統嘗試證虛聯合的判定。
精化(REFINE)(操作312):若系統成功證實或證虛判定,則程序結束。否則,系統返回到近似步驟,使用從無結果的驗證操作所收集到的資訊來產生新一組的假設近似。
注意到操作302至306可視為靜態期的一部份,其維護該組修改過的假設與該組原始假設等效之不變。換言之,執行操作302至306產生選定判定之減少組假設,使得使用此減少組假設證實或證虛判定與使用CUV的初始組假設證實或證虛判定等效。在一些實施例中,可由第2圖中之聯合機制204來執行操作302至306。
操作308至312可視為動態期的一部份,其反覆精化一組假設近似直到成功證實一判定,或直到成功證虛一判定。在一些實施例中,可由第2圖中之近似機制206來執行操作308。此外,可由第2圖中之驗證機制208來執行操作310至312。
重寫
在一些實施例中,重寫操作302可從原始組假設簡化假設,以產生一或更多假設,這些一起與被簡化之原始假設等效。例如,重寫操作302可從下列操作群執行一或更多操作,包含:合取(conjunction)分裂、蘊含(implication)分裂、重複範圍分裂、蘊含重複分裂、位元切割、大子式排除、假設排除、及可在使用合取分裂來分割假設前將假設轉變成合取標準形式(conjunction normal form;CNF)的任何其他操作。於下詳述這些操作。
合取分裂
若一假設為數項的合取,可由一組假設取代,其中每一項為一假設。例如,給定一假設包含n 項:
a 1 &...&a n
重寫操作302可以n個較小假設a 1a n 取代該假設。
蘊含分裂
典型使用在一蘊含下數個邏輯項的合取來敘述CUV之環境約束,使得該邏輯項的合取指明一特定事件(亦即CUV的主要輸入、主要輸出及/或狀態變數之特定組的值)之後果。例如,下列假設包含邏輯項b 1 &...&b n 之合取,若滿足邏輯項a 則必定滿足邏輯項之合取:
重寫操作302可藉由分配蘊含至個別項(亦即藉由移動合取到蘊含之上)來轉變該假設。藉此,重寫操作302產生數個蘊含之合取,其中當滿足邏輯項a 時必定滿足邏輯項b i
接著,重寫操作302可施加合取分裂以獲得具有下列形式之n 個個別假設:
其中i 從1至n 。全部一起,該組n 個個別假設與原始假設等效。
注意到蘊含分裂產生具有共同之前提的n 個個別假設,藉此產生一組假設,當全部一起時大於原始假設。然而,結合蘊含分裂轉變與近似操作308可大幅減少最終組假設的複雜度。
重複範圍分裂
一假設可指明一個式子必定成立之週期數量的範圍。在一些實施例中,重寫操作302可以該範圍成立的最少週期數量來取代該範圍。例如,給定下列假設,其陳述函數f 在8及32週期之間必定為真:
f [*8:32],
重寫操作302可以一等效假設重寫該假設,其陳述函數f 在至少8週期內必定為真:
f [*8]。
蘊含及重複範圍分裂
一重複範圍可發生在一假設的子式中。對子式執行重複範圍分裂並非絕對安全,但對下列假設執行重複範圍分裂為安全,此假設陳述當滿足項a時函數f 在8及32週期之間必定成立:
重寫操作302可以下列等效假設取代該假設,此等效假設陳述當滿足項a時函數f 在至少8週期中必定成立:
位元切割
涉及向量之一假設傾向於大且難以分解,尤其當假設本質上為次序的。然而,可以位元方式使用資料流分析切割此種假設。例如,考量包含32位元向量uv 及位元ab 之下列假設。下列假設陳述在設立位元a 之後,10週期中向量uv 必定相等,接著8週期後設立位元b
重寫操作302可將假設重寫成下列形式的32個假設,其中i 從1至32:
大子式排除
形式為f (i,s,g(i’)) 的合取假設,其中ii '為至CUV的主要輸入且s 為狀態變數,與下列等效:
f (i ,s ,r )&(r ==g (i' )),
,其中r 為重寫操作302所引進之新的變數。注意到,若ii' 為至CUV的不相關輸入,則可與式子f(i,s,r) 無關地解答式子r ==g(i')
在一些實施例中,重寫操作302可以f(i,s,r) 取代原始假設以做驗證。接著,當證虛一判定時,重寫操作302可藉由解答針對證虛中r 的每一值之r ==g(i') 而填入i' 之適當的值。
假設排除
針對具有形式a ==f (b )之一假設,其中a 為至CUV的主要輸入,重寫操作302可以f (b )取代該組假設中a 之所有出現,並自該組假設移除a 之假設。藉此,重寫操作302可減少與判定聯合之至CUV的輸入,藉此簡化將假設與判定聯合的問題。
合取標準形式
在一些實施例中,重寫操作302可分割不適用上述類別之假設,藉由首先將該假設轉變成合取標準形式(CNF)。接著,重寫操作302可使用合取分裂將經轉變之假設分割成較小的假設。注意到若假設態大而無法直接轉換成合取標準形式,重寫操作302可判斷假設之式子中的斷點,並將斷點之間的假設之片段轉換成合取標準形式。
聯合
在一些實施例中,聯合操作304可藉由分辨假設與判定之間共享的邏輯來將假設與一判定聯合。注意到若有扇形散出至ab 兩者的至CUV之主要輸入,則假設a 與判定b 聯合(在此範例中,假設a 與判定b 直接共享邏輯)。聯合為可遷的,使得與假設y 共享邏輯之假設x 將與判定z 聯合,若yz 共享邏輯,即使xz 不直接共享邏輯(在此範例中,假設x 與判定z 間接共享邏輯)。換言之,一假設與一判定聯合,若該假設與該判定直接或間接共享邏輯。
分離
即使在執行上述操作後,驗證問題仍可能有太多與一判定聯合之假設。在一些實施例中,分離操作306可用來進一步減少與一判定聯合之假設的數量。詳言之,分離操作306可執行至少一或更多量化操作及析取(disjunction)操作。
量化
在一些實施例中,分離操作306可判斷一假設是否與一判定聯合。例如,考量判定a 及與該判定聯合之假設b ,因其共享主要輸入i 1 ,...,i n 。分離操作306可運算式子 i 1 ,...,i n .b 並測試其是否可被滿足,亦即分離操作306可判斷針對主要輸入i 1 ,...,i n 的所有值假設b 是否可被滿足。若式子無法被滿足,則分離操作306必須保留假設b 與判定a 之聯合。否則,分離操作306可自判定a 分離假設b ,因為可與判定a 無關地滿足假設b 。另外,在一些實施例中,分離操作306可施加上述量化程序至假設對以斷開假設的可遷鏈。
析取
在一些實施例中,分離操作306可自判定c 分離具有形式a 1 a 2 之假設,若假設a 1 或假設a 2 與判定c 不共享邏輯,且可與判定c 無關地滿足假設(如使用量化)。
近似
由操作308至312所執行的動態分析可產生一組假設近似,其為初始組的假設之過近似。過近似的假設可接著用來證實CUV滿足一判定。
動態分析亦可產生一組假設近似,其為初始組的假設之不足近似。不足近似的假設可接著用來證虛一判定。
下列段落說明用於近似假設之技術。
過近似
分離技術
在一些實施例中,近似操作308使用可減少假設之蘊含及/或析取之近似技術,藉此進一步減少從分離操作306接收到的一組假設。
蘊含
在一些實施例中,近似操作308從判定c 分離形式為a b 之蘊含假設,若項b 與判定c 不共享邏輯(直接或間接),即使項a與判斷c共享邏輯(直接或間接)。注意到環境所加諸之條件典型由蘊含假設之後件(亦即項b )而非蘊含假設之前件(亦即項a )所執行。
析取
在一些實施例中,近似操作308從判定c 分離具有形式a 1 a 2 之假設,若項a 1 或項a 2 與判定c 不共享邏輯(直接或間接)。在一些實施例中,近似操作308不驗證可與判定c 無關地滿足項a 1 或項a 2
重寫技術
在一些實施例中,近似操作308可藉由放鬆假設之重複範圍的邊界而將一組假設轉變成過近似。此外,近似操作308可藉由以非確定性值取代大組合子式而將一組假設轉變成過近似。
重複範圍內部延遲
一些假設,如下列者,陳述,若項a 成立,則式子fmn 週期之間必定成立,且式子cp 週期後必定成立:
在一些實施例中,近似操作308可藉由以下列假設來取代假設來產生其之過近似,下列假設將式子f 的條件放鬆成在至少m週期成立:
注意到參數m 的值典型為小(如m 典型為1),且參數n 的值可為大。因此,從假設移除參數n 可大幅地簡化假設。
大子式排除
一組合假設可具有形式f (i,s,g (i’,s’ )),其中ii, 為至CUV的主要輸入,且ss’ 為狀態元件。在一些實施例中,近似操作308可藉由以形式f (i,s,r )重寫假設來產生組合假設之過近似,使得r 為用於取代原始假設中之g (i’,s’ )的新變數。注意到若ii’ 聯合,驗證操作310可在驗證期間使用新的假設來證實一判定。若證虛了一判定,無法解答一些r 及s值的r ==g (i’,s’ ),但可從此種事態恢復程序。
不足近似
重寫延遲範圍
假設內的範圍資訊可增加形式驗證的複雜度,因其會導致狀態空間中之大量分支。下列假設指明,若滿足項a ,則在滿足項b 之後項cmn 週期之間必定會被滿足:
此假設導致每一狀態m-n+1個可能的結果,所指明之範圍中的每一延遲值各一個。注意到證實或證虛假設之複雜度隨著更大的m-n+1值而增加。因此,可藉由最小化落在該範圍內的延遲值數量來實質地減少複雜度。注意到設計錯誤典型發生在延遲範圍之極端。因此,近似操作308可藉由重寫假設來產生減少假設複雜度之不足近似,使其僅考量在確切m 或確切n 週期後滿足項c 。經重寫的假設將每一狀態之結果數量減少成2,且可如下般呈現:
大子式排除
一組合假設可具有形式f (i,s,g (i’,s’ )),其中ii’ 為至CUV的主要輸入,且ss’ 為狀態元件。在一些實施例中,近似操作308可藉由以形式f (i,s,r )重寫假設成來產生組合假設之不足近似,使得r 為用於取代原始假設中之g (i’,s’ )的恆定值。在一些變化例中,r 可包括一組可允許的恆定值,使得可使用非確定性選擇演算法來選擇用於取代g (i’,s’ )之值。注意到若ii’ 為相關,驗證操作310可在驗證期間使用新的假設來證實判定。
自偏向之推論
在一些實施例中,近似操作308可以使用者所指明的偏向資訊註解CUV的輸入。此偏向資訊可用來在由驗證操作310分析假設時設定假設中之一常數的值。
資料路徑方法
資料路徑可包括關係運算子,其比較兩資料路徑變數之間的值。在一些實施例中,近似操作308可使用等式重寫資料路徑假設。例如,近似操作308可執行下列重寫:資料路徑假設a <b 可重寫成a ==2*b ,且資料路徑假設a >b 可重寫成b ==2*a 。(注意到乘數「2」僅為例示性;可能使用任何正乘數來重寫資料路徑假設。)
驗證
在一些實施例中,驗證操作310可使用一組假設近似來驗證使用標準形式驗證技術之CUV的判定。注意到若該組假設近似為對於CUV之初始組假設之過近似,則驗證操作310可使用該組假設近似來證實判定的有效性。相反地,若該組假設近似為對於CUV之初始組假設之不足近似,則驗證操作310可使用該組假設近似來證虛判定。
精化
在一些實施例中,精化操作312可解譯來自驗證操作310的結果以判斷驗證操作310是否已經成功證實或證虛判定。
過近似
若該組假設近似為CUV之初始組假設之過近似,則判定之證實為決定性的。然而,若驗證操作310證虛判定,則系統可相對於初始組的假設模擬證虛跡線來辨別違反該跡線的一或更多假設。
若系統判斷沒有違反任何假設,則針對初始組假設亦已證虛判定,且系統可通報判定之證虛給使用者。
另一方面,若系統辨別違反的一或更多假設,則旗標違反的假設以防止系統未來近似這些假設。接下來,系統可輸入初始組的假設(其可包括被旗標的假設)至近似操作308以進行近似。一旦近似操作308產生過近似初始組假設之新一組假設近似,系統可使用它們來做驗證。注意到可由精化操作312執行違反之假設的辨別與旗標。
不足近似
若該組假設近似為CUV之初始組假設之不足近似,則判定之證虛為決定性的。然而,若驗證操作310證實判定,則系統可使用近似操作308來產生新一組的假設近似。
詳言之,系統可從用來證實判定之初始組假設辨別一假設,並旗標辨別出的假設,使得在後續近似操作期間不變更被旗標之假設。系統亦可增加系統用來選擇近似用之假設的試探之臨限值。例如,試探可僅選擇大於臨限值的那些假設。注意到可由精化操作312執行證實中所使用之假設的辨別與旗標。
形式性質驗證
第4圖呈現描繪根據本發明之一實施例使用假設近似來驗證CUV的程序之流程圖。在一些實施例中,可藉由電腦系統執行該程序,該電腦系統包括儲存指令之電腦可讀取儲存媒體,當由電腦系統執行指令時會令電腦系統執行驗證CUV的程序。
系統可藉由接收CUV作為開始(操作402)、接收一組判定(操作404)、及接收第一組假設(操作406)。接著,系統重寫第一組假設以獲得與第一組假設邏輯上等效之第二組假設(操作408)。注意到第二組假設之基數可能大於第一組假設之基數。然而,第二組假設中的個別假設典型小於第一組假設中之假設。
接著,針對該組判定中之一判定(操作410),系統將第一子集之假設與該判定聯合(操作412),並變更第一子集的假設以獲得與第一子集假設邏輯上不等效之第二子集的假設(操作414)。注意到第一子集的假設可為第二組假設的子集,且第二子集的假設可為第一子集之假設的近似。系統接著藉由至少判斷當滿足第二子集的假設時CUV是否滿足該判定來驗證CUV(操作416)。一旦系統判斷當滿足聯合的假設時CUV滿足所有判定,系統可宣告CUV滿足這些判定。
在一些實施例中,操作414變更第一子集的假設以獲得過近似第一子集假設之第二子集的假設。在其他實施例中,操作414變更第一子集的假設以獲得不足近似第一組假設之第二子集的假設。
第5圖呈現描繪根據本發明之一實施例將一子集之假設與一判定聯合之程序的流程圖。在一些實施例中,該程序對第4圖之操作412做延伸。系統可藉由從一組判定選擇一判定作為開始(操作502),並接收第一組假設(操作504)。接著,系統將初始子集之假設與該判定聯合(操作506)。系統可初始化該初始子集之假設至零組,並重覆增加假設至該組中。詳言之,系統可從第一組假設辨別第一假設,其直接或間接與該判定共享邏輯(操作508),並將第一假設插入初始子集假設中(操作510)。
接著,系統減少初始子集假設(操作512)。欲如此做,系統可重覆從初始子集假設移除假設。詳言之,系統從初始子集假設辨別第二假設,使得無論滿足第二假設與否皆滿足該判定(操作514),且系統從初始子集假設移除該第二假設(操作516)。
第6圖呈現描繪根據本發明之一實施例藉由精化過近似初始組假設的一子集假設來驗證電路設計之程序的流程圖。
在一些實施例中,該程序為第4圖之操作416的延伸。系統可藉由從該組判定選擇一判定作為開始(操作602),並接收第二子集的假設,其過近似CUV之第一組假設(操作604)。
接著,系統判斷是否存在不滿足該判定但滿足第二子集假設的CUV之一狀態(操作606)。若系統判斷CUV之此一狀態不存在,則系統通報CUV滿足該判定(操作612),並結束程序。
若不滿足該判定但滿足第二子集假設的CUV之狀態存在,則系統變更第一子集假設以獲得與第一子集假設邏輯上不等效且與第二子集假設不同之第三子集假設(操作608)。詳言之,第三子集假設可為與第二子集假設不同之第一子集假設的過近似。
接著,系統藉由至少判斷當滿足第三子集假設時CUV是否滿足該判定來驗證CUV(操作610)。接著,系統返回至操作606以判斷是否需要再次變更第一子集假設以獲得和第二及第三子集假設不同之新子集的假設。
第7圖呈現描繪根據本發明之一實施例藉由精化不足近似初始組假設的一子集假設來驗證電路設計之程序的流程圖。在一些實施例中,該程序為第4圖之操作416的延伸。
系統可藉由從該組判定選擇一判定作為開始(操作702),並接收第二子集的假設,其不足近似CUV之第一組假設(操作704)。
接著,系統判斷每當滿足第二子集假設時是否滿足該判定(操作706)。若否(亦即系統判斷當滿足第二子集假設時不滿足判定之狀態存在),系統通報該判定未被CUV所滿足(操作712),並結束程序。
若每當滿足第二子集假設時滿足該判定,則系統變更第一子集假設以獲得與第一子集假設邏輯上不等效且與第二子集假設不同的第三子集假設(操作708)。詳言之,第三子集假設可為與第二子集假設不同之第一子集假設的不足近似。
接著,系統藉由至少判斷當滿足第三子集假設時CUV是否滿足該判定來驗證CUV(操作710)。接著,系統返回至操作706以判斷是否需要再次變更第一子集假設以獲得和第二及第三子集假設不同之新子集的假設。
第8圖描述根據本發明之一實施例藉由近似假設來幫助驗證電路設計的範例電腦系統。電腦系統802包括處理器804、記憶體806、及儲存裝置808。此外,電腦系統802可耦合至顯示裝置810、鍵盤812、及指示裝置813。
儲存裝置808儲存操作系統814、電路驗證系統816、CUV 826、一組判定828、一組假設830、一組假設近似832、及驗證結果834。電路驗證系統816可包括圖形使用者介面(GUI)818、聯合模組820、近似模組822、及驗證模組824。第8圖中所示之模組僅為例示性且非意圖限制本發明至所揭露的形式。
於操作期間,從儲存裝置808載入電路驗證系統816到記憶體806中並由處理器804予以執行。在一些變化例中,電路驗證系統816可在硬體模組中實施,如ASIC或FPGA。在一些實施例中,電路驗證系統816可產生一組假設近似832,其與該組判定828中之一判定聯合,使得假設近似832為過近似或不足近似假設830。欲如此做,聯合模組820從假設830辨別第一子集假設,其與該判定聯合。接著,聯合模組820重寫第一子集假設以產生與假設830邏輯上等效的第二子集假設。
接著,近似模組822產生與第一子集假設邏輯上不等效的假設近似832。詳言之,假設近似832過近似或不足近似第一子集假設。驗證模組824接著藉由至少判斷當滿足假設近似832時CUV 826是否滿足該判定來驗證CUV 826。
僅為了圖解並說明而呈現上述本發明之實施例的詳細說明。其並非意圖為窮舉性或將本發明限制於所揭露的形式。因此,熟悉該項技藝者可輕易做出許多修改及變化。此外,上述揭露非意圖限制本發明。本發明之範疇係由所附之申請專利範圍而定。
202...設備
204...聯合機制
206...近似機制
208...驗證機制
210...假設
212...判定
214...CUV
216...驗證結果
220...假設近似
802...電腦系統
804...處理器
806...記憶體
808...儲存裝置
810...顯示裝置
812...鍵盤
813...指示裝置
814...操作系統
816...電路驗證系統
818...圖形使用者介面(GUI)
820...聯合模組
822...近似模組
824...驗證模組
826...CUV
828...一組判定
830...一組假設
832...一組假設近似
834...驗證結果
第1圖描繪根據本發明之一實施例的積體電路的設計與製造中的各個階段。
第2圖描繪根據本發明之一些實施例藉由近似假設來執行電路驗證之設備。
第3圖描繪根據本發明之一實施例藉由使用假設近似來驗證電路設計之程序中的各個階段。
第4圖呈現描繪根據本發明之一實施例使用假設近似來驗證CUV的程序之流程圖。
第5圖呈現描繪根據本發明之一實施例將一子集之假設與一判定聯合之程序的流程圖。
第6圖呈現描繪根據本發明之一實施例藉由精化過近似初始組假設的一子集假設來驗證電路設計之程序的流程圖。
第7圖呈現描繪根據本發明之一實施例藉由精化不足近似初始組假設的一子集假設來驗證電路設計之程序的流程圖。
第8圖描述根據本發明之一實施例藉由近似假設來幫助驗證電路設計的範例電腦系統。
圖中,類似參考符號參照相同之圖元件。

Claims (24)

  1. 一種形式驗證電路設計之方法,該方法包含:簡化第一組假設以獲得第二組假設,其中該第一組假設係邏輯上等效於該第二組假設;將第一子集假設與一組判定中之一判定聯合,其中該第一子集假設為該第二組假設之一子集,且其中滿足對應於電路設計所希望的行為的該判定;變更該第一子集假設以獲得與該第一子集假設邏輯上不等效的第二子集假設;以及當滿足該第二子集假設時,證明該電路設計滿足該判定。
  2. 如申請專利範圍第1項所述之方法,其中將第一子集假設與該組判定中之該判定聯合涉及:將初始子集假設與該判定聯合,其中若該假設直接或間接與該判定共享邏輯,則一假設與一判定聯合;以及無論是否滿足該第一假設,若該判定為可滿足,從該初始子集假設移除至少一第一假設。
  3. 如申請專利範圍第1項所述之方法,其中該第二子集假設為該第一組假設之過近似。
  4. 如申請專利範圍第3項所述之方法,其中每當滿足該第二子集假設時,若滿足該判定,則該電路設計滿足該判定。
  5. 如申請專利範圍第4項所述之方法,進一步包含:回應於判斷存在不滿足該判定但滿足該第二子集假設 的狀態,變更該第一子集假設以獲得與該第一子集假設邏輯上不等效且與該第二子集假設不同的第三子集假設;以及藉由至少判斷當滿足該第三子集假設時該電路設計是否滿足該判定來驗證該電路設計。
  6. 如申請專利範圍第1項所述之方法,其中該第二子集假設為該第一組假設之不足近似。
  7. 如申請專利範圍第6項所述之方法,其中若存在滿足該第二子集假設但不滿足該判定的狀態,則該電路設計不滿足該判定。
  8. 如申請專利範圍第7項所述之方法,進一步包含:回應於判斷每當滿足該第二子集假設時滿足該判定,變更該第一子集假設以獲得與該第一子集假設邏輯上不等效且與該第二子集假設不同的第三子集假設;以及藉由至少判斷當滿足該第三子集假設時該電路設計是否滿足該判定來驗證該電路設計。
  9. 一種儲存指令之非暫態電腦可讀取儲存媒體,當由電腦執行該些指令時使該電腦施行用以形式驗證電路設計之方法,該方法包含:簡化第一組假設以獲得第二組假設,其中該第一組假設係邏輯上等效於該第二組假設;將第一子集假設與一組判定中之一判定聯合,其中該 第一子集假設為該第二組假設之一子集,且其中滿足對應於電路設計所希望的行為的該判定;變更該第一子集假設以獲得與該第一子集假設邏輯上不等效的第二子集假設;以及當滿足該第二子集假設時,證明該電路設計滿足該判定。
  10. 如申請專利範圍第9項所述之非暫態電腦可讀取儲存媒體,其中將第一子集假設與該組判定中之該判定聯合涉及:將初始子集假設與該判定聯合,其中若該假設直接或間接與該判定共享邏輯,則一假設與一判定聯合;以及無論是否滿足該第一假設,若該判定為可滿足,從該初始子集假設移除至少一第一假設。
  11. 如申請專利範圍第9項所述之非暫態電腦可讀取儲存媒體,其中該第二子集假設為該第一組假設之過近似。
  12. 如申請專利範圍第11項所述之非暫態電腦可讀取儲存媒體,其中每當滿足該第二子集假設時,若滿足該判定,則該電路設計滿足該判定。
  13. 如申請專利範圍第12項所述之非暫態電腦可讀取儲存媒體,進一步包含:回應於判斷存在不滿足該判定但滿足該第二子集假設的狀態,變更該第一子集假設以獲得與該第一子集假設邏 輯上不等效且與該第二子集假設不同的第三子集假設;以及藉由至少判斷當滿足該第三子集假設時該電路設計是否滿足該判定來驗證該電路設計。
  14. 如申請專利範圍第9項所述之非暫態電腦可讀取儲存媒體,其中該第二子集假設為該第一組假設之不足近似。
  15. 如申請專利範圍第14項所述之非暫態電腦可讀取儲存媒體,其中若存在滿足該第二子集假設但不滿足該判定的狀態,則該電路設計不滿足該判定。
  16. 如申請專利範圍第15項所述之非暫態電腦可讀取儲存媒體,進一步包含:回應於判斷每當滿足該第二子集假設時滿足該判定,變更該第一子集假設以獲得與該第一子集假設邏輯上不等效且與該第二子集假設不同的第三子集假設;以及藉由至少判斷當滿足該第三子集假設時該電路設計是否滿足該判定來驗證該電路設計。
  17. 一種用於驗證電路設計之設備,包含:聯合機制,其組態成:簡化第一組假設以獲得第二組假設,其中該第一組假設係邏輯上等效於該第二組假設;將第一子集假設與一組判定中之一判定聯合,其中該第一子集假設為該第二組假設之一子集,且其中滿足 對應於電路設計所希望的行為的該判定;近似機制,其組態成變更該第一子集假設以獲得與該第一子集假設邏輯上不等效的第二子集假設;以及形式驗證機制,其組態成當滿足該第二子集假設時,證明該電路設計滿足該判定。
  18. 如申請專利範圍第17項所述之設備,其中將第一子集假設與該組判定中之該判定聯合涉及:將初始子集假設與該判定聯合,其中若該假設直接或間接與該判定共享邏輯,則一假設與一判定聯合;以及無論是否滿足該第一假設,若該判定為可滿足,從該初始子集假設移除至少一第一假設。
  19. 如申請專利範圍第17項所述之設備,其中該第二子集假設為該第一組假設之過近似。
  20. 如申請專利範圍第19項所述之設備,其中每當滿足該第二子集假設時,若滿足該判定,則該電路設計滿足該判定。
  21. 如申請專利範圍第20項所述之設備,其中若該驗證機制判斷存在不滿足該判定但滿足該第二子集假設的狀態,該近似機制進一步組態成變更該第一子集假設以獲得與該第一子集假設邏輯上不等效且與該第二子集假設不同的第三子集假設;以及該驗證機制進一步組態成藉由至少判斷當滿足該第三子集假設時該電路設計是否滿足該判定來驗證該電路設 計。
  22. 如申請專利範圍第17項所述之設備,其中該第二子集假設為該第一組假設之不足近似。
  23. 如申請專利範圍第22項所述之設備,其中若存在滿足該第二子集假設但不滿足該判定的狀態,則該電路設計不滿足該判定。
  24. 如申請專利範圍第23項所述之設備,其中若該驗證機制判斷每當滿足該第二子集假設時滿足該判定,該近似機制進一步組態成變更該第一子集假設以獲得與該第一子集假設邏輯上不等效且與該第二子集假設不同的第三子集假設;以及該驗證機制進一步組態成藉由至少判斷當滿足該第三子集假設時該電路設計是否滿足該判定來驗證該電路設計。
TW99105823A 2009-04-17 2010-03-01 形式性質驗證之假設的自動近似 TWI471748B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/425,597 US8813007B2 (en) 2009-04-17 2009-04-17 Automatic approximation of assumptions for formal property verification

Publications (2)

Publication Number Publication Date
TW201042481A TW201042481A (en) 2010-12-01
TWI471748B true TWI471748B (zh) 2015-02-01

Family

ID=42958100

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99105823A TWI471748B (zh) 2009-04-17 2010-03-01 形式性質驗證之假設的自動近似

Country Status (4)

Country Link
US (1) US8813007B2 (zh)
CN (1) CN101866372B (zh)
TW (1) TWI471748B (zh)
WO (1) WO2010120490A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100313175A1 (en) * 2009-06-05 2010-12-09 Advanced Micro Devices, Inc. Verification systems and methods
US10528868B2 (en) 2010-06-25 2020-01-07 Clayton Gillespie Solving NP-complete problems without hyper polynomial cost
US8881075B2 (en) 2013-03-04 2014-11-04 Atrenta, Inc. Method for measuring assertion density in a system of verifying integrated circuit design
KR102341689B1 (ko) * 2014-03-25 2021-12-20 클레이톤 길스파이 하이퍼-다항식 비용 없이 np-완전 문제들을 풀이하는 것
US10915683B2 (en) * 2018-03-08 2021-02-09 Synopsys, Inc. Methodology to create constraints and leverage formal coverage analyzer to achieve faster code coverage closure for an electronic structure
US10657211B2 (en) 2018-04-20 2020-05-19 International Business Machines Corporation Circuit generation based on zero wire load assertions
CN112257366B (zh) * 2020-10-13 2024-05-07 深圳国微芯科技有限公司 一种用于等价性验证的cnf生成方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748352B1 (en) * 1999-12-30 2004-06-08 Intel Corporation Method and apparatus for scan design using a formal verification-based process
US20040261043A1 (en) * 2003-06-19 2004-12-23 International Business Machines Corporation Integrated design verification and design simplification system
TW200602918A (en) * 2004-02-19 2006-01-16 Ibm Incremental, assertion-based design verification

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US6931611B2 (en) * 2001-12-19 2005-08-16 Freescale Semiconductor, Inc. Design verification system for avoiding false failures and method therefor
US6567971B1 (en) * 2001-12-20 2003-05-20 Logicvision, Inc. Circuit synthesis method using technology parameters extracting circuit
US7322017B2 (en) * 2004-12-14 2008-01-22 International Business Machines Corporation Method for verification using reachability overapproximation
US7711536B2 (en) * 2005-12-30 2010-05-04 Cadence Design Systems, Inc. System and method for verification aware synthesis
US20080127009A1 (en) * 2006-11-03 2008-05-29 Andreas Veneris Method, system and computer program for automated hardware design debugging
US7685547B1 (en) * 2007-07-02 2010-03-23 Cadence Design Systems, Inc. Method, system, and computer program product for generating automated assumption for compositional verification
CN101159492A (zh) * 2007-09-11 2008-04-09 Ut斯达康通讯有限公司 一种用于sdh逻辑设计的仿真验证系统及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748352B1 (en) * 1999-12-30 2004-06-08 Intel Corporation Method and apparatus for scan design using a formal verification-based process
US20040261043A1 (en) * 2003-06-19 2004-12-23 International Business Machines Corporation Integrated design verification and design simplification system
TW200602918A (en) * 2004-02-19 2006-01-16 Ibm Incremental, assertion-based design verification

Also Published As

Publication number Publication date
WO2010120490A2 (en) 2010-10-21
US20100269078A1 (en) 2010-10-21
US8813007B2 (en) 2014-08-19
CN101866372B (zh) 2014-07-02
WO2010120490A3 (en) 2011-01-13
TW201042481A (en) 2010-12-01
CN101866372A (zh) 2010-10-20

Similar Documents

Publication Publication Date Title
TWI471748B (zh) 形式性質驗證之假設的自動近似
US8327302B2 (en) Techniques for analysis of logic designs with transient logic
TWI479351B (zh) 模擬電路設計之方法及設備以及電腦可讀取儲存媒體
Love et al. Enhancing security via provably trustworthy hardware intellectual property
Jin et al. A proof-carrying based framework for trusted microprocessor IP
US7076753B2 (en) Method and apparatus for solving sequential constraints
US10970443B2 (en) Generation of module and system-level waveform signatures to verify, regression test and debug SoC functionality
JP2004005674A (ja) 効率的な有界モデル検査方法
Alur et al. Theory in practice for system design and verification
US7149987B2 (en) Method and apparatus for performing generator-based verification
US7926020B1 (en) Methods for automatically generating assertions
US20100313175A1 (en) Verification systems and methods
US20100083201A1 (en) Verification Technique Including Deriving Invariants From Constraints
Letychevskyi et al. Modeling method for development of digital system algorithms based on programmable logic devices
KR102545621B1 (ko) 상태-유지 루프들 및 발진 루프들을 식별하기 위한 하드웨어 시뮬레이션 시스템들 및 방법들
TWI488063B (zh) 最佳化並驗證第一電路的設備,方法及電腦可讀取儲存媒體
TWI461945B (zh) 實施使用下限距離之抽象化-精緻化技術的方法及裝置
Guo et al. Automatic RTL-to-formal code converter for IP security formal verification
US8065641B2 (en) Automatically creating manufacturing test rules pertaining to an electronic component
US9344408B2 (en) Cloud-basd digital verification system and method
Tong et al. Test compaction techniques for assertion-based test generation
US20120151423A1 (en) Large scale formal analysis by structural preprocessing
Shi Constrained-random stimuli generation for post-silicon validation
Chenard Hardware-based temporal logic checkers for the debugging of digital integrated circuits
Ramana et al. Functional Constraint Extraction at Register Transfer Level for ATPG to Improve Verification in terms of Coverage