(57)【特許請求の範囲】
【請求項１】
半導体基板の主表面上に回路が集積して形成される半導体集積回路装置であって、
その直線方向を平行にして並ぶ複数の直線部分を含み、その配線上のある点から前記複数の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる経路が形成されるクロック配線、
クロック信号に同期して動作する複数の記憶回路、および、
各々前記クロック配線から分岐して前記複数の記憶回路のうちの少なくとも一つにクロック信号を供給する複数の分岐配線を備え、
前記クロック配線は、その経路上に前記複数の直線部分の一つをその直線方向の一方向きで伝搬するクロック信号を、該直線方向の逆向きに折り返して前記複数の直線部分の別の一つへ伝搬させる部分を少なくとも１つ含み、
前記複数の分岐配線は、前記複数の直線部分のうちの第１の直線部分と接続する第１の分岐配線と、前記複数の直線部分のうちの前記第１の直線部分とは異なる第２の直線部分と接続する第２の分岐配線とを含み、
前記第２の分岐配線は前記第１の直線部分と前記半導体基板の主表面に垂直な方向で対向して交差する、半導体集積回路装置。
【請求項２】
前記クロック配線は、前記経路がその間を結ぶ第１の端と第２の端とを有し、
クロック信号が前記クロック配線の第１の端と第２の端との中間点に供給される請求項１記載の半導体集積回路装置。
【請求項３】
前記複数の直線部分のうちの２つの直線部分の一方がその入力に接続され、他方がその出力に接続される遅延素子を含む、請求項１記載の半導体集積回路装置。
【請求項４】
前記クロック配線は、前記複数の分岐配線に比べて高抵抗の材料で形成される、請求項１記載の半導体集積回路装置。
【請求項５】
半導体基板の主表面上に回路が集積して形成される半導体集積回路装置であって、
前記複数の分岐配線の各々は、前記クロック配線の前記複数の直線部分のいずれとも前記半導体基板の主表面に垂直な方向に離れて対向し、前記半導体基板の主表面に垂直な方向に通じるコンタクトを介して前記複数の直線部分のいずれか一つと接続する、請求項１ないし請求項４のいずれか一項記載の半導体集積回路装置。
【請求項６】
その直線方向を平行にして並ぶ複数の第１の直線部分を含み、その配線上のある点から前記複数の第１の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる第１の経路が形成される第１のクロック配線、
その直線方向を平行にして並ぶ複数の第２の直線部分を含み、その配線上のある点から前記複数の第２の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる第２の経路が形成される第２のクロック配線、
その入力が前記第１のクロック配線に接続され、その出力が前記第２のクロック配線に接続され、入力する信号を遅延して出力する遅延回路、
クロック信号に同期して動作する複数の記憶回路、及び、
各々は前記第１および第２のクロック幹線のいずれか一方と接続し、前記複数の記憶回路のうちの少なくとも一つにクロック信号を供給する複数の分岐配線を備え、
前記第１のクロック配線は、その第１の経路上に前記複数の第１の直線部分の一つをその直線方向の一方向きで伝搬するクロック信号を、該直線方向の逆向きに折り返して前記複数の第１の直線部分の別の一つへ伝搬させる部分を少なくとも１つ含み、
前記第２のクロック配線は、その第２の経路上に前記複数の第２の直線部分の一つをその直線方向の一方向きで伝搬するクロック信号を、該直線方向の逆向きに折り返して前記複数の第２の直線部分の別の一つへ伝搬させる部分を少なくとも１つ含み、
前記複数の第１の直線部分と前記複数の第２の直線部分とは、その直線方向を平行にして配列し、
前記複数の分岐配線は、前記複数の第１および第２の直線部分のうちの一つと接続する分岐配線と、前記複数の第１および第２の直線部分のうちの別の一つと接続する分岐配線とを含む、半導体集積回路装置。
【請求項７】
半導体基板の主表面上に回路が集積して形成される半導体集積回路装置であって、
前記複数の分岐配線の各々は、前記クロック配線の前記複数の第１および第２の直線部分のいずれとも前記半導体基板の主表面に垂直な方向に離れて対向し、前記半導体基板の主表面に垂直な方向に通じるコンタクトを介して前記複数の第１の直線部分および前記複数の第２の直線部分のいずれか一つと接続する、請求項６記載の半導体集積回路装置。
【請求項８】
各々は少なくとも一つの記憶回路と接続する複数の分岐配線に接続し、クロック信号を前記複数の分岐配線に供給するためのクロック配線を生成する配線生成方法であって、
分岐配線上のある点からその点より最遠に接続される記憶回路までクロック信号が伝搬する遅延時間を前記複数の分岐配線各々について算出する第１のステップと、
前記クロック配線として、その直線方向を平行にして並んだ複数の直線部分を含み、該クロック配線上のある点から前記複数の直線部分をそれぞれの直線方向に沿って順々に経由して該クロック配線上の別の点に通じる経路が得られる形状の折り返し配線を１個または複数個生成して配置する第２のステップと、
前記複数の分岐配線のそれぞれ遅延時間に基づいて、前記複数の分岐配線が前記１個または複数個の折り返し配線から分岐する分岐点を算出する第３のステップと含む、配線生成方法。
【請求項９】
前記第２のステップは、算出された前記複数の分岐配線のそれぞれ遅延時間から最大の遅延時間を抽出し、前記折り返し配線の一端から一端までの配線長を算出するステップを含む、請求項８記載の配線生成方法。
【請求項１０】
前記第２のステップは、前記第１のステップで算出された遅延時間に基づき、前記生成すべき折り返し配線の個数を求めるステップを含む、請求項８又は請求項９記載の配線生成方法。
【請求項１１】
第３のステップは、前記複数の分岐配線の各々のある点から前記複数の直線部分が並んだ方向に沿って伸びる直線と前記折り返し配線の複数の直線部分とそれぞれ交差する点のなかから、各分岐配線が折り返し配線から分岐する分岐点を決定する、請求項８ないし請求項１０のいずれか一項記載の配線生成方法。
【請求項１２】
プログラムを実行して、請求項８ないし請求項１０のいずれか一項記載の配線生成方法に従って配線を生成する配線生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数の分岐配線にクロック信号を分配するクロック配線を有した半導体集積回路装置に関するものである。
またこの発明は、複数の分岐配線にクロック信号を分配するためのクロック配線を生成する配線生成方法および配線生成装置に関するものである。
【０００２】
【従来の技術】
図１に、半導体集積回路装置におけるクロック信号を回路に供給するためのクロック配線の従来技術による構成を示す。中間クロック幹線３は基幹クロック幹線１からプリドライバ２を介して接続され、さらに複数の分岐配線４ａ〜４ｆが中間クロック幹線３から分岐する。分岐配線４ａ〜４ｂの各々にはラッチ回路が接続されている。
【０００３】
プリドライバ２を介して基幹クロック幹線１から中間クロック幹線３にクロック信号が伝搬する。分岐配線４ａ〜４ｆにはそれぞれメインドライバ５ａ〜５ｆが挿入され、メインドライバ５ａ〜５ｆは、中間クロック幹線３からクロック信号を受けてそれぞれ分岐配線４ａ〜４ｆのラッチ回路に接続する配線部分をドライブする。以上の構成により、基幹クロック幹線１、中間クロック幹線３および分岐配線４ａ〜４ｆを介してクロック信号が各ラッチ回路へ分配される。
【０００４】
【発明が解決しようとする課題】
中間クロック幹線３が図示するように直線状に形成され、分岐配線４ａ〜４ｄはその最短の配線で中間クロック幹線３から分岐する。この場合、分岐配線４ａ〜４ｆに接続されるラッチ回路の個数に差異があると、これが分岐配線への接続容量の差となり、これが原因でクロックスキューとなる。例えば、最大数のラッチ回路が接続された分岐配線４ａにおいて分岐点より最遠に接続されるラッチ回路と、最小数のラッチ回路が接続された分岐配線４ｆにおいて分岐点より最近に接続されるラッチ回路とでクロック信号を受ける時間に大きな差が生じる。許容範囲を超えるクロックスキューが生じた場合には、回路又は配線のレイアウトを変更するなどを要する。
【０００５】
従って本発明は、複数の分岐配線にクロック信号を分配する際、クロックスキューを低減できるクロック配線を有する半導体集積回路装置を提供することにある。また本発明は、クロックスキューを低減できるクロック配線を生成するための配線生成方法および配線生成装置を提供することにある。
【０００６】
【課題を解決するための手段】
この発明による半導体集積装置は、その直線方向を平行にして並ぶ複数の直線部分を含み、その配線上のある点からその複数の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる経路が形成されるクロック配線を備える。このクロック配線は、さらに、その経路上に複数の直線部分の一つをその直線方向の一方向きで伝搬するクロック信号を、その直線方向の逆向きに折り返して複数の直線部分の別の一つへ伝搬させる部分を少なくとも１つ含む。
各々記憶回路にクロック信号を供給する複数の分岐配線は、複数の直線部分のうちの第１の直線部分と接続する第１の分岐配線と、前記複数の直線部分のうちの前記第１の直線部分とは異なる第２の直線部分と接続する第２の分岐配線とを含む。
【０００７】
第１の分岐配線の第１の直線部分への接続点と、第２の分岐配線の第２の直線部分への接続点とでクロック信号が到達する時間に差が生じるので、この差を利用して各分岐配線に分配されたクロック信号のクロックスキューを容易に抑えることができる。
【０００８】
半導体集積回路装置が半導体基板の主表面上に回路が集積して形成されたとき、前記第２の分岐配線は、前記第１の直線部分と前記半導体基板の主表面に垂直な方向で対向して交差する。
【０００９】
クロック配線は、前記経路がその間を結ぶ第１の端と第２の端とを有し、クロック信号を前記クロック配線の第１の端と第２の端との中間点に供給されるようにしてもよい。
【００１０】
また半導体集積回路装置に複数の直線部分のうちの２つの直線部分の一方がその入力に接続され、他方がその出力に接続される遅延素子を設ける。若しくは、クロック配線を前記複数の分岐配線に比べて高抵抗の材料で形成する。これによりクロック配線の配線の長さを短縮することが可能になる。
【００１１】
一方、複数の分岐配線の各々をクロック配線の複数の直線部分のいずれとも半導体基板の主表面に垂直な方向に離れて対向させる。そして半導体基板の主表面に垂直な方向に通じるコンタクトを介して複数の直線部分のいずれか一つと接続する。クロックスキューを調整する場合、分岐配線のレイアウトを変更する必要はなくコンタクトを設ける位置を変更すればよい。
【００１２】
またこの発明による半導体集積回路装置は、その直線方向を平行にして並ぶ複数の第１の直線部分を含み、その配線上のある点から複数の第１の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる第１の経路が形成される第１のクロック配線、その直線方向を平行にして並ぶ複数の第２の直線部分を含み、その配線上のある点から複数の第２の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる第２の経路が形成される第２のクロック配線、および、その出力が第２のクロック配線に接続され、入力する信号を遅延して出力する遅延回路を備える。
【００１３】
第１のクロック配線は、その第１の経路上に複数の第１の直線部分の一つをその直線方向の一方向きで伝搬するクロック信号を、該直線方向の逆向きに折り返して複数の第１の直線部分の別の一つへ伝搬させる部分を少なくとも１つ含む。第２のクロック配線も、その第２の経路上に複数の第２の直線部分の一つをその直線方向の一方向きで伝搬するクロック信号を、該直線方向の逆向きに折り返して複数の第２の直線部分の別の一つへ伝搬させる部分を少なくとも１つ含む。
複数の第１の直線部分と複数の第２の直線部分とは、その直線方向を平行にして配列して、複数の分岐配線がこの複数の第１および第２の直線部分のうちの一つと接続する分岐配線と、複数の第１および第２の直線部分のうちの別の一つと接続する分岐配線とを含む。
【００１４】
少なくとも２つの分岐配線が複数の第１および第２の直線部分のうちの少なくとも２つの異なる直線部分へそれぞれ接続する接続点においてクロック信号が到達する時間に差が生じるので、この差を利用して各分岐配線に分配されたクロック信号のクロックスキューを容易に抑えることができる
【００１５】
また、複数の分岐配線の各々は、複数の第１および第２の直線部分のいずれとも半導体基板の主表面に垂直な方向に離れて対向し、半導体基板の主表面に垂直な方向に通じるコンタクトを介して複数の第１の直線部分および複数の第２の直線部分のいずれか一つと接続する。クロックスキューを調整する場合、分岐配線のレイアウトを変更する必要はなくコンタクトを設ける位置を変更すればよい。
【００１６】
この発明による配線生成方法および配線生成装置は、分岐配線上のある点からその点より最遠に接続される記憶回路までクロック信号が伝搬する遅延時間を複数の分岐配線各々について算出する第１のステップと、クロック配線として、その直線方向を平行にして並んだ複数の直線部分を含み、該クロック配線上のある点から複数の直線部分をそれぞれの直線方向に沿って順々に経由して該クロック配線上の別の点に通じる経路が得られる形状の折り返し配線を１個または複数個生成して配置する第２のステップと、複数の分岐配線のそれぞれ遅延時間に基づいて、複数の分岐配線が１個または複数個の折り返し配線から分岐する分岐点を算出する第３のステップと含む。
【００１７】
各分岐配線の遅延時間を考慮して折り返し配線への各分岐配線の分岐点を決定するので、折り返し配線上の分岐点によってクロック信号が到達する時間の差が生じることを利用してクロックスキューを容易に抑えることができる。
【００１８】
特に前記第２のステップは、算出された前記複数の分岐配線のそれぞれ遅延時間から最大の遅延時間を抽出し、折り返し配線の一端から一端までの配線長を算出するステップを含む。また第２のステップは、第１のステップで算出された遅延時間に基づき、生成すべき折り返し配線の個数を求めるステップを含んでもよい。
【００１９】
一方、第３のステップは、前記複数の分岐配線の各々のある点から複数の直線部分が並ぶ方向に沿って伸びる直線と折り返し配線の複数の直線部分とそれぞれ交差する点のなかから、各分岐配線が折り返し配線から分岐する分岐点を決定するとよい。
【００２０】
【発明の実施の形態】
以下この発明の実施の形態を、図面を参照しながら説明する。なお、図において同一のもの又は相当のものには同一の符号を付している。
【００２１】
実施の形態１．
図２は、この発明の実施の形態１による半導体集積回路装置を示す構成図である。半導体集積回路装置は、基幹クロック幹線１１、プリドライバ１２、中間クロック幹線１３、複数本の分岐配線１４ａ〜１４ｅ、メインドライバ１５ａ〜１５ｅ、組合わせ回路１６ａ〜１６ｅ、論理ゲート１７ａ〜１７ｄ、および複数個のラッチ回路１８ａ〜１８ｆを含む。
【００２２】
プリドライバ１２とメインドライバ１５ａ〜１５ｆとの間の配線領域を設け、その配線領域に中間クロック幹線１３が配置される。
【００２３】
中間クロック幹線１３は、方向Ｘに沿って配列し各々は方向Ｘに垂直な方向Ｙに延びる複数の直線部分１３ａ〜１３ｃと、直線部分１３ａ、１３ｂの一方の端どうしを方向Ｘに接続する折り返し部分１３ｄと、直線部分１３ｂの他方の端と直線部分１３ｃの一方の端とを方向Ｘに接続する折り返し部分１３ｅとを有する折り返し配線である。つまり、中間クロック幹線１３は、端部Ａから複数の直線部分をその直線方向（Ｙ方向）に沿って順々に経由して端部Ｂに通じる経路が形成される。
【００２４】
複数の分岐配線１４ａ〜１４ｆは、中間クロック幹線１３から分岐してクロック信号を複数のラッチ回路１８ａ〜１８ｆに分配する。各分岐配線には１個又はそれ以上の個数のラッチ回路が接続される。図においては、分岐配線１４ａには８個のラッチ回路１８ａが共通して接続され、分岐配線１４ｂには２個のラッチ回路１８ｂが共通して接続され、分岐配線１４ｃには４個のラッチ回路１８ｃが共通して接続され、分岐配線１４ｄには８個のラッチ回路１８ｄが共通して接続され、分岐配線１４ｅには４個のラッチ回路１８ｅが共通して接続され、分岐配線１４ｆには２個のラッチ回路１８ｆが共通して接続される。
【００２５】
プリドライバ１２は、基幹クロック幹線１１からクロック信号を受けて中間クロック幹線１３をドライブすることにより、クロック信号を中間クロック幹線１３に供給する。ここではプリドライバ１２は、入力するクロック信号と同相（論理レベルが同じ）のクロック信号を出力する。
【００２６】
分岐配線１４ａ〜１４ｆ上には、それぞれメインドライバ１５ａ〜１５ｆが挿入され、各ドライバ１５ａ〜１５ｆは中間クロック幹線１３からクロック信号を受けてラッチ回路が接続する配線部分をドライブすることにより、ラッチ回路にクロック信号を供給する。ここではドライバ１５ａ、１５ｄ、１５ｆは入力するクロック信号と同相のクロック信号を出力する一方、ドライバ１５ｂ、１５ｃ、１５ｅは入力するクロック信号と反転（論理レベルが逆）のクロック信号を出力するものである。
【００２７】
ドライバ１２、１５ａ〜１５ｆの各々は、例えば、１個の又は複数個が直列接続するＣＭＯＳインバータ回路で構成される。
【００２８】
組合わせ回路１６ａ〜１６ｅの各々は、ＮＡＮＤ論理ゲート、ＮＯＲ論理ゲート、インバータ回路などの複数個の論理ゲートの組合わせで構成される。
組合わせ回路１６ａは、分岐配線１４ａに接続する８個のラッチ回路１８ａにそれぞれ保持されるべき合計８ビットのデータを出力する。組合わせ回路１６ｂは、８個のラッチ回路１８ａに保持されたデータを受け、所定の論理演算を行って６個のラッチ回路１８ｂ、１８ｃにそれぞれ１ビットずつ出力する。組合わせ回路１６ｃは、４個のラッチ回路１８ｂ、および２個のラッチ回路１８ｃに保持されたデータを受け、所定の論理演算を行って８個のラッチ回路１７ｄにそれぞれ１ビットずつを出力する。
【００２９】
組合わせ回路１６ｄは、８個のラッチ回路１７ｄに保持されたデータを受け、所定の論理演算を行って４個のラッチ回路１７ｅにそれぞれ１ビットずつを出力する。組合わせ回路１６ｅは、４個のラッチ回路１７ｅに保持されたデータを受け、所定の論理演算を行って２個のラッチ回路１７ｆにそれぞれ１ビットずつを出力する。
【００３０】
各ラッチ回路１７ａ〜１７ｆは、分岐配線から与えられるクロック信号の立上り（又は立下り）に同期して受け取る１ビットのデータをとり込んで保持するが、本実施の形態では、分岐配線の一部にゲーテッドクロックを考慮し、分岐配線線１４ａ、１４ｃ、１４ｄ、１４ｅ上には、それぞれに接続するラッチ回路へのデータ書き込みを許可、禁止を制御する回路（ＮＡＮＤ論理ゲート１７ａ〜１７ｄ）が挿入されている。
【００３１】
ＮＡＮＤ論理ゲート１７ａは、ライトイネーブル信号ＷＥ１がＬレベルのときに限りその出力の論理をＨレベルに固定するため、８個のラッチ回路１７ａへの書きこみは行われない。ＮＡＮＤ論理ゲート１７ｂは、ライトイネーブル信号ＷＥ２がＬレベルのときに限りその出力の論理をＨレベルに固定するため、４個のラッチ回路１７ｃへの書きこみは行われない。ＮＡＮＤ論理ゲート１７ｃは、ライトイネーブル信号ＷＥ３がＬレベルのときに限りその出力の論理をＨレベルに固定するため、８個のラッチ回路１７ｄへの書きこみは行われない。ＮＡＮＤ論理ゲート１７ｄは、ライトイネーブル信号ＷＥ４がＬレベルのときに限りその出力の論理をＨレベルに固定するため、４個のラッチ回路１７ａへの書きこみは行われない。
【００３２】
このような書き込み制御を行うＮＡＮＤ論理ゲートは、全分岐配線１４ａ〜１４ｆのすべてに挿入される場合もあるし、そのいずれにも挿入されない場合もある。
【００３３】
図に示す半導体集積回路装置は、単一のシリコン基板の一主面上に集積して形成される。シリコン基板の上の層間絶縁膜内にアルミニウム又は銅を主成分とする複数の配線層が層状に形成され、基幹クロック幹線１１および中間クロック幹線１３は、その複数の配線層のうちの第１の配線層で形成され、複数の分割配線１４ａ〜１４ｆおよびプリドライバ１２を介して基幹クロック幹線１１と中間クロック幹線１３とを接続する配線は第１の配線層とは異なる第２の配線層で形成される。
【００３４】
プリドライバ１２の出力は、シリコン基板の主面に垂直な方向に延びるビアコンタクト２０を介して中間クロック幹線１３の直線部分１３ａの両端の間に接続される。従って、クロック信号はビアコンタクト２０から端部Ｂに向かってクロック幹線１３を伝搬し、その伝搬路上に一つの直線部分を方向Ｙの一方の向きから伝搬するクロック信号を方向Ｙの逆向きに折り返して別の直線部分へ伝搬させる折り返し部分が２つ存在する。またクロック信号はビアコンタクト２０から端部Ａに向かって直線部分１３ａを伝搬する。
【００３５】
各分岐配線１４ａ〜１４ｆもまた、ビアコンタクトを介してシリコン基板の主面に垂直な方向に中間クロック幹線と接続される。
【００３６】
分岐配線１４ａ〜１４ｆは、その接続するラッチの個数が相違する分岐配線を少なくとも２つ含んでいる。よって中間クロック幹線１３上の分岐点からその分岐点に最遠のラッチ回路にクロック信号が到達するまでの時間が分岐配線によって異なる。本実施の形態では分岐配線に接続されるラッチ回路の個数と分岐配線の全配線長とを考慮し、クロックスキューが小さくなるように各分岐配線の中間クロック幹線１３からの分岐点が次のように決定されている。
【００３７】
直線Ｌ１〜Ｌ６は、分岐配線１４ａ〜１４ｆ上のそれぞれ点ａ〜ｆを通過する方向Ｘに延びる仮想上の直線で、点ａ〜ｆは各直線Ｌ１〜Ｌ６が複数の直線部分１３ａ〜１３ｃのいずれにも交差する位置に存在する。各分岐配線１４ａ〜１４ｆの分岐点の候補は、各々の直線Ｌ１〜Ｌ６が直線部分１３ａ〜１３ｃと交わる３つの箇所とする。
【００３８】
一つの分岐配線に接続するラッチの数が大きいことが、クロック信号の伝搬遅延を大きくする原因の一つである。よって、接続されるラッチ回路の数が最大である分岐配線１４ａ、１４ｄは、プリドライバ１２の出力から分岐点より最遠に接続されるラッチ回路までのクロック信号の到達時間が最短になるように中間クロック幹線１３と接続する。分岐配線１４ａ、１４ｄはプリドライバ１２から最も近い直線部分１３ａに接続される。直線Ｌ１、Ｌ４のそれぞれと直線部分１３ａとの交点に、ビアコンタクト２１ａ、２１ｄを設けてその接続点とする。
【００３９】
分岐配線１４ａ、１４ｄは、点ａ、ｄから方向Ｘに沿って少なくともそれぞれビアコンタクト２１ａ、２１ｄまで延びてビアコンタクト２１、２１ｄを介して直線部分１３ａと接続する。分岐配線１４ａ、１４ｄの各々は直線部分１３ｂ、１３ｃとはコンタクトを介して接続されず、基板主面に垂直な方向（方向Ｘ、Ｙと垂直な方向）に絶縁膜を間に挟んで対向して直線部分１３ｂ、１３ｃと交差する。
【００４０】
この分岐点が決定した分岐配線に関するパラメータを用いて、他の分岐配線の分岐点を決定する。その決定条件は次のとおりである。
ある分岐配線において、プリドライバ１２からその分岐点に最近のラッチ回路にクロック信号が到達する時間を最近到達時間とし、プリドライバ１２からその分岐点に最遠のラッチ回路にクロック信号が到達する時間を最遠到達時間とする。
【００４１】
最大数のラッチ回路が接続する分岐配線における最近到達時間および最遠到達時間は分岐点が決まったことで算出できる。その最近到達時間および最遠到達時間をＴ１、Ｔ２（Ｔ１＜Ｔ２）とする。図１のように最大数のラッチ回路が接続される分岐配線が２個以上（配線１４ａ、１４ｆ）あるときは、これらの分岐配線のそれぞれ最近到達時間のうち短い方をＴ１とし、これらの分岐配線のそれぞれ最遠到達時間のうち長い方をＴ２とする。
【００４２】
この時間Ｔ１、Ｔ２をパラメータとし、最大数のラッチ回路が接続する分岐配線の他のすべての分岐配線についての最近到達時間を時間Ｔ１以上とし且つ最遠到達時間を時間Ｔ２以下とする、という条件を満たす或いはこの条件に近づけるように、他の分岐配線の分岐点を決定する（接続するラッチ回路の数が１個の分岐配線については最近到達時間と最遠到達時間とは等しい）。
【００４３】
本実施の形態にある中間クロック幹線１３を用いれば、この条件に実現するためのレイアウト設計は、従来技術に比べて容易になる。
まず、最小数のラッチ回路の接続する分岐配線１４ｂ、１４ｆは、分岐点を出発して最遠のラッチ回路にクロック信号が到達する時間が他の分岐配線より小さいので、図のように、プリドライバ１２から最も遠い直線部分１３ｃに接続するとよい。直線Ｌ２、Ｌ６のそれぞれと直線部分１３ｃとの交点にビアコンタクト２１ｂ、２１ｆを設けてその接続点とする。分岐配線１４ｂ、１４ｆは、点ｂ、ｆから方向Ｘに沿って少なくともビアコンタクト２１ｂ、２１ｆまでそれぞれ延び、そのビアコンタクト２１ｂ、２１ｆを介して直線部分１３ｃと接続する。
【００４４】
接続するラッチ回路の数が中間のものである分岐配線１４ｃ、１４ｅは、例えば、プリドライバ１２から中間の距離にある直線部分１３ｂに接続するとよい。直線Ｌ３、Ｌ５のそれぞれと直線部分１３ｂとの交点にビアコンタクト２１ｃ、２１ｅを設けて分岐点とする。分岐配線１４ｃ、１４ｅは、直線部分１３ｃと交差し、点ｃ、ｅから方向Ｘに沿って少なくともビアコンタクト２１ｃ、２１ｅまでそれぞれ延び、そのビアコンタクト２１ｃ、２１ｅを介して直線部分１３ｂと接続する。分岐配線１４ｃ、１４ｅは直線部分１３ｃとはコンタクトで接続されず、方向Ｘ、Ｙと垂直な方向に絶縁膜を間に挟んで対向し直線部分１３ｃと交差する。
【００４５】
クロック幹線１３上のビアコンタクト２０から端部Ｂへ通じる経路においては、ビアコンタクト２１ｄ、２１ｅ、２１ｃ、２１ｂ、２１ｆの順でにクロック号が分岐点に早く到達する。
【００４６】
ここで、中間クロック幹線１３の配線長（端Ａから端Ｂまでの配線上の距離）は、接続するラッチ回路の数が最大の分岐配線上のメインドライバからその最遠にあるラッチ回路の入力にクロック信号が到達する時間に相当する長さ又はそれ以上にするのがよい。つまり、プリドライバ１２の出力が端Ａに接続され且つ分岐配線がクロック幹線１３に接続されていないと仮定したときに、端Ａから端Ｂまでクロック信号が到達する時間が、最大数のラッチ回路が接続する分岐配線上のメインドライバを出発してその最遠にあるラッチ回路の入力にクロック信号が到達する時間以上となるようにする。
【００４７】
このように、異なる個数のラッチ回路を接続する２つ以上の分岐配線を含んだ複数の分岐配線１４ａ〜１４ｆにおいて、接続するラッチ回路の数が多い分岐配線は、それが少ない分岐配線に比べてクロック幹線１３での分岐点にクロック信号が到達する時間を早くするように、各分岐配線の中間クロック幹線１３への分岐点を複数の直線部分から決定することにより、クロックスキューを低減させることができる。
本実施の形態のように、分岐配線が接続するクロック幹線１３が折り返し配線により構成され、相対向する少なくとも２つの直線部分の間でクロック信号の伝搬する時間を相違させることができる。このため、クロックスキューを調整する際には、分岐配線の分岐点を隣接する他の直線部分に変更する等の簡単なレイアウト変更で済む。
【００４８】
図１に示す中間クロック幹線１３は必要に応じて、端部Ａ、Ｂの一方又は両方からさらに延びて、図示しない他のラッチ回路にクロックを分配するクロック配線が形成されてもよい。また一方クロック幹線１３において、１つの経路上の折り返し数は２つ、すなわち、相対向する直線部分は３つであるが、これに限定されない。必要に応じて対向する直線部分を２つ、あるいは４つ以上に変更してもよい。
【００４９】
またラッチ回路に限ることなく、分岐配線の接続する記憶回路はフリップフロップ回路でもよい。
【００５０】
実施の形態２．
図３は、本発明の実施の形態２による半導体集積回路装置の構成図である。本実施の形態では、プリドライバ１２の出力は中間クロック幹線１３の中央に接続する。すなわち、プリドライバ１２を中間クロック幹線１３に接続するビアコンタクト２０から配線上の一方の端Ａまでの距離と、ビアコンタクト２０から他方の端Ｂまでの距離とを等しくする。クロック信号は、ビアコンタクト２０から端部Ｂに向かってクロック幹線１３を伝搬し、その伝搬路上に一つの直線部分を方向Ｙの一方の向きから伝搬するクロック信号を方向Ｙの逆向きに折り返して別の直線部分へ伝搬させる折り返し部分が１つ存在する。またクロック信号はビアコンタクト２０から端部Ａに向かってもクロック幹線１３を伝搬し、その伝搬路上に別の折り返し部分が１つ存在する。
【００５１】
そして、クロックスキューを低減するために、ビアコンタクトの位置を変更し、分岐配線１４ａ、１４ｄはそれぞれビアコンタクト２１ａ、２１ｄを介して直線部分１３ｂから分岐し、分岐配線１４ｃ、１４ｆはそれぞれビアコンタクト２１ｃ、２１ｆを介して直線部分１３ｃから分岐し、分岐配線１４ｂ、１４ｅはそれぞれビアコンタクト２１ｂ、２１ｅを介して分岐配線１４ａに接続される。ビアコンタクト２０から端Ａに向かう経路に沿って、ビアコンタクトが２１ｄ、２１ｅ、２１ｂの順で形成され、ビアコンタクト２０から端Ｂに向かう経路に沿って、ビアコンタクトが２１ａ、２１ｃ、２１ｆの順で形成される。その他の構成については、実施の形態１と同一である。
【００５２】
この実施の形態では、特に、中間クロック幹線１３とプリドライバ１２とからなるセル（「折り返しドライバセル」と呼ぶ）が、レイアウト設計のセルライブラリとして予め用意されている。中間クロック幹線１３の配線長の異なるもの、プリドライバ１２のサイズ種類の異なるもの、等の複数種類の折り返しドライバセルが用意されている。クロック信号が分配される回路に応じて、好ましい折り返しドライバセルを選択する。
【００５３】
実施の形態２では、実施の形態１と同様の効果を得るのに加え、中間クロック幹線１３とプリドライバ１２とをセル化することにより、レイアウト設計の作業時間の短縮が可能になる。セル化する際には、図２のように、プリドライバ１２の出力を中間クロック幹線１３の中間点に接続したものが好ましい。しかしこれに限定されることなく、中間クロック幹線１３の他の部分にプリドライバを接続してもよい。
【００５４】
実施の形態３．
図４は本発明の実施の形態３による半導体集積回路の構成図である。中間クロック幹線１３は、折り返しが１回のみで相対向して並ぶ２つの直線部分１３ｇ、１３ｈを有した折り返し配線である。プリドライ１２の出力はビアコンタクト２０を介して直線部分１３ｇの両端の間の１箇所に接続される。クロックスキューが低減するように、分岐配線１４ａ〜１４ｆは、この２つの直線部分１３ｇ、１３ｈのいずれかに接続される。分岐配線１４ａ〜１４ｆの分岐点の決定手法は実施の形態１と同様である。
【００５５】
本実施の形態ではたとえば、分岐配線１４ａ、１４ｄがプリドライバ１２の出力が接続される直線部分１３ｇにビアコンタクト２１ａ、２１ｄを介して接続され、その他の分岐配線は直線部分１３ｈにビアコンタクトを介して接続される。
【００５６】
中間クロック幹線１３の折り返し部１３ｊと直線部分１３ｈとの間に遅延素子４０が接続されている。遅延素子４０は、直線部分１３ｇ、折り返し部分１３ｊから伝搬したクロック信号を遅延させて直線部分１３ｈに供給する。遅延素子４０は例えば直列に接続された偶数個のＣＭＯＳインバータ回路で構成される。
【００５７】
中間クロック幹線１３の配線長（端Ａから端Ｂまでの配線上の距離）は、接続するラッチ回路の数が最大の分岐配線上のメインドライバからその最遠にあるラッチ回路の入力にクロック信号が到達する時間に相当する長さ又はそれ以上にするのがよい。つまり、プリドライバ１２の出力が端Ａに接続され且つ分岐配線がクロック幹線１３に接続されていないと仮定したときに、端Ａから端Ｂまでクロック信号が到達する時間が、最大数のラッチ回路が接続する分岐配線上のメインドライバを出発してその最遠にあるラッチ回路の入力にクロック信号が到達する時間ｔ以上となるようにする。このとき遅延素子４０によるクロックの遅延時間は、時間ｔの半分程度にするのがよい。その他の構成については実施の形態１と同様である。
【００５８】
この実施の形態によると、遅延素子４０を設けたことにより、中間クロック幹線１３の配線長を小さくすることができ、折り返し数も減らせる。よって、レイアウトの縮小化に寄与する。
【００５９】
実施の形態４．
図５は、本発明の実施の形態４による半導体集積回路装置である。中間クロック幹線１３は、第１および第２のクロック幹線５１、５２を含む。
第１のクロック幹線５１は、その直線方向を平行にして並び各々方向Ｙに延びる直線部分５１ａ〜５１ｃと、直線部分５１ａ、５１ｂの一端同士を方向Ｘにつなぐ折り返し部５１ｄと、直線部分５１ｂの他端と直線部分５１ｃの一端とを方向Ｘにつなぐ折り返し部５１ｅとを有する折り返し配線である。直線部分５１ａ、５１ｃの他端がクロック幹線５１の端部Ａ１、Ｂ１となり、クロック幹線５１は端部Ａ１からＢ１へ通じる経路を構成する。
【００６０】
第２のクロック幹線５２は、その直線方向を平行にして並び方向Ｙに延びる直線部分５２ａ〜５２ｃと、直線部分５２ａ、５２ｂの一端同士を方向Ｘにつなぐ折り返し部５２ｄと、直線部分５２ｂの他端と直線部分５２ｃの一端とを方向Ｘにつなぐ折り返し部５２ｅとを有する折り返し配線である。直線部分５２ａ、５２ｃの他端が、クロック幹線５１の端部Ａ２、Ｂ２となり、クロック幹線５２は端部Ａ２からＢ２へ通じる経路を構成する。
【００６１】
第１および第２のクロック幹線５２は、その経路が並設された状態で２回折り返されて形成されており、６個の直線部分５１ａ〜５１ｃ、５２ａ〜５２ｃが方向Ｘに相対向した構成となる。
【００６２】
プリドライバ１２の出力はビアコンタクト２０を介してクロック幹線５１の端部Ａ１に接続される。クロック信号は端部Ａ１からクロック幹線５１に沿って端部Ｂ１まで伝搬し、その間にクロック信号の伝搬方向方向Ｙの一方の向きから逆向きに折り返す折り返し部分が２箇所設けられる。
【００６３】
本実施の形態の半導体集積回路装置は、プリドライバ１２の出力と第２のクロック幹線５２の端部Ａ２との間に接続された遅延素子６０を備える。遅延素子６０は、プリドライバ１２から受けるクロック信号を遅延させて第２のクロック幹線５２の端部Ｂ２に与える。遅延素子６０による遅延時間は、クロック信号が第１のクロック幹線５１上を端部Ａ１からＢ１まで伝搬する時間と少なくとも同一とする。よって、クロック信号はクロック幹線５１の端部Ｂ１に到達した後に端部Ａ２を出発し、端部Ｂ２までクロック幹線５２上を伝搬する。クロック幹線５２上のクロック信号の伝搬路に折り返し部分が２箇所設けられる。
【００６４】
以上により、クロック信号が伝搬する時間は、直線部分５１ａ、５１ｂ、５１ｃ、５２ａ、５２ｂ、５２ｃの順で早くなる。
【００６５】
クロックスキュー低減のための、分岐配線１４ａ〜１４ｆの分岐点の決定手法は実施の形態１の場合と同様である。
その結果、例えば、図に示すように、最大数のラッチ回路を接続する分岐配線１４ａ、１４ｄは第１のクロック幹線５１の直線部分５１ａから分岐し、最小数のラッチ回路を接続する分岐配線１４ｂ、１４ｆは、第２のクロック幹線５２の直線部分５２ｃ、残りの分岐配線１４ｃ、１４ｅは、第２のクロック幹線５２の直線部分５２ａとし、分岐配線１４ａ、１４ｄ、１４ｃ、１４ｅ、１４ｂ、１４ｆの順にその分岐点にクロック信号が到達する時間が早い。
【００６６】
この場合、クロック幹線５１、５２の各々の配線長は、接続するラッチ回路の数が最大の分岐配線上のメインドライバからその最遠にあるラッチ回路の入力にクロック信号が到達する時間に相当する長さの半分程度又はそれ以上にするのがよい。つまり、端部Ａ１から端部Ｂ１までクロック信号が到達する時間及び端部Ａ１から端部Ｂ１までクロック信号が到達する時間のいずれもが、最大数のラッチ回路が接続する分岐配線上のメインドライバを出発してその最遠にあるラッチ回路の入力にクロック信号が到達する時間の半分程度となるようにする。その他の構成については実施の形態１と同様である。
【００６７】
このように、中間クロック幹線１３は複数本の折り返し配線を含み、それぞれの折り返し配線の直線部分が互いに平行に対向するように構成されることで、分岐配線が接続する分岐点の選択が広がり、より細やかなクロックスキューの調整ができる。
【００６８】
また遅延素子６０は、クロック信号を遅延させる機能と、第２のクロック幹線５２を駆動するドライバの機能とに兼用される。
【００６９】
中間クロック幹線１３は、２本の折り返し配線を並設して形成したが、それより多い本数の折り返し配線を並接し、各折り返し配線でクロック信号の伝搬時間を調整する遅延素子を適宜設けてもよい。
またこの実施の形態では、折り返し配線を配線経路に沿って互いに並接したが、直線部分が相対向して配列する構成あればの複数の折り返し配線の配置方法は任意である。たとえば図２のような一つの折り返し配線を単純に複数個Ｘ方向に隣接して並べるだけでもよい。
【００７０】
実施の形態５．
図６は、本発明の実施の形態５による半導体集積回路装置の構成図である。中間クロック幹線１３は、相対向して配列した２つの直線部分１３ｋ、１３ｍ、および直線部分１３ｋ、１３ｍのそれぞれ一端をその対向方向に繋ぐ折り返し部１３ｎとを有する折り返し配線である。直線部分１３ｋ、１３ｍのそれぞれ他方端が中間クロック幹線１３の端部Ａ、Ｂとなる。端部Ａから端部Ｂまでに通じる一つの経路が中間クロック幹線１３に形成される。プリドライ１２の出力はビアコンタクト２０を介して直線部分１３ｋの両端の間の１箇所に接続される。
【００７１】
中間クロック幹線１３は経路を１回折り返しただけのものであるが、これをポリシリコンなどの高抵抗の材料で形成される。
【００７２】
たとえば、ラッチ回路１７ａ〜１７ｆおよび組合わせ回路１６ａ〜１６ｅ内の組合わせ回路を構成する電界効果トランジスタのゲート電極は通常ポリシリコンで構成される。中間クロック幹線１３はゲート電極と同一工程によりポリシリコンにより形成される。一方、分岐配線１４ａ〜１４ｆは、実施の形態１と同様に、アルミニウム又は銅を含む同一の配線層により形成され、中間クロック幹線１３より低抵抗材料である。
【００７３】
クロックスキューが低減するように、分岐配線１４ａ〜１４ｆは、この２つの直線部分１３ｇ、１３ｈのいずれかに接続される。分岐配線１４ａ〜１４ｆの分岐点の決定手法は実施の形態１と同様である。本実施の形態では、分岐配線１４ａ、１４ｄがプリドライバ１２の出力が接続される直線部分１３ｇにビアコンタクト２１ａ、２１ｄを介して接続され、その他の分岐配線は直線部分１３ｈにビアコンタクトを介して接続される。
【００７４】
中間クロック幹線１３の配線長（端Ａから端Ｂまでの配線上の距離）は、接続するラッチ回路の数が最大の分岐配線上のメインドライバからその最遠にあるラッチ回路の入力にクロック信号が到達する時間に相当する長さ又はそれ以上にするのがよい。つまり、プリドライバ１２の出力が端Ａに接続され且つ分岐配線がクロック幹線１３に接続されていないと仮定したときに、端Ａから端Ｂまでクロック信号が到達する時間が、最大数のラッチ回路が接続する分岐配線上のメインドライバを出発してその最遠にあるラッチ回路の入力にクロック信号が到達する時間以上となるようにする。その他の構成については実施の形態１と同様である。
【００７５】
この実施の形態では、折り返し構造をなす中間クロック幹線１３をたとえば分岐配線１４ａ〜１４ｆよりも高抵抗材料で構成されることにより、中間クロック幹線１３上におけるクロック信号の伝搬速度が遅くなる。逆に言えば、中間クロック幹線１３の配線長を短くすることができるから、レイアウトを縮小することができる。
【００７６】
実施の形態６．
図７は、本発明の実施の形態６による半導体集積回路装置の構成図である。実施の形態１と異なるのは、分岐配線１４ａ〜１４ｆの各端部が中間クロック幹線１３の直線部分１３ａと交差する位置まで達している点にある。従って、分岐配線１４ａ〜１４ｆの各々は直線部分１３ａ〜１３ｃのいずれとも、基板に垂直な方向に間をあけて対向する部分を有する。たとえば、回路パターンを転写するためのマスクを作成した後に、クロックスキューの再調整を要するとき、ビアコンタクトの位置を変更するのみで調整が行なえる。
【００７７】
つまり、全直線部分１３ａ〜１３ｃの上方には分岐配線１４ａ〜１４ｆが存在する。従ってビアコンタクトの位置を変更する際にビアコンタクトを形成するためのマスクパターンのデータを改変するだけでよく、分岐配線１４ａ〜１４ｆを形成するためのマスクパターンのデータまで変更する必要がない。これにより、マスク作成費用が削減できる。
【００７８】
この実施の形態のように、分岐配線１４ａ〜１４ｆを基板主面に垂直な方向に間をあけてすべての直線部分と対向するように冗長に引き延ばす構成は、実施の形態２〜４の各々にも適用することができる。たとえば実施の形態４（図５）であれば、分岐配線１４ａ〜１４ｆの各々を直線部分５１ｂ、５２ａ、５２ｂ、５１ｂ、５１ｃ、５２ｃと交差して、直線部分５１ａまで冗長に延まず。
【００７９】
実施の形態７．
上記実施の形態１〜５に適用された本発明を、レイアウト状況に応じて組合わせて用いても、クロックスキューの低減に効果があることは明らかである。
【００８０】
実施の形態８．
図８に本発明の実施の形態８によるクロック信号を伝搬する配線の生成方法を示すフローチャート図である。
このクロック配線生成方法はコンピュータ（配線生成装置）がプログラムを実行することにより実現される。配線生成装置は従来のよく知られた自動配置配線装置に組み込まれてもよいし、フルカスタムレイアウトエディタに組み込まれてもよい。
【００８１】
（ステップＳ１）：レイアウトデータの入力
レイアウトエディタなどで作成されたレイアウトデータが生成装置に入力される。図９が入力されたレイアウトデータによる回路の一例であり、複数本（１７本）の分岐配線６１〜７７と、これらの分岐配線に接続された複数のラッチ回路と、複数の組み合わせ回路と、複数本の分岐配線６１〜７７にそれぞれ挿入された１７個のメインドライバと、一部の１１本の分岐配線にそれぞれ挿入された１１個のＮＡＮＤ論理ゲートとがレイアウトされた状態を概略的に示したものである。
【００８２】
分岐配線６１、６６、６７、７２、７３の各々には８個のラッチ回路が、分岐配線６３、６４、６９、７０、７５，７６の各々には４個のラッチ回路が、残りの分岐配線６２，６５、６８、７１、７４、７７の各々には２個のラッチ回路が、それぞれ接続されている。
これらの分岐配線に基幹クロック幹線上のクロック信号を分配するための中間クロック幹線が生成される。クロックスキューが低減されるように、中間クロック幹線としては、上述の実施の形態１〜６と同様、方向Ｘに対向させてその直線方向を平行にして配列し各々方向Ｙに延びる複数の直線部分を有し、これら直線部分を順々にその直線方向に沿って順々に経由する一つの経路が形成される折り返し配線である。
【００８３】
（ステップＳ２）：各種情報の設定
レイアウト中のクロックピン名ＣＬＫを指定する。図９においては、各分岐配線の端部が隣接して方向Ｙに並んでおり、各端部にピン名ＣＬＫが付けられる。
クロックピンが隣接して配置され他のピンと離散的に存在する場合、折り返し配線の配置領域を指定する。図９において１７個のクロックピンが隣接して配置されており、図示しない他のクロックピンとは離れているものとする。従って１７個のクロックピンに隣接して折り返し配線の配置領域が設定される。この配置領域の指定がなかったときは、クロックピンのピン位置情報から折り返し配線の配置領域を自動規定する。
【００８４】
さらに、折り返し配線をドライブするためのプリドライバの立上り時間Ｔｒと立下り時間Ｔｆを指定する。立上り時間Ｔｒはプリドライバが配線をＬレベルからＨレベルへ変化させる時間であり、立下がり時間Ｔｆはプリドライバが配線をＨレベルからＬレベルへ変化させる時間である。図１０にここまでのプログラム実施結果を示す。
ステップＳ２の各情報の指定は、集積回路の設計者が配線生成装置にデータを入力することにより行われる。
【００８５】
（ステップＳ３）：クロックピンの位置抽出
ステップＳ２で設定されたクロックピン名よりクロックのピン位置を、例えば二次元座標により抽出する。
【００８６】
（ステップＳ４）：各分岐配線の遅延時間算出
分岐配線６１〜７７の各々における、クロックピンからそれぞれのメインドライバに最近のラッチ回路にクロック信号が伝搬する遅延時間Ｔｎと、クロックピンからそれぞれのメインドライバに最遠のラッチ回路にクロック信号が伝搬する遅延時間Ｔｘとを算出する。
【００８７】
（ステップＳ５）：最大遅延を有する分岐配線の抽出
分岐配線６１〜７７のそれぞれ遅延時間Ｔｘを比較し、そのなかで最大の遅延時間とその最大遅延を有する分岐配線とを抽出する。
【００８８】
（ステップＳ６）：折り返し配線の配線長の算出
折り返し配線の配線長が、ステップＳ５で抽出した最大遅延の分岐配線の遅延時間Ｔｘから算出される。その配線長は、折り返し配線の端から端までクロック信号の伝搬する時間が最大遅延の分岐配線の遅延時間Ｔｘと等しい又はそれより大きくなるような長さとする。また折り返し配線の一定間隔毎に区切った場合のその一定間隔をクロック信号が伝搬する時間（Ｔａ／ｎに相当し，以下「配線遅延データ」と称す。Ｔａは折り返し配線の一端から他端にクロック信号が伝搬する遅延時間、ｎは区切った数を示す。）を算出する。
【００８９】
（ステップＳ７）：折り返し配線の配線位置、及び折り返し数の算出
大きな遅延時間を有する分岐配線の配置状況を考慮して、折り返し配線の個数、折り返し配線の配線位置および折り返し配線の折り返し数を算出する。
【００９０】
ステップＳ２で得た各分岐配線の遅延データを基に折り返し配線の数を決定する。その際に大きな遅延時間を有する分岐配線がどこに分布しているかを判断してその個数が決定され、その決定した個数に従い１個または複数個の折り返し配線が生成される。ステップＳ４で算出した各分岐配線の遅延時間Ｔｘがある定められた値以上かどうかを判断し、遅延時間Ｔｘがその値以上の分岐配線を抽出する。この抽出された分岐配線を２つ含むように複数の分岐配線をいくつかのグループにグループ化し、各グループに一つの折り返し配線を設ける。
【００９１】
図１０において、分岐配線６１から７７の方に数えて、分岐配線６１からどの分岐配線までを一つグループとするかを決定する。分岐配線６６は遅延時間Ｔｘが定められた値以上のもので分岐配線６１から最も隣接した分岐配線であるとする。分岐配線６１、６６が一つのグループに含めるべき２つの分岐配線であり、分岐配線６１〜６６に対して一つの折り返し配線が与えられる。
【００９２】
次いで分岐配線６７から７７の方に数えて、分岐配線６７からどの分岐配線までを一つグループとするかを決定する。分岐配線６７、７２が定められた値以上の遅延時間を持つもので且つ分岐配線７２が分岐配線６７から最も隣接した分岐配線であるとする。分岐配線６７、７２が一つのグループに含めるべき２つの分岐配線であり、分岐配線６７〜７２に対して一つの折り返し配線が与えられる。
【００９３】
次いで分岐配線７３から７７の方に数えて、分岐配線７３からどの分岐配線までを一つグループとするかを決定する。分岐配線７３〜７７において、遅延時間Ｔｘが定められた値以上であるものが分岐配線７３のみであるとする。このようにグループ化されていない残りの分岐配線について、その定められた値数以上の遅延時間Ｔｘをもつ分岐配線が１個以下のときは、その残りの分岐配線全部を一つのグループとする。よって、分岐配線７３〜７７に対して一つの折り返し配線が与えられる。
【００９４】
以上により、図１０の例に対しては３本の折り返し配線が設けられる。いずれの分岐配線の遅延時間Ｔｘが定められた値以下であるならば、１個の折り返し配線を設けるだけにしてもよい。
【００９５】
分岐配線のクロックピンの位置データおよび配置領域データに基づき、各折り返し配線の配置位置および折り返し数を決める。各折り返し配線の配線長は、ステップＳ６で算出された配線長に従う。
【００９６】
（ステップＳ８）：折り返し配線の生成
ステップＳ７で決定された配線位置に、算出された配線長および折り返し数による折り返し配線を生成する。図１１に、ここまでのプログラム実施結果を示す３つの折り返し配線Ｋ１〜Ｋ３の各々は２箇所の折り返し数で互いに並ぶ３個の直線部分を有するものである。分岐配線６１〜６６は、対応する折り返し配線Ｋ１と接続し、分岐配線６７〜７２は、対応する折り返し配線Ｋ２と接続し、分岐配線７３〜７７は、対応する折り返し配線Ｋ３と接続することになる。
【００９７】
（ステップＳ９）：折り返し配線上の各分岐配線の分岐点（接続点）の算出
ステップＳ４で算出した各分岐配線の遅延時間、ステップＳ３で得たピン位置データを使って分岐配線の折り返し配線から分岐、接続する分岐点を算出する。
この実施の形態では、各折り返し配線の一方の端から他方の端までの長さの中間点にプリドライバの出力からの配線が接続されるものとする。
以下（１）〜（３）に従って分岐点の算出が行われる。
（１）各折り返し配線の中間点の位置座標とステップＳ５で抽出された最大遅延の分岐配線のクロックピンの位置座標から、その両者の距離が最短となる座標位置を算出し、最大遅延の分岐配線の分岐点を決定する。
【００９８】
図１１を参照して、たとえば、分岐配線６６が最大遅延の分岐配線であるとする。分岐配線６６のクロックピンから方向Ｘに沿って延びる直線と、分岐配線６６が属するグループに対応して設けられた折り返し配線の３つの直線部分との３つの交点から、分岐配線６６のクロックピンと折り返し配線の中間点との距離が最小の交点を分岐点として選択する。図１１の示す折り返し配線上の点Ｘが分岐配線６６の分岐点となる。
【００９９】
（２）  ステップＳ４で算出した最大遅延の分岐配線の遅延時間Ｔｎ、Ｔｘの各々に、折り返し配線の中間点から遅延して最大遅延の分岐配線の分岐点を介してそのクロックピンに到達するクロック信号の遅延時間Ｔ０を加える。折り返し配線の中間点から最大遅延の分岐配線の分岐点に最近のラッチ回路までクロック信号が到達する時間Ａ＝（（最大遅延の分岐配線のＴｎ）＋Ｔ０）と、折り返し配線の中間点から最大遅延の分岐配線の分岐点に最遠のラッチ回路までクロック信号が到達する時間Ｂ＝（（最大遅延の分岐配線のＴｘ）＋Ｔ０）とが算出される。
【０１００】
（３）最大遅延のものを除いた各分岐配線におけるクロックピンの位置データと、ステップＳ４で算出された最大遅延のものを除いた各分岐配線における遅延時間Ｔｎ、Ｔｘと、上記の時間Ａ、Ｂと、ステップＳ６で算出された配線遅延データとに基づき、各分岐配線の分岐点を決定する。
【０１０１】
各分岐配線の分岐点は、各クロックピンを通り方向Ｘに沿って延びる直線と、対応の折り返し配線の有する３つの直線部分との３つの交点の中から選択される。
具体的に、いずれの分岐配線の分岐点は、対応の折り返し配線の中間点から分岐配線を介して分岐点に最近に接続するラッチ回路までクロック信号が到達するまでの遅延時間（最近遅延時間）が時間Ａ以上となり且つ対応の折り返し配線の中間点から分岐配線を介して分岐点に最遠に接続するラッチ回路までクロック信号が到達するまでの遅延時間（最遠遅延時間）が時間Ｂ以下となるように選ばれる。
【０１０２】
（ステップＳ１０）：ビアコンタクトの生成
ステップＳ９で決定された分岐配線の分岐点にビアコンタクトを生成する。
（ステップＳ１１）：分岐配線への接続配線の生成
ビアコンタクトとクロックピンとの間を繋ぐ方向Ｘに沿った配線を生成し、各分岐配線がビアコンタクトを介して対応の折り返し配線と接続される。図１２にここまでのプログラム実施結果を示す。
【０１０３】
（ステップＳ１２）：プリドライバのサイズの算出
ステップＳ９にて算出された各分岐配線における最近遅延時間、最遠遅延時間、遅延時間Ａ、Ｂと、ステップＳ２で指定した立上り時間Ｔｒ、立下り時間Ｔｆとにより、プリドライバのドライバサイズを算出する。
（ステップＳ１３）：プリドライバの生成
折り返し配線上のプリドライバの接続点（折り返し配線の中間点）の座標情報に基づき、３つの折り返し配線それぞれに対応して、各々ステップＳ１２で算出されたドライバサイズを有する３つのプリドライバを生成する。
【０１０４】
（ステップＳ１４）：折り返し配線とプリドライバとの接続
折り返し配線とプリドライバとの接続点にビアコンタクトを生成する。またプリドライバとビアコンタクトとの接続配線を生成し、プリドライバと折り返し配線との接続を行う。図１３に、ここまでのプログラム実施結果を示す。
（ステップＳ１５）：レイアウトデータの出力
分岐配線にクロック信号を分配する折り返し配線を接続したレイアウト構成を示すレイアウトデータを出力する。また実行結果を装置に備えられたディスプレイに表示する。
【０１０５】
以上のように、分岐配線にクロックを分配する配線として折り返し配線を形成し、クロック信号が到達する時間が折り返し配線の複数の直線部分によって相違することを利用し、各分岐配線の遅延時間を考慮して折り返し配線への各分岐配線の分岐点を決定するので、分配されるクロック信号のクロックスキューを低減することができる。
【０１０６】
この実施の形態の配線生成方法により実施の形態２と同様のクロック配線が示自動生成可能である。この配線生成方法を実施の形態１、３〜６のクロック配線を生成する機能を配線生成装置にもたせることも可能である。またこの実施の形態のクロック配線の配線生成方法は、プログラムによる完全自動で実現してもよいし、ディスプレイ上のレイアウト図面を見ながら装置とインタラクティブに設計者が操作するといういわば半自動的で実現してもよい。
【０１０７】
【発明の効果】
以上説明したように、この発明による半導体集積回路装置、配線生成方法および配線生成装置と、ある第１の方向に沿って配列し各々は第１の方向とは垂直な第２の方向に延びる複数の直線部分を含み、その配線上のある点から複数の直線部分をそれぞれの直線方向に沿って順々に経由してその配線上の別の点に通じる経路が形成されるクロック配線を用いることによって、複数の分岐配線に分配されるクロック信号のクロックスキューを低減することが可能となる。
【図面の簡単な説明】
【図１】  従来技術による半導体集積回路装置を示す配線構成図である。
【図２】  この発明の実施の形態１による半導体集積回路装置を示す配線構成図である。
【図３】  この発明の実施の形態２による半導体集積回路装置を示す配線構成図である。
【図４】  この発明の実施の形態３による半導体集積回路装置を示す配線構成図である。
【図５】  この発明の実施の形態４による半導体集積回路装置を示す配線構成図である。
【図６】  この発明の実施の形態５による半導体集積回路装置を示す配線構成図である。
【図７】  この発明の実施の形態６による半導体集積回路装置を示す配線構成図である。
【図８】  この発明の実施の形態７による配線生成方法のフローを示すフローチャート図である。
【図９】  図８に示る入力されるレイアウトデータが示す半導体集積回路装置の配線構成図である。
【図１０】  図８にしめすフローのステップ  までで生成される半導体集積回路装置の配線構成図である。
【図１１】  図８にしめすフローのステップ  までで生成される半導体集積回路装置の配線構成図である。
【図１２】  図８にしめすフローのステップ  までで生成される半導体集積回路装置の配線構成図である。
【図１３】  図８にしめすフローのステップ  までで生成される半導体集積回路装置の配線構成図である。
【符号の説明】
１２…プリドライバ、１３…中間クロック幹線（折り返し配線）、１４ａ〜１４ｆ、６１〜７７…分岐配線、１５ａ〜１５ｆ…メインドライバ、１６ａ〜１６ｆ…組合わせ回路、１８ａ〜１８ｆ…ラッチ回路、２０、２１ａ〜２１ｆ…ビアコンタクト
【図１】
0004776124.tif 000002
【図２】
0004776124.tif 000003
【図３】
0004776124.tif 000004
【図４】
0004776124.tif 000005
【図５】
0004776124.tif 000006
【図６】
0004776124.tif 000007
【図７】
0004776124.tif 000008
【図８】
0004776124.tif 000009
【図９】
0004776124.tif 000010
【図１０】
0004776124.tif 000011
【図１１】
0004776124.tif 000012
【図１２】
0004776124.tif 000013
【図１３】
0004776124.tif 000014