(57)【特許請求の範囲】
【請求項１】
半導体集積回路内に配置されたフリップフロップ回路にクロック信号を分配する格子状クロック配線を設計するための半導体集積回路の配線設計システムであって、
前記格子状クロック配線を構成するクロック配線のうち、前記格子状クロック配線によるクロック信号の分配動作への影響の小さいクロック配線を選択するクロック配線間引き選択手段と、
前記クロック配線を間引くクロック配線間引き手段とを備え、
前記クロック配線間引き選択手段が、
前記影響の小さいクロック配線を、前記クロック配線からクロック信号を供給するフリップフロップ回路の数、格子状クロック配線を構成する各格子内に配置されたフリップフロップ回路の数、半導体集積回路内でのフリップフロップ回路の配置位置の少なくとも１つに基づいて選択する
ことを特徴とする半導体集積回路の配線設計システム。
【請求項２】
前記クロック配線間引き選択手段が、
前記クロック信号を供給するフリップフロップ回路の数が少ないものから順にクロック配線を選択し、
前記クロック配線間引き手段が、
全クロック配線の数分の１に相当する数のクロック配線を、間引くことを特徴とする請求項１に記載の半導体集積回路の配線設計システム。
【請求項３】
前記クロック配線間引き選択手段が、
前記クロック信号を供給するフリップフロップ回路の数を、前記格子状クロック配線を構成するクロック配線の格子単位の長さ毎に計数し、前記フリップフロップ回路の数が少ないものから順にクロック配線を選択し、
前記クロック配線間引き手段が、
全ての前記クロック配線の数分の１に相当する数のクロック配線を、間引くことを特徴とする請求項１に記載の半導体集積回路の配線設計システム。
【請求項４】
前記クロック配線間引き選択手段が、
前記格子内に配置されたフリップフロップ回路の数を、前記格子状クロック配線を構成する全ての格子単位で計数し、前記フリップフロップ回路の数が予め設定された一定数以下の格子と、当該格子の隣接する格子のうち、格子内のフリップフロップの数が最も少ない格子との境界に位置するクロック配線を選択することを特徴とする請求項１に記載の半導体集積回路の配線設計システム。
【請求項５】
前記クロック配線間引き選択手段が、
前記フリップフロップ回路の配置位置が均一に分布している場合、前記格子状クロック配線を構成する、互いに交差する２組のクロック配線の群のうち、各クロック配線の群の外周に位置するクロック配線から数えて偶数本目のクロック配線を選択することを特徴とする請求項１に記載の半導体集積回路の配線設計システム。
【請求項６】
前記間引くことにより除去しないクロック配線に、前記間引くことにより除去したクロック配線に接続されていたフリップフロップ回路を接続するクロック信号線を生成する手段を備えることを特徴とする請求項１に記載の半導体集積回路の配線設計システム。
【請求項７】
前記除去したクロック配線の生成されていた領域を横切って、前記クロック信号線が前記除去しないクロック配線に接続されている場合、前記フリップフロップ回路から前記クロック信号線を辿って前記領域を跨いだ位置へ前記フリップフロップ回路を再配置するフリップフロップ回路再配置手段を備えることを特徴とする請求項６に記載の半導体集積回路の配線設計システム。
【請求項８】
前記領域を跨いだ位置は、前記除去しないクロック配線の近傍であることを特徴とする請求項７に記載の半導体集積回路の配線設計システム。
【請求項９】
前記フリップフロップ回路再配置手段が、
前記フリップフロップ回路を再配置する際、前記除去しないクロック配線に接続されているフリップフロップ回路を、前記クロック配線のより近傍に再配置することを特徴とする請求項７に記載の半導体集積回路の配線設計システム。
【請求項１０】
前記除去したクロック配線の生成されていた領域に、前記除去しないクロック配線と電気的に絶縁されたダミー配線を生成するダミー配線挿入手段を備えることを特徴とする請求項６又は請求項７に記載の半導体集積回路の配線設計システム。
【請求項１１】
前記間引くことにより除去しないクロック配線のうち、前記間引くことにより除去するクロック配線と交差する部分については、除去することなく残すことを特徴とする請求項１に記載の半導体集積回路の配線設計システム。
【請求項１２】
コンピュータ処理装置上で実行され、半導体集積回路内に配置されたフリップフロップ回路にクロック信号を分配する格子状クロック配線を設計するための配線設計プログラムであって、
前記コンピュータ処理装置に、
設計データに含まれる前記格子状クロック配線を構成するクロック配線のうち、前記格子状クロック配線によるクロック信号の分配動作への影響の小さいクロック配線を選択するクロック配線間引き選択機能と、
前記クロック配線を間引くクロック配線間引き機能とを持たせ、
前記クロック配線間引き選択機能が、
前記影響の小さいクロック配線を、クロック配線からクロック信号を供給するフリップフロップ回路の数、格子状クロック配線を構成する各格子内に配置されたフリップフロップ回路の数、半導体集積回路内でのフリップフロップ回路の配置位置の少なくとも１つに基づき、選択する
ことを特徴とする配線設計プログラム。
【請求項１３】
前記クロック配線間引き選択機能が、
前記クロック信号を供給するフリップフロップ回路の数が少ないものから順にクロック配線を選択し、
前記クロック配線間引き機能が、
全クロック配線の数分の１に相当する数のクロック配線を、間引くことを特徴とする請求項１２に記載の配線設計プログラム。
【請求項１４】
前記クロック配線間引き選択機能が、
前記クロック信号を供給するフリップフロップ回路の数を、前記格子状クロック配線を構成するクロック配線を格子単位の長さ毎に計数し、前記フリップフロップ回路の数が少ないものから順にクロック配線を選択し、
前記クロック配線間引き機能が、
全ての前記クロック配線の数分の１に相当する数のクロック配線を、間引くことを特徴とする請求項１２に記載の配線設計プログラム。
【請求項１５】
前記クロック配線間引き選択機能が、
前記格子内に配置されたフリップフロップ回路の数を、前記格子状クロック配線を構成する全ての格子単位で計数し、前記フリップフロップ回路の数が予め設定された一定数以下の格子と、当該格子の隣接する格子のうち、格子内のフリップフロップの数が最も少ない格子との境界に位置するクロック配線を選択することを特徴とする請求項１２に記載の配線設計プログラム。
【請求項１６】
前記クロック配線間引き選択機能が、
前記フリップフロップ回路の配置位置が均一に分布している場合、前記格子状クロック配線を構成する、互いに交差する２組のクロック配線の群のうち、各クロック配線の群の外周に位置するクロック配線から数えて偶数本目のクロック配線を選択することを特徴とする請求項１２に記載の配線設計プログラム。
【請求項１７】
前記間引くことにより除去しないクロック配線に、前記間引くことにより除去したクロック配線に接続されていたフリップフロップ回路を接続するクロック信号線を生成する機能を有することを特徴とする請求項１２に記載の配線設計プログラム。
【請求項１８】
前記除去したクロック配線の生成されていた領域を横切って、前記クロック信号線が前記除去しないクロック配線に接続されている場合、前記フリップフロップ回路から前記クロック信号線を辿って前記領域を跨いだ位置へ前記フリップフロップ回路を再配置するフリップフロップ回路再配置機能を有することを特徴とする請求項１７に記載の配線設計プログラム。
【請求項１９】
前記除去したクロック配線の生成されていた領域に、前記除去しないクロック配線と電気的に絶縁されたダミー配線を生成するダミー配線挿入機能を有することを特徴とする請求項１７又は請求項１８に記載の配線設計プログラム。
【請求項２０】
前記間引くことにより除去しないクロック配線のうち、前記間引くことにより除去するクロック配線と交差する部分については、除去することなく残す機能を有することを特徴とする請求項１２に記載の配線設計プログラム。
【発明の詳細な説明】
【技術分野】  本発明は、半導体集積回路の配線設計システムに関し、特に、格子状クロック配線の低消費電力を実現する半導体集積回路の配線設計システム、半導体集積回路及び配線設計プログラムに関する。
【背景技術】  従来、半導体集積回路のクロック配線は、クロック配線を格子状かつ均一に配線する格子状クロック配線により構成されている。
図１２は、従来技術による半導体集積回路４０のクロック配線５０の一例を示す図である。
このような格子状かつ均一なクロック配線５０は、次のような特徴を持つ。すなわち、格子状かつ均一にクロックが配線されていることにより、クロックの供給を受けるそれぞれのフリップフロップ回路へのクロック信号の到着時刻の差が少なくなる。最も速く伝播したフリップフロップ回路と最も遅く伝播したフリップフロップ回路でのクロック信号の到着時刻の差は、クロックスキューと呼ばれる。
クロックスキューが大きい場合は、以下に説明するようにデータ信号の伝播への制約が大きくなる。
図１３は、クロックスキューがデータ信号の伝播へ及ぼす影響を説明するための図である。
図１３を参照すると、２つのフリップフロップ回路（ＦＦ）であるＦＦ５２１、ＦＦ５２２があり、共にクロック信号が供給されている。両者間のデータ信号の伝播時間は、クロック周期の１０倍に設計されている。
図１３の表で、例１の場合、２つのＦＦ５２１、ＦＦ５２２へのクロック信号の到着時刻は共に、クロック周期を単位として表すと＋２であり、クロックスキューはない。この場合、データ信号伝播時間はクロック周期を単位として表すと１０であり、問題は発生しない。
しかし、例２でＦＦ５２１へのクロック到着時刻が＋３で、ＦＦ５２２へのクロック到着時刻が＋２の場合、データ信号は短い伝播時間９で伝播しないと回路が誤動作してしまう。
また、その逆の場合、例３でフリップフロップＦＦ１のクロック到着時刻が＋１で、フリップフロップＦＦ２のクロック到着時刻が＋３の場合、データ信号は長い伝播時間１２で伝播しないと回路が誤動作してしまう。
このような状態を防止するためには、すべてのフリップフロップ回路に均一にクロックを供給することが必要となる。
一方、半導体集積回路４０にクロックを分配するための格子状クロック配線では、格子という均一性を利用したクロックスキューを小さくするための仕組みであるために、格子において冗長な配線を生じる可能性があるというと問題がある。
このような冗長な配線部分においても、他の部分と同様に信号が伝播するため、一般に格子状のクロック配線では、消費電力が大きくなってしまう。消費電力の増加は、回路を高速化するための微細化の妨げとなり、あるいは動作環境が制限を受けるという問題があった。
また、均一にクロックを分配するための格子状クロック配線では、格子の間隔の決定が重要な問題となっている。その理由は、格子の間隔を狭くすればクロック分配の均一性は増すが、冗長な配線が増え、また消費電力が増す。一方、格子の間隔を広くすれば冗長な配線は減るが、クロック分配の均一性が低下する。しかしながら、格子の間隔を決定する有効な手法は確立されていないため、格子の間隔の決定が難しいという問題があった。
このような問題の解決に類する方法の一例が、例えば特開２００３−２８２７１２号公報（特許文献１）及び例えば特開２００２−４３５５０号公報（特許文献２）に記載されている。
特許文献１に開示される方法は、半導体チップレイアウトの階層構造を保ったままで、格子状クロック配線をレイアウトの階層構造に対応して生成するクロック配線方法を提供する。この方法では、外部クロック入力端子から全ての回路ブロックを構成するフリップフロップ回路迄のクロックスキューが最小になるようにクロック分配処理が行われ、回路ブロックを構成するフリップフロップ回路に対して、クロック信号が供給されるというものである。
特許文献１の方法では、レイアウトの階層構造を保ちながら処理を行うので、レイアウト階層を展開して処理する従来の方法に比較して、大幅に計算機の処理量を低減できる。
また、特許文献２の方法は、半導体集積回路のクロックスキューを低減する方法に関するものであって、半導体集積回路のコア領域内の格子状クロック配線を介して、クロック信号使用セルに対して適正なクロック信号を供給する複数のクロックドライバ回路の近傍におけるクロック信号使用セルの粗密に対応して、各クロックドライバ回路のトランジスタ段数を増減配置するというものである。
特許文献２の方法では、クロックドライバ回路以外のコア領域内セルの再配置を必要とせずに、一層のクロックスキューの低減を容易に実現することができる。
上述した従来の技術は、いずれも以下に述べるような問題点があった。
特許文献１の方法によれば、半導体チップレイアウトの階層構造を保ったままで、外部クロック入力端子から全ての回路ブロックを構成するフリップフロップ回路迄のクロックスキューが最小になるようにクロック分配処理が行われるというものであり、レイアウト階層を展開して処理する従来の方法に比較して、大幅に計算機の処理量を低減できるというものである。
しかしながら、特許文献１の方法では、格子状クロック配線の構造を変化させないことを前提としており、格子状クロック配線の欠点である消費電力が大きいという問題を解決するものではない。
また、特許文献２の方法によれば、クロック信号使用セルに対して適正なクロック信号を供給する複数のクロックドライバ回路の近傍におけるクロック信号使用セルの粗密に対応して、各クロックドライバ回路のトランジスタ段数を増減配置することにより、クロックドライバ回路以外のコア領域内セルの再配置を必要とせずに、一層のクロックスキューの低減を容易に実現することができるというものである。
しかしながら、特許文献２の方法も、格子状クロック配線の構造を変化させないことを前提としており、格子状クロック配線の欠点である消費電力が大きいという問題を解決するものではない。
本発明の目的は、上記従来技術の欠点を解決し、格子状クロック配線の低消費電力を実現する半導体集積回路の配線設計システム、半導体集積回路及び配線設計プログラムを提供することにある。
【発明の開示】
上記目的を達成するための本発明は、半導体集積回路内に配置されたフリップフロップ回路にクロック信号を均一に分配する格子状クロック配線を設計するための半導体集積回路の配線設計システムであって、前記格子状クロック配線を構成するクロック配線のうち、前記格子状クロック配線によるクロック信号の分配動作への影響の小さいクロック配線を必要性の低いクロック配線として選択して間引くことを特徴とする。
前記必要性の低いクロック配線は、クロック配線からクロック信号を供給するフリップフロップ回路の数、格子状クロック配線を構成する各格子内に配置されたフリップフロップ回路の数、半導体集積回路内でのフリップフロップ回路の配置位置の少なくとも１つに基づき選択することを特徴とする。
必要性の低いクロック配線は、以下の４つに分類できる。
１．クロック信号を供給しているフリップフロップ回路の数を全てのクロック配線について計数し、クロック信号を供給しているフリップフロップ回路数の少ない、クロック配線の総数の数分の１に相当するクロック配線。
２．格子状クロック配線を縦方向、横方向の格子の長さで分割し、格子の長さに分割された全てのクロック配線についてクロック信号を供給しているフリップフロップ回路の数を計数し、クロック信号を供給しているフリップフロップ回路の数の少ない、格子の長さで分割されたクロック配線の全数の数分の１に相当するクロック配線。
３．格子状クロック配線を構成する各格子内のフリップフロップ回路の数を計数し、当該フリップフロップ回路の数が一定数以下の格子と、当該格子の隣接する格子のうちで最も格子内のフリップフロップ回路の数が少ない格子との境界のクロック配線。
４．フリップフロップ回路の配置位置の分布が均一な場合の、格子状クロック配線の２本に１本のクロック配線。
上記のような、必要性の低いクロック配線を間引くことにより、格子状クロック配線の消費電力を低減できる。
そして、間引きによるクロックスキューの増加を防止するため、本発明では、クロック信号の供給を受けるクロック配線からの距離が遠くなるフリップフロップ回路を、クロック配線の近傍に再配置することを行う。
再配置することにより、クロックスキューを、クロック配線を間引き除去する前と同じ程度に低減することができる。
以上のように、必要性の低いクロック配線を間引いた後、フリップフロップ回路の再配置を行うことにより、クロックスキューを小さく保ちながら、クロック配線の消費電力を低減できる。
また、本発明では、間引きにより配線の除去された部分にダミー配線を挿入する。このダミー配線では、信号は伝播しないが、クロック配線とまったく同様の配線であるため、格子状クロック配線による配線容量の半導体集積回路内での分布を、クロック配線を間引きする以前と同様に均一に保つことができる。
【図面の簡単な説明】  図１は、本発明の第１の実施例による半導体集積回路の配線設計システムの構成を示すブロック図である。
図２は、本発明の第１の実施例による半導体集積回路の配線設計システムの動作を説明するためのフローチャートである。
図３は、本発明の第１の実施例による均一にクロック配線を間引く例を示す図である。
図４は、本発明の第１の実施例による不均一にクロック配線を間引く例を示す図である。
図５は、本発明の第１の実施例による間引き対象クロック配線を選択する例を説明するための図である。
図６は、本発明の第１の実施例による間引き対象クロック配線を選択する別の例を示す図である。
図７は、本発明の第１の実施例による間引き対象クロック配線に接続されていたフリップフロップ回路の別のクロック配線への接続を説明するための図である。
図８は、本発明の第２の実施例による半導体集積回路の配線設計システムの構成を示すブロック図である。
図９は、本発明の第２の実施例によるフリップフロップ回路の再配置の一例を示す図である。
図１０は、本発明の第３の実施例による半導体集積回路の配線設計システムの構成を示すブロック図である。
図１１は、本発明の第３の実施例によるダミー配線挿入の一例を示す図である。
図１２は、従来技術による半導体集積回路のクロック配線の一例を示す図である。
図１３は、クロックスキューがデータ信号の伝播へ及ぼす影響を説明するための図である。
【発明を実施するための最良の形態】
【実施例１】  以下、本発明の好適な実施例について図面を参照して詳細に説明する。
図１は、本実施例による半導体集積回路の配線設計システム１０の構成を示すブロック図である。
図１を参照すると、本実施例による半導体集積回路の配線設計システム１０は、半導体集積回路設計データ入力手段１１と、初期格子状クロック配線手段１２と、初期全素子配置手段１３と、クロック配線間引き選択手段１４と、クロック配線間引き手段１５と、配置配線手段１６と、半導体集積回路設計データ出力手段１７による構成となっている。
これらの手段は、それぞれつぎのように動作する。
半導体集積回路設計データ入力手段１１は、入力設計データファイル１００内の、半導体集積回路設計データ１０１を入力する。
初期格子状クロック配線手段１２は、半導体集積回路の全域に、均一な格子状のクロック配線を初期状態として設定することができる。クロック配線の初期状態は、均一な格子状クロック配線を半導体集積回路に生成することにより与えられる。
初期全素子配置手段１３は、半導体集積回路に対して全素子を指定された条件を守るように配置することができる。
クロック配線間引き選択手段１４は、半導体集積回路の全域に均一に生成された格子状のクロック配線及び配置された全素子の状況に基づき、格子状クロック配線から、どの配線を間引きにより除去すればよいか（以下では間引きによる除去を間引き除去と略す）を選択し、間引き除去すべき配線を出力することができる。
クロック配線間引き手段１５は、クロック配線間引き選択手段１４が出力した、間引き除去すべきクロック配線を半導体集積装置の設計データから、実際に間引き除去することができる。
配置配線手段１６は、クロック配線確定後の全素子の配置及び配線を確定することができる。
半導体集積回路設計データ出力手段１７は、上記の手段によりクロック配線の生成、フリップフロップ回路の位置などの変更がなされた、製造向け半導体集積回路設計データ１１１を出力設計データファイル１１０に出力する。
本発明の特徴である、必要性の低いクロック配線をクロック配線間引き選択手段１４により選択し、クロック配線間引き手段１５により間引き除去する機能については、コンピュータ装置の内部にそのような機能を実現するプログラムを組み込んだ回路部品を実装して実現することも可能であるが、本発明の特徴的な機能を実現するためのプログラム（アプリケーション）を記憶媒体に記憶させ、コンピュータ装置で当該プログラムを実行することで、半導体集積回路の配線設計システム１０として機能させることもできる。
次に、半導体集積回路の配線設計システム１０の動作を説明する。
図２は、本実施例による半導体集積回路の配線設計システム１０の動作を説明するためのフローチャートである。
図２を参照すると、最初に、実装する回路データである半導体集積回路設計データ１０１を半導体集積回路設計データ入力手段１１により入力する（ステップ２０１）。
次に、クロック配線の初期状態を設定するため、均一な格子状クロック配線を、初期格子状クロック配線手段１２により生成する（ステップ２０２）。
次に、通常の半導体集積回路設計と同様に、半導体集積回路設計データ入力手段１１により入力された回路の全ての素子を初期全素子配置手段１３が半導体集積回路内に配置する（ステップ２０３）。
初期格子状クロック配線手段１２は、半導体集積回路内に配置された全てのフリップフロップ回路に対して、それぞれのフリップフロップ回路から最も近いクロック配線を選択し、フリップフロップ回路と格子状クロック配線を接続する（ステップ２０４）。
以上の、初期格子状クロック配線手段１２による段階で設計を完了すれば、従来の均一な格子状クロック配線を使った設計と同じであり、得られる半導体集積回路も従来と同じものとなる。
しかし、本発明では、初期格子状クロック配線手段１２による配線を仮とし、格子状クロック配線によるクロック信号の分配動作への影響が小さく、必要性の低いクロック配線を、クロック配線間引き選択手段１４を使って選択する（ステップ２０５）。
このようにして選択されたクロック配線を、クロック配線間引き手段１５が除去する（ステップ２０６）。
この段階で、初期格子状クロック配線手段１２により生成された均一なクロック配線から、一部の配線が間引き除去される。
さらに、配置配線手段１６により、設計ルールと仕様を満たすように半導体集積回路の素子の配置、配線を行う（ステップ２０７）。
最後に、半導体集積回路設計データ出力手段１７が、製造向け半導体集積回路設計データ１０２を出力する（ステップ２０８）。
次に、本実施例による動作について具体例を用いて詳細に説明する。以下必要に応じて図１、図１２の主要な部分を参照する。
背景技術の図１２で説明したように、複数のフリップフロップ回路へのクロックの到着時刻を均一化することを目的として、格子状クロック配線ではクロック配線５０を均一の構成とすることが行われる。
本実施例では、クロック設計前の半導体集積回路設計データ１０１を半導体集積回路設計データ入力手段１１で入力し、図１２に示したような格子状のクロック配線５０を初期格子状クロック配線手段１２により生成する。このような格子状クロック配線を生成する場合には、その配線間隔の決定が重要となるが、本発明の場合は、冗長な格子状クロック配線を後で間引き除去するので、クロック配線５０として考えられる十分に小さい間隔を予め与えておけばよい。
そして、通常の半導体集積回路設計と同様に、半導体集積回路設計データ入力手段１１により入力された回路の全ての素子を初期全素子配置手段１３が半導体集積回路４０内に配置する。この処理は、従来のどの配置手法を利用してもよい。
次に、フリップフロップ回路と、初期格子状クロック配線手段１２により生成したクロック配線５０との位置関係を見て、クロック配線間引き選択手段１４が格子状クロック配線のどのクロック配線５０を間引くかの選択を行う。
次に、クロック配線間引き選択手段１４によるクロック配線５０の間引きの選択例について説明する。
図３は、本実施例による均一にクロック配線５０を間引く例を示す図である。
図３を参照すると、半導体集積回路の配線設計システム１０を使用して設計した本実施例による半導体集積回路４０では、２本に１本のクロック配線５０が間引き対象クロック配線６０となっている
なお、上記のように２本に１本のクロック配線５０を間引くことは、格子状クロック配線を構成する、互いに交差する２組のクロック配線５０の群のうち、各クロック配線５０の群の外周（図示しない）に位置するクロック配線５０から数えて偶数本目のクロック配線５０を、間引き除去することを意味する。
なお、間引きにより除去されないクロック配線５０の機能を保つため、間引きにより除去されないクロック配線５０のうち、間引き対象クロック配線６０と交差する部分については、図３に示したように、除去することなく残す。但し、クロック配線５０の機能が損なわれない場合は、この限りでない。
図３に示すような間引きは、フリップフロップ回路が均一に分布している場合に行う。間引きは、クロック配線間引き手段１５により行う。
図４は、本実施例による不均一にクロック配線５０を間引く例を示す図である。
図４を参照すると、半導体集積回路の配線設計システム１０を使用して設計した本実施例による半導体集積回路４０では、間引き対象クロック配線６０が不均一に分布している。
クロック配線間引き選択手段１４により選択されたクロック配線の分布が均一でない場合には、間引き対象クロック配線６０の分布は、不均一となる。
なお、間引きにより除去されないクロック配線５０の機能を保つため、間引きにより除去されないクロック配線５０のうち、間引き対象クロック配線６０と交差する部分については、図４に示したように除去することなく残す。但し、クロック配線５０の機能が損なわれない場合は、この限りでない。
以下で、クロック配線間引き選択手段１４により、間引き対象クロック配線を選択する例を説明する。
図５は、本実施例による間引き対象クロック配線６１、６２を選択する例を説明するための図である。
この選択例は、クロック配線５０からクロック信号を供給するフリップフロップ回路５１０の数に基づき、その数が少ないものから順にクロック配線５０を選択し、その結果、全クロック配線の数分の１に相当する数のクロック配線５０を間引く。
なお、間引きの対象とするクロック配線の全クロック配線に対する割合は、状況により設定すればよいが、この例では１／４程度のクロック配線５０を間引くとして説明する。
図５を参照すると、間引き対象クロック配線６１、６２を除くクロック配線５０では、いずれも２個のフリップフロップ回路５１０へクロック信号を供給している。しかし、間引き対象クロック配線６１では、クロック信号を供給しているフリップフロップ回路５１０は無く、またクロック配線６２では、フリップフロップ回路５１０は１個であることがわかる。このような場合、クロック配線５０の総数８本のうち、クロック信号を供給するフリップフロップ回路５１０の数の少ない、全クロック配線の１／４に相当する２本の間引き対象クロック配線６１、６２を間引く。
上記の例は、クロック配線５０の本数単位で間引いた例であるが、格子状クロック配線を格子の長さで分割することもできる。なお、ここでは格子の縦の長さと横の長さが異なる場合を仮定している。両者が等しいとすれば、格子が正方形の格子状クロック配線についても同様に適用できる。
この場合、クロック信号を供給するフリップフロップ回路の数を、格子状クロック配線を構成するクロック配線５０を格子単位の長さで分割した、全てのクロック配線５０について計数し、フリップフロップ回路の数が少ないものから順にクロック配線５０を選択し、全てのクロック配線５０の数分の１に相当する数のクロック配線５０を間引くものである。
次に、別の選択例を説明する。
この例では、格子内に配置されたフリップフロップ回路５１０の数を、格子状クロック配線により生成される全ての格子単位で計数し、フリップフロップ回路５１０の数が予め設定された一定数以下の格子と、当該格子の隣接する格子のうち、格子内のフリップフロップ回路５１０の数が最も少ない格子との境界に位置するクロック配線５０を間引くというものである。
図６は、本実施例による間引き対象クロック配線６３を選択する例を説明するための図である。
図６を参照すると、９つ格子９１、９２、９３、９４、９５、９６、９７、９８、９９があり、格子９１、９２、９３、９７、９８、９９は、格子内のフリップフロップ回路５１０の数が共に４であるが、格子９５は格子内のフリップフロップ回路５１０の数が１で最も少ない。
予め設定された一定数を１に設定すると、格子９５のフリップフロップ回路５１０の数は一定数以下となる。格子９５に隣接する格子は、格子９２、９４、９６、９８の４つであり、それぞれの格子内に配置されたフリップフロップ回路５１０の数は、それぞれ４、２、３、４であって、格子９４内のフリップフロップ回路５１０の数が最も少ない。このため、格子９５と格子９４の境界に位置する間引き対象クロック配線６３を間引くことになる。
以上述べたように、本実施例による半導体集積回路の配線設計システム１０は半導体集積回路４０内に配置されたフリップフロップ回路５１０にクロック信号を均一に分配する格子状クロック配線を設計するシステムであって、格子状クロック配線を構成するクロック配線５０のうち、格子状クロック配線によるクロック信号の分配動作への影響の小さいクロック配線５０を必要性の低いクロック配線として選択し、間引くものである。
必要性の低いクロック配線は、クロック配線５０からクロック信号を供給するフリップフロップ回路の数、格子状クロック配線を構成する各格子内に配置されたフリップフロップ回路の数、半導体集積回路４０内でのフリップフロップ回路の配置位置の少なくとも１つに基づき選択する。
次に、間引きによりクロック信号の供給を受けられなくなったフリップフロップ回路の別のクロック配線５０への接続について説明する。
図７は、本実施例による間引き対象クロック配線６０に接続されていたフリップフロップ回路５０１の別のクロック配線５０への接続を説明するための図である。
図７を参照すると、間引き対象クロック配線６０に接続されていたフリップフロップ回路５０１では、間引かれていないクロック配線５０にクロック信号線８０を介して接続されることになる。なお、間引かれていないクロック配線５０の近傍に接続されていたフリップフロップ回路５０２では、接続の変更はない。
なお、間引きによりクロック信号の供給を受けられなくなったフリップフロップ回路５０１からクロック配線４０へのクロック信号線８０の長さが長くなるため、クロックスキューは増加する。
以上により、半導体製造に必要な設計データが得られることになり、半導体集積回路設計データ出力手段１７により製造向け半導体集積回路設計データ１１１を出力すればよい。
以上説明した実施例によれば、半導体集積回路４０の格子状クロック配線による電力消費を低減できる。
その理由は、格子状クロック配線の内、必要性の低いクロック配線を間引きにより除去するため、配線数が減少するためである。
また、格子状クロック配線の間隔を予め精密に計算により決定することは不要になる。
その理由は、十分小さな間隔のクロック配線５０で格子状クロック配線を生成した後、必要性の低いクロック配線を間引くためである。
【実施例２】  次に、本発明の第２の実施例について図面を用いて説明する。
図８は、本実施例による半導体集積回路の配線設計システム２０の構成を示すブロック図である。なお、以下の説明では、図７の主要な部分を参照する。
本実施例による半導体集積回路の配線設計システム２０は、本発明の第１の実施例による半導体集積回路の配線設計システム１０に、フリップフロップ回路再配置手段２１を追加したものとなっている。
フリップフロップ回路再配置手段２１は、第１の実施例によって格子状クロック配線の間引き除去が行われ、クロック配線５０から遠くなってしまうフリップフロップ回路５０１を、間引き除去されていないクロック配線５０に近づけるための処理を行い、格子状クロック配線の間引き除去に伴うクロックスキューの増加を抑制することができる。
以下、フリップフロップ回路再配置手段２１の動作例について説明する。なお、図８のクロック配線間引き手段１５による処理迄は、第１の実施例の図１と同様であるため、フリップフロップ回路再配置手段２１による処理以降について説明する。
図７を参照すると、フリップフロップ回路５０２は、クロック配線５０の近傍にあるため問題は生じない。しかし、フリップフロップ回路５０１の近傍にあった間引き対象クロック配線６０が除去されたことにより、フリップフロップ回路５０１とクロック配線５０とは長いクロック信号線８０を介して接続されており、クロックスキューが発生する。以下では、このようなクロックスキューを実験により確認した結果及びフリップフロップ回路再配置手段２１によるクロックスキュー低減について説明する。
背景技術の図１２で説明したと同様のクロック配線５０を用いて、図３に示したように、２本に１本のクロック配線５０を間引いた際のクロックスキューの発生を確認する実験を行った。
実験では、ＣＭＯＳＬＳＩ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の設計ルール９０ｎｍの場合に、間引き対象クロック配線６０の近傍のフリップフロップ回路５０１と、間引かれていないクロック配線５０の近傍に位置するフリップフロップ回路５０２との間のクロックスキューを、クロック配線５０を間引く前後について比較した。なお、間引き対象クロック配線６０を間引いた後は、配置配線手段１６によって、間引かれたクロック配線５０１からクロック配線５０へのクロック信号線８０の配線を行った。
その結果、間引かれる前は、クロックの到着時刻の差であるクロックスキューが６０ｐｓであったが、間引かれた後は３００ｐｓと５倍に増加することが確認された。
次に、クロック配線５０を間引いたことによるクロックスキュー増加の影響を低減するために、フリップフロップ回路再配置手段２１によりフリップフロップ回路５０１の再配置を行った。
図９は、本実施例によるフリップフロップ回路５０１の再配置の一例を示す図である。なお、再配置前のフリップフロップ５０１、５０２の配置は図７に示したとおりである。
図９を参照すると、間引き対象クロック配線６０の近傍のフリップフロップ回路５０１と、間引かれていないクロック配線５０の近傍に位置するフリップフロップ回路５０２は共に、クロック配線５０から等しい距離に配置されている。
フリップフロップ回路５０２については、再配置による配置の変更はない。しかし、フリップフロップ回路５０１では、クロック配線５０からの距離がフリップフロップ回路５０２のクロック配線５０からの距離と等しくなる位置に再配置してある。
このように、フリップフロップ回路５０１、５０２と格子型クロック配線との距離関係を均一にするか、あるいはフリップフロップ回路５０１、５０２を格子型クロック配線の近傍に集中して配置することにより、クロックスキューを小さくすることができる。
次に、フリップフロップ回路再配置手段２１によるフリップフロップ再配置がクロックスキュー低減に及ぼす効果について説明する。
フリップフロップ再配置によるクロックスキューの低減を確認する実験では、図９に示したようにクロック配線５０の近傍にフリップフロップ回路５０１、５０２を配置することにより、クロック配線５０を間引き除去する前の６０ｐｓのクロックスキューを回復できることが確認されている。
このように、必要性の低いクロック配線を間引いた後、フリップフロップ回路５０１の再配置を行うことにより、クロックスキューを低減することができる。
フリップフロップ回路５０１の再配置の後は、配置配線手段１６により、設計ルールと仕様を満たすように、半導体集積回路の配線設計システム２０を使用して設計した本実施例による半導体集積回路４０の素子の配置、配線を行う。次に、半導体集積回路設計データ出力手段１７は、製造向け半導体集積回路設計データ１２１を出力設計データファイル１２０に出力する。
上記の実施例では、図７でクロック信号線８０を介して間引き対象クロック配線６０に接続していたフリップフロップ回路５０１を、図９に示したように、再配置後は、クロック配線５０の近傍に配置している。
しかし、素子の配置、制約条件等により、クロック配線５０の近傍に配置できない場合もある。図７に示したように、クロック信号線８０が間引き対象クロック配線６０の位置と交差している場合、間引き対象クロック配線６０を跨いだ位置へ、フリップフロップ回路５０１を、クロック信号線８０を辿って再配置する。なお、クロック信号線８０上の位置であれば、間引き対象クロック配線６０とクロック配線５０との間のいずれの位置に配置してもよい。
また、上記の実施例では、間引かれていないクロック配線５０に接続したフリップフロップ回路５０２の配置の変更は行っていないが、フリップフロップ回路５０１を再配置する際に、フリップフロップ回路５０２の位置をさらにクロック配線５０の近くに再配置しても良い。
本実施例によれば、必要性の低いクロック配線を間引いた後、フリップフロップ回路５０１の再配置を行うことにより、クロックスキューを小さく保ちながら、クロック配線５０の消費電力を低減できる。
その理由は、間引き対象クロック配線６０を間引いた後、長いクロック信号線８０を介してクロック配線５０に接続したフリップフロップ回路５０１を、クロック配線５０の近傍に再配置するためである。
【実施例３】  次に、本発明の第３の実施例について図面を用いて説明する。
図１０は、本実施例による半導体集積回路の配線設計システム３０の構成を示すブロック図である。なお、以下の説明では、図７の主要な部分を参照する。
半導体集積回路の配線設計システム３０は、本発明の第１の実施例による配線設計システム１０にダミー配線挿入手段３１を追加したものとなっている。
ダミー配線挿入手段３１は、図４に示したようなクロック配線５０の不均一な間引きが原因となって発生する、配線容量の不均一を防止するために、ダミー配線を挿入する。ダミー配線では、信号は伝播しないが、クロック配線５０と全く同様の配線であるため、半導体集積回路４０内での配線容量の分布は、クロック配線５０を間引きする以前と同様に、均一に保つことができる。
このようにすることにより、半導体集積回路４０内での配線容量の均一性が保たれ、通常の容量分布が均一な格子型クロック配線と同様に、信号の解析計算を容易に行うことができる。
また、容量分布が均一な格子型クロック配線の場合、信号の雑音などの影響を検討する際、必要となる配線容量の計算を簡単にできるという利点がある。第１の実施例の図３で説明したように、クロック配線５０が均一に除去される場合にはこの利点は失われない。しかしながら、図４に示したように不均一に除去される場合にはこの利点が失われ、本実施例によるダミー配線挿入が必要となる。
以下で、ダミー配線挿入手段３１の動作例について説明する。なお、図１０のクロック配線間引き手段１５による処理迄は、第１の実施例の図１と同様であるため、ダミー配線挿入手段３１による処理以降について説明する。
図１１は、本実施例によるダミー配線挿入の一例を示す図である。
図１１を参照すると、間引かれたクロック配線の位置に、間引かれないクロック配線５０と電気的に絶縁され、容量を確保するためのダミー配線７０がダミー配線挿入手段３１により挿入されている。このように、信号の通らないダミー配線７０を挿入することにより、半導体集積回路４０内での容量分布の均一性が向上し、容量計算を著しく容易に行うことができるようになる。
ダミー配線挿入後は、配置配線手段１６により、設計ルールと仕様を満たすように、半導体集積回路の配線設計システム３０を使用して設計した本実施例による半導体集積回路４０の素子の配置、配線を行う。次に、半導体集積回路設計データ出力手段１７は、製造向け半導体集積回路設計データ１３１を出力設計データファイル１３０に出力する。
上記の実施例では、クロック配線間引き手段１５による処理の後、ダミー配線挿入手段３１によりダミー配線７０の挿入を行っている。この場合、間引き対象クロック配線６０からクロック信号の供給を受けていたフリップフロップ５０１の位置の変更はしていないため、クロックスキューは増加している。
そこで、クロックスキューを低減するため、クロック配線間引き手段１５による処理の後、本発明の第２の実施例で説明した、フリップフロップ回路再配置手段２１によるフリップフロップ回路再配置を行う。次に、本実施例で説明した、ダミー配線挿入手段３１によりダミー配線７０を挿入する。なお、ダミー配線挿入手段３１によりダミー配線７０を挿入した後、フリップフロップ回路再配置を行っても良い。
ダミー配線７０を挿入した後は、配置配線手段１６により、設計ルールと仕様を満たすように半導体集積回路４０の素子の配置、配線を行う。次に、半導体集積回路設計データ出力手段１７により、製造向け半導体集積回路設計データ１３１を出力する。
以上説明した実施例によれば、クロック配線５０の不均一な間引きが原因となって発生する、半導体集積回路４０内での配線容量の分布の不均一を防止することができる。
その理由は、間引き対象クロック配線６０の位置に、間引かれていないクロック配線５０と電気的に絶縁され、容量を確保するためのダミー配線７０を挿入するためである。
本発明の半導体集積回路の配線設計システム１０、２０、３０は、その動作をハードウェア的に実現することは勿論として、上記した各手段を実行する配線設計プログラム（アプリケーション）３００をコンピュータ処理装置である半導体集積回路の配線設計システム１０、２０、３０で実行することにより、ソフトウェア的に実現することができる。この配線設計プログラム３００は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体から半導体集積回路の配線設計システム１０、２０、３０にロードされ、その動作を制御することにより、上述した各機能を実現する。
以上好ましい複数の実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明によれば、半導体集積回路の格子状クロック配線による電力消費を低減できる。
その理由は、格子状クロック配線のうち、必要性の低いクロック配線を間引きにより除去するためである。
【図１】
0005076503.tif 000002
【図２】
0005076503.tif 000003
【図３】
0005076503.tif 000004
【図４】
0005076503.tif 000005
【図５】
0005076503.tif 000006
【図６】
0005076503.tif 000007
【図７】
0005076503.tif 000008
【図８】
0005076503.tif 000009
【図９】
0005076503.tif 000010
【図１０】
0005076503.tif 000011
【図１１】
0005076503.tif 000012
【図１２】
0005076503.tif 000013
【図１３】
0005076503.tif 000014