專利名稱:估計形式驗證問題的難度級的制作方法
技術領域:
本發(fā)明總體上涉及集成電路設計領域,更具體來說,涉及對形式驗證問題的難度級的估計。
背景技術:
電路技術的進步已提出在集成電路上布置多得多的晶體管,這需要更復雜的電路設計。然而,當面對更復雜的電路設計時,用于對電路設計進行評估的公知技術往往是低效的。因此,在某些情況下,用于對電路設計進行評估的公知技術可能是不令人滿意的。
發(fā)明內容
根據本發(fā)明,可以減少或消除與用于估計形式驗證問題的難度級的先前技術相關聯(lián)的缺點和問題。
根據一個實施例,對驗證問題的難度級的估計包括以下步驟接收輸入,該輸入包括設計和可以被驗證的關于該設計的性質。針對關于該設計的每個性質執(zhí)行驗證處理。根據所述驗證處理針對每個性質建立性質可驗證性量度值,其中性質可驗證性量度值表示對關于所述設計的性質進行驗證的難度級。根據所述多個性質可驗證性量度值確定設計可驗證性量度值,其中,所述設計可驗證性量度值表示對所述設計進行驗證的難度級。
本發(fā)明的某些實施例可以提供一個或更多個技術優(yōu)點。一個實施例的技術優(yōu)點可能在于建立了用于對電路進行驗證的難度級。針對一組性質中的每個性質,確定了用于對關于電路的性質進行驗證的難度級。根據這些性質的難度級,建立了用于對電路進行驗證的難度級。電路的難度級可以用于估計對電路進行驗證所需要的資源量、設計驗證方法、調節(jié)驗證引擎參數、修改電路設計以進行驗證、或執(zhí)行任何其他合適的目的。
本發(fā)明的某些實施例可以不包括以上多個技術優(yōu)點中的任何一個、可以包括以上多個技術優(yōu)點中的一些或所有技術優(yōu)點。對于本領域的技術人員,根據附圖、說明書以及所附權利要求,將容易顯見一個或更多個其他技術優(yōu)點。
為了更全面地理解本發(fā)明及其特征和優(yōu)點,下面結合附圖來參考以下描述,在附圖中圖1是用于估計形式驗證問題的難度級的系統(tǒng)的一個實施例的框圖;圖2是例示了難度級的示例組的表;圖3是用于估計對電路的性質進行的驗證的難度級的方法的一個實施例的流程圖;以及圖4是例示了根據可抽出性和抽出后的電路的最終規(guī)模的示例粗略分類的表。
具體實施例方式
通過參照附圖的圖1到4可以最佳地理解本發(fā)明的多個實施例及其優(yōu)點,將類似的標號用于各圖的類似和對應部分。
圖1是用于估計形式驗證問題的難度級的系統(tǒng)10的一個實施例的框圖。根據本實施例,系統(tǒng)10建立了用于對電路進行驗證的難度級。針對一組性質中的每個性質,確定用于對關于電路的性質進行驗證的難度級??梢愿鶕@些性質的難度級建立用于對電路進行驗證的難度級。
通常,電路的規(guī)范描述了電路的期望行為,對電路的設計描述了為了執(zhí)行所期望的行為而設計的算術和邏輯操作??梢杂啥鄠€數學模型來表示該規(guī)范和設計。根據形式驗證處理可以對這些數學模型進行比較,以建立該設計是否執(zhí)行了由規(guī)范描述的期望行為。然而,執(zhí)行該比較往往是困難的。此外,在某些情況下驗證處理可能根本不會完成。
系統(tǒng)10對形式驗證問題的難度級進行估計。根據一個實施例,難度級可以反映用于執(zhí)行驗證問題所需的資源的量。例如,資源可以包括計算時間或存儲或計算時間和存儲二者。通常,越高的難度級表示越多的資源,而越低的難度級表示越少的資源。通過估計難度級,在運行全部驗證處理之前可以對驗證方法進行設計或者可以對形式驗證問題進行調節(jié)。
根據所例示的實施例,系統(tǒng)10包括如圖1所示地相連接的客戶機系統(tǒng)20、數據庫22以及服務器系統(tǒng)24。根據一個實施例,客戶機系統(tǒng)20允許用戶與服務器系統(tǒng)24相通信,以估計形式驗證問題的難度級。
數據庫22存儲可能由服務器系統(tǒng)24使用的數據。根據所例示的實施例,數據庫22存儲經受驗證的模型30。模型30表示由系統(tǒng)10正在分析的模型。模型30包括經受驗證的設計34和性質36。設計34可以表示可以被驗證的任何合適的設計,如電路設計。電路設計可以包括任何合適的規(guī)模的寄存器傳輸級(RTL)電路設計,如多達20,000個鎖存器和多達30,000個門。例如,可以采用(可以在電路的設計過程中使用的)超高速集成電路(VHSIC)硬件描述語言(VHDL)或VERILOG來表達設計34。
然而,設計34可以表示任何合適的設計。作為示例,設計34可以表示規(guī)范(specification)級或系統(tǒng)級電路設計。作為另一示例,設計34可以表示軟件設計而非電路設計。
性質36可以表示可以驗證的設計34的特征。根據一個實施例,特征通常描述了電路在指定條件下的行為。示例性質36可以包括與工業(yè)或學術基準(benchmark)設計相關聯(lián)的性質,如包括可視交互合成(VIS)基準組。性質可以用于捕獲系統(tǒng)行為隨時間的演變,或者性質可以表示時間不變系統(tǒng)特性。
服務器系統(tǒng)24對可以用于估計形式驗證問題的難度級的應用進行管理。根據所例示的實施例,服務器系統(tǒng)24包括驗證引擎40、難度估計器44以及設計修改器48。
驗證引擎40可以表示可進行操作以執(zhí)行驗證處理的軟件編碼引擎。驗證處理可以指對關于設計的性質進行驗證的處理,并且可以包括形式或非形式驗證處理。示例驗證處理例如可以包括自動測試模式生成(ATPG)處理、基于可滿足性的有界模型檢驗(SAT BMC)處理、基于二叉判定圖(BDD)的符號模型檢驗處理、仿真處理、其他合適的驗證處理或前述處理的任何組合。
難度估計器44可以進行操作以估計驗證問題的難度級。根據一個實施例,難度估計器44可以對可以用于估計驗證問題的難度級的可驗證性量度進行計算。難度估計器44可以根據用于估計難度級的任何合適的技術進行操作。參照圖2對方法的示例進行描述。
根據一個實施例,驗證引擎40和難度估計器44可以協(xié)作以建立用于驗證引擎40的驗證方法或驗證參數。驗證參數可以指驗證引擎的參數,并且可以包括超時(time out)、努力(effort)、深度(depth)、其他參數或前述參數的任何合適的組合。
根據本實施例,驗證引擎40可以執(zhí)行驗證問題的樣本運行,并將結果發(fā)送給難度估計器44。難度估計器44可以根據樣本運行來計算可驗證性量度。可驗證性量度可以表示可以如何改變驗證參數以降低難度級。作為示例,如果一問題的難度級高,則可以增大驗證引擎40的超時值。作為另一示例,可以改變驗證參數以選擇比使用更多資源的驗證引擎40使用更少資源的多個驗證引擎40的特定組或特定序列。
設計修改器48可以用于響應于來自難度估計器44的結果對設計34進行修改??梢詫υO計34進行修改以降低設計34的難度級。根據一個實施例,設計修改器48可以允許用戶響應于來自系統(tǒng)10的結果對設計34進行修改。根據另一實施例,設計修改器48可以響應于來自系統(tǒng)10的結果對設計34自動地進行修改。不必要求對最終電路設計進行修改。作為示例,可以僅僅為了驗證電路設計而進行修改,并且對于電路的實際生產可以去除所述修改。
根據一個實施例,可以按以下方式計算可驗證性量度。模型30包括電路R的設計34和待驗證電路R的n個性質{P1,...,Pn}的組36。電路R的性質Pi的性質可驗證性量度值V(R,Pi)表示對關于電路R的性質Pi進行驗證的難度級。作為示例,越高的量度值可以表示越高的難度級,而越低的量度值可以表示越低的難度級。
根據本實施例,可以針對性質計算出通過(passing)可驗證性量度值和不通過(failing)可驗證性量度值。作為示例,通過可驗證性量度值Vpass(R,Pi)假設性質Pi最終通過了,而不通過可驗證性量度值Vfail(R,Pi)假設性質Pi最終不通過。
可以將設計34的設計可驗證性量度值計算成表示對關于設計34的性質組進行驗證的難度級。作為示例,可以將電路R的電路可驗證性量度值V(R)計算成表示對關于電路R的性質組進行驗證的難度級??梢愿鶕再|可驗證性量度值V(R,Pi)的加權平均來計算電路可驗證性量度值V(R)。
根據一個實施例,可以根據通過可驗證性量度值Vpass(R,Pi)來計算電路可驗證性量度值V(R),這是因為在某些情況下難以估計不通過可驗證性量度值。根據本實施例,可以根據公式(1)來計算電路可驗證性量度值V(R)V(r)=1nΣi=1nwiVpass(R,Pi)---(1)]]>其中,wi表示性質Pi的權重。可以使用通過可驗證性量度值作為不通過可驗證性量度值的過近似(over-approximation)。
可以按任何合適的方式對所述多個性質進行加權。根據一個實施例,與較不重要或較不關鍵的性質相比,可以對更重要或更關鍵的性質賦予更高的權重。作為示例,可以對具有更大影響錐的性質賦予更高的權重。
可以按任何合適的方式來表示可驗證性量度值。作為示例,可以將該值表示為數字、范圍或分類。根據一個實施例,將可驗證性量度值表示為一組m個難度級{L1,...,Lm}的分類??梢愿鶕M挠嬎銜r間和精度級來選擇難度級的數量m。參照圖2對難度級的示例組進行更詳細的描述。
圖2是例示了難度級的示例組的表60。根據所例示的實施例,該組包括6個難度級L1,...,L6。這些級是簡單、容易、中等、難、非常難以及未定級。近似時間表示對所述難度級的問題執(zhí)行驗證所需的時間的近似。未定難度級表示不能確定難度級。
在不脫離本發(fā)明的范圍的情況下可以對難度級的示例組進行修改、添加或刪除。作為示例,組可以具有更多、更少或不同的難度級。作為另一示例,近似時間可以不同。作為另一示例,可以采用除近似時間以外的參數來表示難度級。
再次參照圖1,電路可驗證性量度值可以具有置信值??梢园慈魏魏线m的方式對置信值進行估定。作為示例,可以對根據提供對電路的更大覆蓋度的一組性質計算出的電路可驗證性量度值賦予比根據提供更小覆蓋度的組計算出的電路可驗證性量度值更高的置信值。
根據具體需要,可以對系統(tǒng)10的一個或更多個組成部分進行集成或分離。例如,使用單個計算機系統(tǒng)(例如,單臺個人計算機)可以提供客戶機系統(tǒng)20和服務器系統(tǒng)24的功能。如果對任何組成部分進行分離,則可以使用一個或更多個局域網(LAN)、城域網(MAN)、廣域網(WAN)、諸如因特網的全球計算機網或其他有線或無線鏈路來耦合這些組成部分。
“計算機”可以指可進行操作以接受輸入、根據預定義規(guī)則對輸入進行處理并產生輸出的任何合適的設備,例如,個人計算機、工作站、網絡計算機、無線電話、個人數字助理、這些或其他設備中的一個或更多個微處理器、或任何其他合適的處理設備。
系統(tǒng)10的一個或更多個組成部分可以包括合適的輸入設備、輸出設備、大容量存儲介質、處理器、存儲器、或其他用于根據系統(tǒng)10的操作對信息進行接收、處理、存儲或通信的其他組成部分。作為示例,系統(tǒng)10的一個或更多個組成部分可以包括邏輯、接口、存儲器、其他組成部分、或前述組成部分的任何合適的組合?!斑壿嫛笨梢灾赣布?、軟件、其他邏輯、或這些部分的任何合適的組合。某些邏輯可以對設備的操作進行管理,并且可以例如包括處理器?!疤幚砥鳌笨梢灾缚蛇M行操作以執(zhí)行指令并對數據進行操縱以執(zhí)行操作的任何合適的裝置。
“接口”可以指設備的這樣的邏輯,即,其可進行操作以接收該設備的輸入、從該設備發(fā)送輸出、執(zhí)行對輸入或輸出或這兩者的合適的處理、或前述處理的任何合適的組合,并且該邏輯可以包括一個或更多個端口、轉換軟件或這兩者?!按鎯ζ鳌笨梢灾缚蛇M行操作以存儲并使得便于獲取信息的邏輯,并且可以包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、磁驅動器、盤驅動器、光盤(CD)驅動器、數字視頻盤(DVD)驅動器、可移動介質存儲器、任何其他合適的數據存儲介質、或這些部分中的任何部分的組合。
在不脫離本發(fā)明的范圍的情況下可以對系統(tǒng)10進行修改、添加或刪除。作為示例,盡管將系統(tǒng)10描述為對電路設計進行評估,但是系統(tǒng)10可以用于對軟件進行評估。此外,可以由更多、更少或其他多個模塊來執(zhí)行系統(tǒng)10的操作。再者,可以使用包括軟件、硬件、其他邏輯、或這些部分的任何合適的組合的任何合適的邏輯來執(zhí)行系統(tǒng)10的操作。在本文檔中使用的“每個”是指一個組中的每個元素或一個組的子組中的每個元素。
圖3是用于對驗證有關電路的性質的難度級進行估計的方法的一個實施例的流程圖。根據本實施例,設計表示帶有諸如鎖存器的多個電路元件的電路。對設計的結構和功能特征進行分析以估計性質的性質可驗證性量度值。結構特征可以描述設計34的結構,功能特征可以描述設計34的操作??梢杂扇魏魏线m的系統(tǒng)(如圖1的系統(tǒng)10)來執(zhí)行本方法。
本方法在步驟100處開始,在該步驟中接收輸入。該輸入可以包括模型30,模型30包括設計34和性質36的組中的一性質??梢詫⒃撔再|作為斜接(miter)插入設計34中。在步驟104處根據設計34生成邏輯影響錐。通過將設計34合成到多個門可以生成邏輯影響錐,然后根據這些門來提取邏輯影響錐。
在步驟108處執(zhí)行自動測試模式生成(ATPG)處理。自動測試模式生成處理試圖按不同的信號對一系列值進行驗核。在該處理過程中,可以發(fā)現直接的局部沖突,使得不需要對整個設計34進行分析。因此,自動測試模式生成處理的結果和運行時間可以表示難度級。
根據一個實施例,更短的運行時間可能對應于更低的難度級,而越長的運行時間可能對應于越高的難度級。根據所例示的實施例,比一運行時間閾值短的運行時間可以表示該問題是簡單的。該運行時間閾值可以具有被選擇來標識簡單問題的任何合適的值。作為示例,該運行時間閾值可以小于5秒,如一秒、兩秒、三秒或四秒。
如果在步驟112處自動測試模式生成處理的運行時間小于運行時間閾值,則本方法進行到步驟116。在步驟116處將該問題歸類為簡單(trivial)。然后本方法進行到步驟152。
如果在步驟112處運行時間不小于運行時間閾值,則本方法進行到步驟120,在步驟120處執(zhí)行有界模型檢驗(BMC)處理。該處理可以執(zhí)行任何合適的時間量,如10到60秒,例如,約20秒。有界模型檢驗處理考慮特定長度的反例,并且,當且僅當存在這種反例時對可滿足的命題公式進行測試。典型地,將界限中的時間幀的數量漸進地增大預定數量,并對該問題求解更大數量的時間幀,直到超過了時間限。每個步長可以增大任何適合數量個時間幀,如2到20個時間幀,例如,約10個時間幀。
根據一個實施例,時間幀的數量的增大速率表示難度級。根據該實施例,越低的速率可以表示越高的難度級,而越高的速率可以表示越低的難度級。根據所例示的實施例,低于一速率閾值的速率可以表示較高的難度級。該速率閾值可以具有任何合適的值,例如,每秒10到60個時間幀,如每秒20、30或50個時間幀。
如果在步驟124處速率低于速率閾值,則本方法進行到步驟128,在步驟128處對設計34執(zhí)行抽出(abstraction)處理。抽出處理對電路進行適當的簡化,以減小電路的規(guī)模。作為示例,可以去除諸如冗余鎖存器的冗余電路元件。
可以按任何合適的方式執(zhí)行抽出處理。根據一個實施例,可以利用有界模型檢驗處理來執(zhí)行該處理。有界模型檢驗處理可以具有任何合適的界限,如20到50個幀,例如,25個幀,并且可以運行任意合適的時間,如10到60秒,例如,約20秒。
根據一個實施例,原始電路包括多個原始電路元件。從原始電路抽出多個電路元件,以得到具有其余電路元件的抽出后電路。例如,可以保留構成不可滿意的核的多個鎖存器,而將其余部分抽出,作為主輸入??梢詫㈦娐返目沙槌鲂员硎緸閺脑茧娐烦槌龅脑臄盗亢驮茧娐吩臄盗康暮瘮?。作為示例,可以將可抽出性定義為抽出后的電路元件與原始電路元件之比。
電路的可抽出性和其余電路元件的數量可以表示難度級。例如,越高的可抽出性可以表示越低的難度級,并且更多數量的剩余電路元件可以表示更高的難度級。因此,可以使用可抽出性和剩余電路元件的數量來將問題歸類成多個粗略分類。參照圖4對示例粗略分類進行更詳細的描述。
圖4是例示了根據電路的可抽出性和抽出后的電路的最終規(guī)模的示例粗略分類的表70。根據本示例,將可抽出性表示為抽出后的電路元件的數量與原始電路元件的數量之比,并將其分成4個類別。將抽出后的電路的規(guī)模(最終規(guī)模)表示為抽出后的電路的觸發(fā)器(flip-flop(FF))的數量,并將其分成5個類別。
在不脫離本發(fā)明的范圍的情況下可以對示例粗略分類進行修改、添加或刪除。作為示例,粗略分類可以具有更多、更少或不同的最終規(guī)模或可抽出性類別。作為另一示例,粗略分類可以具有更多、更少或不同的分類。
再次參照圖3,如果在步驟124處所述速率不低于速率閾值,則所述方法直接進行到步驟130。在步驟132處執(zhí)行基于BDD的符號模型檢驗處理?;贐DD的符號模型檢驗處理可以指對被編碼成二叉判定圖的狀態(tài)機進行驗證的處理。符號模型檢驗處理可以運行任意合適的時間。例如,該處理可以運行10到60秒,對于經抽出的電路,運行約20秒,對于未經抽出的電路,運行40秒。
在步驟136處對來自符號模型檢驗處理的數據進行分析??梢允褂迷摂祿泶_定抽出處理(如果執(zhí)行的話)是否過度了。如果二叉判定圖步驟在短時段內進行得很深(deep),則可以將該抽出指定為過度的(over-aggressive)。作為示例,可以將這樣的抽出指定為過度的其中,在15到25秒(如約20秒)的時段內二叉判定圖步驟深入了多于140(如多于150)。如果在步驟140處將抽出指定為過度的,則方法進行到步驟144,在步驟144處將問題歸類為未判定的。然后該方法進行到步驟152。
如果在步驟140處未將抽出指定為過度的,則方法進行到步驟148。在步驟148處根據二叉判定圖數據對問題進行歸類。如果在所述運行時間內完成了符號模型檢驗處理,則可以將難度級指定為簡單或容易的。否則,二叉判定圖數據的其他特征可以表示難度級,或者可以用于對在步驟130中生成的分類進行細分。
根據一個實施例,二叉判定圖轉變關系的規(guī)模可以表示難度級。越小的轉變關系可以表示越低的難度級。作為示例,小于15,000個節(jié)點的轉變關系規(guī)??赡芫哂休^低的難度級。二叉判定圖的生長速率也可以表示難度級。越低的速率可以表示越低的難度級。根據一個實施例,可以使用以下準則來根據BDD數據對問題進行歸類??梢允褂迷摲诸悓υ诓襟E130中生成的分類進行細分,以生成最終分類1、如果規(guī)模是在20秒時大于90,000個節(jié)點,則難度級是中等到非常難。
2、如果規(guī)模是在20秒時小于30,000個節(jié)點,則難度級是簡單到容易。
3、如果規(guī)模是在40秒時大于160,00個節(jié)點,則難度級是難到非常難。
4、如果規(guī)模是在40秒時小于100,000個節(jié)點,則難度級是中等到容易。
在步驟152處報告結果。在報告了該結果之后,方法結束。
在不脫離本發(fā)明的范圍的情況下可以對本方法進行修改、添加或刪除。本方法可以包括更多、更少或其他步驟。此外,在不脫離本發(fā)明的范圍的情況下可以按任何合適的順序執(zhí)行多個步驟。
以上方法適用于通過性質。類似的方法可以用于不通過性質。本方法可以包括任何合適的準則。作為示例,電路元件的數量可以表示難度級。越大數量的電路元件可以表示越高的難度級。作為另一示例,二叉判定圖運行的深度可以表示難度級。越深的二叉判定圖運行可以表示越低的難度級。作為另一示例,有界模型檢驗幀的生長速率可以表示難度級。越高的速率可以表示越低的難度級。作為另一示例,二叉判定圖轉變關系可以表示難度級。越小的轉變關系可以表示越低的難度級。
本發(fā)明的某些實施例可以提供一個或更多個技術優(yōu)點。一個實施例的技術優(yōu)點可能在于建立了用于對電路進行驗證的難度級。針對一組性質中的每個性質,確定了用于對關于電路的性質進行驗證的難度級。根據這些性質的難度級,建立了用于對電路進行驗證的難度級。電路的難度級可以用于估計對電路進行驗證所需要的資源量、設計驗證方法、調節(jié)驗證引擎參數、修改電路設計以進行驗證或執(zhí)行任何其他合適的目的。
盡管按照某些實施例和通用的相關聯(lián)的方法對本公開內容進行了描述,但是本領域的技術人員將顯見這些實施例和方法的變更和變換。因此,對示例實施例的以上描述不會限制本公開內容。如由以下權利要求所限定的,在不脫離本公開內容的精神和范圍的情況下還可以進行其他修改、替換以及變更。
權利要求
1.一種用于估計驗證問題的難度級的方法,其包括以下步驟接收包括設計和一組性質的輸入,所述性質組中的性質可操作以針對所述設計而被驗證;針對所述性質組中的每個性質重復以下步驟對關于所述設計的所述每個性質執(zhí)行多個驗證處理;和根據所述多個驗證處理,針對所述每個性質建立性質可驗證性量度值,所述性質可驗證性量度值表示對關于所述設計的所述每個性質進行驗證的難度級;以及根據所述性質組的所述性質可驗證性量度值確定設計可驗證性量度值,所述設計可驗證性量度值表示對關于所述設計的所述性質組進行驗證的難度級。
2.根據權利要求1所述的方法,其中,所述設計包括對電路的電路設計;并且所述設計可驗證性量度值包括電路可驗證性量度值。
3.根據權利要求1所述的方法,其中,所述確定所述設計可驗證性量度值的步驟還包括以下步驟對所述性質組中的每個性質分配權重;計算所述性質可驗證性量度值的加權平均,所述性質的性質可驗證性量度值是根據分配給所述性質的所述權重進行加權的;以及根據所述加權平均生成所述設計可驗證性量度值。
4.根據權利要求1所述的方法,其中,所述建立所述性質可驗證性量度值的步驟還包括以下步驟針對所述性質建立通過性質可驗證性量度值,所述通過可驗證性量度值表示在假設所述性質通過的情況下對所述性質進行驗證的難度級。
5.根據權利要求1所述的方法,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行自動測試模式生成處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟如果所述自動測試模式生成處理的運行時間小于運行時間閾值,則建立較低的難度級。
6.根據權利要求1所述的方法,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行有界模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟確定所述有界模型檢驗處理的多個時間幀的生長速率;并且如果所述速率低于速率閾值,則對所述設計執(zhí)行抽出處理。
7.根據權利要求1所述的方法,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行抽出處理,以從包括第二數量個原始元件的所述設計中抽出第一數量個被抽出元件,以獲得第三數量個剩余元件;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟如果第三數量個剩余元件的數量大于剩余元件閾值,則建立較高的難度級。
8.根據權利要求1所述的方法,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行抽出處理,以從包括第二數量個原始元件的所述設計中抽出第一數量個被抽出元件,以獲得第三數量個剩余元件;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述設計的可抽出性,所述可抽出性包括第一數量個被抽出元件與第二數量個原始元件的數量之比;并且如果所述可抽出性大于可抽出性閾值,則建立較低的難度級。
9.根據權利要求1所述的方法,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟基于關于所述設計的一個或更多個二叉判定圖,執(zhí)行符號模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述二叉判定圖的生長速率;并且如果所述生長速率高于生長速率閾值,則選擇較高的難度級。
10.根據權利要求1所述的方法,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟基于關于所述設計的一個或更多個二叉判定圖,執(zhí)行符號模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述二叉判定圖的轉變關系規(guī)模;并且如果所述轉變關系規(guī)模小于轉變關系規(guī)模閾值,則選擇較低的難度級。
11.一種用于估計驗證問題的難度級的邏輯,所述邏輯被實現在介質中并且可操作以接收包括設計和一組性質的輸入,所述性質組中的性質可操作以針對所述設計而被驗證;針對所述性質組中的每個性質重復以下步驟對關于所述設計的所述每個性質執(zhí)行多個驗證處理;和根據所述多個驗證處理,針對所述每個性質建立性質可驗證性量度值,所述性質可驗證性量度值表示對關于所述設計的所述每個性質進行驗證的難度級;以及根據所述性質組的所述多個性質可驗證性量度值確定設計可驗證性量度值,所述設計可驗證性量度值表示對關于所述設計的所述性質組進行驗證的難度級。
12.根據權利要求11所述的邏輯,其中,所述設計包括對電路的電路設計;并且所述設計可驗證性量度值包括電路可驗證性量度值。
13.根據權利要求11所述的邏輯,其中,所述確定所述設計可驗證性量度值的步驟還包括以下步驟對所述性質組中的每個性質分配權重;計算所述性質可驗證性量度值的加權平均,所述性質的性質可驗證性量度值是根據分配給所述性質的所述權重進行加權的;以及根據所述加權平均生成所述設計可驗證性量度值。
14.根據權利要求11所述的邏輯,其中,所述建立所述性質可驗證性量度值的步驟還包括以下步驟針對所述性質建立通過性質可驗證性量度值,所述通過可驗證性量度值表示在假設所述性質通過的情況下對所述性質進行驗證的難度級。
15.根據權利要求11所述的邏輯,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行自動測試模式生成處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟如果所述自動測試模式生成處理的運行時間小于運行時間閾值,則建立較低的難度級。
16.根據權利要求11所述的邏輯,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行有界模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟確定所述有界模型檢驗處理的多個時間幀的生長速率;并且如果所述速率低于速率閾值,則對所述設計執(zhí)行抽出處理。
17.根據權利要求11所述的邏輯,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行抽出處理,以從包括第二數量個原始元件的所述設計中抽出第一數量個被抽出元件,以獲得第三數量個剩余元件;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟如果第三數量個剩余元件的數量大于剩余元件閾值,則建立較高的難度級。
18.根據權利要求11所述的邏輯,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行抽出處理,以從包括第二數量個原始元件的所述設計中抽出第一數量個被抽出元件,以獲得第三數量個剩余元件;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述設計的可抽出性,所述可抽出性包括第一數量個被抽出元件與第二數量個原始元件的數量之比;并且如果所述可抽出性大于可抽出性閾值,則建立較低的難度級。
19.根據權利要求11所述的邏輯,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟基于關于所述設計的一個或更多個二叉判定圖,執(zhí)行符號模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述二叉判定圖的生長速率;并且如果所述生長速率高于生長速率閾值,則選擇較高的難度級。
20.根據權利要求11所述的邏輯,其中,所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟基于關于所述設計的一個或更多個二叉判定圖,執(zhí)行符號模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述二叉判定圖的轉變關系規(guī)模;并且如果所述轉變關系規(guī)模小于轉變關系規(guī)模閾值,則選擇較低的難度級。
21.一種用于估計驗證問題的難度級的系統(tǒng),其包括用于接收包括設計和一組性質的輸入的裝置,所述性質組中的性質可操作以針對所述設計而被驗證;用于針對所述性質組中的每個性質重復以下步驟的裝置對關于所述設計的所述每個性質執(zhí)行多個驗證處理;和根據所述多個驗證處理針對所述每個性質建立性質可驗證性量度值,所述性質可驗證性量度值表示對關于所述設計的所述每個性質進行驗證的難度級;以及根據所述性質組的所述多個性質可驗證性量度值來確定設計可驗證性量度值,所述設計可驗證性量度值表示對關于所述設計的所述性質組進行驗證的難度級。
22.一種用于估計驗證問題的難度級的方法,其包括以下步驟接收包括設計和一組性質的輸入,所述設計包括對電路的電路設計,所述性質組中的性質可操作以針對所述設計而被驗證;針對所述性質組中的每個性質重復以下步驟對關于所述設計的所述每個性質執(zhí)行多個驗證處理;和根據所述多個驗證處理,針對所述每個性質建立性質可驗證性量度值,所述性質可驗證性量度值表示對關于所述設計的所述每個性質進行驗證的難度級,所述建立所述性質可驗證性量度值的步驟還包括以下步驟針對所述性質建立通過性質可驗證性量度值,所述通過可驗證性量度值表示在假設所述性質通過的情況下對所述性質進行驗證的難度級;和根據所述性質組的所述多個性質可驗證性量度值來確定設計可驗證性量度值,所述設計可驗證性量度值包括電路可驗證性量度值,所述設計可驗證性量度值表示對關于所述設計的所述性質組進行驗證的難度級,所述確定所述設計可驗證性量度值的步驟還包括以下步驟對所述性質組中的每個性質分配權重;計算所述性質可驗證性量度值的加權平均,所述性質的性質可驗證性量度值是根據分配給所述性質的所述權重而進行加權的;以及根據所述加權平均生成所述設計可驗證性量度值,其中所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行自動測試模式生成處理;所述建立所述性質可驗證性量度值的步驟還包括以下步驟如果所述自動測試模式生成處理的運行時間小于運行時間閾值,則建立較低的難度級;所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行有界模型檢驗處理;所述建立所述性質可驗證性量度值的步驟還包括以下步驟確定所述有界模型檢驗處理的多個時間幀的生長速率;并且如果所述速率低于速率閾值,則對所述設計執(zhí)行抽出處理;并且所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行抽出處理,以從包括第二數量個原始元件的所述設計中抽出第一數量個被抽出元件,以得到第三數量個剩余元件;所述建立所述性質可驗證性量度值的步驟還包括以下步驟如果第三數量個剩余元件的數量大于剩余元件閾值,則建立較高的難度級;所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟對所述設計執(zhí)行抽出處理,以從包括第二數量個原始元件的所述設計中抽出第一數量個被抽出元件,以獲得第三數量個剩余元件;所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述設計的可抽出性,所述可抽出性包括第一數量個被抽出元件的與第二數量個原始元件的數量之比;并且如果所述可抽出性大于可抽出性閾值,則建立較低的難度級;所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟基于關于所述設計的一個或更多個二叉判定圖,執(zhí)行符號模型檢驗處理;所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述二叉判定圖的生長速率;并且如果所述生長速率高于生長速率閾值,則選擇較高的難度級;所述對關于所述設計的所述每個性質執(zhí)行所述多個驗證處理的步驟還包括以下步驟基于關于所述設計的一個或更多個二叉判定圖,執(zhí)行所述符號模型檢驗處理;并且所述建立所述性質可驗證性量度值的步驟還包括以下步驟計算所述二叉判定圖的轉變關系規(guī)模;并且如果所述轉變關系規(guī)模小于轉變關系規(guī)模閾值,則選擇較低的難度級。
全文摘要
估計形式驗證問題的難度級。對驗證問題的難度級的估計包括以下步驟接收輸入,該輸入包括設計和可以被驗證的關于該設計的性質。針對關于該設計的每個性質執(zhí)行驗證處理。根據所述驗證處理,針對每個性質建立性質可驗證性量度值,其中性質可驗證性量度值表示對關于設計的性質進行驗證的難度級。根據所述多個性質可驗證性量度值來確定設計可驗證性量度值,其中,所述設計可驗證性量度值表示對所述設計進行驗證的難度級。
文檔編號G06F17/50GK1900937SQ20061010594
公開日2007年1月24日 申請日期2006年7月19日 優(yōu)先權日2005年7月19日
發(fā)明者因德拉迪普·高希, 穆庫爾·R·普拉薩德 申請人:富士通株式會社