專利名稱:通過迭代過度逼近和再編碼策略進行增量設(shè)計縮減的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及測試和驗證,尤其涉及數(shù)字設(shè)計的驗證。更特別的是,本發(fā)明涉及一種用于通過迭代過度逼近和再編碼對數(shù)字設(shè)計進行增量縮減的系統(tǒng)、方法和計算機程序產(chǎn)品。
背景技術(shù):
隨著基于處理器的系統(tǒng)在人類活動的每個方面的日益滲透,對處理器、專用集成電路(ASIC)開發(fā)以及生產(chǎn)沒有設(shè)計缺陷的系統(tǒng)的開發(fā)團體的需求日益增長。包括微處理器、數(shù)字信號和其他特殊目的處理器以及ASIC的電路產(chǎn)品已經(jīng)與大批關(guān)鍵功能的性能密切相關(guān),并且微處理器與日常生活的重要任務(wù)相關(guān)提高了人們對無誤差的和無缺陷設(shè)計的期望。無論設(shè)計中的錯誤是通過對人類生活的影響還是僅僅通過對經(jīng)濟利益方面的影響來衡量,電路產(chǎn)品的消費者已失去了對設(shè)計錯誤所產(chǎn)生的結(jié)果的容忍。消費者將不會容忍例如在證券交易場所中、維持人的生命的醫(yī)療設(shè)備中或操控其交通工具的計算機中的計算錯誤。所有的這些活動代表了這樣的一些領(lǐng)域在這些領(lǐng)域中,對可靠電路結(jié)果的需求已上升為一個關(guān)鍵任務(wù)問題。
為了響應(yīng)對可靠、無誤差設(shè)計的日益增長的需求,處理器和ASIC設(shè)計以及開發(fā)團隊已經(jīng)開發(fā)出用于測試和驗證的嚴格(即使是難以置信的昂貴)的方法。功能硬件驗證已經(jīng)成為用于驗證諸如處理器芯片這種復雜設(shè)計的傳統(tǒng)方法。因為用于設(shè)計的功能硬件驗證時間的增長與邏輯元件的數(shù)量有關(guān),所以復雜系統(tǒng)的功能硬件驗證是現(xiàn)今最花費時間的計算任務(wù)之一。因此,以很少漏掉設(shè)計中的錯誤并減少開發(fā)時間作為目標,有效地使用功能硬件驗證周期非常重要。
如上所述,功能硬件驗證是一個計算上昂貴的過程;對于連續(xù)設(shè)計而言,功能硬件驗證是一個完全PSPACE問題(通過算法的復雜性分析),因此一般需要與所驗證設(shè)計的大小成指數(shù)關(guān)系的資源。多個現(xiàn)有技術(shù)的功能硬件驗證證明算法依賴于可達性分析,它需要列舉出所測試設(shè)計的可達狀態(tài)以評定該設(shè)計是否與它的技術(shù)要求相符,不幸的是它是一個大小受限的過程。
可達性分析是一個強大的驗證框架;它能夠確定設(shè)計是否滿足技術(shù)要求(即,如果設(shè)計的所有可達狀態(tài)都滿足被驗證的特性,那么就完成了正確性的驗證),也能夠確定設(shè)計是否不滿足其技術(shù)要求(如果設(shè)計的任一可達狀態(tài)不滿足被驗證的特性)。可達性算法的操作是通過分配R_0作為所驗證的設(shè)計的預定初始狀態(tài)集合,然后分配R_{i+1}(i逐漸增加)作為從R_I進行一次設(shè)計轉(zhuǎn)換就可到達的所有狀態(tài)的集合。最后,R_{i+1}將為所有先前在R_0……R_i中遇到的狀態(tài)的一個子集,此后這個過程將終止。這個最終的可達狀態(tài)集合表示為R。為了部分地減輕某些用于計算可達狀態(tài)精確集合這一昂貴過程的計算費用,已經(jīng)有多個“過度逼近”可達狀態(tài)集合的建議。例如,一些作者已經(jīng)建議使用“歸納的”(inductive)方法?,F(xiàn)有技術(shù)過度逼近方法的缺點是它們常常是不確定的,由于它們的過度逼近特性導致了“偽失效”(spurious failure)。
盡管在改進可達性分析性能方面研究了幾十年,這種技術(shù)仍然局限于應(yīng)用于有幾百個或更少的狀態(tài)元件的設(shè)計中,并且還受到其他設(shè)計尺寸的阻礙。由于可達性分析的尺寸限制,已在過度逼近可達狀態(tài)集合以能夠簡化計算的方式上進行了一些研究。例如,歸納證明從R_0作為自身不違反特性的所有狀態(tài)開始(在確保設(shè)計的實際初始狀態(tài)是這個已過度逼近的R_0的一個子集之后),然后計算從這個已過度逼近的初始狀態(tài)集合開始的過度逼近集合R’。這種方法的好處包括大幅度減少完成分析所需要的步驟數(shù)。這種歸納方法的主要缺點是它常常導致一個不確定的結(jié)果。特別是,如果過度逼近集合R’包含一些違反正被驗證的特性的狀態(tài)S’,那么不能立即辨明這個違反是僅僅由初始狀態(tài)集合(即,S’是R’-R的一個子集)的過度逼近引起的,還是S’包含R中某些實際可達的狀態(tài)。前一種情況是所驗證特性的偽失效。
切割點插入是指用隨機門取代連線表中的門的過程。通過切割點插入修改的設(shè)計稱為是“過度逼近的”設(shè)計,因為它可以“模擬”原設(shè)計-隨機門可以展現(xiàn)其取代的門可展現(xiàn)的任何行為,但反過來不一定正確。這種過度逼近技術(shù)增大了設(shè)計中的隨機門的數(shù)量,有時候甚至非常顯著;某些算法(尤其是那些基于二進制決策圖的算法)由于隨機門的這種增長可能遭受計算瓶頸。
存在多個用于再編碼設(shè)計以獲得設(shè)計的功能等效的縮減的現(xiàn)有技術(shù)。給定要測試的設(shè)計的組合驅(qū)動切割(即,不包含狀態(tài)元件的切割的“源”側(cè)),再編碼工具能計算在這些切割門可以產(chǎn)生的值的集合。更一般地,給定包含0個或多個狀態(tài)元件以及0個或多個隨機門的要測試的設(shè)計的切割,再編碼工具能計算在這些切割門可以產(chǎn)生的值的集合作為狀態(tài)元件的值的函數(shù)。再編碼工具然后能創(chuàng)建一個新的邏輯,該邏輯產(chǎn)生與切割的“源”側(cè)完全相同的行為作為狀態(tài)元件的函數(shù),并且用該新的邏輯取代切割門。注意,不能僅僅將切割點注入切割門,因為那通常會構(gòu)成過度逼近變換,而再編碼的目的則是進行特性保留的變換。
通常,再編碼工具創(chuàng)建一條比正被取代的邏輯大為簡單的邏輯的能力依賴于切割的“源”側(cè)(在其“組合扇入錐體”中包含大量隨機門,即,通過扇入遍歷而不用遍歷寄存器便可到達的門的集合)。由于再編碼依賴于選擇那些在切割的“源”側(cè)包含隨機門的切割點,再編碼的常規(guī)方法在切割點能被注入的設(shè)計的深度方面將遭受嚴重的限制。換言之,再編碼常常對于距離隨機門很深的邏輯不實用(例如由狀態(tài)元件專門驅(qū)動的邏輯)。這種深度限制在傳統(tǒng)上限制了再編碼技術(shù)的有用性。
常規(guī)的再編碼系統(tǒng)和現(xiàn)有技術(shù)的過度逼近系統(tǒng)的局限性是已知的。所需要的是一種利用減輕了過度逼近的已知限制和再編碼的深度限制的方法來驗證數(shù)字設(shè)計的更為有效的方法。
發(fā)明內(nèi)容
本發(fā)明公開了一種用于以增量方式(incrementally)縮減設(shè)計的方法。邏輯驗證工具接收設(shè)計和與該設(shè)計相關(guān)的要驗證的特性,然后選擇多種不同技術(shù)中的一種或多種以用于縮減(reduce)設(shè)計。邏輯驗證工具然后縮減該設(shè)計以利用上述一種或多種技術(shù)創(chuàng)建一種縮減的設(shè)計,并嘗試為上述縮減后的設(shè)計上的特性生成一個有效的解決方案。邏輯驗證工具確定是否生成了該一個有效的解決方案,如果沒有生成,則用縮減的設(shè)計替代原設(shè)計。在生成一個有效的解決方案之前,邏輯驗證工具迭代地執(zhí)行選擇、縮減、確定以及替代步驟。
在本發(fā)明中,在所采用的過度逼近方法和所采用的再編碼方法之間的特定協(xié)作(synergy)帶來幾個優(yōu)點。本發(fā)明所使用的結(jié)構(gòu)過度逼近技術(shù)將順序驅(qū)動的邏輯轉(zhuǎn)變?yōu)榻M合驅(qū)動的邏輯,并且更一般地將隨機門更深地注入到設(shè)計的錐體(cone)中。這對于本發(fā)明的再編碼技術(shù)有幫助,因為本發(fā)明的基本方面是擅長縮減在隨機門附近的邏輯,而不是消除純順序邏輯。
在所附權(quán)利要求書中闡明了認為是新穎的本發(fā)明的特征。然而,結(jié)合附圖,通過參考下面的示例性實施例的詳細描述將更好地理解發(fā)明本身、優(yōu)選的使用模式以及其進一步的目標和優(yōu)點。其中圖1描繪了根據(jù)本發(fā)明的一個優(yōu)選實施例,裝備了用于通過迭代過度逼近和再編碼用于數(shù)字設(shè)計的增量縮減的計算機程序產(chǎn)品的數(shù)據(jù)處理系統(tǒng)的框圖。以及圖2是根據(jù)本發(fā)明的一個優(yōu)選實施例,用于通過迭代過度逼近和再編碼用于數(shù)字設(shè)計的增量縮減的過程的高級邏輯流程圖。
具體實施例方式
本發(fā)明提供一種用于降低驗證復雜度的新穎的協(xié)作變換(transformation)技術(shù)。本發(fā)明尤其便于促進結(jié)構(gòu)過度逼近技術(shù)的使用(以縮減順序設(shè)計的尺寸)與再編碼技術(shù)的使用(用以提供附加的特性保留的縮減)的協(xié)同作用。這種協(xié)同作用方案的好處是它使得設(shè)計縮減大大超過現(xiàn)有技術(shù)中能實現(xiàn)的縮減。本發(fā)明的結(jié)果是極大地節(jié)省了驗證過程的計算資源,使得能夠?qū)⒃O(shè)計缺陷暴露出來并且完成證明,這在其它情況下是不可行的。
本發(fā)明依賴于兩種技術(shù)的協(xié)同應(yīng)用以產(chǎn)生在要測試的設(shè)計的逐漸增加的縮減。首先,邏輯再編碼技術(shù)在保留(preserve)其行為的同時簡化了要測試的設(shè)計。這種再編碼技術(shù)計算可在進行測試的設(shè)計的切割(cut)處產(chǎn)生的值的集合,作為其狀態(tài)元件的函數(shù),然后通過創(chuàng)建產(chǎn)生完全相同的值集合作為其狀態(tài)元件的函數(shù)的邏輯來對該切割進行再編碼。由于設(shè)計再編碼技術(shù)時具有創(chuàng)建一個全新的但行為又一致(相對于切割門)的邏輯這樣的自由度,這種技術(shù)通常使用冗余門消除技術(shù)提供可能的縮減的超集。這種技術(shù)并不明確尋求縮減設(shè)計的順序邏輯(sequential logic),而是嘗試縮減切割中的組合邏輯(以及隨機門)的量,并且簡化切割的扇出(fan-out)側(cè)與切割的扇入(fan-in)側(cè)的狀態(tài)元件之間的從屬/相關(guān)性。
其次,采用結(jié)構(gòu)過度逼近技術(shù),作為簡化要測試的設(shè)計、同時可能對其行為增加隨機性的方式。在上述交叉引用的申請中詳細描述了這種技術(shù),其全部內(nèi)容在此結(jié)合作為參考。該技術(shù)常常尋求通過注入切割點(從隨機門形成)以取代設(shè)計中的其它門來明確消除設(shè)計中的順序邏輯。
現(xiàn)在參考附圖,尤其是參考圖1,圖1描繪了根據(jù)本發(fā)明的一個優(yōu)選實施例,裝備了用于通過迭代過度逼近和再編碼用于數(shù)字設(shè)計的增量縮減的計算機程序產(chǎn)品的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)100包含處理存儲器單元(例如,RAM 102)和處理器104。數(shù)據(jù)處理系統(tǒng)100還包括諸如硬盤驅(qū)動器或其他直接訪問存儲裝置的非易失存儲器106。輸入/輸出(I/O)控制器108通過諸如網(wǎng)絡(luò)電纜112的有線或無線鏈接提供到網(wǎng)絡(luò)110的連接。I/O控制器108也通過諸如電纜或射頻連接的有線或無線鏈接116連接到諸如鍵盤、顯示設(shè)備、鼠標或打印機這樣的用戶I/O裝置114。系統(tǒng)內(nèi)部連接118連接處理器104、RAM 102、存儲器106和I/O控制器108。
在RAM 102中,當根據(jù)本發(fā)明的優(yōu)選實施例操作時,數(shù)據(jù)處理系統(tǒng)100存儲了幾項數(shù)據(jù)和指令。這幾項包括設(shè)計(D)120、用于與邏輯驗證工具124交互的輸出表格122,以及二進制決策圖(binarydecision diagramBDD)生成器(builder)126。其他應(yīng)用128和邏輯驗證工具124通過操作系統(tǒng)130與處理器104、RAM 102、I/O控制器108以及存儲器106連接。數(shù)據(jù)處理技術(shù)領(lǐng)域的技術(shù)人員將很快認識到,在不偏離本發(fā)明的范圍的情況下,可以添加數(shù)據(jù)處理系統(tǒng)100的附加組件到所顯示的那些組件或替代所顯示的那些組件。
在執(zhí)行本發(fā)明的過程中,處理器104執(zhí)行來自于程序(通常存儲在RAM 102中)的指令。在本發(fā)明的優(yōu)選實施例中,處理器104執(zhí)行邏輯驗證工具124。邏輯驗證工具124以增量方式縮減設(shè)計包含在設(shè)計(D)120中的數(shù)字設(shè)計,以通過迭代過度逼近和再編碼并結(jié)合二進制決策圖生成器126、再編碼工具138以及過度逼近工具136的操作,創(chuàng)建修改的設(shè)計(D’)142。邏輯驗證工具另外驗證設(shè)計(D)120之上的特性(P)134。一般來講,邏輯驗證工具124包含用于預測硬件的邏輯建模項的行為的基于規(guī)則的指令。二進制決策圖生成器126將設(shè)計(D)120中的結(jié)構(gòu)表示轉(zhuǎn)換為結(jié)構(gòu)BDD 131中的功能規(guī)范(canonical)形式。然后,邏輯驗證工具124依據(jù)包含在其自身的指令內(nèi)的一系列規(guī)則、結(jié)合設(shè)計(D)120和相關(guān)的二進制決策圖(BDD)131進行操作。
設(shè)計(D)120可以構(gòu)建多個不同種類的邏輯硬件(例如微處理器和專用集成電路(ASIC))的模型。設(shè)計(D)120在結(jié)構(gòu)上被表示為一個連線表(netlist),包含一個定向圖表,圖表中每個節(jié)點都是某一類型的門,例如與門、反向器、主輸入(或隨機門)或一個狀態(tài)元件。BDD生成器126將設(shè)計(D)120轉(zhuǎn)換為BDD 131,以和邏輯驗證工具124一起使用,以及在適當?shù)臅r候與再編碼工具138和過度逼近工具136一起使用。設(shè)計(D)120的連線表是以語義跟蹤(semantic trace)來定義的,其隨時間的過去將門映射為BDD 131中的0,1值。設(shè)計(D)120中的每一個狀態(tài)元件都與下一狀態(tài)函數(shù)(定義在未來一個時間步長中將取什么值)以及初始值(定義在時刻0將取什么值)相關(guān),下一狀態(tài)函數(shù)和初始值都表示為一個門。設(shè)計(D)120被表示為一個定向圖表,具有代表各個功能的門的節(jié)點(例如,以下稱之為隨機門的主輸入,諸如與門、反向器以及狀態(tài)元件的組合功能),以及代表這些門之間的互連的邊緣?;ミB被定向,將數(shù)據(jù)從“源”路由到“宿”。
RAM 102中存儲的其他數(shù)據(jù)項包括特性(P)134、切割點140以及修改的設(shè)計(D’)142。特性(P)134包含要在設(shè)計(D)120上進行驗證的行為。切割點140包含用于插入到修改的設(shè)計(D’)142的一組隨機門插入指令,其包含應(yīng)用到設(shè)計(D)120的本發(fā)明的最當前結(jié)果。
切割點140代表將設(shè)計(D)120的連線表分為兩個圖表,其中從“源”圖表中的門到“宿”圖表的唯一定向路徑流過包括該切割的門?!白⑷肭懈铧c”是指用隨機門取代連線表中的門的過程。隨機門被評估為驗證過程中的隨機比特流的不受限的源。
邏輯驗證工具124將結(jié)果記錄到輸出表格122中。邏輯驗證工具124也可以向用戶I/O 114或應(yīng)用128報告輸出表格122的內(nèi)容或設(shè)計(D)120的狀態(tài)的所選指示器。另外,邏輯驗證工具124、操作系統(tǒng)130、設(shè)計(D)120、輸出表格122、再編碼工具138和過度逼近工具136有時可以全部或部分地存儲在存儲器106中。再編碼工具138和過度逼近工具136還可使用本技術(shù)領(lǐng)域公知的其它數(shù)據(jù)結(jié)構(gòu),但為簡化說明在此沒有顯示。
在本發(fā)明的方法中,邏輯驗證工具124依賴于由過度逼近工具136利用切割點插入,以消除(可能是順序的)邏輯,然后使用再編碼工具138和過度逼近工具136所提供的再編碼方法縮減該過度逼近的設(shè)計(D)120的尺寸,導致產(chǎn)生修改的設(shè)計(D’)142。邏輯驗證工具124然后再將過度逼近工具136應(yīng)用于消除(可能是順序的)邏輯,隨后通過由再編碼工具138和過度逼近工具136提供的再編碼方法縮減修改的設(shè)計(D’)142的尺寸,從而產(chǎn)生逐漸增大的縮減。由過度逼近工具136所產(chǎn)生的過度逼近協(xié)同作用使得能通過再編碼工具138得到更大的縮減。類似的,由再編碼工具138產(chǎn)生的再編碼協(xié)同作用,使得通過使保留設(shè)計(D)120的功能性行為的門的最小集合更容易被識別(由于順序元件之間的相關(guān)性減小),經(jīng)由過度逼近工具136的試探性過度逼近得到更大可能的縮減。在對抗導致偽反例的任意選擇的切割點注入方面,本發(fā)明比現(xiàn)有技術(shù)更為健壯。另外,再編碼工具138所產(chǎn)生的再編碼對于抵消由過度逼近工具136創(chuàng)建的過度逼近設(shè)計的隨機門數(shù)量的增加有用。
本發(fā)明的一種特別有用的效果是本發(fā)明有效地使得再編碼工具138能夠只通過利用“組合”算法來對設(shè)計(D)120深處的“順序”邏輯進行再編碼。過度逼近工具136的過度逼近將某個順序邏輯安全地轉(zhuǎn)換為組合邏輯,再編碼工具138的再編碼對此尤為有效。這種組合又使得能通過再編碼工具138“深入”縮減設(shè)計(D)120,從而最終得到相對于特性(P)134的確定性驗證結(jié)果,即使對于現(xiàn)有技術(shù)仍無法解決的那些大而復雜的問題也不例外。雖然本發(fā)明的技術(shù)可應(yīng)用于提供設(shè)計(D)120的順序縮減,但也可以將本發(fā)明的方法應(yīng)用于產(chǎn)生組合設(shè)計的縮減。
廣義的說,如將在圖2中所示意的那樣,本發(fā)明的這種總體過程可以描述為幾個步驟。首先,邏輯驗證工具124導入設(shè)計(D)120以及特性(P)134和要對該設(shè)計驗證的特性。接著,以幾個子步驟執(zhí)行過度逼近步驟。邏輯驗證工具124利用BDD生成器126生成BDD 131。邏輯驗證工具124計算一組用于切割點插入的候選門,并將它們保存作為切割點140。過度逼近工具136然后通過將切割點(隨機門)插入到這些候選門以消除設(shè)計(D)120中較大的部分(可包括消除順序邏輯)來過度逼近設(shè)計(D)120。在一個實施例中,切割點140選擇過程可以利用任何種類的分析算法(例如局部化精練,以下將簡單說明)來執(zhí)行,以確保由設(shè)計(D)120中的切割點140插入帶來的過度逼近不會產(chǎn)生設(shè)計(D)120的偽失效。
第三,邏輯驗證工具124計算連線表圖的切割并將其保存作為切割點140。邏輯驗證工具124然后利用再編碼工具138以在切割點140應(yīng)用設(shè)計(D)120的再編碼,以嘗試從該設(shè)計中去除邏輯。該第三步驟的目的是在縮減設(shè)計(D)120的尺寸(尤其是組合門和隨機門)的同時保留其行為。然后將縮減后的設(shè)計保存作為修改的設(shè)計(D’)142。下面將討論,可以根據(jù)關(guān)于圖2所討論的選擇準則以不同順序執(zhí)行本發(fā)明的方法的第二和第三步驟。
第四,邏輯驗證根據(jù)124嘗試利用任何可用的算法對在修改的設(shè)計(D’)142上的特性(P)120嘗試驗證工作。如果驗證問題還沒有得到解決,則邏輯驗證工具124返回第二步驟進行額外的縮減。
現(xiàn)在參考圖2,圖2描繪了用于通過迭代過度逼近和再編碼進行增量設(shè)計縮減的過程的高級邏輯流程圖。該過程從步驟200開始。該過程接著移動到步驟201,步驟201描繪了邏輯驗證工具124接收設(shè)計(D)120和特性(P)134。該過程然后轉(zhuǎn)入步驟202。步驟202示意了邏輯驗證工具124選擇用于確定對設(shè)計(D)采用可用變換方法中的哪些方法的準則??捎糜谶壿嬺炞C工具124的這些準則的例子包括選擇最近執(zhí)行的變換的可選方法??捎脺蕜t的例子還包括變換類型之間的迭代,這在一個實施例中包括迭代增加在每個變換類型中使用的資源。如果設(shè)計(D)120的輸入超過一個閾值,則邏輯驗證工具124能夠自動選擇再編碼。類似的,如果設(shè)計(D)120具有多個狀態(tài)元件,或者用于驗證的特性(P)134從輸入順續(xù)深入,則切割點140插入可以被自動執(zhí)行以生成過度逼近。
該處理接著轉(zhuǎn)入步驟204,步驟204描繪了邏輯驗證根據(jù)124應(yīng)用在步驟202中所選擇的準則以決定該應(yīng)用哪個變換。雖然關(guān)于圖2所描繪的本發(fā)明的方法反映了變換方法的串行使用,本領(lǐng)域的技術(shù)人員將很快確定在本優(yōu)選實施例中可用的變換方法也可以并行執(zhí)行(通過計算結(jié)果的比較)。如果邏輯驗證124選擇了對設(shè)計(D)120再編碼,則該處理移動到步驟206。在步驟206,邏輯驗證工具124利用再編碼根據(jù)138識別設(shè)計(D)120的切割以進行再編碼,從而利用尺寸最小的功能等同邏輯取代每個切割的扇入側(cè)以創(chuàng)建修改的設(shè)計(D’)142。該再編碼技術(shù)協(xié)同地增強了過度逼近技術(shù)通過縮減設(shè)計(D)120中的狀態(tài)變量的相關(guān)性去除順序邏輯的能力,促進了過度逼近工具136中的啟發(fā)式算法使要保留的足夠多個門的“最小集合”更小的能力。換句話說,通過去除順序元件之間的一些連接,再編碼工具138增大了將來自切割點140中的某個切割點注入到任意選擇的門仍將導致產(chǎn)生過度逼近的修改的設(shè)計(D’)142的可能性,這滿足它的規(guī)范要求。如果沒有這種再編碼根據(jù)138,則從切割點140中任意選擇的切割點插入將產(chǎn)生偽反例的機會增大。
再編碼工具138嘗試如下進行縮減。給定設(shè)計(D)120的切割點140內(nèi)的切割,再編碼工具138計算在那些切割門可產(chǎn)生的值集合作為該切割的狀態(tài)元件函數(shù)。再編碼工具138然后創(chuàng)建產(chǎn)生與切割點140中的切割的“源”側(cè)行為完全相同的新邏輯作為狀態(tài)元件的函數(shù),并利用該新邏輯取代切割門。注意,不能僅僅將切割點注入到切割門中,因為這通常將構(gòu)成過度逼近變換,而本發(fā)明中的再編碼工具的這種變換的目的是導致保留特性的變換。具體來說,一組N個切割點140可以隨著時間的過去產(chǎn)生任何可能的2^N個值的流,而原始切割門的行為可能被局限為只產(chǎn)生這些可能的值的一個子集。
這種使用再編碼工具138產(chǎn)生縮減的好處是創(chuàng)建一種更為簡單但是功能上等效的替換邏輯,從而相對于設(shè)計(D)120縮減修改的設(shè)計(D’)142的總體尺寸。還應(yīng)注意,這種實現(xiàn)方法主要目的是縮減組合邏輯和隨機門,因為其在對順序切割再編碼時直接地再用了狀態(tài)變量。在步驟206之后,該過程轉(zhuǎn)入步驟210,在討論了步驟208之后討論步驟210。
返回步驟204,如果邏輯驗證工具124確定通過過度逼近變換設(shè)計(D)120,則該過程移動到步驟208。在步驟208,邏輯驗證工具124通過注入切割點利用過度逼近工具136過度逼近設(shè)計(D)120,由此理想地確保它們不產(chǎn)生特性(P)134的偽判斷,以創(chuàng)建修改的設(shè)計(D’)142。實際上,在過度逼近工具136中使用的結(jié)構(gòu)過度逼近算法經(jīng)常是啟發(fā)性的,嘗試確定設(shè)計(D)120的最小門集合(尤其是狀態(tài)元件),該最小門集合中的門是確保要驗證的特性將通過并將切割點注入到其它門所需要的?!斑^度逼近變換”是可以向設(shè)計(D)120的行為增加隨機性的變換。例如,如果將一組切割點140注入到設(shè)計中,則結(jié)果一般是過度逼近的,因為切割點140充當完全隨機的源,因此能夠‘模擬’被取代的原始門的任何可能的行為。但是這些原始門無法必定產(chǎn)生隨機門能夠產(chǎn)生的一些行為。偽失效是指設(shè)計(D)120的過度逼近引起如果沒有過度逼近就不可能的失效的狀況。
如同在過度逼近工具136中所使用的,結(jié)構(gòu)過度逼近技術(shù)通過注入切割點140來工作,在一個實施例中,過度逼近工具136通過有效地將設(shè)計(D)120的切割隔離并將切割點140(即,隨機門)注入到這些切割門中,來消除設(shè)計(D)120的絕大部分,切割門的源側(cè)然后退出影響錐形(cone of influence)。這種方法也可以以明確地尋求去除設(shè)計(D)120中的順序邏輯的方式部署。在一個實施例中,這種切割點選擇過程利用某種形式的設(shè)計(D)120的分析以確保切割點140被插入,其過度逼近了要測試的設(shè)計的行為,而不會導致偽失效。一個實施例將利用稱為‘局部化精練’的方案。這種局部化精練包括注入切割點140,運行某個(可能是過低逼近的)驗證以嘗試評估切割點140是否引起偽失效,如果是,則通過去除它們并可能進一步將其重新插入到先前的切割點140的扇入錐體中以嘗試去除對應(yīng)的偽失效,來“精練”切割點140。然而,用于確定在什么地方注入切割點140的特定方法則會根據(jù)各種不同的實施例而不同。
然后,過程從步驟206或步驟208移動到步驟210,步驟210描繪了邏輯驗證工具嘗試解決(solve)修改的設(shè)計(D’)142上的特性(P)134和/或應(yīng)用可選變換。該過程然后移動到步驟212,步驟212示意了邏輯驗證工具124確定是否已經(jīng)相對于修改的設(shè)計(D’)142解決了特性(P)134。如果已經(jīng)相對于修改的設(shè)計(D’)142解決了特性(P),則該過程在步驟214結(jié)束。如果在步驟212,尚未相對于修改的設(shè)計(D’)142解決特性(P),則該過程轉(zhuǎn)入步驟216。步驟216描繪了邏輯驗證工具用修改的設(shè)計(D’)120的內(nèi)容替代設(shè)計(D)120。該過程然后返回步驟202,下面將對此進行說明。
通過以協(xié)同方式利用上述的過度逼近工具136和再編碼工具138,與現(xiàn)有技術(shù)中可能得到的設(shè)計縮減相比,本發(fā)明能夠得到顯著增多的設(shè)計縮減,導致除了證明能力之外的更強的故障查尋能力。過度逼近工具136和再編碼工具138之間的特定協(xié)同作用可以獲得多種好處。過度逼近工具136所使用的結(jié)構(gòu)過度逼近技術(shù)將順序驅(qū)動邏輯變?yōu)榻M合驅(qū)動邏輯,并且更一般地將隨機門注入到設(shè)計(D)120錐體的更深處。這有助于再編碼工具138的再編碼技術(shù),因為再編碼工具138的基本方面是縮減隨機門附近的邏輯,而不是去除純順序邏輯。
此外,再編碼工具138的再編碼技術(shù)降低了在切割的扇入側(cè)和切割的扇出側(cè)中的狀態(tài)變量之間的相關(guān)性。在一些情況下,某些狀態(tài)變量可以通過再編碼從問題中徹底去除(例如,如果切割上的門為主輸入和狀態(tài)元件的XOR,則XOR門可在任何時間點取任何值而與狀態(tài)元件的值無關(guān),而且再編碼可能能夠通過切割點安全地取代XOR門)。更一般的說,前述相關(guān)性降低使得切割的扇入側(cè)和切割的扇出側(cè)中狀態(tài)元件之間的連接數(shù)量最小。
本發(fā)明的一個特別有用的好處是,其僅僅通過利用“組合”算法,就有效地使得再編碼工具138能夠?qū)υO(shè)計深處的“順序”邏輯再編碼。現(xiàn)有技術(shù)的順序再編碼通常是完全PSPACE問題,而本發(fā)明后面的組合分析則僅是較為簡單的完全NP問題。
盡管在上述的實施例中,本發(fā)明被用于簡化順序設(shè)計,但這些技術(shù)同樣可很好地被用于組合設(shè)計中??傊景l(fā)明的組合方法相對于將引起偽反例的隨意選擇的切割點注入更為健壯。另外,通過再編碼工具138的再編碼對于抵消由過度逼近工具136產(chǎn)生的過度逼近設(shè)計的隨機門的數(shù)量增加非常有用。
盡管如參考優(yōu)選實施例的描述已經(jīng)特別示出了本發(fā)明,本領(lǐng)域的技術(shù)人員將理解,可在形式和細節(jié)上對其做各種改變,而不偏離本發(fā)明的精神和范圍。同樣重要的是應(yīng)注意,盡管已經(jīng)在全功能計算機系統(tǒng)的上下文中描述了本發(fā)明,本領(lǐng)域的技術(shù)人員將理解的是,本發(fā)明的機制能夠作為各種形式的程序產(chǎn)品而發(fā)布,不管攜帶用于實際執(zhí)行發(fā)布的介質(zhì)的信號的特殊類型如何,本發(fā)明都一樣適用。攜帶介質(zhì)的信號的例子包括但不局限于諸如軟盤或CD ROM的可記錄類型介質(zhì)以及諸如模擬或數(shù)字通信鏈路的傳輸類型介質(zhì)。
權(quán)利要求
1.一種以增量方式縮減設(shè)計的方法,所述方法包括接收設(shè)計以及要相對于所述設(shè)計進行驗證的特性;選擇用于縮減所述設(shè)計的多種不同技術(shù)中的一種或多種;利用所述一種或多種技術(shù)縮減所述設(shè)計,以創(chuàng)建縮減的設(shè)計;嘗試為所述縮減的設(shè)計上的所述特性生成有效的解決方案;以及確定所述有效的解決方案是否已生成;使用所述縮減的設(shè)計取代所述設(shè)計;以及在生成所述有效的解決方案之前,執(zhí)行所述選擇、縮減、確定以及取代步驟。
2.權(quán)利要求1的方法,其中所述選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的步驟進一步包括,通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過注入切割點過度逼近所述設(shè)計,選擇對所述設(shè)計的一部分再編碼的集合中的一種。
3.權(quán)利要求2的方法,其中所述選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的步驟進一步包括,如果所述設(shè)計具有多個輸入,則通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)來選擇對所述設(shè)計的一部分再編碼。
4.權(quán)利要求2的方法,其中所述選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的步驟進一步包括,如果所述設(shè)計具有多個狀態(tài)元件,則通過注入切割點來選擇過度逼近所述設(shè)計。
5.權(quán)利要求1的方法,其中所述利用所述一種或多種技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的步驟進一步包括,通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過并行注入切割點過度逼近所述設(shè)計,來對所述設(shè)計的一部分再編碼。
6.權(quán)利要求1的方法,其中所述利用所述技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的步驟進一步包括,通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過注入切割點過度逼近所述設(shè)計,利用對所述設(shè)計的一部分再編碼的集合中的一種來縮減所述設(shè)計。
7.權(quán)利要求1的方法,其中所述接收設(shè)計的步驟進一步包括接收所述設(shè)計的結(jié)構(gòu)表示。
8.權(quán)利要求1的方法,其中所述選擇用于縮減所述設(shè)計的所述多種不同技術(shù)的一種或多種的步驟進一步包括,在所述多種不同技術(shù)之間交替。
9.權(quán)利要求1的方法,其中所述在生成所述有效的解決方案之前執(zhí)行所述選擇、縮減、確定以及取代步驟的步驟進一步包括,提高分配給所述縮減、確定以及取代步驟的資源等級。
10.一種用于以增量方式縮減設(shè)計的系統(tǒng),所述系統(tǒng)包括用于接收設(shè)計以及要相對于所述設(shè)計進行驗證的特性的裝置;用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的一種或多種的裝置;用于利用所述一種或多種技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的裝置;用于嘗試為所述縮減的設(shè)計上的所述特性生成有效的解決方案的裝置;以及用于確定所述有效的解決方案是否已生成的裝置;用于使用所述縮減的設(shè)計取代所述設(shè)計的裝置;以及用于在生成所述有效的解決方案之前,執(zhí)行所述選擇、縮減、確定以及取代步驟的裝置。
11.權(quán)利要求10的系統(tǒng),其中所述用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的裝置進一步包括,用于通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過注入切割點過度逼近所述設(shè)計,選擇對所述設(shè)計的一部分再編碼的集合中的一種的裝置。
12.權(quán)利要求11的系統(tǒng),其中所述用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的裝置進一步包括,用于如果所述設(shè)計具有多個輸入,則通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)來選擇對所述設(shè)計的一部分再編碼的裝置。
13.權(quán)利要求11的系統(tǒng),其中所述用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的裝置進一步包括,用于如果所述設(shè)計具有多個狀態(tài)元件,則通過注入切割點選擇過度逼近所述設(shè)計的裝置。
14.權(quán)利要求10的系統(tǒng),其中所述用于利用所述一種或多種技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的裝置進一步包括,用于通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過并行注入切割點過度逼近所述設(shè)計,來對所述設(shè)計的一部分再編碼的裝置。
15.權(quán)利要求10的系統(tǒng),其中所述用于利用所述技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的裝置進一步包括,用于通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過注入切割點過度逼近所述設(shè)計,利用對所述設(shè)計的一部分再編碼的所述集合中的一種來縮減所述設(shè)計的裝置。
16.權(quán)利要求10的系統(tǒng),其中所述用于接收設(shè)計的裝置進一步包括用于接收所述設(shè)計的結(jié)構(gòu)表示的裝置。
17.權(quán)利要求10的系統(tǒng),其中所述用于選擇用于縮減所述設(shè)計的所述多種不同技術(shù)的一種或多種的裝置進一步包括,用于在所述多種不同技術(shù)之間交替的裝置。
18.權(quán)利要求10的系統(tǒng),其中所述用于在生成所述有效的解決方案之前,執(zhí)行所述選擇、縮減、確定以及取代步驟的裝置進一步包括,用于提高分配給所述縮減、確定以及取代步驟的資源等級的裝置。
19.一種計算機可讀介質(zhì)中用于以增量方式縮減設(shè)計的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機可讀介質(zhì);計算機可讀介質(zhì)上用于接收設(shè)計以及要相對于所述設(shè)計進行驗證的特性的指令;計算機可讀介質(zhì)上用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的一種或多種的指令;計算機可讀介質(zhì)上用于利用所述一種或多種技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的指令;計算機可讀介質(zhì)上用于嘗試為所述縮減的設(shè)計上的所述特性生成有效的解決方案的指令;以及計算機可讀介質(zhì)上用于確定所述有效的解決方案是否已生成的指令;計算機可讀介質(zhì)上用于使用所述縮減的設(shè)計取代所述設(shè)計的指令;以及用于在生成所述有效的解決方案之前,執(zhí)行所述選擇、縮減、確定以及取代步驟的指令。
20.權(quán)利要求19的計算機程序產(chǎn)品,其中所述用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的指令進一步包括,計算機可讀介質(zhì)上用于通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過注入切割點過度逼近所述設(shè)計,來選擇對所述設(shè)計的一部分再編碼的集合中的一種的指令。
21.權(quán)利要求20的計算機程序產(chǎn)品,其中所述用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的指令進一步包括,計算機可讀介質(zhì)上用于如果所述設(shè)計具有多個輸入,則通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)來選擇對所述設(shè)計的一部分再編碼的指令。
22.權(quán)利要求20的計算機程序產(chǎn)品,其中所述用于選擇用于縮減所述設(shè)計的多種不同技術(shù)中的其中一種的指令進一步包括,計算機可讀介質(zhì)上用于如果所述設(shè)計具有多個狀態(tài)元件,則通過注入切割點來選擇過度逼近所述設(shè)計的指令。
23.權(quán)利要求20的計算機程序產(chǎn)品,其中所述用于利用所述一種或多種技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的指令進一步包括,計算機可讀介質(zhì)上用于通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過并行注入切割點過度逼近所述設(shè)計,來對所述設(shè)計的一部分再編碼的指令。
24.權(quán)利要求19的計算機程序產(chǎn)品,其中所述用于利用所述技術(shù)縮減所述設(shè)計以創(chuàng)建縮減的設(shè)計的指令進一步包括,計算機可讀介質(zhì)上用于通過用縮減尺寸的等同邏輯取代切割的扇入側(cè)并通過注入切割點過度逼近所述設(shè)計,利用對所述設(shè)計的一部分再編碼的集合中的一種來縮減所述設(shè)計的指令。
25.權(quán)利要求19的計算機程序產(chǎn)品,其中所述用于接收設(shè)計的指令進一步包括,計算機可讀介質(zhì)上用于接收所述設(shè)計的結(jié)構(gòu)表示的指令。
26.權(quán)利要求19的計算機程序產(chǎn)品,其中所述用于選擇用于縮減所述設(shè)計的所述多種不同技術(shù)的一種或多種的指令進一步包括,計算機可讀介質(zhì)上用于在所述多種不同技術(shù)之間交替的指令。
27.權(quán)利要求19的計算機程序產(chǎn)品,其中所述用于在生成所述有效的解決方案之前,執(zhí)行所述選擇、縮減、確定以及取代步驟的指令進一步包括,計算機可讀介質(zhì)上用于提高分配給所述縮減、確定以及取代步驟的資源等級的指令。
全文摘要
本發(fā)明公開了一種以增量方式縮減設(shè)計的方法。邏輯驗證工具接收設(shè)計以及要相對于所述設(shè)計進行驗證的特性,然后選擇用于縮減所述設(shè)計的多種不同技術(shù)中的一種或多種。所述邏輯驗證工具然后利用所述一種或多種技術(shù)縮減所述設(shè)計,以創(chuàng)建縮減的設(shè)計,并嘗試為所述縮減的設(shè)計上的特性生成有效的解決方案。所述邏輯驗證工具確定所述有效的解決方案是否已生成,如果沒有,則使用所述縮減的設(shè)計取代所述設(shè)計。在生成所述有效的解決方案之前,所述邏輯驗證工具執(zhí)行所述選擇、縮減、確定以及取代步驟。
文檔編號G06F17/50GK1790353SQ200510124688
公開日2006年6月21日 申請日期2005年11月14日 優(yōu)先權(quán)日2004年12月14日
發(fā)明者賈森·R.·伯姆加特納, 羅伯特·L.·坎澤爾曼, 哈里·默尼, 維里施·帕魯斯 申請人:國際商業(yè)機器公司