(57)【要約】【課題】ネットリストの生成後に、非同期回路を短時間に容易に検証する。【解決手段】論理合成手段２は論理合成によってネットリスト１１を生成し、抽出手段３は生成したネットリスト１１から遅延情報と非同期回路部１３を抽出し、遅延情報加工手段４は遅延情報１２を加工して非同期回路部１３の誤動作発生期間を引き延ばし、シミュレーション手段５は加工した遅延情報を用いて非同期回路の検証を行うことで、誤動作を発見しやすくなる。これによって、短時間に非同期回路の検証が可能となる。【選択図】図１
2008210189.tif 000002
【特許請求の範囲】
【請求項１】
非同期回路の検証を行う検証方法において、
論理合成手段がレジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成し、
抽出手段が前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出し、
遅延情報加工手段が前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばし、
シミュレーション手段が加工した前記遅延情報をもとに前記非同期回路の検証を行うことを特徴とする検証方法。
【請求項２】
前記遅延情報加工手段は、前記非同期回路部のうち、情報の受信側回路の入力端子に接続された配線の配線遅延値を変化させることで、前記誤動作発生期間を引き延ばすことを特徴とする請求項１記載の検証方法。
【請求項３】
前記遅延情報加工手段は、前記ネットリストの各回路セルの入力から出力までの遅延時間を０とするように前記遅延情報を加工することを特徴とする請求項１または２に記載の検証方法。
【請求項４】
前記遅延情報加工手段は、前記回路セルがフリップフロップの場合には、前記フリップフロップの入力端子に接続された配線の配線遅延値を、最小設定値とすることを特徴とする請求項１乃至３のいずれか一項に記載の検証方法。
【請求項５】
前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり側で前記最小設定値に、立ち下がり側で、前記受信側回路に入力されるクロック信号の周期から前記最小設定値を減じた値とすることを特徴とする請求項１乃至４のいずれか一項に記載の検証方法。
【請求項６】
前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり側で前記クロック信号の周期から前記最小設定値を減じた値にして、立ち下がり側で前記最小設定値とすることを特徴とする請求項１乃至５のいずれか一項に記載の検証方法。
【請求項７】
前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記最小設定値とすることを特徴とする請求項１乃至６のいずれか一項に記載の検証方法。
【請求項８】
前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記クロック信号の周期から前記最小設定値を減じた値とすることを特徴とする請求項１乃至７のいずれか一項に記載の検証方法。
【請求項９】
非同期回路の検証を行う検証装置において、
レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段と、
前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段と、
前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばす遅延情報加工手段と、
加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段と、
を有することを特徴とする検証装置。
【請求項１０】
非同期回路の検証を行う処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段、
前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段、
前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばす遅延情報加工手段、
加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は検証方法、検証装置及びプログラムに関し、特に非同期回路の検証を行う検証方法、検証装置及びプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の高機能化、高集積化に伴い、シミュレーションにより半導体集積回路の動作検証を精度よく、短時間で行うことが必要となっている。特に近年では、互いに異なるクロック信号により動作する回路部同士が接続された非同期箇所で生じる誤動作を検証する非同期検証が重要になっている。
【０００３】
図１３は、従来の回路設計と検証の流れを示すフローチャートである。
図ではさらに、生成した各種のデータを記憶するデータベース８０、８１、８２、８３を示している。
【０００４】
ＬＳＩ（Large Scale Integrated circuit）の回路設計では、まず、ハードウェア記述言語（ＨＤＬ）を用いて、回路の論理機能をレジスタ・トランスファ・レベル（ＲＴＬ）で記述する（ステップＳ８０）。その後、ＲＴＬのシミュレーションによる論理検証を行い、回路の論理機能動作を確認する（ステップＳ８１）。論理機能動作が期待通りでなかった場合は、ステップＳ８０に戻り再度ＲＴＬでの回路記述を行う。
【０００５】
論理機能動作が期待通りであった場合には、論理合成を行いゲートレベルのネットリストを生成する（ステップＳ８２）。
次に、ネットリストとＲＴＬでの回路記述とのフォーマル検証（論理等価検証）を行い、生成したネットリストとＲＴＬの論理が等価であることを確認する（ステップＳ８３）。論理が等価でない場合には、ステップＳ８０に戻り再度ＲＴＬでの回路記述を行う。
【０００６】
論理等価の確認ができたら、レイアウトを行い、タイミング調整やテスト回路追加などを行った実配線のネットリスト及び実配線のＳＤＦ（Standard Delay Format）の遅延情報を生成する（ステップＳ８４）。
【０００７】
次に、実配線のネットリスト及び遅延情報を用いて、スタティック・タイミング・アナライザ（ＳＴＡ）によるタイミング検証及びゲートレベルのダイナミック・シミュレーションによる論理検証、タイミング検証を行い、回路の論理機能動作の確認及びタイミングスペックの確認を行う（ステップＳ８５）。タイミングスペックが満たされなかった場合は、ステップＳ８０に戻り再度ＲＴＬでの回路記述を行う。
【０００８】
論理検証及びタイミング検証後、試作品のチップを作成し（ステップＳ８６）、実機評価での動作確認を行う（ステップＳ８７）。ここで、実機動作が期待通りでなかった場合や、回路の論理に問題がある場合は、ステップＳ８０に戻り再度ＲＴＬでの回路記述を行う。なお、タイミングに問題がある場合には、図示を省略しているが、ステップＳ８４に戻って再度レイアウトを行う。
【０００９】
実機評価の確認ができたらチップの量産に入り（ステップＳ８８）、ＬＳＩの回路設計が完了する。
このような、従来の回路設計／検証の工程において、非同期検証は、従来ＲＴＬの段階（ステップＳ８１）で行われることが多い（例えば、特許文献１乃至４参照）。
【特許文献１】特開２００５−２８４４２６号公報
【特許文献２】特開２００４−１８５３１１号公報
【特許文献３】特開２００３−２３３６３８号公報
【特許文献４】特開２００１−２２９２１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、従来の非同期検証において、ＲＴＬでの検証では問題なく動作していても、論理合成で生成されたネットリストによっては、非同期箇所による誤動作が発生することがあるという問題があった。
【００１１】
図１４は、ＲＴＬ記述と、論理合成後のネットリストで表される非同期回路を示す図である。
図１４（Ａ）で示すＲＴＬ記述は、クロック信号ＣＫ１の立ち上がりに同期して、Ａが１であるならば、ＣにＢの値を代入することを表している。このとき、ＡからＣのパスは１つであるにも拘わらず、論理合成によって生成される２種類のクロック信号ＣＫ１（１００ＭＨｚ）、ＣＫ２（２００ＭＨｚ）を有する非同期回路では、図１４（Ｂ）のように、Ａ＿ｒｅｇからＣ＿ｒｅｇ間のパスは、２つとなる場合がある。すなわち、Ａ＿ｒｅｇから、ＯＲ＿１、ＡＮＤ＿１を介してＣ＿ｒｅｇに至るパスと、Ａ＿ｒｅｇから、ＩＮＶ＿１、ＯＲ＿２、ＡＮＤ＿１を介してＣ＿ｒｅｇに至るパスである。この場合、以下のような誤動作が生じる場合がある。
【００１２】
図１５は、非同期回路による誤動作の例を示す図である。
論理合成で生成された、図１４（Ｂ）で示した非同期回路のシミュレーション結果を示している。なお、Ｂ＿ｒｅｇの出力信号であるＢ＿ｒｅｇ．Ｑは０として図示を省略している。各信号は、図１４（Ｂ）と対応している。
【００１３】
Ｂ＝０、Ｃ＝０のとき、図１４（Ａ）のＲＴＬ記述によれば、Ａの値が１となっても、Ｃの値が１となることはない。しかし、図１４（Ｂ）のような非同期回路の場合、組合せ回路の遅延差によりＣ＿ｒｅｇの入力のＣ＿ｒｅｇ．ＤＡＴＡが短期間１になるハザードが生じる場合がある。この期間（誤動作発生期間）にクロック信号ＣＫ１が立ち上がると、Ｃ＿ｒｅｇ．Ｑは１となり、誤動作となる。そのため、非同期回路の検証には、ネットリスト生成後の検証が必要である。
【００１４】
しかし、上記のような誤動作を発見するためには、クロック信号ＣＫ１の立ち上がりが誤動作発生期間で立ち上がるように、位相を少しずつ可変してシミュレーションを行う必要がある。そのため、非常に時間がかかる上、誤動作を発見しにくいという問題があった。したがって、現状では、実機評価での動作確認で誤動作が発見された際に、非同期クロックの位相差を測定してネットリストによるシミュレーションで誤動作を再現して検証を行っており、非常に時間やコストがかかっていた。
【００１５】
本発明はこのような点に鑑みてなされたものであり、短時間に非同期回路の検証が可能な検証方法、検証装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明では上記問題を解決するために、図１に示すように、論理合成手段２がＲＴＬの回路情報をもとにネットリスト１１を生成し、抽出手段３がネットリスト１１から遅延情報１２及び互いに異なるクロック信号で動作する回路が接続された非同期回路部１３を抽出し、遅延情報加工手段４が遅延情報１２を加工して、非同期回路部１３の誤動作発生期間を引き延ばし、シミュレーション手段５が加工した遅延情報をもとに非同期回路の検証を行うことを特徴とする検証方法が提供される。
【００１７】
上記の方法によれば、ネットリスト１１の生成後に、遅延情報１２と非同期回路部１３が抽出され、遅延情報１２が加工されて非同期回路部１３の誤動作発生期間が引き延ばされることによって、非同期回路の検証の際に誤動作を発見しやすくなる。
【発明の効果】
【００１８】
本発明は、ネットリストの生成後に、遅延情報と非同期回路部を抽出し、遅延情報を加工して非同期回路部の誤動作発生期間を引き延ばすことによって、非同期回路の検証の際に誤動作を発見しやすくでき、短時間に非同期回路の検証が可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本実施の形態の検証装置の概略を示す概念図である。
検証装置１は、論理合成手段２、抽出手段３、遅延情報加工手段４、シミュレーション手段５を有している。また、データベース１０、１１、１２、１３、１４はそれぞれ、ＲＴＬ記述の回路情報、ネットリスト、遅延情報、非同期回路部、非同期検証用遅延情報を記憶する記憶手段である。なお、図１では複数のデータベース１０〜１４を示しているが、１つの記憶手段としてもよい。
【００２０】
論理合成手段２は、データベース１０に記憶されたＲＴＬ記述の回路情報をもとに論理合成によりネットリストを生成する。
抽出手段３は、データベース１１に記憶されたネットリストから遅延情報と、非同期回路部を抽出する。
【００２１】
遅延情報加工手段４は、データベース１２に記憶された遅延情報を加工して、データベース１３に記憶された非同期回路部の誤動作発生期間を引き延ばす。
シミュレーション手段５は、加工された遅延情報（非同期検証用遅延情報）をもとに非同期回路の検証を行う。
【００２２】
図２は、検証装置のハードウェア構成例を示す図である。
検証装置１は、例えば、コンピュータ２０であり、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２、ＲＡＭ（Random Access Memory）２３、ＨＤＤ（Hard Disk Drive）２４、グラフィック処理部２５、入力Ｉ／Ｆ（Interface）２６、通信Ｉ／Ｆ２７などによって構成され、これらはバス２８を介して相互に接続されている。
【００２３】
ここで、ＣＰＵ２１は、ＲＯＭ２２や、ＨＤＤ２４に格納されている検証プログラムや、各種データに応じて各部を制御し、図１に示した論理合成手段２、抽出手段３、遅延情報加工手段４、シミュレーション手段５の機能を実行する。
【００２４】
ＲＯＭ２２は、ＣＰＵ２１が実行する基本的なプログラムやデータを格納している。
ＲＡＭ２３は、ＣＰＵ２１が実行途中のプログラムや、演算途中のデータを記憶する。
ＨＤＤ２４は、ＣＰＵ２１が実行するＯＳ（Operation System）や、プロジェクトを管理するプログラムや、各種アプリケーションプログラム、各種データを格納する。また、図１で示したデータベース１０〜１４が作成されるようにしてもよい。
【００２５】
グラフィック処理部２５には、表示装置として例えば、ディスプレイ２５ａが接続されており、ＣＰＵ２１からの描画命令に従って、ディスプレイ２５ａ上に、ネットリストや検証結果などを表示する。
【００２６】
入力Ｉ／Ｆ２６には、マウス２６ａやキーボード２６ｂなどの入力装置が接続されており、ユーザにより入力された情報を受信し、バス２８を介してＣＰＵ２１に伝送する。
通信Ｉ／Ｆ２７は、例えば、企業内のＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）や、インターネットなどのネットワーク２７ａと接続して、他のコンピュータなどとの通信を行う。
【００２７】
なお、上記のハードウェア構成例は、一例にすぎず、例えば、複数のコンピュータを用いてもよいし、シミュレーション手段５としてエミュレータなどを用いてもよい。
以下、図１の検証装置の動作を説明する。
【００２８】
ＲＴＬ記述された回路情報をもとに、論理合成手段２は論理合成を行ってネットリストを生成する。抽出手段３は、ネットリストから、ＳＤＦの遅延情報と、互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する。遅延情報加工手段４は、抽出された遅延情報を加工して、非同期回路部の誤動作発生期間を引き延ばす処理を行う。以下に遅延情報加工処理の詳細を、図１４で示したような非同期回路の遅延情報を加工する場合を例にして説明する。
【００２９】
図３は、遅延情報加工処理の流れを示すフローチャートである。
まず、遅延情報加工手段４は、抽出した遅延情報から遅延情報を加工する回路セルを選択する（ステップＳ１０）。
【００３０】
図４は、加工前のＳＤＦの遅延情報の一例を示す図である。
ここでは、図１４（Ｂ）で示したような非同期回路の遅延情報を示している。遅延情報は、回路セルごとの記述になっている。上から３つは、フリップフロップ（Ｆ／Ｆ）の回路セルの遅延情報が記述されており、図１４（Ｂ）のＡ＿ｒｅｇ、Ｂ＿ｒｅｇ、Ｃ＿ｒｅｇに対応している。Ｆ／Ｆの回路セルの記述に続いて、ＩＮＶ＿１、ＯＲ＿１、ＯＲ＿２、ＡＮＤ＿１の遅延情報が記述されている。
【００３１】
ここで示す遅延情報の例では、入力側の信号の０から１への立ち上がりまたは１から０への立ち下がりが各回路セルの出力端子に伝わるまでの、２種類の遅延時間を記述している。例えば、Ａ＿ｒｅｇの回路セルでは、“ＩＯＰＡＴＨ  ＣＬＫ  Ｑ（５０：１００：２００）  （５０：１００：２００）”は、ＣＬＫの立ち上がりから出力端子Ｑまでの遅延時間の最小値が５０ｐｓ、標準値が１００ｐｓ、最大値が２００ｐｓであることを示しており、立ち下がりも同じ値であることを示している。
【００３２】
遅延情報加工手段４は、選択した回路セルのパス遅延値を０ｐｓに変更する（ステップＳ１１）。
次に、選択した回路セルがＦ／Ｆセルであるか否か判定する（ステップＳ１２）。Ｆ／Ｆセルではない場合には、ステップＳ１６の処理に進む。Ｆ／Ｆセルである場合には、更にそのＦ／Ｆセルが非同期回路部の受け側か否かを判定する（ステップＳ１３）。例えば、図１４（Ｂ）のような非同期回路の場合、互いに異なるクロック信号ＣＫ１、ＣＫ２で駆動しているＡ＿ｒｅｇとＣ＿ｒｅｇによる非同期回路部のうち、情報の受信側は、Ｃ＿ｒｅｇである。
【００３３】
回路セルが非同期回路部の受け側のＦ／Ｆセルでない場合には、入力端子側の配線遅延値を１ｐｓに変更して（ステップＳ１４）、ステップＳ１６の処理に進む。
ここで、入力端子側の配線遅延値を１ｐｓに変更する理由は、デルタ遅延対策のためである。デルタ遅延とは、Ｆ／Ｆのクロック信号の立ち上がりタイミングと入力されるデータの変化のタイミングが全く同じであったとき、シミュレータやライブラリ環境によって、データが変化前の値に判断される場合と、変化後の値に判断される場合があり、シミュレーション結果が不確定な状態になることをいう。なお、１ｐｓに限定する必要はなく、０より大きい、最小設定値を用いる。
【００３４】
最小設定値は、ＳＤＦの遅延情報ファイルにｔｉｍｅ  ｓｃａｌｅとして、その値が記述される。なお、後述のシミュレーションの際には、例えば、シミュレーションのためのテストベンチで設定された遅延単位／遅延精度により最小設定値が規定される。
【００３５】
このようなデルタ遅延対策を行わないと、同じクロック信号で動作するＦ／Ｆ間の動作でも、本来の動作とは違った動作になってしまう場合がある。
図５は、Ｂ＿ｒｅｇにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。
【００３６】
図５（Ａ）のように、Ｂ＿ｒｅｇのＤＡＴＡ端子に接続される配線の配線遅延値を０ｐｓにした場合、データの変化が、クロック信号ＣＫ１の立ち上がりがＢ＿ｒｅｇのＤＡＴＡ端子に入力されるデータの変化後と認識された場合の出力値Ｂ＿ｒｅｇ．Ｑａと、クロック信号ＣＫ１の立ち上がりが、Ｂ＿ｒｅｇのＤＡＴＡ端子に入力されるデータの変化前と認識された場合の出力値Ｂ＿ｒｅｇ．Ｑｂとに分かれてしまい、データの変化後と認識された場合、本来のＲＴＬの動作とは異なった動作になってしまう。
【００３７】
一方、図５（Ｂ）のように、配線遅延値を＋１ｐｓすることで、シミュレーション結果が不安定になることを防止でき、本来のＲＴＬの動作と同じにできる。
ステップＳ１３の処理で、選択した回路セルが非同期回路部の受け側のＦ／Ｆセルであると判定された場合には、この回路セルの入力端子に接続された配線の遅延値を、信号の立ち上がり（ｒｉｓｅ）及び立ち下がり（ｆａｌｌ）両方の値とも変更する（ステップＳ１５）。
【００３８】
具体的には、例えば、以下のような変更を行う。
（１）ｒｉｓｅ側：クロック１周期−１ｐｓ、ｆａｌｌ側：１ｐｓ
（２）ｒｉｓｅ側：１ｐｓ、ｆａｌｌ側：クロック１周期−１ｐｓ
（３）両側：クロック１周期−１ｐｓ
（４）両側：１ｐｓ
例えば、図１４（Ｂ）のＣ＿ｒｅｇの場合には、ＤＡＴＡ端子側の配線遅延値を、上記の方法で変更させたＳＤＦの遅延情報ファイルを４つ作成する。このように遅延情報を加工することで、非同期回路部による誤動作発生期間を引き延ばすことができ、後述のシミュレーションの際に、容易に誤動作を検出することができる（詳細は後述する）。
【００３９】
非同期回路部の受け側の配線遅延値を変更し終わると、ステップＳ１６に進む。
ステップＳ１６の処理では、全回路セルについて遅延情報の加工が終了したか否かを判定し、未加工の回路セルがある場合にはステップＳ１０からの処理を繰返し、全回路セルについて加工が終了していれば、加工処理を終了する。加工し終わった遅延情報は、非同期検証用遅延情報として、図１のデータベース１４に記憶される。
【００４０】
図６は、加工後の遅延情報の例を示す図である。
ここでは、図４で示した加工前の遅延情報を、上記の４つの加工方法により作成した遅延情報ファイルのうち、（２）の方法で加工した遅延情報ファイルの内容の一部を示している。
【００４１】
パス遅延値は、前述の図３のステップＳ１１の処理によって、全ての回路セルで０に加工されている。また、上から３つのＦ／Ｆセルのうち、Ａ＿ｒｅｇ、Ｂ＿ｒｅｇは、“ＤＥＬＡＹ（ＡＢＳＯＬＵＴＥ（ＰＯＲＴ  ＤＡＴＡ（１：１：１）（１：１：１）…”となり、ステップＳ１４の処理によってＤＡＴＡ端子に接続される配線の配線遅延値が１ｐｓに加工されている。
【００４２】
上から３つ目のＦ／ＦセルであるＣ＿ｒｅｇは、非同期回路部の受け側の回路セルである。ステップＳ１５の処理によって、ＤＡＴＡ端子に接続される配線の配線遅延値を、ｒｉｓｅ側で（１：１：１）、ｆａｌｌ側で（９９９９：９９９９：９９９９）と加工している。
【００４３】
図１のシミュレーション手段５は、以上のような加工処理によって作成した非同期検証用遅延情報を用いて、非同期検証を行う。
図７は、加工後の遅延情報を用いたシミュレーション結果を示す図である。
【００４４】
なお、ここでは図６の遅延情報を用いた場合、すなわち（２）の加工方法で加工した遅延情報を用いたシミュレーション結果を示している。なお、Ｂ＿ｒｅｇ．Ｑは０として図示を省略している。各信号は、図１４（Ｂ）と対応している。
【００４５】
図１５で示したようなハザードが存在する場合、そのパルス幅で規定される誤動作発生期間は短く、検証が難しい。例えば、図１４（Ｂ）の非同期回路で、ＯＲ＿１、ＯＲ＿２、ＩＮＶ＿１、ＡＮＤ＿１のパス遅延値がそれぞれ１００ｐｓの場合、Ｃ＿ｒｅｇ．ＤＡＴＡのｒｉｓｅ遅延値は１００ｐｓ（ＯＲ＿１．Ａ２→Ｘ）＋１００ｐｓ（ＡＮＤ＿１．Ａ１→Ｘ）＝２００ｐｓとなる（Ａ１→Ｘ、Ａ２→Ｘは、各回路セルの入力端子から出力端子までのパス遅延値を示す（図４参照））。一方ｆａｌｌ遅延値は１００ｐｓ（ＩＮＶ＿１．Ａ→Ｘ）＋１００ｐｓ（ＯＲ＿２．Ａ１→Ｘ）＋１００ｐｓ（ＡＮＤ＿１．Ａ２→Ｘ）＝３００ｐｓとなる。したがって、誤動作するＣ＿ｒｅｇ．ＤＡＴＡ＝１になる期間は、３００ｐｓ（ｆａｌｌ遅延値）−２００ｐｓ（ｒｉｓｅ遅延値）＝１００ｐｓとなる。クロック信号ＣＫ１の１周期が１０ｎｓに対して１００ｐｓの誤動作を発見することが非常に困難である。
【００４６】
これに対し、図６のような遅延情報を用い、ｒｉｓｅ側で１ｐｓ、ｆａｌｌ側でクロック１周期−１ｐｓ（＝９９９９ｐｓ）の遅延値を設定することで、誤動作発生期間を９９９８ｐｓと引き延ばすことができる。クロック信号ＣＫ１の位相を細かく変化させなくても、容易に誤動作を検出して検証することができる。
【００４７】
なお、図１５とは逆に、ハザードが立ち下がりパルス（短時間だけ０となるパルス）の場合には、前述の（１）の方法によって、ｒｉｓｅ側：クロック１周期−１ｐｓ、ｆａｌｌ側：１ｐｓとなるように加工した遅延情報を用いることで、図６の場合と同様に誤動作発生期間を引き延ばすことができる。
【００４８】
ところで、図７の例のように、ｆａｌｌ側でクロック１周期から１ｐｓ減じるのは、デルタ遅延対策のためである。
図８は、Ｃ＿ｒｅｇにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。
【００４９】
図８（Ａ）のように、Ｃ＿ｒｅｇのＤＡＴＡ端子に接続される配線の配線遅延値をｒｉｓｅ側で０ｐｓ、ｆａｌｌ側でクロック１周期にした場合、クロック信号ＣＫ１の立ち上がりがＣ＿ｒｅｇのＤＡＴＡ端子に入力されるデータの変化後と認識された場合の出力値Ｃ＿ｒｅｇ．Ｑａと、クロック信号ＣＫ１の立ち上がりがＣ＿ｒｅｇのＤＡＴＡ端子に入力されるデータの変化前と認識された場合の出力値Ｃ＿ｒｅｇ．Ｑｂとに分かれてしまい、いずれの場合も本来のＲＴＬの動作とは異なった動作になってしまう。
【００５０】
一方、図８（Ｂ）のように、配線遅延値をｒｉｓｅ側で＋１ｐｓ、ｆａｌｌ側でクロック１周期−１ｐｓすることで、本来のＲＴＬの動作と同じにできる。
ところで、図７のようにハザードを引き延ばしても、クロック信号ＣＫ１のタイミングによっては、誤動作が検出されない場合がある。
【００５１】
図９は、加工後の遅延情報を用いたシミュレーション結果であり、誤動作が検出されない場合とその対策を示す図である。
上記の（１）や（２）の方法で加工した遅延情報を用いた場合、２ｐｓだけ誤動作が発生しない期間がある。そのため、図９のようなタイミングでクロック信号ＣＫ１が入力された場合、クロック信号ＣＫ１の立ち上がりエッジが、Ｃ＿ｒｅｇ．ＤＡＴＡが１の期間に入らない。そこで、クロック信号ＣＫ１を反転させたクロック信号ＣＫ１ｘでのシミュレーションをもう１回行うことで、クロック信号ＣＫ１の位相を少しずつ可変して何回も調整しなくとも、確実に誤動作を検出することができる。なお、クロック信号ＣＫ１ｘは反転させたクロック信号ＣＫ１でなくても、クロック信号ＣＫ１を２ｐｓ以上位相を移動させたクロック信号であればよい。
【００５２】
なお、抽出手段３により抽出される非同期回路部は、図１４（Ｂ）のようなＦ／Ｆ以外に、ＥＮ（イネーブル）端子をもつＦ／Ｆを有する場合もある。
図１０は、非同期回路の他の例を示す図であり、（Ａ）がＲＴＬ記述を示し、（Ｂ）が論理合成後のネットリストで表される非同期回路を示す図である。
【００５３】
図１０（Ａ）で示すＲＴＬ記述は、クロック信号ＣＫ１の立ち上がりに同期して、Ａが１であるならば、Ｃに１を代入し、それ以外の場合で、Ｂが１であるならば、Ｃに０を代入することを表している。このとき、ＡからＣのパスは１つであるにも拘わらず、論理合成後のネットリストでは、図１０（Ｂ）のように、Ａ＿ｒｅｇからＣ＿ｒｅｇ間のパスは２つとなる場合がある。すなわち、Ａ＿ｒｅｇからＣ＿ｒｅｇのＤＡＴＡ端子に至るパスと、Ａ＿ｒｅｇからＯＲ＿１を介してＥＮ端子に至るパスである。この場合、以下のような誤動作が生じる場合がある。
【００５４】
図１１は、非同期回路による誤動作の例を示す図である。
論理合成で生成された、図１０で示した非同期回路のシミュレーション結果を示している。なお、Ｂ＿ｒｅｇ．Ｑは０として図示を省略している。各信号は、図１０（Ｂ）と対応している。
【００５５】
図１０（Ａ）のＲＴＬ記述によれば、Ｂ＝０、Ｃ＝１のとき、Ａが０から１へ変化しても、１から０に変化してもＣが０になることはない。しかし、図１０（Ｂ）のような非同期回路の場合、２つのパスが生じ、パス間の遅延差により、Ｃ＿ｒｅｇ．ＥＮが１でＣ＿ｒｅｇ．ＤＡＴＡが０となる期間が存在する。この期間に、クロック信号ＣＫ１の立ち上がりエッジが来ると、Ｃ＿ｒｅｇ．Ｑが０となり、ＲＴＬの論理と異なってしまい、誤動作が発生することになる。上記の期間が誤動作発生期間であり、例えば、１００ｐｓと短く、このままでは検証の際に誤動作を検出するためには、短い期間でクロック信号ＣＫ１が立ち上がるように調整する必要があるため検証に時間がかかってしまう。
【００５６】
ここで、前述の（３）及び（４）の方法により加工した遅延情報を用いることが有効になる。
遅延情報加工手段４は、図３で示したような遅延情報の加工処理を行う。ステップＳ１３の処理では、ＥＮ端子付のＣ＿ｒｅｇが選択され、ステップＳ１５の処理により入力端子（ＤＡＴＡ端子、ＥＮ端子）に接続された配線の配線遅延値を、前述の４つの方法によって加工する。
【００５７】
図１２は、加工後の遅延情報を用いたシミュレーション結果を示す図である。
なお、ここではＣ＿ｒｅｇ．ＤＡＴＡについてはｒｉｓｅとｆａｌｌの両側を１ｐｓ遅延させるように（４）の方法で加工した遅延情報を用い、Ｃ＿ｒｅｇ．ＥＮについてはｒｉｓｅとｆａｌｌの両側をクロック１周期−１ｐｓ（この例の場合、クロック信号ＣＫ１の１周期が１０ｎｓなので９９９９ｐｓ）遅延させるように（３）の方法で加工した遅延情報を用いたシミュレーション結果を示している。なお、Ｂ＿ｒｅｇ．Ｑは０として図示を省略している。各信号は、図１０（Ｂ）と対応している。
【００５８】
上記のような（３）、（４）の方法で加工した遅延情報を用いることで、Ｃ＿ｒｅｇ．ＤＡＴＡが０でＣ＿ｒｅｇ．ＥＮが１となる誤動作発生期間を９９９８ｐｓと、引き延ばすことができる。これにより、クロック信号ＣＫ１の位相を細かく変化させなくても、容易に誤動作を検出して検証することができる。
【００５９】
なお、上記の場合も図９と同様に、反転したクロック信号ＣＫ１のシミュレーションをもう１回行うことで、クロック信号ＣＫ１のタイミングによらず、確実に誤動作を検証することができる。
【００６０】
まとめると、各入力端子側の信号（図１０（Ｂ）の場合、ＤＡＴＡ端子やＥＮ端子）それぞれに対し、（１）から（４）の方法によって加工した遅延情報を生成して、生成した遅延情報に対して、シミュレーションによる検証を行うことで、少ない労力、時間で誤動作を検出することができる。
【００６１】
上記のように、非同期回路部による誤動作を確実に検出できるシミュレーションを行っても、誤動作が検出されない場合には、図１３の工程におけるステップＳ８４の処理のレイアウトを行い、以降従来と同様の工程を行っていく（フォーマル検証なども同様に行う）。誤動作が発見された場合には、レイアウト前に、問題部分のＲＴＬの記述の変更を行う。
【００６２】
なお、前述の非同期検証用遅延情報は、非同期検証を行い、終了した後は用いられず、図１３の回路設計及び検証のフローのように、レイアウトによってタイミング調整やテスト回路追加などを行った実配線のネットリスト及び遅延情報が生成された後は、その遅延情報が用いられる。すなわち、従来の回路設計及び検証のフローをほとんど変えることなく、ＲＴＬでは発見できない非同期回路部による誤動作を容易に発見することができる。
【００６３】
また、レイアウト前に、検証を行って誤動作を発見して、ＲＴＬの記述を修正することができるため、実機評価で非同期の誤動作が発見されてからＲＴＬの記述を修正して再び試作品を作成して評価する場合に比べて、時間及び費用を格段に削減することができる。
【００６４】
また、非同期検証のためにネットリストに変更を加える必要がなく、遅延情報のみ変更すればよいので、環境構築に時間がかからないという利点もある。
また、遅延情報の加工の際に、各回路セルのパス遅延を０にして、非同期回路部の受け手側のＤＡＴＡ端子やＥＮ端子に接続される配線の配線遅延値を加工して誤動作発生期間を引き延ばすので、遅延情報の加工が容易にできる。
【００６５】
なお、上記の処理内容は、コンピュータによって実現することができる。その場合、検証装置１が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００６６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６８】
以上、本発明を実施例に基づいて説明したが、本発明は上記に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
（付記１）  非同期回路の検証を行う検証方法において、
論理合成手段がレジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成し、
抽出手段が前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出し、
遅延情報加工手段が前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばし、
シミュレーション手段が加工した前記遅延情報をもとに前記非同期回路の検証を行うことを特徴とする検証方法。
【００６９】
（付記２）  前記遅延情報加工手段は、前記非同期回路部のうち、情報の受信側回路の入力端子に接続された配線の配線遅延値を変化させることで、前記誤動作発生期間を引き延ばすことを特徴とする付記１記載の検証方法。
【００７０】
（付記３）  前記遅延情報加工手段は、前記ネットリストの各回路セルの入力から出力までの遅延時間を０とするように前記遅延情報を加工することを特徴とする付記１または２に記載の検証方法。
【００７１】
（付記４）  前記遅延情報加工手段は、前記回路セルがフリップフロップの場合には、前記フリップフロップの入力端子に接続された配線の配線遅延値を、最小設定値とすることを特徴とする付記１乃至３のいずれか一項に記載の検証方法。
【００７２】
（付記５）  前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり側で前記最小設定値に、立ち下がり側で、前記受信側回路に入力されるクロック信号の周期から前記最小設定値を減じた値とすることを特徴とする付記１乃至４のいずれか一項に記載の検証方法。
【００７３】
（付記６）  前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり側で前記クロック信号の周期から前記最小設定値を減じた値にして、立ち下がり側で前記最小設定値とすることを特徴とする付記１乃至５のいずれか一項に記載の検証方法。
【００７４】
（付記７）  前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記最小設定値とすることを特徴とする付記１乃至６のいずれか一項に記載の検証方法。
【００７５】
（付記８）  前記遅延情報加工手段は、前記受信側回路の入力端子に接続された前記配線の前記配線遅延値を、前記配線における信号の立ち上がり及び立ち下がりで前記クロック信号の周期から前記最小設定値を減じた値とすることを特徴とする付記１乃至７のいずれか一項に記載の検証方法。
【００７６】
（付記９）  前記シミュレーション手段は、前記クロック信号を入力した場合と、前記クロック信号を反転させた反転クロック信号を入力した場合の前記検証を行うことを特徴とする付記１乃至８のいずれか一項に記載の検証方法。
【００７７】
（付記１０）  前記入力端子は、前記フリップフロップのデータ端子またはイネーブル端子であることを特徴とする付記４乃至９のいずれか一項に記載の検証方法。
（付記１１）  非同期回路の検証を行う検証装置において、
レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段と、
前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段と、
前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばす遅延情報加工手段と、
加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段と、
を有することを特徴とする検証装置。
【００７８】
（付記１２）  非同期回路の検証を行う処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
レジスタ・トランスファ・レベルの回路情報をもとにネットリストを生成する論理合成手段、
前記ネットリストから遅延情報及び互いに異なるクロック信号で動作する回路が接続された非同期回路部を抽出する抽出手段、
前記遅延情報を加工して、前記非同期回路部の誤動作発生期間を引き延ばす遅延情報加工手段、
加工した前記遅延情報をもとに前記非同期回路の検証を行うシミュレーション手段、
として機能させることを特徴とするプログラム。
【図面の簡単な説明】
【００７９】
【図１】本実施の形態の検証装置の概略を示す概念図である。
【図２】検証装置のハードウェア構成例を示す図である。
【図３】遅延情報加工処理の流れを示すフローチャートである。
【図４】加工前のＳＤＦの遅延情報の一例を示す図である。
【図５】Ｂ＿ｒｅｇにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。
【図６】加工後の遅延情報の例を示す図である。
【図７】加工後の遅延情報を用いたシミュレーション結果を示す図である。
【図８】Ｃ＿ｒｅｇにおけるデルタ遅延による誤動作と、デルタ遅延対策を説明する図である。
【図９】加工後の遅延情報を用いたシミュレーション結果であり、誤動作が検出されない場合とその対策を示す図である。
【図１０】非同期回路の他の例を示す図であり、（Ａ）がＲＴＬ記述を示し、（Ｂ）が論理合成後のネットリストで表される非同期回路を示す図である。
【図１１】非同期回路による誤動作の例を示す図である。
【図１２】加工後の遅延情報を用いたシミュレーション結果を示す図である。
【図１３】従来の回路設計と検証の流れを示すフローチャートである。
【図１４】ＲＴＬ記述と、論理合成後のネットリストで表される非同期回路を示す図である。
【図１５】非同期回路による誤動作の例を示す図である。
【符号の説明】
【００８０】
１  検証装置
２  論理合成手段
３  抽出手段
４  遅延情報加工手段
５  シミュレーション手段
１０、１１、１２、１３、１４  データベース
【図１】
2008210189.tif 000003
【図２】
2008210189.tif 000004
【図３】
2008210189.tif 000005
【図４】
2008210189.tif 000006
【図５】
2008210189.tif 000007
【図６】
2008210189.tif 000008
【図７】
2008210189.tif 000009
【図８】
2008210189.tif 000010
【図９】
2008210189.tif 000011
【図１０】
2008210189.tif 000012
【図１１】
2008210189.tif 000013
【図１２】
2008210189.tif 000014
【図１３】
2008210189.tif 000015
【図１４】
2008210189.tif 000016
【図１５】
2008210189.tif 000017