(57)【要約】【課題】配線の遅延特性のばらつきを抑制すること。【解決手段】回路設計支援装置１は、設定部１ａと生成部１ｂとを有している。設定部１ａは、半導体集積回路モデル２の層２ａ、２ｂそれぞれに、積層方向および面方向に隣接するユニット３の配線方向が互いに異なる方向に配線が生成される複数の矩形のユニット３を設定する。生成部１ｂは、ユニット３の境界で異なる層のユニット３に跨る配線を生成する。【選択図】図１
2012113453.tif 000002
【特許請求の範囲】
【請求項１】
複数の層を有する半導体集積回路モデルの少なくとも２つの前記層それぞれに、積層方向および面方向に隣接するユニットの配線方向が互いに異なる方向に配線が生成される複数の矩形のユニットを設定する設定部と、
前記ユニットの境界で異なる層の前記ユニットに跨る配線を生成する生成部と、
を有することを特徴とする回路設計支援装置。
【請求項２】
前記設定部は、積層方向および面方向に隣接する前記ユニットの配線方向が互いに直交する方向に配線される前記ユニットを設定することを特徴とする請求項１記載の回路設計支援装置。
【請求項３】
前記設定部は、前記ユニットに配線方向を規定するトラックを設定し、前記生成部は、前記トラックに沿って配線を生成することを特徴とする請求項１または２に記載の回路設計支援装置。
【請求項４】
前記生成部は、前記配線それぞれの長さを等しく生成することを特徴とする請求項１ないし３のいずれかに記載の回路設計支援装置。
【請求項５】
前記生成部は、前記配線それぞれの各層に位置する比率を等しく生成することを特徴とする請求項１ないし４のいずれかに記載の回路設計支援装置。
【請求項６】
前記ユニットの一辺の長さは、前記配線の長さの１／ｎ倍（ｎは偶数）であることを特徴とする請求項１ないし５のいずれかに記載の回路設計支援装置。
【請求項７】
前記ユニットには伝送する信号の種別の異なる配線が生成されることを特徴とする請求項１ないし６のいずれかに記載の回路設計支援装置。
【請求項８】
コンピュータに、
複数の層を有する半導体集積回路モデルの少なくとも２つの前記層それぞれに、積層方向および面方向に隣接するユニットの配線方向が互いに異なる方向に配線が生成される複数の矩形のユニットを設定し、
前記ユニットの境界で異なる層の前記ユニットに跨る配線を生成する、
処理を実行させることを特徴とする回路設計支援方法。
【請求項９】
複数の層が積層された半導体集積回路において、
信号を伝達する複数の信号伝達回路と、
前記信号伝達回路間を接続し、前記複数の層に跨りそれぞれが同じ配線長を有し、各層に位置する比率がそれぞれ等しい配線と、
を有することを特徴とする半導体集積回路。
【請求項１０】
前記層には伝送する信号の種別の異なる配線が生成されていることを特徴とする請求項９記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路設計支援装置、回路設計支援方法および半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路のプロセスの微細化が進んでいる。プロセスの微細化が進むと半導体集積回路の配線特性（配線容量、配線抵抗等）の遅延時間のばらつきが大きくなる。具体的には、配線の遅延特性は、配線抵抗Ｒと配線容量Ｃの積に比例する。ここで、配線抵抗Ｒは抵抗率に比例し、配線の幅・高さに反比例する。従って、プロセスの微細化に伴い配線の幅・高さが減少していくと、単位長あたりの配線抵抗Ｒは増加する。また、配線間の距離が狭まることにより、配線容量Ｃの値も増加する。配線抵抗Ｒと配線容量Ｃの値が増加すると、遅延時間のばらつきも大きくなる。このため、配線抵抗および配線容量のばらつきの変動の抑制を図る技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２８８２１４号公報
【特許文献２】特開２００９−７６７０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
遅延時間のばらつきが大きくなると、半導体集積回路の設計仕様を満たす検証条件の組み合わせ（サインオフコーナ）が増加する。配線層や、サインオフコーナ毎に設計仕様を満たす検証条件は全く異なる。例えば、配線層の行列方向に配線が行われており、ある回路からクロック信号を複数の回路に送出する場合を例示する。クロック信号を受け取る回路に至るまでの配線の行方向の配線と列方向の配線の割合が異なると、各配線の遅延特性も変化する。このため、全てのサインオフコーナで、配線の遅延特性を合わせることは非常に困難である。例えば、クロック配線の遅延特性がばらつくと、クロックスキューが大きくなりタイミング収束性が悪化するという問題がある。
【０００５】
なお、クロック配線の遅延特性について説明したが、クロック信号以外の他の信号の配線についても同様の問題がある。
本発明はこのような点に鑑みてなされたものであり、配線の遅延特性のばらつきを抑制する回路設計支援装置、回路設計支援方法および半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、開示の回路設計支援装置が提供される。この回路設計支援装置は、設定部と生成部とを有している。
設定部は、複数の層を有する半導体集積回路モデルの少なくとも２つの層それぞれに、積層方向および面方向に隣接するユニットの配線方向が互いに異なる方向に配線が生成される複数の矩形のユニットを設定する。
【０００７】
生成部は、ユニットの境界で異なる層のユニットに跨る配線を生成する。
また、上記目的を達成するために、開示の半導体集積回路が提供される。この半導体集積回路は、複数の層が積層された回路であって、信号を伝達する複数の信号伝達回路と、この信号伝達回路間を接続し、複数の層に跨りそれぞれが同じ配線長を有し、各層に位置する比率がそれぞれ等しい配線と、を有している。
【発明の効果】
【０００８】
配線の遅延特性のばらつきを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態の回路設計支援装置の概要を示す図である。
【図２】第２の実施の形態の回路設計支援装置のハードウェアの一構成例を示す図である。
【図３】回路設計支援装置の機能を示すブロック図である。
【図４】クロックバッファ回路の一例を示す図である。
【図５】配線用のトラックを説明する図である。
【図６】クロック信号用の配線層における電源配線の配置パターンを説明する図である。
【図７】クロック信号用の配線層におけるクロック配線の配置パターンを説明する図である。
【図８】クロック信号用の配線層における電源配線の配置パターンを説明する図である。
【図９】トラックにクロック配線を生成することにより実現できる配線例を示している。
【図１０】クロック生成部が生成したクロックツリーを説明する図である。
【図１１】回路設計支援装置の動作を説明するフローチャートである。
【図１２】第２の実施の形態の配線層モデルの変形例を示す図である。
【発明を実施するための形態】
【００１０】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の回路設計支援装置について説明し、その後、実施の形態をより具体的に説明する。
【００１１】
＜第１の実施の形態＞
図１は、第１の実施の形態の回路設計支援装置の概要を示す図である。
実施の形態の回路設計支援装置（コンピュータ）１は、設定部１ａと生成部１ｂとを有している。
【００１２】
設定部１ａは、回路設計対象の複数の層を有する半導体集積回路モデルの少なくとも２つの層の各層それぞれに、積層方向および面方向に隣接するユニットの配線方向が互いに異なる方向に配線が生成される複数の矩形のユニットを設定する。この半導体集積回路モデルは、例えば、ネットリスト格納部１ｃに格納されているネットリストを読み出すことにより、取得することができる。なお、図１ではネットリスト格納部１ｃは回路設計支援装置１内に設けられている例を示しているが、ネットリスト格納部１ｃは回路設計支援装置１の外部に設けられていてもよい。
【００１３】
図１では、半導体集積回路モデル２のクロック配線が生成される積層方向に重なる２つの層２ａ、２ｂを図示している。これら層２ａ、２ｂは、矩形のユニット３を有している。例えば層２ａは、９つのユニット３を有している。ユニット３の各辺の長さは特に限定されないが、例えばクロック配線長が１μｍ〜２μｍである場合、ユニット３は、クロック配線長を４で除算した２５０μｍ〜５００μｍとするのが好ましい。
【００１４】
各ユニット３には、配線の方向および位置を規定するトラック４が設定されている。このトラック４は、設定部１ａが回路設計時に仮想的に層２ａ、２ｂに設定するものである。設定部１ａは、隣接するユニット３の配線方向が互いに異なるようトラック４を設定する。図１に示すユニット３ａには、紙面左右方向（横方向）に引かれた複数のトラック４が設定されている。そして、ユニット３ａの右方向に配置されているユニット３ｂには、紙面上下方向（縦方向）に引かれた複数のトラック４が設定されている。また、ユニット３ａの下方向に配置されているユニット３ｃには、縦方向に引かれた複数のトラック４が設定されている。また、ユニット３ａの積層方向に配置されているユニット３ｄは、縦方向に引かれた複数のトラック４が設定されている。
【００１５】
生成部１ｂは、ユニット３の境界で異なる層のユニットに跨る配線を生成する。なお、生成部１ｂは、ユニットの境界以外にも異なる層のユニットに跨る配線を生成することができる。図１では、層２ａ、２ｂの各ユニット３に跨る３本のクロック配線を生成した例を示している。図１では、層２ｂのトラック４を実線で示し層２ａのトラック４を点線で示している。また、図１では、生成したクロック配線を抜き出した図も示している。
【００１６】
１本目のクロック配線ＣＬ１は、層２ｂの点５ａを開始点としている。生成部１ｂは、点５ａからトラック４に沿ってクロック配線を生成し、ユニットの境界である点５ｂにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿ってクロック配線を生成している。そして、点５ｃにて層２ｂのトラック４に乗り替えて層２ｂのトラック４に沿ってクロック配線を生成している。そして、点５ｄにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿ってクロック配線を生成している。そして、点５ｅを終点としている。
【００１７】
２本目のクロック配線ＣＬ２は、層２ｂの点５ｆを開始点としている。生成部１ｂは、点５ｆからトラック４に沿って配線を生成し、点５ｇにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿って配線を生成している。そして、点５ｈにて層２ｂのトラック４に乗り替えて層２ｂのトラック４に沿って配線を生成している。そして、点５ｉにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿って配線を生成している。そして、点５ｊにて層２ｂのトラック４に乗り替えて層２ｂのトラック４に沿って配線を生成している。そして、点５ｋにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿って配線を生成している。そして、点５ｍを終点としている。
【００１８】
３本目のクロック配線ＣＬ３は、層２ｂの点５ｎを開始点としている。生成部１ｂは、点５ｎからトラック４に沿って配線を生成し、点５ｐにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿って配線を生成している。そして、点５ｑにて層２ｂのトラック４に乗り替えて層２ｂのトラック４に沿って配線を生成している。そして、点５ｒにて層２ａのトラック４に乗り替えて層２ａのトラック４に沿って配線を生成している。そして、点５ｓを終点としている。
【００１９】
図１に示すように、生成部１ｂは、各クロック配線ＣＬ１〜ＣＬ３それぞれの長さを等しく生成するのが好ましい。クロック配線の長さを等しくすることで、クロック配線の遅延特性のばらつきを抑制することができる。また、生成部１ｂは、各クロック配線ＣＬ１〜ＣＬ３の層２ｂに生成する配線と層２ａに生成する配線の比率を等しくするのが好ましい。図１に示すクロック配線ＣＬ１〜ＣＬ３は、いずれも層２ａに生成された配線と層２ｂに生成された配線の比率が１：１である。
【００２０】
この回路設計支援装置１によれば、縦方向の配線も横方向の配線も縦横両方向の配線も複数の層２ａ、２ｂの配線が混在する。これにより、１つの層のみに配線を生成した場合に比べ、配線の遅延特性のばらつきを抑制することができる。
【００２１】
なお、設定部１ａ、生成部１ｂは、回路設計支援装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、ネットリスト格納部１ｃは、回路設計支援装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。
【００２２】
以下、実施の形態をより具体的に説明する。
＜第２の実施の形態＞
実施の形態の回路設計支援装置１０は、設計者の半導体集積回路の設計を支援する装置である。この回路設計支援装置１０は、回路設計の対象となる半導体集積回路のモデル（半導体集積回路モデル）にクロック配線を生成する。クロック配線モデルの生成に際し、設計者は、クロック信号を伝達するクロックバッファ回路を決定する。また、クロック配線を生成する配線層を決定する。そして、回路設計支援装置１０に決定した情報を入力することにより、回路設計支援装置１０は、設計者が決定した配線層をモデル化した配線層モデルにクロック配線モデルやクロックバッファ回路をモデル化したクロックバッファ回路モデルを生成する。
【００２３】
図２は、第２の実施の形態の回路設計支援装置のハードウェアの一構成例を示す図である。
回路設計支援装置１０は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
【００２４】
ＲＡＭ１０２は、回路設計支援装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に使用する各種データが格納される。
【００２５】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００２６】
ハードディスクドライブ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ１０３は、回路設計支援装置１０の二次記憶装置として使用される。ハードディスクドライブ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００２７】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた液晶表示装置等が挙げられる。
【００２８】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００２９】
光学ドライブ装置１０６は、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２００には、Ｂｌｕ−ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００３０】
通信インタフェース１０７は、ネットワーク５０に接続されている。通信インタフェース１０７は、ネットワーク５０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成の回路設計支援装置１０内には、以下のような機能が設けられる。
【００３２】
図３は、回路設計支援装置の機能を示すブロック図である。
回路設計支援装置１０は、ネットリスト格納部１１と、前処理部１２と、フロアプラン決定部１３と、セル配置部１４と、クロック生成部１５と、タイミング最適化部１６と、配線実行部１７とを有している。
【００３３】
ネットリスト格納部１１は、設計対象の回路について生成されたネットリスト（回路接続情報）を格納している。なお、本実施の形態では、ネットリスト格納部１１を回路設計支援装置１０内に配置したが、これに限らず、ネットリスト格納部１１は回路設計支援装置１０の外部に配置されていてもよい。
【００３４】
前処理部１２は、積層構造をなす半導体集積回路モデルの、クロック配線を生成する配線層に後述する正方形のユニットを形成する。ユニットを形成するに際し、前処理部１２は、ユニットの一辺の長さ（ユニット長）を決定する。具体的には、前処理部１２は、設計者が決定したクロックバッファ回路の入力を受け付ける。
【００３５】
図４は、クロックバッファ回路の一例を示す図である。
図４（ａ）は、クロックバッファ回路の機能ブロックを示す図であり、図４（ｂ）は、クロックバッファ回路のより詳細な回路図である。生成されるクロックバッファ回路モデル２１は、他のクロックバッファ回路モデル２１等からクロック信号を受信するレシーバとしての機能と、必要に応じて他のクロックバッファ回路モデル２１にクロック信号を送信するドライバとしての機能を有している。図４に示すクロックバッファ回路モデル２１は、ファンアウト数が４の回路モデルである。クロックバッファ回路モデル２１は、入力端子Ａから入力されるクロック信号を反転して出力するインバータＩｎｖ１と、インバータＩｎｖ１の出力信号を入力信号とするインバータＩｎｖ２、Ｉｎｖ３、Ｉｎｖ４、Ｉｎｖ５を有している。インバータＩｎｖ２、Ｉｎｖ３、Ｉｎｖ４、Ｉｎｖ５の構成は互いに等しくなっている。互いに等しく回路を構成することでインバータＩｎｖ２、Ｉｎｖ３、Ｉｎｖ４、Ｉｎｖ５の各出力端子Ｙ１、Ｙ２、Ｙ３、Ｙ４から出力される出力信号の遅延特性を同一にすることができる。
【００３６】
再び図３に戻って説明する。
前処理部１２は、設計者が決定したクロック信号を伝達する配線層の入力を受け付ける。そして、前処理部１２は、クロック配線長をパラメータとしてシミュレーションを実行し、ステージ遅延（クロック配線の遅延とクロックバッファ回路の遅延）を最小とするクロック配線長を決定する。この決定方法は、従来公知の方法を用いることができる。その後、前処理部１２は、クロック配線長を偶数（本実施の形態では４）で除算する。そして得られた値をユニット長に決定する。例えば、クロック配線長が１μｍ〜２μｍ程度である場合、ユニット長は、２５０μｍ〜５００μｍ程度となる。
【００３７】
前処理部１２は、決定したユニット長に基づいて、配線用のトラック（track）を生成する。
図５は、配線用のトラックを説明する図である。
【００３８】
配線層モデル３０が有する配線層モデル３０ａ、３０ｂは、積層構造をなす半導体集積回路モデルのうち、クロック配線を生成する２層を示している。すなわち、平面視で、配線層モデル３０ａ、３０ｂの４つの角は、同じ位置に位置するようになっている。これら配線層モデル３０ａ、３０ｂは、隣接する２層であり、完成した半導体集積回路では、配線層モデル３０ａにより具現化される配線層上に配線層モデル３０ｂにより具現化される配線層が配置される。
【００３９】
配線層モデル３０ａ、３０ｂは、それぞれ複数のユニット３１を有している。各ユニット３１は、一辺が例えば２００μｍ〜５００μｍ程度の矩形をなしている。配線層モデル３０ａと配線層モデル３０ｂは、ユニット３１Ａとユニット３１ａが積層方向に重なっている。ユニット３１Ｂとユニット３１ｂが積層方向に重なっている。ユニット３１Ｃとユニット３１ｃが積層方向に重なっている。
【００４０】
ユニット３１には、クロック配線の方向および位置を規定するトラックＴ１が設定される。すなわち、これらトラックＴ１は、クロック配線の方向および位置を規定するものであり、クロック配線そのものではない。なお、図５では、トラックＴ１の間隔を誇張して表しているが、トラックの間隔は、例えば０．４μｍ〜１μｍ程度である。また、トラックＴ１は、ユニット３１の全面に設定してもよいし、クロック配線以外の他の配線（後述する電源配線等）を配置するスペースを空けて設定してもよい。
【００４１】
これら各ユニット３１に設定したトラックＴ１は、半導体集積回路モデルの積層方向（図５中紙面手前側から紙面奥側に向かう方向）および面方向（図５中上下左右方向）に隣接するユニット３１の配線方向が互いに異なる方向に設定する。例えば、図５に示すユニット３１Ａは、紙面左右方向（横方向）に複数のトラックＴ１が設定されている。そして、ユニット３１Ａの右方向に配置されているユニット３１Ｂは、紙面上下方向（縦方向）に複数のトラックＴ１が設定されている。また、ユニット３１Ａの下方向に配置されているユニット３１Ｃは、縦方向に複数のトラックＴ１が設定されている。また、ユニット３１Ａの積層方向に配置されているユニット３１ａは、縦方向に複数のトラックＴ１が設定されている。
【００４２】
また、配線層モデル３０ａ、３０ｂの面方向に隣接する各ユニット３１のトラックＴ１は、互いに直接接触しないように設定されている。例えば、ユニット３１Ａの各トラックＴ１は、ユニット３１Ｂの各トラックＴ１とは互いに直接接触しないように設定されている。ユニット３１ＡのトラックＴ１に沿って生成するクロック配線を、ユニット３１ＢのトラックＴ１に沿って生成したクロック配線と接続したい場合は、例えば配線層モデル３０ｂのユニット３１ａを経由することになる。
【００４３】
再び図３に戻って説明する。
フロアプラン決定部１３は、半導体集積回路モデル２０が有する各モジュールのおおよその配置を決定するフロアプランを行う。フロアプランでは、レイアウトを行うモジュール単位で階層を分割し、分割した各モジュールを、レイアウトするエリア内のどの辺りに配置するかを決定する。
【００４４】
フロアプラン決定部１３は、半導体集積回路モデル２０の各層に電源配線を生成する。電源配線生成時には、配線層モデル３０ａ、３０ｂに電源配線を生成することもできる。配線層モデル３０ａ、３０ｂに電源配線を生成するときは、ユニット３１に設定されたトラックＴ１が規定する方向と同じ方向に電源配線を生成する。
【００４５】
図６は、クロック信号用の配線層における電源配線の配置パターンを説明する図である。なお、図６ではトラックＴ１の図示を省略している。
図６では、配線層モデル３０ａ、３０ｂが重なった状態を示している。
【００４６】
配線層モデル３０ａ、３０ｂが積層方向に重なることにより、配線層モデル３０ａの各ユニット３１の矩形の辺の位置と、配線層モデル３０ｂの各ユニット３１の矩形の辺の位置が重なっている。図６では、配線層モデル３０ａに生成される電源配線を点線で示している。
【００４７】
フロアプラン決定部１３は、トラックＴ１が配置された箇所以外に電源配線を生成する。配線層モデル３０ａ、３０ｂに生成された電源配線の間隔は、例えば５０μｍ〜２００μｍ程度である。各ユニット３１の電源配線は、ユニット３１の境界部分で配線層モデル３０ｂの各ユニット３１の対応する縦方向の電源配線に接続されている。例えば、配線層モデル３０ａのユニット３１Ｂに生成された電源配線ＰＬ１は、ユニット３１Ｂの境界部分で配線層モデル３０ｂのユニット３１ｄに生成された電源配線ＰＬ２に接続されている。
【００４８】
セル配置部１４は、フロアプランに従って半導体集積回路モデルの各層に半導体セルを配置する。
クロック生成部１５は、クロックツリーを生成する。クロック配線は、トラックＴ１に沿って生成する。これにより、積層方向および面方向に隣接するユニット３１の配線方向が互いに異なるようにすることができる。このとき、生成するクロック配線の長さは、前処理部１２が予め定めたクロック配線長とする。また、クロック生成部１５は、各クロック配線の配線層モデル３０ａ、３０ｂそれぞれに位置するクロック配線の比率を等しくする。
【００４９】
そして、クロック生成部１５は、生成したクロック配線間にクロックバッファ回路モデル２１を配置する。
図７は、クロック信号用の配線層におけるクロック配線の配置パターンを説明する図である。図７では、配線層モデル３０ａに生成される電源配線およびクロック配線の部分を点線で示している。
【００５０】
図７に示す配線層モデル３０では、１つながりのクロック配線ＣＬ１０のうち、配線層モデル３０ｂに生成されたクロック配線の一部を構成する部分配線ＣＬ１１、配線層モデル３０ａに生成された部分配線ＣＬ１２、配線層モデル３０ｂに生成された部分配線ＣＬ１３、および配線層モデル３０ａに生成された部分配線ＣＬ１４が電気的に接続されている。
【００５１】
次に、図７の一点鎖線で囲った部分Ｐ１を用いて、配線層モデル３０ａ、３０ｂにおける配線の接続を説明する。
図８は、クロック信号用の配線層における電源配線の配置パターンを説明する図である。
【００５２】
例えば配線層モデル３０ａのユニット３１Ｂに生成された電源配線ＰＬ１は、ユニット３１Ｂとユニット３１Ｄの境界部分でビア（ｖｉａ）Ｖ１を介して配線層モデル３０ｂのユニット３１ｄに生成された電源配線ＰＬ２に接続されている。
【００５３】
また、例えば配線層モデル３０ａのユニット３１Ｂに生成された部分配線ＣＬ１１は、ユニット３１Ｂとユニット３１Ｄの境界部分でビアＶ２を介して配線層モデル３０ｂのユニット３１ｄに生成された部分配線ＣＬ１２に接続されている。部分配線ＣＬ１２は、ユニット３１ｄ内で、ビアＶ３を介して配線層モデル３０ａのユニット３１Ｄに生成された部分配線ＣＬ１３に接続されている。部分配線ＣＬ１３は、電源配線ＰＬ２、ＰＬ３の下部を通過し、ユニット３１Ｄとユニット３１Ｃの境界部分でビアＶ４を介して配線層モデル３０ｂのユニット３１ｃに生成された部分配線ＣＬ１４に接続されている。このような配線を行うことで、電源配線とクロック配線の短絡を防止している。
【００５４】
次に、クロック生成部１５が生成したクロック配線の配線長および比率について説明する。
図９は、トラックにクロック配線を生成することにより実現できる配線例を示している。なお、図９では、配線層モデル３０ａに生成される配線部分を点線で示している。
【００５５】
図９（ａ）〜図９（ｂ）は、それぞれクロック生成部１５が、配線層モデル３０ａの座標Ａから配線層モデル３０ｂの座標Ｂに６つのユニット３１を跨いで生成したクロック配線ＣＬ２１、ＣＬ２２を示している。図９（ａ）は、直線形状のクロック配線ＣＬ２１を示している。図９（ｂ）は、屈曲部分を含むクロック配線ＣＬ２２を示している。
【００５６】
また、図９（ｃ）は、クロック生成部１５が、配線層モデル３０ａの座標Ａから配線層モデル３０ｂの座標Ｂに７つのユニット３１を跨いで生成したクロック配線ＣＬ２３を示している。
【００５７】
図９（ｃ）は、座標Ａが存在するユニット３１と同一のユニット３１内の座標Ａ１にて配線層モデル３０ｂのユニット３１の部分配線に接続され、座標Ｂが存在するユニット３１と同一のユニット３１内の座標Ｂ１にて配線層モデル３０ａのユニット３１の部分配線に接続されている。
【００５８】
図９（ａ）〜図９（ｃ）に示すクロック配線ＣＬ２１〜ＣＬ２３の各クロック配線長は、それぞれユニット３１の一辺の６つ分の長さであり、互いに等しい長さである。また、図９（ａ）〜図９（ｃ）に示すクロック配線ＣＬ２１〜ＣＬ２３の配線層モデル３０ａ、３０ｂそれぞれに位置する配線部分の比率は、いずれも等しく１：１である。このようにクロック配線長および配線層モデル３０ａ、３０ｂに位置する配線部分の比率が同一になるように設計することで、クロック配線の形状にかかわらず回路遅延特性のばらつきを抑制することができる。
【００５９】
図１０は、クロック生成部が生成したクロックツリーを説明する図である。図１０では、配線層モデル３０ａに生成されるクロック配線を点線で示し、配線層モデル３０ｂに生成されるクロック配線を実線で示している。
【００６０】
各クロックバッファ回路モデル２１の入力端子と出力端子は、それぞれ１対１に接続されている。すなわち、１つの出力端子は１つの入力端子に接続されている。
また、各クロックバッファ回路モデル２１間のネットの長さ（配線長）は、いずれもユニット３１の辺の長さ４つ分である。各クロックバッファ回路モデル２１の特性は等しく、クロック配線の遅延特性も均一となる。このため、サインオフコーナのばらつきを抑制することができる。
【００６１】
また、各クロックバッファ回路モデル２１の、他のクロックバッファ回路モデル２１に接続しない出力端子は開放されている。このような構成にしても開放された出力端子以外の出力端子の遅延特性には影響を与えない。
【００６２】
タイミング最適化部１６は、タイミング検証を行い、各配線層モデル３０ａ、３０ｂに生成されたクロック配線を伝達するクロック信号の遅延が予め定めたタイミング制約条件を満たすか否かを判断する。
【００６３】
配線実行部１７は、半導体集積回路モデル２０の各層にクロック配線、電源配線以外の配線を生成する。配線生成時には、クロック信号用の配線層モデル３０ａ、３０ｂに配線を生成することもできる。配線層モデル３０ａ、３０ｂに配線を生成するときは、クロック配線や電源配線の生成と同様に、ユニット３１に従って生成する。
【００６４】
次に、回路設計支援装置１０の動作を説明する。
図１１は、回路設計支援装置の動作を説明するフローチャートである。
［ステップＳ１］  前処理部１２は、クロック配線を接続するクロックバッファ回路の入力と、クロックで使用する配線層の入力を受け付けると、ネットリスト格納部１１に格納されたネットリストに基づいてクロック配線長を決定する。そして、決定したクロック配線長に基づいて半導体集積回路モデル２０のユニット長を決定する。そして、決定したユニット長に基づいて、トラックＴ１を生成する。その後、ステップＳ２に遷移する。
【００６５】
［ステップＳ２］  フロアプラン決定部１３は、半導体集積回路モデル２０の各層に電源配線を生成する。このとき配線層モデル３０ａ、３０ｂについては、生成したトラックＴ１に従って、電源配線を生成する。配線の生成が終了すればステップＳ３に遷移する。
【００６６】
［ステップＳ３］  セル配置部１４は、半導体集積回路モデル２０の各層に半導体セルを配置する。その後、ステップＳ４に遷移する。
［ステップＳ４］  クロック生成部１５は、クロックツリーを生成する。このときクロック配線は、トラックＴ１に従ってユニット３１を乗り換える。また、ステップＳ１にて決定されたクロック配線長に基づきクロック配線を生成する。
【００６７】
［ステップＳ５］  タイミング最適化部１６は、クロックバッファ回路モデル２１のファンアウト数等に応じて信号の遅延時間を見積もり、タイミング制約条件を満たすか否かを判断する。タイミング制約条件を満たさなければ、レイアウトを変更し、再度タイミング制約条件を満たすか否かを判断する。タイミング制約条件を満たせばステップＳ６に遷移する。
【００６８】
［ステップＳ６］  配線実行部１７は、半導体集積回路モデル２０の各層に信号配線を行う。このとき配線層モデル３０ａ、３０ｂについては、生成したトラックＴ１に従って、配線を生成する。配線の生成が終了すれば図１１に示す処理を終了する。
【００６９】
以上で図１１の説明を終了する。
次に、回路設計支援装置１０が設計した半導体集積回路モデル２０に従い製造された半導体集積回路を説明する。
【００７０】
半導体集積回路モデル２０に従い製造された半導体集積回路の配線層モデル３０ａ、３０ｂに対応する配線層には、これら配線層に跨りそれぞれが同じ配線長を有するクロック配線が生成されている。また、半導体集積回路には、これらクロック信号を伝達するクロックバッファ回路が配置されている。配置されているクロックバッファ回路は、図１０にて説明したように、クロックバッファ回路の入出力端子が１対１に接続されている。そして、生成されたクロック配線は、各配線層に位置する比率がそれぞれ等しくなっている。また、配線層には、クロック配線、電源配線が生成されている。
【００７１】
以上述べたように、回路設計支援装置１０によれば、前処理部１２がトラックＴ１を設定したユニット３１を生成した。そして、クロック生成部１５がトラックＴ１に沿って配線を生成した。これにより、全てのクロック配線が配線層モデル３０ａ、３０ｂを経由するクロック配線が生成される。これにより、配線層、配線方向および配線形状にかかわらず、クロック配線の遅延特性のばらつきを抑制することができる。
【００７２】
また、クロック生成部１５が、前処理部１２が決定した配線長に従いそれぞれの長さが等しいクロック配線を生成するようにしたのでクロック配線の遅延特性のばらつきをより抑制することができる。
【００７３】
また、クロック生成部１５が生成する各クロック配線それぞれの配線層モデル３０ａ、３０ｂそれぞれに位置する比率を等しくしたので遅延特性のばらつきをさらに抑制することができる。
【００７４】
また、前処理部１２がクロック配線の配線長に基づいてユニット３１の一辺の長さを決定するようにしたので、クロック生成部１５がそれぞれの長さが等しいクロック配線を生成することが容易になる。
＜変形例＞
次に、配線層モデル３０の変形例を説明する。
【００７５】
図１２は、第２の実施の形態の配線層モデルの変形例を示す図である。
図１２に示す配線層モデル４０は、トラックＴ１の配置方向が配線層モデル３０と異なっている。
【００７６】
配線層モデル４０ａ、４０ｂの各ユニット３１は、配線層モデル４０ａの外側の形状（辺）に対して所定角度（図１２では４５度）傾斜している。
この変形例の配線層モデル４０を用いて半導体集積回路を製造しても、配線層モデル３０を用いて半導体集積回路を製造した場合と同様の効果が得られる。
【００７７】
なお、回路設計支援装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、配線層モデル３０ａ、３０ｂにトラックＴ１を設定しておき、他の装置が、設定されたトラックＴ１に沿ってクロック配線を生成するようにしてもよい。
【００７８】
以上、本発明の回路設計支援装置、回路設計支援方法および半導体集積回路を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００７９】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、回路設計支援装置１、１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００８０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８２】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【００８３】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  複数の層を有する半導体集積回路モデルの少なくとも２つの前記層それぞれに、積層方向および面方向に隣接するユニットの配線方向が互いに異なる方向に配線が生成される複数の矩形のユニットを設定する設定部と、
前記ユニットの境界で異なる層の前記ユニットに跨る配線を生成する生成部と、
を有することを特徴とする回路設計支援装置。
【００８４】
（付記２）  前記設定部は、積層方向および面方向に隣接する前記ユニットの配線方向が互いに直交する方向に配線される前記ユニットを設定することを特徴とする付記１記載の回路設計支援装置。
【００８５】
（付記３）  前記設定部は、前記ユニットに配線方向を規定するトラックを設定し、前記生成部は、前記トラックに沿って配線を生成することを特徴とする付記１または２に記載の回路設計支援装置。
【００８６】
（付記４）  前記生成部は、前記配線それぞれの長さを等しく生成することを特徴とする付記１ないし３のいずれかに記載の回路設計支援装置。
（付記５）  前記生成部は、前記配線それぞれの各層に位置する比率を等しく生成することを特徴とする付記１ないし４のいずれかに記載の回路設計支援装置。
【００８７】
（付記６）  前記ユニットの一辺の長さは、前記配線の長さの１／ｎ倍（ｎは偶数）であることを特徴とする付記１ないし５のいずれかに記載の回路設計支援装置。
（付記７）  前記ユニットには伝送する信号の種別の異なる配線が生成されることを特徴とする付記１ないし６のいずれかに記載の回路設計支援装置。
【００８８】
（付記８）  前記生成部は、生成した前記配線間をバッファ回路で接続することを特徴とする付記１ないし７のいずれかに記載の回路設計支援装置。
（付記９）  前記生成部は、前記バッファ回路の入出力端子を１対１に接続することを特徴とする付記８記載の回路設計支援装置。
【００８９】
（付記１０）  生成する前記配線の長さに基づいて前記ユニットの一辺の長さを決定する決定部をさらに有することを特徴とする付記１ないし９のいずれかに記載の回路設計支援装置。
【００９０】
（付記１１）  コンピュータに、
複数の層を有する半導体集積回路モデルの少なくとも２つの前記層それぞれに、積層方向および面方向に隣接するユニットの配線方向が互いに異なる方向に配線が生成される複数の矩形のユニットを設定し、
前記ユニットの境界で異なる層の前記ユニットに跨る配線を生成する、
処理を実行させることを特徴とする回路設計支援方法。
【００９１】
（付記１２）  複数の層が積層された半導体集積回路において、
信号を伝達する複数の信号伝達回路と、
前記信号伝達回路間を接続し、前記複数の層に跨りそれぞれが同じ配線長を有し、各層に位置する比率がそれぞれ等しい配線と、
を有することを特徴とする半導体集積回路。
【００９２】
（付記１３）  前記層には伝送する信号の種別の異なる配線が生成されていることを特徴とする付記１２記載の半導体集積回路。
（付記１４）  複数の前記信号伝達回路の入出力端子は１対１に接続されていることを特徴とする付記１２または１３に記載の半導体集積回路。
【符号の説明】
【００９３】
１、１０  回路設計支援装置
１ａ  設定部
１ｂ  生成部
１ｃ、１１  ネットリスト格納部
２、２０  半導体集積回路モデル
２ａ、２ｂ  層
３、３ａ、３ｂ、３ｃ、３ｄ、３１、３１Ａ、３１Ｂ、３１Ｃ、３１Ｄ、３１ａ、３１ｂ、３１ｃ、３１ｄ  ユニット
４、Ｔ１  トラック
５ａ〜５ｋ、５ｍ、５ｎ、５ｐ〜５ｓ  点
１２  前処理部
１３  フロアプラン決定部
１４  セル配置部
１５  クロック生成部
１６  タイミング最適化部
１７  配線実行部
２１  クロックバッファ回路モデル
３０、３０ａ、３０ｂ、４０、４０ａ、４０ｂ  配線層モデル
ＣＬ１〜ＣＬ３、ＣＬ１０、ＣＬ２１、ＣＬ２２、ＣＬ２３  クロック配線
ＣＬ１１〜ＣＬ１４  部分配線
ＰＬ１〜ＰＬ３  電源配線
【図１】
2012113453.tif 000003
【図２】
2012113453.tif 000004
【図３】
2012113453.tif 000005
【図４】
2012113453.tif 000006
【図５】
2012113453.tif 000007
【図６】
2012113453.tif 000008
【図７】
2012113453.tif 000009
【図８】
2012113453.tif 000010
【図９】
2012113453.tif 000011
【図１０】
2012113453.tif 000012
【図１１】
2012113453.tif 000013
【図１２】
2012113453.tif 000014