【手続補正書】
【提出日】平成17年7月15日(2005.7.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】      明細書
【発明の名称】  マクロブロック、および記録媒体
【特許請求の範囲】
【請求項１】  当該マクロブロックが果たすべき機能を実現するための少なくとも１つのセルからなり、半導体集積回路をレイアウト設計する際の設計の単位となるマクロブロックにおいて、
前記マクロブロックを通過する配線のための通過配線用セルを、そのマクロブロック内の随所にあらかじめ分散して挿入しておくことを特徴とするマクロブロック。
【請求項２】  通過配線用セルとして、バッファ回路をマクロブロック内の随所にあらかじめ分散挿入しておくことを特徴とする請求項１記載のマクロブロック。
【請求項３】  通過配線用セルとして、インバータをマクロブロック内の随所にあらかじめ分散挿入しておくことを特徴とする請求項１記載のマクロブロック。
【請求項４】  マクロブロックを通過する配線がクロックネットである場合に、通過配線用セルとして、クロック制御セルを前記マクロブロック内の随所にあらかじめ分散して挿入しておくことを特徴とする請求項１記載のマクロブロック。
【請求項５】  通過配線用セルとして、ラッチ回路をマクロブロック内の随所にあらかじめ分散挿入しておくことを特徴とする請求項１記載のマクロブロック。
【請求項６】  通過配線用セルとして、フリップフロップをマクロブロック内の随所にあらかじめ分散挿入しておくことを特徴とする請求項１記載のマクロブロック。
【請求項７】  通過配線用セルとして、バッファ回路、インバータ、クロック制御セル、ラッチ回路、フリップフロップ中の少なくとも２種類を、マクロブロック内の随所にあらかじめ分散挿入しておくことを特徴とする請求項１記載のマクロブロック。
【請求項８】  当該マクロブロック内にあらかじめ、通過配線用セルに接続する接続配線を規定しておくことを特徴とする、請求項１から請求項７の内のいずれか１項記載のマクロブロック。
【請求項９】  当該マクロブロック内にあらかじめ、通過配線用セルに接続する接続配線のための接続配線経路を規定しておくことを特徴とする、請求項１から請求項７の内のいずれか１項記載のマクロブロック。
【請求項１０】  マクロブロックそのものの情報とともに、当該マクロブロックに挿入される通過配線用セルの情報を含んだ、半導体集積回路の設計に用いられるＩＰコアが記録されている、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は半導体集積回路のレイアウト設計の単位となるマクロブロック、そのマクロブロック情報を含む知的財産（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ；以下ＩＰという）を記録した記録媒体、およびそのマクロブロックを用いてレイアウト設計された半導体集積回路に関するものである。
【０００２】
【従来の技術】
従来のマクロブロックは、当該マクロブロックが果たすべき機能を実現するセル群から構成され、レイアウトの階層設計においては、半導体集積回路を構成する各マクロブロックを配置し、マクロブロックに関与しないマクロセル（もしくはマクロブロック）同士の接続は、そのマクロブロックを迂回させ、またはそのマクロブロックの上を通過させていた。
【０００３】
図１０はそのような従来のマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。図において、１０１はその上位レイアウト階層であり、１０２は従来のマクロブロックである。１０３はこのマクロブロック１０２に接続されないネットを持つマクロセルまたはマクロブロック（以下マクロセルという）である。１０４はネットを駆動するマクロセル１０３の出力ポートであり、１０５は駆動されるマクロセル１０３の入力ポートである。１０６は出力ポート１０４と入力ポート１０５の間の遅延などを改善するために挿入されたバッファ回路であり、１０７は駆動側のマクロセル１０３の出力ポート１０４とバッファ回路１０６、およびバッファ回路１０６と被駆動側のマクロセル１０３の入力ポート１０５を接続している配線である。
【０００４】
次に半導体集積回路のレイアウト設計について説明する。
従来のマクロブロック１０２を用いて、上位でレイアウトする場合、各マクロセル１０３およびマクロブロック１０２を、上位レイアウト階層１０１に配置する。ここで、マクロブロック１０２は内部に、当該マクロブロック１０２に関与しないマクロセル１０３間の遅延等を改善するためのバッファ回路１０６を備えてないため、当該バッファ回路１０６はマクロブロック１０２外部の、上位レイアウト階層１０１上に別途配置される。従って、マクロブロック１０２に接続されないネットを持った、駆動側のマクロセル１０３の出力ポート１０４と被駆動側のマクロセル１０３の入力ポート１０５は配線１０７によって、このバッファ回路１０６経由で当該マクロブロック１０２を迂回して接続される。
【０００５】
マクロブロック１０２内にはバッファ回路１０６が置かれていないため、このマクロブロック１０２に接続されないネットを持った、駆動側のマクロセル１０３の出力ポート１０４と被駆動側のマクロセル１０３の入力ポート１０５との間を接続する配線１０７は、当該マクロブロック１０２を迂回している。このように、マクロブロック１０２に関与しない駆動側と被駆動側のマクロセル１０３同士の接続は、配線１０７が当該マクロブロック１０２を迂回させていた。
【０００６】
ここで、このような従来のマクロブロックに関連する事項が記載された文献としては、例えば、特開平１１−１４５２９２号公報などがある。
【０００７】
【発明が解決しようとする課題】
従来のマクロブロックは以上のように構成されているので、レイアウトの階層設計においては、マクロブロック１０２に関与しないマクロセル１０３同士の接続に際して、遅延改善などのためにこの配線１０７の途中にバッファ回路１０６等の挿入が必要になった場合、そのためのバッファ回路がマクロブロック１０２内に配置されていないため、マクロブロック１０２の外部にバッファ回路１０６を配置して、駆動側と被駆動側のマクロセル１０３間を接続する必要があり、マクロブロック１０２を挟んで配置されたマクロセル１０３間では配線１０７の迂回が発生して配線１０７の長さが長くなり、特に、トップのレイアウト設計においてはその傾向が著しくなるという課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、マクロブロックを挟んで配置したマクロセル間の配線の長さを短縮し、それを用いた半導体集積回路の高速化、低消費電力化、小面積化、さらには配置配線の効率化が可能なマクロブロックを得ることを目的とする。
【０００９】
また、この発明は上記マクロブロックのＩＰを記録した記録媒体を得ることを目的とする。
【００１０】
さらに、この発明は上記マクロブロックを用いた半導体集積回路を得ることを目的とする。
【００１１】
【課題を解決するための手段】
この発明に係るマクロブロックは、あらかじめその内部の随所に、マクロブロックを通過する配線のための通過配線用セルを分散挿入しておくようにしたものである。
【００１２】
この発明に係るマクロブロックは、バッファ回路を通過配線用セルとして分散挿入しておくようにしたものである。
【００１３】
この発明に係るマクロブロックは、インバータを通過配線用セルとして分散挿入しておくようにしたものである。
【００１４】
この発明に係るマクロブロックは、クロック制御セルを、マクロブロックを通過する配線がクロックネットである場合の通過配線用セルとして、分散挿入しておくようにしたものである。
【００１５】
この発明に係るマクロブロックは、ラッチ回路を通過配線用セルとして分散挿入しておくようにしたものである。
【００１６】
この発明に係るマクロブロックは、フリップフロップを通過配線用セルとして分散挿入しておくようにしたものである。
【００１７】
この発明に係るマクロブロックは、バッファ回路、インバータ、クロック制御セル、ラッチ回路、フリップフロップ中の少なくとも２種類を、通過配線用セルとして分散挿入しておくようにしたものである。
【００１８】
この発明に係るマクロブロックは、当該マクロブロック内に、通過配線用セルに接続する接続配線を、あらかじめ規定しておくようにしたものである。
【００１９】
この発明に係るマクロブロックは、当該マクロブロック内に、通過配線用セルに接続する接続配線のための接続配線経路を、あらかじめ規定しておくようにしたものである。
【００２０】
この発明に係る記録媒体は、当該マクロブロックに挿入される通過配線用セルの情報を含んだＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）をＩＰコアとして記録したものである。
【００２１】
【発明の実施の形態】
以下、この発明の実施の一形態について説明する。
実施の形態１．
図１はこの発明の実施の形態１によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図であり、この実施の形態のマクロブロックを用いて、上位でレイアウトする際に、挿入したバッファ回路を用いて配線接続している状態を表したものである。図において、２０１はその上位レイアウト階層であり、２０２はその上位レイアウト階層２０１上に配置された、この発明の実施の形態１によるマクロブロックである。なお、このマクロブロック２０２については、当該マクロブロック２０２が果たすべき機能を実現するセルの記載は省略されている。
【００２２】
２０３，２０４，２０５はこのマクロブロック２０２内に挿入された、当該マクロブロック２０２を通過する配線のための通過配線用セルとしてのバッファ回路であり、これらは図１上で上下／左右／中心といった、そのマクロブロック２０２内の随所にあらかじめ分散して挿入されている。すなわち、バッファ回路２０３はマクロブロック２０２の中心上寄りに配置されて、マクロブロック２０２を通過する配線のために使用されているものを、バッファ回路２０４はマクロブロック２０２の右下寄りに配置されて、マクロブロック２０２を通過する配線のために使用されているものをそれぞれ示している。また、バッファ回路２０５はマクロブロック２０２の左中心に配置されて、マクロブロック２０２を通過する配線のためには使用されなかったものを示している。
【００２３】
また、２０６はこの実施の形態によるマクロブロック２０２に接続されないネットを持つマクロセル、又はマクロブロック、又はＩ／Ｏピン、又はＩ／Ｏ  ＰＡＤなどのセル等（以下マクロセルという）である。２０７はネットを駆動するマクロセル２０６の出力ポートであり、２０８は駆動されるマクロセル２０６の入力ポートである。２０９は駆動側のマクロセル２０６の出力ポート２０７とマクロブロック２０２内のバッファ回路２０３，２０４の入力端子、およびマクロブロック２０２内のバッファ回路２０３，２０４の出力端子と被駆動側のマクロセル２０６の入力ポート２０８を接続している配線である。このようなバッファ回路２０３〜２０５が内部に挿入されたマクロブロック２０２により、駆動側のマクロセル２０６の出力ポート２０７を被駆動側のマクロセル２０６の入力ポート２０８に接続している配線２０９が、当該マクロブロック２０２を迂回することなしにそれら両者を接続することが可能となる。
【００２４】
図２はマクロブロック２０２の随所に挿入される、当該マクロブロック２０２を通過する配線のための通過配線用セルとしてのバッファ回路の配置位置を示した説明図である。図において、２１０，２１１，２１２，２１３，２１４，２１５は図１に符号２０３〜２０５を付したものと同一の、通過配線用セルとしてのバッファ回路であり、図１のマクロブロック２０２について示したものである。図１ではマクロブロック２０２に挿入されたバッファ回路の内のバッファ回路２０３〜２０５のみを記載したが、ここではそれらとともに、バッファ回路２１０〜２１５の配置についても記載している。なお、この通過配線用セルとしてのバッファ回路の挿入としては、上記図２に示した均等配置パターンのみではなく、デザインフロアプランに応じた種々の配置パターンをとるようにすることも可能である。
【００２５】
さらに、２１６，２１７は上位のレイアウト設計で、マクロブロック２０２内を通過すべき配線の配線アクセス方向を示す矢印であり、その矢印の向きによって配線アクセス方向を表している。ここで、１つまたは複数の矢印２１６からマクロブロック２０２内のバッファ回路２０３〜２０５，２１０〜２１５を経由して、１つまたは複数の矢印２１７に出力する配線が必要になることを示す。例えば、図２のように、左辺上側の矢印２１６から右辺下側の矢印２１７への接続が必要な場合、まず基本的な選択として、最短経路を通るようにバッファ回路を選択することができる。最短経路を通る場合でもバッファ回路２１０，２１２，２０４などの選択が可能であるが、この際、矢印２１６側の状態および矢印２１７側の状態を考慮することによりバッファ回路の選択を行うことができる。
【００２６】
つまり、矢印２１６側の容量などの負荷が小さいときに、矢印２１６側の駆動能力が高い場合や、矢印２１７側の容量などの負荷が大きい場合には、バッファ回路２０４を選択する。このバッファ回路２０４を選択することにより、出力側（矢印２１７側）の配線負荷が小さくなり、逆に入力側（矢印２１６側）の配線負荷が大きくなる。反対に、矢印２１６側の駆動能力が小さく、負荷を小さくしたい場合には、バッファ回路２１０を選択することで対処可能となる。負荷の大小をコントロールするため、典型的には均等に配置する場合、上下左右の各辺近辺、および中心付近にバッファ回路を複数配置する場合がある。
【００２７】
なお、上位のデザインフロアプラン上、例えば、上側からのアクセスがないと分かっているような場合には、上辺部付近へのバッファ回路の挿入を行わないこともある。また、マクロブロック２０２内の機能の性質上、当該マクロブロック２０２内の配線以外に通過して欲しくないような機能ブロック（セル）が存在する場合にも、その機能ブロックを配置している領域にはバッファ回路の挿入は行わない。
【００２８】
以上のように、この実施の形態１によれば、マクロブロック２０２内部の上下左右の各辺近辺および中心部付近などの随所に、このマクロブロック２０２を通過する配線のための通過配線用セルとしてのバッファ回路２０３〜２０５，２１０〜２１５を分散挿入しておくようにしたので、マクロブロック２０２に関与しないマクロセル２０６同士を、このバッファ回路２０３〜２０５，２１０〜２１５を介して配線２０９で接続することにより、マクロブロック２０２を挟んで配置された駆動側と被駆動側のマクロセル２０６間での配線２０９の迂回発生を防止できるため、配線の長さを短縮することが可能となるばかりか、バッファ回路２０３〜２０５，２１０〜２１５も適切な位置のものを使用できるため、遅延を短縮できて、回路の高速化が可能となるなどの効果が得られる。
【００２９】
また、バッファ回路２０３〜２０５，２１０〜２１５の挿入位置が多岐に渡るため、上位でバッファ回路２０３〜２０５，２１０〜２１５を選択する幅が広がり、マクロブロック２０２内の配線長も制御可能になるばかりか、配線長を短くすることができるため、当該配線２０９を駆動するマクロセル２０６の駆動能力も抑えることが可能となり、半導体集積回路の面積を削減することができると同時に、流れる電流量も減るため、消費電力の削減や、ホットエレクトロン、クロストークといったシグナルインテグリティの問題も軽減可能となり、さらに、冗長な配線が削減できることにより、他の配線が使用できる配線経路が確保可能となって配線効率が上がり、半導体集積回路の小面積化が可能になるなどの効果も得られる。
【００３０】
実施の形態２．
なお、上記実施の形態１では、マクロブロックを通過する配線のための通過配線用セルとして、バッファ回路をあらかじめマクロブロック内に分散して挿入しておいたものについて説明したが、通過配線用セルとしてインバータを分散挿入しておくようにしてもよい。図３はそのようなこの発明の実施の形態２によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図であり、この実施の形態のマクロブロックを用いて、上位でレイアウトする際に、挿入したインバータを使用して配線接続している状態を表したものである。図において、２０１は上位レイアウト階層、２０２はこの実施の形態２によるマクロブロック、２０６はマクロブロック２０２に接続されないネットを持つ、駆動側および被駆動側のマクロセル、又はマクロブロック、又はＩ／Ｏピン、又はＩ／Ｏ  ＰＡＤなどのセル等（マクロセル）、２０７，２０８はそれら各マクロセル２０６の出力ポートおよび入力ポートであり、これらは図１に同一符号を付して示した部分に相当するものである。
【００３１】
また、３０１，３０２はこのマクロブロック２０２内に、実施の形態１のバッファ回路２０３〜２０５，２１０〜２１５に代替して挿入された、当該マクロブロック２０２を通過する配線のための通過配線用セルとしてのインバータであり、インバータ３０１は上記マクロブロック２０２を通過する配線のために使用されているインバータを示し、インバータ３０２は上記配線のためには使用されなかったインバータを示している。これらのインバータ３０１，３０２も実施の形態１のバッファ回路２０３〜２０５，２１０〜２１５と同様に、図２上で上下／左右／中心といったそのマクロブロック２０２内の随所にあらかじめ分散して挿入されている。３０３は駆動側のマクロセル２０６の出力ポート２０７、インバータ３０１、被駆動側のマクロセル２０６の入力ポート２０８を接続する配線である。なお、このマクロブロック２０２においても、当該マクロブロック２０２が果たすべき機能を実現するセルの記載は省略されている。
【００３２】
このように、マクロブロック２０２内のインバータ３０１を経由する配線３０３にて、駆動側のマクロセル２０６の出力ポート２０７と被駆動側のマクロセル２０６の入力ポート２０８を接続することにより、マクロブロック２０２を挟んで配置された当該マクロブロック２０２に関与しない、駆動側と被駆動側のマクロセル２０６同士を接続する際に、マクロブロック２０２を迂回することがない配線３０３により、それら相互を接続することができる。なお、このようにバッファ回路２０３〜２０５，２１０〜２１５をインバータ３０１，３０２で代替することにより、駆動側のマクロセル２０６の出力ポート２０７と被駆動側のマクロセル２０６の入力ポート２０８との接続を、偶数個のインバータ３０１を介して行えば、実施の形態１におけるバッファ回路２０３〜２０５，２１０〜２１５と同様の使用が可能であり、また、奇数個のインバータ３０１を介して行えば、被駆動側のマクロセル２０６の入力ポート２０８で反転したデータを受け取ることも可能である。
【００３３】
以上のように、この実施の形態２によれば、マクロブロック２０２を通過する配線のための通過配線用セルとして、インバータ３０１，３０２を分散挿入しておくようにしたので、実施の形態１の場合と同様に、回路動作の高速化、低消費電力化、半導体集積回路の小面積化、配置配線の効率化が図れるとともに、経由するインバータ３０１の数の奇／偶によって、被駆動側のマクロセル２０６の入力ポート２０８で受け取るデータの反転／非反転を容易に制御できるなどの効果が得られる。
【００３４】
実施の形態３．
また、上記各実施の形態では、マクロブロックを通過する配線のための通過配線用セルとして、バッファ回路あるいはインバータを、あらかじめマクロブロック内に分散して挿入しておいたものについて説明したが、当該マクロブロックを通過する配線がクロックネットである場合には、通過配線用セルとしてクロック制御セルをマクロブロック内に分散挿入しておくようにしてもよい。図４はそのようなこの発明の実施の形態３によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図であり、この実施の形態のマクロブロックを用いて、上位でレイアウトする際に、挿入したクロック制御セルを使用して配線接続している状態を表したものである。図において、２０１は上位レイアウト階層、２０６はこの実施の形態３によるマクロブロックが接続されないネットを持った駆動側のマクロセル、又はマクロブロック、又はＩ／Ｏピン、又はＩ／Ｏ  ＰＡＤなどのセル等（マクロセル）、２０７は駆動側のマクロセル２０６の出力ポートであり、これらは図１に同一符号を付して示した部分に相当するものである。
【００３５】
また、４０１はそれを通過する配線がクロックネットである場合における、この実施の形態３によるマクロブロックである。４０２，４０３はこのマクロブロック４０１内に分散挿入された、当該マクロブロック４０１を通過する配線（通過クロックネット）のための通過配線用セルとしてのクロック制御セルである。なお、上記クロック制御セル４０２は当該マクロブロック４０１を通過する通過クロックネットのために使用されているクロック制御セルを示し、クロック制御セル４０３は上記通過クロックネットのためには使用されなかったクロック制御セルを示している。これらのクロック制御セル４０２，４０３も実施の形態１のバッファ回路２０３〜２０５，２１０〜２１５と同様に、図２上で上下／左右／中心といった当該マクロブロック４０１内の随所にあらかじめ分散して挿入されている。
【００３６】
また、４０４はクロック制御信号を生成するクロック制御信号生成ブロックであり、４０５はこのクロック制御信号生成ブロック４０４の生成したクロック制御信号が出力されるクロック制御用信号出力ポートである。４０６は被駆動側のマクロセル２０６のクロック入力のための入力クロックポートである。４０７は駆動側のマクロセル２０６の出力ポート２０７とクロック制御セル４０２、クロック制御信号生成ブロック４０４のクロック制御用信号出力ポート４０５とクロック制御セル４０２、およびクロック制御セル４０２と被駆動側のマクロセル２０６の入力クロックポート４０６を接続する配線である。なお、この場合も、当該マクロブロック４０１が果たすべき機能を実現するセルの記載は省略されている。
【００３７】
このように、マクロブロック４０１内のクロック制御セル４０２を介して、駆動側のマクロセル２０６の出力ポート２０７と被駆動側のマクロセル２０６の入力クロックポート４０６とを配線４０７によって接続し、そのクロック制御セル４０２をクロック制御信号生成ブロック４０４の生成したクロック制御信号で制御することにより、マクロブロック４０１を挟んで配置された、当該マクロブロック４０１に関与しない駆動側と被駆動側のマクロセル２０６間でのクロックのやりとりを、マクロブロック４０１を迂回することがない配線４０７によって実現することができる。すなわち、クロック制御セル４０２が分散挿入されたマクロブロック４０１により、駆動側のマクロセル２０６の出力ポート２０７からのクロックを、当該マクロブロック４０１を迂回することがない配線４０７により、被駆動側のマクロセル２０６の入力クロックポート４０６に接続することが可能となる。
【００３８】
以上のように、この実施の形態３によれば、マクロブロック４０１を通過する配線のための通過配線用セルとして、クロック制御セル４０２，４０３を分散挿入しておくようにしたので、実施の形態１の場合と同様に、回路動作の高速化、低消費電力化、半導体集積回路の小面積化、配置配線の効率化が図れるとともに、このマクロブロック４０１を通過する配線がクロックネットである場合にも適用可能となり、クロックに流れる電流量を削減できるため、ＥＭＩ（Ｅｌｅｃｔｒｏ  Ｍａｇｎｅｔｉｃ  Ｉｎｔｅｒｆｅｒｅｎｃｅ）問題も軽減できるなどの効果が得られる。
【００３９】
実施の形態４．
また、上記各実施の形態では、マクロブロックを通過する配線のための通過配線用セルとして、バッファ回路、インバータ、あるいはクロック制御セルをあらかじめマクロブロック内に分散して挿入しておいたものについて説明したが、通過配線用セルとしてラッチ回路を分散挿入しておくようにしてもよい。図５はそのようなこの発明の実施の形態４によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図であり、この実施の形態のマクロブロックを用いて、上位でレイアウトする際に、挿入したラッチ回路を使用して配線接続している状態を表したものである。図において、２０１は上位レイアウト階層、２０２はこの実施の形態４によるマクロブロック、２０６はマクロブロック２０２に接続されないネットを持つ駆動側および被駆動側のマクロセル、又はマクロブロック、又はＩ／Ｏピン、又はＩ／Ｏ  ＰＡＤなどのセル等（マクロセル）、２０７，２０８はそれら各マクロセル２０６の出力ポートおよび入力ポートであり、これらは図１に同一符号を付して示した部分に相当するものである。
【００４０】
また、５０１，５０２はこのマクロブロック２０２内に、実施の形態１のバッファ回路２０３〜２０５，２１０〜２１５に代替して挿入された、当該マクロブロック２０２を通過する配線のための通過配線用セルとしてのラッチ回路であり、ラッチ回路５０１は上記配線のために使用されているラッチ回路を示し、ラッチ回路５０２は上記配線のためには使用されなかったラッチ回路を示している。これらのラッチ回路５０１，５０２も実施の形態１のバッファ回路２０３〜２０５，２１０〜２１５と同様に、図２上で上下／左右／中心といったそのマクロブロック２０２内の随所にあらかじめ分散して挿入されている。５０３は駆動側のマクロセル２０６の出力ポート２０７、ラッチ回路５０１、被駆動側のマクロセル２０６の入力ポート２０８を接続する配線である。なお、このマクロブロック２０２においても、当該マクロブロック２０２が果たすべき機能を実現するセルの記載は省略されている。
【００４１】
このように、マクロブロック２０２内のラッチ回路５０１を経由する配線５０３にて、駆動側のマクロセル２０６の出力ポート２０７と被駆動側のマクロセル２０６の入力ポート２０８を接続することにより、マクロブロック２０２を挟んで配置された、そのマクロブロック２０２に関与しない、駆動側および被駆動側のマクロセル２０６同士を接続する際に、マクロブロック２０２を迂回することがない配線５０３にてそれら相互を接続することができる。なお、このように駆動側のマクロセル２０６の出力ポート２０７と被駆動側のマクロセル２０６の入力ポート２０８とを、ラッチ回路５０１を介して接続することにより、パイプライン段数の増加が可能となる。
【００４２】
なお、上記説明では、通過配線用セルとしてラッチ回路を分散挿入しておいたものを示したが、それらをフリップフロップで代替しても全く同様である。その場合、図５におけるラッチ回路５０１，５０２をフリップフロップ５０１，５０２と読み替えればよい。
【００４３】
以上のように、この実施の形態４によれば、マクロブロック２０２を通過する配線のための通過配線用セルとして、ラッチ回路（またはフリップフロップ）５０１，５０２を分散挿入しておくようにしたので、実施の形態１の場合と同様に、回路動作の高速化、低消費電力化、半導体集積回路の小面積化、配置配線の効率化が図れるとともに、パイプライン段数を増やすことができて、回路動作のさらなる高速化も可能になるなどの効果が得られる。
【００４４】
実施の形態５．
また、上記各実施の形態においては、マクロブロックを通過する配線のための通過配線用セルとして、バッファ回路、インバータ、クロック制御セル、ラッチ回路、フリップフロップのいずれかを用いたものを示したが、それらの内の少なくとも２種類を組み合わせて、マクロブロック内にあらかじめ分散して挿入しておくようにしてもよく、上記各実施の形態と同様の効果を奏する。
【００４５】
実施の形態６．
なお、上記各実施の形態では、マクロブロックを通過する配線のための通過配線用セルを、マクロブロック内の随所に分散して挿入しておくものについて説明したが、分散挿入した通過配線用セルに接続するための通過配線もあらかじめマクロブロック内に規定しておくようにしてもよい。図６はそのようなこの発明の実施の形態６によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図であり、この実施の形態のマクロブロックを用いて、上位でレイアウトする際に、挿入した通過配線用セルを使用して配線接続している状態を表したものである。図において、２０１は上位レイアウト階層、２０６はこの実施の形態５によるマクロブロックに接続されないネットを持った駆動側のマクロセル、又はマクロブロック、又はＩ／Ｏピン、又はＩ／Ｏ  ＰＡＤなどのセル等（以下マクロセルという）、２０７，２０８はそれら各マクロセル２０６の出力ポートおよび入力ポートであり、これらは図１に同一符号を付して示した部分に相当するものである。
【００４６】
また、６０１はこの実施の形態６によるマクロブロックである。６０２，６０３はこのマクロブロック６０１内に挿入された、当該マクロブロック６０１を通過する配線のための通過配線用セルであり、ここではバッファ回路が分散挿入されている。なお、この通過配線用セル６０２，６０３として、上記バッファ回路以外の、インバータ、クロック制御セル、ラッチ回路、フリップフロップなどを分散挿入してもよいことはいうまでもない。また、上記通過配線用セル６０２は当該マクロブロック６０１内に挿入されたセルの内の、上記配線のために使用されたものであり、通過配線用セル６０３は上記配線のために使用されなかったものである。
【００４７】
６０４は分散挿入された通過配線用セル６０２に接続するため、あらかじめマクロブロック６０１内に規定された接続配線である。６０５は駆動側のマクロセル２０６の出力ポート２０７と接続配線６０４の間、および接続配線６０４と被駆動側のマクロセル２０６の入力ポート２０８の間を接続する配線である。なお、このマクロブロック６０１においても、当該マクロブロック６０１が果たすべき機能を実現するセルの記載は省略されている。
【００４８】
このように、分散して挿入された通過配線用セル６０２に接続するため、マクロブロック２０２内に規定された接続配線６０４のそれぞれに、駆動側のマクロセル２０６の出力ポート２０７からの配線６０５と、被駆動側のマクロセル２０６の入力ポート２０８からの配線６０５を接続することによって、マクロブロック６０１を挟んで配置された、そのマクロブロック６０１に関与しない、駆動側と被駆動側のマクロセル２０６同士を接続する際に、当該マクロブロック６０１を迂回することがない配線にてそれらを相互に接続することができる。
【００４９】
以上のように、この実施の形態６によれば、マクロブロック６０１内に規定された、通過配線用セル６０２に接続される接続配線６０４のそれぞれに、駆動側のマクロセル２０６の出力ポート２０７からの配線６０５と、被駆動側のマクロセル２０６の入力ポート２０８からの配線６０５を接続しているので、回路動作の高速化、低消費電力化が可能となり、半導体集積回路の小面積化、配置配線の効率化が図れるとともに、レイアウト設計時に、マクロブロック６０１内を通過する配線をその都度配線する必要がなくなり、配線空間を探す手間が省けるなどの効果が得られる。
【００５０】
実施の形態７．
また、上記実施の形態６では、マクロブロック内に通過配線用セルに接続される接続配線を規定する場合について説明したが、通過配線用セルに接続される接続配線のための接続配線経路を規定しておくようにしてもよい。図７はそのようなこの発明の実施の形態７によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図であり、この実施の形態のマクロブロックを用いて、上位でレイアウトする際に、挿入した通過配線用セルを使用して配線接続している状態を表したものである。図において、２０１は上位レイアウト階層、２０６はこの実施の形態７によるマクロブロックに接続されないネットを持った、駆動側および被駆動側のマクロセル、又はマクロブロック、又はＩ／Ｏピン、又はＩ／Ｏ  ＰＡＤなどのセル等（マクロセル）、２０７，２０８はそれら各マクロセル２０６の出力ポートおよび入力ポートであり、これらは図１に同一符号を付して示した部分に相当するものである。
【００５１】
また、７０１はこの実施の形態７によるマクロブロックである。６０２，６０３はこのマクロブロック７０１内に挿入された、当該マクロブロック７０１を通過する配線のための通過配線用セルであり、ここではバッファ回路が分散挿入されている。なお、この通過配線用セル６０２，６０３として、上記バッファ回路以外の、インバータ、クロック制御セル、ラッチ回路、フリップフロップなどを分散挿入してもよいことはいうまでもない。また、上記通過配線用セル６０２は当該マクロブロック７０１内に挿入したセルの内の、上記配線のために使用されたものであり、通過配線用セル６０３は上記配線のために使用されなかったものである。
【００５２】
７０２はマクロブロック７０１内に分散挿入された通過配線用セル６０２，６０３に接続される接続配線を設定するための経路として、あらかじめ当該マクロブロック７０１内にそれぞれ複数規定された接続配線経路である。７０３はこの接続配線経路７０２上に設定された、実際に通過配線用セル６０２に接続するための接続配線である。７０４は駆動側のマクロセル２０６の出力ポート２０７と接続配線経路７０２上に設定された接続配線７０３との間、および接続配線経路７０２上に設定された接続配線７０３と被駆動側のマクロセル２０６の入力ポート２０８との間を接続する配線である。なお、このマクロブロック７０１においても、当該マクロブロック７０１が果たすべき機能を実現するセルの記載は省略されている。
【００５３】
このように、分散して挿入された各通過配線用セル６０２，６０３に対して、それぞれ複数の接続配線経路７０２をあらかじめ規定しておき、その接続配線経路７０２上に、マクロブロック７０１を通過する配線に使用される通過配線用セル６０２に接続するための接続配線７０３を設定し、駆動側のマクロセル２０６の出力ポート２０７からの配線７０４と、被駆動側のマクロセル２０６の入力ポート２０８からの配線７０４とを、接続配線７０３のそれぞれに接続することによって、マクロブロック７０１を挟んで配置された、そのマクロブロック７０１に関与しない、駆動側と被駆動側のマクロセル２０６同士を接続する際に、当該マクロブロック７０１を迂回することがない配線にてそれらを互いに接続することができる。
【００５４】
以上のように、この実施の形態７によれば、マクロブロック７０１内に規定された接続配線経路７０２上に、通過配線用セル６０２に接続される接続配線７０３を設定し、その接続配線７０３のそれぞれに、駆動側のマクロセル２０６の出力ポート２０７からの配線７０４と、被駆動側のマクロセル２０６の入力ポート２０８からの配線７０４を接続しているので、回路動作の高速化、低消費電力化が可能となり、半導体集積回路の小面積化、配置配線の効率化が図れるとともに、レイアウト設計時に、規定された接続配線経路７０２上に接続線路７０３を設定すれば、マクロブロック７０１内を通過する配線をその都度配線する必要がなくなり、配線空間を探す手間が省けるなどの効果が得られる。
【００５５】
実施の形態８．
以上、実施の形態１から実施の形態７で説明したようなマクロブロックはＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）化されてＩＰコアとして、コンピュータで読み取り可能な記録媒体に記録され、半導体集積回路の設計に用いられる。なお、このＩＰコアにはマクロブロックそのものの情報とともに、当該マクロブロックに挿入される通過配線用セルや配線の位置や特性の情報などの情報も含まれる。
【００５６】
実施の形態９．
なお、上記実施の形態１から実施の形態７ではこの発明によるマクロブロックについて、また、実施の形態８ではＩＰ化されたＩＰコアとして、マクロブロックを記録した記録媒体について示したが、以下では、そのような実施の形態１から実施の形態８のマクロブロック／ＩＰを用いてレイアウト設計した半導体集積回路について説明する。図８はそのようなこの発明の実施の形態９による半導体集積回路のレイアウト設計の過程を示すフローチャートである。
【００５７】
まず、ステップＳＴ１００においてマクロブロックが作成される。マクロブロックを作るには、ステップＳＴ１０１によって通常の方法でマクロブロックをレイアウトし、その後ステップＳＴ１０２にて、当該マクロブロックを通過する配線のための通過配線用セルを追加して、ステップＳＴ１０１によるレイアウトの修正を行う方法、あるいは、ステップＳＴ１０３により、あらかじめ挿入する通過配線用セルの入ったものをレイアウトする方法などがある。
【００５８】
次に、上位でレイアウトを実行するが、論理接続情報を持ったネットリスト８０１をあらかじめ準備しておき、ステップＳＴ１１０において、そのネットリスト８０１を用いて、通過配線用セルが分散挿入されたマクロブロックを通常通りレイアウトする。その後、ステップＳＴ１２０に進み、当該半導体集積回路のタイミング／消費電力／電圧降下などの制約についての検証を行い、その検証結果がＯＫであれば当該設計を終了する。一方、検証結果がＯＫでない場合にはステップＳＴ１３０に分岐して、当該マクロブロック内に分散挿入された通過配線用セルも使いつつ、その性能の改善を行う。その後、処理をステップＳＴ１２０に戻して、再度制約の検証を行う。この制約の検証および性能の改善は、ステップＳＴ１２０の検証結果がＯＫになるまで繰り返される。
【００５９】
以上のように、この実施の形態９によれば、あらかじめ用意されたネットリスト８０１を用いてマクロブロックをレイアウトし、そのマクロブロックに分散挿入されている通過配線用セルも使いつつ、性能改善を行うようにしているので、容易に回路動作の高速化、低消費電力化、半導体集積回路の小面積化、配置配線の効率化が図れるという効果が得られる。
【００６０】
実施の形態１０．
また、上記実施の形態９では、あらかじめ準備しておいたネットリストを用いたものについて説明したが、通過配線用セルを考慮してレイアウト設計前に作成もしくは修正されたネットリストを用いるようにしてもよい。図９はそのようなこの発明の実施の形態１０による半導体集積回路のレイアウト設計の過程を示すフローチャートである。
【００６１】
この場合も、まずステップＳＴ１００にてマクロブロックが作成される。このマクロブロックの作成には、実施の形態９の場合と同様に、通常の方法でマクロブロックをレイアウト（ステップＳＴ１０１）し、その後、通過配線用セルを追加してレイアウト修正を行う（ステップＳＴ１０２）方法、あるいは、あらかじめ通過配線用セルの入ったものをレイアウトする（ステップＳＴ１０３）方法などがある。
【００６２】
次に、上位でレイアウトを実行するが、まずステップＳＴ２１０にて、マクロブロックやＩＰコアの中に分散挿入した通過配線用セルを考慮して、論理接続情報を持ったネットリスト８０２の構築を行う。なお、このネットリスト８０２は、あらかじめ準備しておいたものを上記分散挿入した通過配線用セルを考慮して修正したものであってもよい。次にステップＳＴ１１０において、この作成もしくは修正されたネットリスト８０２を用いて、通過配線用セルが分散挿入されたマクロブロックを通常通りレイアウトする。その後、実施の形態９の場合と同様に、タイミング／消費電力／電圧降下などの制約の検証を行い（ステップＳＴ１２０）、検証結果がＯＫであれば当該設計を終了する。ＯＫでない場合には、マクロブロック内に分散挿入された通過配線用セルも使いつつ、その性能の改善を行う（ステップＳＴ１３０）。その後、この制約の検証結果がＯＫになるまで、制約の検証、および性能の改善の処理を繰り返す。
【００６３】
以上のように、この実施の形態１０によれば、通過配線用セルを考慮して作成／修正されたネットリストを用いてレイアウトされたマクロブロックに挿入されている通過配線用セルも使いつつ、その性能を改善するようにしているので、より適切に、回路動作の高速化、低消費電力化、半導体集積回路の小面積化、配置配線の効率化を図ることができるという効果が得られる。
【００６４】
【発明の効果】
以上のように、この発明によれば、マクロブロック内部の随所に、当該マクロブロックを通過する配線のための通過配線用セルを分散挿入しておくように構成したので、マクロブロックを挟んで配置された、当該マクロブロックに関与しないマクロセル同士を接続する際の配線における迂回の発生を防止できるため、配線の長さを短縮することができ、また適切な位置の通過配線用セルを使用することによって遅延を短縮することができるため、回路の高速化が可能となり、通過配線用セルの選択幅が広がり、マクロブロック内の配線長も制御可能になり、配線長が短くなるため、配線を駆動するセルの駆動能力も抑えることが可能となって、半導体集積回路の小面積化も可能となり、さらに、流れる電流量も減るため消費電力の削減や、シグナルインテグリティの問題も軽減可能となり、また、冗長な配線の削減が可能となって、他の配線が使用できる配線経路を確保することができるため、配置配線の効率を向上させることが可能なマクロブロックが得られる効果がある。
【００６５】
この発明によれば、インバータを、マクロブロックを通過する配線のための通過配線用セルとして分散挿入しておくように構成したので、マクロセルの入力ポート側で受け取るデータの反転／非反転を、経由するインバータの数によって容易に制御可能になるという効果がある。
【００６６】
この発明によれば、クロック制御セルを、マクロブロックを通過する配線のための通過配線用セルとして分散挿入しておくように構成したので、クロックに流れる電流量の削減が可能となってＥＭＩ問題を軽減することができ、当該マクロブロックを通過する配線がクロックネットである場合にも適用可能になるという効果がある。
【００６７】
この発明によれば、ラッチ回路、あるいはフリップフロップを、マクロブロックを通過する配線のための通過配線用セルとして分散挿入しておくように構成したので、パイプラインの段数を増加させることが可能となって、回路動作のさらなる高速化が図れるという効果がある。
【００６８】
この発明によれば、通過配線用セルに接続される接続配線を、マクロブロック内にあらかじめ規定しておくように構成したので、レイアウト設計時に、マクロブロック内を通過する配線のための空間を、その都度探す必要がなくなるという効果がある。
【００６９】
この発明によれば、通過配線用セルに接続される接続配線が設定される接続配線経路を、マクロブロック内にあらかじめ規定しておくように構成したので、接続線路を接続配線経路上に設定すれば、レイアウト設計時に、マクロブロック内を通過する配線のための空間を、その都度探す必要がなくなるという効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【図２】  実施の形態１によるマクロブロックに挿入される、通過配線用セルの配置位置を示す説明図である。
【図３】  この発明の実施の形態２によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【図４】  この発明の実施の形態３によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【図５】  この発明の実施の形態４によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【図６】  この発明の実施の形態６によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【図７】  この発明の実施の形態７によるマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【図８】  この発明の実施の形態９による半導体集積回路のレイアウト設計過程を示すフローチャートである。
【図９】  この発明の実施の形態１０による半導体集積回路のレイアウト設計過程を示すフローチャートである。
【図１０】  従来のマクロブロックが用いられた、上位のレイアウト階層の全体を示す構成図である。
【符号の説明】
２０１  上位レイアウト階層、２０２  マクロブロック、２０３，２０４，２０５  バッファ回路（通過配線用セル）、２０６  マクロセル、２０７  出力ポート、２０８  入力ポート、２０９  配線、２１０，２１１，２１２，２１３，２１４，２１５  バッファ回路（通過配線用セル）、３０１，３０２  インバータ（通過配線用セル）、３０３  配線、４０１  マクロブロック、４０２，４０３  クロック制御セル（通過配線用セル）、４０４  クロック制御信号生成ブロック、４０５  制御用信号出力ポート、４０６  入力クロックポート、４０７  配線、５０１，５０２  ラッチ回路（通過配線用セル）、５０３  配線、６０１  マクロブロック、６０２，６０３  通過配線用セル、６０４  接続配線、６０５  配線、７０１  マクロブロック、７０２  接続配線経路、７０３  接続配線、７０４  配線、８０１，８０２  ネットリスト。