(57)【要約】【課題】非同期クロック間データ転送部分でのリタイミングを伴う回路変更前後での論理等価検証ができるようにする。【解決手段】非同期箇所抽出部１ｂは、非同期箇所を抽出する。修正後回路モデリング部１ｃは、非同期箇所抽出部１ｂで抽出した非同期箇所の前後のＦＦの少なくとも一部を組合せ回路に置き換えてモデリング済修正後回路を生成する。マッチング部１ｄは、ＦＦから置き換えられた組合せ回路を包含するロジックコーンに対応する修正前回路内の範囲をモデリング範囲とする。修正前回路モデリング部１ｅは、修正前回路内のモデリング範囲に含まれるＦＦを組合せ回路に置き換えてモデリング済修正前回路を生成する。比較検証部１ｆは、ロジックコーン同士の論理等価検証を行う。【選択図】図１
2009288922.tif 000002
【特許請求の範囲】
【請求項１】
修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理を行う論理等価検証装置であって、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部と、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部と、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部と、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部と、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部と、
を有する論理等価検証装置。
【請求項２】
前記非同期箇所抽出部は、前記修正後回路内のフリップフロップ間の接続関係に着目し、互いに異なるクロック信号に基づくフリップフロップが隣接している場合、該当する２つのフリップフロップの間を非同期箇所と判断することを特徴とする請求項１記載の論理等価検証装置。
【請求項３】
前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、２段のフリップフロップが存在する場合、１段目と２段目とのフリップフロップが同一系統のクロック信号に同期していれば１段目のフリップフロップを前記対象フリップフロップとすることを特徴とする請求項１記載の論理等価検証装置。
【請求項４】
前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、２段目のフリップフロップが存在しない場合、１段目のフリップフロップを前記対象フリップフロップとすることを特徴とする請求項１記載の論理等価検証装置。
【請求項５】
前記修正後回路モデリング部は、前記対象フリップフロップの直前に、前記対象フリップフロップの出力信号が入力されたセレクタが存在する場合、該当するセレクタを含めて組合せ回路に置き換えることを特徴とする請求項１記載の論理等価検証装置。
【請求項６】
修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータで実行する論理等価検証方法であって、
前記コンピュータが、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出し、
抽出した前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成し、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行い、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成し、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う、
ことを特徴とする論理等価検証方法。
【請求項７】
修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータに実行させる論理等価検証プログラムであって、
前記コンピュータを、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部、
として機能させる論理等価検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路の修正前後における論理等価検証を行う論理等価検証装置、論理等価検証方法、および論理等価検証プログラムに関し、特に非同期箇所が存在する回路の論理等価検証を行うための論理等価検証装置、論理等価検証方法、および論理等価検証プログラムに関する。
【背景技術】
【０００２】
電子回路の設計段階において、その電子回路で実現される機能を変更せずに回路を修正した場合、修正前の回路と修正後の回路とが論理的に等価であることを検証する必要がある。このような論理等価検証は、同様の信号を入力したときに、同様の出力信号が得られるかどうかを検証する。このような検証では、入力から出力までの回路規模が大きくなる程、処理量が増加する。そのため、大規模な電子回路全体を１つの検証単位として論理等価検証を行うと、検証にかかる処理量が膨大となり、実用的な時間内での検証が困難である。そこで、電子回路を複数に分割し、分割された回路をロジックコーンとし、ロジックコーンごとに検証が行われる。
【０００３】
ロジックコーンの始点は、回路の出力ポート、フリップフロップ（ＦＦ）の入力、またはブラックボックスの入力である。ロジックコーンの終点は、回路の入力ポート、ＦＦの出力、またはブラックボックスの出力である。
【０００４】
図１８は、従来の等価性検証対象を示す図である。修正前回路９００では、入力ポート９１１，９１２は組合せ回路９３１の入力側に接続されている。組合せ回路９３１の出力は、ＦＦ９２１の入力側に接続されている。また、入力ポート９１３はＦＦ９２２の入力に接続されている。ＦＦ９２１とＦＦ９２２との出力は、共に組合せ回路９３２の入力側に接続されている。組合せ回路９３２の出力は、ＦＦ９２３の入力側に接続されている。ＦＦ９２３の出力は、組合せ回路９３３の入力側に接続されている。組合せ回路９３３の出力は、出力ポート９４１に接続されている。
【０００５】
このような修正前回路９００では、４つのロジックコーン９５１〜９５４が生成される。ロジックコーン９５１は、ＦＦ９２１を始点とし、入力ポート９１１，９１２を終点とする。ロジックコーン９５２は、ＦＦ９２２を始点とし、入力ポート９１３を終点とする。ロジックコーン９５３は、ＦＦ９２３を始点とし、ＦＦ９２１，９２２を終点とする。ロジックコーン９５４は、出力ポート９４１を始点とし、ＦＦ９２３を終点とする。
【０００６】
修正後回路９０１は、組合せ回路９３１ａ，９３２ａ，９３３ａの構成が修正前回路９００と異なっている。他の構成は同じである。このような修正後回路９０１では、４つのロジックコーン９６１〜９６４が生成される。ロジックコーン９６１は、ＦＦ９２１を始点とし、入力ポート９１１，９１２を終点とする。ロジックコーン９６２は、ＦＦ９２２を始点とし、入力ポート９１３を終点とする。ロジックコーン９６３は、ＦＦ９２３を始点とし、ＦＦ９２１，９２２を終点とする。ロジックコーン９６４は、出力ポート９４１を始点とし、ＦＦ９２３を終点とする。
【０００７】
この場合、修正前回路９００と修正後回路９０１とのそれぞれのロジックコーンのうち、始点と終点とが共通するロジックコーン同士を、論理等価検証を行うべきペアとする。すなわち、修正前回路９００のロジックコーン９５１と修正後回路９０１のロジックコーン９６１とのペア、修正前回路９００のロジックコーン９５２と修正後回路９０１のロジックコーン９６２とのペア、修正前回路９００のロジックコーン９５３と修正後回路９０１のロジックコーン９６３とのペア、修正前回路９００のロジックコーン９５４と修正後回路９０１のロジックコーン９６４とのペアが作成される。そして、コンピュータによって、ペアとなったロジックコーン間での論理等価検証が行われる。論理等価検証の結果、すべてのロジックコーンのペアが論理的に一致していれば、修正前回路９００と修正後回路９０１とが論理的に等価であると判断できる。
【０００８】
なお、ＦＦを組合せ回路に変更して論理検証を行うこともできる（例えば、特許文献１参照）。
【特許文献１】特開平７−８５１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、図１８に示した論理等価検証は、リタイミングが発生しない回路修正の場合にのみ適用可能である。リタイミングとは、ＦＦを跨いだ回路修正を行うことである。図１８に示したように、従来の論理等価検証では原則としてＦＦを境界にしてロジックコーンを作る。これは回路修正をしたとしても、ロジックコーン内で論理的に等価な回路に変更を行うことが前提である。ところが、リタイミングを伴う回路変更（境界となるＦＦを跨いだ回路変更）を行うと、該当部分のロジックコーンは修正前後において論理的に等価ではない。そのため、単純にＦＦを境界としたロジックコーンで論理等価検証を行うことはできない。
【００１０】
リタイミングを伴う回路変更を行ってＦＦを境界としたロジックコーンで論理等価検証を行ったとしても、ロジックコーン単位での検証において論理的に不一致であると判定されてしまう。そのため、設計担当者が、論理的に不一致と判断された複数のロジックコーンを組み合わせたときの動作を確認し、全体として正しい動作かどうかを判断する必要が生じ、非常に手間がかかる。
【００１１】
ところで、リタイミングを伴う回路変更は、非同期クロック間データ転送を行う部分において生じやすい。すなわち、非同期クロック間データ転送を行う部分では、データや制御信号の値を転送前に確定させるために組合せ論理の箇所を変更する場合がある。これにより、非同期クロックの乗り換え箇所（非同期箇所）でリタイミングが発生する。そこで、非同期クロック間データ転送を行う部分におけるリタイミングを伴う回路修正に関して、コンピュータなどの装置による論理等価検証が可能であれば、リタイミングを伴う回路修正前後における論理等価検証の作業効率が飛躍的に向上する。
【００１２】
本発明はこのような点に鑑みてなされたものであり、非同期箇所でのリタイミングを伴う回路変更前後での論理等価検証が可能な論理等価検証装置、論理等価検証方法、および論理等価検証プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、修正前回路と修正前回路を修正して得られた修正後回路との論理等価検証処理を行う論理等価検証装置が提供される。論理等価検証装置は、非同期箇所抽出部、修正後回路モデリング部、マッチング部、修正前回路モデリング部、および比較検証部を有する。
【００１４】
非同期箇所抽出部は、修正後回路を記憶する修正後回路記憶部を参照し、修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する。修正後回路モデリング部は、非同期箇所抽出部で抽出した非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとする。そして、修正後回路モデリング部は、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、修正後回路内の対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する。マッチング部は、モデリング済修正後回路と修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行う。修正前回路モデリング部は、モデリングデータ記憶部を参照し、修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する。比較検証部は、モデリング済修正前回路とモデリング済修正後回路との対応するロジックコーンを生成する。そして、比較検証部は、モデリング済修正前回路とモデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う。
【００１５】
このような論理等価検証装置によれば、修正後回路中で非同期のデータ転送が行われる非同期箇所が抽出される。次に、抽出された非同期箇所の前後のフリップフロップの少なくとも一部が対象フリップフロップとされ、修正後回路内の対象フリップフロップを組合せ回路に置き換えたモデリング済修正後回路が生成される。さらに、モデリング済修正後回路と修正前回路とのフリップフロップ同士を対応づけるマッチング処理が行われる。その後、修正前回路内のロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えたモデリング済修正前回路が生成される。そして、モデリング済修正前回路とモデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証が行われる。
【発明の効果】
【００１６】
上記論理等価検証装置では、リタイミングを伴う修正が行われていても、フリップフロップを境界とするロジックコーンによる論理等価検証による修正前後での論理的な等価性を検証することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、実施の形態の概要を示す図である。論理等価検証装置１は、修正前回路と修正前回路を修正して得られた修正後回路との論理等価検証処理を行うため、モデリングデータ記憶部１ａ、非同期箇所抽出部１ｂ、修正後回路モデリング部１ｃ、マッチング部１ｄ、修正前回路モデリング部１ｅ、および比較検証部１ｆを有する。
【００１８】
モデリングデータ記憶部１ａは、フリップフロップ（ＦＦ）に対応する組合せ回路を記憶する。
非同期箇所抽出部１ｂは、修正後回路を記憶する修正後回路記憶部３を参照し、修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する。
【００１９】
修正後回路モデリング部１ｃは、非同期箇所抽出部１ｂで抽出した非同期箇所の前後のＦＦの少なくとも一部を対象ＦＦとする。そして、修正後回路モデリング部１ｃは、モデリングデータ記憶部１ａを参照し、修正後回路内の対象ＦＦを組合せ回路に置き換えてモデリング済修正後回路を生成する。
【００２０】
マッチング部１ｄは、モデリング済修正後回路と修正前回路のＦＦ同士を対応付ける。この際に用いられる手法は、特に限定しない。
修正前回路モデリング部１ｅは、モデリングデータ記憶部１ａを参照し、マッチング部１ｄにより対応付けられたＦＦを境界とするロジックコーンの範囲を修正前回路から抽出し、このロジックコーンの範囲に含まれるＦＦを組合せ回路に置き換えてモデリング済修正前回路を生成する。
【００２１】
比較検証部１ｆは、モデリング済修正前回路とモデリング済修正後回路において、マッチング部１ｄにより対応付けられたＦＦを境界とするロジックコーン同士の論理等価検証を行う。
【００２２】
このような論理等価検証装置１によれば、非同期箇所抽出部１ｂにより、修正後回路中で非同期のデータ転送が行われる非同期箇所が抽出される。次に、修正後回路モデリング部１ｃにより、抽出された非同期箇所の前後のＦＦの少なくとも一部が対象ＦＦとされ、修正後回路内の対象ＦＦを組合せ回路に置き換えたモデリング済修正後回路が生成される。さらに、マッチング部１ｄにより、モデリング済修正後回路と修正前回路とのフリップフロップ同士を対応づけるマッチング処理が行われる。その後、修正前回路モデリング部１ｅにより、修正前回路内のロジックコーンの範囲に含まれるＦＦを組合せ回路に置き換えたモデリング済修正前回路が生成される。そして、比較検証部１ｆにより、モデリング済修正前回路とモデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証が行われる。
【００２３】
このような論理等価検証装置１では、非同期箇所前後のＦＦを論理回路に置き換えた。そのため、非同期クロックの乗り換え箇所で、ＦＦを跨いだ論理変更（リタイミング）が発生した場合でも、ＦＦを境界としたロジックコーンによる論理等価検証手法によって等価検証が可能となっている。
【００２４】
以下、リタイミングが行われた場合の論理等価検証例を図２〜図５を参照して説明する。
図２は、電子回路の修正例を示す図である。図２には、大規模な電子回路の一部に対する修正例が示されている。上段に修正前回路２００が示され、下段に修正後回路２０１が示されている。
【００２５】
修正前回路２００は、データの入力側に４つのＦＦ２１１〜２１４が設けられている。ＦＦ２１１の出力は、セレクタ２３１に入力される。セレクタ２３１の出力はＦＦ２２１に入力される。ＦＦ２２１の出力は、セレクタ２３１に入力されると共に、組合せ回路２４１に入力される。また、ＦＦ２１２の出力も組合せ回路２４１に入力される。組合せ回路２４１の出力は、セレクタ２３２に入力される。セレクタ２３２の出力は、ＦＦ２２５に入力される。ＦＦ２２５の出力は、セレクタ２３２に入力されると共に、データ出力側のＦＦ２１５に入力される。
【００２６】
ＦＦ２１３の出力は、ＦＦ２２２に入力される。ＦＦ２２２の出力は、組合せ回路２４２に入力される。また、ＦＦ２１４の出力も、組合せ回路２４２に入力される。組合せ回路２４２の出力は、セレクタ２３１に対してイネーブル信号として入力されると共に、ＦＦ２２３に入力される。ＦＦ２２３の出力は、ＦＦ２２４に入力される。ＦＦ２２４の出力は、セレクタ２３２に対してイネーブル信号として入力される。
【００２７】
修正前回路２００は、実際にはＨＤＬ（Hardware Description Language）などで記述された回路データである。回路データにおいて、データ入力側のＦＦ２１１〜２１４には、それぞれ「ｉ１」、「ｉ２」、「ｉ３」、「ｉ４」という識別子が設定されている。また、ＦＦ２２１〜２２５には、それぞれ「ｆｆ１」、「ｆｆ２」、「ｆｆ３」、「ｆｆ４」、「ｆｆ５」という識別子が設定されている。さらに、データ出力側のＦＦ２１５には、「ｏ１」という識別子が設定されている。
【００２８】
なお、ＦＦ２１１〜２１４，２２１，２２２は、第１系統のクロック信号（ｃｌｋ１）に同期して動作する。また、ＦＦ２２３〜２２５，２１５は、第２系統のクロック信号（ｃｌｋ２）に同期して動作する。この場合、組合せ回路２４１からセレクタ２３２へのデータ転送、および組合せ回路２４２からＦＦ２２３へのデータ転送は、非同期クロック間のデータ転送である。ここで、非同期クロック間のデータ転送においてメタ・ステーブル問題が発生しないように、送受信タイミングを制御する信号（セレクタ２３２に入力されるイネーブル信号）にシンクロナイザが必要になる。シンクロナイザとは、非同期クロック間のデータ転送部分に設けられた多段のＤフリップフロップである。Ｄフリップフロップを２つ以上つなげることで、非同期クロック間データ転送における信号の同期化を図ることができる。図２の例では、ＦＦ２２３，２２４によってシンクロナイザが構成されている。
【００２９】
このような修正前回路２００に対して、データや制御信号の値を転送前に確定させるため、組合せ回路２４１，２４２の配置場所が変更されることがある。そのような変更を加えた回路が、修正後回路２０１である。
【００３０】
修正後回路２０１では、組合せ回路２４１の位置が、ＦＦ２１１とセレクタ２３１との間に移動している。すなわち、ＦＦ２１１，２１２の出力が組合せ回路２４１に入力され、組合せ回路２４１の出力がセレクタ２３１に入力されている。また、ＦＦ２２１の出力は、セレクタ２３２に直接入力されている。また、組合せ回路２４２の位置が、ＦＦ２１３とＦＦ２２２との間に移動している。すなわち、ＦＦ２１３，２１４の出力が組合せ回路２４２に入力され、組合せ回路２４２の出力がＦＦ２２２に入力されている。また、ＦＦ２２２の出力は、ＦＦ２２３に直接入力されている。
【００３１】
このような修正を施した場合、非同期箇所でリタイミングが発生する。このとき修正前回路２００と修正後回路２０１とのそれぞれにおいてＦＦ２２１〜２２５を境界とするロジックコーンを生成すると、ＦＦ２２２を始点としＦＦ２１３，２１４を終点とするロジックコーン２６１，２６２が生成される。修正前回路２００で生成されたロジックコーン２６１には組合せ回路２４２が含まれていない。一方、修正後回路２０１で生成されたロジックコーン２６２には、組合せ回路２４２が含まれている。従って、２つのロジックコーン２６１，２６２の論理等価検証を行うと、正しい修正が行われたとしても不一致の結果となる。
【００３２】
そこで、論理等価検証が可能なように一部のＦＦをモデリングする。モデリングとは、ここではＦＦを論理回路に置き換える処理である。ＦＦのモデリングには、特開平７−８５１１３号公報の技術を使用することができる。このとき、モデリングするＦＦの数が多くなる程、個々のロジックコーンの回路規模が大きくなり、論理等価検証の処理負荷が増大する。そのため、必要最小限のＦＦについてのみモデリングする必要がある。
【００３３】
本実施の形態では、非同期クロックの乗り換え箇所を抽出し、そこから前後１段ずつのＦＦについてモデリングを行う。ＦＦをモデリングし組合せ回路に置き換えることで、リタイミングが発生した箇所をまとめて１つのロジックコーンとして扱うことが可能となる。
【００３４】
図３は、修正前回路のモデリング例を示す図である。修正前回路２００のうちクロック乗り換え箇所から前後１段ずつのＦＦ２２１，２２２，２２３，２２５が、組合せ回路２７１〜２７４に置き換えられている。この際、ＦＦの出力がそのＦＦの入力側のセレクタに入力されている場合、セレクタも含めたモデリングが行われる。また、組合せ回路２７１〜２７４のうちの未使用のポートは、論理に影響を与えないよう入力信号が１にクリップ（固定）される。なお、ＦＦ２２１，２２２，２２３，２２５において、クロック信号は出力値を確定するタイミングを制御するものであり、出力の論理値には直接関与しない。そのため、置き換え後の組合せ回路２７１〜２７４では、クロック信号の入力は削除されている。
【００３５】
図４は、修正後回路のモデリング例を示す図である。修正後回路２０１のうちクロック乗り換え箇所から前後１段ずつのＦＦ２２１，２２２，２２３，２２５が、組合せ回路２７５〜２７８に置き換えられている。この際、ＦＦの出力がそのＦＦの入力側のセレクタに入力されている場合、セレクタも含めたモデリングが行われ、組合せ回路２７５〜２７８のうちの未使用のポートは入力信号が１にクリップ（固定）され、クロック信号の入力は削除されている。
【００３６】
このように、修正前回路２００と修正後回路２０１とに対して、一部のＦＦのモデリング処理を行う。
図５は、モデリング済の修正前回路と修正後回路との比較検証状況を示す図である。モデリング済修正前回路２０２においてＦＦを境界としたロジックコーンを生成すると、ＦＦ２１５を始点としＦＦ２１１〜２１４を終点とするロジックコーン２８１と、ＦＦ２２４を始点としＦＦ２１３，２１４を終点とするロジックコーン２８２とが生成される。同様に、モデリング済修正後回路２０３においてＦＦを境界としたロジックコーンを生成すると、ＦＦ２１５を始点としＦＦ２１１〜２１４を終点とするロジックコーン２８３と、ＦＦ２２４を始点としＦＦ２１３，２１４を終点とするロジックコーン２８４とが生成される。
【００３７】
ここで、モデリング済修正前回路２０２のロジックコーン２８１とモデリング済修正後回路２０３のロジックコーン２８３とが比較検証され、モデリング済修正前回路２０２のロジックコーン２８２とモデリング済修正後回路２０３のロジックコーン２８４とが比較検証される。これらの比較対象のロジックコーンは、データや制御信号の値の確定タイミングが異なるだけであり、動作内容に変更はない。従って、回路の修正が正しく行われていれば論理等価検証で等価であると判定され、誤りがあれば不一致であると判定される。
【００３８】
以上のようにして、回路修正でリタイミングが発生しても、ＦＦを境界として生成したロジックコーンに基づいて論理等価検証装置１による演算処理で論理等価検証を行うことができる。その結果、リタイミング部分の論理的な等価性を、人手により確認する必要がなくなる。
【００３９】
しかも、非同期箇所前後のＦＦのみをモデリングしているため、比較検証を行う個々のロジックコーンの規模の大規模化は、最小限に抑えられている。従って、比較検証にかかる処理量の増加も最小限に抑えられる。
【００４０】
なお、図１に示した論理等価検証装置１の機能は、コンピュータによって実現可能である。そこで、以下に、論理等価検証をコンピュータで行う場合の実施の形態を詳細に説明する。
【００４１】
図６は、本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００４２】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００４３】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置がある。
【００４４】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４５】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００４６】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図７は、論理等価検証機能を示すブロック図である。コンピュータ１００は、修正前回路記憶部１１０、修正後回路記憶部１２０、および論理等価検証部１３０を有している。
【００４７】
修正前回路記憶部１１０は、修正前の電子回路を示す回路データを記憶する。例えば、ＨＤＤ１０３の記憶領域の一部が、修正前回路記憶部１１０として使用される。修正前回路記憶部１１０には、例えば、ＨＤＬで記述された回路データが記憶される。この例では、図２に示した修正前回路２００を包含する回路データが、修正前回路記憶部１１０に記憶されているものとする。
【００４８】
修正後回路記憶部１２０は、修正後の電子回路を示す回路データを記憶する。例えば、ＨＤＤ１０３の記憶領域の一部が、修正後回路記憶部１２０として使用される。修正後回路記憶部１２０には、例えば、ＨＤＬで記述された回路データが記憶される。この例では、図２に示した修正後回路２０１を包含する回路データが、修正後回路記憶部１２０に記憶されているものとする。
【００４９】
論理等価検証部１３０は、修正前回路２００と修正後回路２０１とが論理的に等価であることを比較検証する。そのために、論理等価検証部１３０は、モデリングデータ記憶部１３１、デザイン読み込み部１３２、非同期箇所抽出部１３３、修正後回路モデリング部１３４、マッチング部１３５、マッチングデータ記憶部１３５ａ、修正前回路モデリング部１３６、比較検証部１３７、およびレポート出力部１３８を有している。
【００５０】
モデリングデータ記憶部１３１は、ＦＦのモデリングをするときの組合せ回路を記憶している。例えば、ＨＤＤ１０３の記憶領域の一部が、モデリングデータ記憶部１３１として使用される。
【００５１】
デザイン読み込み部１３２は、ユーザからの論理等価検証を指示する操作入力に応答して、修正前後の回路データを読み込む。具体的には、デザイン読み込み部１３２は、修正前の回路データを修正前回路記憶部１１０から読み込み、修正後の回路データを修正後回路記憶部１２０から読み込む。読み込んだ回路データは、論理等価検証部１３０が管理するＲＡＭ１０２内の記憶領域に格納される。
【００５２】
非同期箇所抽出部１３３は、修正後回路２０１に基づいて非同期箇所を抽出する。具体的には、非同期箇所抽出部１３３は、修正後回路２０１に含まれるＦＦに入力されるクロック信号の系統を判別する。修正後回路２０１の回路データには、各ＦＦのクロック信号の識別子が設定されており、非同期箇所抽出部１３３は、その識別子によってクロック信号の系統を識別できる。そして、非同期箇所抽出部１３３は、修正後回路２０１で示されるＦＦ間の接続関係に基づいて、異なる系統に属するＦＦが隣接している部分を検出する。そして、非同期箇所抽出部１３３は、検出した部分のＦＦの識別情報を、非同期箇所として抽出する。
【００５３】
修正後回路モデリング部１３４は、修正後回路２０１に含まれるＦＦのうち、非同期箇所の前後のＦＦについてモデリングする。具体的には、修正後回路モデリング部１３４は、モデリングデータ記憶部１３１からＦＦの組合せ回路を取得する。次に、修正後回路モデリング部１３４は、修正後回路２０１内の非同期箇所として抽出されたＦＦを組合せ回路に置き換え、モデリング済修正後回路２０３とする。
【００５４】
マッチング部１３５は、修正前回路２００とモデリング済修正後回路２０３とのマッチングを行う。これにより、モデリング済修正後回路２０３のモデリング範囲（モデリングされた組合せ回路を包含するロジックコーン）に対応する修正前回路２００のモデリング範囲が決定できる。具体的には、マッチング部１３５は、修正前回路２００とモデリング済修正後回路２０３のロジックコーンの始点となるＦＦ同士の対応付けを行う。そして、マッチング部１３５は、その対応情報をマッチングデータ記憶部１３５ａに保存する。
【００５５】
マッチングデータ記憶部１３５ａは、修正前回路２００とモデリング済修正後回路２０３とのロジックコーンの始点となるＦＦ同士の対応情報を記憶する。例えば、ＲＡＭ１０２の記憶領域の一部がマッチングデータ記憶部１３５ａとして使用される。
【００５６】
修正前回路モデリング部１３６は、マッチングデータ記憶部１３５ａを参照し、修正後回路２０１でモデリングされた範囲の始点と終点となるＦＦと対応付けられたＦＦを起点とし、修正前回路２００の出力側からバックトレース、入力側からフォワードトレースを行う。これにより、修正前回路モデリング部１３６は、修正後回路２０１のモデリング範囲を決定する。ここで、バックトレースとは、信号の入力方向へと信号線を辿ることである。また、フォワードトレースとは、信号の出力方向へと信号線を辿ることである。そして、修正前回路モデリング部１３６は、修正前回路２００のモデリング範囲に含まれるＦＦをモデリングする。具体的には、修正前回路モデリング部１３６は、モデリングデータ記憶部１３１からＦＦの組合せ回路を取得する。次に、修正前回路モデリング部１３６は、マッチングデータ記憶部１３５ａより修正前回路２００内のモデリング範囲の始点と終点となるＦＦを取得し、その範囲に含まれるＦＦを組合せ回路に置き換え、モデリング済修正前回路２０２とする。
【００５７】
比較検証部１３７は、モデリング済修正前回路２０２と、モデリング済修正後回路２０３との比較検証を行う。具体的には、比較検証部１３７は、マッチングデータ記憶部１３５ａに保存されているペアとなった２つのロジックコーンを比較し、論理的に等価か否かを検証する。
【００５８】
レポート出力部１３８は、ロジックコーンのペアに対する比較検証結果を、レポート２０として出力する。
次に、モデリングデータ記憶部１３１に格納されているＦＦに対応する組合せ回路について説明する。
【００５９】
図８は、モデリングデータ記憶部に格納された組合せ回路を示す図である。モデリング対象回路１３１ａは、入力側にセレクタ３１が接続されたＦＦ３２である。セレクタ３１には、データ（ＤＡＴＡ）と、ＦＦ３２の出力信号（Ｑ）とが入力されている。また、セレクタ３１には、データの出力タイミングを制御するイネーブル信号（ＥＮ）が入力されている。すなわち、セレクタ３１は、イネーブル信号（ＥＮ）が入力されたタイミングで、データ（ＤＡＴＡ）を出力する。ＦＦ３２には、セット信号（ＳＥＴ）とリセット信号（ＲＥＳＥＴ）とが入力されている。
【００６０】
このようなモデリング対象回路１３１ａをモデリングしたときのモデリングデータ１３１ｂでは、イネーブル信号（ＥＮ）とデータ（ＤＡＴＡ）とがＡＮＤ回路（論理積回路）４１に入力される。ＡＮＤ回路４１の出力と、反転したセット信号（ＳＥＴ）とがＯＲ回路（論理和回路）４２に入力される。ＯＲ回路４２の出力とリセット信号（ＲＥＳＥＴ）とがＡＮＤ回路４３に入力される。そして、ＡＮＤ回路４３の出力が、モデリングデータ１３１ｂに示される組合せ回路の出力信号（Ｑ）となる。
【００６１】
このようなモデリングデータ１３１ｂによって、修正前回路２００および修正後回路２０１内の非同期クロック間データ転送部分のＦＦを組合せ回路に置き換えることができる。なお、このようなＦＦから組合せ回路への置き換えについては、特開平７−８５１１３号公報の技術を使用できる。
【００６２】
以上のような機能を有するコンピュータ１００によって、ユーザからの操作入力に応答して、論理等価検証が行われる。以下、論理等価検証処理を手順に沿って詳細に説明する。
【００６３】
まず、論理等価検証を指示する操作入力が行われると、デザイン読み込み部１３２によって、修正前回路記憶部１１０から修正前回路２００が読み込まれ、修正後回路記憶部１２０から修正後回路２０１が読み込まれる。次に、非同期箇所抽出部１３３によって、修正後回路２０１に基づいて非同期箇所（クロック乗り換え箇所）が検出される。
【００６４】
図９は、非同期箇所検出例を示す図である。図９には、非同期箇所を含む修正後回路２０１が示されている。非同期箇所検出処理では、非同期箇所抽出部１３３が、全てのＦＦについてクロックの系統を判断する。そして、隣接するＦＦのクロック系統が同一か否かを判断する。以下の条件のいずれかを満たせば、クロック系統が同一と判断できる。
【００６５】
（１）回路データで予め設定されているクロック名が同じである。
（２）回路データで予め設定されているクロックドメイングループが同じである。
（３）クロック信号のバックトレースにより、同一クロック信号の入力が確認できる。
【００６６】
図９の例では、ＦＦ２１１〜２１４，２２１，２２２は、第１系統のクロック信号（ｃｌｋ１）に同期している。また、ＦＦ２２３〜２２５，２１５は、第２系統のクロック信号（ｃｌｋ２）に同期している。そこで、非同期箇所抽出部１３３は、ＦＦ間の接続関係のみに着目し（間に挟まるＦＦ以外の組合せ回路は考慮せずに）、隣接するＦＦのクロックの系統が同一か否かを判断する。そして、異なるクロック系統のＦＦが隣接していた場合には、隣接するＦＦの間がクロック乗り換え箇所５１，５２と判断される。
【００６７】
図９の例では、ＦＦ２２１とＦＦ２２５との間がクロック乗り換え箇所５１である。同様に、ＦＦ２２２とＦＦ２２３とを接続する信号線がクロック乗り換え箇所５２となる。
クロック乗り換え箇所が検出されると、修正後回路モデリング部１３４によって、修正後回路２０１内のＦＦがモデリングされる。なお、修正後回路２０１に対するＦＦのモデリング条件は、以下の通りである。
【００６８】
（１）非同期箇所から、前後１段のＦＦを対象とする。ただし、２段目にＦＦがある場合は、１段目と２段目とが同一系統かつ同一エッジ（互いのクロック信号が反転していない）であること。
【００６９】
（２）ＦＦの出力がフィードバックするイネーブル信号として扱われるセレクタが、ＦＦのデータ入力端子の直前に存在する場合、そのセレクタも含めてモデリングする。
このモデリング条件を図９の修正後回路２０１に当てはめると、まず、クロック乗り換え箇所５１，５２の前後１段のＦＦ２２１，２２２，２２３，２２５がモデリング候補となる。ＦＦ２２１の２段目のＦＦ２１１，２１２は、同一系統かつ同一エッジである。また、ＦＦ２２１には、ＦＦ２２１の出力がフィードバックするイネーブル信号として扱われるセレクタ２３１が、データ入力端子の直前に存在する。従って、ＦＦ２２１とセレクタ２３１とがモデリング対象となる。同様に、ＦＦ２２５に関しても、セレクタ２３２とＦＦ２２５とがモデリング対象となる。
【００７０】
ＦＦ２２２の２段目のＦＦ２１３，２１４は、同一系統かつ同一エッジである。また、ＦＦ２２２の直前にはセレクタは存在しない。従って、ＦＦ２２２単体でモデリングの対象となる。同様にＦＦ２２３も、ＦＦ２２３単体でモデリングの対象となる。
【００７１】
修正後回路モデリング部１３４は、モデリング対象であるＦＦを、モデリングデータ記憶部１３１に示される組合せ回路に置き換える。このとき、組合せ回路のうち、使用されないポートがある場合、そのポートの信号を１にクリップする。
【００７２】
図１０は、ＦＦのモデリング例を示す図である。図１０には、セレクタ２３１とＦＦ２２１とのセットおよびＦＦ２２２を、それぞれ組合せ回路２７５，２７６に置き換えた例である。
【００７３】
組合せ回路２７５は、図８に示したモデリングデータ１３１ｂと同じように接続されたＡＮＤ回路２７５ａ、ＯＲ回路２７５ｂ、およびＡＮＤ回路２７５ｃで構成されている。このとき、モデリング前のセレクタ２３１に入力されていたデータ（ＤＡＴＡ）とイネーブル信号（ＥＮ）とは、ＡＮＤ回路２７５ａの入力となる。なお、モデリング前の回路において、組合せ回路２７５のＯＲ回路２７５ｂに入力されるセット信号（ＳＥＴ）と、ＡＮＤ回路２７５ｃに入力されるリセット信号（ＲＥＳＥＴ）とに対応する信号がない。そこで、これらの入力ポートの値は１にクリップされる。
【００７４】
組合せ回路２７６は、図８に示したモデリングデータ１３１ｂと同じように接続されたＡＮＤ回路２７６ａ、ＯＲ回路２７６ｂ、およびＡＮＤ回路２７６ｃで構成されている。このとき、モデリング前のＦＦ２２２に入力されていたデータ（ＤＡＴＡ）は、ＡＮＤ回路２７６ａの入力となる。なお、モデリング前の回路において、組合せ回路２７５のＡＮＤ回路２７６ａに入力されるイネーブル信号（ＥＮ）、ＯＲ回路２７６ｂに入力されるセット信号（ＳＥＴ）、およびＡＮＤ回路２７６ｃに入力されるリセット信号（ＲＥＳＥＴ）に対応する信号がない。そこで、これらの入力ポートの値は１にクリップされる。
【００７５】
マッチング部１３５は、モデリングが終了すると、モデリング済修正後回路２０３においてＦＦを境界とするロジックコーンにおける始点と終点とを判断する。
図１１は、モデリング済修正後回路のロジックコーンにおける始点と終点とを示す図である。図９に示されるＦＦ２２１，２２２，２２３，２２５が組合せ回路２７５，２７６，２７７，２７８に置き換えられたことにより、ＦＦ２１５を始点とするロジックコーンの終点はＦＦ２１１〜２１４となる（図１１中、始点と終点とを破線で示す）。また、ＦＦ２２４を始点とするロジックコーンの終点はＦＦ２１３，２１４となる（図１１中、始点と終点とを一点鎖線で示す）。
【００７６】
そして、マッチング部１３５は、モデリング済修正後回路２０３から得られたロジックコーンの始点、および終点となるＦＦの名前をＲＡＭ１０２に保存する。次に、修正前回路２００のモデリングが行われる。修正前回路２００のモデリング条件は以下の通りである。
【００７７】
（１）修正後回路２０１でＦＦをモデリング後に生成されるロジックコーンと同じ範囲（ｏ１→ｉ１，ｉ２，ｉ３，ｉ４）を修正前回路２００のＦＦのモデリング範囲とする。
（２）修正前回路２００で、モデリング済修正後回路２０３のロジックコーンの始点に対応する位置からバックトレース、終点に対応する位置からフォワードトレースを行い、始点または終点と同一系統・同一エッジの１段目のＦＦをモデリング対象とする。
【００７８】
（３）バックトレース中に別のロジックコーンの始点・終点に到達した場合、トレースは終了とする。
修正前回路２００のモデリングをする場合、まず、マッチング部１３５が、モデリング済修正後回路２０３のＦＦと修正前回路２００のＦＦとの対応付けを行う。そして、修正前回路モデリング部１３６は、モデリング済修正後回路２０３から得られたロジックコーンの始点、および終点となるＦＦに対応する修正前回路２００内のＦＦを、新しくロジックコーンの始点、および終点とする。
【００７９】
図１２は、修正前回路のロジックコーンの始点と終点とを示す図である。モデリング済修正後回路２０３のロジックコーンの始点と終点とに対応する修正前回路２００内のＦＦが、修正前回路２００の新たなロジックコーンの始点と終点となる。
【００８０】
修正前回路２００のロジックコーンの始点と終点が定まると、修正前回路モデリング部１３６が、新たなロジックコーン内をモデリング範囲とする。具体的には、修正前回路モデリング部１３６は、修正前回路２００で、ロジックコーンの始点からバックトレースを行うと共に、終点からフォワードトレースを行う。そして、修正前回路モデリング部１３６は、バックトレース、フォワードトレースにおける１段目の同一系統・同一エッジのＦＦをモデリング対象として決定する。図１２の例では、ＦＦ２１５からバックトレースした１段目のＦＦ２２５がモデリング対象となる。
【００８１】
修正前回路モデリング部１３６は、モデリング対象として決定したＦＦを、モデリングデータ記憶部１３１内のモデリングデータ１３１ｂに従ってモデリングする。その結果、図３に示したようなモデリング済修正前回路２０２が生成される。そして、比較検証部１３７によって、図５に示すようなロジックコーンのペア同士で、比較検証が行われる。すべてのロジックコーンのペアに関する比較検証で、論理的に等価であると判定された場合、修正前回路２００と修正後回路２０１とは論理的に等価であると判断される。比較検証の結果は、レポート２０として出力される。レポート２０は、ＨＤＤ１０３に格納されると共にモニタ１１に表示される。
【００８２】
次に、非同期箇所抽出処理、修正後回路モデリング処理、および修正前回路モデリング処理の手順を、図１３〜図１５を参照して詳細に説明する。
まず、非同期箇所抽出処理について説明する。
【００８３】
図１３は、非同期箇所抽出処理の手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］非同期箇所抽出部１３３は、修正後回路２０１を参照し、入力クロック毎に、各ＦＦに対してクロックドメインを設定する。具体的には、非同期箇所抽出部１３３は、回路に入力されるクロック信号を順に選択する。そして、非同期箇所抽出部１３３は、選択したクロック信号をＦＦに到達するまでフォワードトレースする。非同期箇所抽出部１３３は、同一クロック信号からフォワードトレースによって到達したＦＦを同一のクロックドメインとする。非同期箇所抽出部１３３は、各ＦＦに対して、そのＦＦのクロックドメインを一意に識別する識別子を設定する。
【００８４】
［ステップＳ１２］非同期箇所抽出部１３３は、修正後回路２０１からＦＦ一覧を抽出する。
［ステップＳ１３］非同期箇所抽出部１３３は、ステップＳ１２で抽出したＦＦ一覧から、未選択のＦＦを１つ選択する。
【００８５】
［ステップＳ１４］非同期箇所抽出部１３３は、選択したＦＦにクロックドメインが設定されていないか否かを判断する。例えば、クロック信号を発生させる内部回路を介してクロック信号が入力されているＦＦの場合、ステップＳ１１の処理においてクロックドメインが設定されない。選択したＦＦにクロックドメインが設定されていない場合、処理がステップＳ１５に進められる。選択したＦＦにクロックドメインが設定されている場合、処理がステップＳ１６に進められる。
【００８６】
［ステップＳ１５］非同期箇所抽出部１３３は、選択したＦＦに対して独自のクロックドメインを示す識別子を設定する。
［ステップＳ１６］非同期箇所抽出部１３３は、選択したＦＦからバックトレースし、前段のＦＦを検出する。
【００８７】
［ステップＳ１７］非同期箇所抽出部１３３は、選択したＦＦと前段のＦＦとの間が非同期か否かを判断する。具体的には、非同期箇所抽出部１３３は、選択したＦＦと前段のＦＦとのクロックドメインが同一であれば同期していると判断し、クロックドメインが異なれば非同期であると判断する。同期していれば処理がステップＳ１９に進められる。非同期であれば処理がステップＳ１８に進められる。
【００８８】
［ステップＳ１８］非同期箇所抽出部１３３は、選択したＦＦと前段のＦＦとの識別子を、非同期箇所一覧へ出力する。なお、非同期箇所一覧は、ＲＡＭ１０２内に格納されている。
【００８９】
［ステップＳ１９］非同期箇所抽出部１３３は、すべてのＦＦに対して処理を行ったか否かを判断する。すべてのＦＦに対して処理が完了していれば非同期箇所抽出処理を終了する。未処理のＦＦがあれば、処理がステップＳ１３に進められる。
【００９０】
このようにして、非同期箇所が検出され、非同期箇所一覧に非同期箇所が設定される。
図１４は、非同期箇所一覧の例を示す図である。非同期箇所一覧６０には、複数の非同期箇所情報６１，６２が登録されている。非同期箇所情報６１，６２には、非同期箇所の前段のＦＦの識別子と後段のＦＦの識別子との対が設定されている。また、各ＦＦの識別子には、そのＦＦのクロックドメインを示す識別子が付与されている。非同期箇所一覧６０の非同期箇所情報６１は、図９に示したクロック乗り換え箇所５１を示している。また、非同期箇所一覧６０の非同期箇所情報６２は、図９に示したクロック乗り換え箇所５２を示している。
【００９１】
このような非同期箇所一覧６０がＲＡＭ１０２内に格納され、修正後回路モデリング部１３４で参照可能な状態に置かれる。
次に、修正後回路モデリング処理について説明する。
【００９２】
図１５は、修正後回路モデリング処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］修正後回路モデリング部１３４は、非同期箇所一覧６０から未処理の非同期箇所情報を１つ選択する。
【００９３】
［ステップＳ２２］修正後回路モデリング部１３４は、選択した非同期箇所情報に示される非同期箇所からトレースを行い前後１段目のＦＦをモデリング候補とする。さらに、修正後回路モデリング部１３４は、前後２段目のＦＦを検索する。
【００９４】
［ステップＳ２３］修正後回路モデリング部１３４は、２段目のＦＦが存在したか否かを判断する。２段目のＦＦが存在すれば、処理がステップＳ２４に進められる。２段目のＦＦが存在しなければ処理がステップＳ２５に進められる。
【００９５】
［ステップＳ２４］修正後回路モデリング部１３４は、１段目のＦＦと２段目のＦＦとのクロック信号が同一系統か否かを判断する。具体的には、１段目のＦＦと２段目のＦＦとのそれぞれに設定されたクロックドメインの識別子が共通であれば、同一系統と判断される。同一系統であれば処理がステップＳ２５に進められる。同一系統でなければ処理がステップＳ２９に進められる。
【００９６】
［ステップＳ２５］修正後回路モデリング部１３４は、１段目のＦＦの直前に、そのＦＦの出力がフィードバックされたセレクタがあるか否かを判断する。該当するセレクタがあれば、処理がステップＳ２６に進められる。該当するセレクタがなければ、処理がステップＳ２７に進められる。
【００９７】
［ステップＳ２６］修正後回路モデリング部１３４は、１段目のＦＦの直前のセレクタを省略する。具体的には、修正後回路モデリング部１３４は、該当するセレクタに対する入力を、ＦＦへの入力とする。また、修正後回路モデリング部１３４は、セレクタへの制御入力をＦＦへのイネーブル信号入力とする。
【００９８】
［ステップＳ２７］修正後回路モデリング部１３４は、１段目のＦＦを組合せ回路に置き換える。具体的には、修正後回路モデリング部１３４は、モデリングデータ記憶部１３１から組合せ回路のモデリングデータ１３１ｂを取得する。そして、修正後回路２０１における非同期箇所の前後１段のＦＦをモデリングデータ１３１ｂで示される組合せ回路に置き換える。この際、未使用ポートの入力は１にクリップする。
【００９９】
［ステップＳ２８］修正後回路モデリング部１３４は、ステップＳ２２で検出した２段目のＦＦの識別子をモデリング範囲リストに出力する。なお、モデリング範囲リストはＲＡＭ１０２内に設けられる。
【０１００】
［ステップＳ２９］修正後回路モデリング部１３４は、非同期箇所一覧６０に登録されたすべての非同期箇所情報を処理したか否かを判断する。すべての非同期箇所情報についての処理が完了していれば、修正後回路モデリング処理が終了する。未処理の非同期箇所情報があれば、処理がステップＳ２１に進められる。
【０１０１】
図１６は、モデリング範囲リストの例を示す図である。モデリング範囲リスト７０には、モデリング範囲情報７１，７２が登録されている。モデリング範囲情報は、モデリング範囲の出力側のＦＦの識別子（図中、左側の値）と、入力側のＦＦの識別子（図中、右側の値）とが設定される。モデリング範囲情報７１，７２に設定されるＦＦは、モデリング範囲を１つのロジックコーンとしたときの始点と終点とに相当する。
【０１０２】
次に、修正前回路モデリング処理について説明する。
図１７は、修正前回路モデリング処理を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１０３】
［ステップＳ３１］修正前回路モデリング部１３６は、モデリング範囲リスト７０を参照し、未処理のモデリング範囲情報を１つ選択する。
［ステップＳ３２］修正前回路モデリング部１３６は、修正前回路２００に対し、選択したモデリング範囲情報で示される出力側のＦＦからバックトレースを行い、入力側のＦＦからフォワードトレースを行う。
【０１０４】
なお、モデリング範囲リスト７０のモデリング範囲情報に設定されているＦＦの識別子は、モデリング済修正後回路２０３のＦＦを示すものである。図２〜図５に示したように、本実施の形態では説明を分かりやすくするため、修正前回路２００と修正後回路２０１との対応関係にあるＦＦを同じ識別子で表している。しかし、実際には、回路の修正前後において、対応するＦＦに同じ識別子が割り当てられるとは限らない。そのため、マッチング部１３５によってマッチング処理を行い、修正前回路２００と修正後回路２０１とのＦＦ間の対応関係が判断される。修正前回路モデリング部１３６は、マッチング部１３５によってマッチングデータ記憶部１３５ａに格納された情報を参照し、モデリング済修正後回路２０３と修正前回路２００とのＦＦ間の対応関係を認識する。そして、修正前回路モデリング部１３６は、モデリング範囲リスト７０に示されるＦＦに対応する修正前回路２００内のＦＦを判断し、バックトレースおよびフォワードトレースを行う。
【０１０５】
［ステップＳ３３］修正前回路モデリング部１３６は、別モデリング範囲に到達したか否かを判断する。例えば、バックトレースにより到達したＦＦの識別子がモデリング範囲リスト７０内のいずれかのモデリング範囲情報の出力側のＦＦとして設定されていれば、別モデリング範囲に到達したものと判断される。別モデリング範囲に到達した場合、処理がステップＳ３５に進められる。別モデリング範囲に到達していなければ、処理がステップＳ３４に進められる。
【０１０６】
［ステップＳ３４］修正前回路モデリング部１３６は、ステップＳ３２のバックトレース、フォワードトレースによる１段目の同一系統のＦＦを組合せ回路に置き換える。
［ステップＳ３５］修正前回路モデリング部１３６は、すべてのモデリング範囲情報に対して処理を行ったか否かを判断する。すべてのモデリング範囲情報の処理が完了していれば、修正前回路モデリング処理を終了する。未処理のモデリング範囲情報があれば、処理がステップＳ３１に進められる。
【０１０７】
モデリング済修正前回路２０２が生成されると、比較検証部１３７によって、図５に示したようなロジックコーン単位での比較検証が行われる。そして、比較されたロジックコーン同士が論理的に等価であれば、その旨の比較結果が出力される。比較されたロジックコーン同士が論理的に等価でなければ、不等価である旨の比較結果が出力される。比較結果を示すレポート２０は、レポート出力部１３８によって出力される。
【０１０８】
設計担当者は、レポート２０を参照して、回路修正の適否を判断する。すなわち、すべてのロジックコーンの比較検証結果が等価であると判定されれば、回路修正が正しく行われたことが分かる。また、不等価であると判断されたロジックコーンがあれば、そのロジックコーンの修正内容に間違いあるため、設計担当者は、修正後の回路を再確認する必要がある。
【０１０９】
このようにして、非同期クロックの乗り換え箇所でＦＦを跨いだ論理変更（リタイミング）が発生した場合でも、ＦＦを境界としたロジックコーンによる論理等価検証の手法を用いて等価検証が可能となる。
【０１１０】
なお、上記の処理機能は、各処理機能の処理内容を記述したプログラムをコンピュータで実行することにより、コンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１１１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１３】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１１４】
（付記１）  修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理を行う論理等価検証装置であって、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部と、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部と、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部と、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部と、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部と、
を有する論理等価検証装置。
【０１１５】
（付記２）  前記非同期箇所抽出部は、前記修正後回路内のフリップフロップ間の接続関係に着目し、互いに異なるクロック信号に基づくフリップフロップが隣接している場合、該当する２つのフリップフロップの間を非同期箇所と判断することを特徴とする付記１記載の論理等価検証装置。
【０１１６】
（付記３）  前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、２段のフリップフロップが存在する場合、１段目と２段目とのフリップフロップが同一系統のクロック信号に同期していれば１段目のフリップフロップを前記対象フリップフロップとすることを特徴とする付記１記載の論理等価検証装置。
【０１１７】
（付記４）  前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、２段目のフリップフロップが存在しない場合、１段目のフリップフロップを前記対象フリップフロップとすることを特徴とする付記１記載の論理等価検証装置。
【０１１８】
（付記５）  前記修正後回路モデリング部は、前記対象フリップフロップの直前に、前記対象フリップフロップの出力信号が入力されたセレクタが存在する場合、該当するセレクタを含めて組合せ回路に置き換えることを特徴とする付記１記載の論理等価検証装置。
【０１１９】
（付記６）  前記修正後回路モデリング部は、前記対象フリップフロップから置き換えた組合せ回路において不使用の入力ポートがある場合、該当する入力ポートの値を１に固定することを特徴とする付記１記載の論理等価検証装置。
【０１２０】
（付記７）  前記マッチング部は、前記対象フリップフロップから置き換えられた組合せ回路を包含するロジックコーンの出力側のフリップフロップを始点、入力側のフリップフロップを終点とし、前記修正前回路内の前記始点と前記終点とに対応するフリップフロップを検出し、検出されたフリップフロップに挟まれた範囲を前記モデリング範囲とすることを特徴とする付記１記載の論理等価検証装置。
【０１２１】
（付記８）  修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータで実行する論理等価検証方法であって、
前記コンピュータが、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出し、
抽出した前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成し、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行い、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成し、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う、
ことを特徴とする論理等価検証方法。
【０１２２】
（付記９）  修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータに実行させる論理等価検証プログラムであって、
前記コンピュータを、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部、
として機能させる論理等価検証プログラム。
【図面の簡単な説明】
【０１２３】
【図１】実施の形態の概要を示す図である。
【図２】電子回路の修正例を示す図である。
【図３】修正前回路のモデリング例を示す図である。
【図４】修正後回路のモデリング例を示す図である。
【図５】モデリング済の修正前回路と修正後回路との比較検証状況を示す図である。
【図６】本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図７】論理等価検証機能を示すブロック図である。
【図８】モデリングデータ記憶部に格納された組合せ回路を示す図である。
【図９】非同期箇所検出例を示す図である。
【図１０】ＦＦのモデリング例を示す図である。
【図１１】モデリング済修正後回路のロジックコーンにおける始点と終点とを示す図である。
【図１２】修正前回路のロジックコーンの始点と終点とを示す図である。
【図１３】非同期箇所抽出処理の手順を示すフローチャートである。
【図１４】非同期箇所一覧の例を示す図である。
【図１５】修正後回路モデリング処理の手順を示すフローチャートである。
【図１６】モデリング範囲リストの例を示す図である。
【図１７】修正前回路モデリング処理を示すフローチャートである。
【図１８】従来の等価性検証対象を示す図である。
【符号の説明】
【０１２４】
１  論理等価検証装置
１ａ  モデリングデータ記憶部
１ｂ  非同期箇所抽出部
１ｃ  修正後回路モデリング部
１ｄ  マッチング部
１ｅ  修正前回路モデリング部
１ｆ  比較検証部
２  修正前回路記憶部
３  修正後回路記憶部
【図１】
2009288922.tif 000003
【図２】
2009288922.tif 000004
【図３】
2009288922.tif 000005
【図４】
2009288922.tif 000006
【図５】
2009288922.tif 000007
【図６】
2009288922.tif 000008
【図７】
2009288922.tif 000009
【図８】
2009288922.tif 000010
【図９】
2009288922.tif 000011
【図１０】
2009288922.tif 000012
【図１１】
2009288922.tif 000013
【図１２】
2009288922.tif 000014
【図１３】
2009288922.tif 000015
【図１４】
2009288922.tif 000016
【図１５】
2009288922.tif 000017
【図１６】
2009288922.tif 000018
【図１７】
2009288922.tif 000019
【図１８】
2009288922.tif 000020