(57)【特許請求の範囲】
【請求項１】
クロック信号に基づいて動作するブロックセルにおいて、
前記クロック信号を入力するためのクロック端子を当該ブロックセル内でその中心近傍に設け、当該ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を当該ブロックセル内に設けたことを特徴とするブロックセル。
【請求項２】
請求項１において、
前記配線領域は、当該ブロックセルの周縁のうちいずれかの箇所から前記クロック端子までクロック信号線を配線するための配線領域と、当該ブロックセルの中心位置からみて当該ブロックセルの周縁のうち前記いずれかの箇所と対称となる位置にある箇所から前記クロック端子までクロック信号線を配線するための配線領域とを含むことを特徴とするブロックセル。
【請求項３】
請求項１において、
前記配線領域は、当該ブロックセルの周辺のうち一の辺から前記クロック端子までクロック信号線を配線するための配線領域と、当該ブロックセルの周辺のうち前記一の辺に対向する辺から前記クロック端子までクロック信号線を配線するための配線領域とを含むことを特徴とするブロックセル。
【請求項４】
クロック信号に基づいて動作するブロックセルの設計方法において、
前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその中心近傍に設けるクロック端子形成工程と、前記ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を前記ブロックセル内に設ける配線領域形成工程とを含むことを特徴とするブロックセルの設計方法。
【請求項５】
クロック信号に基づいて動作するブロックセルの設計支援装置において、
前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその中心近傍に設けるクロック端子形成手段と、前記ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を前記ブロックセル内に設ける配線領域形成手段とを備えることを特徴とするブロックセルの設計支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クロック信号に基づいて動作するブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置に係り、特に、ブロックセルが混在する半導体集積回路において、回路の増加を伴わずにクロック信号のスキューを低減するのに好適なブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置に関する。
【０００２】
【従来の技術】
近年、一般素子のみのチップだけでなく、ＲＡＭ／ＲＯＭやＣＰＵ等のマクロブロックセル（以下、単にブロックセルという。）が混在する半導体集積回路が多く使用されるようになってきた。ここで、ブロックセルとは、あらかじめ配置・配線等の最適化が施され、機能検証が終了しているセルをいう。半導体集積回路においてこれらブロックセルは、クロック信号により他のセルと同期しながら動作する同期システムとして構成される場合が多い。
【０００３】
同期システムにおいては、クロック信号の立ち上がり（立ち下がり）のタイミングによって各ブロックセルを動作させているため、クロック信号は、いずれのブロックセルにおいてもまったく同じタイミングで得られることが回路の正常動作の上で望ましい。しかしながら、実際にはクロック信号を引き回すための配線の抵抗、配線の容量、および接続しているブロックセルの端子容量によって、クロック信号の遅れ（以下、ディレイという。）が生じる。このため、クロック信号の入力箇所から最も近いブロックセルと、最も遠いブロックセルとでは、得ることができるクロック信号に到達時間差（以下、スキューという。）が生じてしまう。回路の正常動作ためにはスキューの最小化が必要不可欠である。そこで、スキューの最小化の方法として、２分木型状（ツリー）配線を用いて配線径路を調整することにより適当にクロック信号を分配する方法が用いられることが多い。
【０００４】
この方法は、ブロックセル同士を結線してディレイの釣合い点を求め、さらにその釣合い点と別の釣合い点とを結線していきスキューの小さいツリーを構築して、スキュー最小のクロック分配配線を得るものである。例えば、特願平３−０３０７２１号公報では、スキューが最小となるような点に分岐点を設定して径路を作っている。この配線方法では、多段バッファリングを行ってディレイの低減を図ることができる。配線によるディレイを増加しないように、迂回径路は避け、配線径路長をなるべく短くすることが重要である。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記多段バッファリングを行う方法にあっても、例えば、図１０に示すように、ブロックセル配置の関係上、ブロックセル１０，１２にクロック信号を分配するクロックバッファ２６に対してブロックセル１０，１２のクロック端子Ｃが反対側に位置するような場合は、クロックバッファ２６からの配線をブロックセル１０，１２のその反対側まで引き回さなければならない。そして、この引き回しによりスキューが増加するときは、スキューの増加を防止するために、クロックバッファ２６とブロックセル１０との間、およびクロックバッファ２６とブロックセル１２との間にそれぞれクロックバッファ２１，２３を設けなければならない。なお、この場合、ブロックセル１０，１２は、ゲートアレイ上に形成するセルが含まれていることから、その位置を反転して配置することは、ブロックセル１０，１２の設計変更を行わない限りすることができない。
【０００６】
したがって、このような場合、スキューの増加を防止するためには、クロックバッファ２１，２３等の余分な回路を追加しなければならない場合があり、回路の増加によりコストの増加を招くとともに半導体集積回路の小型化が図れないばかりか、例えば、ブロックセル１０，１２の周辺を非配置領域としたいという設計要求がある場合には、クロックバッファ２１，２３を設けることができず、スキューの増加を低減することができない。
【０００７】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、ブロックセルが混在する半導体集積回路において、回路の増加を伴わずにクロック信号のスキューを低減するのに好適なブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置を提供することを目的としている。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る請求項１記載のブロックセルは、クロック信号に基づいて動作するブロックセルにおいて、前記クロック信号を入力するためのクロック端子を当該ブロックセル内でその周縁近傍に複数設け、前記各クロック端子から入力したクロック信号に基づいて動作するようになっている。
【０００９】
このような構成であれば、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファと、複数のクロック端子のうちそのクロックバッファから最も近くにあるクロック端子とを接続・配線すれば、配線長を小さくすることが可能となる。
【００１０】
さらに、本発明に係る請求項２記載のブロックセルは、請求項１記載のブロックセルにおいて、前記複数のクロック端子のうちいずれかの端子を、当該ブロックセルの中心位置からみて前記複数のクロック端子のうちそれ以外の端子と対称となる位置に設けた。
【００１１】
このような構成であれば、少なくとも２つのクロック端子が対称的に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることが可能となる。
【００１２】
ここで、対称となる位置とは、ブロックセルの中心位置からみてそれ以外の端子と点対称となる位置、またはブロックセルの中心位置を通る線に対してそれ以外の端子と線対称となる位置をいう。
【００１３】
さらに、本発明に係る請求項３記載のブロックセルは、請求項１記載のブロックセルにおいて、前記複数のクロック端子のうちいずれかの端子を当該ブロックセルの周辺のうち一の辺の近傍に設け、前記複数のクロック端子のうちそれ以外の端子を当該ブロックセルの周辺のうち前記一の辺に対向する辺の近傍に設けた。
【００１４】
このような構成であれば、少なくとも２つのクロック端子がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることが可能となる。
【００１５】
さらに、本発明に係る請求項４記載のブロックセルは、請求項１記載のブロックセルにおいて、前記クロック端子を当該ブロックセルの異なる角部の近傍にそれぞれ設けた。
【００１６】
このような構成であれば、少なくとも２つのクロック端子がブロックセルの異なる角部の近傍に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることが可能となる。
【００１７】
さらに、本発明に係る請求項５記載のブロックセルは、クロック信号に基づいて動作するブロックセルにおいて、前記クロック信号を入力するためのクロック端子を当該ブロックセル内でその中心近傍に設け、当該ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を当該ブロックセル内に設けた。
【００１８】
このような構成であれば、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからは、そのクロックバッファとクロック端子との距離が最短となるように、ブロックセルの周縁のうち配線領域の入口となる複数の箇所のいずれかを経由してブロックセルの中心近傍に設けられたクロック端子まで配線すれば、配線長を小さくすることが可能となる。
【００１９】
さらに、本発明に係る請求項６記載のブロックセルは、請求項５記載のブロックセルにおいて、前記配線領域は、当該ブロックセルの周縁のうちいずれかの箇所から前記クロック端子までクロック信号線を配線するための配線領域と、当該ブロックセルの中心位置からみて当該ブロックセルの周縁のうち前記いずれかの箇所と対称となる位置にある箇所から前記クロック端子までクロック信号線を配線するための配線領域とを含む。
【００２０】
このような構成であれば、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所が対称的に配置されているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることが可能となる。
【００２１】
ここで、対称となる位置とは、ブロックセルの中心位置からみてそのいずれかの箇所と点対称となる位置、またはブロックセルの中心位置を通る線に対してそのいずれかの箇所と線対称となる位置をいう。
【００２２】
さらに、本発明に係る請求項７記載のブロックセルは、請求項５記載のブロックセルにおいて、前記配線領域は、当該ブロックセルの周辺のうち一の辺から前記クロック端子までクロック信号線を配線するための配線領域と、当該ブロックセルの周辺のうち前記一の辺に対向する辺から前記クロック端子までクロック信号線を配線するための配線領域とを含む。
【００２３】
このような構成であれば、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることが可能となる。
【００２４】
一方、上記目的を達成するために、本発明に係る請求項８記載のブロックセルの設計方法は、クロック信号に基づいて動作するブロックセルの設計方法において、前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその周縁近傍に複数設けるクロック端子形成工程と、前記各クロック端子から入力したクロック信号に基づいて前記ブロックセルが動作するように配線を行う配線工程とを含む。
【００２５】
このような方法であれば、クロック端子形成工程を経て、クロック端子がブロックセルの周縁近傍に複数設けられ、配線工程を経て、クロック端子から入力したクロック信号に基づいてブロックセルが動作するように配線が行われる。
【００２６】
ここで、クロック端子形成工程は、クロック端子をブロックセル内でその周縁近傍に複数設ける工程であればどのような工程であってもよいが、具体的には、例えば、次のような方法が挙げられる。すなわち、上記請求項８記載のブロックセルの設計方法において、前記クロック端子形成工程は、前記複数のクロック端子のうちいずれかの端子を、前記ブロックセルの中心位置からみて前記複数のクロック端子のうちそれ以外の端子と対称となる位置に設ける。
【００２７】
このような方法であれば、クロック端子形成工程を経て、いずれかのクロック端子がブロックセルの中心位置からみてそれ以外のクロック端子と対称となる位置に設けられる。
【００２８】
したがって、少なくとも２つのクロック端子が対称的に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００２９】
また、クロック端子形成工程は、クロック端子をブロックセル内でその周縁近傍に複数設ける工程であればどのような工程であってもよいが、具体的には、例えば、次のような方法が挙げられる。すなわち、上記請求項８記載のブロックセルの設計方法において、前記クロック端子形成工程は、前記複数のクロック端子のうちいずれかの端子を前記ブロックセルの周辺のうち一の辺の近傍に設け、前記複数のクロック端子のうちそれ以外の端子を前記ブロックセルの周辺のうち前記一の辺に対向する辺の近傍に設ける。
【００３０】
このような方法であれば、クロック端子形成工程を経て、いずれかのクロック端子がブロックセルの一の辺の近傍に設けられ、それ以外のクロック端子がブロックセルのその一の辺に対向する辺の近傍に設けられる。
【００３１】
したがって、少なくとも２つのクロック端子がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００３２】
また、クロック端子形成工程は、クロック端子をブロックセル内でその周縁近傍に複数設ける工程であればどのような工程であってもよいが、具体的には、例えば、次のような方法が挙げられる。すなわち、上記請求項８記載のブロックセルの設計方法において、前記クロック端子形成工程は、前記クロック端子を前記ブロックセルの異なる角部の近傍にそれぞれ設ける。
【００３３】
このような方法であれば、クロック端子形成工程を経て、クロック端子がブロックセルの異なる角部の近傍にそれぞれ設けられる。
【００３４】
したがって、少なくとも２つのクロック端子がブロックセルの異なる角部の近傍に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００３５】
さらに、本発明に係る請求項９記載のブロックセルの設計方法は、クロック信号に基づいて動作するブロックセルの設計方法において、前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその中心近傍に設けるクロック端子形成工程と、前記ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を前記ブロックセル内に設ける配線領域形成工程とを含む。
【００３６】
このような方法であれば、クロック端子形成工程を経て、クロック端子がブロックセルの中心近傍に設けられ、配線領域形成工程を経て、ブロックセルの周縁のうち異なる複数の箇所からクロック端子までクロック信号線を配線するための配線領域がブロックセル内に設けられる。
【００３７】
ここで、配線領域形成工程は、ブロックセルの周縁のうち異なる複数の箇所からクロック端子までクロック信号線を配線するための配線領域をブロックセル内に設ける工程であればどのような工程であってもよいが、具体的には、例えば、次のような方法が挙げられる。すなわち、上記請求項９記載のブロックセルの設計方法において、前記配線領域形成工程は、前記ブロックセルの周縁のうちいずれかの箇所から前記クロック端子までクロック信号線を配線するための配線領域と、前記ブロックセルの中心位置からみて前記ブロックセルの周縁のうち前記いずれかの箇所と対称となる位置にある箇所から前記クロック端子までクロック信号線を配線するための配線領域とを前記ブロックセル内に設ける。
【００３８】
このような方法であれば、配線領域形成工程を経て、ブロックセルの周縁のうちいずれかの箇所からクロック端子までクロック信号線を配線するための配線領域と、ブロックセルの中心位置からみてブロックセルの周縁のうちそのいずれかの箇所と対称となる位置にある箇所からクロック端子までクロック信号線を配線するための配線領域とがブロックセル内に設けられる。
【００３９】
したがって、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所が対称的に配置されているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００４０】
また、配線領域形成工程は、ブロックセルの周縁のうち異なる複数の箇所からクロック端子までクロック信号線を配線するための配線領域をブロックセル内に設ける工程であればどのような工程であってもよいが、具体的には、例えば、次のような方法が挙げられる。すなわち、上記請求項９記載のブロックセルの設計方法において、前記配線領域形成工程は、前記ブロックセルの周辺のうち一の辺から前記クロック端子までクロック信号線を配線するための配線領域と、前記ブロックセルの周辺のうち前記一の辺に対向する辺から前記クロック端子までクロック信号線を配線するための配線領域とを前記ブロックセル内に設ける。
【００４１】
このような方法であれば、配線領域形成工程を経て、ブロックセルの一の辺からクロック端子までクロック信号線を配線するための配線領域と、ブロックセルのその一の辺に対向する辺からクロック端子までクロック信号線を配線するための配線領域とがブロックセル内に設けられる。
【００４２】
したがって、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００４３】
一方、上記目的を達成するために、本発明に係る請求項１０記載のブロックセルの設計支援装置は、クロック信号に基づいて動作するブロックセルの設計支援装置において、前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその周縁近傍に複数設けるクロック端子形成手段と、前記各クロック端子から入力したクロック信号に基づいて前記ブロックセルが動作するように配線を行う配線手段とを備える。
【００４４】
このような構成であれば、クロック端子形成手段により、クロック端子がブロックセルの周縁近傍に複数設けられ、配線手段により、クロック端子から入力したクロック信号に基づいてブロックセルが動作するように配線が行われる。
【００４５】
ここで、クロック端子形成手段は、クロック端子をブロックセル内でその周縁近傍に複数設けるようになっていればどのような構成であってもよいが、具体的には、例えば、次のような構成が挙げられる。すなわち、上記請求項１０記載のブロックセルの設計支援装置において、前記クロック端子形成手段は、前記複数のクロック端子のうちいずれかの端子を、前記ブロックセルの中心位置からみて前記複数のクロック端子のうちそれ以外の端子と対称となる位置に設けるようになっている。
【００４６】
このような構成であれば、クロック端子形成手段により、いずれかのクロック端子がブロックセルの中心位置からみてそれ以外のクロック端子と対称となる位置に設けられる。
【００４７】
したがって、少なくとも２つのクロック端子が対称的に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００４８】
また、クロック端子形成手段は、クロック端子をブロックセル内でその周縁近傍に複数設けるようになっていればどのような構成であってもよいが、具体的には、例えば、次のような構成が挙げられる。すなわち、上記請求項１０記載のブロックセルの設計支援装置において、前記クロック端子形成手段は、前記複数のクロック端子のうちいずれかの端子を前記ブロックセルの周辺のうち一の辺の近傍に設け、前記複数のクロック端子のうちそれ以外の端子を前記ブロックセルの周辺のうち前記一の辺に対向する辺の近傍に設けるようになっている。
【００４９】
このような構成であれば、クロック端子形成手段により、いずれかのクロック端子がブロックセルの一の辺の近傍に設けられ、それ以外のクロック端子がブロックセルのその一の辺に対向する辺の近傍に設けられる。
【００５０】
したがって、少なくとも２つのクロック端子がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００５１】
また、クロック端子形成手段は、クロック端子をブロックセル内でその周縁近傍に複数設けるようになっていればどのような構成であってもよいが、具体的には、例えば、次のような構成が挙げられる。すなわち、上記請求項１０記載のブロックセルの設計支援装置において、前記クロック端子形成手段は、前記クロック端子を前記ブロックセルの異なる角部の近傍にそれぞれ設ける。
【００５２】
このような構成であれば、クロック端子形成手段により、クロック端子がブロックセルの異なる角部の近傍にそれぞれ設けられる。
【００５３】
したがって、少なくとも２つのクロック端子がブロックセルの異なる角部の近傍に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００５４】
さらに、本発明に係る請求項１１記載のブロックセルの設計支援装置は、クロック信号に基づいて動作するブロックセルの設計支援装置において、前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその中心近傍に設けるクロック端子形成手段と、前記ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を前記ブロックセル内に設ける配線領域形成手段とを備える。
【００５５】
このような構成であれば、クロック端子形成手段により、クロック端子がブロックセルの中心近傍に設けられ、配線領域形成手段により、ブロックセルの周縁のうち異なる複数の箇所からクロック端子までクロック信号線を配線するための配線領域がブロックセル内に設けられる。
【００５６】
ここで、配線領域形成手段は、ブロックセルの周縁のうち異なる複数の箇所からクロック端子までクロック信号線を配線するための配線領域をブロックセル内に設けるようになっていればどのような構成であってもよいが、具体的には、例えば、次のような構成が挙げられる。すなわち、上記請求項１１記載のブロックセルの設計支援装置において、前記配線領域形成手段は、前記ブロックセルの周縁のうちいずれかの箇所から前記クロック端子までクロック信号線を配線するための配線領域と、前記ブロックセルの中心位置からみて前記ブロックセルの周縁のうち前記いずれかの箇所と対称となる位置にある箇所から前記クロック端子までクロック信号線を配線するための配線領域とを前記ブロックセル内に設けるようになっている。
【００５７】
このような構成であれば、配線領域形成手段により、ブロックセルの周縁のうちいずれかの箇所からクロック端子までクロック信号線を配線するための配線領域と、ブロックセルの中心位置からみてブロックセルの周縁のうちそのいずれかの箇所と対称となる位置にある箇所からクロック端子までクロック信号線を配線するための配線領域とがブロックセル内に設けられる。
【００５８】
したがって、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所が対称的に配置されているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００５９】
また、配線領域形成手段は、ブロックセルの周縁のうち異なる複数の箇所からクロック端子までクロック信号線を配線するための配線領域をブロックセル内に設けるようになっていればどのような構成であってもよいが、具体的には、例えば、次のような構成が挙げられる。すなわち、上記請求項１１記載のブロックセルの設計支援装置において、前記配線領域形成手段は、前記ブロックセルの周辺のうち一の辺から前記クロック端子までクロック信号線を配線するための配線領域と、前記ブロックセルの周辺のうち前記一の辺に対向する辺から前記クロック端子までクロック信号線を配線するための配線領域とを前記ブロックセル内に設けるようになっている。
【００６０】
このような構成であれば、配線領域形成手段により、ブロックセルの一の辺からクロック端子までクロック信号線を配線するための配線領域と、ブロックセルのその一の辺に対向する辺からクロック端子までクロック信号線を配線するための配線領域とがブロックセル内に設けられる。
【００６１】
したがって、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００６２】
以上では、上記目的を達成するためのブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置を提案したが、これに限らず、上記目的を達成するために、次に掲げる第１ないし第７のブロックセルの設計支援プログラムを記憶した記憶媒体を提案することもできる。
【００６３】
第１のブロックセルの設計支援プログラムを記憶した記憶媒体は、クロック信号に基づいて動作するブロックセルの設計支援プログラムを記憶した記憶媒体であって、前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその周縁近傍に複数設けるクロック端子形成手段と、前記各クロック端子から入力したクロック信号に基づいて前記ブロックセルが動作するように配線を行う配線手段として、コンピュータを機能させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００６４】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、請求項１０記載のブロックセルの設計支援装置と同様の作用および効果が得られる。
【００６５】
第２のブロックセルの設計支援プログラムを記憶した記憶媒体は、上記第１のブロックセルの設計支援プログラムのおいて、前記クロック端子形成手段は、前記複数のクロック端子のうちいずれかの端子を、前記ブロックセルの中心位置からみて前記複数のクロック端子のうちそれ以外の端子と対称となる位置に設けるようになっている。
【００６６】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、クロック端子形成手段により、クロック端子形成手段により、いずれかのクロック端子がブロックセルの中心位置からみてそれ以外のクロック端子と対称となる位置に設けられる。
【００６７】
したがって、少なくとも２つのクロック端子が対称的に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００６８】
第３のブロックセルの設計支援プログラムを記憶した記憶媒体は、上記第１のブロックセルの設計支援プログラムのおいて、前記クロック端子形成手段は、前記複数のクロック端子のうちいずれかの端子を前記ブロックセルの周辺のうち一の辺の近傍に設け、前記複数のクロック端子のうちそれ以外の端子を前記ブロックセルの周辺のうち前記一の辺に対向する辺の近傍に設けるようになっている。
【００６９】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、クロック端子形成手段により、いずれかのクロック端子がブロックセルの一の辺の近傍に設けられ、それ以外のクロック端子がブロックセルのその一の辺に対向する辺の近傍に設けられる。
【００７０】
したがって、少なくとも２つのクロック端子がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００７１】
第４のブロックセルの設計支援プログラムを記憶した記憶媒体は、上記第１のブロックセルの設計支援プログラムのおいて、前記クロック端子形成手段は、前記クロック端子を前記ブロックセルの異なる角部の近傍にそれぞれ設けるようになっている。
【００７２】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、クロック端子形成手段により、クロック端子がブロックセルの異なる角部の近傍にそれぞれ設けられる。
【００７３】
したがって、少なくとも２つのクロック端子がブロックセルの異なる角部の近傍に設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００７４】
第５のブロックセルの設計支援プログラムを記憶した記憶媒体は、クロック信号に基づいて動作するブロックセルの設計支援プログラムを記憶した記憶媒体であって、前記クロック信号を入力するためのクロック端子を前記ブロックセル内でその中心近傍に設けるクロック端子形成手段と、前記ブロックセルの周縁のうち異なる複数の箇所から前記クロック端子までクロック信号線を配線するための配線領域を前記ブロックセル内に設ける配線領域形成手段として、コンピュータを機能させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００７５】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、請求項１１記載のブロックセルの設計支援装置と同様の作用および効果が得られる。
【００７６】
第６のブロックセルの設計支援プログラムを記憶した記憶媒体は、上記第５のブロックセルの設計支援プログラムのおいて、前記配線領域形成手段は、前記ブロックセルの周縁のうちいずれかの箇所から前記クロック端子までクロック信号線を配線するための配線領域と、前記ブロックセルの中心位置からみて前記ブロックセルの周縁のうち前記いずれかの箇所と対称となる位置にある箇所から前記クロック端子までクロック信号線を配線するための配線領域とを前記ブロックセル内に設けるようになっている。
【００７７】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、配線領域形成手段により、ブロックセルの周縁のうちいずれかの箇所からクロック端子までクロック信号線を配線するための配線領域と、ブロックセルの中心位置からみてブロックセルの周縁のうちそのいずれかの箇所と対称となる位置にある箇所からクロック端子までクロック信号線を配線するための配線領域とがブロックセル内に設けられる。
【００７８】
したがって、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所が対称的に配置されているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００７９】
第７のブロックセルの設計支援プログラムを記憶した記憶媒体は、上記第５のブロックセルの設計支援プログラムのおいて、前記配線領域形成手段は、前記ブロックセルの周辺のうち一の辺から前記クロック端子までクロック信号線を配線するための配線領域と、前記ブロックセルの周辺のうち前記一の辺に対向する辺から前記クロック端子までクロック信号線を配線するための配線領域とを前記ブロックセル内に設けるようになっている。
【００８０】
このような構成であれば、記憶媒体に記憶されたプログラムがコンピュータによって読み取られ、読み取られたプログラムに従ってコンピュータが機能したときは、配線領域形成手段により、ブロックセルの一の辺からクロック端子までクロック信号線を配線するための配線領域と、ブロックセルのその一の辺に対向する辺からクロック端子までクロック信号線を配線するための配線領域とがブロックセル内に設けられる。
【００８１】
したがって、ブロックセルの周縁のうち配線領域の入口となる少なくとも２つの箇所がブロックセルの一辺の近傍とその反対側の辺の近傍とに設けられているので、ブロックセルを配置したときに、そのブロックセルにクロック信号を分配するクロックバッファからクロック端子までの距離が短くなる可能性があり、クロックバッファとクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができるという効果が得られる。
【００８２】
【発明の実施の形態】
以下、本発明の第１の実施の形態を図面を参照しながら説明する。図１ないし図４は、本発明に係るブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置の第１の実施の形態を示す図である。
【００８３】
本実施の形態は、本発明に係るブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置を、図３に示すように、クロック信号に基づいて動作するブロックセル１０においてクロック端子Ｃをブロックセル１０内でその周縁近傍に複数設けることにより、ブロックセル１０を配置したときに、ブロックセル１０とクロックバッファ２６との配線長を小さくし、クロック信号のスキューを低減する場合について適用したものである。
【００８４】
まず、本発明を適用するコンピュータシステムの構成を図１を参照しながら説明する。図１は、本発明を適用するコンピュータシステムの構成を示すブロック図である。
【００８５】
コンピュータ１００は、図１に示すように、制御プログラムに基づいて演算およびシステム全体を制御するＣＰＵ３０と、所定領域にあらかじめＣＰＵ３０の制御プログラム等を格納しているＲＯＭ３２と、ＲＯＭ３２等から読み出したデータやＣＰＵ３０の演算過程で必要な演算結果を格納するためのＲＡＭ３４と、ＲＡＭ３４の特定領域に格納されているデータを画像信号に変換して表示装置３４に出力するＣＲＴＣ３６と、外部装置に対してデータの入出力を媒介するＩ／Ｆ３８とで構成されており、これらは、データを転送するための信号線であるバス３９で相互にかつデータ授受可能に接続されている。
【００８６】
Ｉ／Ｆ３８には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能なキーボードやマウス等からなる入力装置４０と、データやテーブル等をファイルとして格納する記憶装置４２と、画像信号に基づいて画面を表示する表示装置４４とが接続されている。
【００８７】
ＲＡＭ３４は、特定領域として、表示装置４４に表示するための表示用データを格納するＶＲＡＭ３５を有しており、ＶＲＡＭ３５は、ＣＰＵ３０とＣＲＴＣ３６とで独立にアクセスが可能となっている。
【００８８】
ＣＲＴＣ３６は、ＶＲＡＭ３５に格納されている表示用データを先頭アドレスから所定周期で順次読み出し、読み出した表示用データを画像信号に変換して表示装置４４に出力するようになっている。
【００８９】
記憶装置４２は、あらかじめ配置・配線等の最適化が施され、機能検証が終了しているブロックセル１０を構成するための配置データを記憶するためのセルライブラリとしての役割を有する。
【００９０】
ＣＰＵ３０は、マイクロプロセッシングユニットＭＰＵ等からなり、半導体集積回路を設計するときは、ＲＯＭ３２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図２のフローチャートに示す設計支援処理を実行するようになっている。図２は、設計支援処理を示すフローチャートである。
【００９１】
設計支援処理は、半導体集積回路のうち半導体チップを製造するために必要なチップマスクパターンデータと、半導体集積回路のうち配線パターンを形成するのに必要な配線マスクパターンデータとを生成する処理であって、ＣＰＵ３０において実行されると、図２に示すように、まず、ステップＳ１００に移行する。
【００９２】
ステップＳ１００では、ブロックセル１０の配置データを記憶装置４２から読み出し、クロック信号を入力するためのクロック端子Ｃをブロックセル１０内でその周縁近傍に複数設けるとともに、読み出した配置データに基づいてブロックセル１０内の各セルを配置する。なお、ここでの配置は、コンピュータ１００上で仮想的に形成した空間において行われるものである。以下、ブロックセル１０内の配線、ブロックセル１０の配置・配線について同じである。
【００９３】
具体的に、このステップＳ１００では、例えば、図３に示すように、クロック端子Ｃ２，Ｃ４，Ｃ６，Ｃ８をブロックセル１０の各辺中央の近傍にそれぞれ一つずつ設けるとともに、クロック端子Ｃ１，Ｃ３，Ｃ５，Ｃ７をブロックセル１０の各角部の近傍にそれぞれ一つずつ設ける。図３は、ブロックセル１０の構成を示す図である。
【００９４】
次いで、ステップＳ１０２に移行して、読み出した配置データに基づいてブロックセル１０内の各セルを配線し、この際に、各クロック端子Ｃ１〜Ｃ８から入力したクロック信号に基づいてブロックセル１０が動作するようにブロックセル１０内を配線し、ステップＳ１０４に移行する。
【００９５】
ステップＳ１０４では、すべてのブロックセル１０の構成が終了したか否かを判定し、すべてのブロックセル１０の構成が終了したと判定されたとき（Ｙｅｓ）は、ステップＳ１０６に移行して、自動配線アルゴリズム等により、半導体チップのセル配置領域に各ブロックセル１０およびクロックバッファ等を配置するとともに、ブロックセル１０にクロック信号を分配するクロックバッファと、ブロックセル１０のクロック端子Ｃ１〜Ｃ８のうちそのクロックバッファから最も近くにあるクロック端子とを接続・配線し、ステップＳ１０８に移行する。
【００９６】
ステップＳ１０８では、ステップＳ１００，Ｓ１０２，Ｓ１０６での配置・配線結果に基づいて、チップマスクパターンデータおよび配線マスクパターンデータを生成し、ステップＳ１１０に移行して、生成したチップマスクパターンデータおよび配線マスクパターンデータを記憶装置４２に格納し、一連の処理を終了する。
【００９７】
一方、ステップＳ１０４で、すべてのブロックセル１０の構成が終了しないと判定されたとき（Ｎｏ）は、ステップＳ１００に移行する。
【００９８】
次に、上記第１の実施の形態の動作を図４を参照しながら説明する。図４は、本実施の形態により設計したブロックセル１０，１２を配置・配線した状態を示す平面図である。
【００９９】
ブロックセルを用いて半導体集積回路を設計する場合、設計者は、記憶装置４２のなかから所望の機能を有するブロックセルを選択するとともに、実現しようとする半導体集積回路の機能に対応して上記選択したブロックセルについて接続関係を規定する。ここでは、図４に示すように、ブロックセルとしてブロックセル１０，１２を選択するものとする。
【０１００】
このようにブロックセルを選択し、接続関係を規定すると、ステップＳ１００を経て、ＣＰＵ３０により、ブロックセル１０の配置データが記憶装置４２から読み出され、クロック端子Ｃがブロックセル１０内でその周縁近傍に複数設けられるとともに、読み出された配置データに基づいてブロックセル１０内の各セルが配置される。このクロック端子Ｃの形成では、クロック端子Ｃ２，Ｃ４，Ｃ６，Ｃ８がブロックセル１０の各辺中央の近傍にそれぞれ一つずつ設けられるとともに、クロック端子Ｃ１，Ｃ３，Ｃ５，Ｃ７がブロックセル１０の各角部の近傍にそれぞれ一つずつ設けられる。
【０１０１】
次いで、ステップＳ１０２を経て、読み出された配置データに基づいてブロックセル１０内の各セルが配線され、この際に、各クロック端子Ｃ１〜Ｃ８から入力したクロック信号に基づいてブロックセル１０が動作するようにブロックセル１０内が配線される。
【０１０２】
よって、これら一連の処理により、ブロックセル１０が構成される。なお、これら一連の処理は、ブロックセル１２についても同様に行われる。
【０１０３】
次いで、ステップＳ１０６を経て、自動配線アルゴリズム等により、半導体チップのセル配置領域に各ブロックセル１０，１２およびクロックバッファ等が配置されるとともに、ブロックセル１０，１２にクロック信号を分配するクロックバッファと、ブロックセル１０，１２のクロック端子Ｃ１〜Ｃ８のうちそのクロックバッファから最も近くにあるクロック端子とが接続・配線される。
【０１０４】
図４の例では、まず、ルートクロックバッファ２０と、クロックバッファ２２〜２６と、ブロックセル１０，１２とが配置される。そして、ルートクロックバッファ２０と各クロックバッファ２２〜２６とが接続・配線され、クロックバッファ２６と、ブロックセル１０のクロック端子Ｃ１〜Ｃ８のうちクロックバッファ２６から最も近くにあるクロック端子Ｃ３とが接続・配線されるとともに、クロックバッファ２６と、ブロックセル１２のクロック端子Ｃ１〜Ｃ８のうちクロックバッファ２６から最も近くにあるクロック端子Ｃ１とが接続・配線される。
【０１０５】
次いで、ステップＳ１０８，Ｓ１１０を経て、ステップＳ１００，Ｓ１０２，Ｓ１０６での配置・配線結果に基づいて、チップマスクパターンデータおよび配線マスクパターンデータが生成され、生成されたチップマスクパターンデータおよび配線マスクパターンデータが記憶装置４２に格納される。
【０１０６】
そして、チップマスクパターンデータおよび配線マスクパターンデータに基づいて、半導体集積回路が製造される。具体的には、チップマスクパターンデータに基づいて製造されたマスクパターンにより、スタンダードセルおよびベーシックセルのバルク層が基板上に形成されることで、半導体チップが製造される。そして、配線マスクパターンデータに基づいて製造されたマスクパターンにより、スタンダードセルおよびベーシックセルを配線する配線層が、製造された半導体チップ上に形成されることで、半導体集積回路が製造される。
【０１０７】
このようにして、本実施の形態では、クロック端子Ｃ１〜Ｃ８をブロックセル１０内でその周縁近傍に複数設け、各クロック端子Ｃ１〜Ｃ８から入力したクロック信号に基づいて動作するようにブロックセル１０内を配線するようにした。
【０１０８】
これにより、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ１２と、クロック端子Ｃ１〜Ｃ８のうちクロックバッファ２６から最も近くにあるクロック端子Ｃ３とを接続・配線すれば、従来に比して、配線長を小さくすることができるので、余分な回路を追加することなく、クロック信号のスキューを低減することができる。
【０１０９】
さらに、本実施の形態では、クロック端子Ｃ２，Ｃ４，Ｃ６，Ｃ８をブロックセル１０の各辺中央の近傍にそれぞれ一つずつ設けるとともに、クロック端子Ｃ１，Ｃ３，Ｃ５，Ｃ７をブロックセル１０の各角部の近傍にそれぞれ一つずつ設けるようにした。
【０１１０】
これにより、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ２６からクロック端子までの距離が短くなる可能性があり、クロックバッファ２６とクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができる。
【０１１１】
上記実施の形態において、ステップＳ１００は、請求項８記載のクロック端子形成工程、または請求項１０記載のクロック端子形成手段に対応し、ステップＳ１０２は、請求項８記載の配線工程、または請求項１０記載の配線手段に対応している。
【０１１２】
次に、本発明の第２の実施の形態を図面を参照しながら説明する。図５ないし図７は、本発明に係るブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置の第２の実施の形態を示す図である。なお、以下、上記第１の実施の形態と異なる部分についてのみ説明し、上記第１の実施の形態と重複する部分については同一の符号を付して説明を省略する。
【０１１３】
本実施の形態は、本発明に係るブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置を、図６に示すように、クロック信号に基づいて動作するブロックセル１０においてクロック端子Ｃをブロックセル１０内でその中心近傍に設けることにより、ブロックセル１０を配置したときに、ブロックセル１０とクロックバッファ２６との配線長を小さくし、クロック信号のスキューを低減する場合について適用したものである。
【０１１４】
ＣＰＵ３０は、半導体集積回路を設計するときは、ＲＯＭ３２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図５のフローチャートに示す設計支援処理を実行するようになっている。図５は、設計支援処理を示すフローチャートである。
【０１１５】
設計支援処理は、半導体集積回路のうち半導体チップを製造するために必要なチップマスクパターンデータと、半導体集積回路のうち配線パターンを形成するのに必要な配線マスクパターンデータとを生成する処理であって、ＣＰＵ３０において実行されると、図５に示すように、まず、ステップＳ２００に移行する。
【０１１６】
ステップＳ２００では、ブロックセル１０の配置データを記憶装置４２から読み出し、クロック信号を入力するためのクロック端子Ｃをブロックセル１０内でその中心近傍に設け、ステップＳ２０２に移行して、ブロックセル１０の周縁のうち異なる複数の箇所からクロック端子Ｃまでクロック信号線を配線するための配線領域をブロックセル１０内に設けるとともに、読み出した配置データに基づいてブロックセル１０内の各セルを上記配線領域以外の領域に配置する。なお、ここでの配置は、コンピュータ１００上で仮想的に形成した空間において行われるものである。以下、ブロックセル１０内の配線、ブロックセル１０の配置・配線について同じである。
【０１１７】
具体的に、このステップＳ２０２では、例えば、図６に示すように、ブロックセル１０の辺中央Ｉｎ１からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ１と、ブロックセル１０の辺中央Ｉｎ２からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ２と、ブロックセル１０の辺中央Ｉｎ３からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ３と、ブロックセル１０の辺中央Ｉｎ４からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ４とをブロックセル１０内に設ける。また、ブロックセル１０内の各セルを、ブロックセル１０内において配線領域ＬＰ１〜ＬＰ４以外の領域ＣＰ１〜ＣＰ４に配置する。図６は、ブロックセル１０の構成を示す図である。
【０１１８】
次いで、ステップＳ２０４に移行して、読み出した配置データに基づいてブロックセル１０内の各セルを配線し、この際に、クロック端子Ｃから入力したクロック信号に基づいてブロックセル１０が動作するようにブロックセル１０内を配線し、ステップＳ２０６に移行する。
【０１１９】
ステップＳ２０６では、すべてのブロックセル１０の構成が終了したか否かを判定し、すべてのブロックセル１０の構成が終了したと判定されたとき（Ｙｅｓ）は、ステップＳ２０８に移行して、自動配線アルゴリズム等により、半導体チップのセル配置領域に各ブロックセル１０およびクロックバッファ等を配置・配線し、ステップＳ２１０に移行する。
【０１２０】
ステップＳ２１０では、ステップＳ２００〜Ｓ２０４，Ｓ２０８での配置・配線結果に基づいて、チップマスクパターンデータおよび配線マスクパターンデータを生成し、ステップＳ１１０に移行して、生成したチップマスクパターンデータおよび配線マスクパターンデータを記憶装置４２に格納し、一連の処理を終了する。
【０１２１】
一方、ステップＳ２０６で、すべてのブロックセル１０の構成が終了しないと判定されたとき（Ｎｏ）は、ステップＳ２００に移行する。
【０１２２】
次に、上記第２の実施の形態の動作を図７を参照しながら説明する。図７は、本実施の形態により設計したブロックセル１０，１２を配置・配線した状態を示す平面図である。
【０１２３】
ブロックセルを用いて半導体集積回路を設計する場合、設計者は、記憶装置４２のなかから所望の機能を有するブロックセルを選択するとともに、実現しようとする半導体集積回路の機能に対応して上記選択したブロックセルについて接続関係を規定する。ここでは、図７に示すように、ブロックセルとしてブロックセル１０，１２を選択するものとする。
【０１２４】
このようにブロックセルを選択し、接続関係を規定すると、ステップＳ２００，Ｓ２０２を経て、ＣＰＵ３０により、ブロックセル１０の配置データが記憶装置４２から読み出され、クロック端子Ｃがブロックセル１０内でその中心近傍に設けられ、ブロックセル１０の周縁のうち異なる複数の箇所からクロック端子Ｃまでクロック信号線を配線するための配線領域がブロックセル１０内に設けられるとともに、読み出された配置データに基づいてブロックセル１０内の各セルが上記配線領域以外の領域に配置される。この配線領域の形成では、配線領域ＬＰ１と、配線領域ＬＰ２と、配線領域ＬＰ３と、配線領域ＬＰ４とがブロックセル１０内に設けられる。また、ブロックセル１０内における各セルの配置では、ブロックセル１０内の各セルが領域ＣＰ１〜ＣＰ４に配置される。
【０１２５】
次いで、ステップＳ２０４を経て、読み出された配置データに基づいてブロックセル１０内の各セルが配線され、この際に、クロック端子Ｃから入力したクロック信号に基づいてブロックセル１０が動作するようにブロックセル１０内が配線される。
【０１２６】
よって、これら一連の処理により、ブロックセル１０が構成される。なお、これら一連の処理は、ブロックセル１２についても同様に行われる。
【０１２７】
次いで、ステップＳ２０８を経て、自動配線アルゴリズム等により、半導体チップのセル配置領域に各ブロックセル１０，１２およびクロックバッファ等が配置される。
【０１２８】
図７の例では、まず、ルートクロックバッファ２０と、クロックバッファ２２〜２６と、ブロックセル１０，１２とが配置される。そして、ルートクロックバッファ２０と各クロックバッファ２２〜２６とが接続・配線され、クロックバッファ２６とブロックセル１０のクロック端子Ｃとの距離が最短となるように、ブロックセル１０の配線領域ＬＰ２を経由してクロックバッファ２６とブロックセル１０のクロック端子Ｃとが接続・配線されるとともに、クロックバッファ２６とブロックセル１２のクロック端子Ｃとの距離が最短となるように、ブロックセル１２の配線領域ＬＰ１を経由してクロックバッファ２６とブロックセル１２のクロック端子Ｃとが接続・配線される。
【０１２９】
そして、ステップＳ１０８，Ｓ１１０を経て、ステップＳ１００，Ｓ１０２，Ｓ１０６での配置・配線結果に基づいて、チップマスクパターンデータおよび配線マスクパターンデータが生成され、生成されたチップマスクパターンデータおよび配線マスクパターンデータが記憶装置４２に格納される。
【０１３０】
このようにして、本実施の形態では、クロック端子Ｃをブロックセル１０内でその中心近傍に設け、ブロックセル１０の周縁のうち異なる複数の箇所からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ１〜ＬＰ４をブロックセル１０内に設けるようにした。
【０１３１】
これにより、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ２６からは、クロックバッファ２６とブロックセル１０のクロック端子Ｃとの距離が最短となるように、ブロックセル１０の周縁のうち配線領域の入口となる複数の箇所のいずれかを経由してブロックセル１０のクロック端子Ｃまで配線すれば、従来に比して、配線長を小さくすることができるので、余分な回路を追加することなく、クロック信号のスキューを低減することができる。
【０１３２】
さらに、本実施の形態では、ブロックセル１０の辺中央Ｉｎ１からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ１と、ブロックセル１０の辺中央Ｉｎ２からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ２と、ブロックセル１０の辺中央Ｉｎ３からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ３と、ブロックセル１０の辺中央Ｉｎ４からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ４とをブロックセル１０内に設けるようにした。
【０１３３】
これにより、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ２６からクロック端子までの距離が短くなる可能性があり、クロックバッファ２６とクロック端子とを接続・配線すれば、配線長をさらに小さくすることができるので、クロック信号のスキューをさらに低減することができる。
【０１３４】
上記実施の形態において、ステップＳ２００は、請求項９記載のクロック端子形成工程、または請求項１１記載のクロック端子形成手段に対応し、ステップＳ２０２は、請求項９記載の配線領域形成工程、または請求項１１記載の配線領域形成手段に対応している。
【０１３５】
なお、上記第１の実施の形態においては、クロック端子Ｃ２，Ｃ４，Ｃ６，Ｃ８をブロックセル１０の各辺中央の近傍にそれぞれ一つずつ設けるとともに、クロック端子Ｃ１，Ｃ３，Ｃ５，Ｃ７をブロックセル１０の各角部の近傍にそれぞれ一つずつ設けるようにしたが、これに限らず、例えば、図８に示すように、クロック端子Ｃを設けるようにしてもよい。図８は、本発明の他の実施の形態を示す図である。
【０１３６】
まず、図８（ａ）の例では、クロック端子Ｃをブロックセル１０の各辺に設けず、クロック端子Ｃ１，Ｃ３，Ｃ５，Ｃ７をブロックセル１０の各角部の近傍にそれぞれ一つずつ設けるようになっている。
【０１３７】
次に、図８（ｂ）の例では、クロック端子Ｃをブロックセル１０の各角部に設けず、クロック端子Ｃ２，Ｃ４，Ｃ６，Ｃ８をブロックセル１０の各辺中央の近傍にそれぞれ一つずつ設けるようになっている。もちろん、このようにブロックセル１０の各辺中央に設けるのに限らず、各辺のいずれの場所に設けても差し支えない。
【０１３８】
次に、図８（ｃ）の例では、クロック端子Ｃ１をブロックセル１０の周縁の任意の位置（例えば、ブロックセル１０の一つの角部）に設け、クロック端子Ｃ５を、ブロックセル１０の中心位置からみてクロック端子Ｃ１と点対称の位置に設けるようになっている。
【０１３９】
次に、図８（ｄ）の例では、クロック端子Ｃ１をブロックセル１０の周縁の任意の位置（例えば、ブロックセル１０の一つの角部）に設け、クロック端子Ｃ３を、ブロックセル１０の中心位置Ｏを通る水平線に対してクロック端子Ｃ１と線対称の位置に設けるようになっている。
【０１４０】
次に、図８（ｅ）の例では、クロック端子Ｃ１をブロックセル１０の周縁の任意の位置（例えば、ブロックセル１０の一つの角部）に設け、クロック端子Ｃ７を、ブロックセル１０の中心位置Ｏを通る垂直線に対してクロック端子Ｃ１と線対称の位置に設けるようになっている。
【０１４１】
次に、図８（ｆ）の例では、クロック端子Ｃ３，Ｃ５，Ｃ８を設けるにあたって、クロック端子Ｃ５とクロック端子Ｃ８との距離ａと、クロック端子Ｃ３とクロック端子Ｃ８との距離ｂと、クロック端子Ｃ３とクロック端子Ｃ５との距離ｃとの総和が最大となるように、これらクロック端子Ｃを設けるようになっている。なお、ここでは、クロック端子Ｃを３つ設ける場合について説明したが、これよりも多数のクロック端子Ｃを設ける場合も同じ要領で行うことができる。
【０１４２】
これにより、各クロック端子Ｃ３，Ｃ５，Ｃ８が分散的に配置されるので、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ２６からクロック端子までの距離が短くなる可能性があり、クロックバッファ２６とクロック端子とを接続・配線すれば、配線長をさらに小さくすることができる。
【０１４３】
次に、図８（ｇ）の例では、クロック端子Ｃ３，Ｃ５，Ｃ８を設けるにあたって、各クロック端子Ｃ３，Ｃ５，Ｃ８から入力したクロック信号を必要とする内部セル１４とクロック端子Ｃ８との配線長ｌ１と、内部セル１４とクロック端子Ｃ５との配線長ｌ２と、内部セル１４とクロック端子Ｃ３との配線長ｌ３との総和が最小となるように、これらクロック端子Ｃを設けるようになっている。なお、ここでは、クロック端子Ｃを３つ設ける場合について説明したが、これよりも多数のクロック端子Ｃを設ける場合も同じ要領で行うことができる。
【０１４４】
これにより、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ２６に接続されるクロック端子Ｃから内部セル１４までの距離が短くなる可能性があり、クロックバッファ２６とクロック端子とを接続・配線すれば、配線長をさらに小さくすることができる。
【０１４５】
なお、図８（ｇ）の例は、配線長を小さくする観点から図８（ｆ）の例と組み合わせて行うのがより好適である。
【０１４６】
また、上記第２の実施の形態においては、ブロックセル１０の辺中央Ｉｎ１からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ１と、ブロックセル１０の辺中央Ｉｎ２からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ２と、ブロックセル１０の辺中央Ｉｎ３からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ３と、ブロックセル１０の辺中央Ｉｎ４からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ４とをブロックセル１０内に設けるようにしたが、これに限らず、図９に示すように、配線領域をブロックセル１０内に設けるようにしてもよい。図９は、本発明の他の実施の形態を示す図である。
【０１４７】
まず、図９（ａ）の例では、ブロックセル１０の各辺Ｉｎ１〜Ｉｎ４からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ１〜ＬＰ４を設けず、ブロックセル１０の各角部Ｉｎ５〜Ｉｎ８からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ５〜ＬＰ８をブロックセル１０内に設けるようになっている。
【０１４８】
次に、図９（ｂ）の例では、ブロックセル１０の各辺Ｉｎ１〜Ｉｎ４からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ１〜ＬＰ４と、ブロックセル１０の各角部Ｉｎ５〜Ｉｎ８からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ５〜ＬＰ８とをブロックセル１０内に設けるようになっている。
【０１４９】
次に、図９（ｃ）の例では、ブロックセル１０の周縁の任意の位置（例えば、ブロックセル１０の一つの角部Ｉｎ５）からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ５と、ブロックセル１０の中心位置からみて角部Ｉｎ５と点対称の位置Ｉｎ７からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ７とをブロックセル１０内に設けるようになっている。
【０１５０】
次に、図９（ｄ）の例では、ブロックセル１０の周縁の任意の位置（例えば、ブロックセル１０の一つの角部Ｉｎ５）からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ５と、ブロックセル１０の中心位置を通る水平線に対して角部Ｉｎ５と線対称の位置Ｉｎ６からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ６とをブロックセル１０内に設けるようになっている。
【０１５１】
次に、図９（ｅ）の例では、ブロックセル１０の周縁の任意の位置（例えば、ブロックセル１０の一つの角部Ｉｎ５）からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ５と、ブロックセル１０の中心位置を通る垂直線に対して角部Ｉｎ５と線対称の位置Ｉｎ８からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ８とをブロックセル１０内に設けるようになっている。
【０１５２】
次に、図９（ｆ）の例では、ブロックセル１０の周縁の点Ｉｎ４とブロックセル１０の周縁の点Ｉｎ７との距離ａと、点Ｉｎ４とブロックセル１０の周縁の点Ｉｎ６との距離ｂと、点Ｉｎ６と点Ｉｎ７との距離ｃとの総和が最大となるようにそれら点の位置を決定し、点Ｉｎ４からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ４と、点Ｉｎ６からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ６と、点Ｉｎ７からクロック端子Ｃまでクロック信号線を配線するための配線領域ＬＰ７とをブロックセル１０内に設けるようになっている。なお、ここでは、配線領域を３つ設ける場合について説明したが、これよりも多数の配線領域を設ける場合も同じ要領で行うことができる。
【０１５３】
これにより、ブロックセル１０の周縁のうち配線領域の入口となる複数の箇所が分散的に配置されるので、ブロックセル１０を配置したときに、ブロックセル１０にクロック信号を分配するクロックバッファ２６からクロック端子までの距離が短くなる可能性があり、クロックバッファ２６とクロック端子とを接続・配線すれば、配線長をさらに小さくすることができる。
【０１５４】
また、上記第１および第２の実施の形態において、図２および図５のフローチャートに示す処理を実行するにあたってはいずれも、ＲＯＭ３２にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをＲＡＭ３４に読み込んで実行するようにしてもよい。
【０１５５】
ここで、記憶媒体とは、ＲＡＭ、ＲＯＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【０１５６】
また、上記第１の実施の形態においては、本発明に係るブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置を、図３に示すように、クロック信号に基づいて動作するブロックセル１０においてクロック端子Ｃをブロックセル１０内でその周縁近傍に複数設けることにより、ブロックセル１０を配置したときに、ブロックセル１０とクロックバッファ２６との配線長を小さくし、クロック信号のスキューを低減する場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【０１５７】
また、上記第２の実施の形態においては、本発明に係るブロックセル、ブロックセルの設計方法およびブロックセルの設計支援装置を、図６に示すように、クロック信号に基づいて動作するブロックセル１０においてクロック端子Ｃをブロックセル１０内でその中心近傍に設けることにより、ブロックセル１０を配置したときに、ブロックセル１０とクロックバッファ２６との配線長を小さくし、クロック信号のスキューを低減する場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【０１５８】
【発明の効果】
以上説明したように、本発明に係る請求項１ないし７記載のブロックセルによれば、従来に比して、配線長を小さくすることができるので、余分な回路を追加することなく、クロック信号のスキューを低減することができるという効果が得られる。
【０１５９】
さらに、本発明に係る請求項２ないし４、６または７記載のブロックセルによれば、クロック信号のスキューをさらに低減することができるという効果も得られる。
【０１６０】
一方、本発明に係る請求項８または９記載のブロックセルの設計方法によれば、従来に比して、配線長を小さくすることができるので、余分な回路を追加することなく、クロック信号のスキューを低減することができるという効果が得られる。
【０１６１】
一方、本発明に係る請求項１０または１１記載のブロックセルの設計支援装置によれば、従来に比して、配線長を小さくすることができるので、余分な回路を追加することなく、クロック信号のスキューを低減することができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明を適用するコンピュータシステムの構成を示すブロック図である。
【図２】設計支援処理を示すフローチャートである。
【図３】ブロックセル１０の構成を示す図である。
【図４】本実施の形態により設計したブロックセル１０，１２を配置・配線した状態を示す平面図である。
【図５】設計支援処理を示すフローチャートである。
【図６】ブロックセル１０の構成を示す図である。
【図７】本実施の形態により設計したブロックセル１０，１２を配置・配線した状態を示す平面図である。
【図８】本発明の他の実施の形態を示す図である。
【図９】本発明の他の実施の形態を示す図である。
【図１０】従来の設計方法により設計したブロックセル１０，１２を配置・配線した状態を示す平面図である。
【符号の説明】
１０，１２          ブロックセル
２０                ルートクロックバッファ
２２〜２６          クロックバッファ
１００              コンピュータ
３０                ＣＰＵ
３２                ＲＯＭ
３４                ＲＡＭ
３８                Ｉ／Ｆ
４０                入力装置
４２                記憶装置
４４                表示装置
Ｃ                  リセット端子
ＬＰ                配線領域
ＣＰ                セル配置領域
【図１】
0003617430.tif 000002
【図２】
0003617430.tif 000003
【図３】
0003617430.tif 000004
【図４】
0003617430.tif 000005
【図５】
0003617430.tif 000006
【図６】
0003617430.tif 000007
【図７】
0003617430.tif 000008
【図８】
0003617430.tif 000009
【図９】
0003617430.tif 000010
【図１０】
0003617430.tif 000011