JP4852464B2 - 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体 - Google Patents

論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4852464B2
JP4852464B2 JP2007103846A JP2007103846A JP4852464B2 JP 4852464 B2 JP4852464 B2 JP 4852464B2 JP 2007103846 A JP2007103846 A JP 2007103846A JP 2007103846 A JP2007103846 A JP 2007103846A JP 4852464 B2 JP4852464 B2 JP 4852464B2
Authority
JP
Japan
Prior art keywords
flip
flop
circuit
comparison
equivalence verification
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.)
Expired - Fee Related
Application number
JP2007103846A
Other languages
English (en)
Other versions
JP2008262337A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007103846A priority Critical patent/JP4852464B2/ja
Priority to US12/081,127 priority patent/US7971165B2/en
Publication of JP2008262337A publication Critical patent/JP2008262337A/ja
Application granted granted Critical
Publication of JP4852464B2 publication Critical patent/JP4852464B2/ja
Expired - Fee Related 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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

この発明は、二つの回路の論理が等価であるか否かを自動的に検証する論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体に関する。
集積回路の設計において、非同期の異なるクロック信号で駆動される2個のフリップフロップ間のパス(非同期パス)には、データ転送におけるメタ・ステーブル問題の対策として、タイミングを補償するためのシンクロナイザが挿入される。一般に、シンクロナイザは、1個以上のフリップフロップにより構成される。フリップフロップは、入力信号を1クロック遅らせて出力するので、非同期パスにフリップフロップが挿入されても、他の組み合わせ回路等の論理には影響がない。電源の異なるブロック間に挿入されるレベルシフタも、他の組み合わせ回路等の論理に影響を及ぼさない。
図14は、論理等価検証を行う2個の回路を示すアルゴリズム説明図である。図14に示す例では、比較元回路1は、出力ポートを始点とし、第1の組み合わせ回路2で構成される第1のロジックコーン4に、第1のフリップフロップA(FF_A)3の入力を始点とし、第2の組み合わせ回路5で構成される第2のロジックコーン8が接続され、この第2のロジックコーン8に、さらに第2のフリップフロップB(FF_B)6の入力を始点とし、第3の組み合わせ回路9で構成される第3のロジックコーン10と第3のフリップフロップC(FF_C)7の入力を始点とする第6のロジックコーン11が接続された構成となっている。第2のフリップフロップB6と第3のフリップフロップC7を駆動するクロック信号は、クロック信号F(CLK_F)であり、第1のフリップフロップA3を駆動するクロック信号は、クロック信号G(CLK_G)である。
図14に示す例では、比較対象回路21は、比較元回路1の第2の組み合わせ回路5と第1のフリップフロップA3を結ぶ非同期パスに、第4のフリップフロップD(FF_D)22と第5のフリップフロップE(FF_E)23が挿入されている。第4のフリップフロップD22および第5のフリップフロップE23は、クロック信号G(CLK_G)で駆動される。比較対象回路21では、第1のロジックコーン4に、第1のフリップフロップA3の入力を始点とする第4のロジックコーン24が接続され、この第4のロジックコーン24に、第4のフリップフロップD22の入力を始点とする第5のロジックコーン25が接続され、この第5のロジックコーン25に第2のロジックコーン8が接続された構成となる。このとき、第2のロジックコーン8の始点は、第5のフリップフロップE23となる。
また、第4のフリップフロップD22と第5のフリップフロップE23の間に、インバータ26,27やバッファ28,29,30が挿入されることもある。論理等価検証では、比較対象回路21と比較元回路1で名前の一致するものをペアとして、ロジックコーン同士の検証が行われる。そして、すべてのロジックコーンが論理的に一致すれば、比較対象回路21と比較元回路1が論理等価であると判断される。ここで、ロジックコーンは、一般に論理等価検証を行う単位ブロックであり、出力ポート、フリップフロップの入力またはブラックボックスモジュールの入力ピンを始点とし、入力ポート、フリップフロップからの出力またはブラックボックスモジュールの出力ポートを終点とするブロックである。
論理等価検証の対象となる二つの論理のうちの一方に他方に無い追加論理が存在する場合の論理回路の論理等価検証方法が公知である。この方法は、追加論理の情報を用いて、追加論理を除いた元論理と元々追加論理を含まない論理との等価性を検証することを特徴とする(例えば、特許文献1参照。)。
特開2001−67379号公報
しかしながら、従来の論理等価検証方法では、同じ名前のものをペアとして、ロジックコーン同士を比較するため、図14において、比較元回路1と比較対象回路21は、論理的に一致するにもかかわらず、それぞれ第1のフリップフロップA3の入力を始点とする第2のロジックコーン8と第4のロジックコーン24との比較で不一致となってしまう。この場合には、設計者が、不一致としてエラー検出された箇所を一つずつ確認したり、比較対象回路21の第5のフリップフロップE23と比較元回路1の第1のフリップフロップA3がペアであることを指示ファイルに記述する必要がある。このような人手による作業には、手間や時間がかかるという不都合や、間違いを犯すおそれがあるという問題点がある。また、前記特許文献1に開示された方法では、追加論理の情報を用いて、追加論理を除くための手間がかかるという問題点がある。
この発明は、上述した従来技術による問題点を解消するため、人手による作業を行うことなく、比較元回路と、この比較元回路に、論理的に等価なフリップフロップが挿入された比較対象回路との論理等価検証を自動的に行うことができる論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明にかかる論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体は、以下の特徴を有する。マージ処理によって削除される複数のフリップフロップ間にバッファやインバータが存在する場合、全てのバッファと偶数個のインバータを削除する(論理圧縮工程)。そして、比較元回路について、論理的に等価なフリップフロップを、その挿入箇所から削除して他のフリップフロップにマージ(統合)して一つのフリップフロップとする。比較対象回路についても同様にする(フリップフロップマージ工程)。その際、マージ処理によって削除されるフリップフロップの名前を、マージ処理後に残るフリップフロップの名前に追加する。その後、マージ処理の済んだ比較元回路および比較対象回路について、フリップフロップの対応付けを行う(マッチング工程)。これには名前が一致するか否かを調べるネームマッチング工程を含む。名前が一致しなければ、別の手段による対応付け処理を行うが、この発明ではこの部分については言及しない。対応付けされたペアに対して、比較元回路と比較対象回路の比較検証を行い(比較検証工程)、レポートを出力する。なお、本明細書において、論理的に等価であるとは、論理的に影響のないことを意味している。従って、論理的に等価なフリップフロップとは、入力と同じ論理を出力するフリップフロップという意味である。
この発明によれば、論理的に等価なフリップフロップがその挿入箇所から削除されて他のフリップフロップにマージされる。また、このマージ処理によって削除されるフリップフロップの名前がマージ処理後に残るフリップフロップの名前に追加される。従って、比較元回路と、シンクロナイザやレベルシフタなどのように論理的に等価なフリップフロップが挿入された比較対象回路との論理等価検証を行う際に、論理的に等価なフリップフロップの挿入が原因で両回路の論理が不一致であるという結果が出るのを防ぐことができる。
本発明にかかる論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体によれば、人手による作業を行うことなく、比較元回路と、この比較元回路に、論理的に等価なフリップフロップが挿入された比較対象回路との論理等価検証を自動的に行うことができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体の好適な実施の形態を詳細に説明する。
(論理等価検証装置のハードウェア構成)
まず、この発明の実施の形態にかかる論理等価検証装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる論理等価検証装置のハードウェア構成を示すブロック図である。
図1において、論理等価検証装置は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)107と、ディスプレイ108と、I/F(インターフェース)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113と、を備えている。また、各構成部は、バス100によってそれぞれ接続されている。
ここで、CPU101は、論理等価検証装置の全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPU101のワークエリアとして使用される。HDD104は、CPU101の制御に従ってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御で書き込まれたデータを記憶する。
FDD106は、CPU101の制御に従ってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御で書き込まれたデータを記憶したり、FD107に記憶されたデータを論理等価検証装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD107のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F109は、通信回線を通じてインターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、例えばモデムやLANアダプタなどを採用することができる。
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ112は、画像を光学的に読み取り、論理等価検証装置内に画像データを取り込む。なお、スキャナ112は、OCR機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
(論理等価検証装置の機能的構成)
次に、この発明の実施の形態にかかる論理等価検証装置の機能的構成について説明する。図2は、この発明の実施の形態にかかる論理等価検証装置の機能的構成を示すブロック図である。図2に示すように、論理等価検証装置41は、デザイン読み込み部42、論理圧縮部43、フリップフロップマージ部44、マッチング部45、比較検証部46およびレポート出力部47を備えている。
デザイン読み込み部42は、RTL、ネットリスト等の比較元回路データ48およびRTL、ネットリスト等の比較対象回路データ49を読み込む。比較元回路または比較対象回路には、後述するマージ処理によって削除されるフリップフロップ間にバッファやインバータが存在することがある。バッファは、入力と出力の論理が同じであるので、削除されても、論理的な影響はない。また、インバータは、入力と出力の論理が反転するので、偶数個ずつ削除されても、論理的な影響はない。
そこで、論理を圧縮するため、論理圧縮部43は、これらのバッファやインバータを削除する。バッファについては、全てを削除してよいが、インバータについては偶数個ずつ削除する。例えば、図14に示す比較対象回路21の例では、論理圧縮部43は、第4のフリップフロップD22と第5のフリップフロップE23の間に存在する全てのバッファ28,29,30と偶数個(2個)のインバータ26,27を削除する。論理圧縮部43は、比較元回路と比較対象回路の両方に対して論理圧縮処理を行う。
フリップフロップマージ部44は、論理圧縮部43により論理が圧縮された回路データに基づいて、シンクロナイザやレベルシフタなどの論理的に等価なフリップフロップを、その挿入箇所から削除して前段のフリップフロップにマージ、すなわち統合して一つのフリップフロップとする。その際、フリップフロップマージ部44は、マージのために削除するフリップフロップのレジスタ名を、マージ処理後に残るフリップフロップの名前に追加し、それによって、削除されるフリップフロップのレジスタ名も保持する。
例えば、図14に示す比較対象回路21の例では、第4のフリップフロップD22と第5のフリップフロップE23は、他の回路の論理に影響を及ぼさないので、フリップフロップマージ部44は、マージ処理によって、この二つのフリップフロップD22,E23を削除し、第1のフリップフロップA3にマージする。そして、フリップフロップマージ部44は、第1のフリップフロップA3のレジスタ名を、FF_A、FF_DおよびFF_Eとする。フリップフロップマージ部44は、比較元回路と比較対象回路の両方に対してマージ処理を行う。フリップフロップマージ部44は、次の(1)〜(4)の条件を満足するときに、マージ処理を行う。
(1)マージ処理によって削除されるフリップフロップが、マージ処理後に残るフリップフロップと同じクロック信号で駆動されていること。ここで、フリップフロップマージ部44は、二つのフリップフロップを駆動するクロック信号について、クロック名が同じである場合、外部より与えたクロックドメイングループが同じである場合、またはクロック信号のバックトレースにより同一クロックドメインと判断される場合に、二つのフリップフロップが同じクロック信号で駆動されていると判断する。例えば、図14に示す比較対象回路21の例では、第4のフリップフロップD22および第5のフリップフロップE23は、第1のフリップフロップA3と同じクロック信号G(CLK_G)で駆動されているので、上記(1)の条件を満たす。
(2)マージ処理によって削除されるフリップフロップのデータラインが1入力1出力タイプのフリップフロップであること。フリップフロップに複数の入力がある場合、または複数の出力がある場合には、このフリップフロップがマージによって他のフリップフロップに統合されてしまうと、このフリップフロップへ信号を出力する回路の出力先がなくなったり、このフリップフロップから信号を入力する回路に信号が入力されなくなるという不具合が生じる。そのため、マージ処理を行うことができない。例えば、図14に示す比較対象回路21の例では、第4のフリップフロップD22および第5のフリップフロップE23は、データラインが1入力1出力タイプのフリップフロップであるので、この(2)の条件を満たす。
(3)マージ処理によって削除される複数のフリップフロップ間に論理回路が存在しないこと。(4)マージ処理によって削除されるフリップフロップが、マージ処理後に残るフリップフロップと同じタイプであること。フリップフロップには、入力ピンがデータ(DATA)ピンとクロック(CLK)ピンだけである単純なタイプのものや、それらの入力ピン以外に、セット(SET)ピン、もしくはリセット(RESET)ピンを有する単純でないタイプのものや、セット(SET)ピンとリセット(RESET)ピンの両方を有する単純でないタイプのものなどがある。入力ピンの種類が同じフリップフロップ同士であれば、マージ処理を行うことができる。
ただし、入力ピンの種類が同じでなくても、前記単純なタイプのフリップフロップは、いずれのタイプのフリップフロップともマージすることができる。この場合、前記単純なタイプのフリップフロップが削除され、単純でないタイプのフリップフロップが残る。例えば、図14に示す比較対象回路21の例では、第4のフリップフロップD22および第5のフリップフロップE23は、第1のフリップフロップA3と同じ単純なタイプのフリップフロップであるので、この(4)の条件を満たす。
マッチング部45は、フリップフロップマージ部44によりそれぞれマージ処理がなされた比較元回路および比較対象回路の各データに基づいて、比較元回路と比較対象回路のフリップフロップを対応付ける。この時、双方の回路のフリップフロップの名前が一致するか否かを調べる。マッチング部45は、フリップフロップの名前が一致しなければ、別の手段による対応付けを行っても良いが、この発明では言及しない。比較検証部46は、マッチング部45により対応づけられたフリップフロップの入力を始点とするロジックコーンについて、比較元回路と比較対象回路の比較検証を行う。レポート出力部47は、比較検証部46による比較検証結果のレポート50を出力する。
なお、上述したデザイン読み込み部42、論理圧縮部43、フリップフロップマージ部44、マッチング部45、比較検証部46およびレポート出力部47は、具体的には、例えば、図1に示したROM102、RAM103、HD105などの記録媒体に記録されたプログラムを、CPU101が実行することによって、またはI/F109によって、その機能を実現する。
(論理等価検証処理手順)
次に、この発明の実施の形態にかかる論理等価検証装置の処理手順について説明する。図3は、この発明の実施の形態にかかる論理等価検証装置の処理手順を示すフローチャートである。図3に示すように、論理等価検証処理が開始されると、まず、デザイン読み込み部42により、比較元回路データ48と比較対象回路データ49が読み込まれる(ステップS1)。例えば、比較対象回路データ49は、比較元回路のメタ・ステーブル問題の対策として、比較元回路にフリップフロップを挿入した回路のデータである。
次いで、論理圧縮部43により、比較元回路および比較対象回路のそれぞれについて、バッファやインバータを削除する論理圧縮処理が行われる(ステップS2)。論理圧縮処理の詳細については、後述する。次いで、フリップフロップマージ部44により、比較元回路および比較対象回路のそれぞれについて、フリップフロップのマージ処理が行われる(ステップS3)。このマージ処理の詳細については、後述する。
次いで、マッチング部45により、比較元回路と比較対象回路で対応するロジックコーンの対応付けを行う。この発明ではフリップフロップの名前が一致するか否かを調べるネームマッチング処理を行う(ステップS4)。ネームマッチング処理の詳細については、後述する。次いで、比較検証部46により、比較元回路と比較対象回路の論理が一致するか否かを調べる比較検証処理が行われる(ステップS5)。そして、レポート出力部47により比較検証結果のレポートが出力され、(ステップS6)図3に示す一連の論理等価検証処理が終了する。
(論理圧縮処理手順)
図4は、論理圧縮処理手順を示すフローチャートである。図4に示すように、論理圧縮処理が開始されると、まず、注目したフリップフロップのデータピンに接続する前段の論理プリミティブ検索を行う(ステップS11)。検索の結果、前段の回路がバッファであるか否かを判断する(ステップS12)。バッファである場合(ステップS12:Yes)、そのバッファをバッファ削除リストにスタックし、スタックしたバッファの前段の論理プリミティブ検索を行い(ステップS13)、ステップS12に戻る。
ステップS12で、バッファでない場合(ステップS12:No)、検索により得た前段回路がインバータであるか否かを判断する(ステップS14)。インバータである場合(ステップS14:Yes)、インバータカウンタをインクリメントし、そのインバータをインバータ削除リストにスタックする。そして、スタックしたインバータの前段のセル検索を行い(ステップS15)、ステップS12に戻る。ステップS14で、インバータでない場合(ステップS14:No)、検索により得た前段回路がフリップフロップであるか否かを判断する(ステップS16)。
フリップフロップでない場合(ステップS16:No)、インバータカウンタのリセット、インバータ削除リストの削除およびバッファ削除リストの削除を行う(ステップS17)。そして、ステップS11に戻る。ステップS16で、フリップフロップである場合(ステップS16:Yes)、インバータ削除リストにスタックされているインバータ群から[スタックされている個数/2]のあまりを除いた残りのインバータを削除し、バッファ削除リストにスタックされているバッファ群を削除する(ステップS18)。そして、ステップS17へ進む。以上のステップS11〜ステップS18の一連の処理を、回路全体について行い、図4に示す一連の論理圧縮処理が終了する。
図5は、論理圧縮処理後の回路を示すアルゴリズム説明図である。例えば、図14に示す比較対象回路21に対して論理圧縮処理を行った結果、図5に示すように、第4のフリップフロップD22と第5のフリップフロップE23の間のバッファ(28,29,30)および偶数個のインバータ(26,27)が削除される。
(フリップフロップのマージ処理手順)
図6は、フリップフロップのマージ処理手順を示すフローチャートである。ここでは、説明の便宜上、二つのフリップフロップのうち、一方を比較元フリップフロップとし、他方を処理対象フリップフロップとする。図6に示すように、フリップフロップのマージ処理が開始されると、まず、注目した回路がフリップフロップであるか否かを判断する(ステップS21)。フリップフロップである場合(ステップS21:Yes)、これを比較元フリップフロップとし、比較元フリップフロップのデータパスピンの前段の論理プリミティブ検索を行う(ステップS22)。検索により得た前段回路がフリップフロップであるか否かを判断する(ステップS23)。
フリップフロップである場合(ステップS23:Yes)、これを処理対象フリップフロップとし、処理対象フリップフロップのクロックが比較元フリップフロップのクロックと同じであるか否かを判断する(ステップS24)。クロックが同じである場合(ステップS24:Yes)、さらに、処理対象フリップフロップのデータラインのファンイン数およびファンアウト数が1であるか否かを判断する(ステップS25)。データラインのファンイン数およびファンアウト数が1である場合(ステップS25:Yes)、ステップS26へ進む。データラインのファンイン数が2以上、もしくはファンアウト数が2以上である場合(ステップS25:No)、また、ステップS21、またはステップS23でNoである場合、ステップS21に戻る。そして、別の回路に注目し、ステップS21〜ステップS25を行う。
ステップS26では、処理対象フリップフロップが単純なタイプのものであるか否かを判断する。単純なタイプのフリップフロップについては、先に説明した通りである。単純なタイプである場合(ステップS26:Yes)、比較元フリップフロップが削除リストに登録されているか否かを判断する(ステップS27)。登録されている場合(ステップS27:Yes)、処理対象フリップフロップを削除リストにスタックする。この場合のマージ先フリップフロップは、比較元フリップフロップのマージ先と同じである。そして、比較元フリップフロップのマージ先フリップフロップの名前に処理中のフリップフロップの名前を全て追加する(ステップS28)。
ステップS27で、登録されていない場合(ステップS27:No)、処理対象フリップフロップを削除リストにスタックする。この場合のマージ先フリップフロップは、比較元フリップフロップである。そして、比較元フリップフロップの名前に処理中のフリップフロップの名前を全て追加する(ステップS29)。一方、ステップS26で、単純なタイプでない場合(ステップS26:No)、処理対象フリップフロップが比較元フリップフロップと同じタイプであるか否かを判断する(ステップS30)。同じタイプである場合(ステップS30:Yes)、ステップS27へ進む。
同じタイプでない場合(ステップS30:No)、さらに、比較元フリップフロップが単純なタイプであるか否かを判断する(ステップS31)。単純なタイプでない場合(ステップS31:No)、ステップS21に戻り、別の回路に注目し、ステップS21以降の処理を行う。単純なタイプである場合(ステップS31:Yes)、処理対象フリップフロップが削除リストに登録されているか否かを判断する(ステップS32)。登録されている場合(ステップS32:Yes)、比較元フリップフロップを削除リストにスタックする。この場合のマージ先フリップフロップは、処理対象フリップフロップのマージ先と同じである。そして、処理対象フリップフロップのマージ先フリップフロップの名前に比較元フリップフロップの名前を全て追加する(ステップS33)。
ステップS32で、登録されていない場合(ステップS32:No)、比較元フリップフロップを削除リストにスタックする。この場合のマージ先フリップフロップは、処理対象フリップフロップである。そして、処理対象フリップフロップの名前に比較元フリップフロップの名前を全て追加する(ステップS34)。以上のステップS21〜ステップS34の一連の処理を、回路全体について行う。その後、削除リストに登録されているフリップフロップ全体について、フリップフロップの削除を行い(ステップS35)、図6に示す一連のマージ処理が終了する。
図7は、フリップフロップのマージ処理後の回路を示すアルゴリズム説明図である。例えば、図14に示す比較対象回路21に対してフリップフロップのマージ処理を行った結果、図7に示すように、第1のフリップフロップA3と第4のフリップフロップDと第5のフリップフロップEがマージされて、一つのフリップフロップになっている。図示例では、マージ先フリップフロップは、第1のフリップフロップA3であり、この第1のフリップフロップA3は、レジスタ名としてFF_A、FF_DおよびFF_Eを有する。従って、図7に示す比較対象回路21と、図14に示す比較対象回路21で、論理が一致することになる。
ここで、フリップフロップのマージパターンおよび削除リストの一例について説明する。図8〜図10は、フリップフロップのマージパターンを示す模式図である。図8に示すパターンは、フリップフロップJ(FF_J)61とフリップフロップK(FF_K)62がともにフリップフロップL(FF_L)63をマージ先としてマージされるパターンである。
図9に示すパターンは、フリップフロップM(FF_M)64がフリップフロップN(FF_N)65をマージ先としてマージされ、さらに、そのフリップフロップN(FF_N)65がフリップフロップP(FF_P)66をマージ先としてマージされるパターンである。図10に示すパターンは、フリップフロップQ(FF_Q)67とフリップフロップT(FF_T)69がその間のフリップフロップR(FF_R)68をマージ先としてマージされるパターンである。図11は、削除リストの一例を示す模式図である。図8〜図10に示すフリップフロップのマージが起こると、削除リストは、図11に示すようになる。
(マッチング処理手順)
図12は、マッチング処理手順を示すフローチャートである。ここでは、説明の便宜上、比較元回路のフリップフロップを比較元フリップフロップとし、比較対象回路のフリップフロップを処理対象フリップフロップとする。図12に示すように、マッチング処理が開始されると、まず、比較元フリップフロップの全てについて、名前の一致するフリップフロップを処理対象からさがすネームマッチング処理を行う(ステップS41)。
そして、名前が一致するフリップフロップ同士をペアとして対応づける。一方、ネームマッチング処理において名前の一致するフリップフロップがなかった比較元フリップフロップには、エラーフラグがつく。ネームマッチング処理の詳細な手順については後述する。全ての比較元フリップフロップについてネームマッチング処理が終了したら、エラーフラグのついた比較元フリップフロップについて、さらに別の手法で対応づけを行う(ステップS42)。例えば、機能的に一致するフリップフロップ同士を対応づけるファンクションマッチング処理を行う。
(ネームマッチング処理手順)
図13は、ネームマッチング処理手順のうち、比較元回路のフリップフロップを1つ選択し、それに対応するフリップフロップを比較対象回路から見つける処理を示すフローチャートである。ここでは、説明の便宜上、比較元回路から選択したフリップフロップを比較元フリップフロップとし、比較対象回路のフリップフロップを処理対象フリップフロップとする。図13に示すように、マッチング処理が開始されると、まず、比較元フリップフロップと処理対象フリップフロップで名前が一致するか否かを判断する(ステップS51)。一致しない場合(ステップS51:No)、処理対象フリップフロップに複数の名前があるか否かを判断する(ステップS52)。
名前が一つである場合(ステップS52:No)、ステップS55へ進む。複数の名前がある場合(ステップS52:Yes)、処理対象フリップフロップの全ての名前と比較元フリップフロップの名前を比較する(ステップS53)。そして、処理対象フリップフロップのいずれかの名前と比較元フリップフロップの名前が一致するか否かを判断する(ステップS54)。一致しない場合(ステップS54:No)、ステップS55へ進む。ステップS55では、比較元フリップフロップに複数の名前があるか否かを判断する。
名前が一つである場合(ステップS55:No)、比較元フリップフロップにエラーフラグを立てて(ステップS56)、ステップS51に戻る。複数の名前がある場合(ステップS55:Yes)、比較元フリップフロップの全ての名前と処理対象フリップフロップの名前を比較する(ステップS57)。そして、比較元フリップフロップのいずれかの名前と処理対象フリップフロップの名前が一致するか否かを判断する(ステップS58)。
一致しない場合(ステップS58:No)、ステップS56へ進む。一致する場合(ステップS58:Yes)、また、ステップS51またはステップS54でYesの場合、処理中の処理対象フリップフロップと比較元フリップフロップのマッチング処理を終了する。以上のステップS51〜ステップS58の一連の処理を、比較対象の全フリップフロップについて行い、比較元フリップフロップと同じ名前のフリップフロップを見つける。同じ名前のフリップフロップが見つかった場合はペアとなり(ステップS59)、それらのフリップフロップの入力を始点とするロジックコーンが論理等価検証の対象となる。これを比較元の全フリップフロップについて行う。
このネームマッチング処理において、図14に示す比較元回路1の第1のフリップフロップA3は、レジスタ名としてFF_Aを有し、図7に示す比較対象回路21の第1のフリップフロップA3は、レジスタ名にFF_Aを含むので、比較元回路1と比較対象回路21で第1のフリップフロップA3の名前が一致することになる。従って、図14に示す比較元回路1と図14に示す比較対象回路21の比較検証を行うと、いずれの回路でも第2のロジックコーン8が、レジスタ名がFF_Aである第1のフリップフロップA3の入力を始点とすることになるので、名前によるペアが自動で作成され、両回路の論理が一致するという検証結果が得られる。
以上説明したように、実施の形態によれば、比較元回路1と、シンクロナイザなどのように論理的に等価なフリップフロップが挿入された比較対象回路21との論理等価検証を行う際に、論理的に等価なフリップフロップの挿入が原因で両回路の論理が不一致であるという結果が出るのを防ぐことができる。従って、従来のような人手による作業を行うことなく、論理的に等価なフリップフロップが挿入された回路について論理等価検証を自動的に行うことができるという効果を奏する。また、論理的に等価なフリップフロップをレベルシフタとして挿入した回路についても、本実施の形態を適用することによって、検証ポイントを削減することができるので、検証に要する時間を削減することができる。
なお、本実施の形態で説明した論理等価検証プログラムは、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。以上において本発明は、上述した実施の形態に限らず、種々変更可能である。
(付記1)比較元回路と比較対象回路との論理等価検証を行う論理等価検証装置において、比較元回路および比較対象回路の各設計データに基づいて、前記比較元回路および前記比較対象回路のそれぞれについて、論理的に等価なフリップフロップを、該フリップフロップの挿入箇所から削除して他のフリップフロップにマージするフリップフロップマージ手段と、それぞれ、前記フリップフロップマージ手段で論理的に等価なフリップフロップが削除された比較元回路および比較対象回路について、対応するフリップフロップの名前が一致するか否かを調べるマッチング手段と、を備えることを特徴とする論理等価検証装置。
(付記2)前記フリップフロップマージ手段は、マージ処理によって削除されるフリップフロップの名前を、マージ処理後に残るフリップフロップの名前に追加することを特徴とする付記1に記載の論理等価検証装置。
(付記3)前記フリップフロップマージ手段は、マージ処理によって削除されるフリップフロップが、マージ処理後に残るフリップフロップと同じクロック信号で駆動されている場合に、マージ処理を行うことを特徴とする付記1に記載の論理等価検証装置。
(付記4)前記フリップフロップマージ手段は、マージ処理によって削除されるフリップフロップのデータラインが1入力1出力タイプのフリップフロップである場合に、マージ処理を行うことを特徴とする付記3に記載の論理等価検証装置。
(付記5)前記フリップフロップマージ手段は、マージ処理によって削除される複数のフリップフロップにおいて、前段のフリップフロップの出力の論理と後段のフリップフロップの入力の論理が同じである場合に、マージ処理を行うことを特徴とする付記3または4に記載の論理等価検証装置。
(付記6)前記フリップフロップマージ手段は、マージ処理によって削除されるフリップフロップが、マージ処理後に残るフリップフロップと同じタイプである場合に、マージ処理を行うことを特徴とする付記3に記載の論理等価検証装置。
(付記7)前記フリップフロップマージ手段によるマージ処理を行う前に、マージ処理によって削除される複数のフリップフロップ間にバッファもしくは偶数個のインバータが存在する場合、該バッファおよび該インバータを削除する論理圧縮手段、をさらに備えることを特徴とする付記1に記載の論理等価検証装置。
(付記8)比較元回路と比較対象回路との論理等価検証を行う論理等価検証方法において、比較元回路および比較対象回路の各設計データに基づいて、前記比較元回路および前記比較対象回路のそれぞれについて、論理的に等価なフリップフロップを、該フリップフロップの挿入箇所から削除して他のフリップフロップにマージするフリップフロップマージ工程と、それぞれ、前記フリップフロップマージ工程で論理的に等価なフリップフロップが削除された比較元回路および比較対象回路について、対応するフリップフロップの名前が一致するか否かを調べるマッチング工程と、を含むことを特徴とする論理等価検証方法。
(付記9)前記フリップフロップマージ工程では、マージ処理によって削除されるフリップフロップの名前を、マージ処理後に残るフリップフロップの名前に追加することを特徴とする付記8に記載の論理等価検証方法。
(付記10)前記フリップフロップマージ工程では、マージ処理によって削除されるフリップフロップが、マージ処理後に残るフリップフロップと同じクロック信号で駆動されている場合に、マージ処理を行うことを特徴とする付記8に記載の論理等価検証方法。
(付記11)前記フリップフロップマージ工程では、マージ処理によって削除されるフリップフロップのデータラインが1入力1出力タイプのフリップフロップである場合に、マージ処理を行うことを特徴とする付記10に記載の論理等価検証方法。
(付記12)前記フリップフロップマージ工程では、マージ処理によって削除される複数のフリップフロップにおいて、前段のフリップフロップの出力の論理と後段のフリップフロップの入力の論理が同じである場合に、マージ処理を行うことを特徴とする付記10または11に記載の論理等価検証方法。
(付記13)前記フリップフロップマージ工程では、マージ処理によって削除されるフリップフロップが、マージ処理後に残るフリップフロップと同じタイプである場合に、マージ処理を行うことを特徴とする付記10に記載の論理等価検証方法。
(付記14)前記フリップフロップマージ工程の前に、マージ処理によって削除される複数のフリップフロップ間にバッファもしくは偶数個のインバータが存在する場合、該バッファおよび該インバータを削除する論理圧縮工程、をさらに含むことを特徴とする付記8に記載の論理等価検証方法。
(付記15)付記8〜14のいずれか一つに記載の論理等価検証方法をコンピュータに実行させることを特徴とする論理等価検証プログラム。
(付記16)付記15に記載の論理等価検証プログラムを記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
以上のように、本発明にかかる論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体は、論理回路の設計に有用であり、特に、半導体集積回路の設計に適している。
この発明の実施の形態にかかる論理等価検証装置のハードウェア構成を示すブロック図である。 この発明の実施の形態にかかる論理等価検証装置の機能的構成を示すブロック図である。 この発明の実施の形態にかかる論理等価検証装置の処理手順を示すフローチャートである。 この発明の実施の形態にかかる論理圧縮処理手順を示すフローチャートである。 論理圧縮処理後の回路を示すアルゴリズム説明図である。 この発明の実施の形態にかかるフリップフロップのマージ処理手順を示すフローチャートである。 フリップフロップのマージ処理後の回路を示すアルゴリズム説明図である。 フリップフロップのマージパターンの第1の例を示す模式図である。 フリップフロップのマージパターンの第2の例を示す模式図である。 フリップフロップのマージパターンの第3の例を示す模式図である。 削除リストの一例を示す模式図である。 この発明の実施の形態にかかるマッチング処理手順を示すフローチャートである。 この発明の実施の形態にかかるネームマッチング処理手順を示すフローチャートである。 論理等価検証を行う比較元回路と比較対象回路を示すアルゴリズム説明図である。
符号の説明
1 比較元回路
3,22,23,61〜69 フリップフロップ
21 比較対象回路
26,27 インバータ
28,29,30 バッファ
41 論理等価検証装置
43 論理圧縮部
44 フリップフロップマージ部
45 マッチング部
48 比較元回路データ
49 比較対象回路データ

Claims (8)

  1. 比較元回路および比較対象回路の各設計データに基づいて、前記比較元回路および前記比較対象回路のそれぞれについて、第1FFと当該第1FFの前段に存在する第2FFとが論理的に等価な組み合わせであることを検出し、前記第1FFが削除対象リストに登録されていない場合には前記第2FFを前記削除対象リストに登録して前記第1FFを前記第2FFのマージ先FFに決定し、前記第1FFが前記削除対象リストに登録されている場合には前記第2FFを前記削除対象リストに登録して前記第1FFにおけるマージ先FFを前記第2FFのマージ先FFに決定し、検出すべき組み合わせがない場合、前記削除対象リストに登録されたFFを削除し、削除されたFFの前段回路と後段回路を接続し、削除されたFFの名称をそのマージ先FFの名称に追加することで、マージ処理をおこなうフリップフロップマージ手段と、
    それぞれ、前記フリップフロップマージ手段によるマージ処理後の比較元回路および比較対象回路について、対応するFFの名前が一致するか否かを調べるマッチング手段と、
    を備えることを特徴とする論理等価検証装置。
  2. コンピュータが、
    比較元回路および比較対象回路の各設計データに基づいて、前記比較元回路および前記比較対象回路のそれぞれについて、第1FFと当該第1FFの前段に存在する第2FFとが論理的に等価な組み合わせであることを検出し、前記第1FFが前記コンピュータの記憶装置が保持する削除対象リストに登録されていない場合には前記第2FFを前記削除対象リストに登録して前記第1FFを前記第2FFのマージ先FFに決定し、前記第1FFが前記削除対象リストに登録されている場合には前記第2FFを前記削除対象リストに登録して前記第1FFにおけるマージ先FFを前記第2FFのマージ先FFに決定し、判断すべき組み合わせがない場合、前記削除対象リストに登録されたFFを削除し、削除されたFFの前段回路と後段回路を接続し、削除されたFFの名前をそのマージ先FFの名前に追加することで、マージ処理をおこなうフリップフロップマージ工程と、
    それぞれ、前記フリップフロップマージ工程によるマージ処理後の比較元回路および比較対象回路について、対応するFFの名前が一致するか否かを調べるマッチング工程と、
    を実行することを特徴とする論理等価検証方法。
  3. 前記フリップフロップマージ工程では、前記第1FFと前記第2FFとが、同じクロック信号で駆動されている場合に、論理的に等価な組み合わせとして検出することを特徴とする請求項2に記載の論理等価検証方法。
  4. 前記フリップフロップマージ工程では、前記第2FFのデータラインが1入力1出力タイプのFFである場合に、前記第2FFを前記削除対象リストに登録し、前記削除対象リストに登録されている前段FFと後段FFとの間に論理回路が存在しない場合に、前記前段FFおよび前記後段FFを削除することを特徴とする請求項3に記載の論理等価検証方法。
  5. 前記フリップフロップマージ工程では、前記第1FFと前記第2FFとが同じタイプである場合に、前記第2FFを前記削除対象リストに登録することを特徴とする請求項4に記載の論理等価検証方法。
  6. 前記フリップフロップマージ工程の前に、前記比較元回路および前記比較対象回路のそれぞれについて、FF間にバッファもしくは偶数個のインバータが存在する場合、該バッファおよび該インバータを削除する論理圧縮工程を、前記コンピュータが実行し、
    前記フリップフロップマージ工程では、
    前記論理圧縮工程によって論理圧縮された前記比較元回路および前記比較対象回路のそれぞれについて、前記マージ処理を実行することを特徴とする請求項2に記載の論理等価検証方法。
  7. 請求項2〜6のいずれか一つに記載の論理等価検証方法を前記コンピュータに実行させることを特徴とする論理等価検証プログラム。
  8. 請求項7に記載の論理等価検証プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
JP2007103846A 2007-04-11 2007-04-11 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体 Expired - Fee Related JP4852464B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007103846A JP4852464B2 (ja) 2007-04-11 2007-04-11 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体
US12/081,127 US7971165B2 (en) 2007-04-11 2008-04-01 Method and apparatus for logic equivalence verification, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007103846A JP4852464B2 (ja) 2007-04-11 2007-04-11 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2008262337A JP2008262337A (ja) 2008-10-30
JP4852464B2 true JP4852464B2 (ja) 2012-01-11

Family

ID=39854922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007103846A Expired - Fee Related JP4852464B2 (ja) 2007-04-11 2007-04-11 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体

Country Status (2)

Country Link
US (1) US7971165B2 (ja)
JP (1) JP4852464B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013175559A1 (ja) * 2012-05-21 2013-11-28 富士通株式会社 検証支援プログラム、検証支援方法、および検証支援装置
CN112257366B (zh) * 2020-10-13 2024-05-07 深圳国微芯科技有限公司 一种用于等价性验证的cnf生成方法及系统
KR20220142212A (ko) 2021-04-14 2022-10-21 삼성전자주식회사 멀티 비트 플립플롭 및 이를 포함하는 집적회로

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2845173B2 (ja) * 1995-07-06 1999-01-13 日本電気株式会社 論理照合方式
JP2001067379A (ja) * 1999-08-25 2001-03-16 Hitachi Ltd 論理等価検証方法
JP2003058597A (ja) * 2001-08-10 2003-02-28 Mitsubishi Electric Corp 論理等価性検証装置及び論理等価性検証方法
JP2004213605A (ja) * 2002-11-15 2004-07-29 Fujitsu Ltd 論理等価検証装置
US7266790B2 (en) * 2003-03-07 2007-09-04 Cadence Design Systems, Inc. Method and system for logic equivalence checking
US6983435B2 (en) * 2003-06-19 2006-01-03 International Business Machines Corporation Integrated design verification and design simplification system
JP4419633B2 (ja) * 2004-03-25 2010-02-24 日本電気株式会社 論理回路設計システム、論理回路設計方法およびそのプログラム

Also Published As

Publication number Publication date
US7971165B2 (en) 2011-06-28
US20080256498A1 (en) 2008-10-16
JP2008262337A (ja) 2008-10-30

Similar Documents

Publication Publication Date Title
US7406672B2 (en) Method and apparatus for constructing and optimizing a skew of a clock tree
US7404161B2 (en) Fullchip functional equivalency and physical verification
JP4261502B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP4481762B2 (ja) 論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体
JP4852464B2 (ja) 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体
JP2007264993A (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
US7624363B2 (en) Method and apparatus for performing equivalence checking on circuit designs having differing clocking and latching schemes
JP5167740B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP4017583B2 (ja) 半導体集積回路の設計データの回路表示方法
JP2005275858A (ja) 図面入力装置、図面入力プログラム
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
JP4275636B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP2008004024A (ja) レイアウト設計プログラム、該プログラムを記録した記録媒体、レイアウト設計装置、およびレイアウト設計方法
US20080209368A1 (en) Layout design method, layout design apparatus, and computer product
US20150379177A1 (en) Computer product for supporting design and verification of integrated circuit
JP5263393B2 (ja) 設計支援方法、設計支援装置、および設計支援プログラム
JP5146369B2 (ja) 回路設計プログラム、回路設計方法および回路設計装置
US7552411B2 (en) LSI analysis method, LSI analysis apparatus, and computer product
JP4217204B2 (ja) タイミング例外パス検出装置、タイミング例外パス検出方法およびタイミング例外パス検出プログラム
US7895553B2 (en) Verification support method and apparatus, and computer product
US20060206772A1 (en) Method and apparatus for supporting test pattern generation, and computer product
JP2009288922A (ja) 論理等価検証装置、論理等価検証方法、および論理等価検証プログラム
JP2010271853A (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US8782579B2 (en) Connection verification method, recording medium thereof, and connection verification apparatus
JPH11328237A (ja) 順序回路の形式的検証装置および方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110926

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: 20111018

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111024

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees