(57)【要約】【課題】ばらつきに起因する遅延変動による異経路クロックスキューを小さくすること。【解決手段】複数のセルとクロックツリー２とを座標領域１に配置し、クロックツリー２上にクロックバッファ４−１、４−２、１２、２２を配置し、非共通ネット間に生じるクロックスキューを調整するためのダミークロックバッファ１８、２８をそれぞれクロックツリー２の第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）に接続する。セル１６−２、２６−１間でデータの受け渡しを行う場合、セル１６−２、２６−１がそれぞれ第１、第２非共通ネットに接続されていることにより異経路クロックスキューが生じる場合がある。そこで、セル２６−１に代えて接続変更用ダミークロックバッファ２９を第２非共通ネット（２３、２５−１〜２５−３、２７）に接続し、セル２６−１をダミークロックバッファ１８に接続する。【選択図】図７
2008187027.tif 000002
【特許請求の範囲】
【請求項１】
クロックに応じて動作する複数のセルを座標領域に配置するセル配置ステップと、
前記クロックが入力される入力ネットと、前記複数のセルである第１、第２セル群がそれぞれ並列接続された第１、第２非共通ネットと、前記入力ネットと前記第１、第２非共通ネットとの間に接続された共通ネットとを含むクロックツリーを前記座標領域に配置するツリー配置ステップと、
前記入力ネットと前記共通ネットとの間と、前記共通ネットと前記第１、第２非共通ネットとの間に、クロックバッファを接続するバッファ配置ステップと、
前記第１、第２非共通ネット間に生じるクロックスキューを調整するための第１、第２ダミークロックバッファをそれぞれ前記第１、第２非共通ネットに接続するスキュー調整ステップと、
前記第１、第２セル群のうちの１つのセルとして第１、第２対象セル間でデータの受け渡しを行う場合、前記第１、第２対象セルがそれぞれ前記第１、第２非共通ネットに接続されていることにより生じる遅延変動起因の異経路クロックスキューを調整するために、
前記第２対象セルに代えて接続変更用ダミークロックバッファを前記第２非共通ネットに接続する第１接続変更ステップと、
前記第２対象セルを前記第１ダミークロックバッファに接続する第２接続変更ステップと
を具備する半導体集積回路の設計方法。
【請求項２】
請求項１に記載の半導体集積回路の設計方法において、
前記共通ネットと前記第１、第２非共通ネットと前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通ネットから前記第１、第２セル群に伝達されるまでの第１、第２遅延時間を算出する遅延時間算出ステップと、
前記クロックスキューの調整として、前記第１遅延時間と前記第２遅延時間とを同一の遅延時間に調整するために、前記スキュー調整ステップを実行するステップと、
前記第１、第２対象セル間でデータの受け渡しを行う場合、前記共通ネットと前記第１、第２非共通ネットと前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通ネットから前記第１、第２対象セルに伝達されるまでの第１、第２対象遅延時間を算出する対象遅延時間算出ステップと、
前記第１対象遅延時間と前記第２対象遅延時間との遅延時間差が設定時間差よりも大きい場合、前記異経路クロックスキューの調整として、前記第１及び第２接続変更ステップを実行するステップと
を更に具備する半導体集積回路の設計方法。
【請求項３】
クロックに応じて動作する複数のセルを座標領域に配置するセル配置ステップと、
その一端に前記クロックが入力され、その他端に共通分岐点が接続された共通配線と、その一端に前記共通分岐点が接続され、その他端に第１、第２分岐点がそれぞれ接続された第１、第２中継配線と、その一端に前記第１、第２分岐点がそれぞれ接続され、その他端に前記複数のセルである第１、第２セル群がそれぞれ接続された第１、第２配線群とを含むクロックツリーを前記座標領域に配置するツリー配置ステップと、
前記共通配線上と、前記第１、第２中継配線上に、クロックバッファを接続するバッファ配置ステップと、
前記第１、第２分岐点間に生じるクロックスキューを調整するための容量を有する第１、第２スキュー調整用配線をそれぞれ前記第１、第２分岐点に接続し、前記第１、第２スキュー調整用配線にそれぞれ第１、第２ダミークロックバッファを接続するスキュー調整ステップと、
前記第１、第２セル群のうちの１つのセルとして第１、第２対象セルがデータの受け渡しを行う場合、前記第１、第２対象セルがそれぞれ前記第１、第２分岐点に接続されていることにより生じる遅延変動起因の異経路クロックスキューを調整するために、
前記第２配線群のうちの、前記第２対象セルが接続されている変更候補配線の他端から、前記第２対象セルを切り離し、前記変更候補配線の他端に接続変更用ダミークロックバッファを接続する第１接続変更ステップと、
前記第２対象セルを前記第１ダミークロックバッファに接続する第２接続変更ステップと
を具備する半導体集積回路の設計方法。
【請求項４】
請求項３に記載の半導体集積回路の設計方法において、
前記第１、第２中継配線と前記第１、第２配線群と前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通分岐点から前記第１、第２セル群に伝達されるまでの第１、第２遅延時間を算出する遅延時間算出ステップと、
前記クロックスキューの調整として、前記第１遅延時間と前記第２遅延時間とを同一の遅延時間に調整するために、前記スキュー調整ステップを実行するステップと、
前記第１、第２対象セル間でデータの受け渡しを行う場合、前記第１、第２中継配線と、前記第１配線群のうちの、前記第１対象セルが接続されている配線と、前記変更候補配線と、前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通分岐点から前記第１、第２対象セルに伝達されるまでの第１、第２対象遅延時間を算出する対象遅延時間算出ステップと、
前記第１対象遅延時間と前記第２対象遅延時間との遅延時間差が設定時間差よりも大きい場合、前記異経路クロックスキューの調整として、前記第１及び第２接続変更ステップを実行するステップと
を更に具備する半導体集積回路の設計方法。
【請求項５】
請求項１〜４のいずれかに記載の半導体集積回路の設計方法において、
前記接続変更用ダミークロックバッファは、前記第２対象セルの入力容量と同じ入力容量を有する
半導体集積回路の設計方法。
【請求項６】
請求項１〜５のいずれかに記載の半導体集積回路の設計方法において、
前記第１、第２対象セルは隣接している
半導体集積回路の設計方法。
【請求項７】
半導体集積回路を設計するコンピュータにインストールされるコンピュータプログラムであって、
クロックに応じて動作する複数のセルを座標領域に配置するセル配置ステップと、
前記クロックが入力される入力ネットと、前記複数のセルである第１、第２セル群がそれぞれ並列接続された第１、第２非共通ネットと、前記入力ネットと前記第１、第２非共通ネットとの間に接続された共通ネットとを含むクロックツリーを前記座標領域に配置するツリー配置ステップと、
前記入力ネットと前記共通ネットとの間と、前記共通ネットと前記第１、第２非共通ネットとの間に、クロックバッファを接続するバッファ配置ステップと、
前記第１、第２非共通ネット間に生じるクロックスキューを調整するための第１、第２ダミークロックバッファをそれぞれ前記第１、第２非共通ネットに接続するスキュー調整ステップと、
前記第１、第２セル群のうちの１つのセルとして第１、第２対象セル間でデータの受け渡しを行う場合、前記第１、第２対象セルがそれぞれ前記第１、第２非共通ネットに接続されていることにより生じる遅延変動起因の異経路クロックスキューを調整するために、
前記第２対象セルに代えて接続変更用ダミークロックバッファを前記第２非共通ネットに接続する第１接続変更ステップと、
前記第２対象セルを前記第１ダミークロックバッファに接続する第２接続変更ステップと
の各ステップを前記コンピュータに実行させるコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムにおいて、
前記共通ネットと前記第１、第２非共通ネットと前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通ネットから前記第１、第２セル群に伝達されるまでの第１、第２遅延時間を算出する遅延時間算出ステップと、
前記クロックスキューの調整として、前記第１遅延時間と前記第２遅延時間とを同一の遅延時間に調整するために、前記スキュー調整ステップを実行するステップと、
前記第１、第２対象セル間でデータの受け渡しを行う場合、前記共通ネット、前記第１、第２非共通ネットによる遅延と、前記クロックバッファによる遅延とに基づいて、それぞれ前記クロックが前記共通ネットから前記第１、第２対象セルに伝達されるまでの第１、第２対象遅延時間を算出する対象遅延時間算出ステップと、
前記第１対象遅延時間と前記第２対象遅延時間との遅延時間差が設定時間差よりも大きい場合、前記異経路クロックスキューの調整として、前記第１及び第２接続変更ステップを実行するステップと
の各ステップを更に前記コンピュータに実行させるコンピュータプログラム。
【請求項９】
半導体集積回路を設計するコンピュータにインストールされるコンピュータプログラムであって、
クロックに応じて動作する複数のセルを座標領域に配置するセル配置ステップと、
その一端に前記クロックが入力され、その他端に共通分岐点が接続された共通配線と、その一端に前記共通分岐点が接続され、その他端に第１、第２分岐点がそれぞれ接続された第１、第２中継配線と、その一端に前記第１、第２分岐点がそれぞれ接続され、その他端に前記複数のセルである第１、第２セル群がそれぞれ接続された第１、第２配線群とを含むクロックツリーを前記座標領域に配置するツリー配置ステップと、
前記共通配線上と、前記第１、第２中継配線上に、クロックバッファを接続するバッファ配置ステップと、
前記第１、第２分岐点間に生じるクロックスキューを調整するための容量を有する第１、第２スキュー調整用配線をそれぞれ前記第１、第２分岐点に接続し、前記第１、第２スキュー調整用配線にそれぞれ第１、第２ダミークロックバッファを接続するスキュー調整ステップと、
前記第１、第２セル群のうちの１つのセルとして第１、第２対象セルがデータの受け渡しを行う場合、前記第１、第２対象セルがそれぞれ前記第１、第２分岐点に接続されていることにより生じる遅延変動起因の異経路クロックスキューを調整するために、
前記第２配線群のうちの、前記第２対象セルが接続されている変更候補配線の他端から、前記第２対象セルを切り離し、前記変更候補配線の他端に接続変更用ダミークロックバッファを接続する第１接続変更ステップと、
前記第２対象セルを前記第１ダミークロックバッファに接続する第２接続変更ステップと
の各ステップを前記コンピュータに実行させるコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムにおいて、
前記第１、第２中継配線と前記第１、第２配線群と前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通分岐点から前記第１、第２セル群に伝達されるまでの第１、第２遅延時間を算出する遅延時間算出ステップと、
前記クロックスキューの調整として、前記第１遅延時間と前記第２遅延時間とを同一の遅延時間に調整するために、前記スキュー調整ステップを実行するステップと、
前記第１、第２対象セル間でデータの受け渡しを行う場合、前記第１、第２中継配線と、前記第１配線群のうちの、前記第１対象セルが接続されている配線と、前記変更候補配線と、前記クロックバッファとによる遅延に基づいて、それぞれ前記クロックが前記共通分岐点から前記第１、第２対象セルに伝達されるまでの第１、第２対象遅延時間を算出する対象遅延時間算出ステップと、
前記第１対象遅延時間と前記第２対象遅延時間との遅延時間差が設定時間差よりも大きい場合、前記異経路クロックスキューの調整として、前記第１及び第２接続変更ステップを実行するステップと
の各ステップを更に前記コンピュータに実行させるコンピュータプログラム。
【請求項１１】
請求項７〜１０のいずれかに記載のコンピュータプログラムにおいて、
前記接続変更用ダミークロックバッファは、前記第２対象セルの入力容量と同じ入力容量を有する
コンピュータプログラム。
【請求項１２】
請求項７〜１１のいずれかに記載のコンピュータプログラムにおいて、
前記第１、第２対象セルは隣接している
コンピュータプログラム。
【請求項１３】
請求項７〜１２のいずれかに記載のコンピュータプログラムがインストールされたコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路を設計する設計方法に関する。
【背景技術】
【０００２】
半導体集積回路を設計するためのコンピュータが開発されている。そのコンピュータは、半導体集積回路を構成する複数のセル（フリップフロップ）を所定の座標領域（Ｘ、Ｙ）に配置し、その複数のセルの各々に入力端からのクロックが供給されるように、配線が引き回されたクロックツリーを所定の座標領域（Ｘ、Ｙ）に配置する。また、コンピュータは、クロックをドライブするためのクロックバッファをクロックツリー上に配置する。
【０００３】
例えば、複数のセルのうちの第１、第２セル群にクロックを供給するものとする。この場合、クロックが入力端から第１セル群に伝達されるまでの第１遅延時間と、クロックが入力端から第２セル群に伝達されるまでの第２遅延時間とが同一であることが望ましい。しかし、第１遅延時間と第２遅延時間との時間差が大きい場合、クロックスキューが生じてしまう。このクロックスキューを低減するために、第１遅延時間と第２遅延時間とを同一の遅延時間に調整する設計方法が、特開２００１−３０６６４３号公報に記載されている。
【０００４】
図１は、従来の半導体集積回路の設計方法が適用される設計システムの構成を示している。その設計システムは、コンピュータ１４０と、入力装置１４３と、出力装置１４４と、ソフトウェアである設計ツール１４５とを具備している。
【０００５】
設計ツール１４５は、コンピュータプログラムである制御部１５０と、配置情報ファイル１６１と、遅延情報ファイル１６２とを含んでいる。配置情報ファイル１６１は、半導体集積回路を構成するための部品が配置される所定の座標領域（Ｘ、Ｙ）を有している。配置情報ファイル１６１には、部品を識別する名称と、その部品が所定の座標領域に配置されたときの座標（Ｘ、Ｙ）とが制御部１５０によって格納される。遅延情報ファイル１６２には、クロックが部品から部品に伝達されるときの座標と、そのときの遅延時間とが制御部１５０によって格納される。
【０００６】
図２は、所定の座標領域（Ｘ、Ｙ）である座標領域１０１に配置される半導体集積回路を示している。
【０００７】
制御部１５０は、ユーザによる入力装置１４３の操作に応じて、配置情報ファイル１６１を新規に作成し、その配置情報ファイル１６１の座標領域１０１を出力装置１４４（表示装置）に表示する。この制御部１５０は、ユーザによる入力装置１４３の操作に応じて、上記の部品として複数のセル１１６−１、１１６−２、１２６−１〜１２６−３、…を座標領域１０１に配置する。複数のセル１１６−１、１１６−２、１２６−１〜１２６−３、…は、クロックＣＬＫに応じて動作する回路である。
【０００８】
制御部１５０は、クロックツリー１０２を座標領域１０１に配置する。クロックツリー１０２は、上記の部品として、配線（１０３、１０５）と、分岐点１０６と、複数のブロック１３１〜１３４とを含んでいる。配線（１０３、１０５）の一端は、クロックＣＬＫが供給される入力端ＩＮに接続されている。配線（１０３、１０５）の他端は、分岐点１０６を介して複数のブロック１３１〜１３４に接続されている。ここで、複数のブロック１３１〜１３４のうちのブロック１３１について説明する。
【０００９】
ブロック１３１は、配線（１０７、１０８）と、分岐点１０９と、複数のブロック１１０、１２０とを含んでいる。配線（１０７、１０８）は、その一端に分岐点１０６が接続され、その他端に分岐点１０９を介して複数のブロック１１０、１２０が接続されている。
【００１０】
ブロック１１０は、配線（１１１、１１３）と、分岐点１１４と、配線群１１５−１、１１５−２と、上記の複数のセル１１６−１、１１６−２、１２６−１〜１２６−３、…のうちのセル群１１６−１、１１６−２とを含んでいる。配線（１１１、１１３）は、その一端に分岐点１０９が接続され、その他端に分岐点１１４が接続されている。配線群１１５−１、１１５−２は、それぞれ、その一端に分岐点１１４が接続され、その他端にセル群１１６−１、１１６−２が接続されている。即ち、セル群１１６−１、１１６−２は並列接続されている。
【００１１】
ブロック１２０は、配線（１２１、１２３）と、分岐点１２４と、配線群１２５−１〜１２５−３と、上記の複数のセル１１６−１、１１６−２、１２６−１〜１２６−３、…のうちのセル群１２６−１〜１２６−３とを含んでいる。配線（１２１、１２３）は、その一端に分岐点１０９が接続され、その他端に分岐点１２４が接続されている。配線群１２５−１〜１２５−３は、それぞれ、その一端に分岐点１２４が接続され、その他端にセル群１２６−１〜１２６−３が接続されている。即ち、セル群１２６−１〜１２６−３は並列接続されている。
【００１２】
制御部１５０は、配置情報ファイル１６１上のクロックツリー１０２を参照して、クロックＣＬＫをドライブするためのクロックバッファの段数を決定する。制御部１５０は、ブロック１１０に対して、入力端ＩＮからセル群１１６−１、１１６−２に配置された分岐点（分岐点１０６、１０９、１１４）の数により、クロックバッファが３段必要であることを認識する。制御部１５０は、１つ目のクロックバッファとしてクロックバッファ１０４−１を配線（１０３、１０５）上に接続し、２つ目のクロックバッファとしてクロックバッファ１０４−２を配線（１０７、１０８）上に接続し、３つ目のクロックバッファとしてクロックバッファ１１２を配線（１１１、１１３）上に接続する。
【００１３】
また、制御部１５０は、ブロック１２０に対して、入力端ＩＮからセル群１２６−１〜１２６−３に配置された分岐点（分岐点１０６、１０９、１２４）の数により、クロックバッファが３段必要であることを認識する。１つ目、２つ目のクロックバッファは、それぞれ、上記のクロックバッファ１０４−１、１０４−２に対応する。制御部１５０は、３つ目のクロックバッファとしてクロックバッファ１２２を配線（１２１、１２３）上に接続する。
【００１４】
制御部１５０は、配線１１１、１１３と配線群１１５−１、１１５−２とクロックバッファ１１２とによる遅延に基づいて、クロックＣＬＫが分岐点１０９からセル群１１６−１、１１６−２に伝達されるまでの遅延時間ｔ１１０を算出する。また、制御部１５０は、配線１２１、１２３と配線群１２５−１〜１２５−３とクロックバッファ１２２とによる遅延に基づいて、クロックＣＬＫが分岐点１０９からセル群１２６−１〜１２６−３に伝達されるまでの遅延時間ｔ１２０を算出する。
【００１５】
遅延時間ｔ１１０、ｔ１２０の算出方法としては、既知の方法が用いられる。例えば、上記の配線、クロックバッファには、予め設定された設定遅延時間と、温度、電圧、製造のばらつきによるばらつき遅延時間とが考慮される。配線における設定遅延時間は、配線の長さに比例する。
【００１６】
制御部１５０は、分岐点１０９からセル群１１６−１、１１６−２までの座標と、遅延時間ｔ１１０とを遅延情報ファイル１６２に格納する。また、制御部１５０は、分岐点１０９からセル群１２６−１〜１２６−３までの座標と、遅延時間ｔ１２０とを遅延情報ファイル１６２に格納する。
【００１７】
制御部１５０は、遅延情報ファイル１６２を参照して、遅延時間ｔ１１０と遅延時間ｔ１２０とを同一の遅延時間に調整するスキュー調整処理を実行する。スキュー調整処理において、制御部１５０は、スキュー調整用配線１１７、１２７をそれぞれ分岐点１１４、１２４に接続し、スキュー調整用配線１１７、１２７にそれぞれダミークロックバッファ１１８、１２８の入力を接続する。ダミークロックバッファ１１８、１２８の出力は接続されない。
【００１８】
上記のスキュー調整用配線１１７、１２７は、分岐点１１４、１２４間に生じるクロックスキューを調整するための容量を有している。このため、スキュー調整処理を実行することにより、クロックスキューを小さくすることができる。
【００１９】
【特許文献１】特開２００１−３０６６４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
例えば、図２に示されるように、セル群１１６−１、１１６−２のうちの１つのセルとして対象セル１１６−２と、セル群１２６−１〜１２６−３のうちの１つのセルとして対象セル１２６−１とがデータの受け渡しを行うものとする。対象セル１１６−２、１２６−１がそれぞれ分岐点１１４、１２４に接続されていることにより、クロックＣＬＫが分岐点１０９から対象セル１１６−２に伝達されるまでの遅延時間と、クロックＣＬＫが分岐点１０９から対象セル１２６−１に伝達されるまでの遅延時間が大きくなり、遅延変動に起因するクロックスキューが大きく生じる場合がある。このクロックスキューを異経路クロックスキューと称する。
【００２１】
その理由として、対象セル１１６−２、１２６−１に対して、共通の分岐点は分岐点１０９である。この場合、対象セル１１６−２、１２６−１のそれぞれに対する非共通部分は、分岐点１０９から配線１１５−２、１２５−１まである。このため、クロックＣＬＫが分岐点１０９から対象セル１１６−２に伝達されるまでの対象遅延時間と、クロックＣＬＫが分岐点１０９から対象セル１２６−１に伝達されるまでの対象遅延時間が大きくなってしまう。
【００２２】
このように、対象セル１１６−２、１２６−１に至るまでの非共通部分が長いと、それぞれの経路に対して異なる遅延変動に起因する上記の異経路クロックスキューが生じてしまう。
【課題を解決するための手段】
【００２３】
以下に、［発明を実施するための最良の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２４】
本発明の半導体集積回路の設計方法は、
クロック（ＣＬＫ）に応じて動作する複数のセル（１６−１、１６−２、２６−１〜２６−３、…）を座標領域（１）に配置するセル配置ステップ（Ｓ１）と、
前記クロック（ＣＬＫ）が入力される入力ネット（５、７）と、前記複数のセル（１６−１、１６−２、２６−１〜２６−３、…）である第１、第２セル群（１６−１、１６−２）（２６−１〜２６−３）がそれぞれ並列接続された第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）と、前記入力ネット（５、７）と前記第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）との間に接続された共通ネット（８、１１、２１）とを含むクロックツリー（２）を前記座標領域（１）に配置するツリー配置ステップ（Ｓ２）と、
前記入力ネット（５、７）と前記共通ネット（８、１１、２１）との間と、前記共通ネット（８、１１、２１）と前記第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）との間に、クロックバッファ（４−２）（１２）（２２）を接続するバッファ配置ステップ（Ｓ３）と、
前記第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）間に生じるクロックスキューを調整するための第１、第２ダミークロックバッファ（１８）（２８）をそれぞれ前記第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）に接続するスキュー調整ステップ（Ｓ５）と、
前記第１、第２セル群（１６−１、１６−２）（２６−１〜２６−３）のうちの１つのセルとして第１、第２対象セル（１６−２）（２６−１）間でデータの受け渡しを行う場合（Ｓ６−ＹＥＳ）、前記第１、第２対象セル（１６−２）（２６−１）がそれぞれ前記第１、第２非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）に接続されていることにより生じる遅延変動起因の異経路クロックスキューを調整するために、
前記第２対象セル（２６−１）に代えて接続変更用ダミークロックバッファ（２９）を前記第２非共通ネット（２３、２５−１〜２５−３、２７）に接続する第１接続変更ステップ（Ｓ９）と、
前記第２対象セル（２６−１）を前記第１ダミークロックバッファ（１８）に接続する第２接続変更ステップ（Ｓ９）と
を具備している。
【発明の効果】
【００２５】
以上により、本発明の半導体集積回路の設計方法によれば、遅延変動起因の異経路クロックスキューを小さくすることができる。
【００２６】
その理由として、第１、第２対象セル（１６−２）（２６−１）に対して経路が異なるため、それぞれの経路に対して異なる遅延変動に起因する上記の異経路クロックスキューが生じる。第１、第２接続変更ステップ（Ｓ９）が実行される前では、第１、第２対象セル（１６−２）（２６−１）に対して、共通のネットは共通ネット（８、１１、２１）だけであり、非共通のネットは非共通ネット（１３、１５−１、１５−２、１７）（２５−１〜２５−３、２７）である。この場合、第１、第２対象セル（１６−２）（２６−１）のそれぞれに対する非共通部分は、非共通ネット（１３、１５−１、１５−２、１７）（２５−１〜２５−３、２７）である。このため、クロック（ＣＬＫ）が共通ネット（８、１１、２１）から第１対象セル（１６−２）に伝達されるまでの対象遅延時間（ｔ１０１６−２）と、クロック（ＣＬＫ）が共通ネット（８、１１、２１）から第２対象セル（２６−１）に伝達されるまでの対象遅延時間（ｔ２０２６−１）が大きくなってしまう。
【００２７】
一方、第１、第２接続変更ステップ（Ｓ９）が実行されたとき、第１、第２対象セル（１６−２）（２６−１）に対して、共通のネットは、共通ネット（８、１１、２１）と非共通ネット（１３、１５−１、１５−２、１７）であり、非共通のネットは非共通ネット（１３、１５−１、１５−２、１７）である。この場合、第１対象セル（１６−２）、２６−１のそれぞれに対する非共通部分は、非共通ネット（１３、１５−１、１５−２、１７）だけになる。このため、クロック（ＣＬＫ）が非共通ネット（１３、１５−１、１５−２、１７）から第１対象セル（１６−２）に伝達されるまでの改善対象遅延時間（ｔ１０１６−２’）と、クロック（ＣＬＫ）が非共通ネット（１３、１５−１、１５−２、１７）から第２対象セル（２６−１）に伝達されるまでの改善対象遅延時間（ｔ２０２６−１’）は、上記の遅延時間に比べて大幅に短くなる。このように、第１、第２対象セル（１６−２）（２６−１）に対して非共通部分が短くなる接続変更を行うことにより、非共通部分に対しての異なる遅延変動に起因する異経路クロックスキューを小さくすることができる。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、本発明の半導体集積回路の設計方法について詳細に説明する。
【００２９】
図３は、本発明の半導体集積回路の設計方法が適用される設計システムの構成を示している。その設計システムは、コンピュータ４０と、入力装置４３と、出力装置４４とを具備している。入力装置４３と出力装置４４は、コンピュータ４０に接続されている。入力装置４３は、キーボード、ポインティングデバイスを含み、出力装置４４は、表示装置を含んでいる。
【００３０】
コンピュータ４０は、コンピュータプログラムを格納する記憶部４１と、コンピュータプログラムを実行する実行部であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４２とを備えている。
【００３１】
設計システムは、更に、ソフトウェアである設計ツール４５を具備している。設計ツール４５は、記憶部４１にインストールされる。この設計ツール４５は、コンピュータプログラム５０と、ファイル６０とを含んでいる。ファイル６０は、配置情報ファイル６１、遅延情報ファイル６２を含んでいる。
【００３２】
図４は、配置情報ファイル６１を示している。配置情報ファイル６１は、半導体集積回路を構成するための部品が配置される所定の座標領域（Ｘ、Ｙ）を有している。配置情報ファイル６１には、部品を識別する名称と、その部品が所定の座標領域に配置されたときの座標（Ｘ、Ｙ）とがコンピュータプログラム５０によって格納される。
【００３３】
図５は、遅延情報ファイル６２を示している。遅延情報ファイル６２には、クロックが部品から部品に伝達されるときの座標と、そのときの遅延時間とがコンピュータプログラム５０によって格納される。
【００３４】
コンピュータプログラム５０は、後述のセル配置部５１、ツリー配置部５２、バッファ配置部５３、遅延時間算出部５４、スキュー調整部５５、対象遅延時間算出部５６、接続変更部５７を含んでいる。セル配置部５１、ツリー配置部５２、バッファ配置部５３、遅延時間算出部５４、スキュー調整部５５は、前述のコンピュータプログラムである制御部１５０に対応する。例えば、セル配置部５１、ツリー配置部５２、バッファ配置部５３、遅延時間算出部５４、スキュー調整部５５は、既存コンピュータプログラム１５０として、記憶部４１に予めインストールされているものとする。この場合、その既存コンピュータプログラム１５０に対して、対象遅延時間算出部５６、接続変更部５７は、接続変更用コンピュータプログラム５０として、更に、記憶部４１に追加インストールされる。
【００３５】
図６、図７は、所定の座標領域（Ｘ、Ｙ）である座標領域１に配置される半導体集積回路を示している。
【００３６】
図６に示されるように、セル配置部５１は、ユーザによる入力装置４３の操作に応じて、配置情報ファイル６１を新規に作成し、その配置情報ファイル６１の座標領域１を出力装置４４（表示装置）に表示する。このセル配置部５１は、ユーザによる入力装置４３の操作に応じて、上記の部品として複数のセル１６−１、１６−２、２６−１〜２６−３、…を座標領域１に配置する。複数のセル１６−１、１６−２、２６−１〜２６−３、…は、クロックＣＬＫに応じて動作する回路であり、その回路としては、フリップフロップ、レジスタが例示される。本実施形態では、フリップフロップであるものとする。
【００３７】
ツリー配置部５２は、クロックツリー２を座標領域１に配置する。クロックツリー２は、上記の部品として、共通配線（３、５）と、分岐点６と、複数のブロック３１〜３４とを含んでいる。共通配線（３、５）の一端は、クロックＣＬＫが供給される入力端ＩＮに接続されている。共通配線（３、５）の他端は、分岐点６を介して複数のブロック３１〜３４に接続されている。ここで、複数のブロック３１〜３４のうちのブロック３１について説明する。
【００３８】
ブロック３１は、共通配線（７、８）と、共通分岐点９と、複数のブロック１０、２０とを含んでいる。共通配線（７、８）は、その一端に分岐点６が接続され、その他端に共通分岐点９を介して複数のブロック１０、２０が接続されている。
【００３９】
ブロック１０は、中継配線（１１、１３）と、分岐点１４と、配線群１５−１、１５−２と、上記の複数のセル１６−１、１６−２、２６−１〜２６−３、…のうちのセル群１６−１、１６−２とを含んでいる。中継配線（１１、１３）は、その一端に共通分岐点９が接続され、その他端に分岐点１４が接続されている。配線群１５−１、１５−２は、それぞれ、その一端に分岐点１４が接続され、その他端にセル群１６−１、１６−２が接続されている。即ち、セル群１６−１、１６−２は並列接続されている。
【００４０】
ブロック２０は、中継配線（２１、２３）と、分岐点２４と、配線群２５−１〜２５−３と、上記の複数のセル１６−１、１６−２、２６−１〜２６−３、…のうちのセル群２６−１〜２６−３とを含んでいる。中継配線（２１、２３）は、その一端に共通分岐点９が接続され、その他端に分岐点２４が接続されている。配線群２５−１〜２５−３は、それぞれ、その一端に分岐点２４が接続され、その他端にセル群２６−１〜２６−３が接続されている。即ち、セル群２６−１〜２６−３は並列接続されている。
【００４１】
バッファ配置部５３は、配置情報ファイル６１上のクロックツリー２を参照して、クロックＣＬＫをドライブするためのクロックバッファの段数を決定する。バッファ配置部５３は、ブロック１０に対して、入力端ＩＮからセル群１６−１、１６−２に配置された分岐点（分岐点６、共通分岐点９、分岐点１４）の数により、クロックバッファが３段必要であることを認識する。バッファ配置部５３は、１つ目のクロックバッファとしてクロックバッファ４−１を共通配線（３、５）上に接続し、２つ目のクロックバッファとしてクロックバッファ４−２を共通配線（７、８）上に接続し、３つ目のクロックバッファとしてクロックバッファ１２を中継配線（１１、１３）上に接続する。
【００４２】
この場合、共通配線（３、５）は共通配線３、５に分けられる。共通配線３は、その一端に入力端ＩＮが接続され、その他端にクロックバッファ４−１の入力が接続されている。共通配線５は、その一端にクロックバッファ４−１の出力が接続され、その他端に分岐点６が接続されている。また、共通配線（７、８）は共通配線７、８に分けられる。共通配線７は、その一端に分岐点６が接続され、その他端にクロックバッファ４−２の入力が接続されている。共通配線８は、その一端にクロックバッファ４−２の出力が接続され、その他端に共通分岐点９が接続されている。また、中継配線（１１、１３）は中継配線１１、１３に分けられる。中継配線１１は、その一端に共通分岐点９が接続され、その他端にクロックバッファ１２の入力が接続されている。中継配線１３は、その一端にクロックバッファ１２の出力が接続され、その他端に分岐点１４が接続されている。
【００４３】
また、バッファ配置部５３は、ブロック２０に対して、入力端ＩＮからセル群２６−１〜２６−３に配置された分岐点（分岐点６、共通分岐点９、分岐点２４）の数により、クロックバッファが３段必要であることを認識する。１つ目、２つ目のクロックバッファは、それぞれ、上記のクロックバッファ４−１、４−２に対応する。バッファ配置部５３は、３つ目のクロックバッファとしてクロックバッファ２２を中継配線（２１、２３）上に接続する。
【００４４】
この場合、中継配線（２１、２３）は中継配線２１、２３に分けられる。中継配線２１は、その一端に共通分岐点９が接続され、その他端にクロックバッファ２２の入力が接続されている。中継配線２３は、その一端にクロックバッファ２２の出力が接続され、その他端に分岐点２４が接続されている。
【００４５】
遅延時間算出部５４は、中継配線１１、１３と配線群１５−１、１５−２とクロックバッファ１２とによる遅延に基づいて、クロックＣＬＫが共通分岐点９からセル群１６−１、１６−２に伝達されるまでの遅延時間ｔ１０を算出する。また、遅延時間算出部５４は、中継配線２１、２３と配線群２５−１〜２５−３とクロックバッファ２２とによる遅延に基づいて、クロックＣＬＫが共通分岐点９からセル群２６−１〜２６−３に伝達されるまでの遅延時間ｔ２０を算出する。
【００４６】
遅延時間ｔ１０、ｔ２０の算出方法としては、既知の方法が用いられる。例えば、上記の配線、クロックバッファには、予め設定された設定遅延時間と、温度、電圧、製造のばらつきによるばらつき遅延時間とが考慮される。配線における設定遅延時間は、配線の長さに比例する。
【００４７】
遅延時間算出部５４は、共通分岐点９からセル群１６−１、１６−２までの座標と、遅延時間ｔ１０とを遅延情報ファイル６２に格納する。また、遅延時間算出部５４は、共通分岐点９からセル群２６−１〜２６−３までの座標と、遅延時間ｔ２０とを遅延情報ファイル６２に格納する。
【００４８】
スキュー調整部５５は、遅延情報ファイル６２を参照して、遅延時間ｔ１０と遅延時間ｔ２０とを同一の遅延時間に調整するスキュー調整処理を実行する。スキュー調整処理において、スキュー調整部５５は、スキュー調整用配線１７、２７をそれぞれ分岐点１４、２４に接続し、スキュー調整用配線１７、２７にそれぞれダミークロックバッファ１８、２８の入力を接続する。ダミークロックバッファ１８、２８の出力は接続されない。
【００４９】
スキュー調整用配線１７、２７は、分岐点１４、２４間に生じるクロックスキューを調整するための容量を有している。このため、スキュー調整処理を実行することにより、クロックスキューを小さくすることができる。
【００５０】
例えば、図６に示されるように、セル群１６−１、１６−２のうちの１つのセルとして対象セル１６−２と、セル群２６−１〜２６−３のうちの１つのセルとして対象セル２６−１とがデータの受け渡しを行うものとする。また、対象セル１６−２、２６−１は隣接しているものとする。対象セル１６−２、２６−１がそれぞれ分岐点１４、２４に接続されていることにより、クロックＣＬＫが共通分岐点９から対象セル１６−２に伝達されるまでの遅延時間と、クロックＣＬＫが共通分岐点９から対象セル２６−１に伝達されるまでの遅延時間が大きくなり、遅延変動に起因するクロックスキューが大きく生じる場合がある。このクロックスキューを異経路クロックスキューと称する。
【００５１】
そこで、ユーザは、異経路クロックスキューが存在するか否かを調べるために、ユーザの入力装置４３の操作により、対象セル１６−２、２６−１を指定する。対象セル１６−２は、配線群１５−１、１５−２のうちの、変更候補配線として配線１５−２に接続され、対象セル２６−１は、配線群２５−１〜２５−３のうちの、変更候補配線として配線２５−１に接続されている。このとき、対象遅延時間算出部５６は、中継配線１１、１３と変更候補配線１５−２とクロックバッファ１２とによる遅延に基づいて、クロックＣＬＫが共通分岐点９から対象セル１６−２に伝達されるまでの対象遅延時間ｔ１０１６−２を算出する。また、対象遅延時間算出部５６は、中継配線２１、２３と変更候補配線２５−１とクロックバッファ２２とによる遅延に基づいて、クロックＣＬＫが共通分岐点９から対象セル２６−１に伝達されるまでの対象遅延時間ｔ２０２６−１を算出する。
【００５２】
対象遅延時間ｔ１０１６−２、ｔ２０２６−１の算出方法としては、遅延時間ｔ１０、ｔ２０の算出方法と同様に、既知の方法が用いられる。上述のように、例えば、上記の配線、クロックバッファには、上記の設定遅延時間、ばらつき遅延時間が考慮され、配線における設定遅延時間は、配線の長さに比例する。
【００５３】
対象遅延時間算出部５６は、共通分岐点９から対象セル１６−２までの座標と、対象遅延時間ｔ１０１６−２とを遅延情報ファイル６２に格納する。また、対象遅延時間算出部５６は、共通分岐点９から対象セル２６−１までの座標と、対象遅延時間ｔ２０２６−１とを遅延情報ファイル６２に格納する。
【００５４】
図７に示されるように、接続変更部５７は、遅延情報ファイル６２を参照して、対象遅延時間ｔ１０１６−２と対象遅延時間ｔ２０２６−１との遅延時間差が設定時間差よりも大きい場合、接続変更処理を実行する。接続変更処理において、接続変更部５７は、変更候補配線２５−１の他端から、対象セル２６−１を切り離す。次に、接続変更部５７は、変更候補配線２５−１の他端にダミークロックバッファとして接続変更用ダミークロックバッファ２９の入力を接続する。接続変更用ダミークロックバッファ２９は、対象セル２６−１の入力容量と同じ入力容量を有する。更に、接続変更部５７は、対象セル２６−１をダミークロックバッファ１８に接続する。
【００５５】
上述のように、対象セル１６−２、２６−１に対して経路が異なるため、それぞれの経路に対して異なる遅延変動に起因する上記の異経路クロックスキューが生じる。接続変更処理が実行される前では、対象セル１６−２、２６−１に対して、共通の分岐点は共通分岐点９である。この場合、対象セル１６−２、２６−１のそれぞれに対する非共通部分は、共通分岐点９から配線１５−２、２５−１まである。このため、クロックＣＬＫが共通分岐点９から対象セル１６−２に伝達されるまでの対象遅延時間ｔ１０１６−２と、クロックＣＬＫが共通分岐点９から対象セル２６−１に伝達されるまでの対象遅延時間ｔ２０２６−１が大きくなってしまう。
【００５６】
一方、接続変更処理が実行されたとき、対象セル１６−２、２６−１に対して、共通の分岐点は、共通分岐点９と分岐点１４である。この場合、対象セル１６−２、２６−１のそれぞれに対する非共通部分は、分岐点１４から配線１５−２、１７までになる。このため、クロックＣＬＫが分岐点１４から対象セル１６−２に伝達されるまでの改善対象遅延時間ｔ１０１６−２’と、クロックＣＬＫが分岐点１４から対象セル２６−１に伝達されるまでの改善対象遅延時間ｔ２０２６−１’は、上記の遅延時間に比べて大幅に短くなる。これにより、非共通部分に対しての異なる遅延変動に起因する異経路クロックスキューが上記のそれに比べて大幅に短くなる。
【００５７】
例えば、接続変更処理が実行される前では、対象遅延時間ｔ１０１６−２として、クロックＣＬＫが共通分岐点９から対象セル１６−２に伝達されるまでの設定遅延時間が３．０［ｎｓ］であるものとする。また、対象遅延時間ｔ２０２６−１として、クロックＣＬＫが共通分岐点９から対象セル２６−１に伝達されるまでの設定遅延時間が３．４［ｎｓ］であるものとする。この場合、対象遅延時間ｔ１０１６−２と対象遅延時間ｔ２０２６−１との遅延時間差は、３．４−３．０＝０．４［ｎｓ］になる。そこで、ばらつき遅延時間の範囲を設定遅延時間の９０％〜１１０％とした場合、そのばらつきの影響も含めた最大の遅延時間差は、３．４×１．１−３．０×０．９＝１．０４［ｎｓ］になる。
【００５８】
一方、接続変更処理が実行されたとき、改善対象遅延時間ｔ１０１６−２’として、クロックＣＬＫが分岐点１４から対象セル１６−２に伝達されるまでの設定遅延時間が１．０［ｎｓ］であるものとする。また、改善対象遅延時間ｔ２０２６−１’として、クロックＣＬＫが分岐点１４から対象セル２６−１に伝達されるまでの設定遅延時間が１．４［ｎｓ］であるものとする。この場合、対象遅延時間ｔ１０１６−２と対象遅延時間ｔ２０２６−１との遅延時間差は、１．４−１．０＝０．４［ｎｓ］になる。そこで、ばらつき遅延時間の範囲を設定遅延時間の９０％〜１１０％とした場合、そのばらつきの影響も含めた最大の遅延時間差は、１．４×１．１−１．０×０．９＝０．６４［ｎｓ］になる。この場合、接続変更処理が実行されたときのばらつきの影響も含めた最大遅延時間差と、接続変更処理が実行される前のばらつきの影響も含めた最大遅延時間差との差は、１．０４−０．６４＝０．４になる。これにより、接続変更処理が実行されたとき、接続変更処理が実行される前に比べて、遅延時間差が最大で０．４［ｎｓ］も短縮される。つまり、ばらつきの影響も含まない遅延差は、接続変更処理の実行前と実行後で変化が無いのに対して、ばらつきを含めた遅延差は、この接続変更処理によって短縮されることを示している。
【００５９】
また、接続変更処理が実行されたとき、中継配線１３、スキュー調整用配線１７の容量が接続変更処理の実行前と変わらないことと、配線２５−１に対象セル２６−１と同入力容量の接続変更用ダミークロックバッファ２９を接続することにより中継配線２３、配線２５−１の容量が接続変更処理の実行前と変わらない。これにより、クロックＣＬＫが入力端ＩＮからセル群１６−１、１６−２に伝達されるまでの遅延時間と、クロックＣＬＫが入力端ＩＮからセル群２６−２、２６−３に伝達されるまでの遅延時間が変化しない。つまり、接続変更に関与しないセル群までの遅延時間は保持されたまま接続変更処理が行われる。
【００６０】
このように、本発明の半導体集積回路の設計方法によれば、対象セル１６−２、２６−１に対して非共通部分が短くなる接続変更を行うことにより、ばらつきに起因する遅延変動による異経路クロックスキューを小さくすることができる。
【００６１】
図８は、本発明の半導体集積回路の設計方法を示し、コンピュータ４０の動作を示すフローチャートである。
【００６２】
セル配置部５１は、ユーザによる入力装置４３の操作に応じて、セル配置処理を実行する（ステップＳ１）。ステップＳ１において、まず、セル配置部５１は、ユーザによる入力装置４３の操作に応じて、配置情報ファイル６１を新規に作成し、その配置情報ファイル６１の座標領域１を出力装置４４（表示装置）に表示する。次に、セル配置部５１は、ユーザによる入力装置４３の操作に応じて、上記の複数のセル１６−１、１６−２、２６−１〜２６−３、…を座標領域１に配置する。
【００６３】
ツリー配置部５２は、上記のクロックツリー２を座標領域１に配置するツリー配置処理を実行する（ステップＳ２）。
【００６４】
ステップＳ２において、上記の共通配線５、７により構成されるネットワークを入力ネット（５、７）と称する。上記の共通配線８、中継配線１１、２１により構成されるネットワークを共通ネット（８、１１、２１）と称する。上記の中継配線１３、配線群１５−１、１５−２、スキュー調整用配線１７により構成されるネットワークを非共通ネット（１３、１５−１、１５−２、１７）と称する。上記の中継配線２３、配線群２５−１〜２５−３、スキュー調整用配線２７により構成されるネットワークを非共通ネット（２３、２５−１〜２５−３、２７）と称する。
【００６５】
バッファ配置部５３は、配置情報ファイル６１上のクロックツリー２を参照して、ツリー配置処理を実行する（ステップＳ３）。
【００６６】
ステップＳ３において、バッファ配置部５３は、ブロック１０に対して、入力端ＩＮから末端セル（セル群１６−１、１６−２）に配置された分岐点の数により、クロックバッファが３段必要であることを認識する。バッファ配置部５３は、１つ目のクロックバッファとしてクロックバッファ４−１を入力ネット（５、７）の前に接続し、２つ目のクロックバッファとしてクロックバッファ４−２を入力ネット（５、７）と共通ネット（８、１１、２１）との間に接続し、３つ目のクロックバッファとしてクロックバッファ１２を共通ネット（８、１１、２１）と非共通ネット（１３、１５−１、１５−２、１７）との間に接続する。
【００６７】
また、ステップＳ３において、バッファ配置部５３は、ブロック２０に対して、入力端ＩＮから末端セル（セル群２６−１〜２６−３）に配置された分岐点の数により、クロックバッファが３段必要であることを認識する。１つ目、２つ目のクロックバッファは、それぞれ、上記のクロックバッファ４−１、４−２に対応する。バッファ配置部５３は、３つ目のクロックバッファとしてクロックバッファ２２を共通ネット（８、１１、２１）と非共通ネット（２３、２５−１〜２５−３、２７）との間に接続する。
【００６８】
遅延時間算出部５４は、共通ネット（８、１１、２１）と非共通ネット（１３、１５−１、１５−２、１７）とクロックバッファ１２とによる遅延（設定遅延時間・ばらつき遅延時間）に基づいて、クロックＣＬＫが共通ネット（８、１１、２１）からセル群１６−１、１６−２に伝達されるまでの遅延時間ｔ１０を算出する。また、遅延時間算出部５４は、共通ネット（８、１１、２１）と非共通ネット（２３、２５−１〜２５−３、２７）とクロックバッファ２２とによる遅延（設定遅延時間・ばらつき遅延時間）に基づいて、クロックＣＬＫが共通ネット（８、１１、２１）からセル群２６−１〜２６−３に伝達されるまでの遅延時間ｔ２０を算出する（ステップＳ４）。
【００６９】
また、ステップＳ４において、遅延時間算出部５４は、共通分岐点９からセル群１６−１、１６−２までの座標と、遅延時間ｔ１０とを遅延情報ファイル６２に格納し、共通分岐点９からセル群２６−１〜２６−３までの座標と、遅延時間ｔ２０とを遅延情報ファイル６２に格納する。
【００７０】
スキュー調整部５５は、遅延情報ファイル６２を参照して、遅延時間ｔ１０と遅延時間ｔ２０とを同一の遅延時間に調整するために、スキュー調整処理を実行する（ステップＳ５）。
【００７１】
ステップＳ５において、スキュー調整部５５は、非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）間に生じるクロックスキューを調整するためのダミークロックバッファ１８、２８をそれぞれ非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）に接続する。
【００７２】
ここで、セル群１６−１、１６−２とセル群２６−１〜２６−３の中に、異経路でデータの受け渡しを行うセルが存在しない場合（ステップＳ６−ＮＯ）、スキュー調整部５５は、配置情報ファイル６１を更新し、半導体集積回路の設計を終了する。
【００７３】
一方、セル群１６−１、１６−２とセル群２６−１〜２６−３のうちの、異経路でデータの受け渡しを行うセルが存在する場合（ステップＳ６−ＹＥＳ）、ユーザは、そのセルを指定する。上述のように、セル群１６−１、１６−２、２６−１〜２６−３のうちの、隣接している対象セル１６−２、２６−１がデータの受け渡しを行うものとする。
【００７４】
この場合、ユーザは、入力装置４３を操作して、対象セル１６−２、２６−１を指定する。このとき、対象遅延時間算出部５６は、共通ネット（８、１１、２１）と非共通ネット（１３、１５−１、１５−２、１７）とクロックバッファ１２とによる遅延（設定遅延時間・ばらつき遅延時間）に基づいて、クロックＣＬＫが共通ネット（８、１１、２１）から対象セル１６−２に伝達されるまでの対象遅延時間ｔ１０１６−２を算出する。対象遅延時間算出部５６は、共通ネット（８、１１、２１）と非共通ネット（２３、２５−１〜２５−３、２７）とクロックバッファ２２とによる遅延（設定遅延時間・ばらつき遅延時間）に基づいて、クロックＣＬＫが共通ネット（８、１１、２１）から対象セル２６−１に伝達されるまでの対象遅延時間ｔ２０２６−１を算出する（ステップＳ７）。
【００７５】
また、ステップＳ７において、対象遅延時間算出部５６は、共通分岐点９から対象セル１６−２までの座標と、対象遅延時間ｔ１０１６−２とを遅延情報ファイル６２に格納する。また、対象遅延時間算出部５６は、共通分岐点９から対象セル２６−１までの座標と、対象遅延時間ｔ２０２６−１とを遅延情報ファイル６２に格納する。
【００７６】
接続変更部５７は、遅延情報ファイル６２を参照して、対象遅延時間ｔ１０１６−２と対象遅延時間ｔ２０２６−１との遅延時間差が設定時間よりも大きいか否かを調べる（ステップＳ８）。
【００７７】
ここで、対象遅延時間ｔ１０１６−２と対象遅延時間ｔ２０２６−１との遅延時間差が設定時間以下である場合（ステップＳ８−ＮＯ）、接続変更部５７は、配置情報ファイル６１を更新し、半導体集積回路の設計を終了する。
【００７８】
一方、対象遅延時間ｔ１０１６−２と対象遅延時間ｔ２０２６−１との遅延時間差が設定時間よりも大きい場合（ステップＳ８−ＹＥＳ）、接続変更部５７は、異経路クロックスキューを調整するための接続変更処理を実行する（ステップＳ９）。ただし、この接続変更処理（ステップＳ９）は、接続変更によりばらつきを含めたクロックスキューが改善される場合に実行される。
【００７９】
ステップＳ９において、接続変更部５７は、対象セル２６−１に代えて、対象セル２６−１の入力容量と同じ入力容量を有する接続変更用ダミークロックバッファ２９を非共通ネット（２３、２５−１〜２５−３、２７）に接続する。更に、接続変更部５７は、対象セル２６−１をダミークロックバッファ１８に接続する。
【００８０】
以上の説明により、本発明の半導体集積回路の設計方法によれば、遅延変動起因の異経路クロックスキューを小さくすることができる。
【００８１】
その理由として、対象セル１６−２、２６−１に対して経路が異なるため、それぞれの経路に対して異なる遅延変動に起因する上記の異経路クロックスキューが生じる。接続変更処理（ステップＳ９）が実行される前では、対象セル１６−２、２６−１に対して、共通のネットは共通ネット（８、１１、２１）であり、非共通のネットは非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）である。この場合、対象セル１６−２、２６−１のそれぞれに対する非共通部分は、非共通ネット（１３、１５−１、１５−２、１７）（２３、２５−１〜２５−３、２７）である。このため、クロックＣＬＫが共通ネット（８、１１、２１）から対象セル１６−２に伝達されるまでの対象遅延時間ｔ１０１６−２と、クロックＣＬＫが共通ネット（８、１１、２１）から対象セル２６−１に伝達されるまでの対象遅延時間ｔ２０２６−１が大きくなってしまう。
【００８２】
一方、接続変更処理（ステップＳ９）が実行されたとき、対象セル１６−２、２６−１に対して、共通のネットは、共通ネット（８、１１、２１）であり、非共通のネットは非共通ネット（１３、１５−１、１５−２、１７）である。この場合、対象セル１６−２、２６−１のそれぞれに対する非共通部分は、非共通ネット（１３、１５−１、１５−２、１７）だけになる。このため、クロックＣＬＫが非共通ネット（１３、１５−１、１５−２、１７）から対象セル１６−２に伝達されるまでの改善対象遅延時間ｔ１０１６−２’と、クロックＣＬＫが非共通ネット（１３、１５−１、１５−２、１７）から対象セル２６−１に伝達されるまでの改善対象遅延時間ｔ２０２６−１’は、上記の遅延時間に比べて大幅に短くなる。このように、対象セル１６−２、２６−１に対して非共通部分が短くなる接続変更を行うことにより、非共通部分に対しての異なる遅延変動に起因する異経路クロックスキューを小さくすることができる。
【００８３】
また、接続変更処理（ステップＳ９）が実行されたとき、上記の非共通ネット（１３、１５−１、１５−２、１７）の容量が接続変更処理（ステップＳ９）の実行前と変わらないことと、上記の非共通ネット（２３、２５−１〜２５−３、２７）に対象セル２６−１と同入力容量の接続変更用ダミークロックバッファ２９を接続することにより非共通ネット（２３、２５−１〜２５−３、２７）の容量が接続変更処理（ステップＳ９）の実行前と変わらない。これにより、クロックＣＬＫが入力端ＩＮからセル群１６−１、１６−２に伝達されるまでの遅延時間と、クロックＣＬＫが入力端ＩＮからセル群２６−２、２６−３に伝達されるまでの遅延時間が変化しない。つまり、接続変更に関与しないセル群までの遅延時間は保持されたまま接続変更処理（ステップＳ９）が行われる。
【図面の簡単な説明】
【００８４】
【図１】図１は、従来の半導体集積回路の設計方法が適用される設計システムの構成を示している。
【図２】図２は、所定の座標領域（Ｘ、Ｙ）である座標領域１０１に配置される半導体集積回路を示している。
【図３】図３は、本発明の半導体集積回路の設計方法が適用される設計システムの構成を示している。
【図４】図４は、配置情報ファイル６１を示している。
【図５】図５は、遅延情報ファイル６２を示している。
【図６】図６は、所定の座標領域（Ｘ、Ｙ）である座標領域１に配置される半導体集積回路を示している。
【図７】図７は、所定の座標領域（Ｘ、Ｙ）である座標領域１に配置される半導体集積回路を示している。
【図８】図８は、本発明の半導体集積回路の設計方法を示し、コンピュータ４０の動作を示すフローチャートである。
【符号の説明】
【００８５】
１    座標領域、
２    クロックツリー、
３    共通配線、
４−１、４−２    クロックバッファ、
５    共通配線、
６    分岐点、
７、８    共通配線、
９    共通分岐点、
１０    ブロック、
１１    中継配線、
１２    クロックバッファ、
１３    中継配線、
１４    分岐点、
１５−１、１５−２    配線、
１６−１、１６−２    セル、
１７    スキュー調整用配線、
１８    ダミークロックバッファ、
２０    ブロック、
２１    中継配線、
２２    クロックバッファ、
２３    中継配線、
２４    分岐点、
２５−１〜２５−３    配線、
２６−１〜２６−３    セル、
２７    スキュー調整用配線、
２８    ダミークロックバッファ、
２９    接続変更用ダミークロックバッファ、
３１〜３４    ブロック、
４０    コンピュータ、
４１    記憶部、
４２    ＣＰＵ（実行部）、
４３    入力装置、
４４    出力装置、
４５    設計ツール、
５０    コンピュータプログラム、
５１    セル配置部、
５２    ツリー配置部、
５３    バッファ配置部、
５４    遅延時間算出部、
５５    スキュー調整部、
５６    対象遅延時間算出部、
５７    接続変更部、
６０    ファイル、
６１    配置情報ファイル、
６２    遅延情報ファイル、
【図１】
2008187027.tif 000003
【図２】
2008187027.tif 000004
【図３】
2008187027.tif 000005
【図４】
2008187027.tif 000006
【図５】
2008187027.tif 000007
【図６】
2008187027.tif 000008
【図７】
2008187027.tif 000009
【図８】
2008187027.tif 000010