(57)【要約】【課題】  ゲートシミュレーションを可能にしつつ、機能ブロック（ＩＰ）の回路情報を秘匿にすることができるシミュレーションモデルを提供することを課題とする。【解決手段】  機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップ（Ｓ１０８））と、ネットリストを基に回路情報を削除し、機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップ（Ｓ１０９）とを有するシミュレーションモデル生成方法が提供される。【選択図】        図１
2006127449.tif 000002
【特許請求の範囲】
【請求項１】
機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップと、
前記ネットリストを基に回路情報を削除し、前記機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップと
を有するシミュレーションモデル生成方法。
【請求項２】
前記ゲートシミュレーションモデルは、前記機能ブロックの遅延情報が前記機能ブロックの入出力バッファで表現される請求項１記載のシミュレーションモデル生成方法。
【請求項３】
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部端子数は、前記ネットリストにおける前記機能ブロックの外部端子数よりも少ない請求項２記載のシミュレーションモデル生成方法。
【請求項４】
前記機能ブロックは第１及び第２の論理回路を含み、
前記ネットリストでは、前記第１の論理回路に第１の信号が入力され、前記第２の論理回路に第２の信号が入力され、前記第１及び第２の信号は同一信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第１及び第２の論理回路に前記第１の信号が入力され、前記第１及び第２の信号間の遅延情報は前記第２の論理回路の入出力バッファに分配される請求項３記載のシミュレーションモデル生成方法。
【請求項５】
前記第１及び第２の信号は、第１及び第２のクロック信号である請求項４記載のシミュレーションモデル生成方法。
【請求項６】
前記第１及び第２の論理回路は、クロック端子、入力端子及び出力端子を含む第１及び第２のフリップフロップであり、
前記ネットリストでは、前記第１のフリップフロップのクロック端子に第１のクロック信号が入力され、前記第２のフリップフロップのクロック端子に第２のクロック信号が入力され、前記第１及び第２のクロック信号は同一クロック信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第１及び第２のフリップフロップのクロック端子に前記第１のクロック信号が入力され、前記第１及び第２のクロック信号間の遅延情報は前記第２のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配される請求項５記載のシミュレーションモデル生成方法。
【請求項７】
前記第１のフリップフロップの出力遅延情報は、前記第１のフリップフロップの出力端子に接続される出力バッファに分配され、
前記第２のフリップフロップの出力遅延情報は、前記第２のフリップフロップの出力端子に接続される出力バッファに分配される請求項６記載のシミュレーションモデル生成方法。
【請求項８】
前記第１及び第２のクロック信号は、前記機能ブロックの外部で同一クロック信号から分岐された信号であり、前記機能ブロックの異なる外部クロック端子に入力される請求項７記載のシミュレーションモデル生成方法。
【請求項９】
前記遅延情報は、前記機能ブロックの境界に存在する配線の遅延情報を含む請求項１記載のシミュレーションモデル生成方法。
【請求項１０】
前記ネットリストは、同一出力端子に複数の経路の信号を出力可能な機能ブロックを有し、
前記ゲートシミュレーションモデルは、前記複数の経路のうち通過する経路に応じて前記出力端子から出力される信号の遅延時間を変化させる遅延情報を含む請求項１記載のシミュレーションモデル生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションモデル生成方法に関し、特に電子回路のタイミング検証を行うためのシミュレーションモデルの生成方法に関する。
【背景技術】
【０００２】
従来から標準的に用いられる形式の回路情報に基づいてシミュレーションを行えるようにすることにより、ベンダとカスタマが協調して製品を作成しようとした場合などで、種々の製造元から提供される半導体集積回路を用いた電子回路の動作のシミュレーションをすることができるものの、上記のような形式の回路情報は、公開された一定の規則に従って記述されたものであるため、提供を受けた側などが回路情報を解読することによって、半導体集積回路に用いられている素子の種類や各素子の接続関係、信号を伝わる信号の遅延情報など、すなわち回路設計上のノウハウや開発傾向などの設計情報を容易に把握することが可能であった。
【０００３】
カスタマがシミュレーションを行えるようにするために、ベンダはカスタマに機能ブロックの回路情報を提供する必要がある。カスタマは、その機能ブロックを用いた電子回路を設計し、その機能ブロックの回路情報を基にシミュレーションを行う。しかし、回路情報をカスタマに提供してしまうと、回路設計上のノウハウ等の知られたくない情報がカスタマに知られてしまう問題点がある。
【０００４】
下記の特許文献１は、上記の問題を解決するために、回路情報を暗号化することによって回路設計上のノウハウや開発傾向などの設計情報を秘匿化するなどの対策がとられている。
【０００５】
【特許文献１】特開２００４−１７１３６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、暗号化しても回路情報は残っているため、暗号を解読することにより元の回路情報を復元することが出来る。近年のコンピュータの処理能力の向上、ネットワーク技術の向上によって、暗号鍵を解いて回路情報を復号化することが比較的容易になりつつある。
【０００７】
また、近年の集積回路技術の進歩に伴い、大規模化が進み、そして、ＩＰ（Intellectual Property）が流通するようになり、同じ半導体回路内にＩＰの回路情報を保護するために秘匿が必須となる部分と必ずしも秘匿する必要のない部分がはっきりとしてきた。
【０００８】
本発明の目的は、ゲートシミュレーションを可能にしつつ、機能ブロック（ＩＰ）の回路情報を秘匿にすることができるシミュレーションモデルを提供することである。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップと、ネットリストを基に回路情報を削除し、機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップとを有するシミュレーションモデル生成方法が提供される。
【発明の効果】
【００１０】
ベンダはカスタマに対してブラックボックスであるゲートシミュレーションモデルを提供するだけでよく、ネットリストを提供しなくてもよいため、機能ブロック（ＩＰ）の回路情報及び設計ノウハウの秘匿が可能になる。また、ゲートシミュレーションモデルは、ネットリストと異なり、回路情報がないので、ゲートシミュレーションの速度を向上させることができる。また、ゲートシミュレーションモデルは、入出力間の遅延情報のみ含めばよいので、そのサイズが小さくなり、必要なファイルサイズ及びメモリサイズを大幅に減少させることができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施形態による、ベンダ及びカスタマが協調して半導体集積回路（電子回路）を作成する処理例の流れを示すフローチャートである。
【００１２】
ステップＳ１０１では、ベンダはある機能ブロック（ＩＰ）の論理シミュレーションモデルを生成する。機能ブロックは、例えばＣＰＵ等である。論理シミュレーションモデルは、その機能ブロックの回路情報を含まないブラックボックスであり、その機能ブロックの入出力間の論理情報を含み、論理検証を行うためのＤＳＭ（Design Simulation Model）である。次に、ステップＳ１０２では、ベンダはその論理シミュレーションモデルをカスタマに提供する。この論理シミュレーションモデルは、例えばＨＤＬ（Hardware Description Language）のシミュレーション用言語で記述したものをコンパイルしたバイナリコードである。
【００１３】
次に、ステップＳ１０３では、カスタマはその論理シミュレーションモデルをベンダから受け取る。次に、ステップＳ１０４では、カスタマはその論理シミュレーションモデルに対応する機能ブロックを用いた半導体集積回路を設計する。ただし、その機能ブロックは、ブラックボックスのままであるので、カスタマは回路情報を知ることができず、回路情報のノウハウを秘匿にすることができる。次に、ステップＳ１０５では、カスタマはその機能ブロックの論理シミュレーションモデルを用いて半導体集積回路の論理シミュレーションを行う。論理シミュレーションは、半導体集積回路の論理動作を確認する論理検証のためのＲＴＬベースのプリレイアウトの論理シミュレーションである。論理シミュレーションで論理検証された後、ステップＳ１０６では、カスタマはその半導体集積回路の設計データをベンダに渡す。
【００１４】
次に、ステップＳ１０７では、ベンダはその半導体集積回路の設計データをカスタマから受け取る。次に、ステップＳ１０８では、ベンダはその半導体集積回路のレイアウト設計を行い、ネットリストを生成する。ネットリストは、上記の半導体集積回路の回路情報を含む。上記の機能ブロックのブラックボックスは、この段階でレイアウト設計される。
【００１５】
次に、ステップＳ１０９では、ベンダは上記のネットリストを基に上記の半導体集積回路のゲートシミュレーションモデルを生成する。ゲートシミュレーションモデルは、上記のネットリストを基に回路情報を削除したブラックボックスであり、上記の機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのＤＳＭ（Design Simulation Model）である。具体的には、ゲートシミュレーションモデルは、上記の論理シミュレーションモデルに遅延情報を付加することにより生成される。次に、ステップＳ１１０では、ベンダはそのゲートシミュレーションモデルをカスタマに提供する。この論理シミュレーションモデルは、例えばＨＤＬで記述したものをコンパイルしたバイナリコードであり、その遅延情報はＳＤＦ（Standard Delay Format）でアノテーションされている。
【００１６】
次に、ステップＳ１１１では、カスタマはそのゲートシミュレーションをベンダから受け取る。ここで、上記の機能ブロックは、ブラックボックスのままであるので、カスタマは回路情報を知ることができず、回路情報のノウハウを秘匿にすることができる。次に、ステップＳ１１２では、カスタマはそのゲートシミュレーションモデルを用いて上記の半導体集積回路のゲートシミュレーションを行う。ゲートシミュレーションは、半導体集積回路のセットアップタイム及びホールドタイム等のタイミング検証を行うためのポストレイアウト（実配線レベル）のシミュレーション（バリデーション）である。ゲートシミュレーションでタイミング検証された後、ステップＳ１１３では、カスタマはその半導体集積回路をベンダに発注する。
【００１７】
次に、ステップＳ１１４では、ベンダはその半導体集積回路をカスタマから受注する。次に、ステップＳ１１５では、ベンダは上記の半導体集積回路のネットリストを基にその半導体集積回路を製造する。次に、ステップＳ１１６では、ベンダはその半導体集積回路をカスタマに納品する。
【００１８】
図２は、図１のステップＳ１０１で生成される論理シミュレーションモデル２０２の構成例を示す図である。以下に、ＡＲＭ社のＣＰＵコア（ＩＰ）を例に示す。英国ＡＲＭ社が開発したＡＲＭ７ファミリ、ＡＲＭ９ファミリプロセッサは組み込み業界では非常に良く使われている。特に、ＡＳＩＣのコアとして、ユーザロジックとともにシングルチップに統合され、携帯電話、デジタルスチルカメラ等のコンシューマ商品に幅広く採用されている。
【００１９】
半導体チップ内に階層２０１がインスタンスされている。階層２０１は、例えばＡ９２６階層（A926_I8D8_I16D16_M）である。例えば、命令キャッシュ＝８ＫＢ、データキャッシュ＝８ＫＢ、命令ＴＣＭ（Tightly Coupled Memory）＝１６ＫＢ、データＴＣＭ＝１６ＫＢ、ＥＴＭ（Embedded Trace Macrocell）＝ｍｅｄｉｕｍの構成例を示す。さらに、階層２０１の下に階層２０２が論理シミュレーションモデルとしてインスタンスされる。階層２０２は、例えばＡＲＭ９２６ＥＪ−Ｓ階層であり、ＤＳＭの論理シミュレーションモデルである。論理シミュレーションモデル２０２は、機能ブロックの論理シミュレーションモデル２０３からなる。機能ブロック２０３は、例えばクロック同期のプロセッサモデル（PLI-Object）であり、Ｄ型フリップフロップ２１１〜２１４及び論理回路ＬＧを有する。
【００２０】
階層２０１は、外部クロック信号ＣＬＫを入力する。論理シミュレーションモデル２０２は、入力信号Ｉi，Ｉj及び外部クロック信号ＣＬＫを入力し、出力信号Ｏi及びＯjを出力する。フリップフロップ２１１〜２１４は、クロック端子、入力端子Ｄ及び出力端子Ｑを有する。クロック信号ＣＬＫは、フリップフロップ２１１及び２１２のクロック端子に入力される。
【００２１】
入力信号Ｉiは、論理回路ＬＧを介してフリップフロップ２１１の入力端子Ｄに入力される。フリップフロップ２１１は、クロック信号ＣＬＫに同期して入力端子Ｄの信号を保持して、出力端子Ｑから出力する。その出力信号は、フリップフロップ２１３及び論理回路ＬＧを介して出力信号Ｏiとして出力される。
【００２２】
入力信号Ｉjは、論理回路ＬＧを介してフリップフロップ２１２の入力端子Ｄに入力される。フリップフロップ２１２は、クロック信号ＣＬＫに同期して入力端子Ｄの信号を保持して、出力端子Ｑから出力する。その出力信号は、フリップフロップ２１４及び論理回路ＬＧを介して出力信号Ｏjとして出力される。
【００２３】
論理シミュレーションモデル２０２は、その機能ブロック２０３の回路情報を含まないブラックボックスであり、その機能ブロック２０３の入出力間の論理情報のみを含み、ＨＤＬで記述されている。この論理シミュレーションモデル２０２により、論理シミュレーションが可能になる。
【００２４】
図３は、図１のステップＳ１０９で生成されるゲートシミュレーションモデル３１０の構成例を示す図である。上記の機能ブロックのゲートシミュレーションモデル３１０は、図２の論理シミュレーションモデル２０３にＳＤＦの遅延情報のタイミングラッパ３１１を被せたものである。タイミングラッパ３１１は、入出力バッファ３０１〜３０５を有し、機能ブロック２０３の遅延情報を入出力バッファ３０１〜３０５に分配する。
【００２５】
入力バッファ３０１は、入力信号Ｉiを遅延させて論理シミュレーションモデル２０３内の論理回路ＬＧに供給する。入力バッファ３０２は、入力信号Ｉjを遅延させて論理シミュレーションモデル２０３内の論理回路ＬＧに供給する。入力バッファ３０３は、クロック信号ＣＬＫを遅延させて論理シミュレーションモデル２０３内のフリップフロップ２１１及び２１２のクロック端子に供給する。出力バッファ３０４は、論理シミュレーションモデル２０３内の論理回路ＬＧの出力信号を遅延させて出力信号Ｏiとして出力する。出力バッファ３０５は、論理シミュレーションモデル２０３内の論理回路ＬＧの出力信号を遅延させて出力信号Ｏjとして出力する。
【００２６】
ゲートシミュレーションモデル３１０は、その機能ブロック２０３の回路情報を含まないブラックボックスであり、その機能ブロック２０３の入出力間の論理情報及び遅延情報を含み、ＨＤＬで記述されている。このゲートシミュレーションモデル３１０により、ゲートシミュレーションが可能になる。
【００２７】
図２の論理シミュレーションモデル２０２では、タイミングラッパは必要でなく、遅延は０又はデルタ遅延でよい。一方、図３のゲートシミュレーションモデル３１０では、レイアウト情報から抽出した遅延情報をタイミングラッパ３１１にアノテートし、実配線レベルでのゲートシミュレーションを行う。
【００２８】
図４は、図１のステップＳ１０８で生成されるネットリストの構成例を示す図である。階層４０１は図２の階層２０１に対応し、階層４０２は図２の階層２０２に対応する。
【００２９】
図４の回路が設計上で図２の回路と異なる点を説明する。クロック信号ＣＬＫは、階層４０１の外部でルートバッファ４１１を介してクロック信号ＣＬＫi及びＣＬＫjに分岐される。これは、図１のステップＳ１０４におけるカスタマの設計段階のクロックツリー合成により階層４０２の外部クロック端子が増加する。クロックツリー合成は、例えばフリップフロップ２１１及び２１２に入力されるクロック信号のタイミングが同じになるように遅延調整するために行われる。
【００３０】
また、ネットリストでは、論理シミュレーションモデルと異なり、テスト入力信号ＳＣＡＮ−ＩＮの端子及びテスト出力信号ＳＣＡＮ−ＯＵＴの端子が階層４０２に設けられる。テスト信号ＳＣＡＮ−ＩＮ及びＳＣＡＮ−ＯＵＴの端子は、階層４０２の機能ブロックの内部回路をテストするためにその内部回路に接続される。これは、図１のステップＳ１０８のベンダのレイアウト設計段階のＤＦＴ（Design For Test）処理によりＳｃａｎ又はＢＩＳＴ（Boundary Scan Test）等の入出力テスト端子が増加するものである。
【００３１】
ネットリストは、階層４０２の機能ブロックを用いた全体電子回路の回路情報を含む。すなわち、階層４０２の機能ブロック内のすべての回路情報及び遅延情報を含む。フリップフロップ２１１のクロック端子には、ルートバッファ４１１の出力クロック信号が、遅延時間αi1のバッファ、遅延時間αi2のバッファ及び遅延時間αi3のバッファを介して入力される。フリップフロップ２１２のクロック端子には、ルートバッファ４１１の出力クロック信号が、遅延時間αj1のバッファ、遅延時間αj2のバッファ及び遅延時間αj3のバッファを介して入力される。
【００３２】
入力信号Ｉiは、遅延時間βiのバッファを介して論理回路ＬＧに入力される。入力信号Ｉjは、遅延時間βjのバッファを介して論理回路ＬＧに入力される。出力信号Ｏiは、論理回路ＬＧの出力信号が遅延時間γiのバッファを介して出力される信号である。出力信号Ｏjは、論理回路ＬＧの出力信号が遅延時間γjのバッファを介して出力される信号である。
【００３３】
遅延時間αi1及びαj1のバッファは、ルートバッファ４１１の出力から階層４０１の入力までの間の遅延時間を表す。遅延時間αi2及びαj2のバッファは、階層４０１の入力から階層４０２の入力までの間の遅延時間を表す。遅延時間αi3、αj3、βi及びβjのバッファは、階層４０２の入力から階層４０２の初段回路入力までの間の遅延時間を表す。遅延時間γi及びγjのバッファは、階層４０２の最終段回路出力から階層４０２の出力までの間の遅延時間を表す。
【００３４】
以上のように、ネットリストは、図２の論理シミュレーションモデル２０２に比べて機能ブロック外の境界が変わることが多い。特に、クロックツリーに関してはレイアウト設計を行う毎に変わるため、予め定まった論理シミュレーションモデルをＤＳＭとして提供することが困難である。端子の増加だけであれば図３のタイミングラッパ３１１を修正するだけで済むが、実際のレイアウトでは異なるクロック信号ＣＬＫi及びＣＬＫjからの遅延が定義されるべきところを、図２の論理シミュレーションモデル２０２はクロック端子が１つしかなく、その縮退（クロック端子の数を減らすこと）に関するタイミング情報の修正を全ての入出力タイミング情報に関して行う必要がある。
【００３５】
以上のように、ネットリストは、論理シミュレーションモデルに比べ、設計上２点が異なる。第１は、図４のネットリストでは、クロックツリーが任意の階層で張られることである。第２は、ＤＦＴ処理が行われることである。そのため、階層４０２としてはクロック信号ＣＬＫi，ＣＬＫjのクロック端子及びテスト信号ＳＣＡＮ−ＩＮ及びＳＣＡＮ−ＯＵＴのテスト端子が増加する。クロックツリーは、階層４０１の内部で張られることもあるが、その外で張られるとしても一般性を失わないため、その場合を図４に示す。いずれにしろ、クロックツリーはある階層内で張られ、任意の階層にルートバッファ４１１がインスタンスされる。
【００３６】
図４の場合において、階層４０２での任意のクロック入力信号をＣＬＫi，・・・，ＣＬＫjとする。それらが駆動するフリップフロップ２１１，２１２について、それぞれ階層４０２に出力を持つフリップフロップ２１３，２１４をとり、おのおのの出力端子Ｑの出力信号をＯi及びＯjとする。出力信号Ｏi及びＯjの出力遅延時間をそれぞれγi及びγjとする。また、同様に階層４０２に入力を持つフリップフロップ２１１，２１２に対する入力信号をそれぞれＩi及びＩjとする。入力信号Ｉi及びＩjの入力遅延時間をそれぞれβi及びβjとする。
【００３７】
出力信号Ｏiの出力遅延時間γiはクロック信号ＣＬＫiに依存し、出力信号Ｏjの出力遅延時間γjはクロック信号ＣＬＫjに依存する。入力信号Ｉiの入力に関するフリップフロップ２１１のセットアップタイム及びホールドタイムはクロック信号ＣＬＫiに依存し、入力信号Ｉjの入力に関するフリップフロップ２１２のセットアップタイム及びホールドタイムはクロック信号ＣＬＫjに依存する。セットアップタイムは、フリップフロップにおいて入力端子Ｄの信号を確定してからクロック信号を立ち上げるまでの時間である。ホールドタイムは、フリップフロップにおいてクロック信号の立ち上がりから入力端子Ｄの信号を変えてはならない時間である。
【００３８】
ベンダは、カスタマに対してブラックボックスであるゲートシミュレーションモデルを提供する。上記のようにクロック信号ＣＬＫi，ＣＬＫjの端子が増加し、かつテスト信号ＳＣＡＮ−ＩＮ，ＳＣＡＮ−ＯＵＴの端子が増加すると、階層のタイミングラッパの端子を増加させる必要がある。ゲートシミュレーションモデルでは、ゲートシミュレーションが目的であることから、テスト信号ＳＣＡＮ−ＩＮ及びＳＣＡＮ−ＯＵＴの端子は単に端子だけの増加のみで、テスト機能が動作しなくても問題ない。一方、クロック端子に関しては、図４のネットリストでは複数あったクロック端子が図５のゲートシミュレーションモデルでは１本に戻し、レイアウト情報から抽出した入力遅延時間及び出力遅延時間の補正を行う。
【００３９】
すなわち、ネットリストは、論理シミュレーションモデルに比べて、クロック端子及びテスト端子が増加する。その増加数は、レイアウト毎に変わり、定まっていない。そこで、ゲートシミュレーションモデルでは、論理シミュレーションモデルのクロック端子数を同じ又はそれに近い数とし、統一化を図る。
【００４０】
図５は、図１のステップＳ１０９で生成されるゲートシミュレーションモデル５０２の構成例を示す図であり、図４のネットリストを基に生成したゲートシミュレーションモデル５０２である。ゲートシミュレーションモデル５０２は、図４の階層４０２のネットリストに対応するものであり、図３のゲートシミュレーションモデル３１０と同様に論理シミュレーションモデル２０３にタイミングラッパ５０３を被せたものである。ゲートシミュレーションモデル５０２は、その機能ブロックの回路情報を含まないブラックボックスであり、その機能ブロックの入出力間の論理情報及び遅延情報を含む。
【００４１】
ゲートシミュレーションモデル５０２は、ゲートシミュレーションが目的であることから、テスト信号ＳＣＡＮ−ＩＮ及びＳＣＡＮ−ＯＵＴの端子によるテスト機能が動作しなくても問題ないので、テスト信号ＳＣＡＮ−ＩＮ及びＳＣＡＮ−ＯＵＴの端子は内部回路に接続されていない。
【００４２】
ゲートシミュレーションモデル５０２は、論理シミュレーションモデル２０３にタイミングラッパ５０３を被せたものである。図４のネットリストでは階層４０２が２つのクロック信号ＣＬＫi及びＣＬＫjの端子を有していたが、このゲートシミュレーションモデル５０２では図２の論理シミュレーションモデル２０２と同様に１つのクロック信号ＣＬＫjの端子を有する。遅延時間αi2のバッファの出力クロック信号ＣＬＫiは、ゲートシミュレーションモデル５０２の外部で切断される。その代わりに、フリップフロップ２１１のクロック端子には、フリップフロップ２１２のクロック端子と同じく、クロック信号ＣＬＫjが遅延時間αj3のバッファを介して入力される。
【００４３】
タイミングラッパ５０３では、図４のネットリストの遅延時間βi，βj，γi，γjが遅延時間β'i，β'j，γ'i，γ'jに置き換えられる。フリップフロップ２１１のクロック端子に入力されるクロック信号が変わったことにより、その変化前後のクロック信号間の遅延情報は、フリップフロップ２１１の入力バッファの遅延時間β'i及び出力バッファの遅延時間γ'iに分配される。以下、遅延時間β'i，β'j，γ'i，γ'jの算出方法を説明する。
【００４４】
仮定として、図４のネットリストにおいて、ルートバッファ４１１から階層４０２内の任意のフリップフロップ２１１及び２１２等のクロック端子までの遅延時間の集合｛Σαi,・・・，Σαj｝において、Σαjが最小とする。ここで、Σαj＝αj1＋αj2＋αj3とする。
Σαj≦Σαn（ただしｎ≠ｊ）
【００４５】
また、以下の議論において、タイミングの基準点は任意の階層にインスタンスされるルートバッファ４１１の出力点とする。出力信号Ｏi（ただしｉ≠ｊ）の出力タイミングＴｏiは、図４より、フリップフロップ２１１のクロック信号の入力から出力端子Ｑの出力までの遅延時間をＴQとすると、以下のようになる
Ｔｏi＝Σαi＋ＴQ＋γi
【００４６】
ところが図５よりゲートシミュレーションモデル５０２のクロック端子が１本しかなくなり、フリップフロップ２１１のクロック信号の遅延はΣαjで表される。また、ゲートシミュレーションモデル５０２では回路情報がないので、フリップフロップ２１１の出力遅延時間ＴQは、０になる。したがって、図５では、出力タイミングＴｏiは、次式で表される。
【００４７】
Ｔｏi＝Σαj＋（Σαi−Σαj）＋０＋（ＴQ＋γi）
＝Σαj＋（ＴQ＋γi＋Ｓi） (ただしＳi＝Σαi−Σαjとした)
＝Σαj＋γ'i
【００４８】
従って、γ'iは、γi、ＴQとＳiを使用して以下のような関係式で表すことができる。
γ'i ＝（ＴQ＋γi＋Ｓi）
【００４９】
よって、クロック信号をＣＬＫiからＣＬＫjに変更しても、出力遅延γiにクロック信号のルートバッファ４１１からのスキュー（遅延差Ｓi＝Σαi−Σαj）とフリップフロップ２１１の出力遅延ＴQを加えることで出力タイミングＴｏiは補償できることがわかる。
【００５０】
同様に、図４のネットリストにおいて、入力信号Ｉi（ただしｉ≠ｊ）に関するフリップフロップ２１１のセットアップタイムＴsuiは、論理遅延をＴlogic、クロック周期をＴperiodとすると、次式で表される。
Ｔsui＝Ｔperiod−Ｔlogic−βi ＋Σαi
【００５１】
ところが、図５では、ゲートシミュレーションモデル５０２のクロック端子が１本しかなくなり、フリップフロップ２１１のクロック信号の遅延時間はΣαjで表されるため、セットアップタイムＴsuiは、次式で表される。
【００５２】
Ｔsui＝Ｔperiod−Ｔlogic−βi＋Σαj＋（Σαi−Σαj）
＝Ｔperiod−Ｔlogic−（βi−Ｓi）＋Σαj    （ただしＳi＝Σαi−Σαjとした）
＝Ｔperiod−Ｔlogic−β'i＋Σαj
【００５３】
以上のことから、遅延時間β'iは、以下のような関係式となる。
β'i＝βi −Ｓi
【００５４】
よって、フリップフロップ２１１のクロック入力信号をＣＬＫiからＣＬＫjに変更しても、入力遅延時間βiからクロック信号のルートバッファ４１１からのスキュー（遅延差Ｓi＝Σαi−Σαj）を差し引くことでセットアップタイムＴsuiは補償できることがわかる。
【００５５】
同様に、図４において、入力信号Ｉi（ただしｉ≠ｊ）に関するフリップフロップ２１１のホールドタイムＴhdiは、論理遅延をＴlogicとすると、次式で表される。
Ｔhdi＝Ｔlogic＋βi−Σαi
【００５６】
ところが、図５では、ゲートシミュレーションモデル５０２のクロック端子が１本しかなくなり、フリップフロップ２１１のクロック信号の遅延時間はΣαjで表されるため、ホールドタイムＴhdiは、次式で表される。
【００５７】
Ｔhdi＝Ｔlogic＋βi−Σαj−（Σαi−Σαj）
＝Ｔlogic＋（βi−Ｓi）−Σαj （ただしＳi＝Σαi−Σαjとした）
＝Ｔlogic＋β'i−Σαj
【００５８】
以上のことから、遅延時間β'iは、以下のような関係式となる。
β'i ＝βi−Ｓi
【００５９】
よって、フリップフロップ２１１のクロック信号をＣＬＫiからＣＬＫjに変更しても、入力遅延時間βiからクロック信号のルートバッファ４１１からのスキュー（遅延差Ｓi＝Σαi−Σαj）を差し引くことでホールドタイムＴhdiは補償できることがわかる。
【００６０】
また、前記までの議論から除いていた出力信号Ｏjの遅延時間Ｔｏjは、図５よりΣαjのクロック端子１本が残ることから、次式で表される。
【００６１】
Ｔｏj＝Σαj＋０＋ＴQ＋γj
＝Σαj＋γ'j
【００６２】
これより、遅延時間γ'jは、以下の関係式が成り立つ。
γ'j＝ＴQ＋γj
【００６３】
さらに、入力信号ＩjのセットアップタイムＴsuj及びホールドタイムＴhdjは、以下の関係式となる。
【００６４】
Ｔsuj＝Ｔperiod−Ｔlogic−βj＋Σαj
＝Ｔperiod−Ｔlogic−β'j＋Σαj
Ｔhdj＝Ｔlogic＋βj−Σαj
＝Ｔlogic＋β'j−Σαj
【００６５】
これより、遅延時間β'iは、以下のような関係式となる。
β'j＝βj
【００６６】
以上のように、図５のゲートシミュレーションモデルにおける機能ブロックの外部クロック端子数を、図４のネットリストにおける機能ブロックの外部クロック端子数よりも少なくし、論理シミュレーションモデルにおける機能ブロックの外部クロック数と同一又はそれに近づけ、統一的処理を行うことができる。
【００６７】
図４のネットリストでは、フリップフロップ（論理回路）２１２のクロック端子に第１のクロック信号が入力され、フリップフロップ２１１のクロック端子に第２のクロック信号が入力される。第１及び第２のクロック信号は同一クロック信号から分岐された信号である。図５のゲートシミュレーションモデルでは、フリップフロップ２１１及び２１２のクロック端子に第１のクロック信号が入力される。第１及び第２のクロック信号間の遅延情報はフリップフロップ２１１の入力端子及び出力端子に接続される入力バッファ（β'i）及び出力バッファ（γ'i）に分配される。
【００６８】
フリップフロップ２１１の出力遅延情報ＴQは、フリップフロップ２１１の出力端子に接続される出力バッファ（γ'i）に分配される。フリップフロップ２１２の出力遅延情報ＴQは、フリップフロップ２１２の出力端子に接続される出力バッファ（γ'j）に分配される。
【００６９】
図６は、図１のステップＳ１０９で生成されるゲートシミュレーションモデル５０２の他の構成例を示す図である。図６のゲートシミュレーションモデルは、図５のものに対して、遅延時間αj3のバッファが削除された点が異なる。
【００７０】
この場合、遅延時間γ'i及びβ'iは、次式で表される。
γ'i ＝（ＴQ＋γi＋Ｓi）
β'i ＝βi−Ｓi
ここで、Ｓi＝Σαi−（αj1＋αj2）になる。
【００７１】
また、遅延時間γ'j及びβ'jは、次式で表される。
γ'j ＝（ＴQ＋γj＋Ｓj）
β'j ＝βj−Ｓj
ここで、Ｓj＝αj3になる。
【００７２】
また、同様に、遅延時間αj1及びαj2のバッファを削除し、遅延時間遅延時間γ'i、β'i、γ'j及びβ'jを計算するようにしてもよい。
【００７３】
以上のように、図４のネットリストでは、フリップフロップ２１２のクロック端子に第１のクロック信号が入力され、フリップフロップ２１１のクロック端子に第２のクロック信号が入力される。第１及び第２のクロック信号は同一クロック信号から分岐された信号である。図６のゲートシミュレーションモデル５０２では、フリップフロップ２１１及び２１２に第３のクロック信号が入力され、第１及び第３のクロック信号間の遅延情報はフリップフロップ２１２の入出力バッファ（β'j及びγ'j）に分配され、第２及び第３のクロック信号間の遅延情報はフリップフロップ２１１の入出力バッファ（β'i及びγ'i）に分配される。
【００７４】
図８（Ａ）は、インバータ（ゲート）８０１及びその出力端子に接続される配線８０２を示す図である。ＳＤＦでは、インバータ８０１の遅延情報及び配線８０２の遅延情報を表現することができる。
【００７５】
図８（Ｂ）は、図４に対応し、図１のステップＳ１０８で生成されるネットリストの構成例を示す図である。インバータ８１１の出力端子及びインバータ８１３の入力端子は、配線８１２により接続される。インバータ８１１は、階層４０１の外に配置される。インバータ８１３は、遅延情報（時間）Ｄ１を有し、機能ブロック階層４０２の中に配置される。配線８１２は、遅延情報Ｄ２を有し、階層４０１及び４０２の境界に存在する。階層４０１及び４０２の境界において配線８１２の遅延情報を定義するとき、この境界においてＳＤＦを分離する必要がある。しかし、ゲートシミュレーションモデル化により、受信側の階層４０２内のゲートが隠蔽されるため、配線８１２の遅延時間Ｄ２が定義できなくなる。
【００７６】
図８（Ｃ）は、図５に対応し、図１のステップＳ１０９で生成されるゲートシミュレーションモデル５０２の構成例を示す図であり、図８（Ｂ）のネットリストを基に生成される。ゲートシミュレーションモデル５０２は、図８（Ｂ）の機能ブロック階層４０２のネットリストに対応するものである。本実施形態では、上位階層４０１の最終段の配線８１２の遅延情報Ｄ２を削除し（０にし）、その遅延情報Ｄ２を下位階層５０２の初段ゲート８１３の遅延情報Ｄ１に加算する処理を行い、精度を保つ。ゲート８１３は、図５のタイミングラッパ５０３においてＳＤＦの遅延情報として記述される。
【００７７】
以上のように、ゲートシミュレーションモデル対象の階層４０２と上位階層４０１を繋ぐ配線８１２の遅延情報はＤ２である。ゲートシミュレーションモデルの遅延情報を生成するとき、配線８１２の遅延情報Ｄ２をゲートシミュレーションモデル５０２内のゲート８１３の遅延情報Ｄ１に加算して含めてしまうことにより、シミュレーションモデルを含んだ設計情報と元の設計情報との遅延情報の等価性を一致させることができる。
【００７８】
ハードＩＰをＤＳＭに置き換える場合、ゲートシミュレーションモデルの対象となる機能ブロック階層４０２と上位階層４０１の間の境界に存在する配線８１２の遅延情報Ｄ２をゲートシミュレーションモデル５０２内のゲート８１３の遅延情報Ｄ１に付加することにより、ＤＳＭの出力信号の変化タイミングを元のハードＩＰと正確に一致させることができる。これにより、実際のＬＳＩの動作をゲートシミュレーションにおいて、より正確に再現することが可能となる。
【００７９】
図９は、図４に対応し、図１のステップＳ１０８で生成されるネットリストの構成例を示す図である。機能ブロック階層４０２は、例えば３個のＤ型フリップフロップ９１１〜９１３、否定論理積（ＮＡＮＤ）回路９２１、否定論理和（ＮＯＲ）回路９２２及び出力端子Ｏ１を有する。ＮＡＮＤ回路９２１は、フリップフロップ９１１及び９１２の出力信号を入力し、そのＮＡＮＤ信号を出力する。ＮＯＲ回路９２２は、ＮＡＮＤ回路９２１の出力信号及びフリップフロップ９１３の出力信号を入力し、そのＮＯＲ信号を出力端子Ｏ１に出力する。ルートバッファ９０１は、機能ブロック階層４０２の外に設けられ、クロック信号ＣＬＫを増幅して出力する。
【００８０】
フリップフロップ９１１のクロック端子には、遅延時間α１のバッファを介してルートバッファ９０１の出力クロック信号が供給される。フリップフロップ９１２のクロック端子には、遅延時間α２のバッファを介してルートバッファ９０１の出力クロック信号が供給される。フリップフロップ９１３のクロック端子には、遅延時間α３のバッファを介してルートバッファ９０１の出力クロック信号が供給される。
【００８１】
出力端子Ｏ１には３つのフリップフロップ９１１〜９１３が接続されており、それぞれの出力端子Ｑの信号は別々の時間に別々の経路Ａ１，Ａ２，Ａ３を通って出力端子Ｏ１に伝播する。機能ブロック階層４０２をＤＳＭに置き換えた場合、フリップフロップ９１１〜９１３は見えなくなってしまい、出力端子Ｏ１に出力された信号が経路Ａ１〜Ａ３のうちのどの経路を通って出力されたものであるかという情報が削除されてしまう。
【００８２】
上記では、複数の回路の温度、電圧等のパラメータを変えて信号の伝わり方が最も遅くなる経路と最も早くなる経路を選択する方法を説明した。
【００８３】
しかし、本来は複数の経路Ａ１〜Ａ３があるため、ＤＳＭに置き換えた状態でゲートシミュレーションを行うと、出力端子Ｏ１において、ＤＳＭを置き換える前のシミュレーション結果と信号の変化タイミングにおいて不一致が生じることとなり、完全な一致シミュレーションを行うことができない。
【００８４】
この問題を解決するために、ＤＳＭに遅延制御用の端子を追加する。ゲートシミュレーションで使用されるＳＤＦには、ブラックボックスの入力から出力までの経路上の信号遅延時間をセレクト信号に応じて選択的に変えることができる機能を記述する。ＤＳＭに追加した遅延制御用の端子にこのＳＤＦの記述を割り当てる。このことにより、複数の経路Ａ１〜Ａ３のうちの有効になっているものを採用することが可能となる。
【００８５】
図１０は、図５に対応し、図１のステップＳ１０９で生成されるゲートシミュレーションモデル５０２の構成例を示す図であり、図９のネットリストを基に生成される。ゲートシミュレーションモデル５０２は、図９の機能ブロック階層４０２のネットリストに対応するものであり、論理シミュレーションモデル２０３にタイミングラッパ５０３を被せたものである。
【００８６】
タイミングラッパ５０３は、遅延時間Ｂ１のバッファ、遅延時間Ｂ２のバッファ、遅延時間Ｂ３のバッファ及びセレクタ９３１を有する。遅延時間Ｂ１は、経路Ａ１を通過して出力端子Ｏ１から出力信号が出力されるときの出力信号の遅延時間である。遅延時間Ｂ２は、経路Ａ２を通過して出力端子Ｏ１から出力信号が出力されるときの出力信号の遅延時間である。遅延時間Ｂ３は、経路Ａ３を通過して出力端子Ｏ１から出力信号が出力されるときの出力信号の遅延時間である。タイミングラッパ５０３は、ＳＤＦの遅延情報として記述してもよいし、上記のような回路情報そのものを記述してもよい。
【００８７】
ＮＯＲ回路９２２の出力信号は、遅延時間Ｂ１のバッファ、遅延時間Ｂ２のバッファ及び遅延時間Ｂ３のバッファをそれぞれ介してセレクタ９３１に出力される。セレクタ９３１は、セレクト信号ＳＥＬに応じて、その３つの入力信号のうちのいずれか１つを選択して出力端子Ｏ１に出力する。
【００８８】
ステートマシン９３２は、自己の状態信号及び入力信号を基に経路Ａ１〜Ａ３のうちのどの経路を介して信号が出力端子Ｏ１に出力されるかを示すセレクト信号ＳＥＬを出力する。なお、セレクト信号ＳＥＬは、ステートマシン９３２により生成される場合に限定されず、組み合わせ回路により生成してもよいし、外部信号そのものであってもよい。
【００８９】
これにより、経路Ａ１を介して出力端子Ｏ１に出力信号が出力されるときには出力信号に遅延時間Ｂ１が付与され、経路Ａ２を介して出力端子Ｏ１に出力信号が出力されるときには出力信号に遅延時間Ｂ２が付与され、経路Ａ３を介して出力端子Ｏ１に出力信号が出力されるときには出力信号に遅延時間Ｂ３が付与される。
【００９０】
以上のように、図９のネットリストが同一出力端子Ｏ１に複数の経路Ａ１〜Ａ３の信号を出力可能な機能ブロック階層４０２を有する場合、図１０のゲートシミュレーションモデル５０２は、複数の経路Ａ１〜Ａ３のうちの通過する経路に応じて出力端子Ｏ１から出力される信号の遅延時間Ｂ１〜Ｂ３を変化させる遅延情報を含む。これにより、全ての経路Ａ１〜Ａ３の信号の時間変化を元のハードＩＰとまったく同じにすることができる。
【００９１】
以上のように、本実施形態によれば、ベンダはカスタマに対してブラックボックスであるゲートシミュレーションモデルを提供するだけでよく、ネットリストを提供しなくてもよいため、機能ブロック（ＩＰ）の回路情報及び設計ノウハウの秘匿が可能になる。また、ゲートシミュレーションモデルは、ネットリストと異なり、回路情報がないので、ゲートシミュレーションの速度を向上させることができる。また、ゲートシミュレーションモデルは、入出力間の遅延情報のみ含めばよいので、そのサイズが小さくなり、必要なファイルサイズ及びメモリサイズを大幅に減少させることができる。
【００９２】
図７は、図１の処理を行うコンピュータのハードウエア構成例を示すブロック図である。ベンダはベンダのコンピュータで処理を行い、カスタマはカスタマのコンピュータで処理を行う。これらのコンピュータは、ＣＡＤ（computer-aided design）により論理シミュレーションモデル、ネットリスト及びゲートシミュレーションモデルの生成等を行うことができる。バス７０１には、中央処理装置（ＣＰＵ）７０２、ＲＯＭ７０３、ＲＡＭ７０４、ネットワークインタフェース７０５、入力装置７０６、出力装置７０７及び外部記憶装置７０８が接続されている。
【００９３】
ＣＰＵ７０２は、データの処理及び演算を行うと共に、バス７０１を介して接続された上記の構成ユニットを制御するものである。ＲＯＭ７０３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ７０２が実行することにより、コンピュータが起動する。外部記憶装置７０８にコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ７０４にコピーされ、ＣＰＵ７０２により実行される。このコンピュータは、コンピュータプログラムを実行することにより、図１のステップＳ１０１〜Ｓ１１４の処理等を行う。
【００９４】
外部記憶装置７０８は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置７０８は、コンピュータプログラム、論理シミュレーションモデル、ネットリスト及びゲートシミュレーションモデル等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
【００９５】
ネットワークインタフェース７０５は、ネットワークに対してコンピュータプログラム及びゲートシミュレーションモデル等を入出力することができる。すなわち、ベンダ及びカスタマのコンピュータ間で論理シミュレーションモデル及びゲートシミュレーションモデル等の送受信を行うことができる。入力装置７０６は、例えばキーボード及びポインティングデバイス（マウス）等であり、各種指定又は入力等を行うことができる。出力装置７０７は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
【００９６】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００９８】
本発明の実施形態は、例えば以下のように種々の適用が可能である。
【００９９】
（付記１）
機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップと、
前記ネットリストを基に回路情報を削除し、前記機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップと
を有するシミュレーションモデル生成方法。
（付記２）
前記ゲートシミュレーションモデルは、前記機能ブロックの遅延情報が前記機能ブロックの入出力バッファで表現される付記１記載のシミュレーションモデル生成方法。
（付記３）
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部端子数は、前記ネットリストにおける前記機能ブロックの外部端子数よりも少ない付記２記載のシミュレーションモデル生成方法。
（付記４）
前記機能ブロックは第１及び第２の論理回路を含み、
前記ネットリストでは、前記第１の論理回路に第１の信号が入力され、前記第２の論理回路に第２の信号が入力され、前記第１及び第２の信号は同一信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第１及び第２の論理回路に前記第１の信号が入力され、前記第１及び第２の信号間の遅延情報は前記第２の論理回路の入出力バッファに分配される付記３記載のシミュレーションモデル生成方法。
（付記５）
前記第１及び第２の信号は、第１及び第２のクロック信号である付記４記載のシミュレーションモデル生成方法。
（付記６）
前記第１及び第２の論理回路は、クロック端子、入力端子及び出力端子を含む第１及び第２のフリップフロップであり、
前記ネットリストでは、前記第１のフリップフロップのクロック端子に第１のクロック信号が入力され、前記第２のフリップフロップのクロック端子に第２のクロック信号が入力され、前記第１及び第２のクロック信号は同一クロック信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第１及び第２のフリップフロップのクロック端子に前記第１のクロック信号が入力され、前記第１及び第２のクロック信号間の遅延情報は前記第２のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配される付記５記載のシミュレーションモデル生成方法。
（付記７）
前記第１のフリップフロップの出力遅延情報は、前記第１のフリップフロップの出力端子に接続される出力バッファに分配され、
前記第２のフリップフロップの出力遅延情報は、前記第２のフリップフロップの出力端子に接続される出力バッファに分配される付記６記載のシミュレーションモデル生成方法。
（付記８）
前記第１及び第２のクロック信号は、前記機能ブロックの外部で同一クロック信号から分岐された信号であり、前記機能ブロックの異なる外部クロック端子に入力される付記７記載のシミュレーションモデル生成方法。
（付記９）
さらに、前記機能ブロックの回路情報を含まず、前記機能ブロックの入出力間の論理情報を含み、前記機能ブロックの論理検証を行うための論理シミュレーションモデルを生成するステップを有し、
前記ゲートシミュレーションモデルを生成するステップは、前記論理シミュレーションモデルに遅延情報を付加することによりゲートシミュレーションモデルを生成する付記８記載のシミュレーションモデル生成方法。
（付記１０）
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部クロック端子数は、前記論理シミュレーションモデルにおける前記機能ブロックの外部クロック端子数と同じである付記９記載のシミュレーションモデル生成方法。
（付記１１）
前記ネットリストでは前記機能ブロックは内部回路をテストするために前記内部回路に接続されるテスト端子を有し、
前記ゲートシミュレーションモデルでは前記機能ブロックのテスト端子は内部回路に接続されていない付記１０記載のシミュレーションモデル生成方法。
（付記１２）
前記遅延情報は、前記機能ブロックの境界に存在する配線の遅延情報を含む付記１記載のシミュレーションモデル生成方法。
（付記１３）
前記機能ブロックは第１及び第２の論理回路を含み、
前記ネットリストでは、前記第１の論理回路に第１の信号が入力され、前記第２の論理回路に第２の信号が入力され、前記第１及び第２の信号は同一信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第１及び第２の論理回路に第３の信号が入力され、前記第１及び第３の信号間の遅延情報は前記第１の論理回路の入出力バッファに分配され、前記第２及び第３の信号間の遅延情報は前記第２の論理回路の入出力バッファに分配される付記３記載のシミュレーションモデル生成方法。
（付記１４）
前記第１〜第３の信号は、第１〜第３のクロック信号である付記１３記載のシミュレーションモデル生成方法。
（付記１５）
前記第１及び第２の論理回路は、クロック端子、入力端子及び出力端子を含む第１及び第２のフリップフロップであり、
前記ネットリストでは、前記第１のフリップフロップのクロック端子に第１のクロック信号が入力され、前記第２のフリップフロップのクロック端子に第２のクロック信号が入力され、前記第１及び第２のクロック信号は同一クロック信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第１及び第２のフリップフロップのクロック端子に第３のクロック信号が入力され、前記第１及び第３のクロック信号間の遅延情報は前記第１のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配され、前記第２及び第３のクロック信号間の遅延情報は前記第２のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配される付記１４記載のシミュレーションモデル生成方法。
（付記１６）
前記第１のフリップフロップの出力遅延情報は、前記第１のフリップフロップの出力端子に接続される出力バッファに分配され、
前記第２のフリップフロップの出力遅延情報は、前記第２のフリップフロップの出力端子に接続される出力バッファに分配される付記１５記載のシミュレーションモデル生成方法。
（付記１７）
前記第１及び第２のクロック信号は、前記機能ブロックの外部で同一クロック信号から分岐された信号であり、前記機能ブロックの異なる外部クロック端子に入力される付記１６記載のシミュレーションモデル生成方法。
（付記１８）
さらに、前記機能ブロックの回路情報を含まず、前記機能ブロックの入出力間の論理情報を含み、前記機能ブロックの論理検証を行うための論理シミュレーションモデルを生成するステップを有し、
前記ゲートシミュレーションモデルを生成するステップは、前記論理シミュレーションモデルに遅延情報を付加することによりゲートシミュレーションモデルを生成する付記１７記載のシミュレーションモデル生成方法。
（付記１９）
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部クロック端子数は、前記論理シミュレーションモデルにおける前記機能ブロックの外部クロック端子数と同じである付記１８記載のシミュレーションモデル生成方法。
（付記２０）
前記ネットリストは、同一出力端子に複数の経路の信号を出力可能な機能ブロックを有し、
前記ゲートシミュレーションモデルは、前記複数の経路のうち通過する経路に応じて前記出力端子から出力される信号の遅延時間を変化させる遅延情報を含む付記１記載のシミュレーションモデル生成方法。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施形態による、ベンダ及びカスタマが協調して半導体集積回路（電子回路）を作成する処理例の流れを示すフローチャートである。
【図２】図１のステップＳ１０１で生成される論理シミュレーションモデルの構成例を示す図である。
【図３】図１のステップＳ１０９で生成されるゲートシミュレーションモデルの構成例を示す図である。
【図４】図１のステップＳ１０８で生成されるネットリストの構成例を示す図である。
【図５】図１のステップＳ１０９で生成される他のゲートシミュレーションモデルの構成例を示す図である。
【図６】図１のステップＳ１０９で生成される他のゲートシミュレーションモデルの構成例を示す図である。
【図７】コンピュータのハードウエア構成例を示すブロック図である。
【図８】図８（Ａ）〜（Ｃ）は機能ブロックの境界の配線の遅延情報を示す図である。
【図９】図１のステップＳ１０８で生成される他のネットリストの構成例を示す図である。
【図１０】図１のステップＳ１０９で生成される他のゲートシミュレーションモデルの構成例を示す図である。
【符号の説明】
【０１０１】
２０１  階層
２０２  論理シミュレーションモデル
２０３  機能ブロックの論理シミュレーションモデル
２１１〜２１４  フリップフロップ
３０１〜３０３  入力バッファ
３０４，３０５  出力バッファ
３１０  ゲートシミュレーションモデル
３１１  タイミングラッパ
４０１，４０２  階層
４１１  ルートバッファ
５０２  ゲートシミュレーションモデル
５０３  タイミングラッパ
７０１  バス
７０２  ＣＰＵ
７０３  ＲＯＭ
７０４  ＲＡＭ
７０５  ネットワークインタフェース
７０６  入力装置
７０７  出力装置
７０８  外部記憶装置
【図１】
2006127449.tif 000003
【図２】
2006127449.tif 000004
【図３】
2006127449.tif 000005
【図４】
2006127449.tif 000006
【図５】
2006127449.tif 000007
【図６】
2006127449.tif 000008
【図７】
2006127449.tif 000009
【図８】
2006127449.tif 000010
【図９】
2006127449.tif 000011
【図１０】
2006127449.tif 000012