(57)【特許請求の範囲】
【請求項１】
コンピュータにより第１の回路と第２の回路との間の等価検証のために状態素子をマッピングする方法において、前記方法は、
（ａ）前記第１の回路と前記第２の回路の一次入力と一次出力から前記第１及び前記第２の回路の各状態素子までの第１の逐次的な深さを決定し、それにおいて前記第１の逐次的な深さは回路の２つの点間の任意のパスに沿った状態素子の最小のカウントであり、  （ｂ）特有の第１の逐次的な深さを有する前記第１の回路と前記第２の回路の第１の状態素子を識別してマッピングし、
（ｃ）前記第１の回路と前記第２の回路の前記識別された第１の状態素子から前記残りの状態素子までの第２の逐次的な深さを決定し、
（ｄ）特有の第２の逐次的な深さを有する前記第１の回路と前記第２の回路の第２の状態素子を識別してマッピングし、
（ｅ）前記方法がもはや状態素子の新しい特有のマッピングを発生しない場合を除いて、前記（ｃ）と（ｄ）のステップを反復するステップを含んでいる方法。
【請求項２】
前記第１の回路と前記第２の回路の一次入力と一次出力から前記状態素子までの前記第１の逐次的な深さの決定は、
前記第１の回路の各前記一次入力と一次出力から前記第１の回路の各前記状態素子までの前記第１の逐次的な深さを決定し、
前記一次入力と一次出力から前記第２の回路の各前記状態素子までの前記第１の逐次的な深さを決定するステップを含んでいる請求項１記載の方法。
【請求項３】
前記特有の第１の逐次的な深さを有する前記第１の回路と前記第２の回路の前記第１の状態素子を識別してマッピングするステップは、
同一の第１の逐次的な深さを有する前記第１の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第１の回路の前記第１の状態素子を選択し、
同一の第１の逐次的な深さを有する前記第２の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第２の回路の前記第１の状態素子を選択し、
前記第１の回路と第２の回路の前記選択された第１の状態素子がほぼ同じ第１の逐次的な深さを有するならば、前記第１の回路の前記選択された第１の状態素子を前記第２の回路の前記選択された第１の状態素子へマッピングするステップを含んでいる請求項１記載の方法。
【請求項４】
前記第１の回路と前記第２の回路の前記識別された第１の状態素子から前記残りの状態素子までの前記第２の逐次的な深さの決定は、
前記第１の回路の前記識別された各第１の状態素子から前記第１の回路の前記残りの各状態素子までの前記第２の逐次的な深さを決定し、
前記第２の回路の前記識別された各第１の状態素子から前記第２の回路の前記残りの各状態素子までの前記第２の逐次的な深さを決定するステップを含んでいる請求項１記載の方法。
【請求項５】
前記特有の第２の逐次的な深さを有する前記第１の回路と前記第２の回路の第２の状態素子の識別及びマッピングは、
同一の第２の逐次的な深さを有する前記第１の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第１の回路の前記第２の状態素子を選択し、
同一の第２の逐次的な深さを有する前記第２の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第２の回路の前記第２の状態素子を選択し、
前記第１の回路と第２の回路の前記選択された第２の状態素子がほぼ同じ第２の逐次的な深さを有するならば、前記第１の回路の前記選択された第２の状態素子を前記第２の回路の前記選択された第２の状態素子へマッピングするステップを含んでいる請求項１記載の方法。
【請求項６】
前記方法がもはや状態素子の新しい特有のマッピングを発生しない場合を除いた（ｃ）と（ｄ）の前記反復は、（ｃ）と（ｄ）の連続的な反復が状態素子の新しい特有のマッピングを発生しないことを含んでいる請求項１記載の方法。
【請求項７】
前記第１の回路と前記第２の回路の一次入力と一次出力から前記状態素子までの前記第１の逐次的な深さの決定は、
前記第１の回路の各前記一次入力と一次出力から前記第１の回路の各前記状態素子までの前記第１の逐次的な深さを決定し、
前記一次入力と一次出力から前記第２の回路の各前記状態素子までの前記第１の逐次的な深さを決定するステップを含んでおり、
前記特有の第１の逐次的な深さを有する前記第１の回路と前記第２の回路の前記第１の状態素子の識別及びマッピングは、
同一の第１の逐次的な深さを有する前記第１の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第１の回路の前記第１の状態素子を選択し、同一の第１の逐次的な深さを有する前記第２の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第２の回路の前記第１の状態素子を選択し、前記第１の回路と第２の回路の前記選択された第１の状態素子がほぼ同じ第１の逐次的な深さを有するならば、前記第１の回路の前記選択された第１の状態素子を前記第２の回路の前記選択された第１の状態素子へマッピングするステップを含んでいる請求項１記載の方法。
【請求項８】
前記第１の回路と前記第２の回路の前記識別された第１の状態素子から前記残りの状態素子までの前記第２の逐次的な深さの決定は、
前記第１の回路の前記識別された各第１の状態素子から前記第１の回路の前記残りの各状態素子までの前記第２の逐次的な深さを決定し、
前記第２の回路の前記識別された各第１の状態素子から前記第２の回路の前記残りの各状態素子までの前記第２の逐次的な深さを決定するステップを含んでおり、
前記特有の第２の逐次的な深さを有する前記第１の回路と前記第２の回路の第２の状態素子の識別及びマッピングは、
同一の第２の逐次的な深さを有する前記第１の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第１の回路の前記第２の状態素子を選択し、同一の第２の逐次的な深さを有する前記第２の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第２の回路の前記第２の状態素子を選択し、前記第１の回路と第２の回路の前記選択された第２の状態素子がほぼ同じ第２の逐次的な深さを有するならば、前記第１の回路の前記選択された第２の状態素子を前記第２の回路の前記選択された第２の状態素子へマッピングするステップを含んでおり、
前記方法がもはや状態素子の新しい特有のマッピングを発生しない場合を除いて、（ｃ）と（ｄ）の前記反復は、（ｃ）と（ｄ）の連続的な反復が状態素子の新しい特有のマッピングを発生しない請求項７記載の方法。
【請求項９】
コンピュータにより第１の回路と第２の回路との間の等価検証のため状態素子をマッピングする方法において、前記方法は、
（ａ）前記第１の回路と前記第２の回路の一次入力と一次出力から前記第１及び第２の回路の各状態素子までの第１の逐次的な深さを決定し、前記第１の逐次的な深さは回路の２つの点間の任意のパスに沿った状態素子の最小のカウントであり、
（ｂ）前記各状態素子の前記第１の逐次的な深さに基づいて前記第１の回路と前記第２の回路の各状態素子の第１の特徴ベクトルを発生し、
（ｃ）特有の第１のベクトルを有する前記第１の回路と前記第２の回路の状態素子を識別し、前記第１および第２の回路の前記識別された状態素子の前記第１の特徴ベクトルがほぼ同一であるならば、前記第１の回路の前記識別された状態素子を前記第２の回路の前期識別された状態素子へマッピングし、
（ｄ）前記第１の回路と前記第２の回路の前記識別された第１の状態素子から前記残りの状態素子までの第２の逐次的な深さを決定し、
（ｅ）前記識別された各状態素子の前記第２の逐次的な深さに基づいて前記第１の回路と前記第２の回路の識別された各状態素子の第２の特徴ベクトルを発生し、
（ｆ）特有の第２のベクトルを有する前記第１の回路と前記第２の回路の状態素子を識別し、特有の第２のベクトルを有する前記第１及び第２の回路の前記識別された状態素子の前記第２の特徴ベクトルがほぼ同一であるならば、特有の第２のベクトルを有する前記第１の回路の前記識別された状態素子を特有の第２のベクトルを有する前記第２の回路の前記識別された状態素子へマッピングし、
（ｇ）前記マッピング方法の終了のためのしきい値条件が満足されたか否かを決定するステップを含んでいる方法。
【請求項１０】
前記マッピング方法の終了のためのしきい値条件が満足されたか否かの決定は、  前記マッピングプロセスの終了のための前記しきい値条件が満足されるまで（ｄ）-（ｆ）を反復するステップを含んでいる請求項９記載の方法。
【請求項１１】
前記マッピング方法の終了のための前記しきい値条件が満足されるまで前記（ｄ）-（ｆ）を反復するステップは、
（ｄ）-（ｆ）の連続的な反復が状態素子の新しい特有のマッピングを発生しない請求項１０記載の方法。
【請求項１２】
前記第１の回路と前記第２の回路の一次入力と一次出力の前記第１の逐次的な深さの決定は、
前記第１の回路の各前記一次入力と一次出力から前記第１の回路の各前記状態素子までの前記第１の逐次的な深さを決定し、
前記第２の回路の前記一次入力と一次出力から前記第２の回路の各前記状態素子までの前記第１の逐次的な深さを決定するステップを含んでいる請求項９記載の方法。
【請求項１３】
前記特有の第１のベクトルを有する前記第１の回路と前記第２の回路の前記状態素子の識別及び識別された状態素子のマッピングは、
ほぼ同一の第１のベクトルを有する前記第１の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第１の回路の前記第１の状態素子を選択し、
同一の第１のベクトルを有する前記第２の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第２の回路の前記第１の状態素子を選択し、
前記第１の回路と第２の回路の前記選択された状態素子の前記第１のベクトルがほぼ同じであるならば、前記第１の回路の前記選択された状態素子を前記第２の回路の前記選択された状態素子へマッピングするステップを含んでいる請求項９記載の方法。
【請求項１４】
前記第１および第２の回路の前記選択された状態素子の前記第１の特徴ベクトルがほぼ同じであるならば、前記第１の回路の前記選択された状態素子を前記第２の回路の前記選択された状態素子へマッピングするステップは、前記第１の回路の第２のベクトルと前記第２の回路の第２のベクトルとの僅かな差を解くための距離アルゴリズムを使用することを含んでいる請求項１３記載の方法。
【請求項１５】
前記距離アルゴリズムはユークリッド距離アルゴリズム、マンハッタン距離アルゴリズム、ハミング距離アルゴリズムからなるグループから選択されたアルゴリズムを含んでいる請求項１４記載の方法。
【請求項１６】
前記残りの状態素子への前記第１の回路と前記第２の回路の前記識別された第１の状態素子の前記第２の逐次的な深さの決定は、
前記第１の回路の前記識別された各状態素子から前記第１の回路の前記残りの各状態素子までの前記第２の逐次的な深さを決定し、
前記第２の回路の前記識別された各状態素子から前記第２の回路の前記残りの各状態素子までの前記第２の逐次的な深さを決定するステップを含んでいる請求項９記載の方法。
【請求項１７】
前記特有の第２のベクトルを有する前記第１の回路と前記第２の回路の状態素子の前記識別および識別された状態素子のマッピングは、
ほぼ同一の第２のベクトルを有する前記第１の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第１の回路の前記状態素子を選択し、
ほぼ同一の第２のベクトルを有する前記第２の回路の状態素子をグループ化し、
１つのグループカウントを有する前記第２の回路の前記状態素子を選択し、
特有の第２のベクトルを有する前記第１及び第２の回路の前記選択された状態素子の前記第２の特徴ベクトルがほぼ同じであるならば、特有の第２のベクトルを有する前記第１の回路の前記選択された状態素子を特有の第２のベクトルを有する前記第２の回路の前記選択された状態素子へマッピングするステップを含んでいる請求項９記載の方法。
【請求項１８】
特有の第２のベクトルを有する前記第１及び第２の回路の前記選択された状態素子の前記第２の特徴ベクトルがほぼ同じであるならば、特有の第２のベクトルを有する前記第１の回路の前記選択された状態素子を特有の第２のベクトルを有する前記第２の回路の前記選択された状態素子へマッピングするステップは、前記第１の回路の第２のベクトルと前期第２の回路の第２のベクトルとの僅かな差を解くための距離アルゴリズムを使用することを含んでいる請求項１７記載の方法。
【請求項１９】
前記距離アルゴリズムはユークリッド距離アルゴリズム、マンハッタン距離アルゴリズム、ハミング距離アルゴリズムからなるグループから選択されたアルゴリズムを含んでいる請求項１８記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は等価検証に関し、特に等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法に関する。
【背景技術】
【０００２】
本発明はＤＡＲＰＡにより授与された政府の契約番号HR0011-08-C-0005に関する。米国政府はこの発明においてある権利を有する。
【０００３】
集積回路設計に関連されるプロセスは通常、高いレベルの抽象から中間及び低いレベルの抽象までの幾つかの設計変換を含んでいる。各レベルで、任意の変換が機能的又は論理的に設計を変更しないことを証明するため等価検証が行われる。
【０００４】
通常の等価検証方法は、通常、等価として検証された構成間の状態素子のマッピングを必要とする。これらのマッピング方法は幾つかのカテゴリのうちの１つに入る。かなり共通であるネーミング方法は同様に名づけられた各設計中の対応する点をマップする。しかしながら、状態素子の名称はネーミング方法を使用して幾つかの設計ツールにより行われる設計変換期間中に変更されるか失われる可能性がある。さらに、ネーミング方法はリバースエンジニアリング型の応用にはほとんど使用できない。別の方法は状態素子のファンイン論理コーン（例えば二分決定グラフすなわちＢＤＤ）の正準表現を使用する関数方法である。しかしながら関数方法は情報が利用可能ではないときコーンの全ての入力がマップされることをしばしば必要とし、それによって円形の問題を生む。
【０００５】
別の方法は両者の設計レベルをシミュレートし、その後シミュレーションコンポーネントの選択を類似の値ベクトルを有する状態素子に一致するか狭めるシミュレーション方法である。シミュレーション方法はしかしながら意図的または意図的ではない変換が存在する場合、使用するのが困難である可能性がある。構造的方法と呼ばれる別の方法では、ネットリスト対ネットリスト型の比較が行われ、これは組合せコーン構造を検査する。幾つかの例では、これらの方法の組合せが使用される。しかしながら等価検証のための通常の方法の多く又は全ては幾つかの欠点を有する。したがって等価検証を行うための改良された方法が必要とされる。
【特許文献１】米国特許第６，２４７，１６３  Ｂ１号明細書
【特許文献２】米国特許第６，４９６，９５５  Ｂ１号明細書
【特許文献３】米国特許第７，０３２，１９２  Ｂ２号明細書
【特許文献４】米国特許第７，１４９，６７５  Ｂ２号明細書
【非特許文献１】Anastasakis, et al., “A Practical And Efficient Method For Compare-Point Matching", Synopsys Inc., DAC 2002,June 10-14, 2002, New Orleans, Louisiana, USA, ACM 1-58113-461-4/02/0006 (6pgs.)
【発明の概要】
【０００６】
本発明の特徴は等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法に関する。１実施形態では、本発明は第１の回路と第２の回路の間の等価検証のため状態素子をマッピングする方法に関し、この方法は（ａ）第１の回路と第２の回路の一次入力と一次出力から第１及び第２の回路の各状態素子までの第１の逐次的な深さを決定し、その第１の逐次的な深さは回路の２つの点間の任意のパスに沿った状態素子の最小のカウントであり、（ｂ）特有の第１の逐次的な深さを有する第１の回路と第２の回路の第１の状態素子を識別し及びマッピングし、（ｃ）第１の回路と第２の回路の識別された第１の状態素子から残りの状態素子までの第２の逐次的な深さを決定し、（ｄ）特有の第２の逐次的な深さを有する第１の回路と第２の回路の第２の状態素子を識別し、（ｅ）プロセスがもはや状態素子の新しい特有のマッピングを発生しない場合を除いて、（ｃ）と（ｄ）を反復するステップを含んでいる。
【０００７】
別の実施形態では、本発明は第１の回路と第２の回路との間の等価検証のため状態素子をマッピングする方法に関し、その方法は（ａ）第１の回路と第２の回路の一次入力と一次出力から第１及び第２の回路の各状態素子までの第１の逐次的な深さを決定し、第１の逐次的な深さは回路の２つの点間の任意のパスに沿った状態素子の最小のカウントであり、（ｂ）各状態素子の第１の逐次的な深さに基づいて第１の回路と第２の回路の各状態素子の第１の特徴ベクトルを発生し、（ｃ）特有の第１のベクトルを有する第１の回路と第２の回路の状態素子を識別し、第１および第２の回路の識別された状態素子の第１の特徴ベクトルがほぼ同一であるならば、第１の回路の識別された状態素子を第２の回路の識別された状態素子へマッピングし、（ｄ）第１の回路と第２の回路の識別された第１の状態素子から残りの状態素子までの第２の逐次的な深さを決定し、（ｅ）各識別された状態素子の第２の逐次的な深さに基づいて第１の回路と第２の回路の各識別された状態素子の第２の特徴ベクトルを発生し、（ｆ）特有の第２のベクトルを有する第１の回路と第２の回路の状態素子を識別し、特有の第２のベクトルを有する第１及び第２の回路の識別された状態素子の第２の特徴ベクトルがほぼ同一であるならば、特有の第２のベクトルを有する第１の回路の識別された状態素子を特有の第２のベクトルを有する第２の回路の識別された状態素子へマッピングし、（ｇ）マッピングプロセスの終了のためのしきい値状態が満足されたか否かを決定するステップを含んでいる。
【図面の簡単な説明】
【０００８】
【図１】本発明の１実施形態による第１の回路と第２の回路間の等価検証のために状態素子をマッピングするプロセスのフローチャートである。
【図２】本発明の１実施形態による第１の回路と第２の回路間の等価検証のために状態素子をマッピングする別のプロセスのフローチャートである。
【図３】本発明の１実施形態による一次入力からデジタル回路の各状態素子までの逐次的な深さの決定を示すデジタル回路の概略図である。
【図４】本発明の１実施形態による一次出力からデジタル回路の各状態素子までの逐次的な深さの決定を示す図３のデジタル回路の概略図である。
【図５】本発明の１実施形態による各一次入力と一次出力からデジタル回路の各状態素子までの逐次的な深さからなる特徴ベクトルの決定を示す図３のデジタル回路の概略図である。
【図６】本発明の１実施形態による特有の特徴ベクトルを有する状態素子のグループ化と、特有の特徴ベクトルを有する状態素子の識別とを示している図３のデジタル回路の概略図である。
【図７】本発明の１実施形態による図６の同一の特徴ベクトルを有する状態素子のグループ化と、特有の特徴ベクトルを有する状態素子の識別とを示している表である。
【図８】本発明の１実施形態による設計ツールが変換を行った後の図３のデジタル回路の概略図であり、ここでは状態素子は最適化され、逐次的な深さにおける効果を示している。
【図９】本発明の１実施形態による図８に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示すための図７の表の再生図である。
【図１０】本発明の１実施形態による図８に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示す表である。
【図１１】本発明の１実施形態による逐次的な深さのマッピングプロセスに関連されるマッピング性能における改良と、通常のマッピングツールとの比較を示すグラフである。
【発明を実施するための形態】
【０００９】
図面を参照すると、第１の回路と第２の回路との間の等価検証のために状態素子をマッピングするためのシステム及び方法の実施形態が示されている。これらの方法は一次入力と出力から各回路の各状態素子までの逐次的な深さの決定を含むことができ、逐次的な深さは回路の２つの点間の可能なパスに沿って遭遇された状態素子の最小のカウントである。この方法はまた一次入力と出力から特有の逐次的な深さを有する第１の回路及び第２の回路の状態素子を識別及びマッピングするステップを含んでいる。幾つかの実施形態では、この方法は第１の回路の特有に識別された状態素子を第２の回路の対応する特有に識別された状態素子へマップする。方法はその後、第１の回路と第２の回路の識別された第１の状態素子から残りの状態素子までの第２の逐次的な深さを決定し、特有の第２の逐次的な深さを有する第１の回路と第２の回路の第２の状態素子を識別してマッピングするステップも含むことができる。幾つかの実施形態では、前述の動作は方法がもはや状態素子の新しい特有のマッピングを発生しなくなるまで反復される。
【００１０】
幾つかの実施形態では、逐次的な深さの方法は等価検証のための改良された性能を与え、最適の性能の他の等価検証と共に使用されることができる。１実施形態では、逐次的な深さの方法は通常の等価検証ツールの開始点として使用されることができる。このような場合、逐次的な深さの方法は通常の等価検証ツールの性能を非常に改良できる。幾つかの実施形態では、ここで説明する逐次的な深さの方法は機能ツール、シミュレーションツール、ネーミングツール又は他の適切な検証ツールのような通常の等価検証ツールの１つと共に使用される。
【００１１】
図１は本発明の１実施形態による第１の回路と第２の回路との間の等価検証のために状態素子をマッピングするプロセスのフローチャートである。ブロック102では、プロセスは最初に第１の回路と第２の回路の一次入力と一次出力から第１及び第２の回路の各状態素子までの第１の逐次的な深さを決定し、それにおいて第１の逐次的な深さは回路の２つの点間の任意のパスに沿った状態素子の最小のカウントである。幾つかの実施形態では、第１の逐次的な深さは一次入力又は出力のうちの１つと任意のパスに沿った特定の状態素子との間で遭遇される最少数の状態素子のカウントである。多数の実施形態では、プロセスは第１の回路の各状態素子から第１の回路の各一次入力及び一次出力までの第１の逐次的な深さを決定し、第２の回路の各状態素子から第２の回路の一次入力及び一次出力までの第１の逐次的な深さを決定する。
【００１２】
ブロック104で、プロセスは特有の第１の逐次的な深さを有する第１の回路と第２の回路の第１の状態素子を識別する。幾つかの実施形態では、プロセスは同一ではないまたは特有の第１の状態素子を識別するためにほぼ同一の第１の逐次的な深さを有する第１の状態素子をグループ化する。特有の逐次的な深さのカウントまたはシグネチャは第１と第２の回路間の状態素子をマップする機会を与える。１実施形態では、第１の状態素子の識別においてプロセスはほぼ同じ第１の逐次的な深さを有する第１の回路の状態素子をグループ化し、１つのグループカウントを有する第１の回路の第１の状態素子を選択し、ほぼ同じ第１の逐次的な深さを有する第２の回路の状態素子をグループ化し、１つのグループカウントを有する第２の回路の第１の状態素子を選択する。１つのグループカウントは特有の逐次的な深さを有する状態素子に対応できる。
【００１３】
ブロック106で、プロセスは第１の回路及び第２の回路の識別された第１の状態素子から残りの状態素子までの第２の逐次的な深さを決定する。幾つかの実施形態では、残りの状態素子は先に識別されておらず特有の逐次的な深さをマップされていない状態素子である。幾つかの実施形態では、第２の逐次的な深さは識別された第１の状態素子のうちの１つと特定の状態素子の間の状態素子のカウントである。１実施形態では、第２の逐次的な深さの決定においてプロセスは第１の回路の各識別された第１の状態素子から第１の回路の各状態素子までの第２の逐次的な深さを決定し、第２の回路の各識別された第１の状態素子から第２の回路の各状態素子までの第２の逐次的な深さを決定する。
【００１４】
ブロック108で、プロセスは特有の第２の逐次的な深さを有する第１の回路と第２の回路の第２の状態素子を識別し、これらを他の回路の対応するコンポーネントへマップする。幾つかの実施形態では、プロセスは同一ではないか特有の第２の状態素子を識別するためほぼ同一の第１の逐次的な深さを有する第２の状態素子をグループ化する。１実施形態では、第２の状態素子の識別においてプロセスはほぼ同じ第２の逐次的な深さを有する第１の回路の状態素子をグループ化し、１のグループカウントを有する第１の回路の第２の状態素子を選択し、ほぼ同じ第２の逐次的な深さを有する第２の回路の状態素子をグループ化し、１のグループカウントを有する第２の回路の第２の状態素子を選択する。選択されたグループは第１と第２の回路間の状態素子をマップする機会を与える。
【００１５】
ブロック110で、プロセスはそのプロセスが状態素子の新しいマッピングを発生しているか否かを決定する。ノーであるならばプロセスは終了する。イエスであるならば、プロセスはブロック106へ戻り、ブロック110の条件が満たされるまでブロック106と108の動作を繰返し反復する。１実施形態では、プロセスはブロック106と108の連続的な反復が状態素子の新しい特有のマッピングを発生しなくなるまでブロック106と108の動作を反復する。
【００１６】
１実施形態では、プロセスは異なる順序で動作のシーケンスを実行できる。別の実施形態ではプロセスは動作の１以上を省略できる。他の実施形態では、動作の１以上は同時に行われる。幾つかの実施形態では、付加的な動作が行われることができる。
【００１７】
図２は本発明の１実施形態による第１の回路と第２の回路との間の等価検証のために状態素子をマッピングする別のプロセス200のフローチャートである。ブロック202で、プロセスは最初に第１の回路及び第２の回路の一次入力および一次出力から第１及び第２の回路の各状態素子までの第１の逐次的な深さを決定し、ここで第１の逐次的な深さは回路の２つの点間の任意のパスに沿った状態素子の最小のカウントである。幾つかの実施形態では、第１の逐次的な深さは一次入力または一次出力のうちの１つと任意のパスに沿った特定の状態素子との間で遭遇された最少数の状態素子のカウントである。１実施形態では、第１の逐次的な深さの決定において、プロセスは第１の回路の各一次入力及び一次出力のそれぞれから第１の回路の各状態素子までの第１の逐次的な深さを決定し、第２の回路の一次入力及び一次出力から第２の回路の各状態素子までの第１の逐次的な深さを決定する。
【００１８】
ブロック204で、プロセスは各状態素子に対する第１の逐次的な深さに基づいて第１の回路と第２の回路の各状態素子の第１の特徴ベクトルを発生する。幾つかの実施形態では特徴ベクトルは各一次入力と各一次出力からそれぞれの状態素子までの逐次的な深さの測定からなる。
【００１９】
ブロック206で、プロセスは特有の第１のベクトルを有する第１の回路と第２の回路の第１の状態素子を識別し、第１及び第２の回路の識別された状態素子の第１の特徴ベクトルがほぼ同じであるならば、第１の回路の識別された状態素子を第２の回路の識別された状態素子へマップする。幾つかの実施形態では、プロセスは同一ではないか特有の第１のベクトルを識別するためほぼ同一の逐次的な深さのベクトルを有する第１のベクトルをグループ化する。１実施形態では、第１の状態素子の識別においてプロセスはほぼ同じ第１のベクトルを有する第１の回路の状態素子をグループ化し、１つのグループカウントを有する第１の回路の第１の状態素子を選択し、ほぼ同じ第１のベクトルを有する第２の回路の状態素子をグループ化し、１つのグループカウントを有する第２の回路の第１の状態素子を選択する。１つのグループカウントは特有の逐次的な深さを有する状態素子に対応できる。
【００２０】
１実施形態では、特徴ベクトルが１デジット異なるとき別の特徴ベクトルとほぼ同一である。別の実施形態では、特徴ベクトルが予め定められた割合異なるとき別の特徴ベクトルにほぼ同一である。別の実施形態では、１つの特徴ベクトルは特徴ベクトルが予め選択された距離アルゴリズムにより許容可能に思われる予め選択されたしきい値だけ異なるとき別の特徴ベクトルにほぼ同一である。些細な差にかかわらず状態素子をマッピングするための距離メトリックまたは距離アルゴリズムを以下さらに詳細に説明する。
【００２１】
ブロック208で、プロセスは第１の回路及び第２の回路の識別された第１の状態素子から残りの状態素子までの第２の逐次的な深さを決定する。幾つかの実施形態では、残りの状態素子は特有の第１の逐次的な深さと同じであると先に識別されていない状態素子である。１実施形態では、第２の逐次的な深さの決定において、プロセスは第１の回路の識別された各状態素子から第１の回路の各状態素子までの第２の逐次的な深さを決定し、第２の回路の各識別された各状態素子から第２の回路の各状態素子までの第２の逐次的な深さを決定する。
【００２２】
ブロック210で、プロセスは各状態素子の第２の逐次的な深さに基づいて第１の回路及び第２の回路の各識別された状態素子の第２の特徴ベクトルを生成する。幾つかの実施形態では、各第２の特徴ベクトルは識別された状態素子からそれぞれの状態素子までの逐次的な深さの測定からなる。
【００２３】
ブロック212で、プロセスは特有の第２のベクトルを有する第１の回路と第２の回路の第２の状態素子を識別し、特有の第２のベクトルを有する第１及び第２の回路の識別された状態素子の第２の特徴ベクトルがほぼ同一であるならば、特有の第２のベクトルを有する第１の回路の識別された状態素子を特有の第２のベクトルを有する第２の回路の識別された状態素子へマップする。幾つかの実施形態では、プロセスは同一ではないか特有の第２のベクトルを識別するためにほぼ同一の逐次的な深さを有する第２のベクトルをグループ化する。１実施形態では、第２の状態素子の識別において、プロセスはほぼ同じ第２のベクトルを有する第１の回路の状態素子をグループ化し、１つのグループカウントを有する第１の回路の第２の状態素子を選択し、ほぼ同じ第２のベクトルを有する第２の回路の状態素子をグループ化し、１つのグループカウントを有する第２の回路の第２の状態素子を選択する。
【００２４】
ブロック216で、プロセスはそのプロセスが状態素子の新しいマッピングを発生しているか否かを決定する。ノーであるならばプロセスは終了する。イエスであるならば、プロセスはブロック208へ戻り、ブロック216の条件が満たされるまでブロック208から214の動作を繰返し反復する。幾つかの実施形態では、ブロック208から214の動作の連続的な反復が状態素子の任意の新しい特有のマッピングを発生しなくなるときブロック216の条件は満たされる。
【００２５】
１実施形態では、プロセスは異なる順序で動作のシーケンスを実行できる。別の実施形態ではプロセスは１以上の動作を省略できる。他の実施形態では、１以上の動作は同時に行われる。幾つかの実施形態では、付加的な動作が行われることができる。
【００２６】
幾つかの実施形態では、フロップ間の差別化を行うことができる逐次的な深さ以外の特徴も使用されることができる。１つのこのような実施形態では、他の特徴の１以上が付加的な差別化要因として特徴ベクトルに付加される。
【００２７】
図３は本発明の１実施形態による一次入力Ａからデジタル回路の各状態素子までの逐次的な深さの決定を示すデジタル回路300の概略図である。特定の実施形態では、この一次入力からの逐次的な深さの決定は図１および２のプロセスのブロック102と202と関連して使用されることができる。
【００２８】
回路300は一次入力Ａ、一次入力Ｂ、一次出力Ｆ、一次出力Ｇ、状態素子i0、i1、i2、i3、i4、i5、i6、i7、i8、i9を含んでいる。一次入力Ａへの各状態素子の逐次的な深さ（例えば２つの点間の任意のパスに沿って遭遇される状態素子の最小のカウント）が決定され、図３の各状態素子ボックス上に表示される。例えばi0から一次入力Ａまでの最小の距離パスは１つの状態素子、即ちi0を横切るので、状態素子i0から一次入力Ａまでの逐次的な深さは“１”である。状態素子i1から一次入力Ａまでの逐次的な深さは到達ができないので“-”であり、または違った方法で述べられ、無限の距離にある。状態素子i9から一次入力Ａまでの逐次的な深さは、一次入力Ａへの最短パスが３つの状態素子即ちi9、i7およびi4またはi5を横切るので“３”である。他の状態素子からの逐次的な深さは類似の方法で決定される。
【００２９】
図３の回路は逐次的な深さプロセスによって使用されることができる１回路の１例である。他の実施形態では、逐次的な深さのプロセスは他の回路により使用されることができる。他の実施形態では、例えば逐次的な深さのプロセスは図３の回路よりも付加的なまたは少数の一次入力と出力及び状態素子を有する回路によって使用されることができる。
【００３０】
図４は本発明の１実施形態による一次出力Ｇからデジタル回路の各状態素子までの逐次的な深さの決定を示す図３のデジタル回路300の概略図である。一次出力Ｇまでの各状態素子の逐次的な深さが決定され、各状態素子ボックス上に併記されている。例えば状態素子i9から一次入力Ａまでの逐次的な深さは、i9から一次出力Ｇへの最小の距離パスが１つの状態素子、即ちi9を横切るので“１”である。状態素子i8から一次出力Ｇまでの逐次的な深さはi8から到達ができないので“-”である。状態素子i1から一次出力Ｇまでの逐次的な深さは、最短パスがi1、i2またはi3と、i6およびi9を横切るので“４”である。他の状態素子からの逐次的な深さは類似の方法で決定される。
【００３１】
図５は本発明の１実施形態による各一次入力と一次出力からデジタル回路300の各状態素子までの逐次的な深さからなる特徴ベクトルの決定を示す図３のデジタル回路300の概略図である。各状態素子における特徴ベクトルはＡ、Ｂ、Ｆ、Ｇのベクトル順序における一次入力及び出力までの逐次的な深さを示している。例えば各特徴ベクトルの第１の数字の逐次的な深さは一次入力Ａまでの逐次的な深さを図３に示されているものと同一の計算された数で示している。同様に、各特徴ベクトルの最後の数字の逐次的な深さは一次出力Ｇまでの逐次的な深さを図４に示されているものと同一の計算された数で示している。幾つかの実施形態では特徴ベクトルが決定されると、プロセスはこれらを特有の特徴ベクトルを有する状態素子を識別してマップするために使用することができる。
【００３２】
図６は本発明の１実施形態による同一の特徴ベクトル（i2、i3、i4、i5）を有する状態素子のグループ化と、特有の特徴ベクトル（i0、i1、i6、i7、i8、i9）を有する状態素子の識別とを示している図３のデジタル回路300の概略図である。
【００３３】
図７は本発明の１実施形態による図６の同一の特徴ベクトルを有する状態素子のグループ化と、特有の特徴ベクトルを有する状態素子の識別とを示している表である。この表では、共通の特徴ベクトルは共にグループ化され、グループ識別番号を割当てられている。表及び図６から認められるように、i2、i3およびi4、i5の特徴ベクトルは特有ではなく、残りの特徴ベクトルは特有である。通常、（例えば特有の逐次的な深さを有する）サイズ１のグループは回路間でマップされることができる。
【００３４】
ここで説明されている幾つかのプロセスによれば、特有であるとして識別される特徴ベクトルはその後の逐次的な深さの決定で使用されることができる。多くの実施形態では、反復的なプロセスはプロセスの連続的な反復が状態素子の新しい特有のマッピングを発生しなくなるまで特有のベクトルを有する新しい状態素子を識別するために先にマップされた状態素子からの逐次的な深さを決定し続ける。幾つかの実施形態では、図３乃至６のデジタル回路と図７の表は図１および２に示されている１以上のプロセスで使用される。
【００３５】
図８は本発明の１実施形態による設計ツールが変換を行った後の図３のデジタル回路に基づいたデジタル回路400の概略図であり、ここでは状態素子（ij）は最適化されており逐次的な深さにおける効果を示している。一次出力Ｆからの逐次的な深さは状態素子（ij）が最適化された後に各状態素子で示されている。
【００３６】
図９は本発明の１実施形態による図８に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示すための図７の表の再生図である。
【００３７】
図１０は本発明の１実施形態による図８に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示している表である。図９および１０の表から認められるように、図１０の一次出力Ｆに関する逐次的な深さ（特徴ベクトルの第３の数字）が図９の対応する状態素子のグループ化と比較して１を効率的に差し引いていることを除いて、特徴ベクトルはほぼ同じである。回路構成間の意図的または非意図的な合成差のために、設計を横切る対応する状態素子又はフロップは特徴ベクトルにおいてこのような小さな差を有する可能性がある。幾つかの実施形態では、ここで説明するプロセスはこれらの小さな差にもかかわらず状態素子をマップするための距離メトリックまたは距離アルゴリズムを使用できる。例えば１実施形態では、プロセスはユークリッド距離アルゴリズム、マンハッタン距離アルゴリズム、ハミング距離アルゴリズムまたは間に「些細な距離」を有するベクトルをグループ化するための別の適切な距離アルゴリズムを使用できる。
【００３８】
図１１は本発明の１実施形態による逐次的な深さのマッピングプロセスに関連されるマッピング性能における改良と、通常のマッピングツールとの比較を示すグラフである。各列では、グラフは逐次的な深さと通常のプロセスの両者がマップしたフロップ（例えば状態素子）の割合と、逐次的な深さのプロセスのみがマップされたフロップの割合と、通常のプロセスのみがマップされたフロップの割合と、逐次的な深さのマッチングプロセスも通常のマッピングツールもマップしないフロップの割合とを示している。３つの異なる回路設計の結果は各３つの列で示されている１つの回路設計により示されている。第１の回路設計はメモリアレイを形成しない約１０００のフロップを含んでいる。第２の設計は半分に満たないフロップがメモリアレイで使用されている約１０，０００のフロップを含んでいる。第３の設計は大部分のフロップがメモリアレイで使用されている約２７，０００フロップを含んでいる。１つの通常のプロセスに加えて逐次的な深さのプロセスを使用することにより、２４パーセントまでのより多くのフロップがマップされることができ、それによって包括的な等価検証のためのさらに良好なツールを与えることができる。
【００３９】
通常、メモリアレイの状態素子はアドレスビットのマッピングが知られていないときには名前を付けることが困難である可能性がある。幾つかのケースでは、機能ツールの使用が多数のメモリアレイを含む回路に非常によく適している。幾つかの実施形態では、逐次的な深さのマッピングプロセスはしかしながらメモリアレイコンポーネントでのネーミングプロセスを非常に補助することができる。幾つかのケースでは、逐次的な深さのマッピングプロセスは構造的及び機能的の両方法を含んだプロセスで使用されることができる。
【００４０】
前述の説明は本発明の多くの特定の実施形態を含んでいるが、これらは本発明の技術的範囲の限定として解釈されるべきではなく、その特別な実施形態の例として解釈されるべきである。したがって本発明の技術的範囲は示された実施形態ではなく請求項およびそれらの等価物によって決定されるべきである。
【図１】
0005502836.tif 000002
【図２】
0005502836.tif 000003
【図３】
0005502836.tif 000004
【図４】
0005502836.tif 000005
【図５】
0005502836.tif 000006
【図６】
0005502836.tif 000007
【図７】
0005502836.tif 000008
【図８】
0005502836.tif 000009
【図９】
0005502836.tif 000010
【図１０】
0005502836.tif 000011
【図１１】
0005502836.tif 000012