(57)【要約】【課題】タイミングマージンの最適化を図ること。【解決手段】設計装置１００は、回路情報１０１と、回路情報１０１および第１タイミングマージンに基づき行われる第１論理合成処理の処理結果に基づく第１配置処理およびクロックツリー生成処理によって得られる対象回路に含まれるセルの位置とセル間の配線とを示すレイアウトデータ１０３と、を取得する。設計装置１００は、レイアウトデータ１０３に基づいて、対象回路に含まれるレジスタの各々について、クロック供給源とレジスタとの間のクロック配線およびセルによる遅延値を導出する。設計装置１００は、回路情報１０１と、第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、レジスタの各々について、クロック供給源とレジスタとの間のクロック配線およびセルによる遅延値が導出した遅延値となるように第２論理合成処理を行う。【選択図】図１
2016110408.tif 000002
【特許請求の範囲】
【請求項１】
設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく第１配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う、
制御部を有することを特徴とする設計装置。
【請求項２】
前記第１論理合成処理と前記第２論理合成処理では、前記対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理を行わないことを特徴とする請求項１に記載の設計装置。
【請求項３】
前記第２論理合成処理では、前記第１論理合成処理の処理結果に基づいて、前記第１論理合成処理において前記対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理の処理結果と同じ処理結果になるように前記併合する処理を行うことを特徴とする請求項１に記載の設計装置。
【請求項４】
前記第１配置処理は、前記第１論理合成処理の処理結果と、第３タイミングマージンと、に基づいて行われ、
前記制御部は、
前記第２論理合成処理の処理結果と、前記第３タイミングマージンよりも小さい第４タイミングマージンと、に基づいて、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が導出した前記遅延値となるように第２配置処理を行う、
ことを特徴とする請求項１〜３のいずれか一つに記載の設計装置。
【請求項５】
前記制御部は、
前記第２論理合成処理の処理結果に基づいて、前記レジスタの各々について、前記レジスタの位置が、前記レイアウトデータが示す前記対象回路に含まれるレジスタの位置となるように第２配置処理を行う、
ことを特徴とする請求項１〜４のいずれか一つに記載の設計装置。
【請求項６】
コンピュータに、
設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う、
処理を実行させることを特徴とする設計プログラム。
【請求項７】
コンピュータが、
設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う、
処理を実行することを特徴とする設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計装置、設計プログラム、および設計方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路の設計では、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）による設計の後に論理合成、配置および配置の最適化、クロックツリー生成およびクロックタイミングの最適化、配線および配線の最適化などの処理が行われる。各処理では、タイミングマージンを付加したタイミング制約を満たすように行われる。
【０００３】
例えば、論理合成結果に基づいて、パスの遅延時間を算出し、算出した遅延時間に基づき再度論理合成を行う技術が公知である（例えば、以下特許文献１参照。）。また、例えば、ハードウェア記述された回路情報と制約条件情報とから第１のクロックと第２のクロックとのそれぞれのクロックツリーによる想定遅延値をそれぞれ生成し、回路情報と制約条件情報とについて論理合成を行う技術が公知である（例えば、以下特許文献２参照。）。
【０００４】
また、設計後には、タイミングマージンを付加したタイミング制約を満たしているか否かを判定するタイミング解析が行われる。例えば、指定された節点と同じ入力端子を根とする木構造インバータ接続情報を抽出して回路特性情報と回路動作の指定値と木構造インバータ接続情報から、根となる節点から木構造末端に至るまでの遅延時間を算出し、算出値が設計上の特性的許容値内であるか否かを検証する技術が公知である（例えば、以下特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１１３０１９号公報
【特許文献２】特開２０１３−３３３６０号公報
【特許文献３】特開平６−１８６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、論理合成時のタイミングマージンは最悪の条件を考慮した値が一律に設定されるため、タイミングマージンが過剰となるという問題点がある。
【０００７】
１つの側面では、本発明は、タイミングマージンの最適化を図ることができる設計装置、設計プログラム、および設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく第１配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う設計装置、設計プログラム、および設計方法が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、タイミングマージンの最適化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明にかかる設計装置の一動作例を示す説明図である。
【図２】図２は、実施の形態にかかる設計装置のハードウェア構成例を示すブロック図である。
【図３】図３は、設計装置の機能的構成例を示すブロック図である。
【図４】図４は、クロックレイテンシの導出例を示す説明図である。
【図５】図５は、レイテンシの記憶例を示す説明図である。
【図６】図６は、タイミング制約例を示す説明図である。
【図７】図７は、実施例１にかかる設計装置による設計処理手順例を示すフローチャートである。
【図８】図８は、図７で示した導出処理（ステップＳ７０４）の詳細な説明を示すフローチャートである。
【図９】図９は、実施例２にかかる設計装置による設計処理手順例を示すフローチャートである。
【図１０】図１０は、第１論理合成処理の詳細内容を示す説明図である。
【図１１】図１１は、マージされたレジスタの抽出結果例を示す説明図である。
【図１２】図１２は、レジスタマージ情報の使用例を示す説明図である。
【図１３】図１３は、実施例３にかかる設計装置による設計処理手順例を示すフローチャートである。
【図１４】図１４は、実施例４によるタイミング違反の改善例を示す説明図である。
【図１５】図１５は、実施例４にかかる設計装置による設計処理手順例を示すフローチャートである。
【図１６】図１６は、配置情報の抽出例を示す説明図である。
【図１７】図１７は、配置情報例を示す説明図である。
【図１８】図１８は、配置情報の使用例を示す説明図である。
【図１９】図１９は、実施例５にかかる設計装置による設計処理手順例を示すフローチャートである。
【図２０】図２０は、図１９で示した配置情報の抽出処理（ステップＳ１９０５）の詳細な説明を示すフローチャートである。
【図２１】図２１は、動作速度と面積の相関例と消費電力の削減例を示す説明図である。
【図２２】図２２は、レイテンシの再現性向上の実現例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる設計装置、設計プログラム、および設計方法の実施の形態を詳細に説明する。
【００１２】
図１は、本発明にかかる設計装置の一動作例を示す説明図である。設計装置１００は、半導体集積回路の設計を行うコンピュータである。
【００１３】
従来、半導体集積回路の設計では、ＲＴＬレベルによる設計の後に論理合成、配置および配置の最適化、クロックツリー生成およびクロックタイミングの最適化、配線および配線の最適化などの処理が行われる。各処理では、タイミングマージンやクロックの周波数などのタイミング制約を満たすように行われる。
【００１４】
ここで、タイミングマージンとは、半導体集積回路が正確に動作するための最大または最小の信号遅延時間、または入力信号のセットアップ／ホールド時間などのタイミング条件である。セットアップ時間とは、フリップフロップなどのデータ入力信号において、クロック信号のエッジより前に保持しておく最小の時間である。フリップフロップはＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）とも表す。また、ホールド時間とは、フリップフロップなどのデータ入力信号において、クロック信号のエッジよりも後に保持しておく最小の時間である。
【００１５】
半導体集積回路が高速化するにつれてクロック信号やデータ信号などのタイミングは制約が厳しくなり、静的タイミング解析などによって信号遅延を正確に解析することが要求される。そのため、クロック信号の周波数が高い半導体集積回路の設計では、タイミングマージンをできるだけ小さくする。例えばタイミングマージンは、クロック周波数に対する割合によって表される。
【００１６】
論理合成時のタイミングマージンは、クロックスキュー、クロックジッタ、隣接配線のクロストーク遅延、素子のチップ内ばらつきなどが最悪となる場合を考慮した値が一律に設定される。クロックスキューとは、あるパスにおける、データ信号の発信ＦＦについてのレイテンシと、データ信号の受信ＦＦについてのレイテンシと、の差分値である。しかしながら、最悪の遅延値となる場合の条件がすべて揃う可能性は低いため、タイミングマージンが過剰となる場合がある。
【００１７】
そこで、本実施の形態では、クロックスキューを考慮したタイミングマージンでの１回目の論理合成結果による配置処理及びクロックツリー生成処理に基づくレイアウトデータから得たレジスタごとのクロック遅延値を２回目の論理合成で用いる。これにより、２回目の論理合成時のタイミングマージンの最適化を図ることができる。
【００１８】
まず、設計装置１００は、回路情報１０１と、レイアウトデータ１０３と、を取得する。回路情報１０１は、設計の対象回路の機能や動作がＶｅｒｉｌｏｇやＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語を用いてＲＴＬによって記述される。
【００１９】
レイアウトデータ１０３は、回路情報１０１および第１タイミングマージンに基づき行われる第１論理合成処理の処理結果に基づく第１配置処理およびクロックツリー生成処理によって得られ対象回路に含まれるセルの位置とセル間の配線とを示す。また、ここでの第１タイミングマージンは、設計者によって、クロックスキュー、クロックジッタ、隣接配線のクロストーク遅延、素子のチップ内ばらつきなどを考慮して設定される。クロックスキューとは、あるパスにおける、データ信号の発信ＦＦについてのレイテンシと、データ信号の受信ＦＦについてのレイテンシと、の差分値である。クロックスキューを考慮して第１タイミングマージンが設定されることによって、実際のレイアウトのクロックスキューを考慮したデータパスの最適化が行われる。第１論理合成処理の処理結果は、例えば第１ネットリスト１０２である。
【００２０】
取得形式としては、例えば、設計装置１００は、記憶装置などに記憶された回路情報１０１およびレイアウトデータ１０３から読み出すことにより、回路情報１０１およびレイアウトデータ１０３を取得してもよい。また、例えば、設計装置１００は、他の装置からネットワークを介して回路情報１０１およびレイアウトデータ１０３を取得してもよい。また、設計装置１００は、レイアウトデータ１０３について、第１論理合成処理と第１配置処理およびクロックツリー生成処理を行うことにより取得してもよい。より具体的には、設計装置１００は、回路情報１０１と、第１タイミングマージンと、に基づいて、第１論理合成処理を行うことによって第１ネットリスト１０２を生成する。第１ネットリスト１０２は、セルとセル間の接続関係を示し、ＶｅｒｉｌｏｇやＶＨＤＬなどのハードウェア記述言語を用いて記述される。そして、設計装置１００は、第１ネットリスト１０２に基づいて、配置処理およびクロックツリー生成処理を行うことによって、対象回路に含まれるセルの位置とセル間の配線とを示すレイアウトデータ１０３を生成する。
【００２１】
つぎに、設計装置１００は、取得したレイアウトデータ１０３に基づいて、対象回路に含まれるレジスタの各々について、対象回路に含まれレジスタへクロック信号を供給するクロック供給源とレジスタとの間のクロック配線およびセルによる遅延値を導出する。レジスタとしては、例えば、ＦＦなどが挙げられる。クロック供給源は、対象回路内の分周回路などのクロック生成器であってもよいし、対象回路の外部から供給されるクロック信号を受け付けるクロック入力端子であってもよいし、レジスタを有する対象回路内のモジュールのクロック端子であってもよい。
【００２２】
図１の例では、クロック供給源はクロック端子１１１である。また、図１の例では、レジスタはレジスタ１１２である。また、図１の例では、クロック供給源とレジスタとの間のセルは、例えば、クロックバッファ１１３〜１１５などである。また、図１の例では、クロック配線は、例えば、クロック端子１１１とクロックバッファ１１３との間の配線、クロックバッファ１１３とクロックバッファ１１４との間の配線である。さらに、クロック配線は、クロックバッファ１１４とクロックバッファ１１５との間の配線、クロックバッファ１１５とレジスタ１１２との間の配線である。導出される遅延値は遅延値ｄである。また、遅延値の導出例については、図３以降の具体例において後述する。
【００２３】
設計装置１００は、回路情報１０１と、第２タイミングマージンと、に基づいて、レジスタの各々について、クロック供給源とレジスタとの間のクロック配線およびセルによる遅延値が導出した遅延値となるように第２論理合成処理を行う。設計装置１００は、第２論理合成処理によって第２ネットリスト１０４を生成する。第２タイミングマージンは、第１タイミングマージンよりも小さい。上述したように、第１タイミングマージンは、クロックスキュー、クロックジッタ、隣接配線のクロストーク遅延、素子のチップ内ばらつきなどを考慮した値が設定される。これに対して、第２タイミングマージンは、レジスタのレイテンシが指定される。このため、クロックスキューを考慮しなくてよく、第１タイミングマージンよりも小さくできる。
【００２４】
このように、レジスタのレイテンシをレジスタの各々について指定できるため、タイミングマージンを最適化できる。これにより、データパスの最適化を図ることができる。したがって、半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【００２５】
（設計装置１００のハードウェア構成例）
図２は、実施の形態にかかる設計装置のハードウェア構成例を示すブロック図である。図２において、設計装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ディスクドライブ２０４と、ディスク２０５と、を有する。設計装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）２０６と、入力装置２０７と、出力装置２０８と、を有する。また、各部はバス２００によってそれぞれ接続される。
【００２６】
ここで、ＣＰＵ２０１は、設計装置１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがってディスク２０５に対するデータのリード／ライトを制御する。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する。ディスク２０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００２７】
Ｉ／Ｆ２０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２０９に接続され、このネットワーク２０９を介して他の装置に接続される。そして、Ｉ／Ｆ２０６は、ネットワーク２０９と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００２８】
入力装置２０７は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置２０７は、カメラから画像や動画を取り込むこともできる。また、入力装置２０７は、マイクから音声を取り込むこともできる。出力装置２０８は、ＣＰＵ２０１の指示により、データを出力するインターフェースである。出力装置２０８には、ディスプレイやプリンタが挙げられる。
【００２９】
（設計装置１００の機能的構成例）
図３は、設計装置の機能的構成例を示すブロック図である。設計装置１００は、第１論理合成処理部３０１と、第１配置処理部３０２と、第１クロックツリー生成処理部３０３と、取得部３０４と、導出部３０５と、抽出部３０６と、を有する。また、設計装置１００は、第２論理合成処理部３０７と、第２配置処理部３０８と、第２クロックツリー生成処理部３０９と、を有する。第１論理合成処理部３０１から第２クロックツリー生成処理部３０９までの制御部の処理は、例えば、図２に示すＣＰＵ２０１がアクセス可能なＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ２０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶される。
【００３０】
本実施の形態では、各部の詳細な処理を、実施例１〜実施例５によって説明する。実施例１では、１回目のクロックツリー生成後の第２レイアウトデータ１０３に基づく各レジスタのレイテンシと、レイテンシのばらつきを考慮しないタイミングマージンと、に基づいて、２回目の論理合成処理を行う。実施例２では、１回目の論理合成処理と、２回目の論理合成処理と、において、レジスタのマージ処理を禁止する。実施例３では、１回目の論理合成後のマージ処理の結果と同様にレジスタがマージされるように２回目の論理合成処理を行う。
【００３１】
また、実施例４では、１回目のクロックツリー生成後の第２レイアウトデータ１０３に基づく各レジスタのレイテンシと、レイテンシのばらつきを考慮しないタイミングマージンと、に基づいて、２回目の配置処理を行う。実施例５では、２回目の配置処理の際に、１回目の配置処理によって得られる第２レイアウトデータ１０３によってレジスタの位置情報を抽出し、抽出したレジスタの位置情報に基づいて２回目の配置処理を行う。
【００３２】
（実施例１）
実施例１では、１回目のクロックツリー生成後の第２レイアウトデータ１０３に基づく各レジスタのレイテンシと、レイテンシのばらつきを考慮しないタイミングマージンと、に基づいて、２回目の論理合成処理を行う。これにより、２回目の論理合成処理時のタイミングマージンを小さくすることができるため、データパスの最適化を図ることができる。
【００３３】
まず、取得部３０４は、設計の対象回路に含まれるセルの位置とセル間の配線とを示すレイアウトデータであって、対象回路のクロックツリーを生成後のレイアウトデータと、対象回路の動作が記述された回路情報１０１と、を取得する。回路情報１０１は、設計の対象回路の機能や動作がＶｅｒｉｌｏｇやＶＨＤＬなどのハードウェア記述言語を用いてＲＴＬレベルによって記述される。ここで取得されるレイアウトデータは第２レイアウトデータ１０３である。
【００３４】
具体的に、第２レイアウトデータ１０３は、例えば、第１論理合成処理部３０１と、第１配置処理部３０２と、第１クロックツリー生成処理部３０３と、によって生成される。そのため、まず、第１論理合成処理部３０１と、第１配置処理部３０２と、第１クロックツリー生成処理部３０３と、の各処理について説明する。
【００３５】
第１論理合成処理部３０１は、回路情報１０１と、タイミング制約情報３１１と、セルライブラリと、に基づいて、第１論理合成処理を行うことによって、対象回路に含まれるセルとセル間の接続とを示す第１ネットリスト１０２を生成する。第１ネットリスト１０２は、例えば、ＶｅｒｉｌｏｇやＶＨＤＬなどのハードウェア記述言語を用いて記述される。ここでのタイミング制約情報３１１には、第１タイミングマージンやクロック周期などが記述される。セルライブラリは、図３では省略するが、複数の種類のセルの各々についてのセルを示す情報である。第１論理合成処理部３０１は、セルライブラリを利用してセルへのマッピングおよび論理の最適化を行う。
【００３６】
第１タイミングマージンは、クロックスキュー、クロックジッタ、隣接配線のクロストークによる遅延値、チップ内ばらつき、などの不確定要素によるばらつきなどを考慮して決定される値である。上述したように、クロックスキューとは、あるパスにおける発信ＦＦのレイテンシと受信ＦＦのレイテンシとの差である。クロックジッタとは、クロック信号のランダムな時間的な変動である。チップ内ばらつきとは、例えば、（１）トランジスタ特性のばらつき、配線抵抗のばらつき、コンタクト抵抗のばらつきなどに起因するプロセス特性のばらつきなどを指す。また、チップ内ばらつきとは、（２）チップ内の電圧降下に起因する電源電圧ばらつき、（３）素子配置や動作周波数が半導体集積回路内で均等でないことによるチップ内温度ばらつきなどを指す。
【００３７】
つぎに、第１配置処理部３０２は、第１ネットリスト１０２と、タイミング制約情報３１３と、物理制約情報と、に基づいて、第１配置および配置最適化処理を行う。第１配置処理部３０２は、第１ネットリスト１０２とタイミング制約情報３１３と物理制約情報とを、配置処理を実行可能なアプリケーションに与えて第１レイアウトデータ３１４を生成する。物理制約情報とは、設計者によって決定される対象回路に含まれるモジュールなどの大まかな配置や各端子の大まかな位置や大まかな電源配線などを示す情報である。ここでのタイミング制約情報３１３には、論理合成時と同様にタイミングマージンやクロック周期などが記述される。ここでのタイミングマージンは、例えば、第３タイミングマージンと称する。
【００３８】
つぎに、第１クロックツリー生成処理部３０３は、第１レイアウトデータ３１４と、タイミング制約情報３１５とに基づいて、第１クロックツリー生成およびクロックタイミングの最適化処理を行う。第１クロックツリー生成およびクロックタイミングの最適化処理によって得られる第２レイアウトデータ１０３は、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶される。
【００３９】
このようにして、取得部３０４は、クロックツリーを生成後の第２レイアウトデータ１０３を取得することができる。また、例えば、取得部３０４は、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶された第２レイアウトデータ１０３を読み出すことによって第２レイアウトデータ１０３を取得してもよい。または、例えば、取得部３０４は、利用者が入力装置２０７を介して入力された第２レイアウトデータ１０３を受け付けることによって第２レイアウトデータ１０３を取得してもよいし、ネットワーク２０９からＩ／Ｆ２０６を介して取得してもよい。
【００４０】
つぎに、導出部３０５は、第２レイアウトデータ１０３に基づいて、対象回路に含まれるレジスタの各々について、レジスタへのクロック信号を供給する対象回路に含まれるクロック供給源とレジスタとの間のクロック配線およびセルによる遅延値を導出する。
【００４１】
図４は、クロックレイテンシの導出例を示す説明図である。例えば、図３に示した導出部３０５は、第２レイアウトデータ１０３に基づいて、対象回路に含まれるレジスタの各々について、クロック供給源とレジスタとの間のクロック配線とセルとによる遅延値を導出する。レジスタとは、クロック信号に同期してデータを取り込むセルの一種であり、例えばフリップフロップである。クロック供給源は、レジスタへのクロック信号を供給する対象回路に含まれる。クロック供給源は、対象回路内の分周回路などのクロック生成器であってもよいし、対象回路の外部から供給されるクロック信号を受け付けるクロック入力端子であってもよいし、レジスタを有する対象回路内のモジュールのクロック端子であってもよい。また、クロック供給源は、利用者が入力装置２０７を介して指定してもよい。
【００４２】
具体的には、導出部３０５は、例えば、複数のレジスタの中から順に遅延値を算出する対象のレジスタとして選択する。そして、導出部３０５は、例えば、選択したレジスタを含むモジュールのクロック供給端子を特定する。導出部３０５は、例えば、特定したクロック端子と、選択したレジスタのクロック端子と、の間のクロック配線の長さとセルとを特定する。ここで特定されるセルとは、例えば、生成されたクロックツリーのクロックバッファである。
【００４３】
導出部３０５は、例えば、特定したクロック配線の長さに基づいて、クロック配線による遅延値を算出する。所定幅における所定長さ当たりの配線による遅延値が予め定められてある。例えば、所定幅については、予め定められた設計時の配線幅であるため、長さが与えられると配線による遅延値が求まる関数を予め用意しておいてもよい。そして、導出部３０５は、例えば、特定した長さを当該関数に与えてクロック配線による遅延値を算出する。
【００４４】
導出部３０５は、例えば、特定したセルに基づいて、セルによる遅延値を算出する。駆動力などのクロックバッファの種類ごとに１クロックバッファ当たりの遅延値が、例えば、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に予め記憶される。そして、導出部３０５は、例えば、特定したセルの各々についての記憶装置から遅延値を特定し、特定した遅延値を合計することにより、セルによる遅延値を算出する。
【００４５】
つづいて、導出部３０５は、クロック配線による遅延値と、セルによる遅延値と、を合計することによって、選択したレジスタについてのレイテンシを算出する。導出部３０５は、算出したレイテンシをレジスタの識別子と関連付けてＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶させる。
【００４６】
図５は、レイテンシの記憶例を示す説明図である。例えば、レイテンシ情報３１６には、レジスタｒｅｇ１と、レジスタｒｅｇ２となどについて導出したレイテンシを記憶する。テーブルは、クロック供給端子名と、レジスタのクロックピン名と、遅延値と、のフィールドを有する。各フィールドに情報が設定されることによってレコード５００として記憶される。
【００４７】
クロック供給端子名のフィールドには、クロック供給源の識別子が設定される。レジスタのクロックピン名のフィールドには、対象回路の全体を示すトップのモジュールからレジスタのクロック端子までのフルパスがレジスタおよびレジスタのクロック端子の識別子として設定される。遅延値のフィールドには、レジスタについて導出したレイテンシが設定される。
【００４８】
レコード５００−１を例に挙げると、クロック供給端子名のフィールドには「ＣＬＫ」が設定される。レジスタのクロックピン名のフィールドには「ｕ＿ｔｏｐ／ｕ＿ｃｏｒｅ／ｕ＿ｍｏｄｕｌｅ１／ｒｅｇ１／ＣＬＫ」が設定される。遅延値のフィールドには０．８［ｎｓ］が設定される。
【００４９】
つぎに、図３に示した第２論理合成処理部３０７は、レジスタの各々について、クロック供給源とレジスタとの間のクロック配線による遅延値が導出した遅延値となるように第２論理合成処理を行う。ここでの第２論理合成処理部３０７は、回路情報１０１と第２タイミングマージンとセルライブラリとに基づいて、第２論理合成処理を行う。第２タイミングマージンは、第１論理合成処理時の第１タイミングマージンよりも小さい。ここで、第２論理合成処理部３０７は、２回目の論理合成処理を行う前に、レイテンシを論理合成時に利用可能とするために、レイテンシをタイミング制約の記述フォーマットに変換する。
【００５０】
図６は、タイミング制約例を示す説明図である。タイミング制約情報３１９には、タイミング制約が記述される。タイミング制約には、例えば、クロック定義、タイミングマージン、クロックレイテンシ、外部信号の入出力遅延値、制約非適応パスなどが挙げられる。例えば、クロック定義としては、クロックの周期、クロック供給元の外部出力端子名などが記述される。上述したように、タイミングマージンは、半導体集積回路が正常に動作するための最大または最小の信号の遅延値、または入力信号のセットアップ／ホールド時間の条件である。ここでのタイミングマージンは、例えば、クロックサイクルに対する割合で表す。
【００５１】
タイミング制約情報３１９に記述されるタイミングマージンは、第１論理合成処理時の第１タイミングマージンよりも小さい第２タイミングマージンである。第２論理合成処理においては各レジスタについてレイテンシが指定されるため、第１タイミングマージンからクロックスキューのばらつきについてのタイミングマージンを減らすことができる。このため、第２タイミングマージンは第１タイミングマージンよりも小さくできる。例えば、第１タイミングマージンが２０［％］程度である場合、第２タイミングマージンは１０［％］程度である。
【００５２】
例えば、タイミング制約情報３１９がＳＤＣ（Ｓｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔ）の場合、「ｓｅｔ＿ｃｌｏｃｋ＿ｌａｔｅｎｃｙ」によってレジスタの各々についてのレイテンシを指定することができる。
【００５３】
つぎに、例えば、図３に示した第２論理合成処理部３０７は、回路情報１０１とタイミング制約情報３１９とセルライブラリとを、論理合成処理を実行可能なアプリケーションに与えることによって、第２ネットリスト１０４を生成する。これにより、第２論理合成処理部３０７は、対象回路に含まれるセルとセル間の接続を示す第２ネットリスト１０４を生成する。これにより、実際のレイアウトのスキューを考慮したデータパスの最適化が行える。したがって、データパス上のセル数またはセルの稼働能力などを低減させることができ、低消費電力化、省面積化を図ることができる。
【００５４】
そして、第２配置処理部３０８は、第２ネットリスト１０４と、タイミング制約情報３２０と、物理制約情報と、に基づいて、第２配置処理および配置最適化処理を行う。ここでは、タイミング制約情報３２０に記述されるタイミングマージンは第３タイミングマージンとも呼ぶ。具体的に、第２配置処理部３０８は、例えば、第２ネットリスト１０４とタイミング制約情報３２０と物理制約情報とを、配置処理を実行可能なアプリケーションに与えて、第３レイアウトデータ３２１を生成する。
【００５５】
つぎに、第２クロックツリー生成処理部３０９は、第３レイアウトデータ３２１に基づいて、第２クロックツリー生成処理およびクロック最適化処理を行う。第２クロックツリー生成処理部３０９は、第３レイアウトデータ３２１を、クロックツリー生成処理を実行可能なアプリケーションに与えて第４レイアウトデータ３２３を生成する。
【００５６】
（実施例１にかかる設計装置１００による設計処理手順例）
図７は、実施例１にかかる設計装置による設計処理手順例を示すフローチャートである。設計装置１００は、タイミング制約情報３１１と、回路情報１０１と、セルライブラリと、に基づいて、第１論理合成処理を行う（ステップＳ７０１）。ステップＳ７０１でのタイミングマージンは、例えば、２０［％］である。
【００５７】
つぎに、設計装置１００は、タイミング制約情報３１３と、第１ネットリスト１０２と、物理制約情報と、に基づいて、第１配置処理および配置の最適化処理を行う（ステップＳ７０２）。ステップＳ７０２でのタイミングマージンは、ステップＳ７０１と同様にクロックスキューを考慮した値が設定されるため、ステップＳ７０２と同様に、例えば、２０［％］である。設計装置１００は、第１レイアウトデータ３１４と、タイミング制約情報３１５と、に基づいて、第１クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ７０３）。ステップＳ７０３でのタイミングマージンは、クロックスキューを考慮しなくてよいため、例えば、１０［％］である。
【００５８】
そして、設計装置１００は、レジスタの各々について、レイテンシの導出処理を行う（ステップＳ７０４）。導出処理の詳細例については、図８に示す。つぎに、設計装置１００は、導出したレイテンシに基づく第２論理合成処理を行う（ステップＳ７０５）。具体的に、ステップＳ７０５において、設計装置１００は、タイミング制約情報３１９と、回路情報１０１と、セルライブラリと、に基づいて、レジスタの各々についてのレイテンシが導出したレイテンシとなるように第２論理合成処理を行う。ステップＳ７０５でのタイミングマージンは、ステップＳ７０１における第１論理合成処理時のタイミングマージンよりも小さい値であり、例えば、１４［％］である。
【００５９】
つぎに、設計装置１００は、第２ネットリスト１０４と、タイミング制約情報３２０と、物理制約情報と、に基づいて、第２配置処理および配置の最適化処理を行う（ステップＳ７０６）。ステップＳ７０６でのタイミングマージンは、例えば、ステップＳ７０２における第１配置処理と同様に、２０［％］である。そして、設計装置１００は、第３レイアウトデータ３２１と、タイミング制約情報３２２と、に基づいて、第２クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ７０７）。ステップＳ７０７でのタイミングマージンは、ステップＳ７０３における第１クロックツリー生成処理と同様に、例えば、１０［％］である。
【００６０】
つぎに、設計装置１００は、配線処理および配線後の最適化処理を行う（ステップＳ７０８）。そして、設計装置１００は、消費電力の最適化処理を行う（ステップＳ７０９）。ステップＳ７０９でのタイミングマージンは、例えば、５［％］である。つぎに、設計装置１００は、面積の最適化処理を行い（ステップＳ７１０）、一連の処理を終了する。ステップＳ７１０でのタイミングマージンは、例えば、５［％］である。
【００６１】
図８は、図７で示した導出処理（ステップＳ７０４）の詳細な説明を示すフローチャートである。まず、設計装置１００は、レジスタを選択する（ステップＳ８０１）。つぎに、設計装置１００は、選択したレジスタに対応するクロック供給端子を特定する（ステップＳ８０２）。そして、設計装置１００は、選択したレジスタと特定したクロック供給端子との間のクロック配線とセルとを特定する（ステップＳ８０３）。
【００６２】
つぎに、設計装置１００は、特定したクロック配線による遅延値と特定したセルによる遅延値とのそれぞれを算出する（ステップＳ８０４）。そして、設計装置１００は、特定したクロック配線による遅延値と特定したセルによる遅延値との合計値をレイテンシとして格納する（ステップＳ８０５）。設計装置１００は、全レジスタについてのレイテンシを導出したか否かを判断する（ステップＳ８０６）。いずれかのレジスタについてのレイテンシを導出していないと判断された場合（ステップＳ８０６：Ｎｏ）、設計装置１００は、ステップＳ８０１へ戻る。全レジスタについてのレイテンシを導出したと判断された場合（ステップＳ８０６：Ｙｅｓ）、設計装置１００は、一連の処理を終了する。
【００６３】
（実施例２）
論理合成処理では、複数のレジスタを１つのレジスタに併合する処理が行われるこの併合する処理は、マージ処理とも称する。１回目の論理合成時と２回目の論理合成時とは異なるマージ処理結果となる場合がある。そこで、実施例２では、１回目および２回目の論理合成時にマージ処理を行わない。これにより、１回目のクロックツリー生成後の各レジスタのレイテンシと、２回目のクロックツリー生成後の各レジスタのレイテンシと、の相関性の向上を図ることができる。また、実施例２では、第１論理合成処理部３０１と第２論理合成処理部３０７との２つの部以外の部による処理については実施例１と同様の処理であり、同様の処理については詳細な説明を省略する。
【００６４】
図３に示した第１論理合成処理部３０１は、第１論理合成処理を行う処理において、対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理を行わない。また、第２論理合成処理部３０７は、第２論理合成処理を行う処理において、対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理を行わない。
【００６５】
これにより、第２レイアウトデータ１０３における各レジスタのレイテンシと、第４レイアウトデータ３２３における各レジスタのレイテンシと、の相関性の向上を図ることができる。このため、実施例２における第２タイミングマージンは、実施例１における第２タイミングマージンよりも小さくすることができる。例えば、実施例１における第２タイミングマージンは１４［％］としたが、実施例２における第２タイミングマージンは１２［％］とできる。これにより、よりデータパスの最適化を図ることができる。したがって、面積の縮小化、半導体集積回路の動作の高速化、低消費電力化を図ることができる。
【００６６】
（実施例２にかかる設計装置１００による設計処理手順例）
図９は、実施例２にかかる設計装置による設計処理手順例を示すフローチャートである。設計装置１００は、タイミング制約情報３１１と、回路情報１０１と、セルライブラリと、に基づいて、レジスタのマージを行わずに、第１論理合成処理を行う（ステップＳ９０１）。ステップＳ９０１でのタイミングマージンは、例えば、２０［％］である。
【００６７】
つぎに、設計装置１００は、タイミング制約情報３１３と、第１ネットリスト１０２と、物理制約情報と、に基づいて、第１配置処理および配置の最適化処理を行う（ステップＳ９０２）。ステップＳ９０２でのタイミングマージンは、例えば、２０［％］である。そして、設計装置１００は、第１レイアウトデータ３１４と、タイミング制約情報３１５と、に基づいて、第１クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ９０３）。ステップＳ９０３でのタイミングマージンは、クロックスキューを考慮しなくてよいため、例えば、１０［％］である。
【００６８】
つぎに、設計装置１００は、レジスタの各々について、レイテンシの導出処理を行う（ステップＳ９０４）。ステップＳ９０４における導出処理は、図７で示したステップＳ７０４における導出処理と同じであるため、詳細な説明を省略する。つぎに、設計装置１００は、回路情報１０１と、タイミング制約情報３１９と、に基づいて、レジスタのマージを行わずに、導出したレイテンシに基づく第２論理合成処理を行う（ステップＳ９０５）。ステップＳ９０５でのタイミングマージンは、ステップＳ９０１における第１論理合成処理時のタイミングマージンよりも小さい値であり、実施例１における第２論理合成処理よりも小さい値であるため、例えば、１２［％］である。
【００６９】
つぎに、設計装置１００は、第２ネットリスト１０４と、タイミング制約情報３２０と、物理制約情報と、に基づいて、第２配置処理および配置の最適化処理を行う（ステップＳ９０６）。ステップＳ９０６でのタイミングマージンは、例えば、ステップＳ９０２における第２配置処理と同様に、２０［％］である。そして、設計装置１００は、第３レイアウトデータ３２１と、タイミング制約情報３２２と、に基づいて、第２クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ９０７）。ステップＳ９０７でのタイミングマージンは、例えば、ステップＳ９０３における第１クロックツリー生成処理と同様に、１０［％］である。
【００７０】
つぎに、設計装置１００は、第４レイアウトデータ３２３に基づいて、配線処理および配線後の最適化処理を行う（ステップＳ９０８）。そして、設計装置１００は、消費電力の最適化処理を行う（ステップＳ９０９）。ステップＳ９０９でのタイミングマージンは、例えば、５［％］である。つぎに、設計装置１００は、面積の最適化処理を行い（ステップＳ９１０）、一連の処理を終了する。ステップＳ９１０でのタイミングマージンは、例えば、５［％］である。
【００７１】
（実施例３）
上述したように、論理合成処理では、複数のレジスタを１つのレジスタに併合する処理が行われる。１回目の論理合成時と２回目の論理合成時とは異なるマージ処理結果となる場合がある。実施例３では、１回目の論理合成時におけるマージ処理の処理結果と同一の処理結果となるように２回目の論理合成時にマージ処理を行う。これにより、１回目のクロックツリー生成後の各レジスタのレイテンシと、２回目のクロックツリー生成後の各レジスタのレイテンシと、の相関性の向上を図ることができる。実施例３では、抽出部３０６と第２論理合成処理部３０７との２つの部以外の部による処理については実施例１と同様の処理であるため、同様の処理については詳細な説明を省略する。
【００７２】
図３に示した第２論理合成処理部３０７は、第２論理合成処理において、第１論理合成処理の処理結果に基づいて、第１論理合成処理においてマージ処理の処理結果と同じ処理結果になるようにマージ処理を行う。具体的には、抽出部３０６は、第１論理合成処理の処理結果から、マージ処理結果を抽出する。そして、第２論理合成処理部３０７は、マージ処理結果に基づいて、第１論理合成処理においてのマージ処理の処理結果と同じ処理結果になるようにマージ処理を行う。
【００７３】
図１０は、第１論理合成処理の詳細内容を示す説明図である。より具体的に、第１論理合成処理としては、ＲＴＬ記述された回路情報１０１に基づいて、ＦＦの割り付け、組み合わせ論理の生成が行われる（ステップＳ１００１）。つぎに、第１論理合成処理としては、タイミング制約に基づいて、論理の最適化が行われる（ステップＳ１００２）。
【００７４】
そして、第１論理合成処理としては、セルへのマッピング、論理の最適化、バッファの挿入、レジスタのマージ、インスタンス名の変更などが行われる（ステップＳ１００３）。これにより、第１ネットリスト１０２と、インスタンス名変更ログ３１２と、が生成される。インスタンス名変更ログ３１２は、ＲＴＬ記述された回路情報１０１が示す対象回路と、第１ネットリスト１０２が示す対象回路と、の論理等価検証を行うために生成される情報である。具体的に、インスタンス名変更ログ３１２とは、ステップＳ１００１によって得られる情報に記述されたインスタンス名と、第１ネットリスト１０２に記述されたインスタンス名と、の対応関係を示す情報である。論理合成処理においてレジスタのマージが行われると、レジスタのインスタンス名が変更されるため、インスタンス名変更ログ３１２が生成される。
【００７５】
抽出部３０６は、例えば、インスタンス名変更ログ３１２に基づいて、マージされたレジスタを抽出する。抽出結果は、例えば、レジスタマージ情報３１７として、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶される。
【００７６】
図１１は、マージされたレジスタの抽出結果例を示す説明図である。例えば、具体的に、抽出部３０６は、マージされたすべてのレジスタについて、インスタンス名変更ログ３１２から、マージ前のレジスタセルのインスタンス名と、マージ後のレジスタセルのインスタンス名と、を抽出する。
【００７７】
レジスタマージ情報３１７は、マージ前レジスタセルのインスタンス名と、マージ後レジスタセルのインスタンス名と、のフィールドを有する。各フィールドに情報が設定されると、レコード１１００として記憶される。
【００７８】
レコード１１００−１を例に挙げると、マージ前レジスタセルのインスタンス名のフィールドには、「ｕ＿ｔｏｐ／ｕ＿ｃｏｒｅ／ｕ＿ｍｏｄｕｌｅ１／ｒｅｇ１」が設定される。レコード１１００−１を例に挙げると、マージ後レジスタセルのインスタンス名のフィールドには、「ｕ＿ｔｏｐ／ｕ＿ｃｏｒｅ／ｕ＿ｍｏｄｕｌｅ１／ｒｅｇ１＿ｒｅｇ２」が設定される。
【００７９】
図１２は、レジスタマージ情報の使用例を示す説明図である。具体的に、第２論理合成処理部３０７は、例えば、レジスタマージ情報３１７に基づいて、マージされたレジスタの各々について、マージ前レジスタセルをマージ後レジスタセルにマージさせるための論理合成ツールが使用可能なコマンドに変換する。コマンドには、コマンド名と、セルの種別を示すセル名と、マージ対象のセルインスタンス名と、マージ後のセルインスタンス名と、が記述される。
【００８０】
第２論理合成処理における各ステップＳ１２０１〜Ｓ１２０３は、図１０に示した各ステップＳ１００１〜Ｓ１００３と同様である。第２論理合成処理部３０７は、第２論理合成処理において、上述したステップＳ１００３において、変換されたコマンドによってレジスタのマージを指定する。これにより、第１クロックツリー生成処理後のレジスタのレイテンシと、第２クロックツリー生成処理後のレジスタのレイテンシと、の相関性の向上を図ることができる。そのため、実施例３における第２タイミングマージンは、実施例１における第２タイミングマージンよりもより小さくすることができる。このため、実施例２における第２タイミングマージンは、実施例１における第２タイミングマージンよりも小さくすることができる。例えば、実施例１における第２タイミングマージンは１４［％］としたが、実施例３における第２タイミングマージンは１２［％］とできる。これにより、よりデータパスの最適化を図ることができる。したがって、面積の縮小化、半導体集積回路の動作の高速化、低消費電力化を図ることができる。
【００８１】
（実施例３にかかる設計装置１００による設計処理手順例）
図１３は、実施例３にかかる設計装置による設計処理手順例を示すフローチャートである。まず、設計装置１００は、タイミング制約情報３１１と、回路情報１０１と、セルライブラリ１０００と、に基づいて、第１論理合成処理を行う（ステップＳ１３０１）。ステップＳ１３０１でのタイミングマージンは、例えば、２０［％］である。
【００８２】
つぎに、設計装置１００は、タイミング制約情報３１３と、第１ネットリスト１０２と、物理制約情報と、に基づいて、第１配置処理および配置の最適化処理を行う（ステップＳ１３０２）。ステップＳ１３０２でのタイミングマージンは、例えば、２０［％］である。設計装置１００は、第１レイアウトデータ３１４と、タイミング制約情報３１５と、に基づいて、第１クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ１３０３）。ステップＳ１３０３でのタイミングマージンは、例えば、１０［％］である。
【００８３】
そして、設計装置１００は、レジスタの各々について、レイテンシの導出処理を行う（ステップＳ１３０４）。ステップＳ１３０４における導出処理は、図７で示したステップＳ７０４における導出処理と同じであるため、詳細な説明を省略する。つぎに、設計装置１００は、インスタンス名変更ログ３１２に基づいて、レジスタマージ情報３１７を抽出する（ステップＳ１３０５）。そして、設計装置１００は、導出したレイテンシとレジスタマージ情報３１７とに基づく第２論理合成処理を行う（ステップＳ１３０６）。ステップＳ１３０６でのタイミングマージンは、第１論理合成処理時のタイミングマージンよりも小さい値であり、実施例１における第２論理合成処理時のタイミングマージンよりも小さい値であるため、例えば、１２［％］である。
【００８４】
つぎに、設計装置１００は、第２ネットリスト１０４と、タイミング制約情報３２０と、物理制約情報と、に基づいて、第２配置処理および配置の最適化処理を行う（ステップＳ１３０７）。ステップＳ１３０７でのタイミングマージンは、例えば、１０［％］である。そして、設計装置１００は、第３レイアウトデータ３２１と、タイミング制約情報３２２と、に基づいて、第２クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ１３０８）。ステップＳ１３０８でのタイミングマージンは、例えば、１０［％］である。
【００８５】
つぎに、設計装置１００は、配線処理および配線後の最適化処理を行う（ステップＳ１３０９）。そして、設計装置１００は、消費電力の最適化処理を行う（ステップＳ１３１０）。ステップＳ１３１０でのタイミングマージンは、例えば、５［％］である。つぎに、設計装置１００は、面積の最適化処理を行い（ステップＳ１３１１）、一連の処理を終了する。ステップＳ１３１１でのタイミングマージンは、例えば、５［％］である。
【００８６】
（実施例４）
実施例４では、１回目のクロックツリー生成後の第２レイアウトデータ１０３に基づく各レジスタのレイテンシと、レイテンシのばらつきを考慮しないタイミングマージンと、に基づいて、２回目の配置処理を行う。これにより、２回目の配置の最適化処理において配置の選択肢を広げることができる。実施例２では、第２論理合成処理部３０７と第２配置処理部３０８との２つの部以外の部についての処理は、実施例１と同様の処理であるため、同様の処理についての詳細な説明を省略する。
【００８７】
まず、図３に示した第２論理合成処理部３０７は、第１論理合成処理部３０１と同様の処理を行うことによって第２ネットリスト１０４を生成すればよいため、実施例４では、第２論理合成処理部３０７による処理を行わなくてもよい。
【００８８】
第２配置処理部３０８は、第２ネットリスト１０４と、第４タイミングマージンと、に基づいて、レジスタの各々について、クロック供給源とレジスタとの間のクロック配線およびセルによる遅延値が導出した遅延値となるように第２配置処理を行う。第４タイミングマージンは、第３タイミングマージンよりも小さい。また、第２配置処理部３０８は、第２配置処理とともに、配置の最適化処理も行ってもよい。第４タイミングマージンは、クロックスキュー分のタイミングマージンを削減できるため、第３タイミングマージンよりも小さくできる。例えば、第３タイミングマージンが２０［％］であり、第４タイミングマージンが１４［％］である。
【００８９】
図１４は、実施例４によるタイミング違反の改善例を示す説明図である。図１４（１）には、すべてのＦＦについてレイテンシを同一値に設定した場合の配置例を示す。図１４（２）には、ＦＦの各々について導出したレイテンシに設定した場合の配置例を示す。Ｔconstrainは、タイミング制約を示す。Ｔclockは、送信ＦＦについてのレイテンシと受信ＦＦについてのレイテンシとの差を示す。Ｔdataは、データパスによる遅延値を示す。
【００９０】
図１４（１）では、例えば、ＤＡＴＡ２においてＴviolation2のようにタイミング違反が発生すると、Ｔdata2を短縮するため、ＦＦ２をＦＦ３に近づけるような配置変更が行われる。これにより、ＦＦ１とＦＦ２との間隔が広がるため、Ｔdata1が長くなり、ＤＡＴＡ２においてのタイミング違反の発生が解消しても、ＤＡＴＡ１においてタイミング違反が発生する場合がある。そのため、ＤＡＴＡ１においてのタイミング違反を解消するためには、ＦＦ１をＦＦ２に近づける、またはＤＡＴＡ１にバッファの挿入やバッファの駆動能力を高くするなどの変更が行われる。
【００９１】
これに対して、図１４（２）では、例えば、ＤＡＴＡ２においてタイミング違反が発生すると、Ｔdata2を短縮するため、ＦＦ２をＦＦ３に近づけるような配置変更が行われる。これにより、ＦＦ１とＦＦ２との間隔は広がる。しかし、Ｔclock1によっては、図１４（１）よりもタイミングに余裕が発生する場合があり、ＤＡＴＡ１においてタイミング違反とならない可能性が高くなる。したがって、図１４（２）のようにレイテンシを導出した遅延値とした場合には、図１４（１）のようにレジスタのレイテンシを、ワーストを考慮した遅延値とした場合よりも低消費電力化を図ることができる。
【００９２】
（実施例４にかかる設計装置１００による設計処理手順例）
図１５は、実施例４にかかる設計装置による設計処理手順例を示すフローチャートである。設計装置１００は、タイミング制約情報３１１と、回路情報１０１と、セルライブラリ１０００と、に基づいて、第１論理合成処理を行う（ステップＳ１５０１）。ステップＳ１５０１でのタイミングマージンは、例えば、２０［％］である。
【００９３】
つぎに、設計装置１００は、タイミング制約情報３１３と、第１ネットリスト１０２と、物理制約情報と、に基づいて、第１配置処理および配置の最適化処理を行う（ステップＳ１５０２）。ステップＳ１５０２でのタイミングマージンは、例えば、２０［％］である。設計装置１００は、第１レイアウトデータ３１４と、タイミング制約情報３１５と、に基づいて、第１クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ１５０３）。ステップＳ１５０３でのタイミングマージンは、例えば、１０［％］である。
【００９４】
そして、設計装置１００は、レジスタの各々について、レイテンシの導出処理を行う（ステップＳ１５０４）。ステップＳ１５０４における導出処理は、図７で示したステップＳ７０４における導出処理と同じであるため、詳細な説明を省略する。つぎに、設計装置１００は、第２論理合成処理を行う（ステップＳ１５０５）。具体的に、ステップＳ１５０５において、設計装置１００は、タイミング制約情報３１９と、回路情報１０１と、セルライブラリ１０００と、に基づいて、レジスタの各々についてのレイテンシが導出したレイテンシとなるように第２論理合成処理を行う。ステップＳ１５０５でのタイミングマージンは、第１論理合成処理時のタイミングマージンと同じ値である。そのため、ステップＳ１５０５は行わずに、ステップＳ１５０１において生成された第１ネットリスト１０２をつぎのステップＳ１５０６で利用してもよい。
【００９５】
つぎに、設計装置１００は、第２ネットリスト１０４と、タイミング制約情報３２０と、物理制約情報と、に基づいて、導出したレイテンシに基づく第２配置処理および配置の最適化処理を行う（ステップＳ１５０６）。導出したレイテンシに基づく第２配置処理とは、レジスタのレイテンシが導出したレイテンシとなるように配置を行うことである。ステップＳ１５０６でのタイミングマージンは、例えば、１４［％］である。そして、設計装置１００は、第３レイアウトデータ３２１と、タイミング制約情報３２２と、に基づいて、第２クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ１５０７）。ステップＳ１５０７でのタイミングマージンは、例えば、１０［％］である。
【００９６】
つぎに、設計装置１００は、配線処理および配線後の最適化処理を行う（ステップＳ１５０８）。そして、設計装置１００は、消費電力の最適化処理を行う（ステップＳ１５０９）。ステップＳ１５０９でのタイミングマージンは、例えば、５［％］である。つぎに、設計装置１００は、面積の最適化処理を行い（ステップＳ１５１０）、一連の処理を終了する。ステップＳ１５１０でのタイミングマージンは、例えば、５［％］である。
【００９７】
（実施例５）
実施例５は、２回目の配置処理の際に、１回目の配置処理およびクロックツリー生成処理によって得られる第２レイアウトデータ１０３によってレジスタの位置情報を抽出し、抽出したレジスタの位置情報に基づいて２回目の配置処理を行う。
【００９８】
図３に示した第２配置処理部３０８は、第２論理合成処理の処理結果と、第４タイミングマージンと、に基づいて、クロック供給源とレジスタとの間のクロック配線およびセルによる遅延値が導出した遅延値となるように第２配置処理を行う。第４タイミングマージンは、第３タイミングマージンよりも小さい。具体的に、第２配置処理部３０８によってレジスタの位置をレイアウトデータが示す対象回路に含まれるレジスタの位置とするために、抽出部３０６は、レイアウトデータからレジスタの位置を抽出する。
【００９９】
図１６は、配置情報の抽出例を示す説明図である。抽出部３０６は、複数のレジスタの中から順にレジスタの配置情報を抽出する対象のレジスタとして選択する。ここでは、配置情報として、レジスタの位置を示す座標値と、レジスタの配置状態と、が抽出される。配置状態とは、例えば、レジスタのセルの回転または反転を示す情報である。ここでは、例えば、セルの回転または反転は、Ｒｘ，ＭＸ，ＭＹなどで表す。
【０１００】
抽出部３０６は、例えば、レイアウトデータにおける座標系の原点を対象回路の左下とした場合に、レジスタの左下の座標値を抽出する。そして、抽出部３０６は、レジスタの配置状態を抽出する。Ｒｘは、ｘ°の回転を示し、ＭＸはＸ軸でミラー反転を示し、ＭＹはＹ軸でミラー反転を示す。ｒｅｇ１を例に挙げると、座標値は、（ｘ，ｙ）＝（３０００，３０００）であり、配置状態はＲ０である。ｒｅｇ２を例に挙げると、座標値は、（ｘ，ｙ）＝（３０００，２０００）であり、配置状態は、ＭＸである。抽出部３０６は、レジスタの各々について、抽出した座標値と配置状態との組み合わせをレジスタ配置情報３１８に登録する。配置情報は、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶される。
【０１０１】
図１７は、配置情報例を示す説明図である。レジスタ配置情報３１８は、例えば、レジスタセルのインスタンス名と、Ｘ座標値と、Ｙ座標値と、配置状態と、のフィールドを有する。各フィールドに情報が設定されることにより、配置情報１７００として記憶される。
【０１０２】
配置情報１７００−１を例に挙げると、レジスタセルのインスタンス名のフィールドには「ｕ＿ｔｏｐ／ｕ＿ｃｏｒｅ／ｕ＿ｍｏｄｕｌｅ１／ｒｅｇ１」が設定される。配置情報１７００−１を例に挙げると、Ｘ座標値のフィールドには「１３９２」が設定され、Ｙ座標値のフィールドには「９５７」が設定され、配置状態のフィールドには「Ｒ１８０」が設定される。
【０１０３】
図１８は、配置情報の使用例を示す説明図である。第２配置処理部３０８は、レジスタの各々について、レジスタ配置情報３１８に記述されたレジスタの位置とレジスタの配置状態とを、第２配置処理を行うアプリケーションが読み取り可能な物理制約の記述フォーマットに変換する。
【０１０４】
具体的には、第２配置処理部３０８は、レジスタの各々について、「ｐｌａｃｅＩｎｓｔａｎｃｅ」と「−ｆｉｘｅｄ」との位置を固定する記述を物理制約情報１８００に追加する。物理制約情報１８００には、チップサイズ、対象回路に含まれる入力端子や出力端子の位置を示す端子位置情報、マクロの配置情報、配置禁止領域情報、ここで変換された記述を含む配置位置固定セルの配置情報、使用配線、最大配線長、などの情報が含まれる。
【０１０５】
第２配置処理部３０８は、物理制約情報１８００と、タイミング制約情報３２０と、第２ネットリスト１０４と、に基づいて、レジスタの各々について、レジスタの位置が、前記レイアウトデータが示す前記対象回路に含まれるレジスタの位置となるように配置処理を行う。タイミング制約情報は、第３タイミングマージンよりも小さい第４タイミングマージンが記述される。
【０１０６】
（実施例５にかかる設計装置１００による設計処理手順例）
図１９は、実施例５にかかる設計装置による設計処理手順例を示すフローチャートである。まず、設計装置１００は、タイミング制約情報３１１と、回路情報１０１と、セルライブラリ１０００と、に基づいて、第１論理合成処理を行う（ステップＳ１９０１）。ステップＳ１９０１でのタイミングマージンは、例えば、２０［％］である。
【０１０７】
つぎに、設計装置１００は、タイミング制約情報３１３と、第１ネットリスト１０２と、物理制約情報と、に基づいて、第１配置処理および配置の最適化処理を行う（ステップＳ１９０２）。ステップＳ１９０２でのタイミングマージンは、例えば、２０［％］である。設計装置１００は、第１レイアウトデータ３１４と、タイミング制約情報３１５と、に基づいて、第１クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ１９０３）。ステップＳ１９０３でのタイミングマージンは、例えば、１０［％］である。
【０１０８】
そして、設計装置１００は、レジスタの各々について、レイテンシの導出処理を行う（ステップＳ１９０４）。ステップＳ１９０４における導出処理は、図７で示したステップＳ７０４における導出処理と同じであるため、詳細な説明を省略する。つぎに、設計装置１００は、レジスタの配置情報の抽出処理を行う（ステップＳ１９０５）。設計装置１００は、タイミング制約情報３１９と、回路情報１０１と、セルライブラリ１０００と、に基づいて、第２論理合成処理を行う（ステップＳ１９０６）。ステップＳ１９０６でのタイミングマージンは、第１論理合成処理時のタイミングマージンと同じ値である。そのため、ステップＳ１９０６は行わずに、ステップＳ１９０１において生成された第１ネットリスト１０２をつぎのステップＳ１９０７で利用してもよい。
【０１０９】
つぎに、設計装置１００は、第２ネットリスト１０４と、タイミング制約情報３２０と、物理制約情報１８００と、に基づいて、導出したレイテンシに基づく第２配置処理および配置の最適化処理を行う（ステップＳ１９０７）。ステップＳ１９０７でのタイミングマージンは、例えば、１２［％］である。ここでのタイミングマージンは、第１配置処理のタイミングマージンよりも小さいタイミングマージンである。そして、設計装置１００は、第３レイアウトデータ３２１と、タイミング制約情報３２２と、に基づいて、第２クロックツリー生成処理およびクロックツリーの最適化処理を行う（ステップＳ１９０８）。ステップＳ１９０８でのタイミングマージンは、例えば、１０［％］である。
【０１１０】
つぎに、設計装置１００は、配線処理および配線後の最適化処理を行う（ステップＳ１９０９）。そして、設計装置１００は、消費電力の最適化処理を行う（ステップＳ１９１０）。ステップＳ１９１０でのタイミングマージンは、例えば、５［％］である。つぎに、設計装置１００は、面積の最適化処理を行い（ステップＳ１９１１）、一連の処理を終了する。ステップＳ１９１１でのタイミングマージンは、例えば、５［％］である。
【０１１１】
図２０は、図１９で示した配置情報の抽出処理（ステップＳ１９０５）の詳細な説明を示すフローチャートである。設計装置１００は、抽出の対象となっていないいずれかのレジスタを選択する（ステップＳ２００１）。
【０１１２】
そして、設計装置１００は、選択したレジスタの座標値をレイアウトデータから抽出する（ステップＳ２００２）。つぎに、設計装置１００は、選択したレジスタの配置状態を抽出する（ステップＳ２００３）。そして、設計装置１００は、選択したレジスタについて、抽出した座標値と抽出した配置状態を配置情報に記憶する（ステップＳ２００４）。
【０１１３】
つぎに、設計装置１００は、全レジスタについて抽出したか否かを判断する（ステップＳ２００５）。いずれかのレジスタについて抽出していないと判断された場合（ステップＳ２００５：Ｎｏ）、設計装置１００は、ステップＳ２００１へ戻る。一方、全レジスタについて抽出したと判断された場合（ステップＳ２００５：Ｙｅｓ）、設計装置１００は、一連の処理を終了する。
【０１１４】
また、図示など省略するが、実施例１では、実施例５のように配置情報を制約として与えてもよい。これにより、論理合成時に考慮したクロックスキューの再現性の向上を図ることができる。
【０１１５】
また、図示など省略するが、実施例３と実施例５とを組み合わせてもよい。これにより、複数の設計段階でタイミングマージンを削減可能である。例えば、第２論理合成処理におけるタイミングマージンは、１０［％］とし、第２配置処理におけるタイミングマージンは１０［％］とする。したがって、よりデータパスの最適化を図ることができる。
【０１１６】
また、図示など省略するが、実施例１と実施例４とを組み合わせてもよいし、実施例１と実施例４と実施例５とを組み合わせてもよい。また、実施例１と、実施例２と、実施例４と、実施例５と、を組み合わせてもよいし、実施例１と、実施例３と、実施例４と、実施例５と、を組み合わせてもよい。
【０１１７】
図２１は、動作速度と面積の相関例と消費電力の削減例を示す説明図である。グラフ２１００には、クロック周波数と面積の相関を示す。グラフ２１００によれば、実施例１を適用した場合には、論理合成後の対象回路の達成動作速度に対する面積を従来の場合と比較して１０［％］程度小さくすることができる。したがって、面積の削減を図ることができ、動作速度の向上を図ることができる。
【０１１８】
また、グラフ２１０１には、配置配線後のデータパスの消費電力量を示す。グラフ２１０１によれば、実施例１を適用した場合には、配置配線後のデータパスの消費電力量を従来と比較して低減させることができる。
【０１１９】
図２２は、レイテンシの再現性向上の実現例を示す説明図である。グラフ２２００は、実施例１の場合における、１回目のクロックの最適化後の各レジスタのレイテンシと、２回目のクロック最適化後の各レジスタのレイテンシと、の相関を示す。また、グラフ２２０１は、実施例２と実施例５とを組み合わせた場合における、１回目のクロックの最適化後の各レジスタのレイテンシと、２回目のクロック最適化後の各レジスタのレイテンシと、の相関を示す。グラフ２２００とグラフ２２０１によれば、相関係数Ｒ2が、実施例１の場合よりも実施例２と実施例５とを組み合わせた場合のほうが１に近い値である。このように、マージを行わずに、レジスタの配置を指定することにより、レイテンシの再現性の向上を図ることができる。
【０１２０】
以上説明したように、設計装置１００は、スキューを考慮したタイミングマージンに基づく１回目の論理合成処理結果による配置処理およびクロックツリー生成処理で得たレイアウトから求めたレイテンシとなるよう２回目の論理合成を行う。これにより、２回目の論理合成時のタイミングマージンの最適化を図ることができ、データパスの最適化を図ることができる。したがって、半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２１】
また、設計装置１００は、第１論理合成処理と第２論理合成処理では、対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理を行わない。これにより、１回目のクロックツリー生成後のレジスタのレイテンシと、２回目のクロックツリー生成後のレジスタのレイテンシと、の相関性の向上を図ることができる。したがって、２回目の論理合成時のタイミングマージンをより小さくできるため、データパスの最適化をより図ることができる。半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２２】
また、設計装置１００は、第２論理合成処理において、第１論理合成処理の処理結果に基づいて、第１論理合成処理において対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理の処理結果と同じ処理結果になるように併合する処理を行う。これにより、１回目のクロックツリー生成後のレジスタのレイテンシと、２回目のクロックツリー生成後のレジスタのレイテンシと、の相関性の向上を図ることができる。したがって、２回目の論理合成時のタイミングマージンをより小さくできるため、データパスの最適化をより図ることができる。半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２３】
また、設計装置１００は、第２論理合成処理の処理結果と、第１配置処理における第３タイミングマージンよりも小さい第４タイミングマージンと、に基づいて、レジスタの各々について、レジスタのレイテンシが導出した遅延値となるように第２配置処理を行う。これにより、２回目の配置処理時のタイミングマージンの最適化を図ることができる。これにより、データパスの最適化を図ることができる。したがって、半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２４】
また、設計装置１００は、第２論理合成処理の処理結果に基づいて、レジスタの各々について、レジスタの位置が、レイアウトデータが示す対象回路に含まれるレジスタの位置となるように第２配置処理を行う。これにより、１回目のクロックツリー生成後のレジスタのレイテンシと、２回目のクロックツリー生成後のレジスタのレイテンシと、の相関性の向上を図ることができる。したがって、データパスの最適化をより図ることができる。半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２５】
また、以上説明したように、設計装置１００は、スキューを考慮したタイミングマージンに基づく１回目の配置及びクロックツリー生成で得たレイアウトから求めたレイテンシとなるよう２回目の配置処理を行う。これにより、２回目の配置処理時のタイミングマージンの最適化を図ることができる。これにより、データパスの最適化を図ることができる。したがって、半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２６】
また、設計装置１００は、第２配置処理において、レジスタの各々について、レジスタの位置が、レイアウトデータが示す対象回路に含まれるレジスタの位置となるように行う。これにより、１回目のクロックツリー生成後のレジスタのレイテンシと、２回目のクロックツリー生成後のレジスタのレイテンシと、の相関性の向上を図ることができる。したがって、２回目の論理合成時のタイミングマージンをより小さくできるため、データパスの最適化をより図ることができる。半導体集積回路の面積の縮小化、低消費電力化を図ることができる。
【０１２７】
なお、本実施の形態で説明した設計方法は、予め用意された設計プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１２８】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１２９】
（付記１）設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく第１配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う、
制御部を有することを特徴とする設計装置。
【０１３０】
（付記２）前記第１論理合成処理と前記第２論理合成処理では、前記対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理を行わないことを特徴とする付記１に記載の設計装置。
【０１３１】
（付記３）前記第２論理合成処理では、前記第１論理合成処理の処理結果に基づいて、前記第１論理合成処理において前記対象回路に含まれる複数のレジスタを同一のレジスタに併合する処理の処理結果と同じ処理結果になるように前記併合する処理を行うことを特徴とする付記１に記載の設計装置。
【０１３２】
（付記４）前記第１配置処理は、前記第１論理合成処理の処理結果と、第３タイミングマージンと、に基づいて行われ、
前記制御部は、
前記第２論理合成処理の処理結果と、前記第３タイミングマージンよりも小さい第４タイミングマージンと、に基づいて、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が導出した前記遅延値となるように第２配置処理を行う、
ことを特徴とする付記１〜３のいずれか一つに記載の設計装置。
【０１３３】
（付記５）前記制御部は、
前記第２論理合成処理の処理結果に基づいて、前記レジスタの各々について、前記レジスタの位置が、前記レイアウトデータが示す前記対象回路に含まれるレジスタの位置となるように第２配置処理を行う、
ことを特徴とする付記１〜４のいずれか一つに記載の設計装置。
【０１３４】
（付記６）設計の対象回路の動作が記述された回路情報と、前記回路情報に基づき行われた論理合成処理の処理結果と第１タイミングマージンとに基づく第１配置処理、およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記論理合成処理の処理結果と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２配置処理を行う、
制御部を有することを特徴とする設計装置。
【０１３５】
（付記７）前記第２配置処理は、前記レジスタの各々について、前記レジスタの位置が、前記レイアウトデータが示す前記対象回路に含まれるレジスタの位置となるように行うことを特徴とする付記６に記載の設計装置。
【０１３６】
（付記８）コンピュータに、
設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う、
処理を実行させることを特徴とする設計プログラム。
【０１３７】
（付記９）コンピュータが、
設計の対象回路の動作が記述された回路情報と、前記回路情報および第１タイミングマージンに基づき行われた第１論理合成処理の処理結果に基づく配置処理およびクロックツリー生成処理によって得られ前記対象回路に含まれるセルの位置と前記セル間の配線とを示すレイアウトデータと、を取得し、
取得した前記レイアウトデータに基づいて、前記対象回路に含まれるレジスタの各々について、前記対象回路に含まれ前記レジスタへクロック信号を供給するクロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値を導出し、
取得した前記回路情報と、前記第１タイミングマージンよりも小さい第２タイミングマージンと、に基づいて、前記レジスタの各々について、前記クロック供給源と前記レジスタとの間のクロック配線およびセルによる遅延値が前記導出した遅延値となるように第２論理合成処理を行う、
処理を実行することを特徴とする設計方法。
【符号の説明】
【０１３８】
１００  設計装置
１０１  回路情報
１０２  第１ネットリスト
１０３  レイアウトデータ，第２レイアウトデータ
１０４  第２ネットリスト
１１１  クロック端子
１１２，ｒｅｇ１，ｒｅｇ２  レジスタ
１１３〜１１５  クロックバッファ
３０１  第１論理合成処理部
３０２  第１配置処理部
３０３  第１クロックツリー生成処理部
３０４  取得部
３０５  導出部
３０６  抽出部
３０７  第２論理合成処理部
３０８  第２配置処理部
３０９  第２クロックツリー生成処理部
３１１，３１３，３１５，３１９，３２０，３２２  タイミング制約情報
３１２  インスタンス名変更ログ
３１４  第１レイアウトデータ
３１６  レイテンシ情報
３１７  レジスタマージ情報
３１８  レジスタ配置情報
３２１  第３レイアウトデータ
３２３  第４レイアウトデータ
１０００  セルライブラリ
１８００  物理制約情報
ｄ  遅延値
【図１】
2016110408.tif 000003
【図２】
2016110408.tif 000004
【図３】
2016110408.tif 000005
【図４】
2016110408.tif 000006
【図５】
2016110408.tif 000007
【図６】
2016110408.tif 000008
【図７】
2016110408.tif 000009
【図８】
2016110408.tif 000010
【図９】
2016110408.tif 000011
【図１０】
2016110408.tif 000012
【図１１】
2016110408.tif 000013
【図１２】
2016110408.tif 000014
【図１３】
2016110408.tif 000015
【図１４】
2016110408.tif 000016
【図１５】
2016110408.tif 000017
【図１６】
2016110408.tif 000018
【図１７】
2016110408.tif 000019
【図１８】
2016110408.tif 000020
【図１９】
2016110408.tif 000021
【図２０】
2016110408.tif 000022
【図２１】
2016110408.tif 000023
【図２２】
2016110408.tif 000024