(57)【特許請求の範囲】
【請求項１】
設計者の操作に基づいてコンピュータによりソフトウェアプログラムに従う情報処理を行うことによりＬＳＩを設計するＬＳＩ設計方法であって、
前記ＬＳＩの設計のうちのタイミング設計段階において、
実装仕様から、クロック・ツリーの最終段ゲート毎にクロック供給領域の情報を抽出する処理を行う第１の工程と、
前記実装仕様から、最終段ゲートまたはそれに対応付けられるクロック供給領域の組み合わせの対毎にクロック・ツリー分岐点を抽出する処理を行う第２の工程と、
前記実装仕様から、クロック・ツリー分岐点毎にクロック・スキュー予算値を抽出する処理を行う第３の工程と、
前記実装仕様から、クロック・ツリー分岐点毎に累積分岐回数を抽出する処理を行う第４の工程と、
前記第１、第２、及び第３の工程で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎にクロック・スキュー予算値を設定する処理を行う第５の工程と、
前記第１、第２、及び第４の工程で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎に前記クロック・ツリー分岐点の累積分岐回数を設定する処理を行う第６の工程と、
パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置の情報を抽出する処理を行う第７の処理と、
前記第７の工程で抽出した、パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置と、前記第５の工程で設定したクロック供給領域の対との関係の判別に基づき、当該パスに対して、前記クロック・ツリー分岐点に応じた、前記第５の工程で設定したクロック・スキュー予算値を設定する処理を行う第８の工程と、を有し、
前記第８の工程では、当該パスの始点又は終点の少なくとも一方を含む機能モジュールが、複数のクロック供給領域に所属する場合は、当該機能モジュールが所属するすべてのクロック供給領域の組み合わせの対について、前記第６の工程で設定したクロック・ツリー分岐点の累積分岐回数を参照し、当該回数が最も少ない当該クロック供給領域の対について前記第５の工程で設定したクロック・スキュー予算値を、当該パスに設定する処理を行うこと、を特徴とするＬＳＩ設計方法。
【請求項２】
請求項１記載のＬＳＩ設計方法において、
前記第５の工程では、前記クロック供給領域に対応付けられる最終段ゲートをクロック・ツリー分岐点としてクロック・スキュー予算値を設定し、
前記第８の工程では、当該パスの始点を含む機能モジュールの位置、及び終点含む機能モジュールの位置が、同じクロック供給領域に所属する場合は、当該機能モジュールが所属するクロック供給領域に対応付けられる最終段ゲートについて前記第５の工程で設定したクロック・スキュー予算値を、当該パスに設定する処理を行うこと、を特徴とするＬＳＩ設計方法。
【請求項３】
請求項１または２に記載のＬＳＩ設計方法において、
前記第８の工程では、パス及び機能モジュールの情報を用いて、パスの始点を含む機能モジュール、及び終点を含む機能モジュールを判別し、当該機能モジュールの各々について、前記第７の工程で抽出した機能モジュールの位置と、前記第５の工程で設定したクロック供給領域とを重ね合わせることにより、当該機能モジュールが所属するクロック供給領域を判別し、当該パスに関係付けられる当該クロック供給領域の対について前記第５の工程で設定したクロック・スキュー予算値を、当該パスに設定する処理を行うこと、を特徴とするＬＳＩ設計方法。
【請求項４】
請求項１〜３のいずれか一項に記載のＬＳＩ設計方法において、
前記タイミング設計段階において、
前記パスのパスディレイに関する目標値を設定する処理と、
前記パスに対して前記クロック・スキュー予算値を設定する処理と、
前記パスのパスディレイの見積もり値を計算する処理と、
前記パスのパスディレイに関する前記目標値と前記見積もり値とを比較して当該パスの収束可否を診断する処理と、
前記収束するパスについて、前記目標値から前記クロック・スキュー予算値を引いた値を、パスディレイ予算値として設定する処理と、を有すること、を特徴とするＬＳＩ設計方法。
【請求項５】
設計者の操作に基づいてコンピュータに情報処理を実行させることによりＬＳＩを設計するＬＳＩ設計プログラムであって、
前記ＬＳＩの設計のうちのタイミング設計段階において、
実装仕様から、クロック・ツリーの最終段ゲート毎にクロック供給領域の情報を抽出する第１の処理と、
前記実装仕様から、最終段ゲートまたはそれに対応付けられるクロック供給領域の組み合わせの対毎にクロック・ツリー分岐点を抽出する第２の処理と、
前記実装仕様から、クロック・ツリー分岐点毎にクロック・スキュー予算値を抽出する第３の処理と、
前記実装仕様から、クロック・ツリー分岐点毎に累積分岐回数を抽出する第４の処理と、
前記第１、第２、及び第３の処理で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎にクロック・スキュー予算値を設定する第５の処理と、
前記第１、第２、及び第４の処理で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎に前記クロック・ツリー分岐点の累積分岐回数を設定する第６の処理と、
パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置の情報を抽出する第７の処理と、
前記第７の処理で抽出した、パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置と、前記第５の処理で設定したクロック供給領域の対との関係の判別に基づき、当該パスに対して、前記クロック・ツリー分岐点に応じた、前記第５の処理で設定したクロック・スキュー予算値を設定する第８の処理と、をコンピュータに実行させ、
前記第８の処理では、当該パスの始点又は終点の少なくとも一方を含む機能モジュールが、複数のクロック供給領域に所属する場合は、当該機能モジュールが所属するすべてのクロック供給領域の組み合わせの対について、前記第６の処理で設定したクロック・ツリー分岐点の累積分岐回数を参照し、当該回数が最も少ない当該クロック供給領域の対について前記第５の処理で設定したクロック・スキュー予算値を、当該パスに設定する処理をコンピュータに実行させること、を特徴とするＬＳＩ設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣ（半導体集積回路）の設計・製造の技術に関し、特に、ＬＳＩのタイミング設計方法に関し、更には、タイミング設計におけるクロック・スキュー（clock skew）（以下適宜「ＣＳ」と略称する）の設定方法、及びパスディレイの設定方法などに関する。
【背景技術】
【０００２】
一般的にＬＳＩ設計では、設計した論理について、論理合成、レイアウト（配置配線等）、及びタイミング検証をした後に、タイミング不良を対策する。
【０００３】
しかしながら、従来、レイアウトにかかる期間は、一ヶ月以上が必要である。また、タイミング不良パスが目標ディレイ以内に収束可能であるかを判定する技術が従来無かったので、設計の後戻りや、無駄なタイミング対策の繰り返しが発生していた。これらにより設計期間が長期化していたという問題がある。
【０００４】
上記問題の解決に関する先行技術例として、特開２００３−２８１２１５号公報（特許文献１）が挙げられる。特許文献１では、論理合成、及び実装設計（レイアウト）の前に、パスディレイの見積もり値が目標ディレイ以内に収束可能であるか、ディレイ（タイミング）診断をして、収束可能なパスについては、論理合成において、レジスタ転送レベル（ＲＴＬ）からゲートレベルに論理を展開するためのブロック内ディレイ取り分（パスディレイ予算からブロック間ディレイを減じた値）を定義した論理合成用制約（タイミング制約）を作成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２８１２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前記特許文献１に開示されたタイミング設計を適用した、先行技術例としてのＬＳＩ設計のフローの例（図１）においては、タイミング設計段階（Ｓ４，図２）で、パスに対して、クロック・スキュー（ＣＳ）予算値の設定（Ｓ２０２，図３）などにより、タイミング制約を作成（パスディレイ予算を設定）する。ここで先行技術例では、タイミング設計段階（Ｓ４）において、クロック・ツリー（ＣＴ）の構造を考慮すること等はしていないので、ＣＳ予算値を一様に大きめ（ＣＴ根元での分岐を想定した最悪ケースの値）に設定している。よって、目標ディレイを満たすためには、パスディレイ予算値が小さめに設定される。これにより、タイミング設計段階（Ｓ４）では、レイアウト（Ｓ６）後のＣＳだと目標ディレイ内に収まるパスに対して、無駄なタイミング対策をしている場合があった。また、論理合成段階（Ｓ５）（最適化処理）では、同様のパスに対して、不要なゲートの高駆動力化や、負荷分散により過剰なゲートを生成している場合があった。
【０００７】
以上を鑑み、本発明の主な目的は、ＬＳＩ設計・開発に係わり、タイミング設計における非効率的なタイミング対策の削減、及び、それによる論理合成段階でのゲート規模・消費電力等の増大の抑止を実現することができる技術を提供することである。詳しくは、（１）ＬＳＩのゲート規模・消費電力をレイアウト段階で最適化しない第１の設計方針の場合（設計期間短縮を優先する場合）における、ＬＳＩのゲート規模・消費電力の低減の効果、または、（２）ＬＳＩのゲート規模・消費電力をレイアウト段階で最適化する第２の設計方針の場合（製品性能を優先する場合）における、ＬＳＩの設計期間（論理合成やレイアウトなどの所要時間）の短縮の効果、を実現できる技術を提供することである。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。本発明では、タイミング設計段階において、パスの始点・終点（少なくとも一方）を含む機能モジュールと、それに対して供給するクロックのクロック・ツリー構造上での分岐点を対応付けて、当該分岐点に応じた効率的なＣＳ予算値をパスに設定する（対応するパスディレイ予算値を設定する）。これにより、従来に比べて、レイアウト後のＣＳに近いＣＳでタイミング設計（タイミング診断及びタイミング制約値の作成等）することを可能とする。
【０００９】
（１）本発明の形態は、コンピュータの情報処理を用いたＬＳＩ設計方法（タイミング設計段階におけるＣＳ予算値の設定方法）であって、タイミング設計段階において、以下の工程を有することを特徴とする。
【００１０】
（１−１）クロック・ツリー（ＣＴ）を含む実装仕様から、ＣＴの最終段ゲート毎にクロック供給領域の情報を抽出する処理を行う第１の工程。
【００１１】
（１−２）前記実装仕様から、最終段ゲート（またはそれに対応付けられるクロック供給領域）の組み合わせの対毎に、ＣＴ分岐点を抽出する処理を行う第２の工程。
【００１２】
（１−３）前記実装仕様から、ＣＴ分岐点毎にＣＳ予算値を抽出する処理を行う第３の工程。
【００１３】
（１−４）前記実装仕様から、ＣＴ分岐点毎に累積分岐回数を抽出する処理を行う第４の工程。
【００１４】
（１−５）第１、第２、及び第３の工程で抽出した情報を用いて、クロック供給領域（またはそれに対応付けられる最終段ゲート）の組み合わせの対毎にＣＳ予算値を設定する処理を行う第５の工程。
【００１５】
（１−６）第１、第２、及び第４の工程で抽出した情報を用いて、クロック供給領域（またはそれに対応付けられる最終段ゲート）の組み合わせの対毎にＣＴ分岐点の累積分岐回数を設定する処理を行う第６の工程。
【００１６】
（１−７）フロアプランからパスの始点・終点を含む機能モジュールの位置の情報を抽出する処理を行う第７の工程。
【００１７】
（１−８−ａ）論理情報から抽出したパス及び機能モジュールの情報を用いて、パスの始点と終点が所属する各機能モジュールを判別し、当該各機能モジュールについて、前記第７の工程で抽出した機能モジュールの位置と、前記第５の工程で設定したクロック供給領域とを重ね合わせることにより、当該各機能モジュールが所属するクロック供給領域を判別し、当該クロック供給領域の組み合わせの対について、前記第５の工程で設定したＣＳ予算値を、当該対に関係付けられる当該パスに設定する第８の工程。
【００１８】
（１−８−ｂ）また、上記判別において、当該機能モジュールが複数のクロック供給領域に所属する場合は、当該機能モジュールが所属するすべてのクロック供給領域の組み合わせの対について、前記第６の工程で設定したＣＴ分岐点の累積分岐回数を参照し、当該累積分岐回数が最も少ないＣＴ分岐点に対応付けられるクロック供給領域の対について、前記第５の工程で設定したＣＳ予算値を、当該パスに設定する第８の工程。
【００１９】
（１−８−ｃ）また、上記判別において、当該機能モジュールが同じクロック供給領域に所属する場合は、当該クロック供給領域に対応付けられる最終段ゲートについて、前記第５の工程で設定したＣＳ予算値を、当該パスに設定する第８の工程。
【発明の効果】
【００２０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。本発明によれば、ＬＳＩ設計・開発に係わり、タイミング設計における非効率的なタイミング対策の削減、及び、それによる論理合成段階でのゲート規模・消費電力等の増大の抑止を実現することができる。詳しくは、（１）第１の設計方針の場合におけるＬＳＩのゲート規模・消費電力の低減の効果、または、（２）第２の設計方針の場合におけるＬＳＩの設計期間の短縮の効果、を実現できる。上記（１）、（２）の効果については、設計方針に応じた効果であり、選択ができる。
【図面の簡単な説明】
【００２１】
【図１】先行技術例、及び本発明の一実施の形態（ＬＳＩ設計方法及びプログラム）において共通する、所定のタイミング設計段階（Ｓ４）を含む、ＬＳＩ設計フローを示す図である。
【図２】図１のうち、タイミング設計段階（Ｓ４）のフローを示す図である。
【図３】タイミング制約（パスディレイ予算）によるパスの最適化のイメージを示す図であり、（ａ）はパスのパスディレイ予算等を示し、（ｂ）はパスの例を示す。
【図４】本実施の形態（ＬＳＩ設計方法及びプログラム）におけるハードウエア等の装置の実装構成例を示す図である。
【図５】図２のうち、ＣＳ予算値設定のフローを示す図である。
【図６】図３のＣＴ実装仕様（例）のイメージを示す図である。
【図７】図３のフロアプラン（例）のイメージを示す図である。
【図８】図３のフローに関するデータ構造例を示す図である。
【図９】本実施の形態（ＬＳＩ設計方法及びプログラム）における、具体例を説明するために、ＣＴ実装仕様とフロアプランとを重ね合わせた構成例のイメージを示す図である。
【図１０】本実施の形態の効果を従来と対比して説明するためのイメージを示す図であり、（ａ）は第１の設計方針の効果、（ｂ）は第２の設計方針の効果を示す。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態（ＬＳＩ設計方法及びプログラム）を図面（図１〜図１０）に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００２３】
＜タイミング設計を含むＬＳＩ設計フロー＞
まず、図１を用いて、前記特許文献１に開示されたタイミング設計を適用した、先行技術例としてのＬＳＩ設計のフローの例について説明する（Ｓは処理ステップを示す）。なお処理主体は設計者の操作に基づくコンピュータの情報処理である。ＬＳＩ設計では、設計仕様１に基づき、Ｓ１の機能設計をする。Ｓ１では、実現する機能の設計、及び機能を実装するための機能分割をする。次に、Ｓ１で分割した機能モジュール毎に、Ｓ２のフロアプラン設計、及びＳ３の論理設計をする。Ｓ２では、フロアプラン２を作成する。Ｓ３では、ＲＴＬ論理３を作成する。また、Ｓ８の論理検証では、ＲＴＬ論理３を用いて論理検証をする。また、設計仕様１では、目標ディレイの定義を含む。クロック・ツリー（ＣＴと略す）実装仕様４では、ＣＴのレイアウト方法の定義（ＣＴ構造情報）を含む。
【００２４】
Ｓ４のタイミング設計では、フロアプラン２、ＲＴＬ論理３、設計仕様１（目標ディレイの定義）、及び、ＣＴ実装仕様４（ＣＴのレイアウト方法の定義）を入力して、タイミング設計をする。タイミング設計では、パス毎にタイミング（パスディレイ等に関するタイミング）の収束可否（目標値以内に収まるか否か）を判定・診断して、その診断結果５を出力する。これにより収束可能（ＯＫ）と判定したパスについては、パスディレイ予算の定義を含むタイミング制約６を作成する。一方、収束不可能（ＮＧ）と判定したパスについては、Ｓ１の機能設計、Ｓ２のフロアプラン設計、または、Ｓ３の論理設計に戻って、タイミング不良を対策する。
【００２５】
上記で対策したパスのタイミングが収束可能（ＯＫ）になったら、ＲＴＬ論理３、及びタイミング制約６を入力して、Ｓ５の論理合成をして、ゲートレベル論理７を生成する。Ｓ５の段階では、設計フローに応じて、タイミング最適化処理を含む。
【００２６】
その後、ゲートレベル論理７を入力して、ＣＴ実装仕様４に定義されている方法（ＣＴのレイアウト方法）に従い、Ｓ６のレイアウトをする。Ｓ６の段階では、配置配線後に発生した信号波形のスルーレート違反に対して、ゲートの高駆動力化や、負荷分散をして調整する。Ｓ６の段階では、設計フローに応じて、ゲート最適化処理を含む。Ｓ６により生成したゲートレベル論理８を用いて、Ｓ７のタイミング検証をする。
【００２７】
次に、図２を用いて、図１のタイミング設計段階（Ｓ４）の処理フローの例について説明する。タイミング設計では、パス毎に、Ｓ２０１の目標ディレイの設定（目標ディレイ値をＤｍとする）、及び、Ｓ２０２のクロック・スキュー（ＣＳ）予算値の設定（ＣＳ予算値をＣＳｙとする）、を行う。また、Ｓ２０３のパスディレイ計算では、パスディレイの見積もり値（Ｄａとする）を算出する。
【００２８】
次に、Ｓ２０３で算出したパスディレイ見積もり値（Ｄａ）と、Ｓ２０２で設定したＣＳ予算値（ＣＳｙ）とを加算した値（Ｄａ＋ＣＳｙ）と、Ｓ２０１で設定した目標ディレイ値（Ｄｍ）とを比較することにより、Ｓ２０４のタイミング診断をする。（Ｄａ＋ＣＳｙ）≦Ｄｍであれば、収束可能（ＯＫ）である。収束可能（ＯＫ）と判定したパスについては、Ｓ２０５のタイミング制約の作成をする。即ち、パスディレイ予算値（Ｄｙとする）を設定する。
【００２９】
次に、図３を用いて、パスのタイミング制約（図１の６，図２のＳ２０５）について説明する。図３（ｂ）のように、第１の機能モジュール３１１内を始点３２１として第２の機能モジュール３１２内を終点３２２とする第１のパス３０１を有する。また、第２の機能モジュール３１２内を始点３２２として第３の機能モジュール３１３内を終点３２３とする第２のパス３０２を有する。各点（３２１〜３２３）は、パスの始点・終点（始点または終点またはその両方）であり、例えばフリップフロップである。パス中には、適宜ゲート（３３２，３３３）等が挿入される。図３（ａ）のように、第１のパス３０１についてのタイミング制約は、目標ディレイ（Ｄｍ）からＣＳ予算（ＣＳｙ１）を減じて算出した値であるパスディレイ予算（Ｄｙ１）とする。また、第２のパス３０２についてのタイミング制約は、目標ディレイ（Ｄｍ）からＣＳ予算（ＣＳｙ２）を減じて算出した値であるパスディレイ予算（Ｄｙ２）とする。
【００３０】
ここで、図３（ａ）のように、ＣＳ予算（ＣＳｙ）が相対的に大きい第２のパス３０２と相対的に小さい第１のパス３０１とを比較する。第２のパス３０２だと、ＣＳ予算（ＣＳｙ２）が大きいのでパスディレイ予算（Ｄｙ２）が小さい。そのため、後の段階である論理合成（Ｓ５）でのタイミング最適化処理において、小さいパスディレイを満たすために、ゲートの高駆動力化や、負荷分散するゲート量が多くなる。これにより、パスを構成するゲート（例えば３３３）の規模が大きくなり、消費電力の増大などにつながる。一方逆に、ＣＳ予算（ＣＳｙ１）が小さい第１のパス３０１だと、パスディレイ予算（Ｄｙ１）が大きい。そのため、論理合成のタイミング最適化処理において、ゲートの高駆動力化や、負荷分散するゲート量が少なくなる。これにより、パスを構成するゲート（例えば３３２）の規模が小さくなり、消費電力の減少などにつながる。
【００３１】
一方、レイアウト（Ｓ６）後のＣＳは、パスの始点・終点に供給される各クロックにおける、ＣＴ分岐点からパス始点までのディレイと、ＣＴ分岐点からパス終点までのディレイとのバラツキによって変動する。従来では、タイミング設計段階（Ｓ４）において、パスの始点・終点と、それに対してクロックを供給するＣＴの分岐点を対応付けすること等はしていなかったため、ＣＳ予算値は、ＣＴの根元での分岐を想定した最悪ケースの値としていた。これにより、タイミング設計段階（Ｓ４）において、レイアウト（Ｓ６）後のＣＳだと目標ディレイ内に収まるようなパスに対して、無駄なタイミング対策をする場合があった。また、論理合成段階（Ｓ５）においては、レイアウト（Ｓ６）後のＣＳだと目標ディレイ内に収まるパスに対して、不要なゲートの高駆動力化や、負荷分散により過剰なゲートを生成していた。
【００３２】
＜本実施の形態のＬＳＩ設計方法＞
以上に基づき、本実施の形態のＬＳＩ設計方法（ＣＳ予算値設定方法を含む）等について説明する。本方法において、図１（全体），図２（タイミング設計段階（図１のＳ４），図５（ＣＳ予算値の設定（図２のＳ２０２））に示すフローの処理を実行する。本方法の処理は、図４の装置において本プログラムの処理により実現される。各フロー処理の概要は基本的に前述の通りである。本実施の形態において従来技術とは異なる特徴的な部分は、特に、タイミング設計（Ｓ４）での処理内容（ＣＳ予算値の設定方法）である。
【００３３】
＜装置＞
図４に、本ＬＳＩ設計方法及びプログラムにおける、ハードウエア等の装置の実装構成例を示す。設計者が使用するＰＣ等のコンピュータ装置において、本ＬＳＩ設計方法に従う処理を実現するプログラムを実行する形態である。本プログラムは、ハードディスクドライブ等の補助記憶装置４０４に記憶されている。また補助記憶装置４０４には、後述するＣＳ予算値の設定を行うための設計情報などのデータ（図８等）も記憶されている。本ＬＳＩ設計方法の処理を実施する際には、設計者の操作に基づき、入力装置４０１の一つであるキーボードによりコマンドを入力して、ＣＰＵ４０２に対し、ＣＳ予算値設定などの処理の実行を指示する。これにより、補助記憶装置４０４のプログラムやデータが主記憶装置４０３にロードされ、ＣＰＵ４０２により実行される。実行結果は、例えばディスプレイやプリンタ等の出力装置４０５で確認できる。
【００３４】
＜実装仕様、フロアプラン等＞
まず、図６を用いて、図５のＣＴ実装仕様５０１（ＣＴ実装仕様情報を含むＬＳＩの実装仕様情報）の例について説明する。ＣＴ実装仕様５０１（図１のＣＴ実装仕様４に相当）は、ＣＴ自体の分岐等の構造（ＣＴ構造情報）、並びに、チップ６００上におけるＣＴの最終段ゲート（６１４〜６１７）がクロックを供給する領域（クロック供給領域）（６０１〜６０４）を定義した情報である。ＣＴの分岐点はゲート（６１１〜６１７）等である。また、例えば、最終段ゲート６１４と最終段ゲート６１５との分岐点はゲート６１２であり、最終段ゲート６１５と最終段ゲート６１６との分岐点はゲート６１１である、といったように、ＣＴ実装仕様５０１は、ＣＴの最終段ゲートの組み合わせ（対）毎にＣＴの分岐点を定義し、その分岐点（６１１〜６１７）毎にＣＳ予算値などを定義する情報である。なお、分岐点の概念として最終段ゲート（６１４〜６１７）も含める。また、分岐点毎に累積分岐回数（Ｎとする）（ＣＴ根元からの累積の分岐回数）を定義した情報を含む。例えば、分岐点６１１のＮは１であり、分岐点６１２，６１３のＮは２であり、分岐点６１４〜６１７のＮは３である。
【００３５】
次に、図７を用いて、図５のフロアプラン５０２（図１のフロアプラン２に相当）の例について説明する。機能モジュールのフロアプラン（５０２）は、チップ７００上の機能モジュール（対応するブロック）（７０１〜７０３）の位置を定義した情報である。一般的に、機能モジュール（例えば７０１〜７０３）には、ＣＴ経由でクロックが供給されるパスの始点・終点（例えば７１１〜７１３）、及び、所望の機能を実現するための組み合わせ論理ゲート（例えば７２１，７２２）が含まれる。
【００３６】
また、図５の論理情報５０３は、パスを構成する始点・終点、ゲート（組み合わせ論理ゲート）について、それらの接続関係、及び、それらが所属する機能モジュールなどを定義した情報（パス及び機能モジュールの構成情報）を含む。論理情報５０３は、図１のＲＴＬ論理３に含まれている。
【００３７】
なお、図７のパスの始点・終点（例えば７１１〜７１３）は、図６のＣＴの最終段ゲート（６１４〜６１７）から、対応するクロック供給領域内でクロック供給先となるフリップフロップ等に対応付けられる。また、機能モジュール（ブロック）とクロック供給領域とは異なる。
【００３８】
＜ＣＳ予算値設定方法＞
次に、図５を用いて、ＣＳ予算値設定方法の処理について説明する。図５は、当該処理フロー及び関連するデータを示す。図８は、関連するデータの構造例を示す。
【００３９】
Ｓ５０１では、ＣＴ実装仕様５０１から、ＣＴの最終段ゲート毎にクロック供給領域を抽出した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０１のように、最終段ゲート識別名、クロック供給領域、等の情報を有する。
【００４０】
Ｓ５０２では、最終段ゲートの対毎にＣＴ分岐点を抽出した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０２のように、対を構成する第１と第２の最終段ゲート識別名、ＣＴ分岐点識別名、等の情報を有する。
【００４１】
Ｓ５０３では、ＣＴ分岐点毎にＣＳ予算値を抽出した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０３のように、ＣＴ分岐点識別名、ＣＳ予算値、等の情報を有する。
【００４２】
Ｓ５０４では、ＣＴ分岐点毎に累積分岐回数（Ｎ）を抽出した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０４のように、ＣＴ分岐点識別名、分岐点の累積分岐回数（Ｎ）、等の情報を有する。
【００４３】
次に、Ｓ５０５において、Ｓ５０１で主記憶装置４０３に記憶したデータ８０１（ＣＴ最終段ゲートのクロック供給領域）と、Ｓ５０２で主記憶装置４０３に記憶したデータ８０２（最終段ゲート対毎のＣＴ分岐点）と、Ｓ５０３で主記憶装置４０３に記憶したデータ８０３（ＣＴ分岐点毎のＣＳ予算値）とから、クロック供給領域の対毎に、ＣＳ予算値を設定した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０５のように、対を構成する第１と第２のクロック供給領域、ＣＳ予算値、等の情報を有する。Ｓ５０５では、当該クロック供給領域の対毎にＣＴ分岐点を対応付けできるので、そのＣＴ分岐点のＣＳ予算値を設定した後、主記憶装置４０３に記憶するものである。
【００４４】
次に、Ｓ５０６において、Ｓ５０１で主記憶装置４０３に記憶したデータ８０１（ＣＴ最終段ゲートのクロック供給領域）と、Ｓ５０２で主記憶装置４０３に記憶したデータ８０２（最終段ゲートの対毎のＣＴ分岐点）と、Ｓ５０４で主記憶装置４０３に記憶したデータ８０４（ＣＴ分岐点毎の累積分岐回数）とから、クロック供給領域の対毎にＣＴ分岐点の累積分岐回数（Ｎ）を設定した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０６のように、対を構成する第１と第２のクロック供給領域、分岐点の累積分岐回数（Ｎ）、等の情報を有する。
【００４５】
次に、Ｓ５０７において、フロアプラン５０２から、パスの始点・終点（少なくとも一方）を含む機能モジュールの位置を抽出した後、主記憶装置４０３に記憶する処理を行う。このデータは、図８のデータ８０７のように、始点を含む機能モジュールの識別名、終点を含む機能モジュールの識別名、始点を含む機能モジュールの位置、終点を含む機能モジュールの位置、等の情報を有する。位置は例えば座標等の情報である。なお始点と終点が同じ機能モジュール内の場合もある。
【００４６】
次に、Ｓ５０８において、パスにＣＳ予算値を設定する処理を行う。Ｓ５０８の処理は、詳しくは、パス及び機能モジュールの構成と、クロック供給領域及びＣＴ分岐点の構成とを重ね合わせてそれらの要素の関係を判別する処理（Ｓ５０８−１）と、それに基づき、パス（対応する機能モジュール及びクロック供給領域）に対してＣＴ分岐点に応じたＣＳ予算値を設定する処理（Ｓ５０８−２）等とを含む。
【００４７】
（Ｓ５０８−１）  Ｓ５０８−１の処理は、例えば２次元の座標領域の重ね合わせによる判別である。図６のようなクロック供給領域の位置・座標等の２次元のデータと、図７のようなフロアプラン上の機能モジュールの位置・座標等の２次元のデータとを用いて、重ね合わせることにより判別する。まず、論理情報５０３から抽出したパスの始点・終点の識別名には機能モジュール識別名を含んでいる（即ちパスの始点・終点と機能モジュールとの関係がわかる）ため、パスの始点・終点が所属する（含まれる）各機能モジュールを判別する（なお始点・終点が同じ機能モジュールに所属する場合も含む）。そして、その機能モジュール（始点が所属する第１の機能モジュール、終点が所属する第２の機能モジュール）のそれぞれについて、Ｓ５０７で主記憶装置４０３に記憶した機能モジュールの位置と、Ｓ５０５で主記憶装置４０３に記憶したクロック供給領域（ＣＴ分岐点に対応付けられる対）とを重ね合わせることにより、各機能モジュールが所属する（含まれる）クロック供給領域を判別する。なお所属は１つの場合も複数の場合もある。この判別処理では、まず簡単には、１つの機能モジュールが１つのクロック供給領域の中に含まれる場合（条件Ａ）を考える。
【００４８】
（Ｓ５０８−２）  そして、そのクロック供給領域の組み合わせの対（分岐点に対応付けられる対）について、Ｓ５０５で主記憶装置４０３に記憶したＣＳ予算値を、パスの始点・終点に対して設定する。このデータは、図８のデータ８０８のように、パスの始点の識別名、パスの終点の識別名、ＣＳ予算値、等の情報を有する。
【００４９】
また、上記判別・設定の際、パスの始点・終点（少なくとも一方）を含む機能モジュールが、複数のクロック供給領域に所属する（重なる）場合（条件Ｂ）を考える。この場合は、始点を含む機能モジュールが所属するクロック供給領域と、終点を含む機能モジュールが所属するクロック供給領域とを対とした、すべての組み合わせ、及びそれに対応付けられるＣＴ分岐点について、Ｓ５０６で主記憶装置４０３に記憶したＣＴ分岐点の累積分岐回数（Ｎ）を参照し、そこで累積分岐回数（Ｎ）が最も少ないＣＴ分岐点に対応付けられるクロック供給領域の対を選択する。その対について、Ｓ５０５で主記憶装置４０３に記憶したＣＳ予算値を、当該パスの始点・終点に、図８のデータ８０８のように設定する。上記は、言い換えれば、ＣＴ構造において該当する複数のクロック供給領域のすべての供給元となる１つの分岐点を選択し、それに対応したＣＳ予算値を当該パスに設定するものである。
【００５０】
以上のようにして、図２のＳ２０２でパス毎に効率的なＣＳ予算値が設定されるため、以後、Ｓ２０５で効率的なパスディレイ予算値が設定される。従って、図１のタイミング設計段階（Ｓ４）で効率的なタイミング制約の作成が済んでいるため、以後、論理合成（Ｓ５）、レイアウト（Ｓ６）等の処理で効率的な処理が実現される。
【００５１】
＜ＣＳ予算値設定の具体例＞
図９を参照しながら、前記パスにＣＳ予算値を設定する処理の具体例について説明する。図９は、ＣＴ実装仕様の例（図６と同様）とフロアプランの例（図７と同様）とを重ね合わせた構成（２次元の位置・座標等）を示す。
【００５２】
図９のＣＴ実装仕様の情報において、チップ９００上におけるＣＴの分岐点となる最終段ゲート（９１４〜９１７）によるクロック供給領域（９０１〜９０４）などが定義されている。また、パス（９３１〜９３３）の始点・終点（９４１〜９４４）にクロックを供給するＣＴの分岐点（９１１〜９１７）が定義されており、その分岐点毎に、「ゲート識別名／ＣＳ予算値／累積分岐回数」等の情報が定義（設定）される。ゲート識別名（分岐点）の例をＡ１等で示す。ＣＳ予算値（ＣＳｙ）の例及び累積分岐回数（Ｎ）の例は図示の通りである。例えば、パスの始点・終点にクロックを供給するＣＴの分岐点がゲート９１１の時、そのＣＴ分岐点の識別名はＡ１、ＣＳ予算値（ＣＳｙ）は２００［ｐｓ］、累積分岐回数（Ｎ）は１である。
【００５３】
また、図９のフロアプランの情報において、チップ９００上における機能モジュール（９２１〜９２３）の位置が定義されている。機能モジュール（９２１〜９２３）は、パス（９３１〜９３３）の始点・終点（９４１〜９４４）、及び、組み合わせ論理ゲート（９５１〜９５３）等から成り、それらによりパス（９３１〜９３３）が構成される。ここでは、３つの機能モジュール９２１〜９２３だけがフロアプランに実在して、機能モジュール内、及び、機能モジュール間のパスの情報は、ＲＴＬ論理３から抽出済みであることを前提として以下に説明する。
【００５４】
（１）第１の機能モジュール９２１内のパスである第１のパス９３１において、始点９４１と終点９４２を含む機能モジュール９２１は、第１のクロック供給領域９０１に配置（所属）されている。そのため、当該第１のクロック供給領域９０１に対応付けられる最終段ゲート９１４から、クロックが、当該機能モジュール９２１（始点９４１及び終点９４２等）に対して供給される。この時、第１のパス９３１に関するＣＴ分岐点は、最終段ゲート９１４である。よって、第１のパス９３１（始点・終点）のＣＳ予算値として、当該最終段ゲート９１４のＣＳ予算値である「５０」が設定される。
【００５５】
（２）（条件Ａ）  また、第１の機能モジュール９２１と第２の機能モジュール９２２との間のパスである第２のパス９３２において、始点９４２を含む第１の機能モジュール９２１は、第１のクロック供給領域９０１に配置されているため、最終段ゲート９１４からクロックが供給され、終点９４３を含む第２の機能モジュール９２２は、第２のクロック供給領域９０２に配置されているため、最終段ゲート９１５からクロックが供給される。この時、当該第２のパス９３２に関するＣＴ分岐点は、当該第１と第２のクロック供給領域（９０１，９０２）の対に関する分岐点に対応するゲート９１２である。よって、第２のパス９３２のＣＳ予算値として当該ゲート９１２の値「１００」が設定される。
【００５６】
（３）（条件Ｂ）  また、第２の機能モジュール９２２と第３の機能モジュール９２３との間のパスである第３のパス９３３において、始点９４３を含む第２の機能モジュール９２２は、第２のクロック供給領域９０２に配置されているため、最終段ゲート９１５からクロックが供給される。一方、終点９４４を含む第３の機能モジュール９２３は、第２のクロック供給領域９０２及び第３のクロック供給領域９０３の両方に跨って配置されている。そのため、第３の機能モジュール９２３に対しては、それに対応付けられる、最終段ゲート９１５または最終段ゲート９１６の２つからクロックが供給される。この場合、当該パス９３３の始点と終点の対におけるすべての組み合わせ（この場合は２つ）を考える。即ち、第１の組み合わせ（対）として、終点９４４を含む第３の機能モジュール９２３（一部）に対して第２のクロック供給領域９０２の最終段ゲート９１５からクロックを供給する場合のＣＴ分岐点は、同じ第２のクロック供給領域９０２内の分岐点であるため、当該最終段ゲート９１５であり、その累積分岐回数（Ｎ）が「３」、ＣＳ予算値が「５０」である。一方、第２の組み合わせ（対）として、終点９４４を含む第３の機能モジュール９２３（一部）に対して第３のクロック供給領域９０３の最終段ゲート９１６からクロックを供給する場合のＣＴ分岐点は、異なる第２と第３のクロック供給領域（９０２，９０３）の対の分岐点であるため、ゲート９１１であり、その累積分岐回数（Ｎ）が「１」、ＣＳ予算値が「２００」である。この時、当該第３のパス９３３に関するＣＳ予算値として、累積分岐回数（Ｎ）が最も少ないゲート（分岐点）、即ちゲート９１１の値「２００」が設定される。
【００５７】
＜実施の形態の効果等＞
図１０を用いて実施の形態の効果等について説明する。従来一般的に、ＬＳＩの開発・設計では、開発日程（設計期間やそのコスト）、製品の動作速度や消費電力（製品の性能や価格）等、何を優先して開発・設計するか（設計方針）の違いがある。例えば、レイアウト段階でゲート規模・消費電力を最適化しない場合（第１の設計方針）と最適化する場合（第２の設計方針）とがある。第１の設計方針は、レイアウト段階でのゲート最適化処理に要する時間を削減することにより、設計期間全体の短縮を優先する場合である。逆に、第２の設計方針は、レイアウト段階でのゲート最適化処理に時間を要する代わりに、ゲート規模等を削減して製品の性能を高くすることを優先する場合である。
【００５８】
これらに対し、本実施の形態では、論理合成段階（Ｓ５）・レイアウト段階（Ｓ６）よりも前の、フロアプラン設計（Ｓ３）・タイミング設計（Ｓ４）の段階で、ＣＴ構造（分岐点など）を考慮したＣＳ予算値の設定による効率的なパスディレイ予算値の設定（タイミング制約の作成）をする。これにより、従来のタイミング設計における無駄なタイミング対策（ＣＴ構造を考慮しない最悪ケースのＣＳ予算値の設定による非効率的なパスディレイ予算値の設定）の削減を実現できる。また、このようにパス毎に効率的なパスディレイ予算値を設定するので、論理合成段階（Ｓ５）・レイアウト段階（Ｓ６）での過剰なゲート生成、即ちゲート規模・消費電力等の増大、を抑止することができる。
【００５９】
図１０（ａ）において、ＬＳＩのゲート規模・消費電力をレイアウト段階で最適化しない場合（第１の設計方針）における効果を従来と対比して示す。本実施の形態では、タイミング設計段階（Ｓ４）の処理でＣＳのマージンを削減して作成したタイミング制約（パスディレイ予算）を用いて、論理合成（Ｓ５）を行うことにより、従来設計に比べて、過剰なゲートの生成を抑止（即ち論理合成後のゲートレベル論理の減少）することができる。レイアウト段階（Ｓ６）での最適化はしないので論理増分は一定である。上記ゲート（電力を消費する）の規模を削減することで、消費電力も削減することができる。即ち全体としてＬＳＩのゲート規模及び消費電力の低減の効果が得られる。
【００６０】
図１０（ｂ）において、ＬＳＩのゲート規模・消費電力をレイアウト段階で最適化する場合（第２の設計方針）における効果を従来と対比して示す。本実施の形態では、上記同様にタイミング設計段階（Ｓ４）の処理で作成した効率的なタイミング制約（パスディレイ予算）を用いて、論理合成（Ｓ５）を行うことにより、論理合成段階（Ｓ５）で過剰なゲートの生成を抑止できている（論理合成に要する時間も削減される）。そのため、従来設計に比べて、その後のレイアウト段階（Ｓ６）でのゲート規模・消費電力の最適化処理（それに要する時間）を削減でき、即ち設計期間全体を短縮できる。
【００６１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【００６２】
＜用語等＞
本明細書における基本的な用語や計算式について補足する。パスは、始点から終点までの経路であり、ブロック（機能モジュール）内に収まる場合や、ブロック（機能モジュール）間にわたる場合などがある。パスディレイは、パスの始点から終点までにおけるディレイである。クロック・ツリー（ＣＴ）は、クロックの供給元（根元）から複数の供給先（パスの始点や終点を含む）への分岐を含むツリー構造である。クロック・スキュー（ＣＳ）は、クロックの供給先となる２点（例えばパスの始点と終点）間におけるクロック到達時間のバラツキ（差分）である。パス（パスディレイ）に関するＣＳは、パスの始点と終点へのクロック到達のディレイ（値）を例えばｄ１，ｄ２とすると、その差分［ｄ１−ｄ２］である。この差分には、ＬＳＩ製造工程で発生するバラツキを含む。
【００６３】
目標ディレイ（目標パスディレイ）：  タイミング設計／検証において、対象となるパス（パスディレイ）に関して、パスディレイに加えてＣＳを考慮した値を、目標値（目標ディレイ）と比較し、収束可能か否か（ＯＫ／ＮＧ）を判断するものである。
【００６４】
パスディレイのタイミング設計／検証：  目標ディレイ以内において、パスディレイとＣＳの値を配分（予算）可能である。即ち、目標ディレイを余すことなく配分する場合の各予算値（許容値）は、［目標ディレイ値（Ｄｍ）］＝［パスディレイ予算値（Ｄｙ）］＋［ＣＳ予算値（ＣＳｙ）］である（図３）。また、Ｄｙ＝Ｄｍ−ＣＳｙである。このパスディレイ予算値（Ｄｙ）と、パスディレイの見積もり値（Ｄａ）とを比較することにより、タイミング検証がされる。即ち、Ｄｙ−Ｄａ≧０であれば収束可能（ＯＫ）である。なお、見積もり値（Ｄａ）は、タイミング設計段階などでの一般的なシミュレーション計算上の値である。予算値は、許容値などとも言い換えられる。
【産業上の利用可能性】
【００６５】
本発明は、ＬＳＩ設計ツール等に利用可能である。
【符号の説明】
【００６６】
１…設計仕様、２，５０２…フロアプラン、３…ＲＴＬ論理、４，５０１…ＣＴ実装仕様、５…診断結果、６…タイミング制約、７，８…ゲートレベル論理、３０１，３０２，９３１〜９３３…パス、３１１〜３１３，７０１〜７０３，９２１〜９２３…機能モジュール、３２１〜３２３，７１１〜７１３，９４１〜９４４…始点・終点、３３２，３３３，７２１，７２２，９５１〜９５３…ゲート（パス中のゲート）、４０１…入力装置、４０２…ＣＰＵ、４０３…主記憶装置、４０４…補助記憶装置、４０５…出力装置、５０３…論理情報、６００，７００，９００…チップ、６０１〜６０４，９０１〜９０４…クロック供給領域、６１１〜６１７，９１１〜９１７…ゲート（ＣＴ分岐点）、８０１〜８０８…データ。
【図１】
0005564231.tif 000002
【図２】
0005564231.tif 000003
【図３】
0005564231.tif 000004
【図４】
0005564231.tif 000005
【図５】
0005564231.tif 000006
【図６】
0005564231.tif 000007
【図７】
0005564231.tif 000008
【図８】
0005564231.tif 000009
【図９】
0005564231.tif 000010
【図１０】
0005564231.tif 000011