JP5502836B2 - 等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法 - Google Patents

等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法 Download PDF

Info

Publication number
JP5502836B2
JP5502836B2 JP2011257506A JP2011257506A JP5502836B2 JP 5502836 B2 JP5502836 B2 JP 5502836B2 JP 2011257506 A JP2011257506 A JP 2011257506A JP 2011257506 A JP2011257506 A JP 2011257506A JP 5502836 B2 JP5502836 B2 JP 5502836B2
Authority
JP
Japan
Prior art keywords
circuit
state
state element
sequential depth
mapping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011257506A
Other languages
English (en)
Other versions
JP2012164301A (ja
Inventor
マーク・ダブリュ.・レデコップ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Raytheon Co
Original Assignee
Raytheon Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Raytheon Co filed Critical Raytheon Co
Publication of JP2012164301A publication Critical patent/JP2012164301A/ja
Application granted granted Critical
Publication of JP5502836B2 publication Critical patent/JP5502836B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は等価検証に関し、特に等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法に関する。
本発明はDARPAにより授与された政府の契約番号HR0011-08-C-0005に関する。米国政府はこの発明においてある権利を有する。
集積回路設計に関連されるプロセスは通常、高いレベルの抽象から中間及び低いレベルの抽象までの幾つかの設計変換を含んでいる。各レベルで、任意の変換が機能的又は論理的に設計を変更しないことを証明するため等価検証が行われる。
通常の等価検証方法は、通常、等価として検証された構成間の状態素子のマッピングを必要とする。これらのマッピング方法は幾つかのカテゴリのうちの1つに入る。かなり共通であるネーミング方法は同様に名づけられた各設計中の対応する点をマップする。しかしながら、状態素子の名称はネーミング方法を使用して幾つかの設計ツールにより行われる設計変換期間中に変更されるか失われる可能性がある。さらに、ネーミング方法はリバースエンジニアリング型の応用にはほとんど使用できない。別の方法は状態素子のファンイン論理コーン(例えば二分決定グラフすなわちBDD)の正準表現を使用する関数方法である。しかしながら関数方法は情報が利用可能ではないときコーンの全ての入力がマップされることをしばしば必要とし、それによって円形の問題を生む。
別の方法は両者の設計レベルをシミュレートし、その後シミュレーションコンポーネントの選択を類似の値ベクトルを有する状態素子に一致するか狭めるシミュレーション方法である。シミュレーション方法はしかしながら意図的または意図的ではない変換が存在する場合、使用するのが困難である可能性がある。構造的方法と呼ばれる別の方法では、ネットリスト対ネットリスト型の比較が行われ、これは組合せコーン構造を検査する。幾つかの例では、これらの方法の組合せが使用される。しかしながら等価検証のための通常の方法の多く又は全ては幾つかの欠点を有する。したがって等価検証を行うための改良された方法が必要とされる。
米国特許第6,247,163 B1号明細書 米国特許第6,496,955 B1号明細書 米国特許第7,032,192 B2号明細書 米国特許第7,149,675 B2号明細書 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.)
本発明の特徴は等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法に関する。1実施形態では、本発明は第1の回路と第2の回路の間の等価検証のため状態素子をマッピングする方法に関し、この方法は(a)第1の回路と第2の回路の一次入力と一次出力から第1及び第2の回路の各状態素子までの第1の逐次的な深さを決定し、その第1の逐次的な深さは回路の2つの点間の任意のパスに沿った状態素子の最小のカウントであり、(b)特有の第1の逐次的な深さを有する第1の回路と第2の回路の第1の状態素子を識別し及びマッピングし、(c)第1の回路と第2の回路の識別された第1の状態素子から残りの状態素子までの第2の逐次的な深さを決定し、(d)特有の第2の逐次的な深さを有する第1の回路と第2の回路の第2の状態素子を識別し、(e)プロセスがもはや状態素子の新しい特有のマッピングを発生しない場合を除いて、(c)と(d)を反復するステップを含んでいる。
別の実施形態では、本発明は第1の回路と第2の回路との間の等価検証のため状態素子をマッピングする方法に関し、その方法は(a)第1の回路と第2の回路の一次入力と一次出力から第1及び第2の回路の各状態素子までの第1の逐次的な深さを決定し、第1の逐次的な深さは回路の2つの点間の任意のパスに沿った状態素子の最小のカウントであり、(b)各状態素子の第1の逐次的な深さに基づいて第1の回路と第2の回路の各状態素子の第1の特徴ベクトルを発生し、(c)特有の第1のベクトルを有する第1の回路と第2の回路の状態素子を識別し、第1および第2の回路の識別された状態素子の第1の特徴ベクトルがほぼ同一であるならば、第1の回路の識別された状態素子を第2の回路の識別された状態素子へマッピングし、(d)第1の回路と第2の回路の識別された第1の状態素子から残りの状態素子までの第2の逐次的な深さを決定し、(e)各識別された状態素子の第2の逐次的な深さに基づいて第1の回路と第2の回路の各識別された状態素子の第2の特徴ベクトルを発生し、(f)特有の第2のベクトルを有する第1の回路と第2の回路の状態素子を識別し、特有の第2のベクトルを有する第1及び第2の回路の識別された状態素子の第2の特徴ベクトルがほぼ同一であるならば、特有の第2のベクトルを有する第1の回路の識別された状態素子を特有の第2のベクトルを有する第2の回路の識別された状態素子へマッピングし、(g)マッピングプロセスの終了のためのしきい値状態が満足されたか否かを決定するステップを含んでいる。
本発明の1実施形態による第1の回路と第2の回路間の等価検証のために状態素子をマッピングするプロセスのフローチャートである。 本発明の1実施形態による第1の回路と第2の回路間の等価検証のために状態素子をマッピングする別のプロセスのフローチャートである。 本発明の1実施形態による一次入力からデジタル回路の各状態素子までの逐次的な深さの決定を示すデジタル回路の概略図である。 本発明の1実施形態による一次出力からデジタル回路の各状態素子までの逐次的な深さの決定を示す図3のデジタル回路の概略図である。 本発明の1実施形態による各一次入力と一次出力からデジタル回路の各状態素子までの逐次的な深さからなる特徴ベクトルの決定を示す図3のデジタル回路の概略図である。 本発明の1実施形態による特有の特徴ベクトルを有する状態素子のグループ化と、特有の特徴ベクトルを有する状態素子の識別とを示している図3のデジタル回路の概略図である。 本発明の1実施形態による図6の同一の特徴ベクトルを有する状態素子のグループ化と、特有の特徴ベクトルを有する状態素子の識別とを示している表である。 本発明の1実施形態による設計ツールが変換を行った後の図3のデジタル回路の概略図であり、ここでは状態素子は最適化され、逐次的な深さにおける効果を示している。 本発明の1実施形態による図8に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示すための図7の表の再生図である。 本発明の1実施形態による図8に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示す表である。 本発明の1実施形態による逐次的な深さのマッピングプロセスに関連されるマッピング性能における改良と、通常のマッピングツールとの比較を示すグラフである。
図面を参照すると、第1の回路と第2の回路との間の等価検証のために状態素子をマッピングするためのシステム及び方法の実施形態が示されている。これらの方法は一次入力と出力から各回路の各状態素子までの逐次的な深さの決定を含むことができ、逐次的な深さは回路の2つの点間の可能なパスに沿って遭遇された状態素子の最小のカウントである。この方法はまた一次入力と出力から特有の逐次的な深さを有する第1の回路及び第2の回路の状態素子を識別及びマッピングするステップを含んでいる。幾つかの実施形態では、この方法は第1の回路の特有に識別された状態素子を第2の回路の対応する特有に識別された状態素子へマップする。方法はその後、第1の回路と第2の回路の識別された第1の状態素子から残りの状態素子までの第2の逐次的な深さを決定し、特有の第2の逐次的な深さを有する第1の回路と第2の回路の第2の状態素子を識別してマッピングするステップも含むことができる。幾つかの実施形態では、前述の動作は方法がもはや状態素子の新しい特有のマッピングを発生しなくなるまで反復される。
幾つかの実施形態では、逐次的な深さの方法は等価検証のための改良された性能を与え、最適の性能の他の等価検証と共に使用されることができる。1実施形態では、逐次的な深さの方法は通常の等価検証ツールの開始点として使用されることができる。このような場合、逐次的な深さの方法は通常の等価検証ツールの性能を非常に改良できる。幾つかの実施形態では、ここで説明する逐次的な深さの方法は機能ツール、シミュレーションツール、ネーミングツール又は他の適切な検証ツールのような通常の等価検証ツールの1つと共に使用される。
図1は本発明の1実施形態による第1の回路と第2の回路との間の等価検証のために状態素子をマッピングするプロセスのフローチャートである。ブロック102では、プロセスは最初に第1の回路と第2の回路の一次入力と一次出力から第1及び第2の回路の各状態素子までの第1の逐次的な深さを決定し、それにおいて第1の逐次的な深さは回路の2つの点間の任意のパスに沿った状態素子の最小のカウントである。幾つかの実施形態では、第1の逐次的な深さは一次入力又は出力のうちの1つと任意のパスに沿った特定の状態素子との間で遭遇される最少数の状態素子のカウントである。多数の実施形態では、プロセスは第1の回路の各状態素子から第1の回路の各一次入力及び一次出力までの第1の逐次的な深さを決定し、第2の回路の各状態素子から第2の回路の一次入力及び一次出力までの第1の逐次的な深さを決定する。
ブロック104で、プロセスは特有の第1の逐次的な深さを有する第1の回路と第2の回路の第1の状態素子を識別する。幾つかの実施形態では、プロセスは同一ではないまたは特有の第1の状態素子を識別するためにほぼ同一の第1の逐次的な深さを有する第1の状態素子をグループ化する。特有の逐次的な深さのカウントまたはシグネチャは第1と第2の回路間の状態素子をマップする機会を与える。1実施形態では、第1の状態素子の識別においてプロセスはほぼ同じ第1の逐次的な深さを有する第1の回路の状態素子をグループ化し、1つのグループカウントを有する第1の回路の第1の状態素子を選択し、ほぼ同じ第1の逐次的な深さを有する第2の回路の状態素子をグループ化し、1つのグループカウントを有する第2の回路の第1の状態素子を選択する。1つのグループカウントは特有の逐次的な深さを有する状態素子に対応できる。
ブロック106で、プロセスは第1の回路及び第2の回路の識別された第1の状態素子から残りの状態素子までの第2の逐次的な深さを決定する。幾つかの実施形態では、残りの状態素子は先に識別されておらず特有の逐次的な深さをマップされていない状態素子である。幾つかの実施形態では、第2の逐次的な深さは識別された第1の状態素子のうちの1つと特定の状態素子の間の状態素子のカウントである。1実施形態では、第2の逐次的な深さの決定においてプロセスは第1の回路の各識別された第1の状態素子から第1の回路の各状態素子までの第2の逐次的な深さを決定し、第2の回路の各識別された第1の状態素子から第2の回路の各状態素子までの第2の逐次的な深さを決定する。
ブロック108で、プロセスは特有の第2の逐次的な深さを有する第1の回路と第2の回路の第2の状態素子を識別し、これらを他の回路の対応するコンポーネントへマップする。幾つかの実施形態では、プロセスは同一ではないか特有の第2の状態素子を識別するためほぼ同一の第1の逐次的な深さを有する第2の状態素子をグループ化する。1実施形態では、第2の状態素子の識別においてプロセスはほぼ同じ第2の逐次的な深さを有する第1の回路の状態素子をグループ化し、1のグループカウントを有する第1の回路の第2の状態素子を選択し、ほぼ同じ第2の逐次的な深さを有する第2の回路の状態素子をグループ化し、1のグループカウントを有する第2の回路の第2の状態素子を選択する。選択されたグループは第1と第2の回路間の状態素子をマップする機会を与える。
ブロック110で、プロセスはそのプロセスが状態素子の新しいマッピングを発生しているか否かを決定する。ノーであるならばプロセスは終了する。イエスであるならば、プロセスはブロック106へ戻り、ブロック110の条件が満たされるまでブロック106と108の動作を繰返し反復する。1実施形態では、プロセスはブロック106と108の連続的な反復が状態素子の新しい特有のマッピングを発生しなくなるまでブロック106と108の動作を反復する。
1実施形態では、プロセスは異なる順序で動作のシーケンスを実行できる。別の実施形態ではプロセスは動作の1以上を省略できる。他の実施形態では、動作の1以上は同時に行われる。幾つかの実施形態では、付加的な動作が行われることができる。
図2は本発明の1実施形態による第1の回路と第2の回路との間の等価検証のために状態素子をマッピングする別のプロセス200のフローチャートである。ブロック202で、プロセスは最初に第1の回路及び第2の回路の一次入力および一次出力から第1及び第2の回路の各状態素子までの第1の逐次的な深さを決定し、ここで第1の逐次的な深さは回路の2つの点間の任意のパスに沿った状態素子の最小のカウントである。幾つかの実施形態では、第1の逐次的な深さは一次入力または一次出力のうちの1つと任意のパスに沿った特定の状態素子との間で遭遇された最少数の状態素子のカウントである。1実施形態では、第1の逐次的な深さの決定において、プロセスは第1の回路の各一次入力及び一次出力のそれぞれから第1の回路の各状態素子までの第1の逐次的な深さを決定し、第2の回路の一次入力及び一次出力から第2の回路の各状態素子までの第1の逐次的な深さを決定する。
ブロック204で、プロセスは各状態素子に対する第1の逐次的な深さに基づいて第1の回路と第2の回路の各状態素子の第1の特徴ベクトルを発生する。幾つかの実施形態では特徴ベクトルは各一次入力と各一次出力からそれぞれの状態素子までの逐次的な深さの測定からなる。
ブロック206で、プロセスは特有の第1のベクトルを有する第1の回路と第2の回路の第1の状態素子を識別し、第1及び第2の回路の識別された状態素子の第1の特徴ベクトルがほぼ同じであるならば、第1の回路の識別された状態素子を第2の回路の識別された状態素子へマップする。幾つかの実施形態では、プロセスは同一ではないか特有の第1のベクトルを識別するためほぼ同一の逐次的な深さのベクトルを有する第1のベクトルをグループ化する。1実施形態では、第1の状態素子の識別においてプロセスはほぼ同じ第1のベクトルを有する第1の回路の状態素子をグループ化し、1つのグループカウントを有する第1の回路の第1の状態素子を選択し、ほぼ同じ第1のベクトルを有する第2の回路の状態素子をグループ化し、1つのグループカウントを有する第2の回路の第1の状態素子を選択する。1つのグループカウントは特有の逐次的な深さを有する状態素子に対応できる。
1実施形態では、特徴ベクトルが1デジット異なるとき別の特徴ベクトルとほぼ同一である。別の実施形態では、特徴ベクトルが予め定められた割合異なるとき別の特徴ベクトルにほぼ同一である。別の実施形態では、1つの特徴ベクトルは特徴ベクトルが予め選択された距離アルゴリズムにより許容可能に思われる予め選択されたしきい値だけ異なるとき別の特徴ベクトルにほぼ同一である。些細な差にかかわらず状態素子をマッピングするための距離メトリックまたは距離アルゴリズムを以下さらに詳細に説明する。
ブロック208で、プロセスは第1の回路及び第2の回路の識別された第1の状態素子から残りの状態素子までの第2の逐次的な深さを決定する。幾つかの実施形態では、残りの状態素子は特有の第1の逐次的な深さと同じであると先に識別されていない状態素子である。1実施形態では、第2の逐次的な深さの決定において、プロセスは第1の回路の識別された各状態素子から第1の回路の各状態素子までの第2の逐次的な深さを決定し、第2の回路の各識別された各状態素子から第2の回路の各状態素子までの第2の逐次的な深さを決定する。
ブロック210で、プロセスは各状態素子の第2の逐次的な深さに基づいて第1の回路及び第2の回路の各識別された状態素子の第2の特徴ベクトルを生成する。幾つかの実施形態では、各第2の特徴ベクトルは識別された状態素子からそれぞれの状態素子までの逐次的な深さの測定からなる。
ブロック212で、プロセスは特有の第2のベクトルを有する第1の回路と第2の回路の第2の状態素子を識別し、特有の第2のベクトルを有する第1及び第2の回路の識別された状態素子の第2の特徴ベクトルがほぼ同一であるならば、特有の第2のベクトルを有する第1の回路の識別された状態素子を特有の第2のベクトルを有する第2の回路の識別された状態素子へマップする。幾つかの実施形態では、プロセスは同一ではないか特有の第2のベクトルを識別するためにほぼ同一の逐次的な深さを有する第2のベクトルをグループ化する。1実施形態では、第2の状態素子の識別において、プロセスはほぼ同じ第2のベクトルを有する第1の回路の状態素子をグループ化し、1つのグループカウントを有する第1の回路の第2の状態素子を選択し、ほぼ同じ第2のベクトルを有する第2の回路の状態素子をグループ化し、1つのグループカウントを有する第2の回路の第2の状態素子を選択する。
ブロック216で、プロセスはそのプロセスが状態素子の新しいマッピングを発生しているか否かを決定する。ノーであるならばプロセスは終了する。イエスであるならば、プロセスはブロック208へ戻り、ブロック216の条件が満たされるまでブロック208から214の動作を繰返し反復する。幾つかの実施形態では、ブロック208から214の動作の連続的な反復が状態素子の任意の新しい特有のマッピングを発生しなくなるときブロック216の条件は満たされる。
1実施形態では、プロセスは異なる順序で動作のシーケンスを実行できる。別の実施形態ではプロセスは1以上の動作を省略できる。他の実施形態では、1以上の動作は同時に行われる。幾つかの実施形態では、付加的な動作が行われることができる。
幾つかの実施形態では、フロップ間の差別化を行うことができる逐次的な深さ以外の特徴も使用されることができる。1つのこのような実施形態では、他の特徴の1以上が付加的な差別化要因として特徴ベクトルに付加される。
図3は本発明の1実施形態による一次入力Aからデジタル回路の各状態素子までの逐次的な深さの決定を示すデジタル回路300の概略図である。特定の実施形態では、この一次入力からの逐次的な深さの決定は図1および2のプロセスのブロック102と202と関連して使用されることができる。
回路300は一次入力A、一次入力B、一次出力F、一次出力G、状態素子i0、i1、i2、i3、i4、i5、i6、i7、i8、i9を含んでいる。一次入力Aへの各状態素子の逐次的な深さ(例えば2つの点間の任意のパスに沿って遭遇される状態素子の最小のカウント)が決定され、図3の各状態素子ボックス上に表示される。例えばi0から一次入力Aまでの最小の距離パスは1つの状態素子、即ちi0を横切るので、状態素子i0から一次入力Aまでの逐次的な深さは“1”である。状態素子i1から一次入力Aまでの逐次的な深さは到達ができないので“-”であり、または違った方法で述べられ、無限の距離にある。状態素子i9から一次入力Aまでの逐次的な深さは、一次入力Aへの最短パスが3つの状態素子即ちi9、i7およびi4またはi5を横切るので“3”である。他の状態素子からの逐次的な深さは類似の方法で決定される。
図3の回路は逐次的な深さプロセスによって使用されることができる1回路の1例である。他の実施形態では、逐次的な深さのプロセスは他の回路により使用されることができる。他の実施形態では、例えば逐次的な深さのプロセスは図3の回路よりも付加的なまたは少数の一次入力と出力及び状態素子を有する回路によって使用されることができる。
図4は本発明の1実施形態による一次出力Gからデジタル回路の各状態素子までの逐次的な深さの決定を示す図3のデジタル回路300の概略図である。一次出力Gまでの各状態素子の逐次的な深さが決定され、各状態素子ボックス上に併記されている。例えば状態素子i9から一次入力Aまでの逐次的な深さは、i9から一次出力Gへの最小の距離パスが1つの状態素子、即ちi9を横切るので“1”である。状態素子i8から一次出力Gまでの逐次的な深さはi8から到達ができないので“-”である。状態素子i1から一次出力Gまでの逐次的な深さは、最短パスがi1、i2またはi3と、i6およびi9を横切るので“4”である。他の状態素子からの逐次的な深さは類似の方法で決定される。
図5は本発明の1実施形態による各一次入力と一次出力からデジタル回路300の各状態素子までの逐次的な深さからなる特徴ベクトルの決定を示す図3のデジタル回路300の概略図である。各状態素子における特徴ベクトルはA、B、F、Gのベクトル順序における一次入力及び出力までの逐次的な深さを示している。例えば各特徴ベクトルの第1の数字の逐次的な深さは一次入力Aまでの逐次的な深さを図3に示されているものと同一の計算された数で示している。同様に、各特徴ベクトルの最後の数字の逐次的な深さは一次出力Gまでの逐次的な深さを図4に示されているものと同一の計算された数で示している。幾つかの実施形態では特徴ベクトルが決定されると、プロセスはこれらを特有の特徴ベクトルを有する状態素子を識別してマップするために使用することができる。
図6は本発明の1実施形態による同一の特徴ベクトル(i2、i3、i4、i5)を有する状態素子のグループ化と、特有の特徴ベクトル(i0、i1、i6、i7、i8、i9)を有する状態素子の識別とを示している図3のデジタル回路300の概略図である。
図7は本発明の1実施形態による図6の同一の特徴ベクトルを有する状態素子のグループ化と、特有の特徴ベクトルを有する状態素子の識別とを示している表である。この表では、共通の特徴ベクトルは共にグループ化され、グループ識別番号を割当てられている。表及び図6から認められるように、i2、i3およびi4、i5の特徴ベクトルは特有ではなく、残りの特徴ベクトルは特有である。通常、(例えば特有の逐次的な深さを有する)サイズ1のグループは回路間でマップされることができる。
ここで説明されている幾つかのプロセスによれば、特有であるとして識別される特徴ベクトルはその後の逐次的な深さの決定で使用されることができる。多くの実施形態では、反復的なプロセスはプロセスの連続的な反復が状態素子の新しい特有のマッピングを発生しなくなるまで特有のベクトルを有する新しい状態素子を識別するために先にマップされた状態素子からの逐次的な深さを決定し続ける。幾つかの実施形態では、図3乃至6のデジタル回路と図7の表は図1および2に示されている1以上のプロセスで使用される。
図8は本発明の1実施形態による設計ツールが変換を行った後の図3のデジタル回路に基づいたデジタル回路400の概略図であり、ここでは状態素子(ij)は最適化されており逐次的な深さにおける効果を示している。一次出力Fからの逐次的な深さは状態素子(ij)が最適化された後に各状態素子で示されている。
図9は本発明の1実施形態による図8に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示すための図7の表の再生図である。
図10は本発明の1実施形態による図8に示されている状態素子の除去により生じるそれぞれの特徴ベクトルの小さな差を示している表である。図9および10の表から認められるように、図10の一次出力Fに関する逐次的な深さ(特徴ベクトルの第3の数字)が図9の対応する状態素子のグループ化と比較して1を効率的に差し引いていることを除いて、特徴ベクトルはほぼ同じである。回路構成間の意図的または非意図的な合成差のために、設計を横切る対応する状態素子又はフロップは特徴ベクトルにおいてこのような小さな差を有する可能性がある。幾つかの実施形態では、ここで説明するプロセスはこれらの小さな差にもかかわらず状態素子をマップするための距離メトリックまたは距離アルゴリズムを使用できる。例えば1実施形態では、プロセスはユークリッド距離アルゴリズム、マンハッタン距離アルゴリズム、ハミング距離アルゴリズムまたは間に「些細な距離」を有するベクトルをグループ化するための別の適切な距離アルゴリズムを使用できる。
図11は本発明の1実施形態による逐次的な深さのマッピングプロセスに関連されるマッピング性能における改良と、通常のマッピングツールとの比較を示すグラフである。各列では、グラフは逐次的な深さと通常のプロセスの両者がマップしたフロップ(例えば状態素子)の割合と、逐次的な深さのプロセスのみがマップされたフロップの割合と、通常のプロセスのみがマップされたフロップの割合と、逐次的な深さのマッチングプロセスも通常のマッピングツールもマップしないフロップの割合とを示している。3つの異なる回路設計の結果は各3つの列で示されている1つの回路設計により示されている。第1の回路設計はメモリアレイを形成しない約1000のフロップを含んでいる。第2の設計は半分に満たないフロップがメモリアレイで使用されている約10,000のフロップを含んでいる。第3の設計は大部分のフロップがメモリアレイで使用されている約27,000フロップを含んでいる。1つの通常のプロセスに加えて逐次的な深さのプロセスを使用することにより、24パーセントまでのより多くのフロップがマップされることができ、それによって包括的な等価検証のためのさらに良好なツールを与えることができる。
通常、メモリアレイの状態素子はアドレスビットのマッピングが知られていないときには名前を付けることが困難である可能性がある。幾つかのケースでは、機能ツールの使用が多数のメモリアレイを含む回路に非常によく適している。幾つかの実施形態では、逐次的な深さのマッピングプロセスはしかしながらメモリアレイコンポーネントでのネーミングプロセスを非常に補助することができる。幾つかのケースでは、逐次的な深さのマッピングプロセスは構造的及び機能的の両方法を含んだプロセスで使用されることができる。
前述の説明は本発明の多くの特定の実施形態を含んでいるが、これらは本発明の技術的範囲の限定として解釈されるべきではなく、その特別な実施形態の例として解釈されるべきである。したがって本発明の技術的範囲は示された実施形態ではなく請求項およびそれらの等価物によって決定されるべきである。

Claims (19)

  1. コンピュータにより第1の回路と第2の回路との間の等価検証のために状態素子をマッピングする方法において、前記方法は、
    (a)前記第1の回路と前記第2の回路の一次入力と一次出力から前記第1及び前記第2の回路の各状態素子までの第1の逐次的な深さを決定し、それにおいて前記第1の逐次的な深さは回路の2つの点間の任意のパスに沿った状態素子の最小のカウントであり、 (b)特有の第1の逐次的な深さを有する前記第1の回路と前記第2の回路の第1の状態素子を識別してマッピングし、
    (c)前記第1の回路と前記第2の回路の前記識別された第1の状態素子から前記残りの状態素子までの第2の逐次的な深さを決定し、
    (d)特有の第2の逐次的な深さを有する前記第1の回路と前記第2の回路の第2の状態素子を識別してマッピングし、
    (e)前記方法がもはや状態素子の新しい特有のマッピングを発生しない場合を除いて、前記(c)と(d)のステップを反復するステップを含んでいる方法。
  2. 前記第1の回路と前記第2の回路の一次入力と一次出力から前記状態素子までの前記第1の逐次的な深さの決定は、
    前記第1の回路の各前記一次入力と一次出力から前記第1の回路の各前記状態素子までの前記第1の逐次的な深さを決定し、
    前記一次入力と一次出力から前記第2の回路の各前記状態素子までの前記第1の逐次的な深さを決定するステップを含んでいる請求項1記載の方法。
  3. 前記特有の第1の逐次的な深さを有する前記第1の回路と前記第2の回路の前記第1の状態素子を識別してマッピングするステップは、
    同一の第1の逐次的な深さを有する前記第1の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第1の回路の前記第1の状態素子を選択し、
    同一の第1の逐次的な深さを有する前記第2の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第2の回路の前記第1の状態素子を選択し、
    前記第1の回路と第2の回路の前記選択された第1の状態素子がほぼ同じ第1の逐次的な深さを有するならば、前記第1の回路の前記選択された第1の状態素子を前記第2の回路の前記選択された第1の状態素子へマッピングするステップを含んでいる請求項1記載の方法。
  4. 前記第1の回路と前記第2の回路の前記識別された第1の状態素子から前記残りの状態素子までの前記第2の逐次的な深さの決定は、
    前記第1の回路の前記識別された各第1の状態素子から前記第1の回路の前記残りの各状態素子までの前記第2の逐次的な深さを決定し、
    前記第2の回路の前記識別された各第1の状態素子から前記第2の回路の前記残りの各状態素子までの前記第2の逐次的な深さを決定するステップを含んでいる請求項1記載の方法。
  5. 前記特有の第2の逐次的な深さを有する前記第1の回路と前記第2の回路の第2の状態素子の識別及びマッピングは、
    同一の第2の逐次的な深さを有する前記第1の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第1の回路の前記第2の状態素子を選択し、
    同一の第2の逐次的な深さを有する前記第2の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第2の回路の前記第2の状態素子を選択し、
    前記第1の回路と第2の回路の前記選択された第2の状態素子がほぼ同じ第2の逐次的な深さを有するならば、前記第1の回路の前記選択された第2の状態素子を前記第2の回路の前記選択された第2の状態素子へマッピングするステップを含んでいる請求項1記載の方法。
  6. 前記方法がもはや状態素子の新しい特有のマッピングを発生しない場合を除いた(c)と(d)の前記反復は、(c)と(d)の連続的な反復が状態素子の新しい特有のマッピングを発生しないことを含んでいる請求項1記載の方法。
  7. 前記第1の回路と前記第2の回路の一次入力と一次出力から前記状態素子までの前記第1の逐次的な深さの決定は、
    前記第1の回路の各前記一次入力と一次出力から前記第1の回路の各前記状態素子までの前記第1の逐次的な深さを決定し、
    前記一次入力と一次出力から前記第2の回路の各前記状態素子までの前記第1の逐次的な深さを決定するステップを含んでおり、
    前記特有の第1の逐次的な深さを有する前記第1の回路と前記第2の回路の前記第1の状態素子の識別及びマッピングは、
    同一の第1の逐次的な深さを有する前記第1の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第1の回路の前記第1の状態素子を選択し、同一の第1の逐次的な深さを有する前記第2の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第2の回路の前記第1の状態素子を選択し、前記第1の回路と第2の回路の前記選択された第1の状態素子がほぼ同じ第1の逐次的な深さを有するならば、前記第1の回路の前記選択された第1の状態素子を前記第2の回路の前記選択された第1の状態素子へマッピングするステップを含んでいる請求項1記載の方法。
  8. 前記第1の回路と前記第2の回路の前記識別された第1の状態素子から前記残りの状態素子までの前記第2の逐次的な深さの決定は、
    前記第1の回路の前記識別された各第1の状態素子から前記第1の回路の前記残りの各状態素子までの前記第2の逐次的な深さを決定し、
    前記第2の回路の前記識別された各第1の状態素子から前記第2の回路の前記残りの各状態素子までの前記第2の逐次的な深さを決定するステップを含んでおり、
    前記特有の第2の逐次的な深さを有する前記第1の回路と前記第2の回路の第2の状態素子の識別及びマッピングは、
    同一の第2の逐次的な深さを有する前記第1の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第1の回路の前記第2の状態素子を選択し、同一の第2の逐次的な深さを有する前記第2の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第2の回路の前記第2の状態素子を選択し、前記第1の回路と第2の回路の前記選択された第2の状態素子がほぼ同じ第2の逐次的な深さを有するならば、前記第1の回路の前記選択された第2の状態素子を前記第2の回路の前記選択された第2の状態素子へマッピングするステップを含んでおり、
    前記方法がもはや状態素子の新しい特有のマッピングを発生しない場合を除いて、(c)と(d)の前記反復は、(c)と(d)の連続的な反復が状態素子の新しい特有のマッピングを発生しない請求項7記載の方法。
  9. コンピュータにより第1の回路と第2の回路との間の等価検証のため状態素子をマッピングする方法において、前記方法は、
    (a)前記第1の回路と前記第2の回路の一次入力と一次出力から前記第1及び第2の回路の各状態素子までの第1の逐次的な深さを決定し、前記第1の逐次的な深さは回路の2つの点間の任意のパスに沿った状態素子の最小のカウントであり、
    (b)前記各状態素子の前記第1の逐次的な深さに基づいて前記第1の回路と前記第2の回路の各状態素子の第1の特徴ベクトルを発生し、
    (c)特有の第1のベクトルを有する前記第1の回路と前記第2の回路の状態素子を識別し、前記第1および第2の回路の前記識別された状態素子の前記第1の特徴ベクトルがほぼ同一であるならば、前記第1の回路の前記識別された状態素子を前記第2の回路の前期識別された状態素子へマッピングし、
    (d)前記第1の回路と前記第2の回路の前記識別された第1の状態素子から前記残りの状態素子までの第2の逐次的な深さを決定し、
    (e)前記識別された各状態素子の前記第2の逐次的な深さに基づいて前記第1の回路と前記第2の回路の識別された各状態素子の第2の特徴ベクトルを発生し、
    (f)特有の第2のベクトルを有する前記第1の回路と前記第2の回路の状態素子を識別し、特有の第2のベクトルを有する前記第1及び第2の回路の前記識別された状態素子の前記第2の特徴ベクトルがほぼ同一であるならば、特有の第2のベクトルを有する前記第1の回路の前記識別された状態素子を特有の第2のベクトルを有する前記第2の回路の前記識別された状態素子へマッピングし、
    (g)前記マッピング方法の終了のためのしきい値条件が満足されたか否かを決定するステップを含んでいる方法。
  10. 前記マッピング方法の終了のためのしきい値条件が満足されたか否かの決定は、 前記マッピングプロセスの終了のための前記しきい値条件が満足されるまで(d)-(f)を反復するステップを含んでいる請求項9記載の方法。
  11. 前記マッピング方法の終了のための前記しきい値条件が満足されるまで前記(d)-(f)を反復するステップは、
    (d)-(f)の連続的な反復が状態素子の新しい特有のマッピングを発生しない請求項10記載の方法。
  12. 前記第1の回路と前記第2の回路の一次入力と一次出力の前記第1の逐次的な深さの決定は、
    前記第1の回路の各前記一次入力と一次出力から前記第1の回路の各前記状態素子までの前記第1の逐次的な深さを決定し、
    前記第2の回路の前記一次入力と一次出力から前記第2の回路の各前記状態素子までの前記第1の逐次的な深さを決定するステップを含んでいる請求項9記載の方法。
  13. 前記特有の第1のベクトルを有する前記第1の回路と前記第2の回路の前記状態素子の識別及び識別された状態素子のマッピングは、
    ほぼ同一の第1のベクトルを有する前記第1の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第1の回路の前記第1の状態素子を選択し、
    同一の第1のベクトルを有する前記第2の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第2の回路の前記第1の状態素子を選択し、
    前記第1の回路と第2の回路の前記選択された状態素子の前記第1のベクトルがほぼ同じであるならば、前記第1の回路の前記選択された状態素子を前記第2の回路の前記選択された状態素子へマッピングするステップを含んでいる請求項9記載の方法。
  14. 前記第1および第2の回路の前記選択された状態素子の前記第1の特徴ベクトルがほぼ同じであるならば、前記第1の回路の前記選択された状態素子を前記第2の回路の前記選択された状態素子へマッピングするステップは、前記第1の回路の第2のベクトルと前記第2の回路の第2のベクトルとの僅かな差を解くための距離アルゴリズムを使用することを含んでいる請求項13記載の方法。
  15. 前記距離アルゴリズムはユークリッド距離アルゴリズム、マンハッタン距離アルゴリズム、ハミング距離アルゴリズムからなるグループから選択されたアルゴリズムを含んでいる請求項14記載の方法。
  16. 前記残りの状態素子への前記第1の回路と前記第2の回路の前記識別された第1の状態素子の前記第2の逐次的な深さの決定は、
    前記第1の回路の前記識別された各状態素子から前記第1の回路の前記残りの各状態素子までの前記第2の逐次的な深さを決定し、
    前記第2の回路の前記識別された各状態素子から前記第2の回路の前記残りの各状態素子までの前記第2の逐次的な深さを決定するステップを含んでいる請求項9記載の方法。
  17. 前記特有の第2のベクトルを有する前記第1の回路と前記第2の回路の状態素子の前記識別および識別された状態素子のマッピングは、
    ほぼ同一の第2のベクトルを有する前記第1の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第1の回路の前記状態素子を選択し、
    ほぼ同一の第2のベクトルを有する前記第2の回路の状態素子をグループ化し、
    1つのグループカウントを有する前記第2の回路の前記状態素子を選択し、
    特有の第2のベクトルを有する前記第1及び第2の回路の前記選択された状態素子の前記第2の特徴ベクトルがほぼ同じであるならば、特有の第2のベクトルを有する前記第1の回路の前記選択された状態素子を特有の第2のベクトルを有する前記第2の回路の前記選択された状態素子へマッピングするステップを含んでいる請求項9記載の方法。
  18. 特有の第2のベクトルを有する前記第1及び第2の回路の前記選択された状態素子の前記第2の特徴ベクトルがほぼ同じであるならば、特有の第2のベクトルを有する前記第1の回路の前記選択された状態素子を特有の第2のベクトルを有する前記第2の回路の前記選択された状態素子へマッピングするステップは、前記第1の回路の第2のベクトルと前期第2の回路の第2のベクトルとの僅かな差を解くための距離アルゴリズムを使用することを含んでいる請求項17記載の方法。
  19. 前記距離アルゴリズムはユークリッド距離アルゴリズム、マンハッタン距離アルゴリズム、ハミング距離アルゴリズムからなるグループから選択されたアルゴリズムを含んでいる請求項18記載の方法。
JP2011257506A 2011-01-27 2011-11-25 等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法 Active JP5502836B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/015,504 US8407639B2 (en) 2011-01-27 2011-01-27 Systems and methods for mapping state elements of digital circuits for equivalence verification
US13/015,504 2011-01-27

Publications (2)

Publication Number Publication Date
JP2012164301A JP2012164301A (ja) 2012-08-30
JP5502836B2 true JP5502836B2 (ja) 2014-05-28

Family

ID=45094474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011257506A Active JP5502836B2 (ja) 2011-01-27 2011-11-25 等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法

Country Status (4)

Country Link
US (1) US8407639B2 (ja)
EP (1) EP2482214A1 (ja)
JP (1) JP5502836B2 (ja)
KR (1) KR101331270B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540469B2 (en) 2017-12-18 2020-01-21 International Business Machines Corporation Verifying sequential equivalence for randomly initialized designs

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0727535B2 (ja) * 1986-03-19 1995-03-29 富士通株式会社 回路の照合方法
JPH04109367A (ja) * 1990-08-29 1992-04-10 Nec Corp 電子回路接続検証装置
US6453246B1 (en) * 1996-11-04 2002-09-17 3-Dimensional Pharmaceuticals, Inc. System, method, and computer program product for representing proximity data in a multi-dimensional space
JP2917969B2 (ja) * 1997-06-06 1999-07-12 日本電気株式会社 論理等価性検証方法および論理等価性検証装置
JP2000113016A (ja) * 1998-10-05 2000-04-21 Nec Corp 論理等価性検証方法
US6247163B1 (en) 1998-10-13 2001-06-12 Cadence Design Systems, Inc. Method and system of latch mapping for combinational equivalence checking
US6496955B1 (en) 2000-06-16 2002-12-17 Sun Microsystems, Inc. Latch mapper
JP2002149737A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd 二つの論理回路間のフリップフロップの対応づけ方法
US7149675B2 (en) * 2001-03-09 2006-12-12 Intel Corporation System and method for automatically mapping state elements for equivalence verification
JP2003058597A (ja) 2001-08-10 2003-02-28 Mitsubishi Electric Corp 論理等価性検証装置及び論理等価性検証方法
US7032192B2 (en) 2003-05-22 2006-04-18 Fujitsu Limited Performing latch mapping of sequential circuits
US20070011648A1 (en) * 2004-10-06 2007-01-11 Abrams Daniel S Fast systems and methods for calculating electromagnetic fields near photomasks
US7376919B1 (en) * 2005-05-04 2008-05-20 Synplicity, Inc. Methods and apparatuses for automated circuit optimization and verification

Also Published As

Publication number Publication date
EP2482214A1 (en) 2012-08-01
KR101331270B1 (ko) 2013-11-20
US8407639B2 (en) 2013-03-26
KR20120087071A (ko) 2012-08-06
US20120198402A1 (en) 2012-08-02
JP2012164301A (ja) 2012-08-30

Similar Documents

Publication Publication Date Title
Cohen et al. Some tapas of computer algebra
Chang et al. Diagnosabilities of regular networks
Mahzoon et al. Towards formal verification of optimized and industrial multipliers
WO2022077645A1 (zh) 一种用于等价性验证的cnf生成方法及系统
JP2005531031A5 (ja)
JP2017505047A (ja) ランダムなデジタル値を生成する装置及び方法
Farahmandi et al. Automated debugging of arithmetic circuits using incremental gröbner basis reduction
CN104393878A (zh) 用于纠正在编码比特序列中的至少单比特错误的设备和方法
JP6331756B2 (ja) テストケース生成プログラム、テストケース生成方法、及びテストケース生成装置
JP4165712B2 (ja) データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
JP5502836B2 (ja) 等価検証のためのデジタル回路の状態素子をマッピングするためのシステム及び方法
CN105933386B (zh) 一种存储系统构建方法及装置
Ésik Scattered context-free linear orderings
CN108958702B (zh) 一种排序网络、排序方法及排序装置
US20040128632A1 (en) Netlist redundancy detection and global simplification
JP3205276U (ja) 一様独立乱数の乗算合同法高精度生成方法
Morgan Pairs of chromatically equivalent graphs
Green et al. A fast algorithm for incremental betweenness centrality
Nazam et al. On fixed point theorems in dualistic partial metric spaces
Gharehbaghi et al. Efficient signature-based sub-circuit matching
WO2013115261A1 (ja) データクレンジングシステムとデータクレンジング方法およびプログラム
Liu et al. Dynamic reconfiguration of complete binary trees in faulty locally twisted cubes
Chawla et al. Composition of nested embeddings with an application to outlier removal
Alavi et al. Fault localization and full error correction in Radix2 signed digit-based adders
Luque et al. Parallel gas in bioinformatics: assembling DNA fragments

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140313

R150 Certificate of patent or registration of utility model

Ref document number: 5502836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250