專利名稱:不變量檢測的制作方法
技術領域:
本發(fā)明總的涉及設計電路,更具體地,本發(fā)明涉及不變量檢測。
背景技術:
基于有序二元判決圖表(OBDD)的不變量檢測是檢測電路設計中的判決的優(yōu)選方法?;贠BDD的不變量檢測提供更改和驗證,其與例如有界模型檢測(BMC)相反。例如,這可能很重要,在抽象細分(refinement)的情況下,在一組錯誤的否定和后續(xù)的細分之后,一特性最終證明是正確的。基于OBDD的不變量檢測允許兩個方向的轉移從初始狀態(tài)向前或從可能的錯誤狀態(tài)向后。一個方向可以提供明顯的更有效率的計算。作為一個例子,一個方向可以以更少的步驟到達固定點。作為另一個例子,一個方向可以需要明顯的更少的計算復雜度。然而,用戶并不能預先知道哪個方向可以提供更有效率的計算。
發(fā)明內容
基于本發(fā)明,可以減少或消除與用于設計電路的不變量檢測相關聯的缺點和問題。
在一實施例中,一種用于不變量檢測的方法包括執(zhí)行對應于一個或多個二元判決圖表的一有限狀態(tài)機(FSM)的一個或多個第一步驟,用以在關于一初始狀態(tài)和一錯誤狀態(tài)的第一方向上轉移該FSM的狀態(tài)空間。該方法還包括,自動的且無需用戶輸入的,訪問對應于FSM的一個或多個第一步驟的第一簡表;比較該第一簡表與一個或多個第一預定標準;根據該第一簡表與該一個或多個第一預定標準間的比較,停止該狀態(tài)空間在該第一方向上的轉移;根據從該FSM的該一個或多個第一步驟得到的第一部分結果,執(zhí)行該FSM的一個或多個第二步驟,用以在關于該初始狀態(tài)和該錯誤狀態(tài)的一第二方向上轉移該狀態(tài)空間,該第二方向與該第一方向相反;訪問對應于FSM的一個或多個第二步驟的第二簡表;比較該第二簡表與一個或多個第二預定標準;根據該第二簡表與該一個或多個第二預定標準間的比較,停止該狀態(tài)空間在該第二方向上的轉移;以及根據從該FSM的該一個或多個第二步驟得到的第二部分結果,執(zhí)行該FSM的一個或多個第三步驟,用以在來自該一個或多個第一步驟的第一方向上轉移該狀態(tài)空間。
本發(fā)明的特定實施例可以提供一個或多個技術優(yōu)勢。例如,特定實施例提供一種基于OBDD的動態(tài)方法以用于相互交叉前向和后向轉移。該方法可以有助于選擇較短方向,并且同時限制多余計算帶來的開銷。特定實施例可以使用具有不同變量順序的兩個OBDD,其能以某些附加開銷為代價提供改善的完備化(completion)。在效率方面,這些方法可以帶來比單向轉移更顯著的增益。特定實施例同時在一單一通路執(zhí)行前向和后向轉移,而前面的方法通常使用一掃除(sweep)去接近或消除搜索空間,然后使用另一方向的另一掃除執(zhí)行實際的驗證或者甚至重復該過程。特定實施例可以代替標準前向轉移算法。
特定實施例可以提供所有、一些或不提供上述的技術優(yōu)勢。特定實施例可以提供一個或多個其他技術優(yōu)勢,從附圖、說明書和權利要求中,一個或多個的這些優(yōu)勢對于本領域普通技術人員來說是顯而易見的。
為了對本發(fā)明及其特征和優(yōu)點提供更完整的理解,下面參照附圖進行描述,其中圖1示出用于不變量檢測系統(tǒng)的實例;圖2A和2B示出前向和后向轉移的組合的實例;圖3示出在失誤特性的情況下用于交叉的錯誤軌跡計算的實例;以及圖4說明不變量檢測的方法實例。
具體實施例方式
圖1示出用于不變量檢測的系統(tǒng)10實例。設計的基準圍繞一個適當的硬件組件的設計,例如含有多個數字組件的數字電路。系統(tǒng)10包括計算機系統(tǒng)12、工具14和數據16。計算機系統(tǒng)12可以使用戶能夠向驗證工具14提供輸入和從驗證工具14接收輸出。如下所述,工具14可以嘗試驗證設計的一個或多個特性,或者更改設計的一個或多個特性,或者兩種操作都進行。工具14可以使用數據16以嘗試該驗證,或該更改,或者兩種操作都進行。工具14可以包括硬件,或軟件,或者兩者都包括,以嘗試驗證設計的一個或多個特性,或者更改設計的一個或多個特性,或者兩種操作都進行。盡管計算機系統(tǒng)12、工具14和數據16被彼此獨立的解釋和說明,本發(fā)明也可構思為以某種合適的程度彼此組合的兩個或更多的計算機系統(tǒng)12、工具14和數據16。作為實例且并非限制性的,在特定實施例中,工具14可以是計算機系統(tǒng)12的軟件組件并且數據16可以被存儲于計算機系統(tǒng)12。
順序(sequential)系統(tǒng)的增加的復雜度需要能夠執(zhí)行可行性分析的有效技術。由于該可到達狀態(tài)組可能很大,以例如列表的形式作為該組的確切表示在任何情況下都是不適用的。OBDD能夠表示狀態(tài)組的特性功能。該符號表示形式在執(zhí)行計算可到達狀態(tài)的操作時很實用如果根據第一轉移的寬度計算可到達狀態(tài),則該特性功能的表示(representation)允許在一次計算里計算所有相應的后續(xù)狀態(tài)。為此,術語“符號化的第一轉移寬度”被經常使用。計算的復雜度依賴于當前狀態(tài)組的OBDD的大小。
不變量檢測是一種基于狀態(tài)空間轉移的直截了當的形式驗證的應用。檢測總是全程都保持(hold)的特性,例如,溢出(overflow)=0。如果在狀態(tài)空間轉移期間,到達一違反了該特性的狀態(tài),轉移就被終止并返回錯誤(failed)。如果轉移到達一固定點而未發(fā)現違反特性的狀態(tài),轉移返回通過(passed)。
可到達狀態(tài)的計算是順序系統(tǒng)的優(yōu)化和驗證的核心任務。基于OBDD的轉移技術的實質部分是轉移關系式TR(x,y,e)=Πiδi(x,e)=yi]]>
其為所有鎖存器(latch)的轉移關系的集合。δi表示第i個鎖存器的轉移函數,x、y和e表示當前狀態(tài)、下一狀態(tài)和輸入變量。該統(tǒng)一的(monolithic)轉移關系式被表示為一單一的OBDD,并且通常由于其太大而不能允許可到達狀態(tài)的計算。某些情況下,統(tǒng)一的轉移關系式甚至對于用多個OBDD的表達也太大。因此,更復雜的可到達狀態(tài)的計算方法采用分解的轉移關系式,即,OBDD群,各OBDD表示一組鎖存器的轉移關系式。下面說明在鎖存器Pl...Pi,組上分解的轉移關系式TR(x,y,e)=ΠjTRj(x,y,e),]]>其中TRj(x,y,e)=Πi∈Pjδi(x,e)≡yi]]>可到達狀態(tài)計算包括一組已達狀態(tài)R的重復圖像計算Img(TR,R)Im g(TR,R)=∃x,y(TR(x,y,e)·R)]]>使用分解的轉移關系式可在Pi上迭代圖像計算,并且在乘積計算中可應用 運算(前期量化(early quantification))Im g(TR,R)=∃vj(TRj·K·∃v2(TR2·∃v1(TR1·R)K))]]>其中vi是在(x∪e)中的不在下面TRk(i<k≤j)中出現的那些變量。
AndExist或AndAbstract運算執(zhí)行兩個函數(此處的分解函數)的AND運算,并且同時將存在量化 應用于一組給定的變量,即,剩余的分解部分(partition)并不支持的變量。與傳統(tǒng)AND運算不同,AndExist運算只有一個用于產生的OBDD的大小的指數上限,但是,對于許多實際應用,在圖像計算期間不允許OBBD的大小過大。
IWLS95方法是一種用于找到將分解部分合并到一起的進度表的標準方法,其使用貪婪(greedy)表將AndExist運算涉及的變量數目最小化。IWLS95方法也是用于分解VIS包的標準方法。
前向轉移和后向轉移都可應用于不變量檢測問題。經驗表明,轉移方向經常顯著的影響不變量檢測問題的復雜度。困難之處在于提前檢測出哪種方法優(yōu)于其他方法是不可能的。本發(fā)明的特定實施例使用試探法以通過選擇轉移方向將前向轉移和后向轉移聯合到一起。
圖2A和2B說明前向和后向轉移的聯合的實例。前向搜索18按照從初始狀態(tài)I開始的第一搜索寬度(BFS),通過加入“洋蔥環(huán)”而擴展所搜索的可到達狀態(tài)空間。后向搜索20通過重復從違反特性狀態(tài)P開始的前象計算從而擴展從可到達失誤狀態(tài)開始的狀態(tài)組。在圖2A中,在失誤特性的情況下,前向搜索18最終與后向搜索20交叉。洋蔥環(huán)的數目決定錯誤的程度。可能發(fā)生兩種特殊情況(1)可到達狀態(tài)空間可能覆蓋了所有可能的狀態(tài),例如,如果給定n個狀態(tài)位則該狀態(tài)空間有2n個狀態(tài),從而包括了所有考慮到的違反特性的狀態(tài);(2)失誤狀態(tài)組可能覆蓋所有2n個可能狀態(tài),從而包括了所有初始的和可到達的狀態(tài)。在圖2B中,在通過(passing)特性的情況下,前向搜索18和后向搜索20各到達一個固定點且不彼此交叉。然而,如果前向搜索18和后向搜索20已到達固定點且停止,該特性被證實為正確的。
聯合轉移的方法至少具有下述優(yōu)勢。該方法易于選擇出計算更為簡單的方向。該方法易于選擇出可以以較少的計算步驟到達固定點的方向。因為在失誤特性的情況下,轉移最終會彼此交叉,所以沒有多余的計算;他們都可用于該技術方案。然而,上述各情況都不能提前預知。聯合轉移需要準確的解決下列問題。因為在通過特性的情況下、一個方向會在另一方向前到達固定點,所以其它方向上的計算是多余的,其不能用于該技術方案。兩個方向上的計算代價(cost)可能很不平衡,以至于某一方向上的嘗試可能極為昂貴。將兩種狀態(tài)組表示為OBDD增加了問題的整體復雜度。
在特定實施例中,交叉試探法試圖最大化聯合轉移的上述優(yōu)勢,并且同時解決上述問題。交叉試探法通過計算一圖像或一前象而評估代價,從而動態(tài)的確定轉移方向。代價度量是在前象計算里迭代執(zhí)行分解轉移關系式過程中的最大OBDD大小。在第一步驟,交叉試探法在各方向計算圖像以決定初始代價。在隨后步驟,在上次計算中具有較低代價的方向繼續(xù)計算,即,在一個方向繼續(xù)計算,直到其代價超出了另一方向的上一圖像的代價。
此處做出的決定不需要人工的參數設置,其提供完全動態(tài)和自適應的處理。通常的,前向轉移的代價和后向轉移的代價彼此顯著不同。結果,交叉試探法容易選擇較好的方向。為了更多的利用該不平衡,可以使用限制圖像計算的最大代價的閾值。如果在運算中超出該閾值,則中斷圖像計算并且交叉試探法禁用雙向轉移且返回到未被中斷方向上的單向轉移。該閾值有助于避免某一方向上的被禁止的昂貴計算。該閾值可以被保守的(以極大的值)設置,以使只有當一個方向不均衡地超出其享有的可用內存時,才中斷圖像計算。
閾值可以被用來避免引起內存溢出的轉移方向。如果相對冒險的設置,該閾值也可以被用來作為調整應用的參數。在電路中不同轉移方向的代價非常不平衡,較低的閾值能夠顯著的減少花費在更昂貴方向上的圖像計算的時間。對于顯示了某系統(tǒng)行為(behavior)的電路,較低閾值可以提高效率。
在特定實施例中,下面的示例算法是交叉算法的主循環(huán)。
圖3示出了在失誤特性的情況下用于交叉的錯誤軌跡計算的實例。在失誤特性的情況下,交叉的錯誤軌跡計算(或者反例)比簡單的前向或后向轉移更復雜。在失誤特性的情況下,前向轉移18中計算的狀態(tài)和后向轉移20中計算的狀態(tài)在區(qū)域22重疊。從該交集中任意選擇一個中間狀態(tài)p。從初始狀態(tài)可到達該狀態(tài),并且從該狀態(tài)可到達一個違反特性的狀態(tài)。錯誤軌跡包括從I中的初始狀態(tài)到中間狀態(tài)p以及從該p狀態(tài)到P中的一個狀態(tài)。錯誤軌跡的計算需要為兩個轉移存儲洋蔥環(huán),即各迭代過程的邊界(frontier)狀態(tài)。錯誤軌跡的第一部分(從I到p)的計算利用從p開始向后到I的前象計算,并將該前象計算結果納入洋蔥環(huán)。對于每一次迭代,從特定洋蔥環(huán)中選擇任意狀態(tài)。錯誤軌跡的第二部分(從p到P)的計算以相似的方法使用從p開始到P的圖像計算。然后將兩部分聯合以形成一個完整的錯誤軌跡。計算的洋蔥環(huán)的存儲增加了該計算的開銷。該開銷對于交叉來說比對于單向方法更小。其原因可能在于交叉選擇了計算少的方向。從而,存儲洋蔥環(huán)可以變得更有效率。
兩個轉移關系的存在和兩個完全不同的狀態(tài)組(可到達的和失誤的狀態(tài))使表述變得復雜,而且可能導致OBDD大小的巨大開銷。在圖像計算過程中AndExist運算易于控制變量重排處理并由此控制產生的變量順序。具有兩個搜索和兩個AndExist運算,且要求與OBDD中的變量順序不同,可能由于在一方向上產生較大的OBDD或者由兩種AndExist運算引起的反復重排而降低性能。在特定實施例中,該問題的解決辦法是使用兩個彼此不同的OBDD,且其具有彼此不同的變量順序一個OBDD用于前向轉移,另一個OBDD用于后向轉移。
使用兩個OBDD的優(yōu)勢在于每一OBDD里只執(zhí)行一種轉移,從而只需表示一個主要狀態(tài)組。結果,由于變量重排定位于只使用一個AndExist運算,變量重排就帶來了更好的效果。該優(yōu)勢在許多情況下,易于克服使用兩個OBDD的OBDD方法帶來的缺點。具有彼此不同變量順序的兩個OBDD不能夠互相共享節(jié)點。在最壞的情況下,這可能導致兩個因子數量級的擴大。但是,在最好的情況下,彼此不同的兩個函數的表示可能會指數減小。初始化和維持OBDD產生開銷。對于較小的情況,該開銷可能很大。應該為兩個OBDD分配可用內存。由于并不清楚每個OBDD需要多少內存以及使用多少不同的高速緩存和堆棧,分配內存可能遇到問題。
在可到達狀態(tài)組和失誤狀態(tài)組間的計算出的交叉區(qū)里檢測失誤特性,需要在OBDD間通信。圖2A示出了上述的失誤特性的實例。在最壞的情況下,具有彼此不同變量順序的兩個OBDD間的交叉區(qū)是指數級的。特定實施例使用下面的示例算法以檢查交叉區(qū)的存在,并從而啟動從一OBDD向另一OBDD的通信。
上述算法檢查代表f的OBDD F和代表g的OBDD G是否彼此共享一個值為一的賦值。如果是,算法返回true。如果不存在這樣的賦值,算法返回false。算法以BFS順序轉移w.l.o.g F,符號化測試所有的賦值。因為g在G中以不同的變量順序表示,所以g不能被簡單的并行轉移。而是在f的遞歸中,用當前分支變量將g分解。如果,在當前遞歸點(F’,G’)處,F’的最高節(jié)點具有指數xi,則下一對遞歸對將是(F’|xi=0,G’|xi=0)和(F’|xi=1,G’|xi=1)。只要到達一對(true,true)就結束算法并返回true。在最壞的情況下算法的運行時間是指數級的。該情況可能發(fā)生于下述情況,例如,g具有指數的OBDD大小且具有OBDD F的變量順序,并且f密集,即,在F的各個路徑上測試每個變量。
當f不密集時該計算就變得更簡單。上述算法與用于OBDD的ITE運算的運行時間相比可具有其平均運行時間。上述算法的計算表可以被用作與ITE運算相類似的高速緩存器,用以限制計算表的最大內存消耗。在特定實施例中,已知OBDD交叉區(qū)對于上述應用是否充分。不需要交叉區(qū)本身的計算。作為該算法的副產物,可以容易的計算出交叉區(qū)的單一滿意賦值。在特定實施例中,雙OBDD方法使用相同的試探法和度量標準作為單一OBDD交叉方法。
在特定實施例中,不變量(或判決)檢測包括找到一條狀態(tài)轉移的路徑,該路徑為從初始狀態(tài)到錯誤狀態(tài)或證實不存在這樣的路徑。交叉不變量檢測開始于兩點(1)系統(tǒng)的初始狀態(tài)和(2)根據特性指定的可能的錯誤狀態(tài)(或失誤狀態(tài))。在第一步驟,計算出兩個起點的迭代值,即,計算出在一次轉移中從系統(tǒng)的初始狀態(tài)開始的一次迭代后的可到達狀態(tài)以及從可能的錯誤狀態(tài)能夠到達的狀態(tài)。第一步驟作為獲得關于各方向的計算代價的方法。該代價用迭代圖像計算期間的二元判決圖表(OBDD)界點的最大數表示。表示計算圖像所需努力的其他代價度量標準可能是充分的。
在特定實施例中,在計算的后續(xù)步驟里前向和后向計算相交叉,例如,在一個方向上進行迭代,直到其代價超出了另一方向上的上一次迭代的代價。此外,如果在一個方向上計算過多,例如,其超出了某一大小限制,則可能中止該計算。這種情況下,就暫停該方向的計算而在另一方向繼續(xù)計算。如果一個或多個下述情況發(fā)生則結束計算,即1.從初始狀態(tài)可到達所有的狀態(tài)(特性的失誤)。
2.所有的狀態(tài)都是失誤狀態(tài)(失敗)。
3.可到達和失誤狀態(tài)交叉(失敗)。
4.前向轉移沒有到達失誤狀態(tài)就聚集(特性的通過)。
5.后向轉移沒有到達失誤狀態(tài)就聚集(通過)。
在特定實施例中,為了構建特性失誤的錯誤路徑(證據),可以使用前向計算、后向計算或者兩者都使用以構建從初始狀態(tài)到錯誤狀態(tài)的路徑。
如上所述,在特定實施例中,有兩種檢測不變量的方法1.從初始狀態(tài)向可能的錯誤狀態(tài)轉移(前向)。
2.從錯誤狀態(tài)向初始狀態(tài)的轉移(后向)。
一個方向可能由于一個或多個下述的原因而優(yōu)選于另一個方向,即1.一個方向可能比另一方向以更少的步驟匯集。
2.一個方向可能比另一方向以更少的步驟到達所有狀態(tài)。
3.一個方向的計算代價可能比另一方向少的多。
可能并沒有辦法提前確定上述之一是否可能發(fā)生以及計算有多大的代價。在特定實施例中,這就是交叉不變量檢測的優(yōu)勢所在。因為交叉不變量檢測動態(tài)的決定轉移到哪一方向,它更可能選擇出更有效的方向。同樣,通過使用動態(tài)的代價測量,不需要固定的閾值。這樣,方法的測量就與基本的BDD大小相獨立。此外,如果特性失誤,前向和后向兩個方向上的計算就被一起用來計算錯誤路徑。從而并不浪費計算。
圖4示出了不變量檢測的方法實例。該方法開始于步驟100,該步驟中工具14執(zhí)行一個或多個相應于一個或多個BDD的FSM的初始步驟,以在關于一初始狀態(tài)和一錯誤狀態(tài)的初始狀態(tài)方向上轉移FSM的狀態(tài)空間。在步驟102,工具14訪問一個相應于FSM的一個或多個初始步驟的簡表。在步驟104,工具14將簡表與一個或多個預定的標準相比較。在步驟106,工具14根據該簡表與該一個或多個預定標準的比較停止該初始方向上的狀態(tài)空間的轉移。在步驟108,工具14執(zhí)行一個或多個FSM的后續(xù)步驟,以根據FSM的一個或多個前面步驟得到的部分結果,而在與前面方向相反的關于初始狀態(tài)和錯誤狀態(tài)的下一方向上轉移狀態(tài)空間。在步驟110,工具14訪問一個相應于FSM的一個或多個后續(xù)步驟的簡表。在步驟112,工具14將簡表與一個或多個預定的標準相比較。在步驟114,工具14根據該簡表與該一個或多個預定標準的比較停止該下一方向上的狀態(tài)空間的轉移。在步驟116,如果符合結束FSM的狀態(tài)空間的轉移的條件,則該方法結束。在步驟116,如果不符合結束FSM的狀態(tài)空間的轉移的條件,則方法返回到步驟108。盡管已經說明和描述了以一特定順序發(fā)生的圖4所示方法的特定步驟,本發(fā)明還包括以任何適當順序發(fā)生的圖4所示方法的任何適當的步驟。
本領域普通技術人員可以容易的對本發(fā)明進行一處或多處修改,且本發(fā)明將包括權利要求范圍內的所有這些改型。沒有在權利要求中反映的說明書中的內容并不用于限制本發(fā)明。
權利要求
1.一種用于不變量檢測的方法,該方法包括執(zhí)行對應于一個或多個二元判決圖表(BDD)的一有限狀態(tài)機(FSM)的一個或多個第一步驟,用以在關于一初始狀態(tài)和一錯誤狀態(tài)的第一方向上轉移該FSM的狀態(tài)空間;自動地且無需用戶輸入地,訪問對應于FSM的一個或多個第一步驟的第一簡表;自動地且無需用戶輸入地,比較該第一簡表與一個或多個第一預定標準;自動地且無需用戶輸入地,根據該第一簡表與所述一個或多個第一預定標準間的比較,停止該狀態(tài)空間在該第一方向上的轉移;自動地且無需用戶輸入地,根據從該FSM的所述一個或多個第一步驟得到的第一部分結果,執(zhí)行該FSM的一個或多個第二步驟,用以在關于該初始狀態(tài)和該錯誤狀態(tài)的一第二方向上轉移該狀態(tài)空間,該第二方向與該第一方向相反;自動地且無需用戶輸入地,訪問對應于該FSM的一個或多個第二步驟的第二簡表;自動地且無需用戶輸入地,比較該第二簡表與一個或多個第二預定標準;自動地且無需用戶輸入地,根據該第二簡表與所述一個或多個第一預定標準間的比較,停止該狀態(tài)空間在該第二方向上的轉移;以及自動地且無需用戶輸入地,根據從該FSM的該一個或多個第二步驟得到的第二部分結果,執(zhí)行該FSM的一個或多個第三步驟,用以在所述一個或多個第一步驟中的該第一方向上轉移該狀態(tài)空間。
2.如權利要求1所述的方法,其中所述一個或多個BDD共同對應于一個或多個硬件組件、一個或多個軟件組件、或者一個或多個嵌入式邏輯組件。
3.如權利要求1所述的方法,還包括持續(xù)交替地在該第一方向上轉移該FSM的該狀態(tài)空間和在該第二方向上轉移該FSM的該狀態(tài)空間,直到獲得最終結果。
4.如權利要求3所述的方法,還包括如果與在該第一方向執(zhí)行該FSM的一個步驟相關聯的一個或多個代價,超出了包括執(zhí)行該FSM的一個步驟的最大代價的閾值時停止在該第一方向執(zhí)行該FSM的步驟;并且只在該第二方向繼續(xù)執(zhí)行該FSM的步驟;并且如果與在該第二方向執(zhí)行該FSM的一個步驟相關聯的一個或多個代價超出該閾值時停止在該第二方向執(zhí)行該FSM的步驟;并且只在該第一方向繼續(xù)執(zhí)行該FSM的步驟。
5.如權利要求1所述的方法,還包括,在執(zhí)行該FSM的所述一個或多個第一步驟之前計算該第一方向上的第一圖像以及與該第一方向相反的該第二方向上的第二圖像;以及如果與計算該第一圖像相關聯的一個或多個代價小于與該第二圖像相關聯的一個或多個代價,就在該第二方向轉移該FSM的狀態(tài)空間之前在該第一方向轉移該FSM的該狀態(tài)空間。
6.如權利要求1所述的方法,其中該第二簡表表示在該第二方向上與執(zhí)行該FSM的最后步驟相關聯的一個或多個代價;所述一個或多個第二預定標準表示與在該第一方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價;并且根據該第二簡表和所述一個或多個第二預定標準之間的比較停止狀態(tài)空間在該第二方向上的轉移,包括如果與在該第二方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價超出了與在該第一方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價,就停止狀態(tài)空間在該第二方向上的轉移。
7.如權利要求1所述的方法,其中該FSM的一步驟包括一圖像或前象計算。
8.如權利要求1所述的方法,還包括,如果在該第一方向或該第二方向上的狀態(tài)空間的轉移遇到一失誤特性,則計算到達該失誤特性的錯誤軌跡。
9.用于不變量檢測的邏輯,該邏輯在一個或多個執(zhí)行媒體中編碼并且當執(zhí)行時可用于執(zhí)行對應于一個或多個二元判決圖表(BDD)的一有限狀態(tài)機(FSM)的一個或多個第一步驟,用以在關于一初始狀態(tài)和一錯誤狀態(tài)的第一方向上轉移該FSM的狀態(tài)空間;自動地且無需用戶輸入地,訪問對應于該FSM的一個或多個第一步驟的第一簡表;自動地且無需用戶輸入地,比較該第一簡表與一個或多個第一預定標準;自動地且無需用戶輸入地,根據該第一簡表與該一個或多個第一預定標準間的比較,停止該狀態(tài)空間在該第一方向上的轉移;自動地且無需用戶輸入地,根據從該FSM的所述一個或多個第一步驟得到的第一部分結果,執(zhí)行該FSM的一個或多個第二步驟,用以在關于該初始狀態(tài)和該錯誤狀態(tài)的一第二方向上轉移該狀態(tài)空間,該第二方向與該第一方向相反;自動地且無需用戶輸入地,訪問對應于FSM的一個或多個第二步驟的第二簡表;自動地且無需用戶輸入地,比較該第二簡表與一個或多個第二預定標準;自動地且無需用戶輸入地,根據該第二簡表與所述一個或多個第二預定標準間的比較,停止該狀態(tài)空間在該第二方向上的轉移;以及自動地且無需用戶輸入地,根據從該FSM的所述一個或多個第二步驟得到的第二部分結果,執(zhí)行該FSM的一個或多個第三步驟,用以將在所述一個或多個第一步驟中的該第一方向上轉移該狀態(tài)空間。
10.如權利要求9所述的邏輯,其中所述一個或多個BDD共同對應于一個或多個硬件組件、一個或多個軟件組件、或者一個或多個嵌入式邏輯組件。
11.如權利要求9所述的邏輯,還包括持續(xù)交替地在該第一方向轉移該FSM的該狀態(tài)空間和在該第二方向轉移該FSM的該狀態(tài)空間,直到獲得最終結果。
12.如權利要求11所述的邏輯,還用于如果與在該第一方向執(zhí)行該FSM的一步驟相關聯的一個或多個代價,超出了包括執(zhí)行該FSM的一步驟的最大代價的閾值時停止在該第一方向執(zhí)行該FSM的步驟;并且只在該第二方向繼續(xù)執(zhí)行該FSM的步驟;并且如果與在該第二方向執(zhí)行該FSM的一步驟相關聯的一個或多個代價超出該閾值時停止在該第二方向執(zhí)行該FSM的步驟;并且只在該第一方向繼續(xù)執(zhí)行該FSM的步驟。
13.如權利要求9所述的邏輯,在執(zhí)行該FSM的所述一個或多個第一步驟前還可用于計算該第一方向上的第一圖像以及與該第一方向相反的該第二方向上的第二圖像;以及如果與計算該第一圖像相關聯的一個或多個代價小于與該第二圖像相關聯的一個或多個代價,就在該第二方向上轉移該FSM的狀態(tài)空間之前在該第一方向上轉移該FSM的該狀態(tài)空間。
14.如權利要求9所述的邏輯,其中該第二簡表表示與在該第二方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價;所述一個或多個第二預定標準表示與在該第一方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價;并且根據該第二簡表和所述一個或多個第二預定標準之間的比較停止該狀態(tài)空間在該第二方向上的轉移,包括如果與在該第二方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價超出了與在該第一方向上執(zhí)行該FSM的最后步驟相關聯的一個或多個代價,就停止該狀態(tài)空間在該第二方向上的轉移。
15.如權利要求9所述的邏輯,其中該FSM的一個步驟包括一圖像或前象計算。
16.如權利要求9所述的邏輯,還用于,如果在該第一方向或該第二方向上的狀態(tài)空間的轉移遇到一失誤特性,則計算到達該失誤特性的錯誤軌跡。
17.一種用于不變量檢測的系統(tǒng),該系統(tǒng)包括用于對應于一個或多個二元判決圖表(BDD)來執(zhí)行一有限狀態(tài)機(FSM)的一個或多個第一步驟的裝置,用以在關于一初始狀態(tài)和一錯誤狀態(tài)的第一方向上轉移該FSM的狀態(tài)空間;用于自動地且無需用戶輸入地訪問對應于該FSM的一個或多個第一步驟的第一簡表的裝置;用于自動地且無需用戶輸入地將該第一簡表與一個或多個第一預定標準比較的裝置;用于自動地且無需用戶輸入地、根據該第一簡表與所述一個或多個第一預定標準之間的比較來停止該狀態(tài)空間在該第一方向上的裝移的裝置;用于自動地且無需用戶輸入地、根據從該FSM的所述一個或多個第一步驟得到的第一部分結果執(zhí)行該FSM的一個或多個第二步驟的裝置,用以在關于該初始狀態(tài)和該錯誤狀態(tài)的一第二方向上轉移該狀態(tài)空間,該第二方向與該第一方向相反;用于自動地且無需用戶輸入地訪問對應于該FSM的一個或多個第二步驟的第二簡表的裝置;用于自動地且無需用戶輸入地將該第二簡表與該FSM的一個或多個第二預定標準比較的裝置;用于自動地且無需用戶輸入地、根據該第二簡表與所述一個或多個第二預定標準間的比較停止該狀態(tài)空間在該第二方向上的轉移的裝置;以及用于自動地且無需用戶輸入地、根據從該FSM的所述一個或多個第二步驟得到的第二部分結果執(zhí)行該FSM的一個或多個第三步驟的裝置,用以將在所述一個或多個第一步驟中的該第一方向上轉移該狀態(tài)空間。
全文摘要
不變量檢測方法包括執(zhí)行對應于一個或多個二元判決圖表的有限狀態(tài)機的一個或多個第一步驟,用以在關于一初始狀態(tài)和一錯誤狀態(tài)的第一方向轉移FSM的狀態(tài)空間。該方法還包括,自動無需用戶輸入的訪問對應于第一步驟的第一簡表;將其與一個或多個第一預定標準比較;根據該比較停止第一方向的轉移;根據從第一步驟得到的第一部分結果,執(zhí)行FSM的一個或多個第二步驟以在關于初始狀態(tài)和錯誤狀態(tài)的與第一方向相反的第二方向上轉移狀態(tài)空間;訪問對應于第二步驟的第二簡表;比較第二簡表與一個或多個第二預定標準;根據該比較停止第二方向的轉移;根據從第二步驟得到的第二部分結果執(zhí)行FSM的一個或多個第三步驟以第一方向轉移狀態(tài)空間。
文檔編號G06F17/50GK1749769SQ200510071400
公開日2006年3月22日 申請日期2005年5月20日 優(yōu)先權日2004年5月21日
發(fā)明者克里斯蒂安·施坦格爾, 托馬斯·W.·斯蒂爾, 高山浩一郎 申請人:富士通株式會社