欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于使用下界距離來執(zhí)行抽象-精化的方法和裝置的制作方法

文檔序號:6582837閱讀:200來源:國知局
專利名稱:用于使用下界距離來執(zhí)行抽象-精化的方法和裝置的制作方法
技術(shù)領(lǐng)域
本公開一般地涉及電子設(shè)計自動化(EDA)。具體而言,本公開涉及用于通過使用抽 象_精化技術(shù)來驗證電路設(shè)計的功能的方法和裝置。
背景技術(shù)
半導(dǎo)體制作技術(shù)的發(fā)展已經(jīng)造成每半導(dǎo)體器件的晶體管數(shù)量的急劇增加。晶體管 計數(shù)的這一增加使得計算機(jī)架構(gòu)師能夠創(chuàng)建具有急劇增加的設(shè)計復(fù)雜度的數(shù)字電路設(shè)計。 因而,隨著數(shù)字電路設(shè)計變得更復(fù)雜,也更多地涉及到為了驗證它們的實施的正確性而需 要的工作。 為了驗證電路設(shè)計的功能,電路設(shè)計驗證團(tuán)隊通常執(zhí)行基于模擬的驗證方法、形 式驗證方法或者這二者的組合。在基于模擬的驗證期間,驗證團(tuán)隊通常將隨機(jī)輸入激勵施 加到待驗證的電路設(shè)計(CUV)以對CUV進(jìn)行模擬并且對來自模擬的響應(yīng)與預(yù)計的響應(yīng)進(jìn)行 比較。按照隨機(jī)輸入激勵對CUV進(jìn)行模擬在性質(zhì)上是概率性的并且依賴于大量輸入向量以 實現(xiàn)對CUV的行為的合理覆蓋。然而隨著電路設(shè)計變得更復(fù)雜,隨機(jī)輸入激勵在覆蓋CUV
的重要拐角情況時變得不太有效。 在形式驗證期間,驗證團(tuán)隊通常嘗試證實或者反證CUV的功能的正確性。形式驗 證通常涉及到構(gòu)造對CUV的正確功能進(jìn)行限定的形式規(guī)范和/或性質(zhì)匯集、然后使用形式 證據(jù)以確定CUV的實施是否滿足形式規(guī)范和/或性質(zhì)匯集。然而,如果沒有使用具體技術(shù)
以使驗證更高效,則形式規(guī)范可能計算成本高。 抽象-精化是這樣一種方式,該方式創(chuàng)建CUV的抽象數(shù)學(xué)模型并且展開抽象模型
直至滿足性質(zhì)或者為CUV發(fā)現(xiàn)反例。具體而言,如果抽象-精化程序確定抽象模型滿足性 質(zhì),則它確定CUV也滿足性質(zhì)。另一方面,如果抽象模型在功能上變得等效于CUV并且形式
驗證技術(shù)發(fā)現(xiàn)反例,則抽象-精化程序確定CUV不滿足性質(zhì)。遺憾的是,抽象-精化方式甚
至可能計算成本高。因此,希望對使用抽象-精化的形式驗證技術(shù)的效率進(jìn)行改進(jìn)。

發(fā)明內(nèi)容
—些實施方式提供用于驗證電路設(shè)計的功能的方法和裝置。具體而言,一些實施
方式通過確定使用抽象-精化的形式驗證工具何時可以避免執(zhí)行可達(dá)性分析來提高該形 式驗證工具的性能。 可以使用狀態(tài)變量集合來限定性質(zhì),從而各狀態(tài)變量與CUV中的順序要素相關(guān)
聯(lián)。在兩個順序要素之間的路徑的長度可以至少部分地基于路徑中的順序要素數(shù)量,從而 在兩個狀態(tài)變量之間的距離等于在與兩個狀態(tài)變量相關(guān)聯(lián)的兩個順序要素之間的最短路 徑的長度。 抽象模型的下界距離(LBD)可以定義如下。如果抽象模型包含CUV中的與性質(zhì)中 的狀態(tài)變量的距離為k或者更少的所有狀態(tài)變量,則抽象模型的LBD等于k。換而言之,抽 象模型的下界距離k是距離值,從而距離為k或者更少的所有狀態(tài)變量在抽象模型中。
用于抽象模型的上界距離可以被定義為在抽象模型中的狀態(tài)變量與性質(zhì)中的狀 態(tài)變量之間的最大距離值。 在一些實施方式中,系統(tǒng)可以構(gòu)造稱為LBD抽象模型的如下抽象模型,該抽象模 型包括CUV中的與性質(zhì)中的狀態(tài)變量的距離為k或者更少的所有狀態(tài)變量。注意這一抽象 模型的LBD為k。然后,系統(tǒng)可以通過使用LBD抽象模型來確定對于性質(zhì)而言是否存在反 例。如果存在反例,則系統(tǒng)可以存儲值k,從而抽象-精化技術(shù)可以使用存儲的LBD值以確 定是否可以略過可達(dá)性分析。另一方面,如果不存在反例,則系統(tǒng)可以確定CUV滿足性質(zhì)。
具體而言,抽象-精化技術(shù)可以針對抽象模型計算上界距離并且確定當(dāng)前LBD值 是否大于或者等于上界距離。如果當(dāng)前LBD值大于或者等于上界距離,則抽象_精化技術(shù) 可以推斷抽象模型不滿足性質(zhì),并且抽象_精化技術(shù)可以決定不對抽象模型執(zhí)行可達(dá)性分 析。注意系統(tǒng)可以與抽象精化并行地執(zhí)行LBD計算。 系統(tǒng)可以使用諸多技術(shù)來確定反例,這些技術(shù)包括但不限于基于二元決策圖 (BDD)的技術(shù)、基于自動測試圖案生成器(APTG)的技術(shù)和基于可滿足性(SAT)的技術(shù)?;?于SAT的技術(shù)包括但不限于有界模型檢驗(BMC)、歸納和插值。


圖1圖示了根據(jù)一個實施方式的在集成電路的設(shè)計和制作過程中的各種階段;
圖2圖示了根據(jù)一個實施方式的驗證環(huán)境; 圖3圖示了根據(jù)一個實施方式的用于與CUV相關(guān)聯(lián)的多個抽象模型的示例性圖 示; 圖4呈現(xiàn)了對根據(jù)一個實施方式的用于使用抽象-精化技術(shù)來驗證用于電路設(shè)計 的性質(zhì)的過程進(jìn)行圖示的流程圖; 圖5呈現(xiàn)了對根據(jù)一個實施方式的用于確定性質(zhì)的反例的過程進(jìn)行圖示的流程 圖; 圖6呈現(xiàn)了對根據(jù)一個實施方式的用于為性質(zhì)計算下界距離的迭代過程進(jìn)行圖 示的流程圖; 圖7呈現(xiàn)了對根據(jù)一個實施方式的用于為電路設(shè)計驗證性質(zhì)的抽象-精化過程進(jìn) 行圖示的流程圖; 圖8圖示了根據(jù)一個實施方式的有助于驗證CUV的功能的示例性計算機(jī)系統(tǒng)。
在附圖中相似標(biāo)號指代相同附圖單元。
具體實施例方式
呈現(xiàn)以下描述以使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)和利用實施方式,并且在特定應(yīng)用及 其要求的背景下提供該描述。本領(lǐng)域技術(shù)人員將容易清楚對公開的實施方式的各種修改, 并且這里限定的一般性原理可以適用于其它實施方式和應(yīng)用而不脫離本發(fā)明的精神和范 圍。因此,本發(fā)明不限于所示實施方式而是將被賦予以與這里公開的原理和特征一致的最 廣范圍。 在本具體實施方式
中描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲于計算機(jī)可讀存儲介質(zhì)上, 該介質(zhì)可以是能夠存儲用于由計算機(jī)系統(tǒng)使用的代碼和/或數(shù)據(jù)的任何設(shè)備或者介質(zhì)。計
5算機(jī)可讀存儲介質(zhì)包括但不限于易失性內(nèi)存、非易失性內(nèi)存、磁和光學(xué)存儲設(shè)備(比如盤 驅(qū)動、磁帶、CD(壓縮盤)、DVD(數(shù)字多功能盤或者數(shù)字視頻盤)或者現(xiàn)在已知或者以后開 發(fā)的能夠存儲計算機(jī)可讀介質(zhì)的其它介質(zhì)。 可以將具體實施方式
這一節(jié)中描述的方法和過程體現(xiàn)為能夠存儲于如上所述計 算機(jī)可讀存儲介質(zhì)中的代碼和/或數(shù)據(jù)。當(dāng)計算機(jī)系統(tǒng)讀取和執(zhí)行計算機(jī)可讀存儲介質(zhì)上 存儲的代碼和/或數(shù)據(jù)時,計算機(jī)系統(tǒng)執(zhí)行體現(xiàn)為數(shù)據(jù)結(jié)構(gòu)和代碼并且存儲于計算機(jī)可讀 存儲介質(zhì)內(nèi)的方法和過程。 另外,可以在硬件模塊中包括下文描述的方法和過程。例如,硬件模塊可以包括但 不限于專用集成電路(ASIC)芯片、現(xiàn)場可編程門陣列(FPGA)和現(xiàn)在已知或者以后開發(fā)的 其它可編程邏輯器件。當(dāng)激活硬件模塊時,硬件模塊實現(xiàn)硬件模塊中所包括的方法和過程。
誠電路(IC) i殳i備罕 圖1圖示了根據(jù)本發(fā)明一個實施方式的在集成電路的設(shè)計和制作過程中的各種 階段。 IC設(shè)計過程通常從使用EDA過程(操作110)來實現(xiàn)的產(chǎn)品構(gòu)思(操作100)開
始。 一旦設(shè)計完成,通常流片(t即-out)(事件140)該設(shè)計,這時該設(shè)計經(jīng)過制作過程(操
作150)以及封裝和組裝過程(操作160)以產(chǎn)生成品芯片(結(jié)果170)。 EDA過程(操作110)包括下文僅出于示例目的而描述的而且并非用來限制本發(fā)明
的操作112-130。具體而言,實際集成電路設(shè)計可能要求設(shè)計者在與下文描述的序列不同的
序列中進(jìn)行設(shè)計操作。 系統(tǒng)設(shè)計(操作112):在這一階段中,設(shè)計者描述實施產(chǎn)品構(gòu)思的功能。他們也可 以執(zhí)行假設(shè)規(guī)劃來精化功能、執(zhí)行成本分析等。硬件_軟件架構(gòu)劃分可以出現(xiàn)在這一階段。 可以在這一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括Model Architect、
Saber⑧、System studio和DesignWare⑧。 邏輯設(shè)計和功能驗證(操作114):在這一階段,編寫用于系統(tǒng)中的模塊的VHDL或 者Verilog代碼,并且檢驗該設(shè)計的功能準(zhǔn)確性。具體而言,檢驗該設(shè)計以保證它產(chǎn)生正 確響應(yīng)。可以在這一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括VCS⑧、
Vera 、 DesignWare 、MagellanTM、Formality 、ESP禾口Leda⑧。 綜合和用于測試的設(shè)計(操作116) : VHDL/Ver i log源碼可以在這一階段中 被轉(zhuǎn)譯成網(wǎng)表??梢葬槍δ繕?biāo)技術(shù)優(yōu)化該網(wǎng)表,并且可以設(shè)計和實施測試以檢驗制造 的微芯片。可以在這一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括 Design C。mpiler⑧、Physical Complier 、 Test Compiler、 Power Compiler 、
FPGAComp i 1 er 、 TetraM AX⑧和Design Ware 。 網(wǎng)表驗證(操作118):在這一階段中,檢驗網(wǎng)表與時序約束的相符性和與VHDL/ Verilog源碼的對應(yīng)性。可以在這一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品
包括Formality⑧、PrimeTime⑧和VCS⑧。 設(shè)計規(guī)劃(操作120):在這一階段中,構(gòu)造和分析用于微芯片的整個布圖規(guī)劃以 便進(jìn)行定時和頂級布線。可以在這一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn) 品包括Astro 和ICCompiler產(chǎn)品。
物理實施(操作122):在這一階段出現(xiàn)布置(對電路元件的定位)和布線(對電 路元件的連接)??梢栽谶@一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括 Astr。TM和IC Compiler產(chǎn)品。 分析和提取(操作124):在這一階段,在晶體管級驗證電路功能;這又允許假設(shè)的 精化??梢栽谶@一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括Astr0RailTM、 PrimeRail、PrimeTime⑧和Star-RCXT 。 物理驗證(操作126):在這一階段中,檢驗設(shè)計以保證制造、電氣問題、光刻問題 和電路的正確性。Hercules 是可以在這一階段使用的來自Synopsys公司的示例性EDA軟 件產(chǎn)品。 解析度增強(qiáng)(操作128):這一階段涉及到對布局的幾何形狀的操控以提高設(shè)計的 可制造性??梢栽谶@一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括Proteus/ Progen、 ProteusAF禾口 PSMGen。 掩模數(shù)據(jù)預(yù)備(操作130):這一階段提供用于產(chǎn)生掩模以產(chǎn)生成品芯片的"流片" 數(shù)據(jù)。可以在這一階段使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括CATS⑧系 列產(chǎn)品。
概沭 圖2圖示了根據(jù)一個實施方式的驗證環(huán)境。驗證環(huán)境200包括驗證系統(tǒng)202和多 個LBD計算引擎204-208。在這些實施方式的一些變形中,驗證系統(tǒng)202可以包括LBD計算 引擎204-208。 LBD計算引擎204-208取得作為輸入的CUV 210和性質(zhì)212并且分別生成 下界距離(LBD) 216-220。驗證系統(tǒng)202取得作為輸入的CUV 210、性質(zhì)212和LBD216-220 并且為CUV 210生成驗證報告222。在一些實施方式中,可以使用硬件描述語言(HDL)來實 施CUV 210。在其它實施方式中,CUV 210可以實施為門級設(shè)計。 在一些實施方式中,使用狀態(tài)變量集合來限定性質(zhì)(例如性質(zhì)212),從而各狀態(tài) 變量與CUV 210中的順序要素相關(guān)聯(lián)。性質(zhì)可以是安全性質(zhì)或者不可達(dá)性性質(zhì)。安全性質(zhì) 指定CUV 210在正常操作條件期間必須滿足的約束集合。因此,驗證系統(tǒng)202可以在它確 定CUV 210在正常操作條件期間不能滿足針對給定性質(zhì)的約束集合時確定CUV 210實施非 法狀態(tài)。反言之,不可達(dá)性性質(zhì)指定CUV 210在正常操作條件期間絕不能滿足的約束集合。 因此,驗證系統(tǒng)202可以在它確定CUV 210在正常操作條件期間可以滿足來自給定的不可 達(dá)性性質(zhì)的約束時確定CUV 210實施非法狀態(tài)。 在一些實施方式中,驗證環(huán)境200通過先將性質(zhì)212-214轉(zhuǎn)換成不可達(dá)性性質(zhì)來 對CUV 210執(zhí)行驗證。 在一些實施方式中,在CUV 210中的兩個順序要素之間的路徑的長度部分地基于 路徑中的順序要素數(shù)量,從而在兩個狀態(tài)變量之間的距離等于在與兩個狀態(tài)變量相關(guān)聯(lián)的 兩個順序要素之間的最短路徑的長度。基于這些定義,下界距離是如下數(shù)值,該數(shù)值標(biāo)識 CUV 210的如下狀態(tài)變量的集合,這些狀態(tài)變量代表CUV 210的用于滿足性質(zhì)的不足部分, 從而CUV 210的這些標(biāo)識的狀態(tài)變量具有與性質(zhì)中的狀態(tài)變量之間的小于或者等于下界 距離的距離。 在操作期間,LBD計算引擎204先通過生成LBD抽象模型來為性質(zhì)212確定下界 距離214。抽象模型是CUV 210的簡化抽象解釋的數(shù)學(xué)或者邏輯表示。在一些實施方式中,抽象模型可以包括來自CUV 210的多個狀態(tài)變量并且可以包括與這些狀態(tài)變量相關(guān)聯(lián)的 邏輯。LBD計算引擎204使用CUV 210的LBD抽象模型以確定反例對于性質(zhì)212而言是否 存在。如果反例存在,則LBD計算引擎204為LBD抽象模型計算下界距離并且將下界距離 值發(fā)送到驗證系統(tǒng)202。 另一方面,如果反例不存在,則LBD計算引擎204確定LBD抽象模型滿足性質(zhì)212。 注意由于LBD抽象模型包括CUV 210的狀態(tài)變量的子集,所以當(dāng)LBD抽象模型滿足性質(zhì)212 時,CUV 210滿足性質(zhì)212。因此,當(dāng)反例對于性質(zhì)212而言不存在時,LBD計算引擎204向 驗證系統(tǒng)202通知CUV 210滿足性質(zhì)212。 在一些實施方式中,LBD計算引擎204通過先為LBD抽象模型中的邊界狀態(tài)變量集 合確定它們與性質(zhì)中的狀態(tài)變量的相應(yīng)距離來為LBD抽象模型計算下界距離。然后,LBD計 算引擎204從為邊界狀態(tài)變量集合確定的距離集合中識別最小距離并且將下界距離設(shè)置 成所標(biāo)識的最小距離。注意邊界狀態(tài)變量是LBD抽象模型中的最外狀態(tài)變量,從而邊界狀 態(tài)變量沒有扇入變量、也就是狀態(tài)變量。也注意邊界狀態(tài)變量可以具有如下扇入變量,這些 扇入變量是主輸入變量或者偽輸入變量(即在CUV 210內(nèi)部、但是并非狀態(tài)變量的變量)。
在一些實施方式中,當(dāng)LBD計算引擎204確定大于任何先前下界距離值的新下界 距離值時,LBD計算引擎204可以將新下界距離值傳達(dá)到LBD計算引擎206-208。類似地, LBD計算引擎204可以從LBD計算引擎206-208接收新下界距離值。這使得無論哪個LBD 計算引擎去確定新下界距離值都允許LBD計算引擎204-208 —直知曉最大下界距離值。
在一些實施方式中,邊界距離是與LBD抽象模型中與性質(zhì)的狀態(tài)變量最遠(yuǎn)的邊界 狀態(tài)變量的距離。在一些實施方式中,邊界狀態(tài)變量具有到性質(zhì)的狀態(tài)變量的如下距離,該 距離是邊界距離或者在邊界距離以前的距離(即邊界距離減1)。 在操作期間,驗證系統(tǒng)202執(zhí)行抽象_精化過程以確定CUV 210是否可以滿足性 質(zhì)(例如性質(zhì)212)。在這樣做時,驗證系統(tǒng)202可以通過使用CUV為性質(zhì)生成第二抽象模 型來開始。然后,驗證系統(tǒng)202執(zhí)行對第二抽象模型的可達(dá)性分析以確定第二抽象模型是 否滿足性質(zhì)。如果是這樣,則驗證系統(tǒng)202確定CUV 210也滿足性質(zhì)。否則,驗證系統(tǒng)202 通過使用第二抽象模型來繼續(xù)為性質(zhì)生成反例。驗證系統(tǒng)202然后通過用來自CUV 201的 狀態(tài)變量擴(kuò)充第二抽象模型來精化第二抽象模型并且可以通過再次執(zhí)行可達(dá)性分析來重 復(fù)該過程。 在一些實施方式中,驗證系統(tǒng)202可以通過先為第二抽象模型計算上界距離來確 定它是否可以避免對第二抽象模型執(zhí)行可達(dá)性分析,該上界距離指定在性質(zhì)中的狀態(tài)變量 與第二抽象模型的邊界狀態(tài)變量之間的最大距離。然后,驗證系統(tǒng)202可以比較下界距離 與上界距離以確定下界距離是否大于或者等于上界距離。如果是這樣,則驗證系統(tǒng)202已 經(jīng)確定當(dāng)前抽象模型不滿足性質(zhì),因此無需對抽象模型執(zhí)行可達(dá)性分析。
在一些實施方式中,驗證系統(tǒng)202和LBD計算引擎204-208并行執(zhí)行。例如,LBD 計算引擎204可以通過運(yùn)用基于二元決策圖(BBD)的求解器作為基本算法來為性質(zhì)212計 算下界距離216。同時,LBD計算引擎206可以通過運(yùn)用布爾可滿足性(SAT)求解器作為基 本算法來為性質(zhì)212計算下界距離218,并且LBD計算引擎208可以通過運(yùn)用自動測試圖案 生成(ATPG)作為基本求解器來為性質(zhì)212計算下界距離220。這一并行計算基礎(chǔ)結(jié)構(gòu)是有 益的,因為一個LBD求解器可以有利于分析第一類電路,而第二 LBD求解器可以有利于分析第二類電路。 另外,在一些實施方式中,兩個相應(yīng)的lbd計算引擎可以通過用不同下界距離生 成初始抽象模型來開始它們的下界距離計算。例如,lbd計算引擎204可以通過用初始下 界距離lbd = 3生成初始抽象模型來開始它的lbd計算,而lbd計算引擎206可以通過用 初始下界距離lbd = 6生成初始抽象模型來開始它的lbd計算。有利的是允許多個lbd計 算引擎在不同下界距離值開始它們的下界距離計算,因為這樣做使驗證環(huán)境200能夠部署 用于為性質(zhì)確定最大下界距離的多個計算資源而無須遍歷所有可能距離值。
在一些實施方式中,這一并行計算基礎(chǔ)結(jié)構(gòu)允許驗證系統(tǒng)202選擇由任何lbd計 算引擎204-208計算的最大下界距離值。也就是說,隨著lbd計算引擎204-208計算和更 新它們的相應(yīng)下界距離值,驗證系統(tǒng)202可以在它的執(zhí)行中的任何點(diǎn)處從集合中選擇最大 下界距離值。注意通過向驗證系統(tǒng)202提供最大可能下界距離值,lbd計算引擎204-208增 加驗證系統(tǒng)202將能夠避免為抽象_精化過程的多次迭代執(zhí)行可達(dá)性分析這一可能性。
圖3圖示了根據(jù)一個實施方式的用于與cuv相關(guān)聯(lián)的多個抽象模型的示例性圖 示。cuv 300包括多個狀態(tài)變量(例如狀態(tài)變量310-314)和來自性質(zhì)的一個或者多個狀 態(tài)變量(性質(zhì)狀態(tài)變量302所示)。注意來自cuv 300的相應(yīng)狀態(tài)變量和與性質(zhì)狀態(tài)變量 302中的狀態(tài)變量的距離相關(guān)聯(lián)并且距離界限由虛線橢圓圖示。例如,狀態(tài)變量312具有與 性質(zhì)狀態(tài)變量302中的狀態(tài)變量的距離d = 4,因此在用于距離界限d = 3和d = 4的橢圓 之間圖示狀態(tài)變量312。 抽象模型304-308圖示了用于驗證過程的計算快照。lbd計算引擎可以在其用于 為性質(zhì)確定下界距離的程序期間生成lbd抽象模型308。另外,lbd抽象模型308包括cuv 300的與距離d《3相關(guān)聯(lián)的所有狀態(tài)變量(即具有與性質(zhì)狀態(tài)變量302中的狀態(tài)變量的 距離d《3)并且包括與距離d《4相關(guān)聯(lián)的狀態(tài)變量312。注意狀態(tài)變量312是去往狀態(tài) 變量310的扇入狀態(tài)變量(虛線箭頭所示);因此,用于lbd抽象模型308的邊界狀態(tài)變量 集合包括除了狀態(tài)變量310之外的與距離d = 3相關(guān)聯(lián)的所有狀態(tài)變量,并且包括與距離 d = 4相關(guān)聯(lián)的狀態(tài)變量312。下界距離定義為從邊界狀態(tài)變量到性質(zhì)中的狀態(tài)變量的距 離集合中的最小值;因此,用于lbd抽象模型308的下界距離為lbd = 3。另外,由于抽象 模型的邊界距離d定義為從邊界狀態(tài)變量到性質(zhì)中的狀態(tài)變量的距離集合中的最大值,所 以用于lbd抽象模型308的邊界距離為d = 4。 類似地,驗證系統(tǒng)在其用于為cuv 300驗證性質(zhì)的抽象_精化程序期間生成抽象 模型304-306。具體而言,驗證系統(tǒng)可以在抽象-精化程序的第一迭代期間生成抽象模型 304,并且可以通過用狀態(tài)變量314擴(kuò)充抽象模型304在抽象精化程序的后續(xù)迭代期間精化 抽象模型304以生成抽象模型306。另外,由于上界距離定義為從邊界狀態(tài)變量到性質(zhì)中的 狀態(tài)變量的距離集合中的最大值,所以用于抽象模型304的上界距離為ubd = 3。
注意例如圖3中所示,計算的下界距離大于或者等于計算的上界距離。因此,驗證 系統(tǒng)中的抽象_精化程序可以依賴于下界距離以確定抽象模型306不滿足性質(zhì),由此避免 需要對抽象模型306執(zhí)行可達(dá)性分析。 圖4呈現(xiàn)了對根據(jù)一個實施方式的用于使用抽象-精化技術(shù)來為電路設(shè)計驗證性 質(zhì)的過程進(jìn)行圖示的流程圖。在一些實施方式中,該過程可以由計算機(jī)系統(tǒng)執(zhí)行,該計算機(jī) 系統(tǒng)包括存儲指令的計算機(jī)可讀存儲介質(zhì),這些指令在由計算機(jī)系統(tǒng)執(zhí)行時使計算機(jī)系統(tǒng)執(zhí)行該過程。系統(tǒng)可以通過接收CUV和待驗證的性質(zhì)(操作402)來開始。接著,系統(tǒng)通過 使用CUV的第一抽象模型來為性質(zhì)確定第一反例(操作404),并且部分地基于第一抽象模 型來更新下界距離值(操作406)。系統(tǒng)然后使用抽象_精化技術(shù)來驗證性質(zhì)(操作408)。
在使用抽象-精化技術(shù)來驗證性質(zhì)之時,系統(tǒng)為CUV的第二抽象模型確定上界距 離(操作410)。然后響應(yīng)于確定下界距離大于或者等于上界距離,系統(tǒng)為性質(zhì)確定第二反 例而不對第二抽象模型執(zhí)行可達(dá)性分析(操作412)。 在一些實施方式中,在使用抽象_精化技術(shù)來驗證性質(zhì)之時并且響應(yīng)于確定反例 對于性質(zhì)而言不存在,系統(tǒng)確定CUV滿足性質(zhì)(操作414)。 在一些實施方式中,在使用抽象-精化技術(shù)來驗證性質(zhì)之時并且響應(yīng)于確定第一 抽象模型在功能上等效于CUV,系統(tǒng)確定CUV不滿足性質(zhì)(操作416)。
圖5呈現(xiàn)了對根據(jù)一個實施方式的用于為性質(zhì)確定反例的過程進(jìn)行圖示的流程 圖。在一些實施方式中,該過程可以由實施LBD計算引擎的計算機(jī)系統(tǒng)執(zhí)行。系統(tǒng)可以通 過確定包括性質(zhì)的一個或者多個狀態(tài)變量的初始抽象模型(操作502)來開始。然后,系統(tǒng) 用CUV的狀態(tài)變量擴(kuò)充初始抽象模型以生成第一抽象模型(操作504)。系統(tǒng)然后部分地基 于第一抽象模型來更新下界距離值(操作506)并且使用第一抽象模型來為性質(zhì)確定第一 反例(操作508)。 圖6呈現(xiàn)了對根據(jù)一個實施方式的用于為性質(zhì)計算下界距離的迭代過程進(jìn)行圖 示的流程圖。在一些實施方式中,該過程可以由實施了LBD計算引擎的計算機(jī)系統(tǒng)執(zhí)行。該 系統(tǒng)可以通過接收CUV和性質(zhì)(操作602)、生成初始抽象模型MJ操作604)并且使用抽象 模型M工為性質(zhì)確定反例(操作606)來開始。系統(tǒng)然后確定反例是否存在(操作608)。如 果反例不存在,則系統(tǒng)確定CUV滿足性質(zhì)(操作610)。否則,系統(tǒng)繼續(xù)確定抽象模型M工是 否在功能上等效于CUV(操作612)。如果是這樣,則系統(tǒng)確定CUV不滿足性質(zhì)(操作614)。 否則系統(tǒng)繼續(xù)部分地基于反例來為抽象模型M工更新下界距離(操作616)。系統(tǒng)然后通過 用來自CUV的多個狀態(tài)變量擴(kuò)充抽象模型M工來精化M工(操作618)并且返回到操作606。
在一些實施方式中,當(dāng)執(zhí)行操作604時,系統(tǒng)可以生成抽象模型Mp從而它具有初 始下界距離LBD二 1。在其它實施方式中,系統(tǒng)可以生成抽象模型Mp從而它具有任意初始 下界距離值LBD = N。 在一些實施方式中,系統(tǒng)可以通過使用二元決策圖(BDD)來計算下界距離。在一 些其它實施方式中,系統(tǒng)可以通過使用自動測試圖案生成器(ATPG)來計算下界距離。在其 它實施方式中,系統(tǒng)可以通過使用布爾可滿足性(SAT)求解器來計算下界距離。用于SAT 求解器的一些示例算法包括但不限于有界模型檢驗(BMC)、歸納和插值。
注意由于抽象模型單調(diào)增長,所以系統(tǒng)可以重用它在一次過程迭代期間收集的信 息以優(yōu)化它為后續(xù)迭代執(zhí)行的計算。這樣做允許系統(tǒng)避免執(zhí)行多余計算。例如,當(dāng)執(zhí)行有 界模型檢驗(BMC)計算時,系統(tǒng)可以使用先前過程迭代所使用的有界深度作為用于當(dāng)前過 程迭代的起始有界深度。類似地,當(dāng)執(zhí)行歸納計算時,系統(tǒng)可以使用先前過程迭代所使用的 歸納深度作為用于當(dāng)前過程迭代的起始?xì)w納深度。另外,當(dāng)執(zhí)行插值計算時,系統(tǒng)可以使用 先前過程迭代所使用的插值深度作為用于當(dāng)前過程迭代的插值深度。 圖7呈現(xiàn)了對根據(jù)一個實施方式的用于為電路設(shè)計驗證性質(zhì)的抽象-精化過程進(jìn) 行圖示的流程圖。系統(tǒng)可以通過接收CUV和性質(zhì)(操作702)并且為性質(zhì)生成初始抽象模型M2 (操作704)來開始。接著,系統(tǒng)為M2計算上界距離(UBD)(操作710)并且從LBD計算 引擎接收用于下界距離的更新(操作712)。 系統(tǒng)然后確定上界距離是否大于下界距離(操作714)。如果是這樣,則系統(tǒng)對抽 象模型M2執(zhí)行可達(dá)性分析以確定M2是否可以滿足性質(zhì)(操作716)。接著,系統(tǒng)響應(yīng)于可 達(dá)性分析來確定抽象模型M2是否滿足性質(zhì)(操作718)。如果M2滿足性質(zhì),則系統(tǒng)確定CUV 滿足性質(zhì)(操作720)。否則,如果M2不滿足性質(zhì),則系統(tǒng)繼續(xù)使用M2為性質(zhì)確定反例(操 作722)。系統(tǒng)然后確定抽象模型M2是否在功能上等效于CUV(操作724)。如果是這樣,則 系統(tǒng)確定CUV不滿足性質(zhì)(操作726)。否則系統(tǒng)通過利用來自CUV的狀態(tài)變量擴(kuò)充抽象 模型M2來精化MJ操作728),并且返回到操作710。在一些實施方式中,擴(kuò)充到抽象模型M2 上的狀態(tài)變量與性質(zhì)的狀態(tài)變量具有小于或者等于上界距離+1的距離。
注意如果操作714確定下界距離大于或者等于上界距離,則系統(tǒng)繼續(xù)操作722而 不執(zhí)行操作716的可達(dá)性分析計算,由此避免計算成本高的操作。
i憤碰 圖8圖示了根據(jù)一個實施方式的有助于驗證CUV的功能的示例計算機(jī)系統(tǒng)。計算 機(jī)系統(tǒng)802包括處理器804、存儲器806、和存儲設(shè)備808。另外,計算機(jī)系統(tǒng)802可以耦合 到顯示設(shè)備810和輸入設(shè)備812。 存儲設(shè)備808存儲操作系統(tǒng)814、電路驗證系統(tǒng)816、 LBD計算引擎820、 CUV 824、 性質(zhì)826、驗證報告828、上界距離830和下界距離832。電路驗證系統(tǒng)816可以包括圖形用 戶接口 (GUI)818,而LBD計算引擎820可以包括GUI 822。 在操作期間,電路驗證系統(tǒng)816從存儲設(shè)備808加載到存儲器806中并且由處理 器804執(zhí)行。在一些變形中,電路驗證系統(tǒng)816可以實施于硬件模塊如ASIC或者FPGA中。 在一些實施方式中,電路驗證系統(tǒng)816可以執(zhí)行抽象_精化程序以驗證CUV 824滿足性質(zhì) 826。在這樣做時,電路驗證系統(tǒng)816為CUV 824生成抽象模型并且展開抽象模型直至抽象 模型滿足性質(zhì)或者抽象模型在功能上變得等效于CUV 824。如果電路驗證系統(tǒng)816確定抽 象模型滿足性質(zhì)826,則它確定CUV 824也滿足性質(zhì)826。另一方面,如果抽象模型在功能 上變得等效于CUV 824并且抽象模型不滿足性質(zhì)826,則電路驗證系統(tǒng)816確定CUV 824不 滿足性質(zhì)826。電路驗證系統(tǒng)816然后生成驗證報告828,該驗證報告可以指定CUV 824是 否滿足性質(zhì)826和/或可以向性質(zhì)826提供反例。 電路驗證系統(tǒng)816也為抽象模型確定上界距離830并且將它與下界距離832進(jìn)行 比較以確定下界距離832是否大于或者等于上界距離830。如果是這樣,則電路驗證系統(tǒng) 816已經(jīng)確定抽象模型不滿足性質(zhì)826因此可以避免對抽象模型執(zhí)行可達(dá)性分析。
在操作期間,LBD計算引擎820從存儲設(shè)備808加載到存儲器806中并且由處理器 804執(zhí)行。在一些變形中,LBD計算引擎820可以實施于硬件模塊如ASIC或者FPGA中。在 一些實施方式中,LBD計算引擎820可以確定用于下界距離832的值。在這樣做時,LBD計 算引擎820生成包括CUV 824的具有與性質(zhì)826的狀態(tài)變量的距離為k的狀態(tài)變量的第二 抽象模型。然后,LBD計算引擎820通過使用CUV 824的第二抽象模型來確定對于性質(zhì)826 而言是否存在反例。如果存在反例,則LBD計算引擎820將用于下界距離832的值更新成 k。否則,如果不存在反例,則LBD計算引擎820確定第二抽象模型滿足性質(zhì)826、因此CUV 824也滿足性質(zhì)826。
11
在一些實施方式中,電路驗證系統(tǒng)816和LBD計算引擎820可以由計算機(jī)系統(tǒng)802 并行執(zhí)行。 僅出于示例和描述的目的已經(jīng)呈現(xiàn)對各種實施方式的前文描述。本意并非讓它們 窮舉本發(fā)明或者使本發(fā)明限于公開的形式。因而,本領(lǐng)域技術(shù)人員將清楚許多修改和變形。 此外,并非意在讓上述公開限制本發(fā)明。
權(quán)利要求
一種用于為電路設(shè)計驗證性質(zhì)的方法,其中使用狀態(tài)變量集合來限定所述性質(zhì),其中各狀態(tài)變量與所述電路設(shè)計中的順序要素相關(guān)聯(lián),其中在兩個順序要素之間的路徑的長度部分地基于所述路徑中的順序要素的數(shù)量,并且其中在兩個狀態(tài)變量之間的距離等于在與所述兩個狀態(tài)變量相關(guān)聯(lián)的兩個順序要素之間的最短路徑的長度,所述方法包括使用所述電路設(shè)計的第一抽象模型來為所述性質(zhì)確定第一反例,其中所述第一抽象模型至少包括與所述狀態(tài)變量集合中的狀態(tài)變量的距離小于或者等于下界距離的所有狀態(tài)變量;并且使用抽象-精化技術(shù)來驗證所述性質(zhì),所述抽象-精化技術(shù)包括為所述電路設(shè)計的第二抽象模型確定上界距離,其中所述上界距離等于距離集合中的最大距離,并且其中所述距離集合包括在所述狀態(tài)變量集合中的第一狀態(tài)變量與所述第二抽象模型中的第二狀態(tài)變量之間的距離;并且響應(yīng)于確定所述下界距離大于或者等于所述上界距離,為所述性質(zhì)確定第二反例而不對所述第二抽象模型執(zhí)行可達(dá)性分析。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述抽象-精化技術(shù)還包括 響應(yīng)于確定對于所述性質(zhì)而言不存在反例,確定所述電路設(shè)計滿足所述性質(zhì)。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述抽象-精化技術(shù)還包括響應(yīng)于確定所述第一抽象模型在功能上等效于所述電路設(shè)計,確定所述電路設(shè)計不滿 足所述性質(zhì)。
4. 根據(jù)權(quán)利要求1所述的方法,其中在為所述性質(zhì)確定所述第一反例之前,所述方法 還包括通過以下操作來生成所述第一抽象模型確定包括來自所述性質(zhì)的一個或者多個狀態(tài)變量的初始抽象模型; 用所述電路設(shè)計的狀態(tài)變量擴(kuò)充所述初始抽象模型以生成所述第一抽象模型;并且 為所述第一抽象模型計算所述下界距離。
5. 根據(jù)權(quán)利要求4所述的方法,其中為所述第一抽象模型計算所述下界距離包括使用二元決策圖(BDD)、布爾可滿足性(SAT)求解器和自動測試圖案生成器(ATPG)中的至少一 個。
6. 根據(jù)權(quán)利要求1所述的方法,其中使用所述第一抽象模型來為所述性質(zhì)確定所述第 一反例與使用所述抽象_精化技術(shù)來驗證所述性質(zhì)并行執(zhí)行。
7. —種用于為電路設(shè)計驗證性質(zhì)的裝置,其中使用狀態(tài)變量集合來限定所述性質(zhì),其 中各狀態(tài)變量與所述電路設(shè)計中的順序要素相關(guān)聯(lián),其中在兩個順序要素之間的路徑的長 度部分地基于所述路徑中的順序要素的數(shù)量,并且其中在兩個狀態(tài)變量之間的距離等于在與所述兩個狀態(tài)變量相關(guān)聯(lián)的兩個順序要素之間的最短路徑的長度,所述裝置包括LBD計算引擎,配置成使用所述電路設(shè)計的第一抽象模型來為所述性質(zhì)確定第一反例,其中所述第一抽象模型至少包括與所述狀態(tài)變量集合中的狀態(tài)變量的距離小于或者等于下界距離的所有狀態(tài)變量;以及驗證引擎,配置成使用抽象_精化技術(shù)來驗證所述性質(zhì),其中所述驗證引擎配置成 為所述電路設(shè)計的第二抽象模型確定上界距離,其中所述上界距離等于距離集合中的最大距離,并且其中所述距離集合包括在所述狀態(tài)變量集合中的第一狀態(tài)變量與所述第二抽象模型中的第二狀態(tài)變量之間的距離;并且響應(yīng)于確定所述下界距離大于或者等于所述上界距離,為所述性質(zhì)確定第二反例而不 對所述第二抽象模型執(zhí)行可達(dá)性分析。
8. 根據(jù)權(quán)利要求7所述的裝置,其中所述驗證引擎被配置成響應(yīng)于確定對于所述性質(zhì) 而言不存在反例來確定所述電路設(shè)計滿足所述性質(zhì)。
9. 根據(jù)權(quán)利要求7所述的裝置,其中所述驗證引擎被配置成響應(yīng)于確定所述第一抽象 模型在功能上等效于所述電路設(shè)計來確定所述電路設(shè)計不滿足所述性質(zhì)。
10. 根據(jù)權(quán)利要求7所述的裝置,其中在為所述性質(zhì)確定所述第一反例之前,所述LBD 計算引擎被配置成通過以下操作來生成所述第一抽象模型確定包括來自所述性質(zhì)的一個或者多個狀態(tài)變量的初始抽象模型; 用所述電路設(shè)計的狀態(tài)變量擴(kuò)充所述初始抽象模型以生成所述第一抽象模型;并且 為所述第一抽象模型計算所述下界距離。
11. 根據(jù)權(quán)利要求10所述的裝置,其中所述LBD計算引擎被配置成使用二元決策圖 (BDD)、布爾可滿足性(SAT)求解器和自動測試圖案生成器(ATPG)中的至少一個來為所述 第一抽象模型計算所述下界距離。
12. 根據(jù)權(quán)利要求7所述的裝置,其中所述LBD計算引擎與所述驗證引擎并行操作。
全文摘要
本發(fā)明的實施方式提供用于驗證電路的功能的方法和裝置。系統(tǒng)可以確定下界距離(LBD)值,從而LBD值與CUV的不滿足性質(zhì)的LBD抽象模型關(guān)聯(lián)。系統(tǒng)可以使用抽象-精化技術(shù)以確定CUV是否滿足性質(zhì)。系統(tǒng)可以為抽象-精化技術(shù)中所用抽象模型確定上界距離值并且可以確定LBD值是否大于或者等于上界距離值。如果是這樣,則系統(tǒng)可以推斷抽象模型不滿足性質(zhì),因此系統(tǒng)可以判決不對抽象-精化技術(shù)中當(dāng)前所用抽象模型執(zhí)行可達(dá)性分析。
文檔編號G06F17/50GK101794324SQ200910207629
公開日2010年8月4日 申請日期2009年10月28日 優(yōu)先權(quán)日2009年1月29日
發(fā)明者I-H·穆恩 申請人:新思科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
施甸县| 遂平县| 舞钢市| 昌吉市| 福海县| 柳林县| 麦盖提县| 封开县| 徐汇区| 石渠县| 桦南县| 南漳县| 临城县| 三河市| 乳山市| 蕲春县| 图们市| 辉县市| 迭部县| 泽库县| 松潘县| 阿坝县| 亳州市| 侯马市| 南川市| 庆安县| 澄迈县| 肥乡县| 桂林市| 和硕县| 曲松县| 靖边县| 同德县| 贞丰县| 澳门| 德惠市| 江口县| 郸城县| 皋兰县| 梓潼县| 六盘水市|