專利名稱:通過軌跡包含來減小時(shí)序網(wǎng)表的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及狀態(tài)機(jī)的數(shù)字電路設(shè)計(jì),并且更具體地,涉及用于有效改善數(shù)字電路設(shè)計(jì)的系統(tǒng)、方法和計(jì)算機(jī)產(chǎn)品。
背景技術(shù):
可以使用狀態(tài)等式和狀態(tài)變量以描述系統(tǒng)的行為和狀態(tài)來建模具有存儲(chǔ)器元件 的電子電路。與定義狀態(tài)之間的轉(zhuǎn)換的邏輯耦合的系統(tǒng)的狀態(tài)變量的完整集合典型地包括 關(guān)于系統(tǒng)的歷史的足夠信息,以使得能夠計(jì)算系統(tǒng)的未來行為。簡(jiǎn)化模型以精簡(jiǎn)狀態(tài)變量 的數(shù)量,或者簡(jiǎn)化定義狀態(tài)轉(zhuǎn)換的邏輯,這減輕了例如分析模型以驗(yàn)證它符合給定規(guī)范的 計(jì)算代價(jià)。狀態(tài)變量模型的綜合(synthesis)和驗(yàn)證通常需要大量的計(jì)算資源。因此,對(duì)于 邏輯設(shè)計(jì)中的各種任務(wù),減小設(shè)計(jì)尺寸的能力處于中心重要的地位,這是由于相對(duì)于設(shè)計(jì) 尺寸,驗(yàn)證算法通常需要指數(shù)級(jí)的資源。減小設(shè)計(jì)尺寸的能力可能在使用驗(yàn)證算法來暴露 設(shè)計(jì)缺陷是否可行的方面有所區(qū)別。所需要的是在保留相對(duì)于驗(yàn)證結(jié)果的該設(shè)計(jì)的行為的同時(shí)減小設(shè)計(jì)尺寸的自動(dòng)方法。
發(fā)明內(nèi)容
在此公開的實(shí)施例通過提供通過保留相對(duì)于驗(yàn)證結(jié)果的該設(shè)計(jì)的行為的軌跡包 含(trace-containment)檢測(cè)的方法來減小設(shè)計(jì)尺寸的系統(tǒng)、方法和計(jì)算機(jī)產(chǎn)品,來解決 上述的需要。提供各種實(shí)施例,用于通過電路設(shè)計(jì)網(wǎng)表的軌跡包含來減小時(shí)序網(wǎng)表,這通過標(biāo) 識(shí)該網(wǎng)表的切割、枚舉不匹配(mismatch)軌跡的集合、然后從這些不匹配軌跡得到輸入 “J”的集合用于等價(jià)檢查以檢測(cè)軌跡包含。各種實(shí)施例執(zhí)行該切割的余因子版本的時(shí)間受 限的展開,其中該切割的余因子版本反映用于i的時(shí)序余因子和用于輸入“J”的集合的時(shí) 間上非相關(guān)性的約束,然后確定是否存在軌跡包含。響應(yīng)于檢測(cè)到軌跡包含,可以識(shí)別對(duì)輸 入“J”的集合的約束關(guān)系。當(dāng)識(shí)別對(duì)輸入“J”的約束關(guān)系時(shí),這些實(shí)施例可以試圖證明該 貞害1J白勺介(sequential equivalence)。
被合并在說明書中并組成說明書的一部分的附示了本發(fā)明的各種實(shí)施例。與 通常描述一起,附圖起到解釋本發(fā)明的原理的作用。在附圖中圖IA描繪了通過基于軌跡包含的減小來減小網(wǎng)表(netlist)尺寸的整體架構(gòu)的 方法的流程圖100 ;圖IB描繪了高層(high level)軌跡包含檢查的方法的流程圖150 ;圖2A描繪了根據(jù)本發(fā)明的各種實(shí)施例的使用網(wǎng)表切割(cut)來獲取在基于軌跡包含的減小中使用的切割的方法的流程圖200 ;圖2B描繪了搜索切割而針對(duì)的電路中的示例寄存器;圖2C描繪了用于獲取在基于軌跡包含的減小中使用的切割的偽代碼;圖3描繪了根據(jù)本發(fā)明的各種實(shí)施例的用于確定在輸入之間的時(shí)間關(guān)系的方法的流程圖300 ;圖4A-D描述了用于實(shí)現(xiàn)被搜索來消除的輸入和其他輸入之間的所確定的時(shí)間關(guān) 系的邏輯;以及圖5描繪了適于實(shí)現(xiàn)和實(shí)踐各種示例實(shí)施例的計(jì)算機(jī)系統(tǒng)500。
具體實(shí)施例方式在此公開的各種實(shí)施例經(jīng)由軌跡包含檢測(cè)來提供時(shí)序設(shè)計(jì)(sequentialdesign) 的自動(dòng)減小。這包括許多相互關(guān)聯(lián)的方面,例如包括通過反復(fù)假定期望的減小、假定在該設(shè) 計(jì)的輸入之間的時(shí)間關(guān)系以使能(enable)軌跡包含檢測(cè)、然后嘗試證明相應(yīng)的軌跡包含 以使能該減小來減小網(wǎng)表尺寸的整體架構(gòu)。第二相關(guān)方面包括計(jì)算該網(wǎng)表的切割,針對(duì)其 來獲得可以用于使能有效的軌跡包含檢測(cè)的不匹配軌跡。在第三相關(guān)方面中,在輸入之間 確定可以用于使能有效的軌跡包含檢測(cè)的時(shí)間關(guān)系。最后,第四相關(guān)方面涉及用于實(shí)現(xiàn)我 們希望消除的輸入和其他輸入之間的確定的時(shí)間關(guān)系以使能軌跡等價(jià)檢測(cè)的機(jī)制。盡管在 一些情況下,各種方面中的一些可以被實(shí)現(xiàn)為單獨(dú)的解決方案,但是提供根據(jù)所公開的實(shí) 施例的整體驗(yàn)證架構(gòu)仍然是有用的。用于電路設(shè)計(jì)的網(wǎng)表包括具有代表門的頂點(diǎn)(vertices)和代表這些門之間的相 互連接的邊的有向(directed)圖。這些門具有相關(guān)功能,例如常數(shù)、初級(jí)輸入(primary input)、諸如AND門之類的組合邏輯和時(shí)序元件(在下文中被稱為寄存器)。寄存器具有兩 種類型的相關(guān)功能它們的下一狀態(tài)功能和它們的初始值功能。兩者在圖形中用其他門來 代表。在語義上,對(duì)于給定的寄存器,在時(shí)間“0”(“初始化”或“復(fù)位”時(shí)間)處在其初始值門 處出現(xiàn)的值將被用作該寄存器自身的值。在時(shí)間“i”處在其下一狀態(tài)功能門處出現(xiàn)的值將 在時(shí)間“i+1”處被用于寄存器自身。不具有寄存器的網(wǎng)表被稱為“組合(combinational)”。 可以將網(wǎng)表中的某些門標(biāo)記為目標(biāo)。目標(biāo)與被搜索來驗(yàn)證的屬性相關(guān)聯(lián)。驗(yàn)證處理的目的 是搜索將“1”驅(qū)動(dòng)到目標(biāo)節(jié)點(diǎn)(以及如果發(fā)現(xiàn)一,則生成隨時(shí)間的對(duì)門的配值(valuation) 的“軌跡”,例示該情況)的方式,或者證明目標(biāo)的這種取值(assertion)是不可能的方式。 術(shù)語“余因子(cofactor)”表示用常數(shù)來替代設(shè)計(jì)中的輸入。正的余因子表示用常數(shù)1代 替輸入。負(fù)的余因子表示用常數(shù)0代替輸入??梢酝ㄟ^“合并”操作來簡(jiǎn)化網(wǎng)表,該“合并” 操作用對(duì)要合并到其上的門的參考,來代替來自一個(gè)門的扇出參考(fanout references)。 “切割”表示將網(wǎng)表圖形分割為兩個(gè)部分的分割。圖IA描繪了用于通過基于軌跡包含的減小來減小網(wǎng)表尺寸的整體架構(gòu)的方法的 流程圖100。本發(fā)明的該第一個(gè)方面涉及反復(fù)假定期望的減小,假定該設(shè)計(jì)的輸入之間的時(shí) 間關(guān)系以使能有效的軌跡包含檢測(cè),然后嘗試證明相應(yīng)的軌跡包含以使能該減小。通過下 面的偽代碼來描繪該處理的上層循環(huán)。方法在101處開始,并前進(jìn)到103以取第一輸入i。 在塊105中,對(duì)于每個(gè)輸入i,將時(shí)序余因子邏輯添加到輸入i。方法前進(jìn)到107來確定i 被余因子為0的網(wǎng)表軌跡是否包含i被余因子為1的網(wǎng)表。如上所述,術(shù)語余因子表示用常數(shù)——用于正余因子的常數(shù)1或者用于負(fù)余因子的常數(shù)O—來替代設(shè)計(jì)中的輸入。如 果在107中確定i被余因子為0的網(wǎng)表軌跡包含i被余因子為1的網(wǎng)表,則該方法沿著“是 (YES) ”分支前進(jìn)到109以將i合并到0。然后,方法從109前進(jìn)到117來確定是否取另一 輸入i。然而,返回到塊107中,如果確定i被余因子為0的網(wǎng)表軌跡不包含i被余因子為 1的網(wǎng)表,則該方法沿著“否(NO)”分支前進(jìn)到111。在塊111中,該方法檢查i被余因子為1的網(wǎng)表軌跡是否包含i被余因子為0的 網(wǎng)表。如果這被發(fā)現(xiàn)是真的,則該方法沿著“是(YES) ”分支前進(jìn)到113以將i合并到1。然 而,如果在塊111中確定i被余因子為1的網(wǎng)表軌跡不包含i被余因子為0的網(wǎng)表,則該方 法沿著“否(NO) ”分支前進(jìn)到115,在115中確定不能消除輸入i并且從i中去除(remove) 時(shí)序余因子。然后,方法前進(jìn)到117來確定是否存在將被考慮的另一輸入i。如果存在,則 該方法沿著“是(YES) ”分支從117返回到103以取另一輸入i。如果在117中確定不存在 另外的i輸入,則該方法沿著“否(NO) ”分支從117前進(jìn)并且結(jié)束。
至少一些實(shí)施例可以將時(shí)序余因子邏輯用作在給相同代理人的發(fā)明名稱 為“Method, System and Application for Sequential Cofactor-Base Analysis ofNetlists”、代理案號(hào)AUS920080393. · IBM-0144( ‘393申請(qǐng))的共同未決美國(guó)專利申請(qǐng) 中公開的每種方法和系統(tǒng)。該共同未決的專利申請(qǐng)中的各種實(shí)施例允許系統(tǒng)使能在一個(gè)特 別的時(shí)間幀內(nèi)評(píng)估輸入對(duì)設(shè)計(jì)的影響。該共同未決的專利申請(qǐng)的方法通過評(píng)估任意時(shí)間點(diǎn) 處在相應(yīng)的輸入上驅(qū)動(dòng)Ovs. 1的影響,使得能夠研究(exploration)對(duì)輸入i的配值的任 意序列。驅(qū)動(dòng)Ovs. 1的時(shí)間點(diǎn)可以被稱為“余因子時(shí)間”。然后,我們可以研究負(fù)余因子軌 跡是否包含正余因子。如果包含,則我們可以將i合并到0。如果不包含,則我們檢查正余 因子軌跡是否包含負(fù)余因子。如果這被發(fā)現(xiàn)是真的,則我們可以將0合并到1。如果沒有一 個(gè)條件被滿足,則我們可能不將輸入合并到任一常數(shù)0或1,并且相反,繼續(xù)嘗試消除下一 輸入。圖IB描繪了用于高層軌跡包含檢查的方法的流程圖150。圖IB的方法在151處 開始以評(píng)估軌跡包含,并且前進(jìn)到153以針對(duì)網(wǎng)表的所標(biāo)識(shí)的切割來枚舉不匹配軌跡的集 合。例如,這可以用本發(fā)明的第二方面以下面結(jié)合圖2A描述的方式來完成。圖2A的方法 計(jì)算網(wǎng)表的切割,針對(duì)其來獲得可以用于使能有效的軌跡包含檢測(cè)的不匹配軌跡。返回到 圖IB的塊153,一旦枚舉了不匹配軌跡,該方法就前進(jìn)到155。在塊155中,使用不匹配軌 跡來獲得輸入“J”的集合,該輸入“J”的集合被操縱來進(jìn)行等價(jià)檢查以檢測(cè)軌跡包含。然 后,方法前進(jìn)到157,以得到“J”和余因子時(shí)間之間的時(shí)間關(guān)系。這可以使用下面結(jié)合圖3 討論的本發(fā)明的第三方面的各種實(shí)施例來完成。當(dāng)完成“J”和余因子時(shí)間之間的時(shí)間關(guān)系 時(shí),該方法從157前進(jìn)到159。塊159的活動(dòng)涉及將時(shí)間上非相關(guān)性的約束添加到“J”以反映時(shí)間關(guān)系,本發(fā)明 的第四方面。然后,該方法前進(jìn)到161以對(duì)反映用于i的時(shí)序余因子和用于“J”的時(shí)間上 非相關(guān)性的約束的、該切割的余因子版本(cofactoredversion)的進(jìn)行時(shí)間受限的展開 (time-bounded unfolding)。當(dāng)在161中完成對(duì)余因子的切割版本的時(shí)間受限的展開之 后,該方法前進(jìn)到163以確定是否可以檢測(cè)到軌跡包含。如果由于例如不匹配軌跡而造成 在163中不能驗(yàn)證軌跡包含,則該方法沿著“否(NO) ”路徑從163前進(jìn)到165以評(píng)價(jià)是否獲 得額外的不匹配軌跡并重復(fù)該處理。如果在165中確定要嘗試其他不匹配軌跡,則該方法沿著“是(YES) ”路徑從165返回到153。否則,該方法沿著“否”路徑從165前進(jìn)到173并結(jié)束。返回到塊163中,如果在塊161的組合展開結(jié)果上檢測(cè)到軌跡包含,則該方法沿著 “是(YES) ”路徑從163前進(jìn)到167以識(shí)別對(duì)“J”的約束關(guān)系。當(dāng)完成塊167識(shí)別對(duì)“J”的 約束關(guān)系時(shí),該方法前進(jìn)到塊169以使用在塊167中得到的約束關(guān)系來嘗試證明得到的切 割的時(shí)序等價(jià)。在塊169中,如果不能證明該切割的時(shí)序等價(jià)(sequential equivalence), 則該方法沿著“否(NO) ”路徑從169前進(jìn)到165以評(píng)價(jià)是否使用其他的不匹配軌跡來重復(fù) 該處理。然而,如果在169中該切割被證明是等價(jià)的,則該方法沿著“是(YES) ”路徑從169 前進(jìn)到171以接受該切割。然后,該方法前進(jìn)到173并結(jié)束。例如,如下面結(jié)合圖2A所討論的,在本發(fā)明的第二方面的實(shí)施例中描述獲得用于 所標(biāo)識(shí)的切割的不匹配軌跡的處理。一旦獲得切割,我們就可以標(biāo)識(shí)輸入“J”的集合,其可 以被操縱來嘗試使能等價(jià)檢查來檢測(cè)軌跡包含。例如,如下面結(jié)合圖3所討論的,在本發(fā)明 的第三方面的實(shí)施例中詳細(xì)描述這個(gè)處理。例如,如下面參考圖4所描述的,當(dāng)完成這個(gè)處 理時(shí),我們可以按照本發(fā)明的第四方面的實(shí)施例來將時(shí)間上非相關(guān)性的約束注入到“J”。然 后,組合的軌跡包含檢測(cè)算法可以被用在網(wǎng)表的臨時(shí)展開版本上。展開指的是通過及時(shí)(in time)展開時(shí)序問題、即通過將時(shí)間步i的網(wǎng)表的拷貝在時(shí)間步“i+1”中送入這些寄存器的 下一狀態(tài)功能,來對(duì)于每個(gè)時(shí)間步(time step)引入新的輸入,并且在時(shí)間0處使用初始值 來代替這些寄存器,來將該時(shí)序問題轉(zhuǎn)換為組合網(wǎng)表。
在分配給當(dāng)前代理人的發(fā)明名稱為“Method and System forTrace-Containment Detection of Combinational Netlist via Constraint-BasedUncorrelated Equivalence Checking”、代理案號(hào) AUS920080415. . IBM-0145 ( ‘415 申請(qǐng))的共同未決的 美國(guó)專利申請(qǐng)中公開了示例組合的軌跡包含檢測(cè)算法。該共同未決的美國(guó)專利申請(qǐng)公開 了用于檢測(cè)組合設(shè)計(jì)的軌跡包含的方法。當(dāng)前發(fā)明的各種實(shí)施例描述了時(shí)序設(shè)計(jì)的基于 軌跡包含的減小的構(gòu)架。然而,在當(dāng)前發(fā)明的至少一些實(shí)施例中,我們可以使用共同未決 ‘415申請(qǐng)的方面來有效地確定可能在時(shí)序域中有用的、在正被減小的時(shí)序網(wǎng)表的受限行為 (bounded behavior)上的關(guān)系。軌跡包含檢測(cè)算法的副產(chǎn)物是在非相關(guān)的輸入“J”上的關(guān)系,其表示可以如何使 網(wǎng)表的一個(gè)拷貝與另一個(gè)相同地表現(xiàn)(behave)。一旦我們獲得了 “J”上的該關(guān)系用于展 開的網(wǎng)表,我們就相應(yīng)地約束在臨時(shí)非相關(guān)的約束中使用的相應(yīng)輸入,并嘗試證明得到的 切割的時(shí)序等價(jià)。該證明可以通過任意驗(yàn)證算法、例如基于BDD或SAT的可達(dá)性分析、歸 納法、插值等來得到。在發(fā)明名稱為 “Exploiting Suspected Redundancy for Enhanced DesignVerification"的與本公開相同的發(fā)明人的美國(guó)專利7,260,799中公開了時(shí)序等價(jià) 檢查的方法,其全部?jī)?nèi)容通過引用合并于此。圖2A描繪了使用網(wǎng)表切割來獲得在基于軌跡包含的減小中使用的切割的方法的 流程圖200。軌跡包含檢測(cè)可以是計(jì)算代價(jià)高昂的。該方法檢測(cè)網(wǎng)表的切割,針對(duì)其來獲得 可以用于使能有效的基于軌跡包含的減小的不匹配軌跡。當(dāng)標(biāo)識(shí)這種切割時(shí)必須考慮的普 遍哲理是,如果該切割太小,則不太可能存在軌跡包含關(guān)系——而如果該切割太大,則檢測(cè) 軌跡包含可能在計(jì)算上不可行。為了說明該問題,考慮圖2B,其描述了搜索切割而針對(duì)的電路中的寄存器。假設(shè),我們嘗試的減小是合并具有O的網(wǎng)表的輸入10,如圖的頂部處所描繪的。為了證實(shí)該合并 保留了驗(yàn)證結(jié)果,我們可能希望將它的行為與當(dāng)將IO驅(qū)動(dòng)為1時(shí)的網(wǎng)表的行為相比較,如 圖的底部處所描繪的。假設(shè)該網(wǎng)表具有不同于IO的輸入的向量,這些不同于IO的輸入與 IO—起通過寄存器組R0、R1、R2被采樣到在圖中標(biāo)記為“一比特?zé)嵛?one-hot)”的一比特 熱位檢測(cè)器。陰影描繪了可能在兩個(gè)網(wǎng)表中評(píng)價(jià)不同的網(wǎng)表子集,并且該網(wǎng)表子集包括采 樣IO的R0、R1、R2的位、一比特?zé)嵛粰z測(cè)器以及一比特?zé)嵛粰z測(cè)器的扇出中的門的集合。本公開的這個(gè)方面通過標(biāo)識(shí)在正被合并以使能該減小的門的扇出中的網(wǎng)表的切割來操作。這可以通過枚舉可能在正被分析用于軌跡包含的兩個(gè)網(wǎng)表之間不匹配的門的子 集來完成。這通過分析軌跡的集合并且枚舉在任何軌跡中在兩個(gè)網(wǎng)表之間行為不同的門來 完成。這個(gè)集合將形成網(wǎng)表的切割,因?yàn)椴豢赡艿氖牵摼W(wǎng)表的內(nèi)部門在行為上不同而其 扇入(fanin)中的任何門在行為上相同。在至少一個(gè)實(shí)施例中,使用仿真和受限徹底搜索 (boundedexhaustive search)的混合來獲得軌跡,例如在初始化之后的一定數(shù)量的時(shí)間幀 中,在網(wǎng)表的展開拷貝上使用SAT解算機(jī)(solver)來研究可由該設(shè)計(jì)產(chǎn)生的所有行為。后 者可以用于直接嘗試標(biāo)識(shí)在兩個(gè)網(wǎng)表中的某些門之間的不匹配,并且特別地,針對(duì)還沒有 被證明(witnessed as)為在兩個(gè)網(wǎng)表之間不匹配的門,以及具有在它們中間的扇入中被證 明為不匹配的門的門??梢杂脠D2C的偽代碼來總結(jié)該全部處理。參考圖2C,進(jìn)程SearCh_F0r_MiSmatCh ()使用驗(yàn)證算法、例如如上所述的仿真和 基于SAT的受限搜索的任意集合,以試圖找到在mismatctufrontier的門上的不匹配。如 果找到軌跡,則可以使用進(jìn)程ExtencLTrace ()來將行為和時(shí)間幀添加到該軌跡來更好地 使該軌跡能甚至在mismatch_frontier以外的門上標(biāo)識(shí)不匹配。Find_New_Frontier ()進(jìn) 程分析得到的軌跡以找到被標(biāo)識(shí)為“軌跡”中的不匹配的所有門,并且創(chuàng)建neW_miSmatCh_ frontier作為直接在該區(qū)域的扇出處的門,用于通過循環(huán)而下一次重復(fù)。當(dāng)該進(jìn)程成功終止時(shí),它標(biāo)識(shí)了網(wǎng)表的切割,該網(wǎng)表的切割將被證明為不匹配的 vs.沒有被證明為不匹配的門進(jìn)行分割。然而,通常期望的是選擇被證明為軌跡包含檢測(cè) 的基礎(chǔ)的門的切割。因此,在一些實(shí)施例中,期望的是將在被標(biāo)識(shí)為不匹配的不匹配邊緣 的扇入中的門選為我們的切割。更普遍地,我們可以將被包含在該最大尺寸的不匹配切 割中的任意切割選為要使用的切割??梢允褂糜糜谧钚∏懈罘治龅乃惴ǎ缭?956年 來自 CanadianJournal of Mathematics 的作者為 L. ft Ford 禾口 D. P. Fulkerson 的題為 "MaximalFlow Through a Network”的論文中所描述的,用于標(biāo)識(shí)更小的切割以嘗試進(jìn)一 步提煉(abstract against) 0在一些實(shí)施例中,可能使用資源限制、例如對(duì)不匹配軌跡的 最大長(zhǎng)度的限制、或者對(duì)SearCh_F0r_Mismatch的時(shí)間或存儲(chǔ)器限制或者對(duì)mismatch_ frontier的大小的限制,來終止具有更小的切割的該進(jìn)程。通常,切割越大,在標(biāo)識(shí)軌跡包含時(shí)可能牽涉的資源更多。然而,如上所述,切割太 小可能不呈現(xiàn)軌跡包含,盡管有可能更深的切割將呈現(xiàn)。例如,如果我們?cè)赗O或Rl或R2 處選擇切割,則可能出現(xiàn)在圖2B的兩個(gè)網(wǎng)表上不可能有軌跡包含的情況。然而,如果我們 從一比特?zé)嵛惠斎牖蚱渖瘸鲞x擇任何切割,則路經(jīng)包含將是可檢測(cè)的,因?yàn)閷?duì)其他輸入的 配值可能導(dǎo)致等價(jià)軌跡。為了最優(yōu),我們可能希望獲得盡可能靠近一比特?zé)嵛坏那懈睢=Y(jié) 合圖2A-C討論的處理可以使能標(biāo)識(shí)這種切割。引入多個(gè)機(jī)制來增強(qiáng)該處理的伸縮性,從而減小計(jì)算復(fù)雜度。一個(gè)機(jī)制利用用于在網(wǎng)表的切割vs.整個(gè)網(wǎng)表上執(zhí)行軌跡包含分析的能力。在圖2A中描繪了根據(jù)本發(fā)明的 第二方面的實(shí)施例的用于獲得和測(cè)試這種切割的流程圖。對(duì)于時(shí)序余因子邏輯被添加到的 每個(gè)輸入i,可以確定和測(cè)試(這一個(gè)或多個(gè))切割,例如按照?qǐng)D1的塊103和105。返回圖2A,該圖的方法在201處開始,并且前進(jìn)到203來計(jì)算針對(duì)其來檢測(cè)軌跡包 含的網(wǎng)表的切割。然后,該方法前進(jìn)到塊205來執(zhí)行軌跡包含減小。這可以以結(jié)合圖1的 塊107-115的上述方式來完成。然后,該方法前進(jìn)到207來確定是否可以消除輸入。如果 不能消除輸入,則該方法經(jīng)由“否”分支從207前進(jìn)到209,在209處確定該切割是否等于該 網(wǎng)表。然而,如果在207中確定能夠消除輸入,則該方法沿著“是(YES) ”分支從207前進(jìn)到 211以消除該輸入。當(dāng)在211中消除了輸入時(shí),該方法前進(jìn)到217并結(jié)束。返回到塊209,如果確定該切割等價(jià)于該網(wǎng)表,則因?yàn)椴荒芟撦斎?,該方法?著“是(YES) ”路徑前進(jìn)到213,然后前進(jìn)到217,在217處該方法結(jié)束。然而,如果在209中 確定該切割不等價(jià)于該網(wǎng)表,該方法沿著“否(NO)”路徑前進(jìn)到215。在塊215中,確定是 否增長(zhǎng)該切割。在一些情況下,可能沒有可能增長(zhǎng)該切割。而在其他情況下,這可能是有可 能的但是不可行 的(或者不實(shí)際的)。例如,使該切割更大可能需要處理比預(yù)定最大限度 更多的資源。在這種情況下,雖然將有可能增長(zhǎng)該切割,但是這可能是特別昂貴的。如果在 215中決定增長(zhǎng)該切割,則該方法沿著“是(YES) ”路徑從215返回到203來確定新的切割。 然而,如果(例如,由于基于諸如所估計(jì)的處理要求之類的預(yù)定準(zhǔn)則,這是不可能的或者不 期望的)確定不應(yīng)該增長(zhǎng)該切割,則該方法從215前進(jìn)到213來指定該輸入為不能被消除 的輸入。在該情況下,從i去除時(shí)序余因子,然后方法前進(jìn)到塊217,在217處方法結(jié)束。圖3涉及結(jié)合用于將時(shí)序軌跡包含問題轉(zhuǎn)換為組合軌跡包含問題的機(jī)制、來確定 在輸入之間的時(shí)間關(guān)系的方法,這可以用于根據(jù)本發(fā)明的各種實(shí)施例來使能有效的基于軌 跡包含的減小。如在給相同代理人的發(fā)明名稱為“Method and System forTrace-Containment Detection of Combinational Netlists via Constraint-BasedUncorrelated Equivalence Checking”的共同未決的‘415專利申請(qǐng)中所公開的,可以通過去相關(guān) (uncorrelate)某些輸入,并且使用約束以使得等價(jià)檢查能夠捕獲軌跡包含檢測(cè)的方式來 操縱它們,來使能針對(duì)組合網(wǎng)表的軌跡等價(jià)檢測(cè)。對(duì)于時(shí)序網(wǎng)表,該操縱處理變得極其復(fù) 雜,因?yàn)楦鞣N輸入可能在不同的相對(duì)時(shí)間幀,影響正用于軌跡包含檢測(cè)的切割,如結(jié)合圖 2A-C上述的實(shí)施例。例如,假設(shè)網(wǎng)表具有“opcode”輸入向量以及當(dāng)被取值為1時(shí)將導(dǎo)致該 設(shè)計(jì)在一個(gè)時(shí)間步之后采樣和解碼“opcode”的“valid”輸入。假設(shè)我們希望將“valid” 合并到1,因?yàn)檫@樣做將保留軌跡等價(jià),即解碼器輸出將在“valid = 0”之后一個(gè)時(shí)間步時(shí) 驅(qū)動(dòng)“n0_0p= 1”以及在任何時(shí)間驅(qū)動(dòng)“opcode = {no-op}”。在該例子中,為了使能軌跡 包含檢測(cè),我們需要能夠去相關(guān)“opcode”并且約束它以在“valid = 1”之后一個(gè)時(shí)間步時(shí) 給{no-op}評(píng)估(evaluate),來產(chǎn)生與“valid = 0”時(shí)相同的行為。相對(duì)固定的延時(shí)和固定時(shí)間是由在此公開的各種實(shí)施例支持的兩種時(shí)間關(guān)系。可 以從上面前一段中討論的opcode例子來理解相對(duì)固定的延時(shí)。在那個(gè)例子中,不相關(guān)的輸 入(“opcode”)要求相對(duì)于正被合并的輸入(“valid”)的、為1的相對(duì)固定的延時(shí)。這個(gè) 延時(shí)可以在正或負(fù)方向上,或者甚至同時(shí)。我們的發(fā)明僅僅處理同時(shí)或正延時(shí)??梢詮南旅?的例子來理解時(shí)間關(guān)系的另一類型,固定時(shí)間。假設(shè),存在數(shù)據(jù)路由網(wǎng)表,并且我們希望驗(yàn)證它正確地路由數(shù)據(jù)。網(wǎng)表可以具有“datajn”輸入向量和“data_0Ut”輸出向量。我們希 望檢查的屬性是特定值將在“data_0Ut”處出現(xiàn),在且僅在相同的值早前在“datajn”處 出現(xiàn)過的情況下。實(shí)現(xiàn)該檢查的一種方式是創(chuàng)建用隨機(jī)地初始化并之后保持它們的值的寄 存器集合來實(shí)現(xiàn)的隨機(jī)常數(shù)。然后,當(dāng)“datajn”匹配該隨機(jī)常數(shù)時(shí),我們可以設(shè)置(set) 被任意稱為“seen”的寄存器,并且利用如果“data_0Ut”等于該隨機(jī)常數(shù)則取值“seen = O”的目標(biāo)。如果我們希望將“datajn”的一個(gè)比特固定到假設(shè)為O的常數(shù),則注意針對(duì)該隨 機(jī)常數(shù)的等價(jià)檢查的結(jié)果將不等價(jià)于“data η”的那個(gè)比特是1的情況。具體地,考慮隨機(jī) 常數(shù)具有值“111111”并且兩個(gè)軌跡包含檢查的網(wǎng)表的“datajn”是“l(fā)lllll”vs “011111” 的情況。在前一種情況下,等價(jià)檢查將報(bào)告等價(jià)。在后一種情況下,等價(jià)檢查將報(bào)告不等價(jià) (或非等價(jià))。為了使能軌跡包含檢測(cè),我們使得該隨機(jī)常數(shù)的(如被固定用于“data in” 的)相同比特不相關(guān)。而且,在時(shí)間0處必須約束該隨機(jī)常數(shù)的非相關(guān)比特,而不管“data_ in”不同時(shí)的時(shí)間。在嘗試學(xué)習(xí)在輸入之間的時(shí)間關(guān)系中的我們的基本機(jī)制依賴于對(duì)不匹配軌跡、例如以上結(jié)合圖2A-C所描述的第二方面期間獲得的那些不匹配軌跡的分析。在至少一 個(gè)實(shí)施例中,我們希望獲得最少賦值(minimally-assigned)的軌跡,即包括盡可能少的 輸入賦值的軌跡,以例示期望的不匹配。可以通過在搜索不匹配時(shí)使用電路-SAT解算機(jī) 來分析兩個(gè)設(shè)計(jì)的行為,產(chǎn)生最少賦值的軌跡,因?yàn)殡娐?SAT解算機(jī)不給不必要的輸入 賦值??商娲兀梢允褂煤筇幚頇C(jī)制,其通過如下來消除不必要的輸入賦值例如通過 在給定輸入處的值翻轉(zhuǎn)的情況下檢查該不匹配軌跡是否仍然表明不匹配,并且如果是,則 消除那個(gè)輸入賦值。任何不匹配軌跡不可避免地將包括至少與余因子時(shí)間一樣深的時(shí)間 幀。一旦我們具有最少賦值的不匹配軌跡的集合,我們就可以前進(jìn)以將輸入“J”的集合、其 作為用于操縱來使能等價(jià)檢查以檢測(cè)軌跡包含的候選標(biāo)識(shí)為給相同代理人的發(fā)明名稱為 "Method and System for Trace-Containment Detection in CombinationalNetlists via Constraint-Based Uncorrelated Equivalence Checking,,白勺白勺禾0Ef3i青白勺 時(shí)序擴(kuò)展。我們也可以前進(jìn)以標(biāo)識(shí)那些輸入和余因子時(shí)間之間的時(shí)間關(guān)系。返回到圖3,該圖描繪了根據(jù)本發(fā)明的各種實(shí)施例的用于確定在使能有效的基于 軌跡包含的減小中使用的在輸入之間的時(shí)間關(guān)系的方法的流程圖300。方法在301處開始, 并且前進(jìn)到303來選擇要被分析的不匹配軌跡t。然后,該方法前進(jìn)到305來得到最少賦 值的不匹配軌跡tl、t2. . . tj的二級(jí)(secondary)集合,其試圖在原始軌跡中被證明之后 的時(shí)間幀處不匹配同一集合的門??梢源嬖谟脩艨芍付ǖ娜舾蓞?shù)用于選擇不匹配軌跡。 例如,用戶可指定的一個(gè)參數(shù)可以是搜索多少截然不同(distinct)的二級(jí)軌跡,以及另一 個(gè)可以是在原始不匹配軌跡之后的多少時(shí)間幀內(nèi)我們搜索新的不匹配。在至少一個(gè)實(shí)施例 中,我們可以強(qiáng)行使每個(gè)二級(jí)軌跡的余因子時(shí)間為余因子時(shí)間“t”加上要被添加到不匹配 深度的額外時(shí)間幀的數(shù)量。我們可以使用任意機(jī)制、例如,按照上面結(jié)合圖1討論的第一方 面來在展開的實(shí)例上使用SAT解算機(jī)來搜索這種軌跡。一旦在305中得到最少賦值的不匹配軌跡tl、t2. . . tj的二級(jí)集合,該方法就前進(jìn) 到307來確定在每個(gè)軌跡中除了 i之外的輸入是否以與“j”一樣多的次數(shù)被賦值。S卩,塊 307確定在每個(gè)得到的軌跡中與對(duì)i賦值一樣多的次數(shù)而被賦值的、或者可選地被賦以任 何值的、除了 i之外的輸入。如果塊307沒有得到任何這種輸入,則該方法沿著“否(N0)”路徑從307前進(jìn)到325并結(jié)束。如果在307中確定存在任何這種輸入,則該方法沿著“是 (YES) ”路徑從307前進(jìn)到309,來將所發(fā)現(xiàn)的輸入枚舉為集合“J”。一旦在309中定義了集 合“J”,則該方法前進(jìn)到311來從集合“J”選擇輸入“j”。在313中,確定是否在所有軌跡上在相同時(shí)間對(duì)“j”賦值。如果結(jié)果是在所有軌跡上在相同時(shí)間對(duì)“j”賦值的情況,則該方法沿著“是(YES) ”路徑從313前進(jìn)到315以假 定這個(gè)“j”輸入具有固定時(shí)延,然后從315到323以確定是否要選擇另一“j”。在塊313 中評(píng)估“j”時(shí),可選地,一些實(shí)現(xiàn)方式可以僅僅關(guān)注時(shí)間幀的具體集合或者甚至單個(gè)具體的 特定時(shí)間幀。已經(jīng)發(fā)現(xiàn)僅僅在時(shí)間0處檢查被賦值的輸入占用了固定時(shí)延輸入的使用的大 部分。返回到塊313中,如果發(fā)現(xiàn)“j”在這些軌跡上具有不同的時(shí)間值,則該方法沿著“否 (NO)”路徑從313前進(jìn)到317。在317中,該輸入“j”被評(píng)估以確定在每個(gè)軌跡中是否用相對(duì)于每個(gè)相應(yīng)軌跡的 余因子時(shí)間的、相同的相對(duì)固定的延時(shí)來給“j”賦值。如果發(fā)現(xiàn)“j”具有不同的固定時(shí)延, 則該方法前進(jìn)到321以從集合“J”中去除“j”輸入。一旦去除了 “j”,該方法就前進(jìn)到323 以確定是否選擇另一“j”用于該處理。返回317中,如果發(fā)現(xiàn)在每個(gè)軌跡中用相對(duì)于每個(gè) 相應(yīng)軌跡的余因子時(shí)間的、相同的相對(duì)固定的延時(shí)來給“j”賦值,則該方法沿著“是(YES),, 分支從317前進(jìn)到319。在319中,每個(gè)軌跡中保持的最小相對(duì)固定的延時(shí)被選為對(duì)于“j” 輸入的相對(duì)固定的延時(shí)。當(dāng)保存了 “ j”的完整的且所有的輸入值時(shí),該處理將生成要被操 作的輸入“J”的候選集合,以及對(duì)于在“J”和余因子時(shí)間之間使用的時(shí)間關(guān)系的猜測(cè)。然 后,該方法前進(jìn)到323,在323處確定是否選擇另一 “ j ”用于該處理。如果要考慮來自集合 “J”的另一輸入“j”,則該方法沿著“是(YES) ”路徑從323返回到塊311。否則,該方法沿 著“否(NO) ”路徑從323前進(jìn)到325,在325處方法結(jié)束。本發(fā)明的各種實(shí)施例的第四方面屬于用于實(shí)現(xiàn)在被搜索來消除的輸入和其他輸 入之間的確定的時(shí)間關(guān)系的機(jī)制。這使能有效的軌跡等價(jià)檢測(cè)。按照發(fā)明名稱為“Method, System and Application for Sequential Cofactor-BasedAnalysis of Netlists,,的共 同未決的美國(guó)專利申請(qǐng)的公開,可以通過將多路復(fù)用器注入到將被余因子的輸入i上,在 優(yōu)選實(shí)施例中實(shí)現(xiàn)時(shí)序余因子。多路復(fù)用器將在等價(jià)的或在一個(gè)任意時(shí)間幀內(nèi)被軌跡包含 檢查的兩個(gè)網(wǎng)表上的公共輸入之間選擇兩個(gè)網(wǎng)表上的不同常數(shù)。創(chuàng)建信號(hào)“ctime”,其在選 擇不同的常數(shù)期間第一次被取值。這個(gè)時(shí)間在這里被稱為“余因子時(shí)間”。對(duì)被賦予了 il 的正時(shí)序余因子的網(wǎng)表N,在圖4Α中描繪了這個(gè)邏輯的實(shí)施例。類似于時(shí)序余因子網(wǎng)表,用于臨時(shí)去相關(guān)輸入的裝置由多路復(fù)用器組成,該多路 復(fù)用器在除了一個(gè)時(shí)間幀以外的所有時(shí)間幀內(nèi)在被軌跡包含檢查的兩個(gè)網(wǎng)表上選擇公共 輸入,盡管取代在那個(gè)特定時(shí)間幀內(nèi)選擇不同的常數(shù),它選擇了不同的唯一輸入。從而,對(duì) 于一個(gè)特定的時(shí)間步,將在兩個(gè)網(wǎng)表的每個(gè)上驅(qū)動(dòng)不同的輸入。對(duì)于其他時(shí)間步,將驅(qū)動(dòng)公 共輸入。下面將討論用于選擇多路復(fù)用器、即用于確定當(dāng)將通過所述多路復(fù)用器驅(qū)動(dòng)不同 的輸入值時(shí)的時(shí)間幀的邏輯。對(duì)于賦予了 il的正時(shí)序余因子的網(wǎng)表N,在圖4B中描繪了該 邏輯。取決于在非相關(guān)的輸入和被余因子的輸入之間的時(shí)間關(guān)系的類型,選擇器時(shí)間邏 輯有所區(qū)別。我們考慮兩種情況固定時(shí)延的情況以及相對(duì)固定的延時(shí)的情況。可以通過 在要被去相關(guān)的所有輸入上,即在“J”內(nèi)的所有輸入上,標(biāo)識(shí)最大的固定時(shí)間k,來實(shí)現(xiàn)固定時(shí)延,其中本發(fā)明的方面3所確定的“J”是“固定時(shí)延”的類型。構(gòu)建初始化為O并在值“k+Ι”處飽和的無條件向上計(jì)數(shù)器。使用計(jì)數(shù)值和相應(yīng)的非相關(guān)輸入的固定時(shí)延之間的比 較作為“選擇器時(shí)間邏輯”。注意,可以在所有的固定時(shí)延輸入上重新使用該計(jì)數(shù)器本身。相對(duì)固定的延時(shí)代表應(yīng)該允許非相關(guān)輸入在余因子時(shí)間之后特定數(shù)量的時(shí)間步 的一個(gè)時(shí)間幀處不匹配的情況??梢酝ㄟ^標(biāo)識(shí)在要被去相關(guān)的所有輸入上(即,在‘S內(nèi) 的所有輸入上,其中結(jié)合圖3公開的本發(fā)明的第三方面中所確定的‘S是“相對(duì)時(shí)延”的類 型)的最大的相對(duì)固定的延時(shí)“k”,并且將k_Stage流水線(pipeline)添加到來自時(shí)序 余因子電路的多路復(fù)用器選擇器上,來實(shí)現(xiàn)這種邏輯。通過將初始化為0的k個(gè)寄存器添 加到該網(wǎng)表來創(chuàng)建這個(gè)流水線。第一個(gè)寄存器將多路復(fù)用器選擇器作為它的下一狀態(tài)功 能(function)。第二個(gè)寄存器將第一個(gè)寄存器作為它的下一狀態(tài)功能,以及第三個(gè)寄存器 將第二個(gè)寄存器作為它的下一狀態(tài)功能,等等。給定了具有相對(duì)固定的延時(shí)的非相關(guān)輸入 “J”,我們可以使用第“j”個(gè)流水線寄存器作為針對(duì)那個(gè)輸入的“選擇器時(shí)間邏輯”,其中“j =0”需要使用來自時(shí)序余因子電路的多路復(fù)用器選擇器本身。另外,我們注意到,在組合的軌跡等價(jià)檢測(cè)期間,在非相關(guān)輸入之間形成關(guān)系,其 在實(shí)現(xiàn)該關(guān)系的約束下使能等價(jià)檢查以檢測(cè)軌跡包含。在我們的時(shí)序網(wǎng)表減小架構(gòu)中,我 們?cè)跁r(shí)間上非相關(guān)邏輯中的網(wǎng)表上有所區(qū)別的輸入之間形成這個(gè)關(guān)系。因?yàn)檫@些輸入僅僅 在一個(gè)時(shí)間幀處影響該設(shè)計(jì)的行為,所以我們可以直接將約束關(guān)系從展開的組合網(wǎng)表提升 到時(shí)序網(wǎng)表。如針對(duì)上面的方法和處理所描述的,可以包括或排除各種活動(dòng),或者可以以不同 的順序來執(zhí)行各種活動(dòng),而剩余的活動(dòng)仍然留在至少一個(gè)示例實(shí)施例的范圍中。例如,在一 些實(shí)施例中,可以在塊107之前執(zhí)行圖1的塊111。本領(lǐng)域技術(shù)人員將知道以不同于圖中示 出的順序的順序來執(zhí)行的步驟的許多其他實(shí)例。圖5描繪了適于實(shí)現(xiàn)和實(shí)踐各種示例實(shí)施例的示例計(jì)算機(jī)系統(tǒng)500??梢砸匀?下形式配置計(jì)算機(jī)系統(tǒng)500 臺(tái)式計(jì)算機(jī)、膝上計(jì)算機(jī)、主機(jī)計(jì)算機(jī)或者其他能夠編程或配 置來執(zhí)行指令的布置。計(jì)算機(jī)系統(tǒng)500可以位于一個(gè)地方或者在一個(gè)地方互連,或者可以 分布在各種地方并經(jīng)由局域網(wǎng)或廣域網(wǎng)(LAN或WAN)、經(jīng)由因特網(wǎng)、經(jīng)由公共交換電話網(wǎng) (PSTN)或其他這種通信鏈接來互連。其他設(shè)備也可以適于實(shí)現(xiàn)或?qū)嵺`這些實(shí)施例或部分實(shí) 施例。這種設(shè)備包括個(gè)人數(shù)字助理(PDA)、無線手持設(shè)備(例如蜂窩式電話或?qū)ず魴C(jī))以及 優(yōu)選地能夠被編程來執(zhí)行指令或例程的其他這種消費(fèi)電子設(shè)備。典型地,計(jì)算機(jī)系統(tǒng)500包括可以被體現(xiàn)為微處理器或中央處理單元(CPU)的處 理器501。典型地,處理器501被配置為經(jīng)由諸如系統(tǒng)總線521之類的總線來訪問內(nèi)部存儲(chǔ) 器503。內(nèi)部存儲(chǔ)器503可以包括隨機(jī)讀取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、高速緩存存 儲(chǔ)器中的一個(gè)或多個(gè)、或者這些的組合、或者被配置為以可檢索格式存儲(chǔ)信息的其他類似 的電路類型。在一些實(shí)現(xiàn)方式中,內(nèi)部存儲(chǔ)器503可以被配置為處理器501的部分,或者可 替代地,可以被配置為與其分離但處于相同的包裝中。處理器511可能能夠經(jīng)由與訪問計(jì) 算機(jī)系統(tǒng)500的其他部件的不同的總線或控制線(例如本地總線505)來訪問內(nèi)部存儲(chǔ)器 503。典型地,計(jì)算機(jī)系統(tǒng)500還包括或訪問到一個(gè)或多個(gè)存儲(chǔ)盤507 (或其他類型的存 儲(chǔ)存儲(chǔ)器)以及軟盤509。存儲(chǔ)盤507和用于軟盤509的軟碟是適于存儲(chǔ)各種實(shí)施例的最后或中間結(jié)果的機(jī)器可讀介質(zhì)的例子。存儲(chǔ)盤507通常是被配置來存儲(chǔ)和檢索數(shù)據(jù)、計(jì)算 機(jī)程序或其他信息的硬盤。存儲(chǔ)盤507不一定需要被包含在計(jì)算機(jī)系統(tǒng)500內(nèi)。例如,在 一些實(shí)施例中,存儲(chǔ)盤507可以是網(wǎng)絡(luò)或因特網(wǎng)中的可以由計(jì)算機(jī)系統(tǒng)500訪問以存儲(chǔ)和 檢索數(shù)據(jù)、計(jì)算機(jī)程序或其他信息的服務(wù)器存儲(chǔ)空間。例如,計(jì)算機(jī)系統(tǒng)500可以使用在可 由因特網(wǎng)550或其他通信線路來訪問的服務(wù)器存儲(chǔ)場(chǎng)地處的存儲(chǔ)空間。軟盤509可以包括 可以讀和/或?qū)懣梢苿?dòng)存儲(chǔ)介質(zhì)的各種格式的多種盤(例如,⑶-R、⑶-RW、DVD、DVD-R、軟 碟等)的組合。計(jì)算機(jī)系統(tǒng)500可以包括存儲(chǔ)盤507和軟盤509作為其體系架構(gòu)的一部分 (例如,在相同的機(jī)殼或外殼內(nèi)和/或使用相同的電源),作為連接的外設(shè),或者可以通過網(wǎng) 絡(luò)訪問存儲(chǔ)盤507和軟盤509,或者這些的組合。存儲(chǔ)盤507通常用于存儲(chǔ)由計(jì)算機(jī)系統(tǒng) 500執(zhí)行的軟件、指令和程序,包括例如,用于工程管理任務(wù)優(yōu)先的所有或部分的計(jì)算機(jī)應(yīng) 用程序。計(jì)算機(jī)系統(tǒng)500可以包括通信接口 511,其被配置來通信地連接到因特網(wǎng)、局域網(wǎng) (LAN)、廣域網(wǎng)(WAN),或者使用諸如通用串行總線(USB)、高性能串行總線IEEE-1394和/ 或高速串行端口(RS-232)之類的協(xié)議與其他設(shè)備相連。計(jì)算機(jī)系統(tǒng)500可以經(jīng)由無線路 由器501 (或有線路由器或其他節(jié)點(diǎn)——未示出)與因特網(wǎng)相連,而不直接與因特網(wǎng)相連。 計(jì)算機(jī)系統(tǒng)500的部件可以通過總線521互連,和/或可以包括符合諸如PCI (外圍部件互 連)、ISA (工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))或EISA (增強(qiáng)ISA)之類的各種工業(yè)標(biāo)準(zhǔn)的任何的擴(kuò)展槽(slot)。
典型地,計(jì)算機(jī)系統(tǒng)500包括諸如鍵盤和/或鼠標(biāo)513之類的一個(gè)或多個(gè)用戶輸 入/輸出設(shè)備,或者控制由用戶輸入設(shè)備515代表的光標(biāo)的其他裝置(例如,觸摸屏、觸摸 板、操縱桿、軌跡球等)。通信接口 511、鍵盤和鼠標(biāo)513以及用戶輸入設(shè)備515可以被用在 各種組合中,或者分開地作為用于接收在執(zhí)行各種程序和計(jì)算時(shí)使用的信息和其他輸入的 裝置。通常,顯示器517也被包括作為計(jì)算機(jī)系統(tǒng)500的一部分。該顯示器可以是多種類 型的顯示器中的任何,包括液晶顯示器(LCD)、陰極射線管(CRT)監(jiān)視器、薄膜晶體管(TFT) 陣列或者適于為用戶顯示信息的其它類型的顯示器。顯示器517可以包括一個(gè)或多個(gè)發(fā)光 二極管(LED)指示燈或者其它這種顯示設(shè)備。另外,大部分計(jì)算機(jī)系統(tǒng)500也包括或連接 到用于音頻輸出和輸入的一個(gè)或多個(gè)揚(yáng)聲器和麥克風(fēng)519??梢越Y(jié)合麥克風(fēng)519使用語音 識(shí)別軟件以接收和翻譯用戶語音命令??梢杂媚軌驁?zhí)行所述功能和活動(dòng)的任何種類的處理單元、處理器和控制器來實(shí)現(xiàn) 本發(fā)明。例如,處理器501 (或用于實(shí)現(xiàn)實(shí)施例的其他處理器)可以是微處理器、微控制器、 DSP、RISC處理器或者本領(lǐng)域技術(shù)人員將意識(shí)到能夠執(zhí)行在此公開的功能或活動(dòng)的任何其 他類型的處理器。根據(jù)至少一個(gè)示例實(shí)施例的處理單元可以操作在諸如內(nèi)部存儲(chǔ)器503、存 儲(chǔ)盤507或其他類型的機(jī)器可讀介質(zhì)之類的計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)(包含)的計(jì)算機(jī)軟件 程序,該其他類型的機(jī)器可讀介質(zhì)包括例如軟盤、光盤、硬盤、CD、閃存、RAM或者本領(lǐng)域技術(shù) 人將能想到的其他類型的機(jī)器可讀介質(zhì)。計(jì)算機(jī)系統(tǒng)500被配置為接收用于集成電路(IC) 或其他電路的設(shè)計(jì)或其他網(wǎng)表信息,或者要被分析并將信息存儲(chǔ)在例如內(nèi)部存儲(chǔ)器503、存 儲(chǔ)盤507或其他類型的機(jī)器可讀介質(zhì)的計(jì)算機(jī)可讀介質(zhì)中。計(jì)算機(jī)系統(tǒng)500被配置為通過 裝載和執(zhí)行在網(wǎng)表信息上操作的指令來修改該設(shè)計(jì)。在完成對(duì)該設(shè)計(jì)的修改時(shí),計(jì)算機(jī)系 統(tǒng)500被配置為提供修改的設(shè)計(jì)信息,例如通過將它以適于制造IC設(shè)計(jì)的格式存儲(chǔ)在計(jì)算 機(jī)可讀介質(zhì)上。
可以用能夠執(zhí)行所述功能和活動(dòng)的任何種類的處理單元、處理器和控制器(例如 圖5的處理器501)來實(shí)現(xiàn)本發(fā)明。例如,處理器501可以被體現(xiàn)為微處理器、微控制器、 DSP、RISC處理器或者本領(lǐng)域技術(shù)人員將意識(shí)到能夠執(zhí)行在此公開的功能的任何其他類型 的處理器。根據(jù)至少一個(gè)示例實(shí)施例的處理單元可以操作在諸如存儲(chǔ)器503、存儲(chǔ)盤507、 盤驅(qū)動(dòng)509或其他類似類型的存儲(chǔ)設(shè)備之類的計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)(體現(xiàn))的計(jì)算機(jī)軟 件程序,該其他類似類型的存儲(chǔ)設(shè)備例如CD、閃存、RAM或者本領(lǐng)域技術(shù)人將能想到的其他 計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)軟件程序可以幫助或執(zhí)行上述的步驟和活動(dòng)。例如,根據(jù)至少一 個(gè)示例實(shí)施例的計(jì)算機(jī)程序可以包括用于標(biāo)識(shí)網(wǎng)表的切割的源代碼、用于枚舉不匹配軌 跡的集合的源代碼、用于從不匹配軌跡得到輸入“J”的集合用于等價(jià)檢查以檢測(cè)軌跡包含 的源代碼、用于執(zhí)行反映用于i的時(shí)序余因子和用于輸入“J”的集合的時(shí)間上非相關(guān)性的 約束的、該切割的余因子版本的時(shí)間受限的展開的源代碼、用于確定是否存在軌跡包含的 源代碼、用于響應(yīng)于檢測(cè)到軌跡包含來識(shí)別對(duì)輸入“J”的集合的約束關(guān)系的源代碼以及用 于試圖證明該切割的時(shí)序等價(jià)的源代碼。存在許多進(jìn)一步的源代碼,其可以被寫來執(zhí)行上 述的步驟和進(jìn)程,并且意圖將這些包含在示例實(shí)施例的范圍中。按照被實(shí)現(xiàn)為寄存器或門,上面討論了狀態(tài)保持元件或狀態(tài)元件。然而,在一些實(shí) 施例中,任何種類的狀態(tài)保持元件可以被用于實(shí)現(xiàn)各種實(shí)施例,包括例如寄存器、鎖存器、 狀態(tài)機(jī)等。為了說明和解釋本發(fā)明,貫穿于該公開,可互換使用術(shù)語變量、門和寄存器。
該公開中的術(shù)語“示例”的使用意圖表示這樣描述為例子、實(shí)例或圖示的實(shí)施例或 元件,并且不一定被解釋為比其他實(shí)施例或元件更優(yōu)選或更好。上述的各種示例實(shí)施例的 描述在本質(zhì)上是說明性的,并且不試圖受限本發(fā)明、它的應(yīng)用或使用。從而,不脫離本發(fā)明 的要旨的變型意圖處于本發(fā)明的實(shí)施例的范圍中。這種變型不被認(rèn)為背離本發(fā)明的精神和 范圍。
權(quán)利要求
一種通過執(zhí)行被裝載到計(jì)算機(jī)系統(tǒng)中的指令來標(biāo)識(shí)時(shí)序電路設(shè)計(jì)網(wǎng)表的軌跡包含的方法,所述方法包括通過執(zhí)行所述指令,標(biāo)識(shí)包括輸入i的網(wǎng)表的切割;通過執(zhí)行所述指令,枚舉不匹配軌跡的集合;通過執(zhí)行所述指令,從所述不匹配軌跡得到輸入“J”的集合用于等價(jià)檢查以檢測(cè)軌跡包含;通過執(zhí)行所述指令,對(duì)反映用于輸入i的時(shí)序余因子和用于輸入“J”的集合的時(shí)間上非相關(guān)性的約束的、該切割的余因子版本執(zhí)行時(shí)間受限的展開;通過執(zhí)行所述指令,確定是否存在軌跡包含;響應(yīng)于檢測(cè)到軌跡包含,識(shí)別對(duì)所述輸入“J”的集合的約束關(guān)系;以及通過執(zhí)行所述指令,試圖證明經(jīng)受所述約束關(guān)系的所述切割的時(shí)序等價(jià)。
2.根據(jù)權(quán)利要求1所述的方法,還包括響應(yīng)于證明所述切割的時(shí)序等價(jià),通過執(zhí)行所述指令,通過將所述輸入i合并到常數(shù) 來減小所述時(shí)序電路設(shè)計(jì)網(wǎng)表。
3.根據(jù)權(quán)利要求1所述的方法,還包括作為所述切割的標(biāo)識(shí)的一部分,通過執(zhí)行所述指令,確定所述切割是否等價(jià)于所述網(wǎng) 表;以及響應(yīng)于確定所述切割不等價(jià)于所述網(wǎng)表,通過執(zhí)行所述指令,決定是否增長(zhǎng)該切割。
4.根據(jù)權(quán)利要求1所述的方法,其中針對(duì)所述網(wǎng)表的所標(biāo)識(shí)的切割,枚舉不匹配軌跡 的集合。
5.根據(jù)權(quán)利要求1所述的方法,還包括通過執(zhí)行所述指令,得到所述輸入“J”的集合和用于所述輸入i的余因子時(shí)間之間的 時(shí)間關(guān)系;以及通過執(zhí)行所述指令,將時(shí)間上非相關(guān)性的約束添加到所述輸入“J”以反映所述時(shí)間關(guān)系。
6.根據(jù)權(quán)利要求5所述的方法,其中所述得到所述輸入“J”的集合和所述余因子時(shí)間 之間的時(shí)間關(guān)系還包括通過執(zhí)行所述指令,得到最少賦值的不匹配軌跡的二級(jí)集合,其在稍后的時(shí)間嘗試不 匹配與所述不匹配軌跡的集合相同的門;以及通過執(zhí)行所述指令,從最少賦值的不匹配軌跡的集合中去除輸入“j”。
7.根據(jù)權(quán)利要求6所述的方法,還包括通過執(zhí)行所述指令,確定在最少賦值的不匹配軌跡“J”集合中的所有軌跡上是否相同 時(shí)間對(duì)輸入“ j,,賦值,或者在所有所述軌跡中是否相同的相對(duì)時(shí)間對(duì)輸入“ j,,賦值;響應(yīng)于檢測(cè)到輸入“j”在所有所述軌跡中具有相同時(shí)間,通過執(zhí)行所述指令,通過假定 “j”具有固定時(shí)延來得到所述時(shí)間關(guān)系;響應(yīng)于檢測(cè)到輸入“j”在所有所述軌跡中相同的相對(duì)時(shí)間被賦值,通過執(zhí)行所述指令, 通過假定“j”具有相對(duì)固定的延時(shí)來得到所述時(shí)間關(guān)系;以及響應(yīng)于檢測(cè)到輸入“j”在所述軌跡的至少一個(gè)中具有不同的時(shí)間以及響應(yīng)于檢測(cè)到輸 入“j”在所述軌跡的至少一個(gè)中具有不同的相對(duì)時(shí)間,通過執(zhí)行所述指令,從最少賦值的不匹配軌跡“J”的集合中去除輸入“j”。
8.一種包括機(jī)器可讀介質(zhì)的軟件產(chǎn)品,該機(jī)器可讀介質(zhì)包括指令的程序,所述指令用 于通過執(zhí)行指令來標(biāo)識(shí)時(shí)序電路設(shè)計(jì)網(wǎng)表的軌跡包含,其中當(dāng)在計(jì)算機(jī)上執(zhí)行時(shí)所述指令 的程序使得計(jì)算機(jī)實(shí)現(xiàn)權(quán)利要求1-7的任一方法。
9.一種通過執(zhí)行被裝載到計(jì)算機(jī)系統(tǒng)中的指令來標(biāo)識(shí)時(shí)序電路設(shè)計(jì)網(wǎng)表的軌跡包含 的系統(tǒng),所述系統(tǒng)包括用于實(shí)現(xiàn)權(quán)利要求1-7的任一方法的裝置。
10.一種被配置來標(biāo)識(shí)時(shí)序電路設(shè)計(jì)網(wǎng)表的軌跡包含的計(jì)算機(jī)系統(tǒng),所述系統(tǒng)包括輸入裝置,用于接收所述電路設(shè)計(jì)網(wǎng)表,其中包括輸入i的所述網(wǎng)表的切割被標(biāo)識(shí);存儲(chǔ)器,被配置為存儲(chǔ)不匹配軌跡的枚舉的集合;用于從不匹配軌跡得到輸入“J”的集合用于等價(jià)檢查以檢測(cè)軌跡包含的裝置;適當(dāng)?shù)乇徊贾靡詧?zhí)行指令的處理器,所述指令用于對(duì)反映用于輸入i的時(shí)序余因子和 用于輸入“J”的集合的時(shí)間上非相關(guān)性的約束的、所述切割的余因子版本執(zhí)行時(shí)間受限的 展開;用于確定是否存在軌跡包含、以及響應(yīng)于檢測(cè)到軌跡包含來識(shí)別對(duì)輸入“J”的集合的 約束關(guān)系的裝置;以及其中所述處理器合適地被布置以執(zhí)行用于試圖證明經(jīng)受所述約束關(guān)系的所述切割的 時(shí)序等價(jià)的指令。
11.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),還包括其中,響應(yīng)于證明所述切割的時(shí)序等價(jià),所述處理器合適地被布置以執(zhí)行用于通過將 所述輸入i合并到常數(shù)來減小所述時(shí)序電路設(shè)計(jì)網(wǎng)表的指令。
全文摘要
提供了通過針對(duì)電路設(shè)計(jì)網(wǎng)表的軌跡包含來減小時(shí)序網(wǎng)表的方法和系統(tǒng),這通過首先標(biāo)識(shí)該網(wǎng)表的切割并枚舉不匹配軌跡的集合。對(duì)反映用于特定輸入i的時(shí)序余因子和用于輸入“J”的集合的時(shí)間上非相關(guān)性的約束的、該切割的余因子版本執(zhí)行時(shí)間受限的展開。在對(duì)輸入“J”的集合的時(shí)間上非相關(guān)性的約束下,通過相對(duì)于該網(wǎng)表的該切割來執(zhí)行等價(jià)檢查來確定是否存在軌跡包含。響應(yīng)于檢測(cè)到軌跡包含,通過將輸入“i”合并到常數(shù)來簡(jiǎn)化該網(wǎng)表。
文檔編號(hào)G06F17/50GK101814101SQ20101012615
公開日2010年8月25日 申請(qǐng)日期2010年2月25日 優(yōu)先權(quán)日2009年2月25日
發(fā)明者哈利·莫尼, 弗里什·帕魯?shù)? 羅伯特·L·坎澤爾曼, 賈森·R·鮑姆加特納 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司