(57)【要約】【課題】ＬＳＩチップ上でハードマクロの安定した性能の駆動を確保する。【解決手段】半導体集積回路の設計データの作成方法であって、回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成し、回路ブロック及び回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成し、ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、回路ブロックライブラリ及びネットリストを使用して、回路ブロックが配置される回路ブロック配置領域とユニットセルが配置されるユニットセル配置領域とが所定状態で設けられているモジュール回路のレイアウトデータを作成し、回路ブロックライブラリは、回路ブロック配置領域とユニットセル配置領域とが所定状態で設けられている場合の回路ブロックのタイミング情報が記述されている。【選択図】図２
2009237904.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法であって、
コンピュータが、
回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成するステップと、
前記回路ブロック及び前記回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成するステップと、
前記ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、前記回路ブロックライブラリ及び前記ネットリストを使用して、前記回路ブロックが配置される回路ブロック配置領域と前記ユニットセルが配置されるユニットセル配置領域とが所定状態で設けられている前記モジュール回路のレイアウトデータを作成するステップと、を実行し、
前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが所定状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている半導体集積回路の設計データの作成方法。
【請求項２】
前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが近接した状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている請求項１に記載の半導体集積回路の設計データの作成方法。
【請求項３】
前記ユニットセル配置領域は、前記回路ブロック配置領域の周囲に設けられている請求項１または２に記載の半導体集積回路の設計データの作成方法。
【請求項４】
前記レイアウトデータは、前記回路ブロックに電源を供給するための電源配線領域が更に設けられている請求項１から３の何れか一項に記載の半導体集積回路の設計データの作成方法。
【請求項５】
前記レイアウトデータは、前記回路ブロックと前記ユニットセルとを結ぶ配線が更に設けられ、
前記ユニットセル配置領域は、前記配線の伸長方向に設けられている請求項１から４の何れか一項に記載の半導体集積回路の設計データの作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法に関する。
【背景技術】
【０００２】
秘匿情報を含むハードマクロ回路（以下、ハードマクロともいう）を使用してLarge Scale Integration（ＬＳＩ、大規模集積回路）チップの設計を行う場合、ハードマクロ設
計者は、ハードマクロの回路構造を開示せずにハードマクロの設計データをＬＳＩチップ設計者に提供する必要がある。ハードマクロの設計データとして、ハードマクロの枠サイズ及び端子位置の座標情報を含むレイアウトデータ、ハードマクロのタイミング規格（タイミング条件ともいう）を含むタイミングライブラリがＬＳＩチップ設計者に提供される。ＬＳＩチップの設計状況に応じて、ハードマクロの外部端子に接続されるセルの配置が異なるため、ハードマクロとＬＳＩチップとのインターフェースにおけるタイミング規格も異なる。一般的に、ハードマクロのタイミングライブラリは、ハードマクロの設計者の想定範囲内で十分に検証されている。
【特許文献１】特開平１１−３０７７２８号公報
【特許文献２】特開２００４−１５０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
汎用的に用いられるハードマクロを設計する段階では、ハードマクロやハードマクロに接続されるセルが、ＬＳＩチップにどのように配置配線されるのかを、ハードマクロ設計者が確定することは困難である。そのため、ハードマクロ設計者は、ＬＳＩチップ上でハードマクロが配置配線される状況を多数想定することによりハードマクロのタイミングライブラリを作成し、ＬＳＩチップ設計者に提供している。しかし、ＬＳＩチップの設計においてハードマクロ設計者の想定範囲外の配置配線が行われた場合、その配置配線におけるタイミング規格は十分に検証されたものではなく、動作不具合が起こり得る可能性がある。本発明は、ＬＳＩチップ上でハードマクロが安定した性能で駆動できる技術の提供を目的とする。
【課題を解決するための手段】
【０００４】
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法であって、コンピュータが、所定の機能を有する回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成するステップと、前記回路ブロック及び前記回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成するステップと、前記ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、前記回路ブロックライブラリ及び前記ネットリストを使用して、前記回路ブロックが配置される回路ブロック配置領域と前記ユニットセルが配置されるユニットセル配置領域とが所定状態で設けられている前記モジュール回路のレイアウトデータを作成するステップと、を実行し、前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが所定状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている。
【０００５】
本作成方法によって作成されるモジュール回路のレイアウトデータは、回路ブロック配置領域とユニットセル配置領域とが所定状態で設けられている。そして、本作成方法によって作成される回路ブロックライブラリには、回路ブロック配置領域とユニットセル配置
領域とが所定状態で設けられている場合の回路ブロックのタイミング情報が記述されている。したがって、モジュール回路のレイアウトデータを使用してＬＳＩチップの設計を行った場合、ＬＳＩチップ上におけるハードマクロの安定した性能での駆動を確保することが可能となる。
【０００６】
また、本発明は、以上のいずれかの処理を実行するコンピュータその他の装置、機械等であってもよい。また、本発明は、コンピュータその他の装置、機械等に、以上のいずれかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータ等が読み取り可能な記録媒体に記録したものでもよい。
【発明の効果】
【０００７】
本発明によれば、ＬＳＩチップ上のハードマクロを安定した性能で駆動させることが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、図面に基づいて、本発明を実施するための最良の形態（以下、実施形態という）に係る設計支援装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【０００９】
＜システムの概要＞
本設計支援装置は、レイアウト作成システムを起動し、ハードマクロのネットリスト、セルライブラリを使用して、ハードマクロのレイアウトデータを作成する。ハードマクロは、所定の機能を実現する機能ブロック（回路ブロックともいう）であり、例えば、Central Processing Unit（ＣＰＵ）、Random Access Memory（ＲＡＭ）、Read Only Memory
（ＲＯＭ）等の機能を有する。また、ハードマクロは、論理ブロックの配置や内部配線が予め固定されたコアである。
【００１０】
ハードマクロのネットリストは、ハードマクロが備えるセルの接続情報が記述されたデータである。セルライブラリは、セルのサイズ（大きさ）、形状、端子位置の座標情報等が記述されたデータ及びセルのタイミング情報が記述されたデータを含む。ハードマクロのレイアウトデータは、ハードマクロが備えるセルの配置情報及びセル間の配線情報を含むデータである。すなわち、ハードマクロのレイアウトデータは、ハードマクロ内部のレイアウトを記述したデータである。
【００１１】
また、本設計支援装置は、ライブラリ作成システムを起動し、ハードマクロのレイアウトデータ及びセルライブラリを使用して、ハードマクロライブラリを作成する。ハードマクロライブラリは、ハードマクロレイアウトライブラリ及びハードマクロタイミングライブラリを含む。ハードマクロレイアウトライブラリは、ハードマクロのサイズ（大きさ）、形状、端子位置の座標情報等のデータを有する。ハードマクロタイミングライブラリは、ハードマクロのタイミング規格（タイミング情報ともいう）が記述されたタイミングテーブルを備える。タイミング規格は、例えば、入力信号に対するセットアップ時間及びホールド時間、出力信号に対する最大遅延時間及び最小遅延時間である。
【００１２】
ハードマクロタイミングライブラリには、ハードマクロの外部条件を考慮したタイミング規格が記述される。ハードマクロの外部条件として、ハードマクロの外部端子に接続される最初の論理回路をバッファ（信号中継回路あるいはユニットセルともいう）とする。そして、ハードマクロ及びバッファの配置について、ハードマクロの外部端子に対してバッファが近接配置された状態を想定する。すなわち、本設計支援装置は、ハードマクロの外部端子に対してバッファが近接配置された状態を想定して、ハードマクロタイミングライブラリを作成する。
【００１３】
ハードマクロの外部端子に対してバッファが近接配置された状態とは、ハードマクロの外部端子とバッファとを接続する配線の長さが物理的に最小値となるように、ハードマクロの外部端子に対してバッファが配置された状態をいう。ハードマクロの外部端子に対してバッファが近接配置されることにより、ハードマクロを安定した性能で駆動させることができる。したがって、ハードマクロの外部端子に対してバッファが近接配置された状態とは、ハードマクロを安定した性能で駆動できる配置状態ともいえる。本明細書では、ハードマクロの外部端子に対してバッファが近接配置された状態を、所定状態あるいは所定配置状態ともいう。
【００１４】
また、上述のハードマクロタイミングライブラリの作成において、タイミング規格にマージン（余裕）が付加される。この場合、ハードマクロの外部端子に接続されるバッファの配置位置を考慮して、タイミング規格にマージンが付加される。タイミング規格にマージンが付加されることで、ハードマクロタイミングライブラリを使用してＬＳＩチップの設計が行われた場合のハードマクロの動作を保証することができる。
【００１５】
また、本設計支援装置は、ネットリスト作成システムを起動し、ラッパーモジュールのネットリストを作成する。ラッパーモジュールは、ハードマクロ及びバッファを備えるモジュール回路である。ラッパーモジュールのネットリストは、ハードマクロとバッファとの接続情報が記述されたデータである。
【００１６】
また、本設計支援装置は、レイアウトデータ作成システムを起動し、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリ（信号中継回路ライブラリ又はバッファセルライブラリともいう）を用いて、ラッパーモジュールのレイアウトデータを作成する。バッファライブラリ（ユニットセルライブラリともいう）は、バッファの大きさ、形状、端子位置の座標等が記述されたデータ及びバッファのタイミング情報が記述されたデータを含む。
【００１７】
ラッパーモジュールのレイアウトデータは、ハードマクロ及びそのハードマクロの外部端子に接続されるバッファの配置配線情報が記述されたデータである。ラッパーモジュール内のバッファは、ハードマクロの外部端子に対して近接配置されている。
【００１８】
また、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータは、ハードマクロの内部構造（回路構造）がブラックボックス状態となっている。すなわち、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータは、ハードマクロの内部構造が記述されていない状態のレイアウトデータである。これは、ラッパーモジュールのレイアウトデータの作成において用いられるハードマクロライブラリには、ハードマクロの内部構造が記述されていないためである。
【００１９】
以下において、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータを、ブラックボックス状態のレイアウトデータという。なお、本設計支援装置は、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータ内にバッファの配置に関しての固定配置属性を記述する。
【００２０】
また、本設計支援装置は、レイアウトデータ作成システムを起動し、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて、
ラッパーモジュールのレイアウトデータを作成する。ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト、バッファライブラリを用いて作成されたハードマクロ及びバッファのレイアウトデータは、ハードマクロの内部構造がホワイトボックス状態となっている。
【００２１】
すなわち、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト、バッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータは、ハードマクロの内部構造が記述された状態のレイアウトデータである。これは、ラッパーモジュールのレイアウトデータの作成において用いられるハードマクロのレイアウトデータには、ハードマクロの内部構造が記述されているためである。
【００２２】
以下において、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト、バッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータを、ホワイトボックス状態のレイアウトデータという。
【００２３】
また、本設計支援装置は、タイミング検証システムを起動し、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータのタイミング検証を行う。そして、本設計支援装置は、タイミング比較システムを起動し、ブラックボックス状態のレイアウトデータのタイミング検証の結果と、ホワイトボックス状態のレイアウトデータのタイミング検証の結果とを比較する。
【００２４】
ブラックボックス状態のレイアウトデータのタイミング検証の結果が所望の結果となっている場合、ハードマクロ設計者は、ブラックボックス状態のレイアウトデータ、ラッパーモジュールのネットリスト及びハードマクロライブラリの各データをＬＳＩチップ設計者に提供する。ここで、バッファライブラリは、ハードマクロ設計者及びＬＳＩチップ設計者がともに共通のデータを予め用意しておくため、ハードマクロ設計者は、バッファライブラリのデータをＬＳＩチップ設計者には提供しない。
【００２５】
ＬＳＩチップ設計者に提供されるブラックボックス状態のレイアウトデータは、ハードマクロの内部構造が記述されていない。そのため、ブラックボックス状態のレイアウトデータをＬＳＩチップ設計者に提供した場合であっても、ハードマクロの内部構造がＬＳＩチップ設計者に知得されることを抑制できる。
【００２６】
そして、ＬＳＩチップ設計者は、ブラックボックス状態のレイアウトデータを使用して、ＬＳＩチップの設計を行う。ＬＳＩチップ設計者に提供されるブラックボックス状態のレイアウトデータは、ハードマクロの外部端子に対してバッファが近接配置された状態である。また、ＬＳＩチップ設計者に提供されるハードマクロライブラリには、ハードマクロの外部端子に対してバッファが近接配置された状態のタイミングライブラリが含まれている。
【００２７】
ブラックボックス状態のレイアウトデータは、バッファの配置に関する固定配置属性が与えられているため、ＬＳＩチップ上では、ハードマクロの外部端子に対してバッファが近接配置されることになる。例えば、レイアウトツールの自動配置を使用してＬＳＩ設計を行った場合であっても、ＬＳＩチップ上には、ハードマクロの外部端子に対して常にバッファが近接配置されることになる。したがって、ブラックボックス状態のレイアウトデータを使用したＬＳＩチップの設計において、ＬＳＩチップ上でハードマクロを安定した性能で配置・利用することが可能となる。
【００２８】
ＬＳＩチップの設計データは、本設計支援装置を使用するユーザが受け取る。そして、この設計データに基づいて、ＬＳＩチップの作成が行われることで、ＬＳＩチップの設計
者にハードマクロの内部構造が知得されることなく、ＬＳＩチップの製造が可能となる。
【００２９】
図１に、本設計支援装置を実現するためのコンピュータ１のハードウェア構成を示す。図１に示すように、コンピュータ１は、コンピュータプログラムを実行することでコンピュータ１を制御するＣＰＵ２、ＣＰＵ２で実行されるコンピュータプログラムやＣＰＵ２が処理するデータを記憶するメモリ３を有する。また、同図に示すように、コンピュータ１は、ＣＰＵ２と各種の装置とを接続するインターフェース４、ハードディスク駆動装置５、可搬媒体駆動装置６、入力装置７、表示装置８を有している。
【００３０】
メモリ３は、ＣＰＵ２で実行されるプログラムやＣＰＵ２で処理されるデータを記憶する。メモリ３は、例えば、揮発性のＲＡＭ、不揮発性のＲＯＭである。インターフェース４は、Universal Serial Bus（ＵＳＢ）等のシリアルインターフェース、あるいは、Peripheral Component Interconnect（ＰＣＩ）等のパラレルインターフェースのいずれでも
よい。なお、ＣＰＵ２と各装置とをインターフェース４で接続しているが、ＣＰＵ２と各装置との間を異なるインターフェースで接続してもよい。また、複数のインターフェースをブリッジ接続してもよい。
【００３１】
ハードディスク駆動装置５は、メモリ３にロードされるプログラムを格納する。また、ハードディスク駆動装置５は、ＣＰＵ２で処理されるデータを記憶する。可搬媒体駆動装置６は、例えば、Compact Disc（ＣＤ）、Digital Versatile Disk（ＤＶＤ）、ＨＤ−ＤＶＤ、ブルーレイディスク等の駆動装置である。また、可搬媒体駆動装置６は、フラッシュメモリ等の不揮発性メモリを有するカード媒体の入出力装置であってもよい。可搬媒体駆動装置６が駆動する媒体は、例えば、ハードディスク駆動装置５にインストールされるコンピュータプログラム、入力データ等を格納する。入力装置７は、例えば、キーボード、マウス、ポインティングデバイス、ワイヤレスリモコン等である。
【００３２】
表示装置８は、ＣＰＵ２で処理されるデータやメモリ３に記憶されるデータを表示する。表示装置８は、例えば、液晶表示装置、プラズマディスプレイパネル、Cathode Ray Tube（ＣＲＴ）、エレクトロルミネッセンスパネル等である。
【００３３】
図２は、本設計支援装置の機能ブロック図である。本設計支援装置は、操作部１１、格納部１２、レイアウト部１３、検証部１４、ライブラリ作成部１５、ライブラリ検証部１６、外部端子抽出部１７、ネットリスト作成部１８、タイミング規格抽出部１９、タイミング規格算出部２０及びタイミング規格比較部２１を有する。これらの各機能部は、ＣＰＵ２、メモリ３等を含むコンピュータ、各装置及びコンピュータ上で実行されるプログラム等によって実現することができる。
【００３４】
操作部１１は、ユーザからの入力を受け付け、所定のコマンドや必要なデータを入力するときなどに操作される。
【００３５】
格納部１２は、ネットリストデータベース（以下、ネットリストＤＢという）３０、ライブラリデータベース（以下、ライブラリＤＢという）３１及びレイアウトデータベース（以下、レイアウトＤＢという）３２を有する。
【００３６】
ネットリストＤＢ３０には、ハードマクロのネットリストのデータ及びラッパーモジュールのネットリストのデータが格納される。ライブラリＤＢ３１には、セルライブラリのデータ、ハードマクロライブラリのデータ及びバッファライブラリのデータが格納される。レイアウトＤＢ３２には、ハードマクロのレイアウトデータ、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータが格納される。
【００３７】
レイアウト部１３は、ハードマクロのネットリスト及びセルライブラリを使用して、ハードマクロのレイアウトデータを作成する。そして、レイアウト部１３は、作成したハードマクロのレイアウトデータをレイアウトＤＢ３２に格納する。
【００３８】
さらに、レイアウト部１３は、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ブラックボックス状態のレイアウトデータを作成する。そして、レイアウト部１３は、作成したブラックボックス状態のレイアウトデータをレイアウトＤＢ３２に格納する。
【００３９】
また、レイアウト部１３は、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ホワイトボックス状態のレイアウトデータを作成する。そして、レイアウト部１３は、作成したホワイトボックス状態のレイアウトデータをレイアウトＤＢ３２に格納する。
【００４０】
なお、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータの作成において、レイアウト部１３は共通のフロアプランを使用する。すなわち、ハードマクロ及びバッファの配置位置や状態について、ブラックボックス状態のレイアウトデータとホワイトボックス状態のレイアウトデータとでは同一となる。これは、レイアウトデータのタイミング検証において、ハードマクロ及びバッファの配置位置や状態によって差が出ないようにするためである。
【００４１】
検証部１４は、レイアウト部１３によって作成されたレイアウトデータに記述されたハードマクロが所定の機能や性能を満たしているか否かを実配線にて検証する。例えば、検証部１４は、ハードマクロが所定の駆動速度や所定のクロックで動作するか否かを検証する。
【００４２】
ライブラリ作成部１５は、ハードマクロのレイアウトデータ及びセルライブラリを使用して、ハードマクロライブラリを作成する。ライブラリ作成部１５は、タイミング規格にマージンを付加してハードマクロタイミングライブラリを作成する。そして、ライブラリ作成部１５は、作成したハードマクロライブラリのデータをライブラリＤＢ３１に格納する。
【００４３】
ライブラリ検証部１６は、ハードマクロライブラリが、所望のライブラリとなっているか否かを検証する。例えば、ライブラリ検証部１６は、ハードマクロタイミングライブラリに記述されているタイミング規格が適正値となっているか否かを検証する。また、ハードマクロタイミングライブラリに記述されているタイミング規格にマージンが付加されている場合、ライブラリ検証部１６は、付加されたマージンが正確に反映されているか否かを検証する。
【００４４】
外部端子抽出部１７は、ハードマクロのネットリストを使用して、ハードマクロのネットリストに記述されているハードマクロの外部端子を抽出する。例えば、ハードマクロ設計者などのユーザによってハードマクロのモジュール名が指定された場合、ハードマクロのモジュール名に対応するハードマクロの外部端子が抽出される。また、ハードマクロのネットリストから、予め特定のハードマクロのモジュール名に対応するハードマクロの外部端子を抽出するようにしておいてもよい。
【００４５】
ネットリスト作成部１８は、バッファライブラリと、外部端子抽出部１７により抽出された外部端子とを使用して、ハードマクロ及びそのハードマクロの外部端子に接続されるバッファを含むラッパーモジュールのネットリストを作成する。そして、ネットリスト作成部１８は、作成したラッパーモジュールのネットリストをネットリストＤＢ３０に格納
する。
【００４６】
タイミング規格抽出部１９は、ブラックボックス状態のレイアウトデータ及びハードマクロライブラリを使用して、ハードマクロライブラリに記述されているタイミング規格を抽出する。例えば、タイミング規格抽出部１９は、ブラックボックス状態のレイアウトデータからバッファが配置されている位置を求める。そして、タイミング規格抽出部１９は、バッファ配置位置に対応するタイミング規格をハードマクロライブラリから抽出する。この場合、タイミング規格抽出部１９は、バッファ配置位置に対応するタイミング規格を、ハードマクロの外部端子ごとに抽出する。ブラックボックス状態のレイアウトデータは、ハードマクロの内部構造が記述されていない状態のレイアウトデータである。そのため、ブラックボックス状態のレイアウトデータ及びハードマクロライブラリを使用することにより、タイミング規格抽出部１９は、ハードマクロライブラリに記述されているタイミング規格を抽出する。
【００４７】
タイミング規格算出部２０は、ホワイトボックス状態のレイアウトデータを使用して、タイミング規格を算出する。例えば、タイミング規格算出部２０は、ホワイトボックス状態のレイアウトデータからバッファが配置されている位置を求める。そして、タイミング規格算出部２０は、ホワイトボックス状態のレイアウトデータを使用して、バッファ配置位置に対応するタイミング規格を算出する。この場合、タイミング規格算出部２０は、バッファ配置位置に対応するタイミング規格を、ハードマクロの外部端子ごとに算出する。ホワイトボックス状態のレイアウトデータは、ハードマクロの内部構造が記述された状態のレイアウトデータである。そのため、ホワイトボックス状態のレイアウトデータを使用することにより、タイミング規格算出部２０は、バッファ配置位置に対応するタイミング規格を算出する。
【００４８】
タイミング規格比較部２１は、ハードマクロの外部端子ごとに、タイミング規格抽出部１９によって抽出されたタイミング規格とタイミング規格算出部２０によって算出されたタイミング規格とを比較する。具体的には、タイミング規格比較部２１は、ハードマクロの外部端子ごとに、タイミング規格抽出部１９によって抽出されたタイミング規格が、タイミング規格算出部２０によって抽出されたタイミング規格よりも条件的に余裕があるか否かを判定する。例えば、タイミング規格が、セットアップ時間である場合、タイミング規格比較部２１は、タイミング規格抽出部１９によって抽出されたセットアップ時間が、タイミング規格算出部２０によって抽出されたセットアップ時間よりも長いか否かを判定する。
【００４９】
ハードマクロの外部端子の一つ以上について、タイミング規格抽出部１９によって抽出されたタイミング規格が、タイミング規格算出部２０によって抽出されたタイミング規格よりも条件的に余裕がない場合、タイミング規格比較部２１は、レイアウト部１３に通知する。タイミング規格比較部２１から通知を受けたレイアウト部１３は、フロアプランを変更して、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータを再度作成する。
【００５０】
図３は、本設計支援装置が実行する提供データ作成処理の流れを示すフローである。本設計支援装置は、操作部１１を介して必要なデータやコマンドが入力されることにより、提供データ作成処理を実行する。まず、本設計支援装置は、ハードマクロのネットリスト及びセルライブラリを使用して、ハードマクロのレイアウトデータを作成する（Ｓ０１）。
【００５１】
次に、本設計支援装置は、Ｓ０１の処理で作成されたレイアウトデータに記述されているハードマクロが所定の機能や性能を満たしているか否かについて、実配線にてタイミン
グ検証を行う（Ｓ０２）。
【００５２】
Ｓ０１の処理にて作成されたレイアウトデータに記述されているハードマクロが所定の機能や性能を満たしていない場合（Ｓ０２の処理でＮＯ）、本設計支援装置は、Ｓ０１の処理に戻り、ハードマクロのレイアウトデータの作成をやり直す。
【００５３】
一方、Ｓ０１の処理にて作成されたレイアウトデータに記述されているハードマクロが所定の機能や性能を満たしている場合（Ｓ０２の処理でＹＥＳ）、本設計支援装置は、Ｓ０３の処理に進む。本設計支援装置は、ハードマクロのレイアウトデータ及びセルライブラリを使用して、ハードマクロライブラリを作成する（Ｓ０３）。次に、本設計支援装置は、ハードマクロライブラリが、所望のライブラリとなっているか否かを検証する（Ｓ０４）。
【００５４】
ハードマクロライブラリが、所望のライブラリとなっていない場合（Ｓ０４の処理でＮＯ）、本設計支援装置は、Ｓ０３の処理に戻り、ハードマクロライブラリの作成をやり直す。一方、ハードマクロライブラリが、所望のライブラリとなっている場合（Ｓ０４の処理でＹＥＳ）、本設計支援装置は、Ｓ０５の処理に進む。本設計支援装置は、ハードマクロのネットリストに記述されているハードマクロの外部端子を抽出する（Ｓ０５）。
【００５５】
次に、本設計支援装置は、ハードマクロ及びそのハードマクロの外部端子に接続されるバッファを含むラッパーモジュールのネットリストを作成する（Ｓ０６）。そして、本設計支援装置は、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ブラックボックス状態のレイアウトデータを作成する（Ｓ０７）。
【００５６】
次に、本設計支援装置は、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ホワイトボックス状態のレイアウトデータを作成する（Ｓ０８）。
【００５７】
そして、本設計支援装置は、ブラックボックス状態のレイアウトデータ及びハードマクロライブラリを使用して、ハードマクロライブラリに記述されているタイミング規格を抽出する（Ｓ０９）。次に、本設計支援装置は、ホワイトボックス状態のレイアウトデータを使用して、タイミング規格を算出する（Ｓ１０）。
【００５８】
そして、本設計支援装置は、Ｓ０９の処理で抽出されたタイミング規格とＳ１０の処理で算出されたタイミング規格とを比較する（Ｓ１１）。具体的には、ハードマクロの外部端子ごとに、Ｓ０９の処理で抽出されたタイミング規格が、Ｓ１０の処理で算出されたタイミング規格よりも条件的に余裕があるか否かが判定される。
【００５９】
ハードマクロの外部端子の一つ以上について、Ｓ０９の処理で抽出されたタイミング規格が、Ｓ１０の処理で算出されたタイミング規格よりも条件的に余裕がない場合（Ｓ１１の処理でＮＯ）、本設計支援装置は、Ｓ０７の処理に戻り、レイアウトデータの作成をやり直す。この場合、本設計支援装置は、フロアプランを変更して、レイアウトデータを再度作成する。
【００６０】
一方、ハードマクロの外部端子のすべてについて、Ｓ０９の処理で抽出されたタイミング規格が、Ｓ１０の処理で算出されたタイミング規格よりも条件的に余裕がある場合（Ｓ１１の処理でＹＥＳ）、本設計支援装置は、提供データ作成処理を終了する。
【００６１】
Ｓ０３の処理で作成されたハードマクロライブラリ、Ｓ０６の処理で作成されたラッパ
ーモジュールのネットリスト及びＳ０７の処理で作成されたブラックボックス状態のレイアウトデータが、ＬＳＩチップ設計者への提供データである。Ｓ０７及びＳ０８の処理で使用されるバッファライブラリは、ＬＳＩチップ設計者によって使用されるバッファライブラリと共通であるため、ＬＳＩチップ設計者への提供データには含まれていない。
【００６２】
〈タイミングテーブルの説明〉
次に、ハードマクロタイミングライブラリ内のタイミングテーブルについて、図４から図９を参照して説明する。ＬＳＩチップの設計において、ハードマクロ及びバッファのレイアウトを行う場合、ハードマクロタイミングライブラリ内のタイミングテーブルが参照される。タイミングテーブルには、ハードマクロのタイミング規格が、ハードマクロの外部条件に対応して記述されている。この場合におけるハードマクロの外部条件は、ハードマクロの入力端子では、入力信号の波形なまり（波形の劣化）であり、ハードマクロの出力端子では、出力端子の外部容量（外部負荷）である。
【００６３】
図４、図６及び図８は、ハードマクロ４０の外部端子４１にバッファ４２が接続されている場合のハードマクロ４０及びバッファ４２の配置例である。バッファ４２及びクロックバッファ４３は、外部端子辺４４の任意の箇所に配線４５を接続させることで、ハードマクロ４０の外部端子４１と接続可能である。図４、図６及び図８に示すバッファ４２Ａ、４２Ｂ、４２Ｃ、４２Ｄ及び４２Ｅは駆動能力が同じであり、ハードマクロ４０の外部端子４１と１対１で接続されている。クロックバッファ４３は、ハードマクロ４０にクロックを供給するセルである。図４、図６及び図８では、ハードマクロ４０のクロックは１系統としている。なお、図４から図９において、バッファ４２Ａ、４２Ｂ、４２Ｃ、４２Ｄ及び４２Ｅを総称する場合には、バッファ４２という。
【００６４】
図５、図７及び図９は、タイミングテーブル５０の一例であり、ハードマクロ４０のタイミングライブラリが参照される場合におけるタイミングテーブル５０の参照箇所の説明図である。図５は、ハードマクロ４０及びバッファ４２の配置が図４の配置例である場合のタイミングテーブル５０の参照箇所の説明図である。図７は、ハードマクロ４０及びバッファ４２の配置が図６の配置例である場合のタイミングテーブル５０の参照箇所の説明図である。図９は、ハードマクロ４０及びバッファ４２の配置が図８の配置例である場合のタイミングテーブル５０の参照箇所の説明図である。
【００６５】
図５、図７及び図９に示すタイミングテーブル５０の行パラメータは、クロックバッファ４３から入力される信号の波形なまりの影響の度合いを示している。具体的には、クロックバッファ４３の位置及び配線４５の長さ等とタイミングテーブル５０の行パラメータとは対応しており、クロックバッファ４３の位置及び配線４５の長さ等に応じて、タイミングテーブル５０の行パラメータが参照される。タイミングテーブル５０の上段の行パラメータが参照された場合、下段の行パラメータよりも波形なまりの影響が少なく、急峻な波形がクロックバッファ４３から入力されることを意味している。
【００６６】
タイミングテーブル５０の列パラメータは、ハードマクロ４０の外部端子４１が入力端子である場合、バッファ４２から入力される信号の波形なまりの影響の度合いを示している。また、タイミングテーブル５０の列パラメータは、ハードマクロ４０の外部端子４１が出力端子である場合、出力端子の外部容量の影響の度合いを示している。具体的には、バッファ４２の位置及び配線４５の長さ等とタイミングテーブル５０の列パラメータとは対応しており、バッファ４２の位置及び配線４５の長さ等に応じて、タイミングテーブル５０の列パラメータが参照される。外部端子４１が入力端子である場合において、左側の列パラメータが参照されると、右側の列パラメータよりも波形なまりの影響が少なく、急峻な波形がバッファ４２から入力されることを意味している。また、外部端子４１が出力端子である場合において、左側の列パラメータが参照されると、右側の列パラメータより
も外部容量の影響が少ないことを意味している。
【００６７】
図４及び図５について説明する。図４では、バッファ４２Ｂ及びクロックバッファ４３は、ハードマクロ４０の外部端子４１に対して近接して配置されているが、バッファ４２Ａ、４２Ｃ、４２Ｄ及び４２Ｅは、ハードマクロ４０の外部端子４１に対して近接して配置されていない。図４に示す配置は、バッファ４２をハードマクロ４０の外部端子４１に近接して配置するというフロアプランを使用しない場合に起こり得る。
【００６８】
図４では、クロックバッファ４３はハードマクロ４０の外部端子４１に近接して配置されているので、図５に示すタイミングテーブル５０では、最上段の行パラメータが参照される。そして、バッファ４２の位置及び配線４５の長さ等に応じて、図５のタイミングテーブル５０の列パラメータが参照され、入力端子又は出力端子に対するタイミング規格が決定される。
【００６９】
例えば、ＬＳＩチップの設計において、図４のようにハードマクロ４０及びバッファ４２が配置されている場合、図５のタイミングテーブル５０のフィールド１Ａ、１Ｂ、１Ｃ、１Ｄ及び１Ｅに記述されているタイミング規格が参照される。
【００７０】
図６及び図７について説明する。図６では、クロックバッファ４３及びバッファ４２Ａ、４２Ｂ、４２Ｃ、４２Ｄ及び４２Ｅは、ハードマクロ４０の外部端子４１に対して近接配置されていない。図６に示す配置は、クロックバッファ４３及びバッファ４２をハードマクロ４０の外部端子４１に近接して配置するというフロアプランを使用しない場合に起こり得る。
【００７１】
図６では、クロックバッファ４３は、ハードマクロ４０の外部端子４１に対して最も遠くに配置されているので、図７に示すタイミングテーブル５０では、最下段の行パラメータが参照される。そして、バッファ４２の位置及び配線４５の長さ等に応じて、図７のタイミングテーブル５０の列パラメータが参照され、入力端子又は出力端子に対するタイミング規格が決定される。
【００７２】
図６では、バッファ４２及びクロックバッファ４３は、ハードマクロ４０の外部端子４１に対して近接して配置されていないため、配線４５が長くなり配線遅延による影響を受けやすい。したがって、図７に示すタイミングテーブル５０では、最下段の行パラメータ及び行パラメータＣ、Ｄ、Ｅを参照することによってタイミング規格が決定される。例えば、ＬＳＩチップの設計において、図６のようにハードマクロ４０及びバッファ４２が配置される場合、図７のフィールド５Ｃ、５Ｄ及び５Ｅに記述されているタイミング規格が参照される。
【００７３】
図８及び図９について説明する。図８では、バッファ４２及びクロックバッファ４３は、ハードマクロ４０の外部端子４１に対して近接配置されている。図８の配置は、バッファ４２及びクロックバッファ４３をハードマクロ４０の外部端子４１に近接して配置するというフロアプランを使用して配置された場合である。
【００７４】
図８では、クロックバッファ４３は、ハードマクロ４０の外部端子４１に対して近接して配置されているので、図９に示すタイミングテーブル５０では、最上段の行パラメータが参照される。そして、バッファ４２の位置及び配線４５の長さ等に応じて、図９のタイミングテーブル５０の列パラメータが参照され、入力端子又は出力端子に対するタイミング規格が決定される。
【００７５】
図８では、バッファ４２及びクロックバッファ４３は、ハードマクロ４０の外部端子４
１に対して近接して配置されているため、配線４５が短くなり配線遅延による影響を受けにくい。したがって、図９に示すタイミングテーブル５０では、最上段の行パラメータ及び列パラメータＡを参照することによってタイミング規格が決定される。例えば、ＬＳＩチップの設計において、図８のようにハードマクロ４０及びバッファ４２が配置される場合、図９のタイミングテーブル５０のフィールド１Ａに記述されているタイミング規格が参照される。
【００７６】
本支援設計装置は、ハードマクロ４０の外部端子４１に対してバッファ４２が近接配置された状態を想定して、ハードマクロタイミングライブラリを作成する。すなわち、本支援設計装置は、ハードマクロ４０の外部端子４１に対してバッファ４２が近接配置されたフロアプランを使用することにより、ハードマクロ４０及びバッファ４２の配置が行われた状態を想定して、ハードマクロタイミングライブラリを作成する。
【００７７】
例えば、図８の配置状態を想定して、ハードマクロタイミングライブラリを作成する。上述のように、ＬＳＩチップの設計において、図８のようにハードマクロ４０及びバッファ４２が配置される場合、図９のタイミングテーブル５０のフィールド１Ａに記述されているタイミング規格が参照される。
【００７８】
そこで、本支援設計装置は、ＬＳＩチップの設計で参照されるタイミング規格に絞って、ハードマクロタイミングライブラリを作成する。具体的には、本支援設計装置は、ＬＳＩチップの設計で参照されるタイミング規格のみをタイミングテーブル５０に記述することによりハードマクロタイミングライブラリを作成する。これにより、ハードマクロライブラリの作成及び検証の工数を削減することができる。
【００７９】
そして、タイミング規格を絞る事でタイミングテーブル５０に記述するタイミング規格のデータ量が少なくなり、ハードマクロタイミングライブラリのファイルサイズ（データ量）を小さくすることができる。
【００８０】
また、図８の配置状態であっても、外部端子４１ごとに外部容量が異なる場合がある。この場合には、外部端子４１ごとに異なる外部容量に応じて、タイミングテーブル５０のタイミング規格の参照箇所を増やせばよい。そして、図９のタイミングテーブル５０において参照される可能性が低いタイミング規格を削減することにより、タイミングライブラリのデータ量を増やすことなく、外部端子４１ごとに異なる外部容量に応じたタイミングテーブル５０を作成することができる。
【００８１】
次に、ネットリスト作成部１８によって作成されるラッパーモジュール６０のネットリストについて説明する。図１０に、ラッパーモジュール６０のネットリストの一例を示す。図１１に、図１０のラッパーモジュール６０のネットリストに記述されるラッパーモジュール６０の概念図を示す。図１１のラッパーモジュール６０は、ハードマクロ４０が有する外部端子４１Ａ、４１Ｂ、４１Ｃ、４１Ｄに対応する外部端子６１Ａ、６１Ｂ、６１Ｃ、６１Ｄを備える。そして、ラッパーモジュール６０は、外部端子４１Ａ、４１Ｂ、４１Ｃ、４１Ｄと、外部端子６１Ａ、６１Ｂ、６１Ｃ、６１Ｄとをそれぞれ接続する引き付け配置用のバッファモジュール６２を備える。なお、以下において、外部端子４１Ａ、４１Ｂ、４１Ｃ、４１Ｄを総称する場合には外部端子４１といい、外部端子６１Ａ、６１Ｂ、６１Ｃ、６１Ｄを総称する場合には外部端子６１という。
【００８２】
図１０のラッパーモジュール６０のネットリストの行１には、「module Wrapper(A,B,C,D)」が記述されている。これは、トップモジュール名として、Wrapperを定義しており、ラッパーモジュール６０の外部端子６１がＡ、Ｂ、Ｃ、Ｄという名前であることを示している。
【００８３】
図１０のラッパーモジュール６０のネットリストの行３−６には「input A;」、「input B;」、「output C;」、「output D;」が記述されている。これは、ラッパーモジュール６０の外部端子６１の入出力定義である。すなわち、図１０のラッパーモジュール６０のネットリストでは、input A及びinput Bが入力端子であり、output C及びoutput Dが出力端子であることを定義している。
【００８４】
図１０のラッパーモジュール６０のネットリストの行８には、「wire In#A, In#B, Out#C, Out#D;」が記述されている。これは、ラッパーモジュール６０内部の接続情報である。この例では、「In#A」、「In#B」、「Out#C」、「Out#D」の４つのネット接続情報が定義されている。
【００８５】
図１０のラッパーモジュール６０のネットリストの行１０には、「HARDMACRO hardmacro (.A(In#A), .B(In#B), .C(Out#C), .D(Out#D));」が記述されている。これにより、ラ
ッパーモジュール６０内に存在するサブモジュールとして、HARDMACRO（ハードマクロ４
０）が定義されることになる。そして、HARDMACROというモジュール名のマクロを固有名
としてhardmacroと名付け、HARDMACROの端子と何が接続されているかを定義している。すなわち、HARDMACROの端子ＡにはIn#Aというネットが接続され、HARDMACROの端子ＢにはIn#Bというネットが接続され、HARDMACROの端子ＣにはIn#Cというネットが接続され、HARDMACROの端子ＤにはIn#Dというネットが接続されることが定義されている。図１１では、外部端子４１Ａには配線４５Ａが接続され、外部端子４１Ｂには配線４５Ｂが接続され、外部端子４１Ｃには配線４５Ｃが接続され、外部端子４１Ｄには配線４５Ｄが接続されていることを示している。
【００８６】
図１０のラッパーモジュール６０のネットリストの行１２−１４には、「HIKITSUKE#BUF hikitsuke#buf(.In#Buf#A(A), .Out#Buf#A(In#A), .In#Buf#B(B), .Out#Buf#B(In#B), .In#Buf#C(Out#C), .Out#Buf#C(C). .In#Buf#D(Out#D), .Out#Buf#D(D))」が記述されて
いる。これにより、ラッパーモジュール６０内に存在するサブモジュールとして、HIKITSUKE#BUF（バッファモジュール６２）が定義されることになる。そして、HIKITSUKE#BUFというモジュール名のマクロを固有名としてhikitsuke#bufと名付け、HIKITSUKE#BUFと何が接続されているかを定義している。
【００８７】
図１０のラッパーモジュール６０のネットリストの行１９−２０には、「module HIKITSUKE#BUF (In#Buf#A, Out#Buf#A, In#Buf#B, Out#Buf#B, In#Buf#C, Out#Buf#C, In#Buf#D, Out#Buf#D);」が記述されている。これは、ラッパーモジュール６０内に存在するサブモジュールとしてのHIKITSUKE#BUF及びHIKITSUKE#BUFの端子を定義している。
【００８８】
図１０のラッパーモジュール６０のネットリストの行２２−２９には、「input In#Buf#A;」、「input In#Buf#B;」、「input In#Buf#C;」、「input In#Buf#D;」、「output Out#Buf#A;」、「output Out#Buf#B;」、「output Out#Buf#C;」、「output Out#Buf#D;」が記述されている。これは、HIKITSUKE#BUFの端子の入出力定義である。すなわち、図１
０のラッパーモジュール６０のネットリストでは、「In#Buf#A」、「In#Buf#B」、「In#Buf#C」及び「In#Buf#D」が入力端子であり、「Out#Buf#A」、「Out#Buf#B」、「Out#Buf#C」及び「Out#Buf#D」が出力端子であることを定義している。図１１では、外部端子６３Ａ、外部端子６３Ｂ、外部端子６３Ｃ及び外部端子６３Ｄがバッファモジュール６２の入力端子であることが示され、外部端子６４Ａ、外部端子６４Ｂ、外部端子６４Ｃ及び外部端子６４Ｄがバッファモジュール６２の出力端子であることが示されている。
【００８９】
図１０のラッパーモジュール６０のネットリストの行３１には、「BUFFER buf#A (.A(In#Buf#A), .Y(Out#Buf#A));」と記述されている。これは、BUFFERという名前のユニット
セルを固有名としてbuf#Aと名付け、BUFFERの端子に何が接続されているかを定義してい
る。すなわち、「BUFFER（buf#A）」の端子Ａには「In#Buf#A」が接続され、「BUFFER（buf#A）」の端子Ｙには「Out#Buf#A」が接続されることが定義されている。図１１では、
バッファ４２Ａの端子Ａには入力端子６３Ａが接続され、バッファ４２Ａの端子Ｙには出力端子６４Ａが接続されていることが示されている。また、図１０のラッパーモジュール６０のネットリストの行３２−３４についても同様である。
【００９０】
図１０のラッパーモジュール６０のネットリストの行１９−３４には、HIKITSUKE#BUF
の内部構造が定義（記述）されている。一方、図１０のラッパーモジュール６０のネットリストの行１０では、HARDMACROが呼び出されているが、HARDMACROの内部構造は定義（記述）されていない。したがって、ハードマクロ４０及びバッファ４２のレイアウトデータを作成する際にハードマクロライブラリを使用した場合、ブラックボックス状態のレイアウトデータが作成される。一方、ハードマクロ４０及びバッファ４２のレイアウトデータを作成する際にハードマクロレイアウトデータを使用した場合、ホワイトボックス状態のレイアウトデータが作成される。
【００９１】
次に、レイアウト部１３によって作成されるラッパーモジュール６０のレイアウトデータについて説明する。図１２は、ラッパーモジュール６０のレイアウトデータの一例である。図１２に示すラッパーモジュール６０のレイアウトデータには、ハードマクロ４０及びバッファ４２が配置されている。ハードマクロ４０の形状は、矩形となっており、ハードマクロ４０の一辺に外部端子辺４４が設けられている。なお、本明細書では、矩形とは、長方形および正方形を含む直角四辺形を指すものとする。
【００９２】
図１２に示すラッパーモジュール６０のレイアウトデータには、バッファ４２を配置するためのバッファ配置領域（ユニットセル配置領域ともいう）７０が設けられており、バッファ配置領域７０内にバッファ４２が配置されている。また、ラッパーモジュール６０のレイアウトデータには、ハードマクロ４０が配置される領域（回路ブロック配置領域ともいう）が設けられ、そこにハードマクロ４０が設けられる。バッファ配置領域７０内には、バッファ４２に隣接するようにセル用の電源７１が設けられている。図１２に示すように、バッファ配置領域７０はハードマクロ４０に対して近接して設けられている。したがって、バッファ４２は、ハードマクロ４０の外部端子辺４４に対して近接配置された状態となっている。ハードマクロ４０の外部端子辺４４の任意の位置に外部端子４１を設けることが可能である。
【００９３】
また、外部端子４１とバッファ４２とが配線４５によって接続されている。そして、図１２に示すように、バッファ配置領域７０は、外部端子４１に接続される配線４５の伸長方向に配置されている。このように、バッファ配置領域７０の横幅を、ハードマクロ４０に設けられた外部端子辺４４の長さに応じて設けてもよい。また、バッファ配置領域７０の横幅を、ハードマクロ４０に設けられた外部端子辺４４の長さよりも短くするようにしてもよい。さらに、バッファ配置領域７０の横幅を、ハードマクロ４０に設けられた外部端子辺４４の長さよりも長くするようにしてもよい。
【００９４】
なお、ハードマクロ４０の形状は非矩形であってもよい。ハードマクロ４０の形状が非矩形の場合、ハードマクロ４０の形状が矩形の場合と同様に、ハードマクロ４０に設けられた外部端子辺４４に対してバッファ配置領域７０を設けるようにすればよい。すなわち、ハードマクロ４０の形状に合わせてバッファ配置領域７０を設けるようにすればよい。
【００９５】
図１３は、ラッパーモジュール６０のレイアウトデータの一例である。図１３に示すラッパーモジュール６０のレイアウトデータには、ハードマクロ４０及びバッファ４２が配置されている。ハードマクロ４０の形状は、矩形となっており、ハードマクロ４０の四辺
に外部端子辺４４が設けられている。
【００９６】
図１３に示すラッパーモジュール６０のレイアウトデータでは、ハードマクロ４０の四辺に対してバッファ配置領域７０が設けられており、バッファ配置領域７０内にバッファ４２が配置されている。すなわち、図１３に示すラッパーモジュール６０のレイアウトデータは、ハードマクロ４０の四辺に設けられている外部端子辺４４すべてに対してバッファ配置領域７０が設けられている。バッファ配置領域７０内には、バッファ４２に隣接するようにセル用の電源７１が設けられている。なお、ラッパーモジュール６０のレイアウトデータに、ハードマクロ４０が配置される領域が設けられていることは、図１２と同様である。
【００９７】
図１３に示すように、バッファ配置領域７０はハードマクロ４０に対して近接して設けられている。したがって、バッファ４２は、ハードマクロ４０の外部端子辺４４に対して近接配置された状態となっている。ハードマクロ４０の外部端子辺４４の任意の位置に外部端子４１を設けることが可能である。また、外部端子４１とバッファ４２とが配線４５によって接続されている。
【００９８】
なお、ハードマクロ４０の形状は非矩形であってもよい。ハードマクロ４０の形状が非矩形の場合、ハードマクロ４０の形状が矩形の場合と同様に、ハードマクロ４０に設けられた外部端子辺４４に対してバッファ配置領域７０を設けるようにすればよい。すなわち、ハードマクロ４０の形状に合わせてバッファ配置領域７０を設けるようにすればよい。
【００９９】
〈ラッパーモジュール６０のパターン例の説明〉
ＬＳＩチップの設計において、ラッパーモジュール６０をどの場所にどの方向で配置するかは、ＬＳＩチップの設計者が決定する。そこで、ＬＳＩチップの設計の際、ラッパーモジュール６０の配置場所や配置方向に制限が発生しないようにするため、予めラッパーモジュール６０のパターンを複数用意しておく。図１４は、ラッパーモジュール６０のパターン例についての説明図である。
【０１００】
図１４に示すラッパーモジュール６０Ａ〜６０Ｄは、それぞれバッファ４２Ａ〜４２Ｇを備えている。バッファ４２Ａ〜４２Ｇは、ハードマクロ４０の外部端子辺４４に対して近接配置された状態となっている。図１４に示すラッパーモジュール６０Ａとラッパーモジュール６０Ｂとは、線Ａを軸として対象となっている。図１４に示すラッパーモジュール６０Ａとラッパーモジュール６０Ｃとは、線Ｂを軸として対象となっている。図１４に示すラッパーモジュール６０Ａとラッパーモジュール６０Ｄとは、１８０度の回転対称となっている。
【０１０１】
また、図１５に示すラッパーモジュール６０Ｅ〜６０Ｈは、それぞれバッファ４２Ｈ〜４２Ｎを備えている。バッファ４２Ｈ〜４２Ｎは、ハードマクロ４０の外部端子辺４４に対して近接配置された状態となっている。図１５に示すラッパーモジュール６０Ｅとラッパーモジュール６０Ｆとは、線Ａを軸として対象となっている。図１５に示すラッパーモジュール６０Ｅとラッパーモジュール６０Ｇとは、線Ｂを軸として対象となっている。図１５に示すラッパーモジュール６０Ｅとラッパーモジュール６０Ｈとは、１８０度の回転対称となっている。
【０１０２】
〈ラッパーモジュール６０内のバッファ配置領域７０の利用〉
ＬＳＩチップの設計におけるラッパーモジュール６０内のバッファ配置領域７０の利用について、図１６及び図１７を参照して説明する。図１６及び図１７は、ＬＳＩチップ上にラッパーモジュール６０が配置された場合の説明図である。図１６及び図１７に示すラッパーモジュール６０は、外部端子辺４４がハードマクロ４０の上辺に設けられている。
太線で囲まれているバッファ配置領域７０がハードマクロ４０の外部端子辺４４に対して近接配置されている。また、図１６及び図１７では、点線で囲まれた範囲がＬＳＩチップのロジック領域８０であり、ＬＳＩチップのロジック（論理回路）を配置することが可能な領域である。
【０１０３】
ラッパーモジュール６０内のバッファ配置領域７０に配置されるバッファ４２の内部構造は、ラッパーモジュール６０のレイアウトデータに記述されている。そのため、ラッパーモジュール６０内のバッファ配置領域７０は、ＬＳＩチップ上で階層展開が可能である。図１６のバッファ配置領域７０は階層展開前であり、図１７のバッファ配置領域７０は階層展開後である。図１７のバッファ配置領域７０内にはバッファ４２が配置されていない箇所があり、バッファ配置領域７０内のバッファ４２が配置されていない空き領域には、ＬＳＩチップのロジックを配置することが可能である。したがって、ラッパーモジュール６０のバッファ配置領域７０を階層展開することにより、バッファ配置領域７０内の空き領域の有効活用が可能となる。
【０１０４】
〈ハードマクロ４０の外部端子４１とバッファ４２との接続配線例〉
上述したように、本設計支援装置によって作成されるラッパーモジュール６０のレイアウトデータには、ハードマクロ４０の外部端子４１とバッファ４２とを接続する配線４５が設けられている。さらに、本設計支援装置は、ハードマクロ４０の外部端子４１とバッファ４２とを接続する配線４５が設けられていないラッパーモジュール６０のレイアウトデータを作成してもよい。ハードマクロ４０の外部端子４１とバッファ４２とを接続する配線４５が設けられていないラッパーモジュール６０のレイアウトデータを使用する場合、ＬＳＩチップ上の状況に応じて、ＬＳＩチップ設計者はその時の最短経路となるように配線４５を設けることが可能である。
【０１０５】
図１８は、ハードマクロ４０の外部端子４１とバッファ４２とを接続する場合のパターンを示す図である。図１８の例では、ＬＳＩチップ設計者は、ハードマクロ４０の外部端子４１とバッファ４２とを接続する配線４５が設けられていないラッパーモジュール６０のレイアウトデータを使用している。
【０１０６】
図１８において、バッファ４２は、ハードマクロ４０の外部端子４１に対して近接配置されている。図１８の例では、配線経路パターンＡ及び配線経路パターンＢの２種類が存在している。このような配線経路パターンが存在する場合、ＬＳＩチップ設計者は、ＬＳＩチップの設計状況に合わせて、配線経路パターンＡ又は配線経路パターンＢの選択が可能となる。
【０１０７】
また、ハードマクロ４０の外部端子４１とバッファ４２とを接続する配線４５が設けられているラッパーモジュール６０のレイアウトデータを使用する場合、ＬＳＩチップ上の状況に応じて、ＬＳＩチップの設計者は、配線経路パターンを変更することも可能である。例えば、図１８に示す配線経路パターンＡによる配線４５が設けられたラッパーモジュール６０のレイアウトデータを使用してＬＳＩチップの設計が行われる場合、ＬＳＩチップの設計者は、配線経路パターンＢによる配線４５に変更することができる。これは、ＬＳＩチップの設計者が何らかの理由（ＬＳＩチップの他の配線を優先させたい等の理由）で、配線経路パターンＢによる配線４５に切り替えたい場合に有効である。
【０１０８】
〈ラッパーモジュール６０のレイアウトデータの応用例〉
通常、汎用マクロとしてハードマクロ４０を設計する際には、ＬＳＩチップの設計状況を確認できないため、動作不具合の原因となる電圧降下の影響を見積もることが困難である。このような場合、ハードマクロ４０への電圧降下による影響を抑制するレイアウトデータの作成が望まれる。
【０１０９】
図１９に、ハードマクロ４０の外周に電源配線（強化電源リングともいう）９０を設けたラッパーモジュール６０のレイアウトデータを示す。図１９に示すように、ハードマクロ４０を囲むように電源配線９０が設けられており、ハードマクロ４０に対する電圧源が強化されている。また、図１９に示すハードマクロ４０及びバッファ４２は、図１２で説明したハードマクロ４０及びバッファ４２と同様の構成である。このように、予めハードマクロ４０の外周に電源配線９０を設けたレイアウトデータを作成することにより、ハードマクロ４０への電圧降下による影響を抑制することが可能である。
【０１１０】
なお、図１０から図１９では、クロックバッファ４３については言及していないが、ラッパーモジュール６０はクロックバッファ４３を備えていてもよい。すなわち、クロックバッファ４３をハードマクロ４０の外部端子４１に対して近接配置させてもよい。この場合、バッファ４２のうちのいずれかをクロックバッファ４３に替えてもよい。
【０１１１】
〈コンピュータ読み取り可能な記録媒体〉
コンピュータに上記いずれかの機能を実現させるプログラムをコンピュータが読み取り可能な記録媒体に記録することができる。そして、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ＤＡＴ、８ｍｍテープ、メモリカード等がある。また、コンピュータに固定された記録媒体としてハードディスクやＲＯＭ等がある。
【０１１２】
以下に本発明の諸態様を付記としてまとめる。
（付記１）
コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法であって、
コンピュータが、
回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成するステップと、
前記回路ブロック及び前記回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成するステップと、
前記ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、前記回路ブロックライブラリ及び前記ネットリストを使用して、前記回路ブロックが配置される回路ブロック配置領域と前記ユニットセルが配置されるユニットセル配置領域とが所定状態で設けられている前記モジュール回路のレイアウトデータを作成するステップと、を実行し、
前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが所定状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている半導体集積回路の設計データの作成方法。
（付記２）
前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが近接した状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている付記１に記載の半導体集積回路の設計データの作成方法。
（付記３）
前記ユニットセル配置領域は、前記回路ブロック配置領域の周囲に設けられている付記１または２に記載の半導体集積回路の設計データの作成方法。
（付記４）
前記レイアウトデータは、前記回路ブロックに電源を供給するための電源配線領域が更に設けられている付記１から３の何れか一項に記載の半導体集積回路の設計データの作成方法。
（付記５）
前記レイアウトデータは、前記回路ブロックと前記ユニットセルとを結ぶ配線が更に設けられ、
前記ユニットセル配置領域は、前記配線の伸長方向に設けられている付記１から４の何れか一項に記載の半導体集積回路の設計データの作成方法。
（付記６）
前記ユニットセル配置領域は、展開可能である付記１から５の何れか一項に記載の半導体集積回路の設計データの作成方法。
（付記７）
前記ユニットセル配置領域は、前記回路ブロックの形状及び端子位置に応じて設けられている付記１から６の何れか一項に記載の半導体集積回路の設計データの作成方法。
【図面の簡単な説明】
【０１１３】
【図１】本設計支援装置を実現するためのコンピュータのハードウェア構成を示す図である。
【図２】本設計支援装置の機能ブロック図である。
【図３】本設計支援装置が実行する提供データ作成処理の流れを示すフローである。
【図４】ハードマクロ及びバッファの配置例を示す図である。
【図５】ハードマクロのタイミングライブラリが参照される場合におけるタイミングテーブルの参照箇所の説明図である。
【図６】ハードマクロ及びバッファの配置例を示す図である。
【図７】ハードマクロのタイミングライブラリが参照される場合におけるタイミングテーブルの参照箇所の説明図である。
【図８】ハードマクロ及びバッファの配置例を示す図である。
【図９】ハードマクロのタイミングライブラリが参照される場合におけるタイミングテーブルの参照箇所の説明図である。
【図１０】ラッパーモジュールのネットリストの例を示す図である。
【図１１】ラッパーモジュールのネットリストに記述されるラッパーモジュールの概念図である。
【図１２】ラッパーモジュールのレイアウトデータの例を示す図である。
【図１３】ラッパーモジュールのレイアウトデータの例を示す図である。
【図１４】ラッパーモジュールのパターン例についての説明図である。
【図１５】ラッパーモジュールのパターン例についての説明図である。
【図１６】ＬＳＩチップ上におけるラッパーモジュールの配置についての説明図である。
【図１７】ＬＳＩチップ上におけるラッパーモジュールの配置についての説明図である。
【図１８】ハードマクロの外部端子とバッファとを接続する場合のパターンを示す図である。
【図１９】ハードマクロの外周に電源配線を設けたラッパーモジュールのレイアウトデータを示す図である。
【符号の説明】
【０１１４】
１    コンピュータ
２    ＣＰＵ
３    メモリ
４    インターフェース
５    ハードディスク駆動装置
６    可搬媒体駆動装置
７    入力装置
８    表示装置
１１  操作部
１２  格納部
１３  レイアウト部
１４  検証部
１５  ライブラリ作成部
１６  ライブラリ検証部
１７  外部端子抽出部
１８  ネットリスト作成部
１９  タイミング規格抽出部
２０  タイミング規格算出部
２１  タイミング規格比較部
３０  ネットリストデータベース
３１  ライブラリデータベース
３２  レイアウトデータベース
【図１】
2009237904.tif 000003
【図２】
2009237904.tif 000004
【図３】
2009237904.tif 000005
【図４】
2009237904.tif 000006
【図５】
2009237904.tif 000007
【図６】
2009237904.tif 000008
【図７】
2009237904.tif 000009
【図８】
2009237904.tif 000010
【図９】
2009237904.tif 000011
【図１０】
2009237904.tif 000012
【図１１】
2009237904.tif 000013
【図１２】
2009237904.tif 000014
【図１３】
2009237904.tif 000015
【図１４】
2009237904.tif 000016
【図１５】
2009237904.tif 000017
【図１６】
2009237904.tif 000018
【図１７】
2009237904.tif 000019
【図１８】
2009237904.tif 000020
【図１９】
2009237904.tif 000021