(57)【要約】【課題】広範な範囲で遅延値を調整可能なレイアウト装置及びレイアウト方法を提供すること。【解決手段】本発明にかかるレイアウト装置１は、遅延値算出部１２と、バッファ移動部１４と、を備える。遅延値算出部１２は、上位バッファから出力されるクロック信号を伝搬する複数のクロックパスの遅延値を算出する。バッファ移動部１４は、遅延値算出部１２により算出された遅延値に基づいて、上位バッファと複数の下位バッファとを接続する複数のクロック信号線が非等長となるように、上位バッファを移動させる。【選択図】図１
2013003945.tif 000002
【特許請求の範囲】
【請求項１】
上位バッファから出力されるクロック信号を伝搬する複数のクロックパスの遅延値を算出する遅延値算出手段と、
前記遅延値算出手段により算出された前記遅延値に基づいて、前記上位バッファと複数の下位バッファとを接続する複数のクロック信号線が非等長となるように、前記上位バッファを移動させるバッファ移動手段と、
を備えるレイアウト装置。
【請求項２】
前記遅延値算出手段により算出された前記遅延値に基づいて、前記複数のクロックパス間のスキュー値を算出するスキュー値算出手段と、
前記バッファ移動手段が、前記上位バッファを移動させた状態で、前記スキュー値算出手段により算出されたスキュー値に基づいて、前記複数のクロック信号線に隣接する隣接配線のレイアウトを変更するレイアウト変更手段と、
をさらに備える請求項１に記載のレイアウト装置。
【請求項３】
前記クロック信号線における配線長と遅延値とが対応付けられた第１のパラメータテーブルと、所定の距離離れた前記隣接配線が設けられた状態の前記クロック信号線における配線長と遅延値とが対応付けられた第２のパラメータテーブルと、を格納する記憶手段をさらに備え、
前記遅延値算出手段は、前記第１及び第２のパラメータテーブルを参照して、前記遅延値を算出する請求項２に記載のレイアウト装置。
【請求項４】
前記バッファ移動手段は、前記複数のクロック信号線が等長である状態における前記遅延値に基づいて、前記複数のクロック信号線が等長である状態から、前記複数のクロック信号線が非等長となるように、前記上位バッファを移動させる請求項１〜３のいずれか一項に記載のレイアウト装置。
【請求項５】
上位バッファから出力されるクロック信号を伝搬する複数のクロックパスの遅延値を算出し、
算出した前記遅延値に基づいて、前記上位バッファと当該上位バッファの下位側に位置する複数の下位バッファとを接続する複数のクロック信号線の距離が非等長となるように、前記上位バッファを移動させるレイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はレイアウト装置及びレイアウト方法に関し、特に、クロックツリーのスキュー調整を行うレイアウト装置及びレイアウト方法に関する。
【背景技術】
【０００２】
半導体集積回路のレイアウト設計方法分野において、回路の規模増大に伴い、クロックツリー合成（以下、ＣＴＳ（Clock Tree Synthesis）と称す）が大規模になり、ＣＴＳにおける絶対遅延時間が長くなっている。一方で、微細化のプロセスは進み、クロック動作周波数も高速化が要求されるため、絶対遅延時間がより短いＣＴＳが要求されている。
【０００３】
ＣＴＳにおいて、配線後にクロックスキューを合わせる方法として、最も遅い遅延値のパスに他のパスの遅延値を合わせるように、他のパスに遅延素子を挿入したり、他のパスの長さを変えたりする方法が知られている。
【０００４】
ここで、特許文献１に開示されているクロックスキュー改善方法について説明する。図８は、レイアウト設計フロー図である。図８において、セル配置ステップＳ１１からクロックスキュー計算ステップＳ１４までは、従来のレイアウト設計フローと同一であり、セル配置ステップＳ１１では、ＬＳＩの回路接続情報に従って基本回路セルを配置し、ＣＴＳ配線ステップＳ１２では、ルートバッファと各フリップフロップ（以下Ｆ／Ｆと称す）との間が等長となるように合わせ込んでクロック信号を配線し、信号系配線ステップＳ１３では、回路接続情報に従ってクロック信号以外の信号の配線を実行し、クロックスキュー計算ステップＳ１４で、ルートバッファからＦ／Ｆまでのクロック遅延をＦ／Ｆへの信号パス毎に算出し、クロック遅延の最大値と最小値からクロックスキュー値を計算する。
【０００５】
クロックスキュー合否判定ステップＳ１５では、算出されたクロックスキュー値が予め設定された目標値以下か否かを判断し、クロックスキュー値が目標値以下の場合にはレイアウト設計を終了して次の設計ステップである設計検証に進むが、目標値を超える場合にはクロックスキュー改善処理ステップＳ１６を実行する。
【０００６】
クロックスキュー改善処理ステップＳ１６では、クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックと内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパターンテーブル９０を用いて、ＬＳＩチップにレイアウトされたルートバッファからＦ／Ｆ等の複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減する。
【０００７】
クロックスキュー改善処理ステップＳ１６は、下位の処理ステップとして、配線パタン分割ステップＳ２１と、対象クロック配線選択ステップＳ２２と、ブロック置換ステップＳ２３と、スキュー値判定ステップＳ２４と、配線修正ステップＳ２５とを有している。配線パタン分割ステップＳ２１では、それぞれのクロック配線について、配線パスに沿った領域をパターンテーブル９０に登録されている配線ブロックと同一外形を有する複数の単位ブロックに分割する。
【０００８】
対象クロック配線選択ステップＳ２２では、パターンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し、最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線を選択する。
【０００９】
ブロック置換ステップＳ２３では、処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し、単位ブロックの内部パタンを、検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する。
【００１０】
スキュー値判定ステップＳ２４では、置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し、最大のクロック信号遅延値と比較してクロックスキュー値を求め、所定のスキュー目標値以下となったか否かを判断する。配線修正ステップＳ２５では、単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する。
【００１１】
図９は、パターンテーブル９０の登録内容の一例を示す図である。パターンテーブル９０の内部では、配線ブロック名と、クロック配線パタン９１および周囲の信号配線パタンとを内部パタンとして含む配線ブロック９２と、クロック配線パタン９１に寄生する容量値とが対応して登録され、容量値が小さい内部パタンから容量値が大きい内部パタンに向けて順番に配列されている。なお、配線ブロック９２の内部パタンには、配線ブロック９２内の配線パタンと配線ブロック９２の外形境界に中心線が一致する配線の配線パタンとを含むものとする。
【００１２】
また、特許文献２には、クロック配線構造およびクロック伝播遅延時間の調整方法が開示されている。特許文献２に記載の技術は、クロック配線に隣接して設けられるシールド配線の長さを変えることにより、最も遅い遅延値のクロック配線の伝播時間に合わせるように、他のクロック配線の遅延値を調整するものである。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００２−２２２８６４号公報
【特許文献２】特開２００５−３１０９７０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１及び２に記載の技術は、いずれもシールド配線がクロック配線に与える影響のみを用いて遅延値を調整している。具体的には、一番遅いクロックパスの遅延値に他のクロックパスの遅延値を合わせるように、シールド配線の配線パタンを変更し、スキュー値を調整している。つまり、他のクロックパスの遅延値を遅くすることでしかスキュー値の調整ができず、遅延調整の範囲が限られてしまうという問題があった。
【課題を解決するための手段】
【００１５】
本発明にかかるレイアウト装置は、上位バッファから出力されるクロック信号を伝搬する複数のクロックパスの遅延値を算出する遅延値算出手段と、前記遅延値算出手段により算出された前記遅延値に基づいて、前記上位バッファと複数の下位バッファとを接続する複数のクロック信号線が非等長となるように、前記上位バッファを移動させるバッファ移動手段と、を備えるものである。このような構成により、上位バッファと下位バッファとの配線長を変更できる。その結果、クロックパスの遅延値の調整において、遅延値を長くするだけでなく、短くすることもでき、広範な範囲で遅延値を調整することができる。
【００１６】
本発明にかかるレイアウト方法は、上位バッファから出力されるクロック信号を伝搬する複数のクロックパスの遅延値を算出し、算出した前記遅延値に基づいて、前記上位バッファと当該上位バッファの下位側に位置する複数の下位バッファとを接続する複数のクロック信号線の距離が非等長となるように、前記上位バッファを移動させるものである。このような構成により、上位バッファと下位バッファとの配線長を変更できる。その結果、クロックパスの遅延値の調整において、遅延値を長くするだけでなく、短くすることもでき、広範な範囲で遅延値を調整することができる。
【発明の効果】
【００１７】
本発明によれば、広範な範囲で遅延値を調整可能なレイアウト装置及びレイアウト方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態にかかるシステム構成例を示す図である。
【図２】実施の形態にかかるレイアウト装置の動作を示すフローチャートである。
【図３】実施の形態にかかるＣＴＳバッファの配置工程を示すフローチャートである。
【図４】実施の形態にかかるＣＴＳバッファの移動工程を示すフローチャートである。
【図５】実施の形態にかかるクロックツリーの構成例を示す図である。
【図６】実施の形態にかかるシールド配線が隣接するクロックパスのパラメータテーブルである。
【図７】実施の形態にかかるシールド配線が隣接しないクロックパスのパラメータテーブルである。
【図８】関連するクロックスキュー改善方法のフローチャートである。
【図９】関連する配置ブロックテーブルである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかるシステム構成例を図１に示す。図１に示すシステムは、レイアウト装置１と、サーバ２と、を備える。レイアウト装置１と、サーバ２とは、インターネット３を介して接続される。サーバ２には、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）等の記録媒体４が設けられており、ＣＡＤ設計ツールが格納されている。レイアウト装置１は、インターネット３を介して、サーバ２からＣＡＤ設計ツールをインストールすることにより、半導体集積回路のレイアウト設計を行うための機能を備える。
【００２０】
図１に示すように、レイアウト装置１は、記憶部１１と、遅延値算出部１２と、スキュー値算出部１３と、バッファ移動部１４と、配線レイアウト変更部１５と、を備える。これらの機能ブロックは、レイアウト装置１内のＣＰＵ(Central Processing Unit)（図示省略）と接続されている。そして、当該ＣＰＵは、記憶部１１に格納されたプログラムに応じて、上記の各機能部に対して各種の処理動作の実行を指示する。
【００２１】
記憶部１１は、例えば、ＲＡＭ等であり、遅延値を算出するためのパラメータを格納している。遅延値算出部１２は、記憶部１１に格納されたパラメータを参照して、クロックパスの遅延値を算出する。スキュー値算出部１３は、遅延値算出部１２が算出した遅延値に基づいて、クロックパス間のスキュー値を算出する。
【００２２】
バッファ移動部１４は、遅延値算出部１２が算出した遅延値に基づいて、上位ＣＴＳバッファと複数の下位ＣＴＳバッファとを接続する複数のクロック信号線が非等長となるように、上位ＣＴＳバッファの配置位置を移動させる。
【００２３】
配線レイアウト変更部１５は、スキュー値算出部１３により算出されたスキュー値に基づいて、上位ＣＴＳバッファに接続された複数のクロック信号線に対する隣接配線のレイアウトを変更する。
【００２４】
続いて、図２に示すフローチャートを参照して、レイアウト装置１の動作を説明する。図２のフローチャートは、レイアウト設計全体のフローを示すフローチャートである。まず、レイアウト装置１のユーザが、ネット情報、チップサイズ等の製品情報、及びセル情報等のレイアウト設計に必要なデータをレイアウト装置１に入力する（ステップＳ１０１）。
【００２５】
次に、レイアウト装置１は、入力されたデータに基づいて、Ｆ／Ｆや論理回路等のセルを配置し（ステップＳ１０２）、ＣＴＳバッファを配置する（ステップＳ１０３）。そして、レイアウト装置１は、配置したセル及びＣＴＳバッファを配線する（ステップＳ１０４）。なお、ステップＳ１０１のデータ入力、ステップＳ１０２のセルの配置、及びステップＳ１０４の配線処理は、当業者に広く知られている処理であるため、詳細な説明を省略する。すなわち、本発明は、ステップＳ１０３のＣＴＳバッファの配置に特徴を有する。
【００２６】
ステップＳ１０３の詳細な処理について、図３に示すフローチャート及び図５のクロックツリーの構成例を参照して説明する。まず、上位ＣＴＳバッファ１００の下位側が一定の負荷容量となるように、下位ＣＴＳバッファをグル―プ分けする（ステップＳ２０１）。図５においては、下位ＣＴＳバッファ１０、２０、３０、及び４０が一つのグループとしてまとめられている。なお、下位ＣＴＳバッファ１０〜４０とは、上位ＣＴＳバッファ１００と接続され、上位ＣＴＳバッファ１００よりも下位側（クロックツリーの末端側）に位置するバッファである。
【００２７】
次に、上位ＣＴＳバッファ１００から下位ＣＴＳバッファ１０〜４０までの各クロック信号線１０１〜１０４が等長配線となるように、上位ＣＴＳバッファ１００を配置する（ステップＳ２０２）。図５に示す例では、各クロック信号線１０１〜１０４が等長配線となる配置位置９８に上位ＣＴＳバッファ１００を配置する。
【００２８】
配置位置９８に上位ＣＴＳバッファ１００が配置された状態で、遅延値算出部１２は、クロック信号線１０１〜１０４を通るクロックパスの遅延値を算出する（ステップＳ２０３）。つまり、遅延値算出部１２は、Ｆ／Ｆ５０から上位ＣＴＳバッファ１００までの遅延値を算出する。
【００２９】
このとき、遅延値算出部１２は、記憶部１１に格納されたパラメータＡを用いて、クロック信号線１０１〜１０４を通るクロックパスの遅延値を算出する。なお、パラメータＡとは、クロック信号線に隣接してシールド配線３００が設けられている状態における、クロック信号線の配線長とその遅延値とが対応付けられて格納されたパラメータテーブル（第２のパラメータテーブル）である（図６参照）。
【００３０】
図５において、上位ＣＴＳバッファ１００が配置位置９８に配置されている場合、各クロック信号線１０１〜１０４の長さは等長であり、それぞれの配線長は０．７５ｍｍとする。遅延値算出部１２は、パラメータＡを参照して、クロック信号線１０１〜１０４の遅延値は５ｎｓと算出する。
【００３１】
さらに、図５において、下位ＣＴＳバッファ１０、３０の遅延値を３ｎｓとし、下位ＣＴＳバッファ２０、４０の遅延値を１ｎｓとする。すると、上位ＣＴＳバッファ１００から下位ＣＴＳバッファ１０、３０を通るクロックパスの遅延値は、それぞれ５ｎｓ＋３ｎｓ＝８ｎｓとなる。一方、上位ＣＴＳバッファ１００から下位ＣＴＳバッファ２０、４０を通るクロックパスの遅延値は、それぞれ５ｎｓ＋１ｎｓ＝６ｎｓとなる。
【００３２】
スキュー値算出部１３は、遅延値算出部１２が算出した各クロックパスの遅延値に基づいて、各クロックパス間の最大スキュー値を算出する。そして、スキュー値算出部１３は、算出した最大スキュー値が要求スキュー値（半導体集積回路の設計上、要求されるスキュー値）以下となるか否かを判定する（ステップＳ２０４）。なお、最大スキュー値は、各クロックパスの遅延値の最大値と最小値との差分の値である。
【００３３】
算出した最大スキュー値が要求スキュー値以下である場合（ステップＳ２０４：Ｙｅｓ）、ステップＳ１０３のＣＴＳバッファの配置工程を終了する。すなわち、レイアウト装置１は、上位ＣＴＳバッファ１００の現在の位置（等長配線となる配置位置９８）を上位ＣＴＳバッファ１００の配置位置として確定する。
【００３４】
一方、算出した最大スキュー値が要求スキュー値を超える場合（ステップＳ２０４：Ｎｏ）、バッファ移動部１４は、上位ＣＴＳバッファ１００を移動させる処理を行う（ステップＳ２０５）。なお、図３に示したフローは、ＣＴＳバッファ１段分の配置位置を決めるフローであり、ＣＴＳバッファが複数段ある場合、その段数分だけ図３のフローを繰り返す。
【００３５】
本実施の形態においては、要求スキュー値が１ｎｓとする。図５における最大スキュー値は、最大遅延値８ｎｓと最小遅延値６ｎｓとの差分であるため２ｎｓとなる。そのため、最大スキュー値が要求スキュー値を超えるため、ステップＳ２０５に進み、上位ＣＴＳバッファ１００の移動処理が行われる。
【００３６】
ここで、ステップＳ２０５における上位ＣＴＳバッファ１００の移動処理について、図４のフローチャートを参照して詳細に説明する。図４に示すフローチャートは、ステップＳ２０５の詳細なフローである。まず、バッファ移動部１４が、遅延値算出部１２が算出した各クロックパスの遅延値に基づいて、クロック信号線１０１〜１０４が非等長となるように、上位ＣＴＳバッファ１００を移動させる（ステップＳ３０１）。具体的には、バッファ移動部１４は、最大遅延値のクロックパスの配線上において、上位ＣＴＳバッファ１００を下位ＣＴＳバッファの配置方向（下位側）に移動させる。
【００３７】
図５においては、最大遅延値のクロックパスは、クロック信号線１０１及び下位ＣＴＳバッファ１０を通るクロックパスと、クロック信号線１０３及び下位ＣＴＳバッファ３０を通るクロックパスである。そのため、バッファ移動部１４は、クロック信号線１０１またはクロック信号線１０３上で、上位ＣＴＳバッファ１００を下位側に移動させる。図５においては、バッファ移動部１４は、下位ＣＴＳバッファ１０の方向、つまり、配置位置９８から配置位置９９へと上位ＣＴＳバッファ１００を移動させている。これにより、上位ＣＴＳバッファ１００は下位ＣＴＳバッファ１０に近づくように移動する。言い換えると、上位ＣＴＳバッファ１００は、下位ＣＴＳバッファ１０２〜１０４から遠ざかるように移動する。なお、上位ＣＴＳバッファ１００の移動距離は、レイアウト設計時に要求される調整間隔等により適宜設定される。図５においては、上位ＣＴＳバッファ１００を下位ＣＴＳバッファ１０に向けて０．２５ｍｍだけ移動させるものとする。
【００３８】
上位ＣＴＳバッファ１００が移動すると、レイアウト装置１は、移動後の上位ＣＴＳバッファ１００から下位バッファ１０〜４０までのクロック信号線１０１〜１０４の配線長を算出する（ステップＳ３０２）。
【００３９】
そして、遅延値算出部１２は、クロック信号線１０１〜１０４の配線長に基づいて、パラメータＡを参照し、各クロックパスの遅延値を算出する（ステップＳ３０３）。
【００４０】
クロック信号線１０１の配線長が、上位ＣＴＳバッファ１００が移動したことにより、０．７５ｍｍから０．５０ｍｍに変化したとすると、クロック信号線１０１の遅延値は４ｎｓとなる。下位ＣＴＳバッファ１０の遅延値は、上記と同様に３ｎｓとすると、クロック信号線１０１を通るクロックパスの遅延値は４ｎｓ＋３ｎｓ＝７ｎｓとなる。
【００４１】
クロック信号線１０２、１０４の配線長が、上位ＣＴＳバッファ１００が移動したことにより、０．７５ｍｍから１．００ｍｍに変化したとすると、クロック信号線１０２、１０４の遅延値は６ｎｓとなる。下位ＣＴＳバッファ２０、４０の遅延値は、上記と同様に１ｎｓとすると、クロック信号線１０２、１０４を通るクロックパスの遅延値は６ｎｓ＋１ｎｓ＝７ｎｓとなる。
【００４２】
クロック信号線１０３の配線長が、上位ＣＴＳバッファ１００が移動したことにより、０．７５ｍｍから１．００ｍｍに変化したとすると、クロック信号線１０３の遅延値は６ｎｓとなる。下位ＣＴＳバッファ３０の遅延値は、上記と同様に３ｎｓとすると、クロック信号線１０３を通るクロックパスの遅延値は６ｎｓ＋３ｎｓ＝９ｎｓとなる。
【００４３】
このように、各クロックパスの遅延値に基づいて、クロック信号線１０１〜１０４が非等長となるように、上位ＣＴＳバッファ１００を移動させることにより、最も遅いクロックパスにおけるクロック信号線を短くすることができる。これにより、最も遅いクロックパスの遅延値を早くことができる。つまり、上位ＣＴＳバッファ１００を移動させることにより、遅延が短いクロックパスの遅延値を長くするだけでなく、遅延が長いクロックパスの遅延値を短くすることができる。したがって、広範な範囲で遅延値を調整することができる。
【００４４】
各クロックパスの遅延値が算出されると、スキュー値算出部１３が、最大スキュー値を算出する。そして、スキュー値算出部１３は、最大スキュー値が要求スキュー値以下であるか否かを判定する（ステップＳ３０４）。
【００４５】
算出した最大スキュー値が要求スキュー値以下である場合（ステップＳ３０４：Ｙｅｓ）、ステップＳ１０３のＣＴＳバッファの配置工程を終了する。すなわち、レイアウト装置１は、上位ＣＴＳバッファ１００の現在の位置（非等長配線となる配置位置９９）を上位ＣＴＳバッファ１００の配置位置として確定する。
【００４６】
一方、算出した最大スキュー値が要求スキュー値を超える場合（ステップＳ３０４：Ｎｏ）、遅延値算出部１２は、上位ＣＴＳバッファ１００が配置位置９９に配置された状態で、パラメータＢを参照して、一部のクロックパスの遅延値を再度算出する（ステップＳ３０５）。なお、パラメータＢとは、シールド配線無しのクロック信号線の配線長とその遅延値とが対応付けられて格納されたパラメータテーブル（第１のパラメータテーブル）である（図７参照）。
【００４７】
図５においては、最大スキュー値は、最大遅延値９ｎｓと最小遅延値７ｎｓとの差分であるため２ｎｓとなり、要求スキュー値の１ｎｓを超える。そのため、遅延値算出部１２は、パラメータＢを参照して、各クロックパスのうち、一番遅いクロックパス（クロック信号線１０３を通るクロックパス）の遅延値を算出する。当該一番遅いクロックパスの遅延値は、配線長１．００ｍｍのクロック信号線１０３の遅延値５ｎｓと、下位ＣＴＳバッファ３０の遅延値３ｎｓとの合計により、８ｎｓとなる。
【００４８】
スキュー値算出部１３は、最大スキュー値を算出する。具体的には、最大スキュー値は、最大遅延値のクロックパスの遅延値８ｎｓと、最小遅延値のクロックパスの遅延値７ｎｓとの差分の１ｎｓとなる。
【００４９】
スキュー値算出部１３は、最大スキュー値が要求スキュー値以下であるか否かを判定する（ステップＳ３０６）。具体的には、スキュー値算出部１３は、クロック信号線１０１〜１０４のうち、クロック信号線１０３のみシールド配線を無しにした状態において、最大スキュー値が要求スキュー値以下となるか否かを判定する。
【００５０】
算出した最大スキュー値が要求スキュー値以下である場合（ステップＳ３０６：Ｙｅｓ）、ステップＳ１０３のＣＴＳバッファの配置工程を終了する。すなわち、レイアウト装置１は、上位ＣＴＳバッファ１００の移動後の位置を上位ＣＴＳバッファ１００の配置位置として確定する。また、配線レイアウト変更部１５は、パラメータＡを参照して遅延値を算出したクロック信号線には、隣接配線としてシールド配線３００が設けられ、パラメータＢを参照して遅延値を算出したクロック信号線は、シールド無しの配線となるように（隣接配線を配置しないように）、シールド配線３００のレイアウトを確定する。
【００５１】
図５においては、上記の通り、最大スキュー値は１ｎｓであり、要求スキュー値以下であるため（ステップＳ３０６：Ｙｅｓ）、レイアウト装置１は、上位ＣＴＳバッファ１００の移動後の位置（配置位置９９）に上位ＣＴＳバッファ１００を配置する。また、配線レイアウト変更部１５は、クロック信号線１０１、１０２、１０４には、隣接配線としてシールド配線３００が設けられ、クロック信号線１０３は、スペース２００（シールド配線及び信号線を含む配線を配置しない領域）を設けてシールド無しの配線となるように、シールド配線３００のレイアウトを変更する。
【００５２】
一方、最大スキュー値が要求スキュー値を超える場合（ステップＳ３０６：Ｎｏ）、バッファ移動部１４は、最大遅延値のクロックパスにおけるクロック信号線の方向に、上位ＣＴＳバッファ１００を再度移動させる（ステップＳ３０１）。
【００５３】
つまり、配線レイアウト変更部１５は、上位ＣＴＳバッファ１００を移動させた状態においても、最大スキュー値が要求スキュー値を超える場合に、シールド配線３００のレイアウトを変更することによって、最大スキュー値を調整する。そして、配線レイアウト変更部１５によるシールド配線３００のレイアウト変更処理を行っても、なお最大スキュー値が要求スキュー値を超える場合には、バッファ移動部１４が、上位ＣＴＳバッファ１００をさらに移動させることにより、スキュー値を調整する。
【００５４】
なお、シールド配線３００は、クロック信号線１０１〜１０４に隣接する信号線の影響によって生じるノイズを防止するために設けられるものであるが、シールド無しとする場合には、クロック信号線１０３の周囲に所定のスペース２００を設けることにより、シールド配線を配置した場合と同様に、上記ノイズの影響を防止できる。
【００５５】
以上のように、本実施の形態にかかるレイアウト装置１の構成によれば、バッファ移動部１４が、上位ＣＴＳバッファ１００から出力されるクロック信号を伝搬する複数のクロックパスの遅延値に基づいて、上位ＣＴＳバッファ１００に接続されたクロック信号線１０１〜１０４が非等長となるように上位ＣＴＳバッファ１００を移動させる。そのため、クロック信号線１０１〜１０４の配線長が変わる。これにより、クロックパスの遅延調整において、クロックパスの遅延を遅くするだけでなく、早くすることもできる。その結果、広範な範囲でクロックパスの遅延値を調整することができる。
【００５６】
加えて、上位ＣＴＳバッファ１００を移動させて、最大遅延のクロックパスの遅延値を短くすることによって、クロックツリー全体としての絶対遅延時間も短くすることができる。
【００５７】
さらに、配線レイアウト変更部１５が、上位ＣＴＳバッファ１００の移動後に、シールド配線の配置レイアウトを変更する。これにより、クロック信号線１０１〜１０４全体の遅延値を変更させた後に、クロック信号線１０１〜１０４のそれぞれに対して、個別に遅延調整することができる。その結果、各クロックパスの遅延値をより細かく調整することができ、スキュー値調整が容易となる。
【００５８】
上記したレイアウト装置１の各処理部（遅延値算出部１２、スキュー値算出部１３、バッファ移動部１４、及び配線レイアウト変更部１５）の処理は、任意のコンピュータ内で動作するプログラムとして実現することが可能である。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更及び組み合わせをすることが可能である。例えば、下位ＣＴＳバッファやＦ／Ｆ、シールド配線のレイアウト等は、図５に示す構成に限られない。
【符号の説明】
【００６０】
１  レイアウト装置
２  サーバ
３  インターネット
４  記憶媒体
１０〜４０  下位ＣＴＳバッファ
１１  記憶部
１２  遅延値算出部
１３  スキュー値調整部
１４  バッファ移動部
１５  配線レイアウト変更部
５０  Ｆ／Ｆ
９８、９９  配置位置
１００  上位ＣＴＳバッファ
１０１〜１０４  クロック信号線
２００  スペース（配線無し領域）
３００  シールド配線
【図１】
2013003945.tif 000003
【図２】
2013003945.tif 000004
【図３】
2013003945.tif 000005
【図４】
2013003945.tif 000006
【図５】
2013003945.tif 000007
【図６】
2013003945.tif 000008
【図７】
2013003945.tif 000009
【図８】
2013003945.tif 000010
【図９】
2013003945.tif 000011