JP2004289007A - クロック配線、クロックレイアウトシステム及びクロックレイアウト方法 - Google Patents
クロック配線、クロックレイアウトシステム及びクロックレイアウト方法 Download PDFInfo
- Publication number
- JP2004289007A JP2004289007A JP2003081321A JP2003081321A JP2004289007A JP 2004289007 A JP2004289007 A JP 2004289007A JP 2003081321 A JP2003081321 A JP 2003081321A JP 2003081321 A JP2003081321 A JP 2003081321A JP 2004289007 A JP2004289007 A JP 2004289007A
- Authority
- JP
- Japan
- Prior art keywords
- node
- wiring
- clock
- wirings
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】ローカルエリアの数が多い場合にも、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守り、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぎつつゼロスキューを実現できるクロック配線、クロックレイアウトシステム、及びクロックレイアウト方法を提供する。
【解決手段】集積回路のクロック配線において、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線801に最初に現れる第2ノード(バッファ601)から分岐し、第2ノード(バッファ601)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ601a、601b、601c)へのみ畳み込みが行われ、クロック配線(801a、801b、801c)を接続する。
【選択図】 図1
【解決手段】集積回路のクロック配線において、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線801に最初に現れる第2ノード(バッファ601)から分岐し、第2ノード(バッファ601)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ601a、601b、601c)へのみ畳み込みが行われ、クロック配線(801a、801b、801c)を接続する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、計算機を用いた集積回路の設計技術に係り、特に集積回路のクロック配線を設計するクロックレイアウトシステム、及びクロックレイアウト方法、更にはそれにより実現されたクロック配線に関する。
【0002】
【従来の技術】
クロック配線では、誤作動を防止するため、総ての出力信号におけるスキューをなくすことが望ましい。「スキュー」とは、信号の伝播遅延のずれをいう。スキューがないことを、「ゼロスキュー」という。
【0003】
図9(a)に示すように、ゼロスキューを実現する方法の1つとして、「Hツリー型の構造」を用いたクロック配線を行う方法がある。即ち、ラッチ115とラッチ116、ラッチ117とラッチ118、ラッチ119とラッチ120、ラッチ121とラッチ122をそれぞれ等遅延の配線125〜128で結び、次に配線125と配線126、配線127と配線128の中点をそれぞれ等遅延の配線131、132で結ぶ。そして更に、配線131と132の中点を等遅延の配線141で結ぶ。「Hツリー型の構造」は、このような配線処理を繰り返すことにより、クロックの伝播遅延の均一化を図るために用いられる構造である。
【0004】
図9(b)に示すように、ゼロスキューを実現する他の方法として、「スター型の構造」を用いたクロック配線を行う方法がある。「スター型の構造」とは、ルートドライバ70から配線71a〜76aに分岐し、バッファ61〜66を介して配線71b〜76bによりラッチ51〜56のクロック入力端に配線を行う構造をいう。このような配線で、配線71a〜76a、配線71b〜76bの長さを均一化し、挿入されるバッファ61〜66の数を均一化することにより、ルートドライバ70からラッチ51〜56のクロック入力端に到達するクロックの伝播遅延が均一化される。
【0005】
更に、回路の性能を向上する方法の1つとして、ユースフルスキューを達成した回路を構成する方法がある。「ユースフルスキュー」とは、出力信号におけるスキューが、クロックと同期する範囲内にあることをいう。ツリーのリーフとなる各ノードに対して目標遅延を設定することで、ユースフルスキューは達成される。「目標遅延の設定」とは、バッファ、アンプの挿入、クロック配線の延長・短絡等によりクロックの伝播遅延を調整することをいう。
【0006】
又、伝播遅延を削減するためには、配線長を短縮し、配線抵抗を低減するのが有効である。そこで、図1に示すように、直交配線系850に加えて、斜め配線系860を用いることが提案されている。
【0007】
【発明が解決しようとする課題】
大規模な集積回路において、半導体チップ上に搭載された総ての回路素子をHツリー型の構造で配線することは困難である。なぜなら、Hツリー型の構造では、図9(a)に示すように、それぞれの分岐点に1つのバッファ150〜157が挿入されることから面積利用効率が悪く、Hツリー型の構造で配線できる範囲が制限されるからである。又、Hツリー型ではルートドライバに近づくに従い次第に電流が集中し、電流が大きくなるため、エレクトロマイグレーションが生じるからである。
【0008】
そこで、図9(c)に示すように、Hツリー型の構造で配線できる局所的な領域91〜96(以下、「ローカルエリア」という)では、Hツリー型の構造を用い、Hツリー型の構造で配線できないチップの全体の領域(以下、「グローバルエリア」という)では、スター型の構造を用いる方法が、一般的である。しかし、グローバルエリアでルートドライバ702からの分岐が多くなると、ルートドライバ702が駆動できる電流を増やさなければならず、電流容量がエレクトロマイグレーションの制約で定まる値を超えるおそれがある。更に、ローカルエリアの数が多くなると、ルートドライバ702からローカルエリアへの配線の数が多くなり、配線占有面積や配線による消費電力が増大する。そして、ルートドライバ702やバッファ61〜64からの分岐数が多くなり、ルートドライバ702やバッファ61〜64付近で、セル混雑度及び配線混雑度が増大する。その結果、レイアウト設計段階で配線ショートなどが生じ、完全結線可能性(ラウタビリティ)が低下する。
【0009】
又、クロック配線の延長によりクロックの伝播遅延を調整してスキューの最小化を図る場合、延長した配線において配線容量が増加すると、信号の立ち上がり特性の低下が生じる。例えば、図5(a)に示すように、ノードP3、P4を結ぶ配線でクロックの伝播遅延を調整するために、クロック配線L3、L4により配線長を延長すると、クロック配線L3、L4は近接していることから、クロック配線L3、L4間で配線容量が増加し、信号の立ち上がり時間の増大が生じる。一方、配線容量が増加しないようにするために、近接しない配線L5、L6により配線長を延長すると、配線占有面積が増大する。
本発明は、上述のような従来の課題を解決するためになされたもので、その目的は、ローカルエリアの数が多い場合にも、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守り、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぎつつゼロスキューを実現できるクロック配線、クロックレイアウトシステム、及びクロックレイアウト方法を提供することである。
【0010】
【課題を解決するための手段】
本発明の第1の特徴は、集積回路のクロック配線において、任意の第1ノードと、第1ノードから分岐した複数の配線と、複数の配線のうちの第1配線に最初に現れる第2ノードと、第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノードへのみ接続する配線とを備えることを要旨とする。直交配線系に加えて斜め配線系を用いる場合は、任意の第1ノードと、第1ノードから分岐した複数の配線と、複数の配線のうちの第1配線に最初に現れる第2ノードと、第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する第3ノードへのみ接続する配線であることが望ましい。第1の特徴に係る発明によれば、目標遅延設定のため以外の迂回配線がなくなり、セル混雑度及び配線混雑度の増大を防ぐことができる。
【0011】
本発明の第2の特徴は、任意のノードと、この任意のノードの次に信号が伝達される次段ノードと、任意のノードと次段ノードを結ぶ直線方向から90度未満の角度の配線方向の配線のうち何れかの組み合わせからなる、目標遅延設定のための迂回クロック配線であることを要旨とする。直交配線系に加えて、斜め配線系を用いる場合は、任意のノードと、この任意のノードの次に信号が伝達される次段ノードと、任意のノードと次段ノードを結ぶ直線方向の象限にある配線方向の配線のうち何れかの組み合わせからなる、目標遅延設定のための迂回クロック配線であることが望ましい。第2の特徴に係る発明によれば、平行でない迂回クロック配線で目標遅延を設定でき、配線容量の増加、信号の立ち上がり特性の低下を防ぐことができる。
【0012】
本発明の第3の特徴は、論理回路の回路情報を入力する入力装置と、論理回路の第1ノードから分岐した複数の配線のうちの第1配線に最初に現れるノードを第2ノードとして特定する第2ノード特定部と、第1ノードから分岐した複数の配線のうちの第1配線以外の配線に2番目に現れるノードを第3ノードとして特定する第3ノード特定部と、第3ノードのうち所定の条件を満たす第3ノードを確定第3ノードとする第3ノード確定部と、第1ノードから確定第3ノードに至るまでの配線及びノードを畳み込む畳み込み実行部を含むクロックレイアウトシステムであることを要旨とする。第3ノード確定部で満たす条件は、確定第3ノードが第2ノードへ入力される信号の入力方向から90度の角度以内の方向にのみ存在する第3ノードであればよく、45度の角度以内の方向にのみ存在する第3ノードであれば、更に望ましい。第3の特徴に係る発明によれば、畳み込む対象を所定の条件を満たす確定第3ノードに限定することができる。
【0013】
本発明の第4の特徴は、論理回路の回路情報を入力する入力装置と、論理回路中の任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶために用いる配線方向を決定する配線方向決定部と、容量モーメント又は遅延時間が等しくなるように配線方向の配線比率を算定する配線比率算定部とを含むことを要旨とする。第4の特徴に係る発明によれば、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぐことができる。ために用いる配線方向は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向から90度未満の角度の配線方向のうち何れかの組み合わせであることが望ましい。直交配線系に加えて、斜め配線系を用いる場合は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向の象限にある配線方向のうち何れかの組み合わせであることが望ましい。
【0014】
本発明の第5の特徴は、入力された回路情報を基に、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造で初期クロック配線を形成するステップと、初期クロック配線の第1ノードから分岐した複数の配線のうちの第1配線に最初に現れるノードを第2ノードとして特定するステップと、第1ノードから分岐した複数の配線のうちの第1配線以外の配線に2番目に現れるノードを第3ノードとして特定するステップと、第3ノードのうち、確定第3ノードを確定するステップと、第1ノードから確定第3ノードに至るまでの配線及びノードを畳み込むステップとを行うことを要旨とする。本第5の特徴に係る発明によれば、畳み込む対象を、所定の条件を満たす確定第3ノードに限定することができる。満たす条件は、確定第3ノードが第2ノードへ入力される信号の入力方向から90度の角度以内の方向にのみ存在する第3ノードであれば望ましく、45度の角度以内の方向にのみ存在する第3ノードであれば、更に望ましい。
【0015】
本発明の第6の特徴は、論理回路の回路情報を入力するステップと、論理回路中の任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶために用いる配線方向を決定するステップと、容量モーメント又は遅延時間が等しくなるように配線比率を算定するステップとを含むことを要旨とする。本発明の第6の特徴によれば、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぐことができる。配線方向は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向から90度未満の角度の配線方向のうち何れかの組み合わせであれば望ましい。直交配線系に加えて、斜め配線系を用いる場合は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向の象限にある配線方向のうち何れかの組み合わせであれば更に望ましい。
【0016】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
【0017】
(第1の実施の形態)
図1に示すように、本発明の第1の実施の形態に係るクロック配線は、集積回路のクロック配線において、ルートドライバ700から8本の主配線(親配線)801〜808が等方的に分岐し、主配線801上のバッファ601からバッファ601a、601b、601cへ枝配線(子配線)801a、801b、801cが分岐し、主配線802上のバッファ602からバッファ602aへ枝配線802aが延伸している。更に、主配線803上のバッファ603からバッファ603a、603b、603cへ枝配線803a、803b、803cが分岐し、主配線804上のバッファ604からバッファ604aへ枝配線804aが延伸している。
【0018】
任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線801に最初に現れる第2ノード(バッファ601)から分岐し、第2ノード(バッファ601)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ601a、601b、601c)へのみ畳み込みが行われ、クロック配線(801a、801b、801c)を接続する。そして、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線802に最初に現れる第2ノード(バッファ602)から延伸し、第2ノード(バッファ602)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ602a)へのみ畳み込みが行われ、クロック配線(802a)を接続する。
【0019】
更に、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線803に最初に現れる第2ノード(バッファ603)から分岐し、第2ノード(バッファ603)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ603a、603b、603c)へのみ畳み込みが行われ、クロック配線(803a、803b、803c)を接続する。そして、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線804に最初に現れる第2ノード(バッファ604)から延伸し、第2ノード(バッファ604)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ604a)へのみ畳み込みが行われ、クロック配線(804a)を接続する。
【0020】
図1では、直交配線系850に加えて斜め配線系860を用いているため、配線808上のQ1のように直交配線系850のグリッドと斜め配線系860のグリッドが交わり、8方向に配線できるノードと、Q2のように直交配線系850のグリッドと斜め配線系860のグリッドが交わらず、4方向にのみ配線できるノードがある。「信号の入力方向から45度の角度以内の方向」とは、Q1のようなノードにおける信号の入力方向から0度の角度方向、45度の角度方向、−45度の角度方向を意味し、これらの3方向の配線のうち1以上の配線が分岐又は延伸する。「信号の入力方向から90度の角度以内の方向」とは、Q2のようなノードにおける信号の入力方向から0度の角度方向、90度の角度方向、−90度の角度方向を意味し、これらの3方向の配線のうち1以上の配線が分岐又は延伸する。この結果、目標遅延設定のため以外の迂回配線がなくなり、バッファ601〜604付近での配線の混雑が回避できるとともに、ラウタビリティが向上する。
【0021】
図2で本発明の第1の実施の形態に係るクロックレイアウトシステムを説明する。本発明の第1の実施の形態に係るクロックレイアウトシステムは、入力装置9、中央演算処理装置(CPU)100、出力装置17、インターフェイス15、ホストコンピュータ16、共通バス20を備える。CPU100は、クロック配線処理部1、第1ノード特定部2、次段ノード特定部3、次段ノード数カウント部4、第2ノード特定部14、第3ノード特定部5a、第3ノード確定部5b、畳み込み実行部11、伝播遅延調整部8を備える。畳み込み実行部11は、畳み込み対象削除部6、畳み込み配線処理部7を備える。更に、本発明の第1の実施の形態に係るクロックレイアウトシステムは、確定第3ノード角度条件記憶装置5c、回路情報記憶装置10、読み出し専用メモリ(ROM)18、ランダムアクセスメモリ(RAM)19を備える。
【0022】
入力装置9は、設計しようとする論理回路の回路情報をクロック配線処理部1に入力する。出力装置17は、CPU100で処理等されるデータを出力する。ホストコンピュータ16は、インターフェイス15を介して、出力装置17が出力するデータと同様のデータを保存し、モニター等に出力する。入力装置9、CPU100、出力装置17、インターフェイス15、ホストコンピュータ16、確定第3ノード角度条件記憶装置5c、回路情報記憶装置10、ROM18、RAM19は、共通バス20を介してデータのやり取りを行う。
【0023】
クロック配線処理部1は、入力装置9により入力された論理回路の回路情報を基に、半導体チップ上にルートドライバを配置し、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造でクロック配線を行う。ここで行うクロック配線は、設計上のクロック配線であり、現実にクロック配線を行う必要はない。第1ノード特定部2は、クロック配線処理部1により配置されたルートドライバを先ず第1ノードとする。例えば図3(a)に示すように、先ずルートドライバ701が第1ノードとなる。次段ノード特定部3は、第1ノード特定部2で特定された第1ノードから信号伝播方向に最初に現れるノードを、次段ノードとする。図3(a)では、第1ノード701から信号伝播方向に最初に現れるバッファが次段ノード400a、400b、・・・・・となる。次段ノード数カウント部4は、次段ノード特定部3で特定された次段ノードの数を数える。第2ノード特定部14は、次段ノード特定部3で特定された次段ノードのうち1の次段ノードを第2ノードとする。図3(a)では、次段ノード400aが第2ノードであるとする。第3ノード特定部5aは、畳み込みの後に第1ノードから第3ノードへ伝播するクロックの伝播遅延が少なくとも増加しないことを条件に、第2ノードとは異なる次段ノードから信号伝播方向に最初に現れるノードを第3ノードとする。図3(a)では、第2ノード400aとは異なる次段ノード400bから信号伝播方向に最初に現れるノード401bが第3ノードであるとする。
【0024】
「畳み込み」とは、図3(a)(b)に示すように、ルートドライバである第1ノード701から分岐した複数の配線40a、b、・・・・・のうちの第1配線40aに最初に現れるノード400aを第2ノードとして特定し、第1ノード701から分岐した複数の配線40a、b、・・・・・のうちの第1配線以外の配線40bに2番目に現れるノード401bを第3ノードとして特定した後、第1ノード701から第3ノード401bに至るまでの配線40b、41b及びノード400bを削除し、第2ノード400aにおいて第1配線41cから新たな配線41eを分岐させて、第3ノード401bへ接続することをいう。図3においては、第3ノードは1つであるが、第3ノードは複数であってもよい。この場合、第1ノード701から第3ノードに至るまでの配線及びノードを削除し、第2ノード400aにおいて第1配線41cから複数の新たな配線を分岐させて、第3ノードへそれぞれ接続する。
【0025】
「畳み込みの後に第1ノードから第3ノードへ伝播するクロックの伝播遅延が少なくとも増加しないこと」とは、例えば図3(b)のように畳み込みを行った場合、第1ノード701から配線40、40a、ノード400a、配線41c、配線41eを伝播して第3ノード401bに至るまでの伝播遅延が、図3(a)における第1ノード701から配線40、40b、ノード400b、配線41bを伝播してノード401bに至るまでの伝播遅延に比し増加しないことをいう。
【0026】
第3ノード確定部5bは、第3ノード特定部5aで特定した第3ノードが、確定第3ノード角度条件記憶装置5cに記憶された条件を満たす第3ノードを、確定第3ノードとする。例えば、第3ノード確定部5bで満たす条件が、「確定第3ノードは、第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する」である場合、第2ノード400aへ入力される信号の入力方向、即ち配線40aの方向から90度の角度以内の方向に存在する第3ノード401a、401b、・・・・・が確定第3ノードとなる。その他の条件として、「確定第3ノードは、第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する」等がある。又、これらの条件は、複数の条件の組み合わせでもよい。例えば、図1に示すQ1のように8方向に配線できるノードでは、確定第3ノードは、第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在し、かつQ2のように4方向にしか配線できないノードでは、確定第3ノードは、第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在するという条件でもよい。
【0027】
畳み込み実行部11は、第3ノード確定部5bで確定された確定第3ノードへ畳み込みを行う。この場合、第2ノード特定部14で特定された第2ノードが駆動できる電流容量を超えるときは、畳み込み実行部11は、畳み込みができないと判断し、先ず電流容量を超えない範囲で確定第3ノードへ畳み込みを行い、残りの確定第3ノードへは他の第2ノードから畳み込みが行われる。
【0028】
畳み込み対象削除部6は、第1ノードから分岐して確定第3ノードに至るまでの配線及び第1ノードから分岐して確定第3ノードに至るまでの配線上のノードを削除する。例えば図3(a)に示す第1ノード701から分岐して確定第3ノード401bに至るまでの配線40b、ノード400bを図3(b)のように削除する。畳み込み配線処理部7は、第2ノードから配線を分岐させて、確定第3ノードへ接続する。例えば図3(b)に示すように、第2ノード400aから配線41eを点Qで分岐させて、確定第3ノード401bへ接続することをいう。
【0029】
更に畳み込みの後に、第1ノード特定部2は、第2ノード特定部14により特定された第2ノードを新たな第1ノードとする。例えば図3(b)に示すように、畳み込みの後のノード400aを新たな第1ノードとすることをいう。ノード400aを新たな第1ノードとすることにより、次段ノードは図3(b)に示すノード401a、401bとなり、ノード401a、401bが畳み込みの対象となる。伝播遅延調整部8は、クロックの伝播遅延を調整してゼロスキューを実現する。
確定第3ノード角度条件記憶装置5cは、確定第3ノードが満たすべき角度条件が、記憶される。回路情報記憶装置10は、入力装置9により入力され、又はクロック配線処理部1によりクロック配線された論理回路の回路情報を記憶する。又、回路情報記憶装置10は、畳み込み実行部11により総ての畳み込みが終了した後の論理回路の回路情報を記憶する。ROM18は、システムを立ち上げる基本入出力システム(BIOS)を格納する。RAM19は、種々の情報、及び演算結果を記憶する。
【0030】
入力装置9により入力された回路情報、クロック配線処理部1によりクロック配線された論理回路の回路情報、畳み込み実行部11により総ての畳み込みが終了した後の論理回路の回路情報、回路情報記憶装置10に記憶されている回路情報を、出力装置17が出力する
畳み込み実行部11でノードを畳み込むことにより、ローカルエリアの数が多い場合であっても、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守りつつ、高集積密度でクロック配線を実現できるクロックレイアウトシステム、及びクロックレイアウト方法を提供することができる。第1ノード特定部2で畳み込み後の第2ノードを新たな第1ノードとすることにより、畳み込み後の信号伝播方向へ次々とノードの畳み込みを行うことができ、畳み込みが可能なノードの総てを畳み込むことができる。第3ノード特定部5aで畳み込みが可能なノードを特定することにより、信号の伝播遅延を増加させずに確実に畳み込みを行うことができ、畳み込み後の誤動作を回避できる。第3ノード確定部5bで畳み込む第3ノードを確定することにより、セグメント及びノードの数が削減され、チップ内の面積利用効率が増大し、消費電力が低減される。伝播遅延調整部8で伝播遅延を調整することにより、クロック配線後の誤作動を回避できる。
【0031】
図2を参照しながら、図4のフローチャートで本発明の第1の実施の形態に係るクロックレイアウト方法を説明する。
【0032】
(イ)先ずステップS201において、入力装置9により、設計しようとする論理回路の回路情報が入力される。例えば、図3(a)に示す論理回路の回路情報が入力される。
【0033】
(ロ)ステップS202において、クロック配線処理部1は、入力装置9により入力された論理回路の回路情報を基に、半導体チップ上にルートドライバを配置し、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造でクロック配線を行う。即ち、グローバルエリアにおいて、図9(c)に示すように半導体チップ上に設けられたルートドライバ702から複数の配線71a〜76aを分岐し、スター型のクロック配線が行われる。
【0034】
(ハ)ステップS203において、クロック配線処理部1によりクロック配線された後の論理回路の回路情報を基に、第1ノード特定部2によりルートドライバが第1ノード701とされる。
【0035】
(ニ)ステップS204において、第1ノード701から複数の配線40a、40b、・・・・・に沿って信号伝播方向に最初にそれぞれ現れるノード400a、400b、・・・・・が次段ノードとして次段ノード特定部3により特定される。
【0036】
(ホ)ステップS205において、次段ノード数カウント部4により、次段ノード特定部3で特定された次段ノード400a、400b、・・・・・の数が数えられる。
【0037】
(へ)カウントされた次段ノード400a、400b、・・・・・が2つ以上ある場合は、ステップS206において、第2ノード特定部14は次段ノード400a、400b、・・・・・のうち1の次段ノード400aを第2ノードとする。
【0038】
(ト)ステップS207aにおいて、畳み込み後に第1ノードから第3ノードへ伝播するクロックの伝播遅延が少なくとも増加しないことを条件に、第3ノード特定部5aは図3(a)に示す第2ノード400aとは異なる次段ノード400bから信号伝播方向に最初に現れるノード401bが第3ノードとして特定される。
【0039】
(チ)第3ノードが特定された場合は、ステップS207bにおいて、第3ノード確定部5bで、確定第3ノード角度条件記憶装置5cに記憶された条件を満たす第3ノードを、確定第3ノードを確定する。
【0040】
(リ)ステップS208aにおいて、畳み込み対象削除部6により第1ノード701から分岐して確定第3ノード401bに至るまでの配線40b、41b及びノード400bが削除される。
【0041】
(ヌ)そしてS208bにおいて、畳み込み配線処理部7により第2ノード400aから配線41d、41eに分岐して、配線41eを確定第3ノード401bへ接続する。
【0042】
(ル)確定第3ノードへ畳み込まれた場合は、ステップS211において、第2ノード400aが第1ノード特定部2により新たな第1ノードとされる。
【0043】
(ヲ)新たな第1ノードを用いて更にステップS204〜S208を繰り返し、ステップS211を経由して信号伝播方向へ次々とノードが畳み込まれ、総ての畳み込みが可能なノードが畳み込まれる。
【0044】
(ワ)ステップS207aにおいて、第3ノード特定部5aにより第3ノードが特定されなかった場合、ステップ207bにおいて、確定第3ノードが確定されなかった場合は、ステップS209において、伝播遅延調整部8で伝播遅延調整が行われる。
【0045】
(カ)そして最終的に、ステップS210において、クロック配線処理部1によりクロック配線される。
【0046】
これにより、ルートドライバのみならず畳み込み後のノードからも、配線が分岐するため、ローカルエリアの数が多くなっても、ルートドライバからローカルエリアへの分岐の数の制限及びエレクトロマイグレーションの制約を超えることなくクロック配線処理を行うことができる。更に、セグメント、ノードの数が削減されることにより、チップ内の面積利用効率が増大し、消費電力が低減される。
【0047】
(第2の実施の形態)
図5(b)に示すように、本発明の第2の実施の形態に係るクロック配線は、任意のノードP5とこの任意のノードの次に信号が伝達される次段ノードP6を結ぶ直線方向F1から90度未満の角度の配線方向の配線L7、L10、L11、L12からなる、目標遅延を設定のための迂回クロック配線である。即ち、図5(c)に示すF2、F3、F4、F9方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。F2、F3、F4、F9方向の配線は平行でないため、平行でない迂回クロック配線で目標遅延を設定でき、配線容量の増加、信号の立ち上がり特性の低下を防ぐことができる。直交配線系850に加えて、図1に示す斜め配線系860を用いる場合は、任意のノードP5とこの任意のノードの次に信号が伝達される次段ノードP6を結ぶ直線方向F1の象限である第4象限にある配線方向のうち何れかの組み合わせでクロックの伝播遅延を調整することが望ましい。即ち、図5(c)に示すF2、F3、F4方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。
【0048】
図5(b)に示すように、配線方向F2、F3、F4の配線でクロックの伝播遅延を調整した結果、ノードP5とノードP6を最短距離で結んだ配線L7、L8、L9に比し、Q3、P6間で冗長性がある。直交配線系850のグリッドの単位長さをLとすると、この冗長性は(2−21/2)Lとなる。このように冗長性を持たせても、近接しない配線L10、L11、L12によりクロックの伝播遅延を調整できる。この結果、配線L10、L11、L12による配線容量の増加を抑えることができ、ノードP5、P6間を伝播する信号の立ち上がり特性の低下を防止しつつ、更に配線占有面積を増大させることなくクロックの伝播遅延を調整できる。
【0049】
図6で本発明の第2の実施の形態に係るクロックレイアウトシステムを説明する。本発明の第2の実施の形態に係るクロックレイアウトシステムは、入力装置900、中央演算処理装置(CPU)101、出力装置901、インターフェイス46、ホストコンピュータ47、共通バス910を備える。CPU101は、グルーピング部21、グループ容量/遅延時間算定部22、重心点算定部23、バッファセル配置部24、最大容量モーメント/最長遅延時間算定部25、容量モーメント差/遅延時間差算定部26、配線方向決定部27、配線比率算定部28、配線処理部29を備える。更に、本発明の第2の実施の形態に係るクロックレイアウトシステムは、グループ記憶装置902、グループ容量/遅延時間記憶装置903、重心点記憶装置904、バッファセル位置記憶部906、最大容量モーメント/最長時間記憶装置905、配線比率記憶装置45、容量モーメント差/遅延時間差記憶装置907、配線方向記憶装置908、F/F情報記憶装置909、読み出し専用メモリ(ROM)48、ランダムアクセスメモリ(RAM)49を備える。
【0050】
入力装置900は、設計しようとする論理回路のフリップフロップ(F/F)情報を入力する。出力装置901は、CPU101で処理等されるデータを出力する。ホストコンピュータ47は、インターフェイス46を介して、出力装置901が出力するデータと同様のデータを保存し、モニター等に出力する。入力装置900、CPU101、出力装置901、インターフェイス46、ホストコンピュータ47、グループ記憶装置902、グループ容量/遅延時間記憶装置903、重心点記憶装置904、バッファセル位置記憶部906、最大容量モーメント/最長時間記憶装置905、配線比率記憶装置45、容量モーメント差/遅延時間差記憶装置907、配線方向記憶装置908、F/F情報記憶装置909、読み出し専用メモリ(ROM)48、ランダムアクセスメモリ(RAM)49は、共通バス910を介してデータのやり取りを行う。
【0051】
グルーピング部21は、入力装置900により入力された設計しようとする論理回路のF/F情報から2以上のF/F又は既にバランス木で結線された2以上のF/F群をグループ化する。グループ容量/遅延時間算定部22は、グルーピング部21によりグループ化された各グループの容量又は信号の伝播遅延時間を算定する。容量には、F/Fの入力容量や配線容量が含まれる。
【0052】
重心点算定部23は、各グループの容量モーメント又は信号の伝播遅延時間が等しくなるような点(重心点)の位置を算定する。重心点の位置の算定は以下のように行う。図8に示すように、グルーピング部21により4つにグループ化された場合、各グループの容量をC1、C2、C3、C4とし、全体の重心点G5から各グループの重心点G1、G2、G3、G4へのユークリッド距離をD1、D2、D3、D4とすると、式(1)が成り立つ。
【0053】
D1×C1=D2×C2=D3×C3=D4×C4 ・・・・・(1)
式(1)を満たすG5の位置が全体の重心点となる。即ち、総ての容量モーメント(DX×CX)が等しくなる点が全体の重心点となる。又、重心点G5から各グループのF/Fへ到達する信号の伝播遅延時間が等しくなるようなG5の位置を全体の重心点としてもよい。
【0054】
バッファセル配置部24は、重心点から直近かつ適切な位置に、バッファセルを配置する。図8における重心点G5の位置は配線上にない。よって、重心点G5から直近かつ直交配線系850のグリッド及び斜め配線系860のグリッドの交点である点G6にバッファセル777を配置する。
【0055】
最大容量モーメント/最長遅延時間算定部25は、バッファセル配置部24により配置されたバッファセルから各グループの重心点へ、現実に可能な最短の配線で結線した場合における、各グループの容量モーメント又はF/Fへの遅延時間のうち、最大又は最長のものを算定する。例えば図8において、バッファセル777から各グループの重心点G1〜G4へ、直交配線系850及び斜め配線系860を用いて、最短距離の配線K1、K2、K3、K4で結線したとする。この場合、最大容量モーメント/最長遅延時間算定部25は、各グループの容量モーメント(D1×C1、D2×C2、D3×C3、D4×C4)又は各グループのF/Fへの遅延時間のうち、最大又は最長のものを算定する。容量モーメント差/遅延時間差算定部26は、最大容量モーメント/最長遅延時間算定部25で算定された最大容量モーメント又は最長遅延時間と、その他の経路における容量モーメント又は遅延時間の差を算定する。例えば図8において、配線K2で容量モーメントD2×C2が最大になったとする。この場合、容量モーメント差/遅延時間差算定部26は、配線K1、K3、K4の容量モーメントと配線K2の容量モーメントの差を算定する。
【0056】
配線方向決定部27は、各配線におけるクロックの伝播遅延を調整する配線を決定する。決定される配線方向は、結線するノード間の直線方向から90度未満の角度の方向のうち何れかの組み合わせである。例えば図5(b)に示すように、任意のノードP5とこの任意のノードの次に信号が伝達される次段ノードP6を結ぶ直線方向F1から90度未満の角度方向のうち何れかの組み合わせを決定する。即ち、図5(c)に示すF2、F3、F4、F9方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。直交配線系850に加えて、図1に示す斜め配線系860を用いる場合は、ノードP5とノードP6を結ぶ直線方向F1の象限である第4象限にある配線方向のうち何れかの組み合わせでクロックの伝播遅延を調整することが望ましい。即ち、図5(c)に示すF2、F3、F4方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。
【0057】
配線比率算定部28は、クロックの伝播遅延を調整するため、配線方向決定部27で決定された配線方向にどの程度の比率で配線するかを算定する。例えば図5(c)に示すように、F2、F3、F4方向の配線でクロックの伝播遅延を調整した結果、ノードP5とノードP6を最短距離で結んだ配線L7、L8、L9に比し、Q3、P6間で冗長性がある。直交配線系850のグリッドの単位長さをLとすると、この冗長性は(2−21/2)Lとなる。よってL12の配線長をδLとすると、冗長性を設けた後の配線長は(2−21/2)δL増加するため、容量モーメントは、C6×(2−21/2)δL増加する(P6を重心とするグループの容量をC6とする)。このように、L12の配線比率δを調整することにより、容量モーメント又は遅延時間を調整することができる。このように冗長性を持たせても、近接しない配線L10、L11、L12によりクロックの伝播遅延を調整できる。この結果、配線L10、L11、L12による配線容量の増加を抑えることができ、ノードP5、P6間を伝播する信号の立ち上がり特性の低下を防止しつつ、更に配線占有面積を増大させることなくクロックの伝播遅延を調整できる。
【0058】
配線処理部29は、配線比率算定部28により算定された配線比率に基づき、基板上に最適配線を行う。
【0059】
グループ記憶装置902は、グルーピング部21でグループ化されたF/F情報を記憶する。グループ容量/遅延時間記憶装置903は、グループ容量/遅延時間算定部22により算定された各グループ容量又は信号の伝播遅延時間を記憶する。重心点記憶装置904は、重心点算定部23により算定された重心点の位置を記憶する。バッファセル位置記憶部906は、バッファセル配置部24により配置されたバッファセルの位置を記憶する。最大容量モーメント/最長時間記憶装置905は、最大容量モーメント/最長遅延時間算定部25で算定された最大容量モーメント又は最長時間を記憶する。容量モーメント差/遅延時間差記憶装置907は、容量モーメント差/遅延時間差算定部26で算定された容量モーメント又は遅延時間の差を記憶する。配線方向記憶装置908は、配線方向決定部27により決定された配線方向を記憶する。配線比率記憶装置45は、配線比率算定部28により算定された配線比率を記憶する。F/F情報記憶装置909は、入力装置900により入力されたF/F情報を記憶する。ROM18は、システムを立ち上げる基本入出力システム(BIOS)を格納する。RAM19は、種々の情報、及び演算結果を記憶する。
【0060】
図6、図8を参照しながら、図7のフローチャートで本発明の第2の実施の形態に係るクロックレイアウト方法を説明する。
【0061】
(イ)先ずステップS300において、入力装置900が設計しようとする論理回路のF/F情報を入力する。ステップS301において、グルーピング部21はF/F群をグループ化する。
【0062】
(ロ)ステップS302において、グループ容量/遅延時間算定部22は、グルーピング部21によりグループ化された各グループの容量又は信号の伝播遅延時間を算定する。
【0063】
(ハ)ステップS303において、重心点算定部23は、各グループの重心点G5の位置を算定する。ステップS304において、バッファセル配置部24は、重心点G5から直近かつ適切な位置にバッファセル777を配置する。
【0064】
(ニ)ステップS305において、最大容量モーメント/最長遅延時間算定部25は、バッファセル配置部24により配置されたバッファセル777から各グループの重心点G1〜G4へ、最短の配線K1〜K4で結線した場合における、各グループの容量モーメント又はF/Fへの遅延時間のうち、最大又は最長のものを算定する。
【0065】
(ホ)ステップS306において、容量モーメント差/遅延時間差算定部26は、最大容量モーメント/最長遅延時間算定部25で算定された最大容量モーメント又は最長遅延時間と、その他の経路における容量モーメント又は遅延時間の差を算定する。
【0066】
(へ)ステップS307において、配線方向決定部27は、各配線におけるクロックの伝播遅延を調整する配線方向を決定する。ステップS308において、配線比率算定部28は、クロックの伝播遅延を調整するため、配線方向決定部27で決定された配線方向にどの程度の比率で配線するかを算定する。
【0067】
(ト)ステップS309において、配線処理部29は、配線比率算定部28により算定された配線比率に基づき、バッファセル777から各グループへ配線を行う。
【0068】
(その他の実施の形態)
本発明の第1の実施の形態及び第2の実施の形態では、バッファを用いたが、リピータであればよい。「リピータ」とは、配線上を流れる信号の再生及び中継を行う素子をいう。
【0069】
【発明の効果】
以上説明したように、本発明によれば、ローカルエリアの数が多い場合にも、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守り、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぎつつゼロスキューを実現できるクロック配線、クロックレイアウトシステム、及びクロックレイアウト方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るクロック配線の概略を示す図である。
【図2】本発明の第1の実施の形態に係るクロックレイアウトシステムの概略を示す図である。
【図3】(a)は、畳み込み前のクロック配線の概略を示す図である。(b)は、畳み込み後のクロック配線の概略を示す図である。(c)は、中間ノードを削除した後のクロック配線の概略を示す図である。
【図4】本発明の第1の実施の形態に係るクロックレイアウト方法を説明するためのフローチャートである。
【図5】(a)は、直交配線のみでクロックの伝播遅延を調整する迂回配線の概略を示す図である。(b)は、本発明の第2の実施の形態に係るクロック配線の概略を示す図である。(c)は、配線方向を示す図である。
【図6】本発明の第2の実施の形態に係るクロックレイアウトシステムの概略を示す図である。
【図7】本発明の第2の実施の形態に係るクロックレイアウト方法を説明するためのフローチャートである。
【図8】F/Fの各グループの重心点近傍から配線したクロック配線を示す図である。
【図9】(a)は、Hツリー型の構造を用いたクロック配線の概略を示す図である。(b)は、スター型の構造を用いたクロック配線の概略を示す図である。(c)は、Hツリー型とスター型の構造を併用したクロック配線の概略を示す図である。
【符号の説明】
1 クロック配線処理部
2 第1ノード特定部
3 次段ノード特定部
4 次段ノード数カウント部
5a 第3ノード特定部
5b 第3ノード確定部
5c 確定第3ノード角度条件記憶装置
6 畳み込み対象削除部
7 畳み込み配線処理部
8 伝播遅延調整部
9,900 入力装置
10 回路情報記憶装置
11 畳み込み実行部
14 第2ノード特定部
15,46 インターフェイス
16,47 ホストコンピュータ
17,901 出力装置
18,48 ROM
19,49 RAM
20,901 共通バス
21 グルーピング部
22 グループ容量/遅延時間算定部
23 重心点算定部
24 バッファセル配置部
25 最大容量モーメント/最長遅延時間算定部
26 容量モーメント差/遅延時間差算定部
27 配線方向決定部
28 配線比率算定部
29 配線処理部
45 配線比率記憶装置
100,101 CPU
902 グループ記憶装置
903 グループ容量/遅延時間記憶装置
904 重心点記憶装置
905 最大容量モーメント/最長時間記憶装置
906 バッファセル位置記憶部
907 容量モーメント差/遅延時間差記憶装置
908 配線方向記憶装置
909 F/F情報記憶装置
【発明の属する技術分野】
本発明は、計算機を用いた集積回路の設計技術に係り、特に集積回路のクロック配線を設計するクロックレイアウトシステム、及びクロックレイアウト方法、更にはそれにより実現されたクロック配線に関する。
【0002】
【従来の技術】
クロック配線では、誤作動を防止するため、総ての出力信号におけるスキューをなくすことが望ましい。「スキュー」とは、信号の伝播遅延のずれをいう。スキューがないことを、「ゼロスキュー」という。
【0003】
図9(a)に示すように、ゼロスキューを実現する方法の1つとして、「Hツリー型の構造」を用いたクロック配線を行う方法がある。即ち、ラッチ115とラッチ116、ラッチ117とラッチ118、ラッチ119とラッチ120、ラッチ121とラッチ122をそれぞれ等遅延の配線125〜128で結び、次に配線125と配線126、配線127と配線128の中点をそれぞれ等遅延の配線131、132で結ぶ。そして更に、配線131と132の中点を等遅延の配線141で結ぶ。「Hツリー型の構造」は、このような配線処理を繰り返すことにより、クロックの伝播遅延の均一化を図るために用いられる構造である。
【0004】
図9(b)に示すように、ゼロスキューを実現する他の方法として、「スター型の構造」を用いたクロック配線を行う方法がある。「スター型の構造」とは、ルートドライバ70から配線71a〜76aに分岐し、バッファ61〜66を介して配線71b〜76bによりラッチ51〜56のクロック入力端に配線を行う構造をいう。このような配線で、配線71a〜76a、配線71b〜76bの長さを均一化し、挿入されるバッファ61〜66の数を均一化することにより、ルートドライバ70からラッチ51〜56のクロック入力端に到達するクロックの伝播遅延が均一化される。
【0005】
更に、回路の性能を向上する方法の1つとして、ユースフルスキューを達成した回路を構成する方法がある。「ユースフルスキュー」とは、出力信号におけるスキューが、クロックと同期する範囲内にあることをいう。ツリーのリーフとなる各ノードに対して目標遅延を設定することで、ユースフルスキューは達成される。「目標遅延の設定」とは、バッファ、アンプの挿入、クロック配線の延長・短絡等によりクロックの伝播遅延を調整することをいう。
【0006】
又、伝播遅延を削減するためには、配線長を短縮し、配線抵抗を低減するのが有効である。そこで、図1に示すように、直交配線系850に加えて、斜め配線系860を用いることが提案されている。
【0007】
【発明が解決しようとする課題】
大規模な集積回路において、半導体チップ上に搭載された総ての回路素子をHツリー型の構造で配線することは困難である。なぜなら、Hツリー型の構造では、図9(a)に示すように、それぞれの分岐点に1つのバッファ150〜157が挿入されることから面積利用効率が悪く、Hツリー型の構造で配線できる範囲が制限されるからである。又、Hツリー型ではルートドライバに近づくに従い次第に電流が集中し、電流が大きくなるため、エレクトロマイグレーションが生じるからである。
【0008】
そこで、図9(c)に示すように、Hツリー型の構造で配線できる局所的な領域91〜96(以下、「ローカルエリア」という)では、Hツリー型の構造を用い、Hツリー型の構造で配線できないチップの全体の領域(以下、「グローバルエリア」という)では、スター型の構造を用いる方法が、一般的である。しかし、グローバルエリアでルートドライバ702からの分岐が多くなると、ルートドライバ702が駆動できる電流を増やさなければならず、電流容量がエレクトロマイグレーションの制約で定まる値を超えるおそれがある。更に、ローカルエリアの数が多くなると、ルートドライバ702からローカルエリアへの配線の数が多くなり、配線占有面積や配線による消費電力が増大する。そして、ルートドライバ702やバッファ61〜64からの分岐数が多くなり、ルートドライバ702やバッファ61〜64付近で、セル混雑度及び配線混雑度が増大する。その結果、レイアウト設計段階で配線ショートなどが生じ、完全結線可能性(ラウタビリティ)が低下する。
【0009】
又、クロック配線の延長によりクロックの伝播遅延を調整してスキューの最小化を図る場合、延長した配線において配線容量が増加すると、信号の立ち上がり特性の低下が生じる。例えば、図5(a)に示すように、ノードP3、P4を結ぶ配線でクロックの伝播遅延を調整するために、クロック配線L3、L4により配線長を延長すると、クロック配線L3、L4は近接していることから、クロック配線L3、L4間で配線容量が増加し、信号の立ち上がり時間の増大が生じる。一方、配線容量が増加しないようにするために、近接しない配線L5、L6により配線長を延長すると、配線占有面積が増大する。
本発明は、上述のような従来の課題を解決するためになされたもので、その目的は、ローカルエリアの数が多い場合にも、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守り、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぎつつゼロスキューを実現できるクロック配線、クロックレイアウトシステム、及びクロックレイアウト方法を提供することである。
【0010】
【課題を解決するための手段】
本発明の第1の特徴は、集積回路のクロック配線において、任意の第1ノードと、第1ノードから分岐した複数の配線と、複数の配線のうちの第1配線に最初に現れる第2ノードと、第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノードへのみ接続する配線とを備えることを要旨とする。直交配線系に加えて斜め配線系を用いる場合は、任意の第1ノードと、第1ノードから分岐した複数の配線と、複数の配線のうちの第1配線に最初に現れる第2ノードと、第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する第3ノードへのみ接続する配線であることが望ましい。第1の特徴に係る発明によれば、目標遅延設定のため以外の迂回配線がなくなり、セル混雑度及び配線混雑度の増大を防ぐことができる。
【0011】
本発明の第2の特徴は、任意のノードと、この任意のノードの次に信号が伝達される次段ノードと、任意のノードと次段ノードを結ぶ直線方向から90度未満の角度の配線方向の配線のうち何れかの組み合わせからなる、目標遅延設定のための迂回クロック配線であることを要旨とする。直交配線系に加えて、斜め配線系を用いる場合は、任意のノードと、この任意のノードの次に信号が伝達される次段ノードと、任意のノードと次段ノードを結ぶ直線方向の象限にある配線方向の配線のうち何れかの組み合わせからなる、目標遅延設定のための迂回クロック配線であることが望ましい。第2の特徴に係る発明によれば、平行でない迂回クロック配線で目標遅延を設定でき、配線容量の増加、信号の立ち上がり特性の低下を防ぐことができる。
【0012】
本発明の第3の特徴は、論理回路の回路情報を入力する入力装置と、論理回路の第1ノードから分岐した複数の配線のうちの第1配線に最初に現れるノードを第2ノードとして特定する第2ノード特定部と、第1ノードから分岐した複数の配線のうちの第1配線以外の配線に2番目に現れるノードを第3ノードとして特定する第3ノード特定部と、第3ノードのうち所定の条件を満たす第3ノードを確定第3ノードとする第3ノード確定部と、第1ノードから確定第3ノードに至るまでの配線及びノードを畳み込む畳み込み実行部を含むクロックレイアウトシステムであることを要旨とする。第3ノード確定部で満たす条件は、確定第3ノードが第2ノードへ入力される信号の入力方向から90度の角度以内の方向にのみ存在する第3ノードであればよく、45度の角度以内の方向にのみ存在する第3ノードであれば、更に望ましい。第3の特徴に係る発明によれば、畳み込む対象を所定の条件を満たす確定第3ノードに限定することができる。
【0013】
本発明の第4の特徴は、論理回路の回路情報を入力する入力装置と、論理回路中の任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶために用いる配線方向を決定する配線方向決定部と、容量モーメント又は遅延時間が等しくなるように配線方向の配線比率を算定する配線比率算定部とを含むことを要旨とする。第4の特徴に係る発明によれば、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぐことができる。ために用いる配線方向は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向から90度未満の角度の配線方向のうち何れかの組み合わせであることが望ましい。直交配線系に加えて、斜め配線系を用いる場合は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向の象限にある配線方向のうち何れかの組み合わせであることが望ましい。
【0014】
本発明の第5の特徴は、入力された回路情報を基に、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造で初期クロック配線を形成するステップと、初期クロック配線の第1ノードから分岐した複数の配線のうちの第1配線に最初に現れるノードを第2ノードとして特定するステップと、第1ノードから分岐した複数の配線のうちの第1配線以外の配線に2番目に現れるノードを第3ノードとして特定するステップと、第3ノードのうち、確定第3ノードを確定するステップと、第1ノードから確定第3ノードに至るまでの配線及びノードを畳み込むステップとを行うことを要旨とする。本第5の特徴に係る発明によれば、畳み込む対象を、所定の条件を満たす確定第3ノードに限定することができる。満たす条件は、確定第3ノードが第2ノードへ入力される信号の入力方向から90度の角度以内の方向にのみ存在する第3ノードであれば望ましく、45度の角度以内の方向にのみ存在する第3ノードであれば、更に望ましい。
【0015】
本発明の第6の特徴は、論理回路の回路情報を入力するステップと、論理回路中の任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶために用いる配線方向を決定するステップと、容量モーメント又は遅延時間が等しくなるように配線比率を算定するステップとを含むことを要旨とする。本発明の第6の特徴によれば、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぐことができる。配線方向は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向から90度未満の角度の配線方向のうち何れかの組み合わせであれば望ましい。直交配線系に加えて、斜め配線系を用いる場合は、任意のノードとこの任意のノードの次に信号が伝達される次段ノードを結ぶ直線方向の象限にある配線方向のうち何れかの組み合わせであれば更に望ましい。
【0016】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
【0017】
(第1の実施の形態)
図1に示すように、本発明の第1の実施の形態に係るクロック配線は、集積回路のクロック配線において、ルートドライバ700から8本の主配線(親配線)801〜808が等方的に分岐し、主配線801上のバッファ601からバッファ601a、601b、601cへ枝配線(子配線)801a、801b、801cが分岐し、主配線802上のバッファ602からバッファ602aへ枝配線802aが延伸している。更に、主配線803上のバッファ603からバッファ603a、603b、603cへ枝配線803a、803b、803cが分岐し、主配線804上のバッファ604からバッファ604aへ枝配線804aが延伸している。
【0018】
任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線801に最初に現れる第2ノード(バッファ601)から分岐し、第2ノード(バッファ601)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ601a、601b、601c)へのみ畳み込みが行われ、クロック配線(801a、801b、801c)を接続する。そして、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線802に最初に現れる第2ノード(バッファ602)から延伸し、第2ノード(バッファ602)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ602a)へのみ畳み込みが行われ、クロック配線(802a)を接続する。
【0019】
更に、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線803に最初に現れる第2ノード(バッファ603)から分岐し、第2ノード(バッファ603)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ603a、603b、603c)へのみ畳み込みが行われ、クロック配線(803a、803b、803c)を接続する。そして、任意の第1ノード(ルートドライバ700)から分岐した複数の配線801〜808のうちの配線804に最初に現れる第2ノード(バッファ604)から延伸し、第2ノード(バッファ604)へ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノード(バッファ604a)へのみ畳み込みが行われ、クロック配線(804a)を接続する。
【0020】
図1では、直交配線系850に加えて斜め配線系860を用いているため、配線808上のQ1のように直交配線系850のグリッドと斜め配線系860のグリッドが交わり、8方向に配線できるノードと、Q2のように直交配線系850のグリッドと斜め配線系860のグリッドが交わらず、4方向にのみ配線できるノードがある。「信号の入力方向から45度の角度以内の方向」とは、Q1のようなノードにおける信号の入力方向から0度の角度方向、45度の角度方向、−45度の角度方向を意味し、これらの3方向の配線のうち1以上の配線が分岐又は延伸する。「信号の入力方向から90度の角度以内の方向」とは、Q2のようなノードにおける信号の入力方向から0度の角度方向、90度の角度方向、−90度の角度方向を意味し、これらの3方向の配線のうち1以上の配線が分岐又は延伸する。この結果、目標遅延設定のため以外の迂回配線がなくなり、バッファ601〜604付近での配線の混雑が回避できるとともに、ラウタビリティが向上する。
【0021】
図2で本発明の第1の実施の形態に係るクロックレイアウトシステムを説明する。本発明の第1の実施の形態に係るクロックレイアウトシステムは、入力装置9、中央演算処理装置(CPU)100、出力装置17、インターフェイス15、ホストコンピュータ16、共通バス20を備える。CPU100は、クロック配線処理部1、第1ノード特定部2、次段ノード特定部3、次段ノード数カウント部4、第2ノード特定部14、第3ノード特定部5a、第3ノード確定部5b、畳み込み実行部11、伝播遅延調整部8を備える。畳み込み実行部11は、畳み込み対象削除部6、畳み込み配線処理部7を備える。更に、本発明の第1の実施の形態に係るクロックレイアウトシステムは、確定第3ノード角度条件記憶装置5c、回路情報記憶装置10、読み出し専用メモリ(ROM)18、ランダムアクセスメモリ(RAM)19を備える。
【0022】
入力装置9は、設計しようとする論理回路の回路情報をクロック配線処理部1に入力する。出力装置17は、CPU100で処理等されるデータを出力する。ホストコンピュータ16は、インターフェイス15を介して、出力装置17が出力するデータと同様のデータを保存し、モニター等に出力する。入力装置9、CPU100、出力装置17、インターフェイス15、ホストコンピュータ16、確定第3ノード角度条件記憶装置5c、回路情報記憶装置10、ROM18、RAM19は、共通バス20を介してデータのやり取りを行う。
【0023】
クロック配線処理部1は、入力装置9により入力された論理回路の回路情報を基に、半導体チップ上にルートドライバを配置し、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造でクロック配線を行う。ここで行うクロック配線は、設計上のクロック配線であり、現実にクロック配線を行う必要はない。第1ノード特定部2は、クロック配線処理部1により配置されたルートドライバを先ず第1ノードとする。例えば図3(a)に示すように、先ずルートドライバ701が第1ノードとなる。次段ノード特定部3は、第1ノード特定部2で特定された第1ノードから信号伝播方向に最初に現れるノードを、次段ノードとする。図3(a)では、第1ノード701から信号伝播方向に最初に現れるバッファが次段ノード400a、400b、・・・・・となる。次段ノード数カウント部4は、次段ノード特定部3で特定された次段ノードの数を数える。第2ノード特定部14は、次段ノード特定部3で特定された次段ノードのうち1の次段ノードを第2ノードとする。図3(a)では、次段ノード400aが第2ノードであるとする。第3ノード特定部5aは、畳み込みの後に第1ノードから第3ノードへ伝播するクロックの伝播遅延が少なくとも増加しないことを条件に、第2ノードとは異なる次段ノードから信号伝播方向に最初に現れるノードを第3ノードとする。図3(a)では、第2ノード400aとは異なる次段ノード400bから信号伝播方向に最初に現れるノード401bが第3ノードであるとする。
【0024】
「畳み込み」とは、図3(a)(b)に示すように、ルートドライバである第1ノード701から分岐した複数の配線40a、b、・・・・・のうちの第1配線40aに最初に現れるノード400aを第2ノードとして特定し、第1ノード701から分岐した複数の配線40a、b、・・・・・のうちの第1配線以外の配線40bに2番目に現れるノード401bを第3ノードとして特定した後、第1ノード701から第3ノード401bに至るまでの配線40b、41b及びノード400bを削除し、第2ノード400aにおいて第1配線41cから新たな配線41eを分岐させて、第3ノード401bへ接続することをいう。図3においては、第3ノードは1つであるが、第3ノードは複数であってもよい。この場合、第1ノード701から第3ノードに至るまでの配線及びノードを削除し、第2ノード400aにおいて第1配線41cから複数の新たな配線を分岐させて、第3ノードへそれぞれ接続する。
【0025】
「畳み込みの後に第1ノードから第3ノードへ伝播するクロックの伝播遅延が少なくとも増加しないこと」とは、例えば図3(b)のように畳み込みを行った場合、第1ノード701から配線40、40a、ノード400a、配線41c、配線41eを伝播して第3ノード401bに至るまでの伝播遅延が、図3(a)における第1ノード701から配線40、40b、ノード400b、配線41bを伝播してノード401bに至るまでの伝播遅延に比し増加しないことをいう。
【0026】
第3ノード確定部5bは、第3ノード特定部5aで特定した第3ノードが、確定第3ノード角度条件記憶装置5cに記憶された条件を満たす第3ノードを、確定第3ノードとする。例えば、第3ノード確定部5bで満たす条件が、「確定第3ノードは、第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する」である場合、第2ノード400aへ入力される信号の入力方向、即ち配線40aの方向から90度の角度以内の方向に存在する第3ノード401a、401b、・・・・・が確定第3ノードとなる。その他の条件として、「確定第3ノードは、第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する」等がある。又、これらの条件は、複数の条件の組み合わせでもよい。例えば、図1に示すQ1のように8方向に配線できるノードでは、確定第3ノードは、第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在し、かつQ2のように4方向にしか配線できないノードでは、確定第3ノードは、第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在するという条件でもよい。
【0027】
畳み込み実行部11は、第3ノード確定部5bで確定された確定第3ノードへ畳み込みを行う。この場合、第2ノード特定部14で特定された第2ノードが駆動できる電流容量を超えるときは、畳み込み実行部11は、畳み込みができないと判断し、先ず電流容量を超えない範囲で確定第3ノードへ畳み込みを行い、残りの確定第3ノードへは他の第2ノードから畳み込みが行われる。
【0028】
畳み込み対象削除部6は、第1ノードから分岐して確定第3ノードに至るまでの配線及び第1ノードから分岐して確定第3ノードに至るまでの配線上のノードを削除する。例えば図3(a)に示す第1ノード701から分岐して確定第3ノード401bに至るまでの配線40b、ノード400bを図3(b)のように削除する。畳み込み配線処理部7は、第2ノードから配線を分岐させて、確定第3ノードへ接続する。例えば図3(b)に示すように、第2ノード400aから配線41eを点Qで分岐させて、確定第3ノード401bへ接続することをいう。
【0029】
更に畳み込みの後に、第1ノード特定部2は、第2ノード特定部14により特定された第2ノードを新たな第1ノードとする。例えば図3(b)に示すように、畳み込みの後のノード400aを新たな第1ノードとすることをいう。ノード400aを新たな第1ノードとすることにより、次段ノードは図3(b)に示すノード401a、401bとなり、ノード401a、401bが畳み込みの対象となる。伝播遅延調整部8は、クロックの伝播遅延を調整してゼロスキューを実現する。
確定第3ノード角度条件記憶装置5cは、確定第3ノードが満たすべき角度条件が、記憶される。回路情報記憶装置10は、入力装置9により入力され、又はクロック配線処理部1によりクロック配線された論理回路の回路情報を記憶する。又、回路情報記憶装置10は、畳み込み実行部11により総ての畳み込みが終了した後の論理回路の回路情報を記憶する。ROM18は、システムを立ち上げる基本入出力システム(BIOS)を格納する。RAM19は、種々の情報、及び演算結果を記憶する。
【0030】
入力装置9により入力された回路情報、クロック配線処理部1によりクロック配線された論理回路の回路情報、畳み込み実行部11により総ての畳み込みが終了した後の論理回路の回路情報、回路情報記憶装置10に記憶されている回路情報を、出力装置17が出力する
畳み込み実行部11でノードを畳み込むことにより、ローカルエリアの数が多い場合であっても、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守りつつ、高集積密度でクロック配線を実現できるクロックレイアウトシステム、及びクロックレイアウト方法を提供することができる。第1ノード特定部2で畳み込み後の第2ノードを新たな第1ノードとすることにより、畳み込み後の信号伝播方向へ次々とノードの畳み込みを行うことができ、畳み込みが可能なノードの総てを畳み込むことができる。第3ノード特定部5aで畳み込みが可能なノードを特定することにより、信号の伝播遅延を増加させずに確実に畳み込みを行うことができ、畳み込み後の誤動作を回避できる。第3ノード確定部5bで畳み込む第3ノードを確定することにより、セグメント及びノードの数が削減され、チップ内の面積利用効率が増大し、消費電力が低減される。伝播遅延調整部8で伝播遅延を調整することにより、クロック配線後の誤作動を回避できる。
【0031】
図2を参照しながら、図4のフローチャートで本発明の第1の実施の形態に係るクロックレイアウト方法を説明する。
【0032】
(イ)先ずステップS201において、入力装置9により、設計しようとする論理回路の回路情報が入力される。例えば、図3(a)に示す論理回路の回路情報が入力される。
【0033】
(ロ)ステップS202において、クロック配線処理部1は、入力装置9により入力された論理回路の回路情報を基に、半導体チップ上にルートドライバを配置し、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造でクロック配線を行う。即ち、グローバルエリアにおいて、図9(c)に示すように半導体チップ上に設けられたルートドライバ702から複数の配線71a〜76aを分岐し、スター型のクロック配線が行われる。
【0034】
(ハ)ステップS203において、クロック配線処理部1によりクロック配線された後の論理回路の回路情報を基に、第1ノード特定部2によりルートドライバが第1ノード701とされる。
【0035】
(ニ)ステップS204において、第1ノード701から複数の配線40a、40b、・・・・・に沿って信号伝播方向に最初にそれぞれ現れるノード400a、400b、・・・・・が次段ノードとして次段ノード特定部3により特定される。
【0036】
(ホ)ステップS205において、次段ノード数カウント部4により、次段ノード特定部3で特定された次段ノード400a、400b、・・・・・の数が数えられる。
【0037】
(へ)カウントされた次段ノード400a、400b、・・・・・が2つ以上ある場合は、ステップS206において、第2ノード特定部14は次段ノード400a、400b、・・・・・のうち1の次段ノード400aを第2ノードとする。
【0038】
(ト)ステップS207aにおいて、畳み込み後に第1ノードから第3ノードへ伝播するクロックの伝播遅延が少なくとも増加しないことを条件に、第3ノード特定部5aは図3(a)に示す第2ノード400aとは異なる次段ノード400bから信号伝播方向に最初に現れるノード401bが第3ノードとして特定される。
【0039】
(チ)第3ノードが特定された場合は、ステップS207bにおいて、第3ノード確定部5bで、確定第3ノード角度条件記憶装置5cに記憶された条件を満たす第3ノードを、確定第3ノードを確定する。
【0040】
(リ)ステップS208aにおいて、畳み込み対象削除部6により第1ノード701から分岐して確定第3ノード401bに至るまでの配線40b、41b及びノード400bが削除される。
【0041】
(ヌ)そしてS208bにおいて、畳み込み配線処理部7により第2ノード400aから配線41d、41eに分岐して、配線41eを確定第3ノード401bへ接続する。
【0042】
(ル)確定第3ノードへ畳み込まれた場合は、ステップS211において、第2ノード400aが第1ノード特定部2により新たな第1ノードとされる。
【0043】
(ヲ)新たな第1ノードを用いて更にステップS204〜S208を繰り返し、ステップS211を経由して信号伝播方向へ次々とノードが畳み込まれ、総ての畳み込みが可能なノードが畳み込まれる。
【0044】
(ワ)ステップS207aにおいて、第3ノード特定部5aにより第3ノードが特定されなかった場合、ステップ207bにおいて、確定第3ノードが確定されなかった場合は、ステップS209において、伝播遅延調整部8で伝播遅延調整が行われる。
【0045】
(カ)そして最終的に、ステップS210において、クロック配線処理部1によりクロック配線される。
【0046】
これにより、ルートドライバのみならず畳み込み後のノードからも、配線が分岐するため、ローカルエリアの数が多くなっても、ルートドライバからローカルエリアへの分岐の数の制限及びエレクトロマイグレーションの制約を超えることなくクロック配線処理を行うことができる。更に、セグメント、ノードの数が削減されることにより、チップ内の面積利用効率が増大し、消費電力が低減される。
【0047】
(第2の実施の形態)
図5(b)に示すように、本発明の第2の実施の形態に係るクロック配線は、任意のノードP5とこの任意のノードの次に信号が伝達される次段ノードP6を結ぶ直線方向F1から90度未満の角度の配線方向の配線L7、L10、L11、L12からなる、目標遅延を設定のための迂回クロック配線である。即ち、図5(c)に示すF2、F3、F4、F9方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。F2、F3、F4、F9方向の配線は平行でないため、平行でない迂回クロック配線で目標遅延を設定でき、配線容量の増加、信号の立ち上がり特性の低下を防ぐことができる。直交配線系850に加えて、図1に示す斜め配線系860を用いる場合は、任意のノードP5とこの任意のノードの次に信号が伝達される次段ノードP6を結ぶ直線方向F1の象限である第4象限にある配線方向のうち何れかの組み合わせでクロックの伝播遅延を調整することが望ましい。即ち、図5(c)に示すF2、F3、F4方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。
【0048】
図5(b)に示すように、配線方向F2、F3、F4の配線でクロックの伝播遅延を調整した結果、ノードP5とノードP6を最短距離で結んだ配線L7、L8、L9に比し、Q3、P6間で冗長性がある。直交配線系850のグリッドの単位長さをLとすると、この冗長性は(2−21/2)Lとなる。このように冗長性を持たせても、近接しない配線L10、L11、L12によりクロックの伝播遅延を調整できる。この結果、配線L10、L11、L12による配線容量の増加を抑えることができ、ノードP5、P6間を伝播する信号の立ち上がり特性の低下を防止しつつ、更に配線占有面積を増大させることなくクロックの伝播遅延を調整できる。
【0049】
図6で本発明の第2の実施の形態に係るクロックレイアウトシステムを説明する。本発明の第2の実施の形態に係るクロックレイアウトシステムは、入力装置900、中央演算処理装置(CPU)101、出力装置901、インターフェイス46、ホストコンピュータ47、共通バス910を備える。CPU101は、グルーピング部21、グループ容量/遅延時間算定部22、重心点算定部23、バッファセル配置部24、最大容量モーメント/最長遅延時間算定部25、容量モーメント差/遅延時間差算定部26、配線方向決定部27、配線比率算定部28、配線処理部29を備える。更に、本発明の第2の実施の形態に係るクロックレイアウトシステムは、グループ記憶装置902、グループ容量/遅延時間記憶装置903、重心点記憶装置904、バッファセル位置記憶部906、最大容量モーメント/最長時間記憶装置905、配線比率記憶装置45、容量モーメント差/遅延時間差記憶装置907、配線方向記憶装置908、F/F情報記憶装置909、読み出し専用メモリ(ROM)48、ランダムアクセスメモリ(RAM)49を備える。
【0050】
入力装置900は、設計しようとする論理回路のフリップフロップ(F/F)情報を入力する。出力装置901は、CPU101で処理等されるデータを出力する。ホストコンピュータ47は、インターフェイス46を介して、出力装置901が出力するデータと同様のデータを保存し、モニター等に出力する。入力装置900、CPU101、出力装置901、インターフェイス46、ホストコンピュータ47、グループ記憶装置902、グループ容量/遅延時間記憶装置903、重心点記憶装置904、バッファセル位置記憶部906、最大容量モーメント/最長時間記憶装置905、配線比率記憶装置45、容量モーメント差/遅延時間差記憶装置907、配線方向記憶装置908、F/F情報記憶装置909、読み出し専用メモリ(ROM)48、ランダムアクセスメモリ(RAM)49は、共通バス910を介してデータのやり取りを行う。
【0051】
グルーピング部21は、入力装置900により入力された設計しようとする論理回路のF/F情報から2以上のF/F又は既にバランス木で結線された2以上のF/F群をグループ化する。グループ容量/遅延時間算定部22は、グルーピング部21によりグループ化された各グループの容量又は信号の伝播遅延時間を算定する。容量には、F/Fの入力容量や配線容量が含まれる。
【0052】
重心点算定部23は、各グループの容量モーメント又は信号の伝播遅延時間が等しくなるような点(重心点)の位置を算定する。重心点の位置の算定は以下のように行う。図8に示すように、グルーピング部21により4つにグループ化された場合、各グループの容量をC1、C2、C3、C4とし、全体の重心点G5から各グループの重心点G1、G2、G3、G4へのユークリッド距離をD1、D2、D3、D4とすると、式(1)が成り立つ。
【0053】
D1×C1=D2×C2=D3×C3=D4×C4 ・・・・・(1)
式(1)を満たすG5の位置が全体の重心点となる。即ち、総ての容量モーメント(DX×CX)が等しくなる点が全体の重心点となる。又、重心点G5から各グループのF/Fへ到達する信号の伝播遅延時間が等しくなるようなG5の位置を全体の重心点としてもよい。
【0054】
バッファセル配置部24は、重心点から直近かつ適切な位置に、バッファセルを配置する。図8における重心点G5の位置は配線上にない。よって、重心点G5から直近かつ直交配線系850のグリッド及び斜め配線系860のグリッドの交点である点G6にバッファセル777を配置する。
【0055】
最大容量モーメント/最長遅延時間算定部25は、バッファセル配置部24により配置されたバッファセルから各グループの重心点へ、現実に可能な最短の配線で結線した場合における、各グループの容量モーメント又はF/Fへの遅延時間のうち、最大又は最長のものを算定する。例えば図8において、バッファセル777から各グループの重心点G1〜G4へ、直交配線系850及び斜め配線系860を用いて、最短距離の配線K1、K2、K3、K4で結線したとする。この場合、最大容量モーメント/最長遅延時間算定部25は、各グループの容量モーメント(D1×C1、D2×C2、D3×C3、D4×C4)又は各グループのF/Fへの遅延時間のうち、最大又は最長のものを算定する。容量モーメント差/遅延時間差算定部26は、最大容量モーメント/最長遅延時間算定部25で算定された最大容量モーメント又は最長遅延時間と、その他の経路における容量モーメント又は遅延時間の差を算定する。例えば図8において、配線K2で容量モーメントD2×C2が最大になったとする。この場合、容量モーメント差/遅延時間差算定部26は、配線K1、K3、K4の容量モーメントと配線K2の容量モーメントの差を算定する。
【0056】
配線方向決定部27は、各配線におけるクロックの伝播遅延を調整する配線を決定する。決定される配線方向は、結線するノード間の直線方向から90度未満の角度の方向のうち何れかの組み合わせである。例えば図5(b)に示すように、任意のノードP5とこの任意のノードの次に信号が伝達される次段ノードP6を結ぶ直線方向F1から90度未満の角度方向のうち何れかの組み合わせを決定する。即ち、図5(c)に示すF2、F3、F4、F9方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。直交配線系850に加えて、図1に示す斜め配線系860を用いる場合は、ノードP5とノードP6を結ぶ直線方向F1の象限である第4象限にある配線方向のうち何れかの組み合わせでクロックの伝播遅延を調整することが望ましい。即ち、図5(c)に示すF2、F3、F4方向の配線のうち何れかの組み合わせを用いて、クロックの伝播遅延を調整する。
【0057】
配線比率算定部28は、クロックの伝播遅延を調整するため、配線方向決定部27で決定された配線方向にどの程度の比率で配線するかを算定する。例えば図5(c)に示すように、F2、F3、F4方向の配線でクロックの伝播遅延を調整した結果、ノードP5とノードP6を最短距離で結んだ配線L7、L8、L9に比し、Q3、P6間で冗長性がある。直交配線系850のグリッドの単位長さをLとすると、この冗長性は(2−21/2)Lとなる。よってL12の配線長をδLとすると、冗長性を設けた後の配線長は(2−21/2)δL増加するため、容量モーメントは、C6×(2−21/2)δL増加する(P6を重心とするグループの容量をC6とする)。このように、L12の配線比率δを調整することにより、容量モーメント又は遅延時間を調整することができる。このように冗長性を持たせても、近接しない配線L10、L11、L12によりクロックの伝播遅延を調整できる。この結果、配線L10、L11、L12による配線容量の増加を抑えることができ、ノードP5、P6間を伝播する信号の立ち上がり特性の低下を防止しつつ、更に配線占有面積を増大させることなくクロックの伝播遅延を調整できる。
【0058】
配線処理部29は、配線比率算定部28により算定された配線比率に基づき、基板上に最適配線を行う。
【0059】
グループ記憶装置902は、グルーピング部21でグループ化されたF/F情報を記憶する。グループ容量/遅延時間記憶装置903は、グループ容量/遅延時間算定部22により算定された各グループ容量又は信号の伝播遅延時間を記憶する。重心点記憶装置904は、重心点算定部23により算定された重心点の位置を記憶する。バッファセル位置記憶部906は、バッファセル配置部24により配置されたバッファセルの位置を記憶する。最大容量モーメント/最長時間記憶装置905は、最大容量モーメント/最長遅延時間算定部25で算定された最大容量モーメント又は最長時間を記憶する。容量モーメント差/遅延時間差記憶装置907は、容量モーメント差/遅延時間差算定部26で算定された容量モーメント又は遅延時間の差を記憶する。配線方向記憶装置908は、配線方向決定部27により決定された配線方向を記憶する。配線比率記憶装置45は、配線比率算定部28により算定された配線比率を記憶する。F/F情報記憶装置909は、入力装置900により入力されたF/F情報を記憶する。ROM18は、システムを立ち上げる基本入出力システム(BIOS)を格納する。RAM19は、種々の情報、及び演算結果を記憶する。
【0060】
図6、図8を参照しながら、図7のフローチャートで本発明の第2の実施の形態に係るクロックレイアウト方法を説明する。
【0061】
(イ)先ずステップS300において、入力装置900が設計しようとする論理回路のF/F情報を入力する。ステップS301において、グルーピング部21はF/F群をグループ化する。
【0062】
(ロ)ステップS302において、グループ容量/遅延時間算定部22は、グルーピング部21によりグループ化された各グループの容量又は信号の伝播遅延時間を算定する。
【0063】
(ハ)ステップS303において、重心点算定部23は、各グループの重心点G5の位置を算定する。ステップS304において、バッファセル配置部24は、重心点G5から直近かつ適切な位置にバッファセル777を配置する。
【0064】
(ニ)ステップS305において、最大容量モーメント/最長遅延時間算定部25は、バッファセル配置部24により配置されたバッファセル777から各グループの重心点G1〜G4へ、最短の配線K1〜K4で結線した場合における、各グループの容量モーメント又はF/Fへの遅延時間のうち、最大又は最長のものを算定する。
【0065】
(ホ)ステップS306において、容量モーメント差/遅延時間差算定部26は、最大容量モーメント/最長遅延時間算定部25で算定された最大容量モーメント又は最長遅延時間と、その他の経路における容量モーメント又は遅延時間の差を算定する。
【0066】
(へ)ステップS307において、配線方向決定部27は、各配線におけるクロックの伝播遅延を調整する配線方向を決定する。ステップS308において、配線比率算定部28は、クロックの伝播遅延を調整するため、配線方向決定部27で決定された配線方向にどの程度の比率で配線するかを算定する。
【0067】
(ト)ステップS309において、配線処理部29は、配線比率算定部28により算定された配線比率に基づき、バッファセル777から各グループへ配線を行う。
【0068】
(その他の実施の形態)
本発明の第1の実施の形態及び第2の実施の形態では、バッファを用いたが、リピータであればよい。「リピータ」とは、配線上を流れる信号の再生及び中継を行う素子をいう。
【0069】
【発明の効果】
以上説明したように、本発明によれば、ローカルエリアの数が多い場合にも、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守り、ラウタビリティを向上させ、高集積密度かつ低消費電力で信号の立ち上がり特性の低下を防ぎつつゼロスキューを実現できるクロック配線、クロックレイアウトシステム、及びクロックレイアウト方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るクロック配線の概略を示す図である。
【図2】本発明の第1の実施の形態に係るクロックレイアウトシステムの概略を示す図である。
【図3】(a)は、畳み込み前のクロック配線の概略を示す図である。(b)は、畳み込み後のクロック配線の概略を示す図である。(c)は、中間ノードを削除した後のクロック配線の概略を示す図である。
【図4】本発明の第1の実施の形態に係るクロックレイアウト方法を説明するためのフローチャートである。
【図5】(a)は、直交配線のみでクロックの伝播遅延を調整する迂回配線の概略を示す図である。(b)は、本発明の第2の実施の形態に係るクロック配線の概略を示す図である。(c)は、配線方向を示す図である。
【図6】本発明の第2の実施の形態に係るクロックレイアウトシステムの概略を示す図である。
【図7】本発明の第2の実施の形態に係るクロックレイアウト方法を説明するためのフローチャートである。
【図8】F/Fの各グループの重心点近傍から配線したクロック配線を示す図である。
【図9】(a)は、Hツリー型の構造を用いたクロック配線の概略を示す図である。(b)は、スター型の構造を用いたクロック配線の概略を示す図である。(c)は、Hツリー型とスター型の構造を併用したクロック配線の概略を示す図である。
【符号の説明】
1 クロック配線処理部
2 第1ノード特定部
3 次段ノード特定部
4 次段ノード数カウント部
5a 第3ノード特定部
5b 第3ノード確定部
5c 確定第3ノード角度条件記憶装置
6 畳み込み対象削除部
7 畳み込み配線処理部
8 伝播遅延調整部
9,900 入力装置
10 回路情報記憶装置
11 畳み込み実行部
14 第2ノード特定部
15,46 インターフェイス
16,47 ホストコンピュータ
17,901 出力装置
18,48 ROM
19,49 RAM
20,901 共通バス
21 グルーピング部
22 グループ容量/遅延時間算定部
23 重心点算定部
24 バッファセル配置部
25 最大容量モーメント/最長遅延時間算定部
26 容量モーメント差/遅延時間差算定部
27 配線方向決定部
28 配線比率算定部
29 配線処理部
45 配線比率記憶装置
100,101 CPU
902 グループ記憶装置
903 グループ容量/遅延時間記憶装置
904 重心点記憶装置
905 最大容量モーメント/最長時間記憶装置
906 バッファセル位置記憶部
907 容量モーメント差/遅延時間差記憶装置
908 配線方向記憶装置
909 F/F情報記憶装置
Claims (16)
- 集積回路のクロック配線において、任意の第1ノードと、
該第1ノードから分岐した複数の配線と、
該複数の配線のうちの第1配線に最初に現れる第2ノードと、
前記第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する第3ノードへのみ接続する配線とを備えることを特徴とするクロック配線。 - 集積回路のクロック配線において、任意の第1ノードと、
該第1ノードから分岐した複数の配線と、
該複数の配線のうちの第1配線に最初に現れる第2ノードと、
前記第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する第3ノードへのみ接続する配線とを備えることを特徴とするクロック配線。 - 集積回路のクロック配線において、任意のノードと、
前記任意のノードの次に信号が伝達される次段ノードと、
前記任意のノードと前記次段ノードを結ぶ直線方向から90度未満の角度の配線方向の配線のうち何れかの組み合わせからなる、目標遅延設定のための迂回クロック配線。 - 集積回路のクロック配線において、任意のノードと、
前記ノードの次に信号が伝達される次段ノードと、
前記任意のノードと前記次段ノードを結ぶ直線方向の象限にある配線方向の配線からなる、目標遅延設定のための迂回クロック配線。 - 論理回路の回路情報を入力する入力装置と、
前記回路情報を基に、半導体チップ上にルートドライバを配置し、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造でクロック配線を行うクロック配線処理部と、
前記論理回路の任意の第1ノードから分岐した複数の配線のうちの第1配線に最初に現れるノードを第2ノードとして特定する第2ノード特定部と、
前記第1ノードから分岐した複数の配線のうちの前記第1配線以外の配線に2番目に現れるノードを第3ノードとして特定する第3ノード特定部と、
前記第3ノードのうち、確定第3ノードを確定する第3ノード確定部と、
前記第1ノードから前記確定第3ノードに至るまでの配線及びノードを畳み込む畳み込み実行部
とを含むことを特徴とするクロックレイアウトシステム。 - 前記第3ノード確定部は、前記第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する前記第3ノードのみを前記確定第3ノードとすることを特徴とする請求項5に記載のクロックレイアウトシステム。
- 前記第3ノード確定部は、前記第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する前記第3ノードのみを前記確定第3ノードとすることを特徴とする請求項5に記載のクロックレイアウトシステム。
- 論理回路の回路情報を入力する入力装置と、
前記論理回路中の任意のノードと前記ノードの次に信号が伝達される次段ノードを結ぶために用いる配線方向を決定する配線方向決定部と、
容量モーメント又は遅延時間が等しくなるように前記配線方向の配線比率を算定する配線比率算定部
とを含むことを特徴とするクロックレイアウトシステム。 - 前記配線方向決定部は、前記ノードと前記次段ノードを結ぶ直線方向から90度未満の角度の配線方向のうち何れかの組み合わせを前記配線方向とすることを特徴とする請求項8に記載のクロックレイアウトシステム。
- 前記配線方向決定部は、前記ノードと前記次段ノードを結ぶ直線方向の象限にある配線方向のうち何れかの組み合わせを前記配線方向とすることを特徴とする請求項8に記載のクロックレイアウトシステム。
- 論理回路の回路情報を入力するステップと、
前記回路情報を基に、半導体チップ上にルートドライバを配置し、ローカルエリアではHツリー型の構造で、グローバルエリアではスター型の構造で初期クロック配線を形成するステップと、
前記初期クロック配線の任意の第1ノードから分岐した複数の配線のうちの第1配線に最初に現れるノードを第2ノードとして特定するステップと、
前記第1ノードから分岐した複数の配線のうちの前記第1配線以外の配線に2番目に現れるノードを第3ノードとして特定するステップと、
前記第3ノードのうち、確定第3ノードを確定するステップと、
前記第1ノードから前記確定第3ノードに至るまでの配線及びノードを畳み込むステップ
とを含むことを特徴とするクロックレイアウト方法。 - 前記第3ノードを確定するステップは、前記第2ノードへ入力される信号の入力方向から90度の角度以内の方向に存在する前記第3ノードのみを前記確定第3ノードとするステップであることを特徴とする請求項11に記載のクロックレイアウト方法。
- 前記第3ノードを確定するステップは、前記第2ノードへ入力される信号の入力方向から45度の角度以内の方向に存在する前記第3ノードのみを前記確定第3ノードとするステップであることを特徴とする請求項11に記載のクロックレイアウト方法。
- 論理回路の回路情報を入力するステップと、
前記論理回路中の任意のノードと前記ノードの次に信号が伝達される次段ノードを結ぶために用いる配線方向を決定するステップと、
容量モーメント又は遅延時間が等しくなるように前記配線方向の配線比率を算定するステップ
とを含むことを特徴とするクロックレイアウト方法。 - 前記配線方向を決定するステップは、前記ノードと前記次段ノードを結ぶ直線方向から90度未満の角度の配線方向のうち何れかの組み合わせを前記配線方向とするステップであることを特徴とする請求項14に記載のクロックレイアウト方法。
- 前記配線方向を決定するステップは、前記ノードと前記次段ノードを結ぶ直線方向の象限にある配線方向のうち何れかの組み合わせを前記配線方向とするステップであることを特徴とする請求項14に記載のクロックレイアウト方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003081321A JP2004289007A (ja) | 2003-03-24 | 2003-03-24 | クロック配線、クロックレイアウトシステム及びクロックレイアウト方法 |
TW093107046A TW200424887A (en) | 2003-03-24 | 2004-03-17 | Integrated circuit device, clock layout system, clock layout method, and memory media of clock layout program |
US10/805,006 US20040237060A1 (en) | 2003-03-24 | 2004-03-18 | Integrated circuit device, clock layout system, clock layout method, and clock layout program |
CNA2004100326303A CN1532935A (zh) | 2003-03-24 | 2004-03-24 | 集成电路装置、时钟配置系统、时钟配置方法及时钟配置程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003081321A JP2004289007A (ja) | 2003-03-24 | 2003-03-24 | クロック配線、クロックレイアウトシステム及びクロックレイアウト方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004289007A true JP2004289007A (ja) | 2004-10-14 |
Family
ID=33294926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003081321A Abandoned JP2004289007A (ja) | 2003-03-24 | 2003-03-24 | クロック配線、クロックレイアウトシステム及びクロックレイアウト方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040237060A1 (ja) |
JP (1) | JP2004289007A (ja) |
CN (1) | CN1532935A (ja) |
TW (1) | TW200424887A (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004049745A1 (de) * | 2004-10-13 | 2006-04-27 | Infineon Technologies Ag | Verfahren zum rechnergestützten Ermitteln einer Taktbaumstruktur sowie integrierte Halbleiterschaltung |
US7475374B1 (en) | 2005-12-20 | 2009-01-06 | Advanced Micro Devices, Inc. | Clock grid driven by virtual leaf drivers |
US20070180310A1 (en) * | 2006-02-02 | 2007-08-02 | Texas Instruments, Inc. | Multi-core architecture with hardware messaging |
JP2007300067A (ja) * | 2006-04-07 | 2007-11-15 | Toshiba Corp | 半導体集積回路装置およびその設計方法 |
US8094052B2 (en) | 2007-05-03 | 2012-01-10 | Qualcomm, Incorporated | Circuit and method for dynamically selecting circuit elements |
US7941689B2 (en) * | 2008-03-19 | 2011-05-10 | International Business Machines Corporation | Minimizing clock uncertainty on clock distribution networks using a multi-level de-skewing technique |
US8356264B2 (en) | 2010-10-28 | 2013-01-15 | International Business Machines Corporation | Implementing enhanced clock tree distributions to decouple across N-level hierarchical entities |
CN103513208B (zh) * | 2012-06-29 | 2016-06-29 | 中国船舶重工集团公司第七0九研究所 | 一种皮秒级集成电路测试系统总定时偏差校准的误差补偿方法 |
US8643525B1 (en) | 2013-01-03 | 2014-02-04 | Avnera Corporation | Multiple output dynamic element matching algorithm with mismatch noise shaping for digital to analog converters |
US20200210545A1 (en) * | 2019-01-02 | 2020-07-02 | International Business Machines Corporation | Construction of staging trees on fully hierarchical vlsi circuit designs |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59198733A (ja) * | 1983-04-26 | 1984-11-10 | Mitsubishi Electric Corp | 半導体集積回路装置 |
FR2702595B1 (fr) * | 1993-03-11 | 1996-05-24 | Toshiba Kk | Structure de câblage multicouche. |
JP2877128B2 (ja) * | 1997-02-13 | 1999-03-31 | 日本電気株式会社 | レイアウト方法及び装置 |
US6262487B1 (en) * | 1998-06-23 | 2001-07-17 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device, semiconductor integrated circuit wiring method, and cell arranging method |
JP3822009B2 (ja) * | 1999-11-17 | 2006-09-13 | 株式会社東芝 | 自動設計方法、露光用マスクセット、半導体集積回路装置、半導体集積回路装置の製造方法、および自動設計プログラムを記録した記録媒体 |
JP2002312414A (ja) * | 2001-04-13 | 2002-10-25 | Toshiba Corp | 半導体集積回路装置のレイアウト設計システム、配線設計方法、配線設計プログラム及び半導体集積回路装置の製造方法 |
JP4118536B2 (ja) * | 2001-07-03 | 2008-07-16 | 株式会社東芝 | クロック遅延設定方法 |
-
2003
- 2003-03-24 JP JP2003081321A patent/JP2004289007A/ja not_active Abandoned
-
2004
- 2004-03-17 TW TW093107046A patent/TW200424887A/zh unknown
- 2004-03-18 US US10/805,006 patent/US20040237060A1/en not_active Abandoned
- 2004-03-24 CN CNA2004100326303A patent/CN1532935A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN1532935A (zh) | 2004-09-29 |
US20040237060A1 (en) | 2004-11-25 |
TW200424887A (en) | 2004-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4577276A (en) | Placement of components on circuit substrates | |
JP4576538B2 (ja) | 多次元のスイッチトポロジーを有する集積回路 | |
JPH0766718A (ja) | プログラム可能論理用ウェファ・スケール構造 | |
JP2004289007A (ja) | クロック配線、クロックレイアウトシステム及びクロックレイアウト方法 | |
US20200076744A1 (en) | Fast scheduling and optmization of multi-stage hierarchical networks | |
US20160261525A1 (en) | Optimization of multi-stage hierarchical networks for practical routing applications | |
CN111125981A (zh) | 一种集成电路vlsi的布线方法 | |
US20180131636A1 (en) | AUTOMATIC MULTI-STAGE FABRIC GENERATION FOR FPGAs | |
EP1433257B1 (en) | A reconfigurable integrated circuit with a scalable architecture | |
CN111753484B (zh) | 一种基于电路性能的多裸片结构fpga的布局方法 | |
US7498840B2 (en) | Reconfigurable integrated circuits with scalable architecture including one or more adders | |
JP2877083B2 (ja) | 回路設計の最適化装置 | |
Bekhale et al. | Reconfiguration strategies for VLSI processor arrays and trees using a modified Diogenes approach | |
US7768301B2 (en) | Reconfigurable integrated circuits with scalable architecture including a plurality of special function elements | |
JP3231728B2 (ja) | 半導体集積回路のクロック分配レイアウト方法 | |
Chang et al. | An architecture-driven metric for simultaneous placement and global routing for FPGAs | |
JP2004054598A (ja) | クロックレイアウトシステム、及びクロックレイアウト方法 | |
Boros et al. | Unconstrained multilayer switchbox routing | |
JP3512757B2 (ja) | レイアウト設計における最適化方法 | |
CN117574849A (zh) | 芯片设计优化方法、装置、电子设备及存储介质 | |
JP3127877B2 (ja) | 配線容量算出装置 | |
Zhu et al. | On Minimizing Clock Skew During FPGA Place ment | |
JP2974398B2 (ja) | 自動配線方式 | |
Meng et al. | A Study of Reconfigurable Switch Architecture for Chiplets Interconnection | |
JP2004241699A (ja) | 半導体集積回路装置の設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050622 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20061106 |