(57)【要約】【課題】検証結果を早期に得ることができるマルチサイクルパス検証方法を提供することを課題とする。【解決手段】マルチサイクルパスを有する回路のマルチサイクル数を基に遅延データを生成する遅延データ生成ステップ（１１６）と、前記生成された遅延データをマルチサイクルパスのデータに付与してシミュレーションを行うことによりタイミング検証を行う第１のシミュレーションステップ（１１０）とを有することを特徴とするマルチサイクルパス検証方法が提供される。【選択図】図１
2007241836.tif 000002
【特許請求の範囲】
【請求項１】
マルチサイクルパスを有する回路のマルチサイクル数を基に遅延データを生成する遅延データ生成ステップと、
前記生成された遅延データをマルチサイクルパスのデータに付与してシミュレーションを行うことによりタイミング検証を行う第１のシミュレーションステップと
を有することを特徴とするマルチサイクルパス検証方法。
【請求項２】
前記回路は、第１のクロック信号に同期して動作する第１のフリップフロップと、第２のクロック信号に同期して動作する第２のフリップフロップとを有し、
前記第１及び第２のフリップフロップ間を伝播するデータが前記マルチサイクルパスのデータであり、
前記第１及び第２のクロック信号は、周期が異なることを特徴とする請求項１記載のマルチサイクルパス検証方法。
【請求項３】
前記第１のシミュレーションステップは、前記回路のＲＴＬ（Register Transfer Level）データを基にシミュレーションを行うことを特徴とする請求項１又は２記載のマルチサイクルパス検証方法。
【請求項４】
前記遅延データ生成ステップは、前記第２のクロック信号の周期及び前記マルチサイクル数を基に遅延データを生成することを特徴とする請求項２記載のマルチサイクルパス検証方法。
【請求項５】
前記回路は、前記第１及び第２のフリップフロップ間に組み合わせ回路を有することを特徴とする請求項２記載のマルチサイクルパス検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチサイクルパス検証方法に関する。
【背景技術】
【０００２】
図１２は、半導体回路の設計の処理を示すフローチャートである。まず、設計者は、ＲＴＬ（Register Transfer Level）データ１０１、テストパターン１０９及びＳＴＡ（Static Timing Analysis）制約データ１１４を生成する。ＲＴＬデータ１０１は、レジスタの値が遷移していく様子を記述した半導体回路の設計データである。ＳＴＡ制約データ１１４は、静的タイミング解析（ＳＴＡ）を行う上での制約を示すデータである。テストパターン１０９は、回路（ＲＴＬデータ、ネットリスト）検証用テストパターンである。
【０００３】
次に、ステップ１１０及び１０２を並列に行う。ステップ１１０では、ＲＴＬデータ１０１及びテストパターン１０９を基にシミュレーションを行い、回路の論理的動作が正しいか否かの論理検証を行い、ステップ１１１に進む。ステップ１１１では、検証に成功すればステップ１１５へ進み処理を終了し、検証に失敗すればＲＴＬデータ１０１、テストパターン１０９又はＳＴＡ制約データ１１４を修正し、ステップ１１０のシミュレーションを繰り返す。
【０００４】
ステップ１０２では、ＲＴＬデータ１０１及びＳＴＡ制約データ１１４を基に論理合成を行い、ネットリスト１０３を生成する。ネットリスト１０３は、回路の接続状態を表現したデータである。次に、ステップ１０４では、ネットリスト１０３及びＳＴＡ制約データ１１４を基にレイアウト設計を行い、ネットリスト１０５及びＳＤＦ（Standard Delay Format）ファイル１０６を生成する。ＳＤＦファイル１０６は、遅延時間を表すデータである。
【０００５】
次に、ステップ１０７及び１１２を並列に行う。ステップ１０７では、ネットリスト１０５、ＳＤＦファイル１０６及びＳＴＡ制約データ１１４を基に静的タイミング解析（ＳＴＡ）を行う。静的タイミング解析は、論理回路において信号が素子を通過する際に生じる遅延時間を計算し、フリップフロップへの書き込みが正常に行なわれるかどうかを検証する。ステップ１０８では、検証に成功すればステップ１１５へ進み処理を終了し、検証に失敗すれば、ＲＴＬデータ１０１を修正し、ステップ１０２及び１０４の処理を繰り返す。
【０００６】
ステップ１１２では、ネットリスト１０５、ＳＤＦファイル１０６及びテストパターン１０９を基に遅延付きシミュレーション（Validation）を行い、タイミング検証を行う。次に、ステップ１１３では、検証に成功すれば、ステップ１１５へ進み、処理を終了し、その検証に失敗すれば、ＲＴＬデータ１０１、ＳＴＡ制約データ１１４又はテストパターン１０９を修正し、上記の処理を繰り返す。
【０００７】
マルチサイクルパスを有する回路の検証も、上記の処理により行われる。
【０００８】
また、下記の特許文献１には、同期回路の接続回路情報を記載したＨＤＬ記述から、マルチサイクルパス候補を含む経路を検出し、該経路を構成するレジスタ間の経路に対して、シングルサイクルパスに与えられる基準制約に所定数を乗じた数分の遅延制約を与え、該遅延制約の下で前記ＨＤＬ記述について論理合成および遅延解析を行うことを特徴とする論理合成・遅延解析システムが記載されている。
【０００９】
【特許文献１】特開２００１−２９７１２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ステップ１０４のレイアウト設計は、設計処理の後半になるため、そこで異常が見つかると回路を修正して、レイアウト設計（ステップ１０４）や静的タイミング解析（ステップ１０７）を再度実施する必要があるので、工程が大きくなり、設計が遅延してしまう可能性がある。
【００１１】
また、レイアウト後の遅延を考慮したシミュレーション（ステップ１１２）は、扱うデータ量が多いことから、多くのテストパターン１０９を実施することができない。さらに、レイアウト後のデータ１０５及び１０６は高級言語に比べ、可読性が悪く、解析には大きな工数が掛かる。
【００１２】
本発明の目的は、検証結果を早期に得ることができるマルチサイクルパス検証方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明の一観点によれば、マルチサイクルパスを有する回路のマルチサイクル数を基に遅延データを生成する遅延データ生成ステップと、前記生成された遅延データをマルチサイクルパスのデータに付与してシミュレーションを行うことによりタイミング検証を行う第１のシミュレーションステップとを有することを特徴とするマルチサイクルパス検証方法が提供される。
【発明の効果】
【００１４】
マルチサイクル数を基に生成した遅延データをマルチサイクルパスのデータに付与してシミュレーションを行うことにより、検証結果を早期に得ることができ、回路の設計時間を短縮することができる。
【発明を実施するための最良の形態】
【００１５】
図２は正常なマルチサイクルパスを有する半導体回路の構成例を示す図であり、図４及び図５は図２の回路のシミュレーション結果を示すタイミングチャートである。フリップフロップ２０１は、データ端子ＤＡＴＡに入力データＩＮＤＡＴＡを入力し、クロック端子ＣＬＫにクロック信号ＣＬＫ１を入力し、出力端子ＯＵＴから出力データを出力する。組み合わせ回路２０２は、フリップフロップ２０１の出力端子ＯＵＴのデータを入力し、データＤＡＴＡ１を出力する。フリップフロップ２０３は、データ端子ＤＡＴＡにデータＤＡＴＡ１を入力し、クロック端子ＣＬＫにクロック信号ＣＬＫ２を入力し、ライトイネーブル信号ＷＥに同期信号ＳＹＮＣを入力し、出力端子ＯＵＴから出力データＯＵＴＤＡＴＡを出力する。
【００１６】
クロック信号ＣＬＫ１は、クロック信号ＣＬＫ２に同期するクロック信号であり、クロック信号ＣＬＫ２の４倍の周期を持つ。クロック信号ＣＬＫ２は、クロック信号ＣＬＫ１に同期するクロック信号であり、クロック信号ＣＬＫ１の４分の１の周期を持つ。フリップフロップ２０１は、クロック信号ＣＬＫ１に同期して動作するフリップフロップである。フリップフロップ２０３は、クロック信号ＣＬＫ２に同期して動作するフリップフロップである。入力データＩＮＤＡＴＡは、フリップフロップ２０１の入力データである。出力データＯＵＴＤＡＴＡは、フリップフロップ２０３の出力データである。データＤＡＴＡ１は、フリップフロップ２０１の出力データが組み合わせ回路２０２を通ったデータであり、フリップフロップ２０３の入力データである。同期信号ＳＹＮＣは、クロック信号ＣＬＫ１の周期に、クロック信号ＣＬＫ２が同期するための同期信号であり、フリップフロップ２０３のライトイネーブル端子ＷＥに接続される。
【００１７】
図２の回路は、クロック信号ＣＬＫ１及びＣＬＫ２のクロック乗り換えを行う回路である。フリップフロップ２０１及び２０３は、クロック信号ＣＬＫ２のサイクルでマルチサイクルパス（以下、ＭＣＰという）４の関係にある。同期信号ＳＹＮＣは、フリップフロップ２０３のライトイネーブル端子ＷＥに接続され、クロック信号ＣＬＫ１と同期を取っている正常な回路である。
【００１８】
マルチサイクルパスは、データ信号ＤＡＴＡ１がフリップフロップ（レジスタ）２０１及び２０３間を伝播するのに必要なサイクル数が２サイクル以上を要するものである。これに対して、シングルサイクルパスは、データ信号ＤＡＴＡ１がフリップフロップ２０１及び２０３間を伝播するのに必要なサイクル数が１サイクル以内のものである。図２の回路は、マルチサイクルパスを有する回路であり、マルチサイクル数が４（ＭＣＰ４）である。フリップフロップ２０１及び２０３間を伝播するデータＤＡＴＡ１がマルチサイクルパスのデータである。
【００１９】
図４は、図１２のステップ１１０のレイアウト前の遅延を考慮しないシミュレーションの波形を示すタイミングチャートである。通常、論理の正当性を確認する場合は、レイアウト前のデータで遅延を考慮せずにシミュレーションする。フリップフロップ２０１は、クロック信号ＣＬＫ１の立ち上がりで、入力データＩＮＤＡＴＡをラッチして出力する。データＤＡＴＡ１は、第２、第６及び第１０のサイクルで、ＡからＢ、Ｃ及びＤに変化する。この時、遅延を考慮していないため、クロック信号ＣＬＫ１の立ち上がり後、直ぐにデータＤＡＴＡ１は変化する。
【００２０】
フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がりに同期するフリップフロップであり、同期信号ＳＹＮＣによりクロック信号ＣＬＫ１と同期をとっている。フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がり、かつ同期信号ＳＹＮＣの立ち下がりで、入力データＤＡＴＡ１をラッチし、出力データＯＵＴＤＡＴＡを出力する。出力データＯＵＴＤＡＴＡは、第２、第６及び第１０のサイクルで、Ａ、Ｂ及びＣに変化する。
【００２１】
フリップフロップ２０１及び２０３は、ＭＣＰ４の関係にあるので、データＤＡＴＡ１はクロック信号ＣＬＫ２の４サイクル以内に確定していればよいが、レイアウト前のシミュレーション（図１２のステップ１１０）では遅延を考慮しないため回路の正当性を検証できない。そこで、通常はレイアウト後の遅延を考慮したモデルを使用してシミュレーション（図１２のステップ１１２）を実行して検証する。
【００２２】
図５は、図１２のステップ１１２のレイアウト後の遅延を考慮したシミュレーションの波形を示すタイミングチャートである。組み合わせ回路２０２は、フリップフロップ２０１の出力データを入力し、データＤＡＴＡ１を出力する。データＤＡＴＡ１は、フリップフロップ２０１の出力データに対して、組み合わせ回路２０２の遅延時間Ｄ１の遅れを有する。データＤＡＴＡ１は、クロック信号ＣＬＫ２の４サイクル以内に確定していればよいので、レイアウト後は遅延時間Ｄ１が付くことがある。フリップフロップ２０３は、ライトイネーブル端子ＷＥに同期信号ＳＹＮＣを入力し、正常にクロック信号ＣＬＫ１と同期を取っている。その結果、フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がり、かつ同期信号ＳＹＮＣの立ち下がりで、入力データＤＡＴＡ１をラッチし、出力データＯＵＴＤＡＴＡを出力する。出力データＯＵＴＤＡＴＡは、第２、第６及び第１０のサイクルで、Ａ、Ｂ及びＣに変化する。図５の出力データＯＵＴＤＡＴＡは、図４の出力データＯＵＴＤＡＴＡと全く同じタイミングで変化することになり、検証に成功し、図２の回路は問題ないことが検証できる。
【００２３】
図３は、異常なマルチサイクルパスを有する半導体回路の構成例を示す図であり、図６及び図７は図３の回路のシミュレーション結果を示すタイミングチャートである。図３は、図２と同様に、クロック信号ＣＬＫ１及びＣＬＫ２のクロック乗り換えを行う回路であり、フリップフロップ２０１及び２０３はクロック信号ＣＬＫ２のＭＣＰ４の関係にある。しかし、図３の回路は、図２の回路に対して、フリップフロップ２０３のライトイネーブル端子ＷＥに同期信号ＳＹＮＣを入力するのを忘れた設計ミスの回路である。この回路は、同期信号ＳＹＮＣでクロック信号ＣＬＫ１と同期を取るのを忘れた異常な回路である。
【００２４】
図６は、図１２のステップ１１０のレイアウト前の遅延を考慮しないシミュレーションの波形を示すタイミングチャートである。フリップフロップ２０１は、クロック信号ＣＬＫ１の立ち上がりで、入力データＩＮＤＡＴＡをラッチして出力する。データＤＡＴＡ１は、第２、第６及び第１０のサイクルで、ＡからＢ、Ｃ及びＤに変化する。この時、遅延を考慮していないため、クロック信号ＣＬＫ１の立ち上がり後、直ぐにデータＤＡＴＡ１は変化する。
【００２５】
フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がりに同期するフリップフロップであり、同期信号ＳＹＮＣによりクロック信号ＣＬＫ１と同期をとっていない。そのため、フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がりで、入力データＤＡＴＡ１をラッチし、出力データＯＵＴＤＡＴＡを出力する。出力データＯＵＴＤＡＴＡは、第３及び第７のサイクルで、ＡからＢ及びＣに変化する。
【００２６】
図７は、図１２のステップ１１２のレイアウト後の遅延を考慮したシミュレーションの波形を示すタイミングチャートである。組み合わせ回路２０２は、フリップフロップ２０１の出力データを入力し、データＤＡＴＡ１を出力する。データＤＡＴＡ１は、フリップフロップ２０１の出力データに対して、組み合わせ回路２０２の遅延時間Ｄ１の遅れを有する。データＤＡＴＡ１は、クロック信号ＣＬＫ２の４サイクル以内に確定していればよいので、レイアウト後は遅延時間Ｄ１が付くことがある。
【００２７】
フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がりで、入力データＤＡＴＡ１をラッチし、出力データＯＵＴＤＡＴＡを出力する。出力データＯＵＴＤＡＴＡは、第２、第６及び第１０のサイクルで、Ａ、Ｂ及びＣに変化する。フリップフロップ２０３は、クロック信号ＣＬＫ１と同期を取っていない異常な回路なので、図７の出力データＯＵＴＤＡＴＡは、図６の出力データＯＵＴＤＡＴＡとは異なるタイミングで変化し、検証に失敗し、図３の回路の異常を見つけることができる。
【００２８】
以上のように、図１２のステップ１１０の遅延を考慮しないシミュレーション及びステップ１１２の遅延を考慮したシミュレーションを行った後に、回路の異常を検出することができる。この際、ステップ１０４のレイアウト設計は終了しており、異常が見つかると回路を修正して、レイアウト設計（ステップ１０４）や静的タイミング解析（ステップ１０７）を再度実施する必要があるので、工程が大きく遅延してしまう。
【００２９】
また、レイアウト設計後の遅延を考慮したシミュレーション（ステップ１１２）は、扱うデータ量が多いことから、多くのテストパターン１０９を実施することができない。さらに、レイアウト設計後のデータは高級言語に比べ可読性が悪く、解析には大きな工数が掛かる。
【００３０】
本発明の実施形態では、マルチサイクルパスを有する回路の異常を早期に検出し、設計時間の短縮を図ることを目的とする。以下、本実施形態によるマルチサイクルパス検証方法を説明する。
【００３１】
図１３は、半導体回路の設計処理を行うコンピュータ（マルチサイクルパス検証装置）のハードウエア構成例を示すブロック図である。このコンピュータは、ＣＡＤによる設計データを作成することができる。バス１３０１には、中央処理装置（ＣＰＵ）１３０２、ＲＯＭ１３０３、ＲＡＭ１３０４、ネットワークインタフェース１３０５、入力装置１３０６、出力装置１３０７及び外部記憶装置１３０８が接続されている。
【００３２】
ＣＰＵ１３０２は、データの処理及び演算を行うと共に、バス１３０１を介して接続された上記の構成ユニットを制御するものである。ＲＯＭ１３０３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ１３０２が実行することにより、コンピュータが起動する。外部記憶装置１３０８にコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ１３０４にコピーされ、ＣＰＵ１３０２により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後に説明する図１の処理等を行う。
【００３３】
外部記憶装置１３０８は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置１３０８は、コンピュータプログラム及び設計データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム及び設計データ等を読み出すことができる。
【００３４】
ネットワークインタフェース１３０５は、ネットワークに対してコンピュータプログラム及び設計データ等を入出力することができる。入力装置１３０６は、例えばキーボード及びポインティングデバイス（マウス）等であり、各種指定又は入力等を行うことができる。出力装置１３０７は、ディスプレイ及びプリンタ等である。
【００３５】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００３６】
図１は、本実施形態による半導体回路の設計処理を示すフローチャートであり、図１２に対して、ステップ１１６を追加したものである。
【００３７】
まず、設計者は、ＲＴＬ（Register Transfer Level）データ１０１、テストパターン１０９及びＳＴＡ（Static Timing Analysis）制約データ１１４を生成し、外部記憶装置１３０８（図１３）に記録する。ＲＴＬデータ１０１は、レジスタの値が遷移していく様子を記述した半導体回路の設計データである。ＳＴＡ制約データ１１４は、静的タイミング解析（ＳＴＡ）を行う上での制約を示すデータである。テストパターン１０９は、回路（ＲＴＬデータ、ネットリスト）検証用テストパターンである。
【００３８】
次に、ステップ１１０では、図８及び図１０に示すように、ＲＴＬデータ及びテストパターン１０９を基に遅延を考慮しないシミュレーションを行う。これにより、回路の論理的動作が正しいか否かの論理検証を行うことができる。
【００３９】
図８は、図２の回路の遅延を考慮しないシミュレーション結果を示すタイミングチャートであり、図４に対して、動作及び動作波形が同じである。図１０は、図３の回路の遅延を考慮しないシミュレーション結果を示すタイミングチャートであり、図６に対して、動作及び動作波形が同じである。
【００４０】
ステップ１１６では、マルチサイクルパス（ＭＣＰ）検出ツールを実行することにより、ＳＴＡ制約データ１１４を基にマルチサイクルパスを検出し、以下のように、遅延データ１１７を生成する。
【００４１】
例えば、ＳＴＡ制約データ１１４は、以下のデータ（１）〜（６）を有する。
create_clock -name CLK1 -period 15000 \    ・・・（１）
-waveform [ 0 7500 ] CLK1                  ・・・（２）
create_clock -name CLK2 -period 3750 \     ・・・（３）
-waveform [ 0 1875 ] CLK2                  ・・・（４）
set_multicycle_path 4 -setup -end \        ・・・（５）
-from [CLK1] -through [DATA1] -to [CLK2]   ・・・（６）
【００４２】
ＳＴＡ制約データ（１）は、クロック信号ＣＬＫ１の周期が１５０００であることを示す。ＳＴＡ制約データ（２）は、クロック信号ＣＬＫ１の立ち上がりタイミングが０であり、立ち下がりタイミングが７５００であることを示す。すなわち、クロック信号ＣＬＫ１は、１５０００の周期の真中である７５００のタイミングで立ち下がることを意味する。ＳＴＡ制約データ（３）は、クロック信号ＣＬＫ２の周期が３７５０であることを示す。ＳＴＡ制約データ（４）は、クロック信号ＣＬＫ２の立ち上がりタイミングが０であり、立ち下がりタイミングが１８７５であることを示す。すなわち、クロック信号ＣＬＫ２は、３７５０の周期の真中である１８７５のタイミングで立ち下がることを意味する。ＳＴＡデータ（５）は、ＭＣＰ制約データであり、マルチサイクル数が４であることを示す。ＳＴＡ制約データ（６）は、クロック信号ＣＬＫ１からクロック信号ＣＬＫ２へデータ信号ＤＡＴＡ１を通して、マルチサイクルパスのクロック乗り換えが行われることを意味する。
【００４３】
上記のようなＳＴＡ制約の時に、データ信号ＤＡＴＡ１に与える遅延時間Ｄ２は、次式のように、クロック信号ＣＬＫ２の周期及びマルチサイクル数ＭＣＰを基に演算される。遅延時間Ｄ２は、遅延データ１１７に対応する。ここで、上記のように、クロック信号ＣＬＫ２の周期は３７５０、マルチサイクル数ＭＣＰは４である。
【００４４】
D2 = CLK2の周期 × (MCP - 1)
= 3750 × (4-1)
= 11250
【００４５】
なお、次式のように、変数ｎを設定変更可能にして、遅延時間Ｄ２を演算するようにしてもよい。例えば、変数ｎを２に設定変更することができる。
D2 = CLK2の周期 × (MCP - n)
【００４６】
次に、ステップ１１０では、図９及び図１１に示すように、ＲＴＬデータ１０１、テストパターン１０９及びデータ１１７（遅延時間Ｄ２）を基にシミュレーションを行うことにより、タイミング検証を行う。
【００４７】
図９は、図２の回路に遅延時間Ｄ２を付与したシミュレーション結果を示すタイミングチャートであり、ＳＴＡ制約データ１１４を基に演算した遅延時間Ｄ２をマルチサイクルパスのデータＤＡＴＡ１に与えたものである。すなわち、データＤＡＴＡ１は、クロック信号ＣＬＫ２の３サイクル分の遅延時間Ｄ２が付与されている。フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がり、かつ同期信号ＳＹＮＣの立ち下がりで、入力データＤＡＴＡ１をラッチし、出力データＯＵＴＤＡＴＡを出力する。出力データＯＵＴＤＡＴＡは、第２、第６及び第１０のサイクルでＡ、Ｂ及びＣに変化する。図２の回路は正常なので、図９の出力データＯＵＴＤＡＴＡは、図８の出力データＯＵＴＤＡＴＡと全く同じタイミングで変化することになり、検証に成功し、問題ないことが検証できる。
【００４８】
図１１は、図３の回路に遅延時間Ｄ２を付与したシミュレーション結果を示すタイミングチャートであり、ＳＴＡ制約データ１１４を基に演算した遅延時間Ｄ２をマルチサイクルパスのデータＤＡＴＡ１に与えたものである。すなわち、データＤＡＴＡ１は、クロック信号ＣＬＫ２の３サイクル分の遅延時間Ｄ２が付与されている。フリップフロップ２０３は、クロック信号ＣＬＫ２の立ち上がりで、入力データＤＡＴＡ１をラッチし、出力データＯＵＴＤＡＴＡを出力する。出力データＯＵＴＤＡＴＡは、第２、第６及び第１０のサイクルでＡ、Ｂ及びＣに変化する。図１１の出力データＯＵＴＤＡＴＡは、図１０の出力データＯＵＴＤＡＴＡとは異なるタイミングで変化するので、検証に失敗し、図３の回路の異常を見つけることができる。
【００４９】
ステップ１１１では、検証に成功すればステップ１１５へ進み処理を終了し、検証に失敗すればＲＴＬデータ１０１、テストパターン１０９又はＳＴＡ制約データ１１４を修正し、ステップ１１０のシミュレーションを繰り返す。
【００５０】
次に、ステップ１０２では、ＲＴＬデータ１０１及びＳＴＡ制約データ１１４を基に論理合成を行い、ネットリスト１０３を生成する。ネットリスト１０３は、回路の接続状態を表現したデータである。次に、ステップ１０４では、ネットリスト１０３及びＳＴＡ制約データ１１４を基にレイアウト設計を行い、ネットリスト１０５及びＳＤＦ（Standard Delay Format）ファイル１０６を生成する。ＳＤＦファイル１０６は、遅延時間を表すデータである。ステップ１０４のレイアウト設計は、上記のステップ１１０のシミュレーションの後に行うので、レイアウト設計のやり直しを防止することができる。
【００５１】
次に、ステップ１０７及び１１２を並列に行う。ステップ１０７では、ネットリスト１０５、ＳＤＦファイル１０６及びＳＴＡ制約データ１１４を基に静的タイミング解析（ＳＴＡ）を行う。静的タイミング解析は、論理回路において信号が素子を通過する際に生じる遅延時間を計算し、フリップフロップへの書き込みが正常に行なわれるかどうかを検証する。ステップ１０８では、検証に成功すればステップ１１５へ進み処理を終了し、検証に失敗すれば、ＲＴＬデータ１０１を修正し、ステップ１０２及び１０４の処理を繰り返す。
【００５２】
ステップ１１２では、ネットリスト１０５、ＳＤＦファイル１０６及びテストパターン１０９を基に遅延付きシミュレーション（Validation）を行い、タイミング検証を行う。次に、ステップ１１３では、検証に成功すれば、ステップ１１５へ進み、処理を終了し、検証に失敗すれば、ＲＴＬデータ１０１、ＳＴＡ制約データ１１４又はテストパターン１０９を修正し、上記の処理を繰り返す。
【００５３】
本実施形態では、ステップ１１６においてＳＴＡ制約データ１１４を基に遅延データ１１７を演算し、ステップ１１０において遅延データ１１７、テストパターン１０９及びＲＴＬ１０１を基に図９及び図１１のシミュレーションを行う。図１２では、ステップ１１２のレイアウト後のシミュレーションを行わなければマルチサイクルパスを有する回路の異常を検証できなかった。本実施形態では、ステップ１１０のレイアウト前のシミュレーションの早い段階で、マルチサイクルパスを有する回路の異常を検出することができる。また、ステップ１１２のシミューションに使用するデータ１０５及び１０６はデータ量が膨大で、ステップ１１２のシミュレーションに多くの時間が掛かることから、検証するテストパターン１０９の数に限りがある。これに対し、ステップ１１０のシミュレーションは使用するデータ量が少ないため、多くのテストパターン１０９を実施することができ、検証の品質を上げることができる。
【００５４】
以上のように、本実施形態によれば、マルチサイクル数を基に生成した遅延データをマルチサイクルパスのデータＤＡＴＡ１に付与してシミュレーションを行うことにより、検証結果を早期に得ることができ、回路の設計時間を短縮することができる。
【００５５】
また、レイアウト前のモデルで、マルチサイクルパスを有する回路のシミュレーション（ステップ１１０）ができるので、早い段階で回路のクロック乗り換えミスを検出でき、工程を縮めることができる。また、レイアウト後のシミュレーション（ステップ１１２）に対して、レイアウト前のモデルでのシミュレーション（ステップ１１０）は実行速度が速いため、より多くの検証を実施することができるので、検証の品質を上げることができる。
【００５６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態による半導体回路の設計処理を示すフローチャートである。
【図２】正常なマルチサイクルパスを有する半導体回路の構成例を示す図である。
【図３】異常なマルチサイクルパスを有する半導体回路の構成例を示す図である。
【図４】図２の回路のレイアウト前の遅延を考慮しないシミュレーションの波形を示すタイミングチャートである。
【図５】図２の回路のレイアウト後の遅延を考慮したシミュレーションの波形を示すタイミングチャートである。
【図６】図３の回路のレイアウト前の遅延を考慮しないシミュレーションの波形を示すタイミングチャートである。
【図７】図３の回路のレイアウト後の遅延を考慮したシミュレーションの波形を示すタイミングチャートである。
【図８】図２の回路の遅延を考慮しないシミュレーション結果を示すタイミングチャートである。
【図９】図２の回路に遅延時間を付与したシミュレーション結果を示すタイミングチャートである。
【図１０】図３の回路の遅延を考慮しないシミュレーション結果を示すタイミングチャートである。
【図１１】図３の回路に遅延時間を付与したシミュレーション結果を示すタイミングチャートである。
【図１２】半導体回路の設計の処理を示すフローチャートである。
【図１３】半導体回路の設計処理を行うコンピュータ（マルチサイクルパス検証装置）のハードウエア構成例を示すブロック図である。
【符号の説明】
【００５８】
２０１  フリップフロップ
２０２  組み合わせ回路
２０３  フリップフロップ
ＣＬＫ１  クロック信号
ＣＬＫ２  クロック信号
ＳＹＮＣ  同期信号
ＩＮＤＡＴＡ  入力データ
ＤＡＴＡ１  データ
ＯＵＴＤＡＴＡ  出力データ
【図１】
2007241836.tif 000003
【図２】
2007241836.tif 000004
【図３】
2007241836.tif 000005
【図４】
2007241836.tif 000006
【図５】
2007241836.tif 000007
【図６】
2007241836.tif 000008
【図７】
2007241836.tif 000009
【図８】
2007241836.tif 000010
【図９】
2007241836.tif 000011
【図１０】
2007241836.tif 000012
【図１１】
2007241836.tif 000013
【図１２】
2007241836.tif 000014
【図１３】
2007241836.tif 000015