(57)【要約】【課題】  有効状態を計算する種々の技術が開発されてきたが、従来の検証技術は、種々の性能の不利点を有する。従って、柔軟且つ効率的なハードウェア及びソフトウェア検証を可能にする技術が必要である。 【解決手段】  方法及びシステムは、システムの選言的遷移関係分割を構築し、及び当該遷移関係の操作から到達可能状態を得る。システムの特性は、得られた到達可能状態をシステムの目標仕様に関し分析することにより、検証されて良い。【選択図】  図２
2008117398.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
システムの遷移関係分割を構築し及び前記分割を選言的遷移関係表現に変換する段階、
所定点に到達するまで，前記遷移関係の操作から到達可能状態を得る段階、並びに
前記到達可能状態を前記システムの目標仕様に関し分析することにより、前記システムの特性を検証する段階、を有する方法。
【請求項２】
前記分割の各構成要素の大きさは、所定の閾値より低い、請求項１記載の方法。
【請求項３】
画像計算の前記所定点に到達する前に、存在量化は分割を使用して実行される、請求項２記載の方法。
【請求項４】
前記遷移関係の分割のデータ、到達可能状態及び前記システムの特性は、二分決定グラフに格納される、請求項１記載の方法。
【請求項５】
前記所定点は前記到達可能状態が収束した時である、請求項１記載の方法。
【請求項６】
前記所定点に到達するまで、前記分割の１つは操作される、請求項１記載の方法。
【請求項７】
前記特性を検証する段階は並列に実行される、請求項１記載の方法。
【請求項８】
前記検証する段階は複数のプロセッサーにより実行される、請求項７記載の方法。
【請求項９】
分析されるべきシステムの状態セットを提供する段階、及び
前記提供された状態セットを分析すると、前記所定点に到達したと決定する段階、を有する請求項１記載の方法。
【請求項１０】
前記分割の画像計算を独立に実行する段階、を有する請求項１記載の方法。
【請求項１１】
固定点に到達するまで、前記画像計算が実行される、請求項１０記載の方法。
【請求項１２】
前記画像計算の間、前記システムの状態セットを部分的に抽出する段階、を有する請求項１０記載の方法。
【請求項１３】
独立変数の数量化は、前記画像計算の間に実行される、請求項１０記載の方法。
【請求項１４】
検証方法であって、
回路の選言的遷移関係分割表現を構築する段階、及び
前記遷移関係を操作することにより前記回路の到達可能状態を得て、及び前記到達可能状態が前記システムの目標特性を満足するか否かを検証する段階、を有する方法。
【請求項１５】
前記構築する段階は、
ビット関係結合を自動的に実行する変数を有する遷移関係の関数を定める段階、
各構成要素が閾値より低くなるまで、前記関数を選言的に分割する段階、及び
各変数が除去されるまで存在量化を実行する段階、を有する請求項１４記載の方法。
【請求項１６】
前記回路の設計者により提供された概算状態セットに到達するまで、前記到達可能状態が得られる、請求項１５記載の方法。
【請求項１７】
検証器であって、
システムの初期状態を入力する入力装置、並びに
前記システムの選言的遷移関係分割表現を構築し、及び前記システムの目標仕様に関し前記システムの到達可能状態を分析することにより前記システムの特性を検証する少なくとも１つのプロセッサー、を有する検証器。
【請求項１８】
コンピューター可読記憶装置であって、二分決定グラフを有するデータ構造を有し、前記二分決定グラフは、システムの選言的遷移関係分割表現、前記システムの状態セット、及び前記システムの目標仕様を有する、コンピューター可読記憶装置。
【請求項１９】
前記データ構造は、到達可能であるとして検出された前記システムの状態セットの自動的表現を有する、請求項１８記載のコンピューター可読記憶装置。
【請求項２０】
コンピューター可読媒体であって、コンピューターに処理を実行させるプログラムを有し、前記処理は、
システムの遷移関係分割を構築し及び前記分割を選言的遷移関係表現に変換する段階、
所定点に到達するまで，前記遷移関係の操作から到達可能状態を得る段階、並びに
前記到達可能状態を前記システムの目標仕様に関し分析することにより、前記システムの特性を検証する段階、を有する、コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、発明者Ｊａｗａｈａｒ  Ｊａｉｎ他、名称「ＤＩＳＪＵＮＣＴＩＶＥ  ＰＡＲＴＩＴＩＯＮＩＮＧ  ＯＦ  ＴＲＡＮＳＩＴＩＯＮ  ＲＥＬＡＴＩＯＮ  ＢＡＳＥＤ  ＶＥＲＩＦＩＣＡＴＩＯＮ」、２００６年１０月３１日に米国特許商標局に出願の米国特許出願番号６０／８５５７３６４７に関連し当該出願の利益を主張する。当該出願は参照されることにより本願明細書に組み込まれる。
【０００２】
本願明細書で議論される実施例は、ハードウェア及びソフトウェアの検証に関連し、より詳細には、選言的遷移関係分割に基づく検証に関する。
【背景技術】
【０００３】
検証は、一般的にソフトウェア又はハードウェア設計が特定仕様書又は特性に関する要件を満足するか否かの検査を扱う。検証の共通の手法は、設計の特性を検査することである。このような手法の１つは、システムの不変性を検査する無限モデルであり、一般的に到達可能性分析を実施することにより実行される。この手法は、初期状態から到達可能な全ての状態を発見し、及び不変性が到達可能な状態で満足されるか否かを検査することを目的とする。しかしながら、上記及び他の同様の手法は、特に大きい状態セットを表現する場合に、到達した状態を表現するために使用される二分決定グラフ及び遷移関係の大きさが指数関数的に大きくなるので、所謂、状態爆発問題に悩んでいる。到達可能性分析は、標準的に画像計算に基づく遷移関係、及び状態の横型検索を実行する固定点計算に基づくアルゴリズムを使用して実行される。注意深く設計された手法の使用にも拘わらず、画像計算は、一般的に状態空間の爆発をもたらし、産業界に問題として残されている。
【０００４】
分割した遷移関係の使用が提案されている。この手法では、遷移関係の一体構造の二分決定グラフ表現を使用する代わりに、異なるラッチの遷移関係が別個の二分決定グラフとして保たれる、又は画像計算の間に結合されるラッチの小さいグループにクラスタ化される。遷移関係を二分決定グラフの自動的に結合されたベクトルとして維持することは、遷移関係の構築の問題を解決し得るが、中間の結合の間に、中間処理の二分決定グラフが画像計算の結果より遙かに大きくなることを予測できない。更に、存在量化は結合ベクトルに分配されないので、処理の予測可能性は良くても制限される。
【０００５】
分割した遷移関係構成要素の使用は結合された状態セットに関連するので、これらの解決法は二分決定グラフに関連する中心的問題を解決せず、単に爆発問題を画像の計算まで延期するだけである。これは、到達した状態セットが十分に複雑になる場合、中間の二分決定グラフが対応する画像より大きい規模になる傾向があるからである。結合の中間結果は、最終結果が最終的に扱いやすい大きさになる場合にさえ大きくなり得る。結合として又は「連鎖」方法で表現された遷移関係を使用する手法もまた、全ての結合された遷移関係の分析を同時に必要とするので、遷移関係の独立した分析のための技術を提供しない。
【０００６】
設計の大きさ及びシステムの複雑性が増大するにつれ、検証は現代の設計フローの中で隘路になってきている。従来の検証手法の別の不利点は、状態セットの表現構想を格納するために空間が必要とされることである。
【０００７】
大きいメモリー空間の使用の必要に加え、有効状態セットを計算する従来の技術では、全ての到達可能状態は状態セット及び状態遷移を表現するブール関数の結合を使用して計算される必要がある。全ての画像計算の下位処理は、新たな状態が抽出される前に完了する必要があるので、上述の技術は計算中の分析又は検証を提供しない。つまり、各結合は、先行する１つの結合が完了した後にのみ実行され得る。従って画像計算が完了するまで、新たな状態を抽出する如何なる機構も存在しない。
【０００８】
有限状態機械の有効状態の計算は、特性の正確性を検証するために必須である。標準的に、正しくない状態がシミュレーション中に検出された場合に特性は正しくない可能性があるので、有効状態セットは、大規模な回路シミュレーションを実行することにより計算される。しかしながら、標準的に有効状態のセットはきちんと列挙するには大きすぎるので、シミュレーションを通じて特性の正当性を確認することは、不可能である。標準的なデジタル回路検証は大規模シミュレーションにより実行されてきたが、シミュレーションは完全な範囲を提供せず、可能なほんの一部分の刺激を検査するだけなので、それら検証の性能は満足できるものではなく、バグ／問題を検出されないまま残してしまう。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
有効状態を計算する種々の技術が開発されてきたが、従来の検証技術は、種々の性能の不利点を有する。従って、柔軟且つ効率的なハードウェア及びソフトウェア検証を可能にする技術が必要である。

【課題を解決するための手段】
【００１０】
開示されるシステム及び方法は、システムの遷移関係分割を構築し、分割を選言的遷移関係表現に変換し、遷移関係の操作から到達可能状態を得る。
【００１１】
開示される方法は、回路の選言的遷移関係分割表現を構築する段階、及び遷移関係を操作することにより回路の到達可能状態を得る段階、及び到達可能状態がシステムの目標特性を満足するか否かを検証する段階、を有する。
【００１２】
方法は、ビット関係結合を自動的に実行する変数を有する遷移関係の関数を定める段階、各構成要素が閾値より低くなるまで、関数を選言的に分割する段階、及び各変数が除去されるまで存在量化を実行する段階、を有する。開示されるシステム及び方法は、システムの目標仕様に対し到達可能状態を分析することにより、システムの特性を検証する。
【００１３】
上述の及び他の態様及び利点が構成及び動作の詳細に存在し、当該態様及び利点は、添付の図面を参照し以下により完全に記載され、そして請求される。複数の図を通じて同様の番号は同様の部分を表す。
【発明を実施するための最良の形態】
【００１４】
本発明の現在の実施例の詳細を参照する。当該例は添付の図面に図示され、図を通じて同様の要素に同様の参照符号が付される。実施例は、開示されるシステム及び方法を図を参照して説明するために以下に記載される。しかしながら、理解されるべき点は、以下の説明及び図により本発明の範囲が如何様にも制限されないことである。従って、図示された装置の代案及び更なる変更、及び本願明細書に説明される原理の更なる応用は、本発明の実施例に関連する当業者が通常想到し得るものである。
【００１５】
従来の検証及び到達可能な分析技術の欠点を克服するため、開示されるシステム及び方法は、効率的且つ柔軟な到達可能性分析及び検証を可能にするシステムの選言的遷移関係（TR）分割を構築する。検証の対象は、システムのプログラム、ソフトウェア、１若しくは複数のハードウェア構成要素、又はシステム全体であって良い。到達可能性分析は、固定点に到達するまで画像計算がプログラム又は機械の初期状態に対し実行される順方向到達可能性、及び特性から得られた状態セットの補集合の無効状態が得られるまで画像計算が当該補集合に適用される逆方向到達可能性の両方を参照する。初期状態セットは、リセット状態セットを有する如何なるセット、又は開始又はいくつかの特定状態等のいくつかの他の特定の状態セットを参照し、当該状態セットを使用し到達可能状態が計算される。状態に基づく分析の場合の画像計算は、所与の関数の範囲又は値の式を参照する。
【００１６】
図１は、選言的遷移関係分割に基づく検証を実行するよう構成されたシステムを示す。図１に示されるように、検証器１０は、ディスプレイ装置１２及び入力装置１４を有して良い。ディスプレイ装置１２は、検証中のシステムに関連する検証及び／又は到達可能性分析に関する情報を提供して良い。当該情報は、状態セット、初期若しくは現在の状態、システムの要件若しくは目標仕様に適合したか否かの検証結果、又はシステムの検証及び／又は到達可能性分析に関連する如何なる他のデータも有するがこれらに限定されない。
【００１７】
入力装置１４は、変数、パラメーター、又は検証中のシステムの特性を検証器１０に入力することを可能にする。例えば、ユーザーは、入力装置１４を使用し、検証されるべきシステムに関連する設計情報を入力して良い。しかしながら、検証器１０は、特定の種類の入力に限定されず、またＶｅｒｉｌｏｇのような検証中のシステムの設計情報を提供するハードウェア記述言語を有しても良い。検証器１０はまた、入力装置１４を介し提供されたシステムの設計情報を関数に翻訳するオープン・ソース・ツールを有しても良い。更に、検証中のシステムの状態の取得が完了したと決定される点を識別する範囲情報は、入力装置１４を使用して指定されて良い。例えば、略式検証では、システムの到達可能な及び／又は到達不可能な状態のセットの概算の大きさは、指定されたセットが得られた場合に検証が終了するように指定されて良い。
【００１８】
検証器１０は、ネットワーク１５を介し情報源１３ａと、及び１３ｂと接続され、検証中のシステム（又はプログラム）の設計、仕様、又は特性情報を得て良い。例えば、検証器１０は、ネットワーク１５を介しシステムの設計者からシステムのハードウェア特性を提供されて良い。検証器はまた、データベース１９と接続されて良い。データベース１９は、検証中のシステムの選言的遷移関係分割表現を有する二分決定グラフ（ＢＤＤ）、システムの到達可能状態、システムの目標仕様を含むがこれらに限定されない検証に関するデータを格納するよう構成される。データベース１９は図１に検証器１０と接続されるとして示されるが、データベースは、検証器１０の構成要素として統合されても良い。
【００１９】
検証器１０は、プロセッサー１６及びメモリー１８を有する。図１は複数のプロセッサー１６及びメモリー１８を示すが、開示されるシステムは、特定数のメモリー又はプロセッサーに限定されない。例えば、共有メモリーを具えたマルチコアプロセッサー及び／又は分散型メモリーアーキテクチャーが検証器１０に設けられても良い。図１に示されたプロセッサー１６は、命令の受信及びデータの処理が可能な任意の構成要素を参照する。またメモリー１８は、情報を記録又は格納するよう構成される如何なる種類の装置であっても良い。
【００２０】
検証器１０は、検証中のシステム（又はプログラム）の有効状態セットを決定し、及びシステムの目標仕様を検証するよう構成される。検証器１０を介した有効状態の決定は、記号モデル検査の環境で初期状態から到達可能な全ての状態セットを計算する段階を有する。この手法を用い、状態セット及び状態遷移は、二分決定グラフとして維持され得るブール関数として表現される。また初期（リセット）状態セットは、全ての到達可能状態が計算されるまで、新たな状態のセットを繰り返し増補される。
【００２１】
到達可能性分析の中核は、画像計算処理である。画像計算処理は、状態セットSiを用いて表すと、次のクロック周期でSiから到達可能な全ての状態Si+１を検出する。標準的に、提供された不変特性P(ベクトルs)は、到達可能性分析の間に検査される。到達可能性分析では、全ての到達可能状態がR(ベクトルs)⊂P(ベクトルs)である場合、不変特性は「通過」する。到達可能性分析の間に、得られた状態セットの中に到達不可能な状態があった場合、検証中のシステムには誤りが存在し得る。同様に、セットの否定が結果として如何なる到達可能状態を生じた場合も、誤りが存在すると決定されて良い。システムを検証する別の方法は、検証されるべき特性が時間セマンティックを有し得る場合に、実際の画像計算で、一度に１つを調査することである。例えば、ある値がクロック周期iで真である場合、別の値はクロック周期i+５で真である。到達可能性分析の特定の例が説明されたが、本発明は、到達可能性分析を実施する如何なる特定の技術にも限定されず、及び線形時相論理（ＬＴＬ）、計算木論理（ＣＴＬ）等のような特性を検証する言語を使用しても良い。
【００２２】
k個のラッチ及びr個の入力を有する同期回路は、リセット状態のセットS０及び遷移関数δ：｛０，１｝k×{０，１}r→{０，１}kにより定められる。関数δは記憶要素のk個先の状態関数δi：{０，１}k×{０，１}m→{０，１}をカプセル化する。遷移関係
【数１】
2008117398.tif 000003
は、ブール関数として整形されて良い。ここで、
【数２】
2008117398.tif 000004
従って遷移関係は次式のように計算される。
【数３】
2008117398.tif 000005
関数
【数４】
2008117398.tif 000006
は回路のビット関係である。状態セットSiを処理する場合、画像計算は次式の通りである。
【数５】
2008117398.tif 000007
また、到達可能状態Sは次式の通りである。
【数６】
2008117398.tif 000008
【００２３】
上述の（１）式から分かるように、一体構造の遷移関係は比較的小さいビット関係の場合でさえ爆発する可能性がある。選言的遷移関係分割の利点は、ブール関数として整形された遷移関係
【数７】
2008117398.tif 000009
が次式により分割される場合に明らかである。
【数８】
2008117398.tif 000010
また、画像は次式のように計算されて良い。
【数９】
2008117398.tif 000011
また、存在量化は選言に渡り分配されるので、遷移関係の各構成要素の画像計算は、独立に計算され得る。更に、各画像計算は分割が得られた後に実行され得るので、変数ベクトルpを各画像計算時に数量化する必要がない。特に、事前計算は、次式に従い実施されて良い。
【数１０】
2008117398.tif 000012
ここで画像計算は次式のように表現される。
【数１１】
2008117398.tif 000013
【００２４】
システムの遷移関係分割を得る処理は、図３及び図４を参照し以下に更に詳細に説明される。
【００２５】
図２は、選言的遷移関係分割を使用したシステム特性の検証の例である処理３０を示す。図２に示されるように、処理３０は、システムの遷移関係分割を構築する段階３２で始まる。一体構造のTR（（１）式）の生成は結果として爆発を生じる可能性があるので、検証器１０（図１）は検証中のシステムの遷移関係分割を構築する。分割を構築する段階３２は、検証中のシステムの遷移関係を操作可能に維持しつつ且つ
【数１２】
2008117398.tif 000014
のような構成要素に分割すると同時に、検証中のシステムの遷移関係のセマンティックをキャプチャーする補助関数TRaを構築する段階を有する。補助関数TRaを構築するため、葉がビット関係である二分木全体を形成する変数が導入される。関数TRaの構築の例は、図３を参照して以下に更に詳細に説明される。
【００２６】
関数TRaは、自動的に表現され且つ最大でもビット関係の大きさの合計と等しい全体の大きさを有する結合を有する。好適な実施例では、分割の大きさは、各分割構成要素間の平衡の達成に基づき決定される。従って効率的な画像計算が各分割構成要素に渡り実施され得る。例えば、補助TR関数は、１００万個のノードを有するあるTR及び１９０万個のノードを有する別のTRを有する代わりに、相対的に等しいノード数を有するTR分割構成要素を表現するために構築されて良い。更に、分割構成要素は、別の分割構成要素により表現される状態を除いた状態セットを表現することに限定されない。むしろ、構成要素により表現されたセットは、結果として重複して良い。
【００２７】
比較的小さく且つ複雑でない回路では、構築する段階３２は、一体構造の遷移表現を構築する段階、単一の二分決定グラフを選言的に分割する段階、及び遷移関係を繰り返し分割する段階を有して良い。
【００２８】
遷移関係分割を構築する段階３２の後、処理３０は、分割を選言的遷移関係表現へ変換する段階３４を続ける。上述の例と同一の例を用いると、自動的にビット関係結合を実行する多数の補助変数は、構築された関数TRaに導入される。変換する段階３４の間、関数TRaは、全ての得られた構成要素の大きさが所与の閾値より低くなるまで繰り返し選言的に分割される。つまり、分割の構築は、結果が選言的分割TRaを形成するような方法で表現される。関数TRaの分割の例は、以下に更に詳細に説明される。
【００２９】
分割を選言的遷移関係表現に変換する段階３４の後、処理３０は、所定の点に到達するまで遷移関係の操作から到達可能状態を得る段階３６へ進む。到達可能状態セットは、段階３６で、固定点に到達するまで各選言構成要素に画像計算を繰り返し実行することにより得られて良い。構成要素が選択される順序は分析の正確さにとって重要ではないが、各構成要素に画像計算を実行することが性能に与える影響は有意である。しかしながら、画像計算のスケジュールにおける構成要素の順序は、画像計算を最適化するよう指定されて良い。
【００３０】
到達可能状態の取得が終了する所定点は、例えば、所与の状態セット数がシステムの設計者により提供された概算状態数に基づき得られた点であって良い。所定点はまた、略式検証結果を提供するため、存在量化を選言的TR分割に選択的に適用することにより決定されて良い。到達可能状態の取得が終了する点を決定するいくつかの例が提供されたが、本発明は如何なる特定の決定にも限定されず、及び検証器及び／又は設計者の要求を含む種々の要因が考慮されて良い。
【００３１】
到達可能状態を得る段階３６の後、処理３０は、システムの目標仕様に関して到達可能状態を分析することにより、システム特性を検証する段階３８へ進む。例えば、システム特性は、システムの公式仕様の要件と比較され、システムの実装が仕様を満足するかが検証される。システムの目標仕様は、システムの製造者又は設計者から得られて良く、及び／又は検証を要求するユーザーにより手動で入力されて良い。図２は到達可能状態を得る段階３６及び特性を検証する段階３８が順次実行されるとして示したが、本開示は特定の順序に限定されない。例えば、到達可能状態は、段階３６で単一の画像計算毎に得られて良く、段階３８でシステム特性を検証し、そして所定点（つまり固定点）に到達するまで繰り返して良い。
【００３２】
図３は、自動的に表現された結合を有する分割アルゴリズムの二分木である。図３に示されるように、当該二分木は、ノードが０又は２の何れかの出次数を有し且つブール関数を表現する完全な二分木である。上述のように、システムの遷移関係分割を構築する段階３２（図２）は、関数TRaを構築する段階を有する。自動的に表現された結合を有する関数をTRaを構築するため、入力に先行するlog  kの補助変数ベクトルd、及び状態変数が順に導入される。これらの変数は、葉がビット関係である完全な二分木を形成する。例えばベクトルdはブール変数のベクトルであり、及びi∈Ｎならば、
（ベクトルd=[i］）は変数ベクトルdの積項として定められる。またiの２進表現から得られる方向性の例は次の通りである。
【数１３】
2008117398.tif 000015
従って積項（ベクトルd=[１１０１２]）は
【数１４】
2008117398.tif 000016
として定められる。
関数TRaは次の通り定められる。
【数１５】
2008117398.tif 000017
【００３３】
上述の関数TRaは次の特性を維持している。
【数１６】
2008117398.tif 000018
【００３４】
従って、関数TRaはTR全体を一度に操作する機会を提供すると同時に、ビット関係の大きさの合計と等価であって良い処理しやすい大きさを維持する。基本的に、関数TRaは、変数と接続された各層及び葉がビット関係briである完全な二分木を表現する。また、乗算を実行せずに関数TRaを構築することにより、関数の大きさの合計と同じ大きさに維持される。好適な実施例では、変数ベクトルdを通じて自動的に符号化された結合は、選言が得られた後、且つ実際の画像計算が実行される前の点に延期される。更に、ビット関係は通常、同一のＢＤＤマネージャーに既に格納されているので、TRaを構築するコストは無視できる。
【００３５】
関数TRaの自動的表現は、分割構成要素が構築された後に操作を実行させる。従って表現は大きくならない。
【００３６】
各分割構成要素は、検証中のシステムに関し到達可能性分析を実施するため、プロセッサー１６（図１）の１つに供給されて良い。分割構成要素のうちいくつかの構成要素を利用すると、結果として状態セットの部分的検証をもたらすことが可能であるが、同時に、分割構成要素から生成された状態は、別の分割構成要素と重複して良く、及び正式な検証を提供して良い。
【００３７】
図４は、遷移関係の構成要素への選言的分割を説明する。検証器１０（図１）は、任意の１又は複数の既存のアルゴリズムを使用し所与の関数fを少なくとも２つの構成要素に分割して良い。上述の例と同一の例を用いると、関数TRaは、DisjDecompA、DisjDecompBのような分割アルゴリズム、及び所与の関数fを少なくとも２つの部分に分割可能な他の同様のアルゴリズムを使用して構成要素に分割されて良い。
【００３８】
関数TRaは、各構成要素の大きさが所与の閾値より低くなるまで繰り返し選言的に分割される。例えばユーザーが大きさの閾値Sthを指定した場合、関数TRaは、全ての構成要素がSthより小さい又は等しい大きさを有するまで繰り返し選言的に分割される。また、各繰り返しで、現在の最大構成要素が選択され、そしてアルゴリズムDisjDecompA及びDisjDecompBを使用して２つの部分に分割される。当該２つのうち小さい方の構成要素が選択される。関数TRaの分割はDisjDecompA及びDisjDecompBアルゴリズムを使用して記述されるが、本発明は、如何なる特定の分割アルゴリズムにも限定されない。例えば、
【数１７】
2008117398.tif 000019
の形式の良く知られたシャノン分割は、他のアルゴリズムが所望の選言を生成しない場合に使用されて良い。
【００３９】
また、関数のセット
【数１８】
2008117398.tif 000020
が得られる。ここで
【数１９】
2008117398.tif 000021
である。
【００４０】
好適な実施例では、DisjDecompA及びDisjDecompBの両方が分割に使用され、シャノン分割は大抵の場合、特にfの対応するセット内の大部分の変数が検査される場合、遅いので、シャノン分割は最終の再ソートとして利用される。
【００４１】
更に、選言は、検証中のシステムの状態のグラフの構造を分析することにより及び１又は複数の分割二分決定グラフ（ＰＯＢＤＤ）を生成することにより、達成されて良い。
【００４２】
図５は、関数TRaを構成する場合に導入された補助変数の数量化を示す。補助変数iは依然として分割構成要素内に存在するので、変数は次式に従い一度に全て数量化される。
定義２．６
【数２０】
2008117398.tif 000022
が関数のセット{L１,L２,…,Ln}を表すならば、
【数２１】
2008117398.tif 000023
は
【数２２】
2008117398.tif 000024
定義２．７
【数２３】
2008117398.tif 000025
が２個の関数セットを表すならば、
【数２４】
2008117398.tif 000026
は関数Li,Mjの全ての対結合のセット
【数２５】
2008117398.tif 000027
として定められる。
関数セット
【数２６】
2008117398.tif 000028
は次のように得られる。
【数２７】
2008117398.tif 000029
上記セットの基数m’は最大でm２である。この段階で、変数dj及び
【数２８】
2008117398.tif 000030
の構成要素はもはや存在しない。
【００４３】
例えば関数TRaが３個の構成要素に分割され及び２個の補助変数が関数TRaの構築に使用された場合、次の通りである。
【数２９】
2008117398.tif 000031
更に
【数３０】
2008117398.tif 000032
ここで上記関数のいくつかは０であって良い。最終的に次のように表現される。
【数３１】
2008117398.tif 000033
ここでm’はゼロでない結合の数に等しく、最大で９である。
【００４４】
図５は、入力セット{A１,B１}からの変数d１の全ての数量化を示す。また変数d１はもはや結果として生じるセット{A２,B２}内に存在しない。上述のように、この時点で、変数djは構成要素の対応するセットから除去され、同時に選言が維持される。しかしながら、結果内の構成要素数はm乃至最悪の場合m２に増大している可能性がある。このような場合、構成要素数は残りの補助変数を除去する前に減少させる必要があり得る。
【００４５】
セット
【数３２】
2008117398.tif 000034
は、セット
【数３３】
2008117398.tif 000035
の構成要素から直接に得られる。これは、
【数３４】
2008117398.tif 000036
内の最小の大きさを有する２つの構成要素を繰り返し選択し、そしてそれらを分離することにより行われる。選択は、全体の分割が可能な限り平衡を維持するように実行される。この動作は、m個の構成要素が残されるまで繰り返される。最小の構成要素を選択し分離することは、中間リストの構成要素の平衡を良好に保ち、全ての変数ベクトルdが数量化された後に所望の選言的TR分割が得られる。表２に数量化アルゴリズムの例が示される。
【００４６】
開示された分割は、関数TRaを構築する段階（図３）を有する。ここで補助変数が導入されビット関係結合を自動的に実行し、TRa（図４）は全ての得られた構成要素の大きさが所与の閾値より低くなるまで繰り返し選言的に分割され、及び構成要素内に依然として存在する補助変数は全て数量化される（図５）。開示された分割は、構成要素の大きさの閾値及び表３に示された所望の構成要素数によりパラメーターを供給されるアルゴリズムを使用し実施されて良い。
【００４７】
図６は、検証中のシステムの遷移関係の操作を示す。図６に示されるように、各分割構成要素TR１、TR２、．．．、TRｎは、現在の状態セットで乗算され、次のビットのためのビット全体を生成する。画像計算は、関数TRの各分割構成要素に適用されて良い。ここで各TR構成要素（TR１、TR２、．．．、TRｎ）は画像計算を実施するために使用される。TR構成要素は画像を計算するために使用され得る関数であり、特定の構成要素の画像（つまりTR２）は大きいTRの画像の一部なのでサブ画像を参照する。
【００４８】
更に、構成要素の大きさが所定の閾値より大きい場合、構成要素は廃棄されて良い。例えば図６に示されるP３が閾値を超える場合、構成要素は廃棄されて良い。結果として、特定の状態を除いて表現された構成要素の場合に略式検証をもたらすか、又は同一の状態が別の構成要素にも含まれる場合に正式検証をもたらし得る。
【００４９】
従って、状態がi+１で計算される必要がある場合、クロック周期iにおける状態セットが与えられると、ある構成要素はセットの一部を計算して良く、別の構成要素は当該セットの別の一部を計算して良いなどである。また状態の合併（ＯＲバリエーションで実行される）は、結果として正確に次の状態を生じる。
【００５０】
図２に示されるように、到達可能状態セットは、固定点に到達するまで各選言構成要素に画像計算を繰り返し実行することにより得られて良い。画像計算のスケジュールにおける構成要素の順序は、画像計算を最適化するよう指定されて良い。このようなスケジュールで現在の到達可能状態セットの地点からどれだけの時間が進むかを考えると、時刻t=０で、セットS０は初期状態を有する。時間はセットSiが読み出される時には進まず、新たな状態が提出された時に１単位だけ進む。得られた選言的TRの構成要素がTRｊ、j=１…mであり、ICi,kが状態セットSiに関する画像計算処理を表す場合、構成要素TRｊ及び{ICi,k}で到達可能状態が得られる。IC処理のシーケンスは、到達可能性分析スケジュールを一意に定める。
【００５１】
開示された検証器１０（図１）は、順次スケジューリング、スレッドスケジューリング、同期スレッドスケジューリング等を含むがこれらに限定されない種々の種類のスケジューリング分割を分割構成要素の画像計算に実施して良い。
【００５２】
例えばπ(j)がTRj構成要素のインデックスに関する順列である場合、順次スケジューリングは次の通りである。
【数３５】
2008117398.tif 000037
【００５３】
各ICは直前にあり且つ単一ＣＰＵシステムにより良く適した状態セットに影響するので、順次スケジューリングは並列抽出を許可しないが、スケジュールは、固定点に到達するために必要な画像計算の数を低減する大きな可能性を有する。
【００５４】
スレッドスケジューリングは、ICβ,kがスケジュール内の位置jに現れ、ICα,kがi<j、β≧iである位置iに現れる場合、各処理対ICα,k，ICβ,kに対し、制約に基づき実施されて良い。この制約は、スケジューラーが常にTR構成要素毎に１より多いアクティブな画像計算を維持することを回避する。更に、m個の画像計算は如何なる所与の時刻にもアクティブであり得るので、スレッドスケジューリングは有意な並列抽出を許可する。望ましくは、Sが任意の他のスレッドから更新されると直ぐに、各スレッドが状態Sの共通プールの画像を計算する場合、スケジュールはm個のスレッドを有し、TRのm個の構成要素のそれぞれ１つが１個のスレッドを有する。
【００５５】
同期スレッドスケジューリングは、スレッドスケジューリングに関連して議論された制約に加え、追加の制約を導入する。特に{t∈N}として、スケジュール内のm個の処理の各シーケンス(t・m+１,…,(t+１)・m)は、２つの処理
【数３６】
2008117398.tif 000038
を有するべきではない。この制約は利用可能な並列処理を低減するが、画像計算処理のより制御された用途を可能にする。更に、同期スレッドスケジューリングは、t番目のシーケンスの間、システムが少なくともＩＷＬＳ‘９５のような接続手法のt番目の画像計算の到達した状態を生成することを保証する。このスケジューリング技術はまた、如何なる追加の不要な制約を課すことなく、横型検索方法で到達可能状態を計算する。
【００５６】
開示されたシステム及び方法は、仕様に従う軌跡で動作する関数を構築することにより、複雑な特性及び回路設計を有するシステム又はプログラムを含むハード検証の場合に特に有益である。
【００５７】
従って、方法は、所与の全ての初期状態セットから１クロック周期で到達可能である全ての可能な状態を記述する記号表現を提供する。方法は、システムの到達可能状態セットを計算する関数を構築する段階を有する。ここで遷移関係は、全ての画像計算に先立ち及び制御された方法で、限られた数のビット関係結合を一度に実行することにより選言的に分割される。開示されたシステムに供給されるビット関係は、細かい接合分割であり得る。実際に、開発されたアルゴリズムは、基本的に如何なる提供された接合も選言に変換する。
【００５８】
実施例の多くの特徴及び利点は、詳細な説明から明らかである。また本発明は、特許請求の範囲により定められ、本発明の真の精神と範囲に包含される実施例の全ての特長及び利点を含む。更に、当業者は多くの変形及び変更を直ちに成し得る。本発明の実施例は図示及び記載された構成及び処理に限定されるべきではない。及び従って全ての適切な変形及び等価物は、本発明の範囲に包含される。
【００５９】
【表１】
2008117398.tif 000039
【００６０】
【表２】
2008117398.tif 000040
【００６１】
【表３】
2008117398.tif 000041
【００６２】
【表４】
2008117398.tif 000042
【００６３】
（付記）
（付記１）  方法であって、
システムの遷移関係分割を構築し及び前記分割を選言的遷移関係表現に変換する段階、
所定点に到達するまで，前記遷移関係の操作から到達可能状態を得る段階、並びに
前記到達可能状態を前記システムの目標仕様に関し分析することにより、前記システムの特性を検証する段階、を有する方法。
（付記２）  前記分割の各構成要素の大きさは、所定の閾値より低い、付記１記載の方法。
（付記３）  画像計算の前記所定点に到達する前に、存在量化は分割を使用して実行される、付記２記載の方法。
（付記４）  前記遷移関係の分割のデータ、到達可能状態及び前記システムの特性は、二分決定グラフに格納される、付記１記載の方法。
（付記５）  前記所定点は前記到達可能状態が収束した時である、付記１記載の方法。
（付記６）  前記所定点に到達するまで、前記分割の１つは操作される、付記１記載の方法。
（付記７）  前記特性を検証する段階は並列に実行される、付記１記載の方法。
（付記８）  前記検証する段階は複数のプロセッサーにより実行される、付記７記載の方法。
（付記９）  分析されるべきシステムの状態セットを提供する段階、及び
前記提供された状態セットを分析すると、前記所定点に到達したと決定する段階、を有する付記１記載の方法。
（付記１０）  前記分割の画像計算を独立に実行する段階、を有する付記１記載の方法。
（付記１１）  固定点に到達するまで、前記画像計算が実行される、付記１０記載の方法。
（付記１２）  前記画像計算の間、前記システムの状態セットを部分的に抽出する段階、を有する付記１０記載の方法。）
（付記１３）  独立変数の数量化は、前記画像計算の間に実行される、付記１０記載の方法。
（付記１４）  検証方法であって、
回路の選言的遷移関係分割表現を構築する段階、及び
前記遷移関係を操作することにより前記回路の到達可能状態を得て、及び前記到達可能状態が前記システムの目標特性を満足するか否かを検証する段階、を有する方法。
（付記１５）  前記構築する段階は、
ビット関係結合を自動的に実行する変数を有する遷移関係の関数を定める段階、
各構成要素が閾値より低くなるまで、前記関数を選言的に分割する段階、及び
各変数が除去されるまで存在量化を実行する段階、を有する付記１４記載の方法。
（付記１６）  前記回路の設計者により提供された概算状態セットに到達するまで、前記到達可能状態が得られる、付記１５記載の方法。
（付記１７）  検証器であって、
システムの初期状態を入力する入力装置、並びに
前記システムの選言的遷移関係分割表現を構築し、及び前記システムの目標仕様に関し前記システムの到達可能状態を分析することにより前記システムの特性を検証する少なくとも１つのプロセッサー、を有する検証器。
（付記１８）  コンピューター可読記憶装置であって、二分決定グラフを有するデータ構造を有し、前記二分決定グラフは、システムの選言的遷移関係分割表現、前記システムの状態セット、及び前記システムの目標仕様を有する、コンピューター可読記憶装置。
（付記１９）  前記データ構造は、到達可能であるとして検出された前記システムの状態セットの自動的表現を有する、付記１８記載のコンピューター可読記憶装置。
（付記２０）  コンピューター可読媒体であって、コンピューターに処理を実行させるプログラムを有し、前記処理は、
システムの遷移関係分割を構築し及び前記分割を選言的遷移関係表現に変換する段階、
所定点に到達するまで，前記遷移関係の操作から到達可能状態を得る段階、並びに
前記到達可能状態を前記システムの目標仕様に関し分析することにより、前記システムの特性を検証する段階、を有する、コンピューター可読媒体。
【図面の簡単な説明】
【００６４】
【図１】選言的遷移関係分割に基づく検証を実行するよう構成されたシステムのブロック図である。
【図２】システムの選言的遷移関係分割を使用した、システムの特性を検証するためのフローチャートである。
【図３】分割アルゴリズムの二分木表現である。
【図４】遷移関係の構成要素への選言的分割を説明する図である。
【図５】分割アルゴリズムに含まれる変数の存在量化を説明する図である。
【図６】選言的遷移関係分割に基づく画像計算を説明する図である。
【符号の説明】
【００６５】
１０  検証器
１２  ディスプレイ装置
１３ａ、１３ｂ  情報源
１４  入力装置
１５  ネットワーク
１６ａ−ｃ  プロセッサー
１８ａ−ｃ  メモリー
１９  データベース
【図１】
2008117398.tif 000043
【図２】
2008117398.tif 000044
【図３】
2008117398.tif 000045
【図４】
2008117398.tif 000046
【図５】
2008117398.tif 000047
【図６】
2008117398.tif 000048