JP4676123B2 - H形木構造クロックレイアウトのシステムと方法 - Google Patents

H形木構造クロックレイアウトのシステムと方法 Download PDF

Info

Publication number
JP4676123B2
JP4676123B2 JP2001554227A JP2001554227A JP4676123B2 JP 4676123 B2 JP4676123 B2 JP 4676123B2 JP 2001554227 A JP2001554227 A JP 2001554227A JP 2001554227 A JP2001554227 A JP 2001554227A JP 4676123 B2 JP4676123 B2 JP 4676123B2
Authority
JP
Japan
Prior art keywords
circuit block
circuit
block group
clock
blocks
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.)
Expired - Fee Related
Application number
JP2001554227A
Other languages
English (en)
Other versions
JP2003521044A (ja
Inventor
ローレンス・エイチ・クック
クマー・ベンカトラマニ
Original Assignee
ケイデンス・デザイン・システムズ・インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ケイデンス・デザイン・システムズ・インコーポレーテッド filed Critical ケイデンス・デザイン・システムズ・インコーポレーテッド
Publication of JP2003521044A publication Critical patent/JP2003521044A/ja
Application granted granted Critical
Publication of JP4676123B2 publication Critical patent/JP4676123B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

【0001】
関連出願に関する前後参照
この出願は2000年1月18日出願の同時係属米国仮出願第60/177,048号の継続出願である。前記出願をここに充分に記載しているように参照によりここに導入している。
【0002】
発明の背景
発明の技術分野
この発明はエレクトロニックデザインオートメーション(電子工学設計自動制御)に関し、特に、集積回路用のH形木構造クロックレイアウトを作成するための方法およびシステムに関する。
【0003】
背景技術
集積回路(ICs)の設計は、多くの場合、機能的特性、信号特性(例えばアナログやデジタル等)または他の区別する特徴に基いて、小区分に分割されることができる。さらに、しばしば所有権の特徴を提案する知的財産権(IPs)と呼ばれる予め形成された「仮想」の素子ブロックを用いて、チップ上に完全なシステムを設計することは、チップの設計において益々一般的になりつつある。ほとんどのチップ設計は、チップのすべての回路ブロック(または仮想の素子ブロック)に分配される共通のクロック信号を必要とする。クロック信号は典型的にはチップの(クロック入出力I/Oピンに対応する)信号位置から入力され、金属線を介してI/Oパッドからクロック信号の使用を必要とするすべての回路ブロック(または仮想の素子ブロック)に付与される。しかし、クロック線の ad hoc レイアウトは不都合である。なぜなら、このようなレイアウトは、通常はクロック信号経路の種々の分枝に沿って不均一なインピーダンス特性をもたらすからである。その結果、異なる回路ブロック(および仮想の素子ブロック)は、時間の異なる瞬間において同じクロック信号を受信し、クロック信号は異なる回路ブロック(または仮想の素子ブロック)において異なる歪特性を有することになるであろう。この場合、不満足なチップ特性をもたらすことになる。
【0004】
上記異なるクロック信号分枝路における不均一なインピーダンス特性の問題を解消するための1つの技法は、平衡H形木構造のクロック信号レイアウトを構成することである。平衡H形木構造のレイアウトでは、クロック信号を搬送するための一組の配線が、回路ブロック(または仮想の素子)を配置する前に木構造内に設けられる。クロック信号のレイアウトの形状は、クロック信号線の各分割部または分離部が理想的な長さの2本の分枝路内に導入されるように構成される。その結果、クロック信号経路の各分枝は同じインピーダンス特性を有することになり、平衡クロック信号を達成している。しかし、従来の平衡H形木構造レイアウトを使用することの問題点としては、配線の組が回路ブロック(または仮想の素子ブロック)を配置する前に固定され、したがって回路ブロック(または仮想の素子ブロック)を配置することを困難でかつ不便なものとし、ときには所望の回路ブロック(または仮想の素子ブロック)のすべてを配置することができなくなることである。
【0005】
そこで、順応性があり、回路ブロックまたは仮想の素子ブロックの配置に不都合な制約を設けないで、しかも均一な平衡クロック信号を提供するクロック信号用の平衡H形木構造レイアウトを提供することができれば好都合である。
【0006】
発明の概要
本発明は、1態様において、特に、集積回路におけるクロック信号に適用することによく適し、ただし、同じかまたは他の状況において、広い領域に渡って平衡分配を必要とする他の信号に対しても適用可能である平衡H形木構造を作成するためのシステムと方法を提供する。
【0007】
ここで開示の好ましい実施例では、回路ブロックの数が2の累乗(好ましくは16個以下の回路ブロック)を有する回路設計が提供される。回路ブロックは等しい数(例えば4個)の回路ブロックグループに分割される。上部のH形木クロック構造は、ガイドポストとしての各回路ブロックグループの集合体の中心を用いて設定され、配線長さの調整を行ってH形木構造の平衡処理を行う。下部のH形木クロック構造は、クロック線の終点のガイドポストとしての隣接または近接の回路ブロックグループの複数組の間の中心点を用いて設定され、必要に応じて個々の回路ブロックに対する配線区分を経路設定する。
さらに、種々の実施例、変形例および補強例もまたここで説明される。
【0008】
発明を実施するための好ましい形態
ここでは種々の実施例が一般的な意味での回路ブロックを用いて構成された集積回路を参照して説明しているが、ここに含まれる原理は、仮想の素子ブロック又は任意の他の形体の回路ブロック、または任意の回路/素子ブロックの混合形体により構成された回路およびシステムに適用され、本発明は特定の形体の回路ブロックに限定されることを意図していなことを理解すべきである。ここで述べる技術は、複数の仮想素子が共に配置されて単一のチップ上に凝集したシステムを形成する環境に特によく適している。
【0009】
ここで述べる1つまたは複数の実施例では、集積回路でのクロック信号への適用に特に好適な平衡H形木構造を構成するためのシステムと方法が提供されている。種々の実施例では、クロック配線のレイアウトは、回路ブロックの初期的または予備の配置が実行された後で行われ、回路ブロックが配置可能な場所に関してより高い度合の順応性を可能にしている。
【0010】
特に有用な形体の回路ブロックは仮想素子ブロックと呼んでもよい。仮想素子ブロックは、典型的には、特別な回路設計に望ましい抽象化の水準に基いて、多数の工程を含むことができる設計処理の一部として生成される。チップの設計者はしばしば電子設計自動制御(EDA)ソフトウェアツールを使用して設計処理を補佐し、原型化または製作の前にチップ設計のシミュレーションを可能にしている。EDAソフトウェアツールを使用したチップの設計は一般に反復処理を含み、チップ設計は徐々に完成される。典型的には、チップの設計者は、通常、必要な回路設計の部分を表示できる高品質のグラフィック性能を有するコンピュータ作業場で情報を入力することにより、回路を作成している。包括的な設計の方法論が一般に採用され、Verilog または VHDL などのハードウェア記述言語(HDLs)を使用し、例えば、設計者はこれによって回路の機能的要素を階層的に規定し、各要素をさらにより小さな要素に分解することにより、集積回路を作成する。
【0011】
集積回路の種々の要素はそれらの機能的動作と関連する入力および出力により最初に規定される。設計者は、また、基盤設計ツールを用いて回路の素子の配置についての基礎の構造的な情報を提供してもよい。これらの設計状態の間、設計者は通常はかなりの量の階層情報を使用して回路を構成し、そして典型的には設計における実質的な規則性を提供している。
【0012】
HDLまたは他の高レベル記述から、実際の論理セル実行手段が典型的には論理合成により決定され、回路の機能的な記述を特別な回路の実行手段に変換する。そして論理セルは「配置(placed)」され(即ち、回路レイアウト内において特定の座標位置が付与され)、「経路設定(routed)」(即ち、設計者の回路規定に基いて配線または接続)される。配置および経路設定のソフトウェア処理手順は、一般に論理合成処理により生成された平坦化ネットリストをそれらの入力として受容している。この平坦化ネットリストは目標の標準セルライブラリから特定の論理セルインスタンスを確認し、上記特定のセル対セル接続性を記述する。
【0013】
データ経路の配置と経路設定を強調した特別なチップ設計処理の更なる説明が、例えば、米国特許 5,838,583 号に記載されており、参照によりここに導入して充分に記載した。
【0014】
図1はここで説明した種々の実施例に関連して使用されるコンピュータシステムの図である。図1に示すように、コンピュータシステム100は表示装置191に接続されたコンピュータ110と種々の入出力装置192を有する。コンピュータ110は、システムの速度と処理要求を満たすのに充分な量の作業メモリ(例えばRAM等)とともに1つ又は複数のプロセッサ(不図示)を有してもよい。コンピュータ110は、例えば、カリフォルニア州サンタクララのサンコンピュータ会社(Sun Computers, Inc.)製の市販のSPARKTMワークステーションまたは他の適当なコンピュータを有する構成としてもよい。
【0015】
コンピュータ110は、1実施例では、データ経路基盤設計部120とデータ経路配置部130と経路スペース概算部140を有する保持プログラムコードを含む。データ経路基盤設計部120はデータ経路機能の規定のためにデータ経路領域を備え、回路設計者によって相互作用する基盤設計動作のためにこれら領域上に制約を設け、データ経路配置部130の配置動作の制御を行う。データ経路配置部130は、回路設計者によって規定された制約に基いて、データ経路領域内にデータ経路機能の配置と、各データ機能内に論理セルインスタンスの配置を決定する。経路スペース概算部140は、データ経路配置部130によってその機能の配置が付与されたデータ経路機能を経路設定するために必要な経路スペースを概算する。
【0016】
上記システムの構成要素の保持部において、チップ基盤設計部150と全体/細部経路設定部160と基準セル配置部170と論理合成部180とHDLエディタ190が好適に使用されてもよい。チップ基盤設計部150と全体/細部経路設定部160と基準セル配置部170と論理合成部180とHDLエディタ190の動作は、これらの構成要素の設計が従来技術の電子設計自動制御において公知であるように、従来と同じ動作である。これらのシステム構成要素の市販例としては、それぞれプレビュー(PreviewTM)、セル(CellTM)、キュープレイス(QPlaceTM)、シナジー(SynergyTM)、ベリログ(Verilog)がある。コンピュータ110は、クロック信号レイアウト用の平衡H形木構造の構成における補佐のために種々のツールを備えてもよい。このようなツールの例、またはそれらの一般的な機能性の例については後述する。
【0017】
コンピュータ110は、好ましくは、レイアウトデータベース195を提供する多量保持装置(例えば磁気ディスクまたはカートリッジ保持部)と連結され、前記システムの要素がインターフェース動作を行う。レイアウトデータベース195はEDIFデータベーススタンダードを用いて実現してもよい。また、コンピュータ110は、回路設計において利用可能な電気部品の特徴を特定する1つまたは複数個のライブラリ(不図示)を含む多量格納部を有するかまたはその格納部に接続されてもよい。
【0018】
図2において、レイアウトデータベース195に格納された仮想回路設計データにより表示可能な簡略化された集積回路200の概略図が示されている。実際のもっと現実的な集積回路設計では、集積回路200は更に複雑になるであろう。しかし、図2は図示の目的には有用である。そこに示すように、集積回路200は、複数個の制御領域201と、データ経路領域203と、メモリ205とを有する。種々の制御領域201とデータ経路領域203とメモリ205が、通常は多重ビットをスパンするデータバス207と相互接続されている。各データ経路領域203は複数のデータ経路機能部209を備えてもよい。データ経路機能部209はデータバス207から利用可能ないくつかのビットまたはすべてのビットを利用してもよい。データ機能部309は、いくつかの信号形体またはデータバス207により通過されたデータの論理変換を可能にする複数のセルインスタンス215を有してもよい。データ経路機能部209内のセルインスタンス215は、通常はデータ経路機能部209上に搬送されたデータに対して作用する。
【0019】
レイアウトデータベース195の図式概要で表されているように、集積回路200は複数のインスタンスと複数のネットを有する。ネットは各インスタンス上のピンを関連づけることにより多数のインスタンスを相互接続する。
【0020】
図3は回路設計のための一般的な処理フロー図であり、前述のような回路抽象化の種々のレベルのいくつかを図示している。図3に示すように、HDLファイル形式のレジスタトランスファ論理(RTL)ファイル301または他の高レベル機能的記述は編集処理303を施され、該処理は典型的には論理合成の形式を有し、回路の機能的記述をネットリストファイル304の形式で保持できる特定の回路実行手段に変換する。編集処理303の一部として、一般に要素ライブラリ306が参照され、該要素ライブラリ306はどんな種類の設計要素が利用可能か及びそれらの機能的接続性を決定するために必要なそれらの設計要素の特徴に関する情報を保持している。この処理段階において、回路設計に使用される要素数を最小にするために回路の最適化においてある試みを成すことができる。前述のように、ネットリストファイル304は一般に目標の基準セルライブラリから特定の論理セルインスタンスを識別し、特定のセル対セルの接続性を記述する。
【0021】
図3に示す物理設計処理309の適用により、ネットリストファイル304の論理セルが次に配置及び経路設定され、レイアウトファイル310となる。物理設計処理309は領域最小化の努力を含むことができる。この処理段階において、ゲートのサイズおよびネットリストファイル304内に存在可能な他の要素に関する情報を得るために、要素ライブラリ306が用いられる。
【0022】
さらに図3に示すように、レイアウトファイル310から確認処理312を実行することができ、その結果、例えばGDSII又はCIF形式のマスクファイル315となる。マスクファイル315は鋳造に対して設けることができ、鋳造が実際の集積回路を製造することが可能となるのに充分な情報を保持している。
【0023】
図4は、クロック信号のレイアウト用等の平衡H形木構造を構成するための好ましい処理工程400のフロー図である。処理400は(図1に示すコンピュータ110等の)コンピュータを用いて回路設計者により実行することができ、該コンピュータは経路設定へのアクセスおよび後述するような他の種々のソフトウェアツールを有していることが好ましい。
【0024】
図4に示す処理400の第1の工程401では、回路設計のための回路ブロックの組が好ましくは必要に応じて結合され、回路ブロック数が所定最大値以下となるようにされる。この工程401の基本的な理由は、回路ブロック数が多くなるほど上部木構造レベルでより大きな配線幅が必要となり、その結果、上部レベルでの配線幅が望ましくないものとなるためである。例えば、H形木構造クロックレイアウトを用いた32個の回路ブロックを有する回路設計は、回路ブロックを経路設定するために使用される最小の配線幅の32倍以上のトランキ(幹)のサイズ(即ち、上部レベル入力クロック線)を必要とするであろう。好ましい実施例では、回路ブロックの所定最大数は16である。または、回路ブロックの所定最大数は他の2の累乗である。回路ブロックの数が選択された2の累乗の数(即ち、16)より多い場合は、ブロックは好ましくは集団化されて、その数が選択された2の累乗の数に等しくなるようにされる。このような処理の例を図5と図6に示す。
【0025】
図5は、回路ブロックの初期または予備配置後(即ち、基盤設計後)で、クロック信号の経路設定前の回路設計500の例を示す。図6は同じ回路設計500であるが、図示的に簡略化されて回路ブロックの相対位置と大きさのみを示している。図5および図6に示すように、溝520で分離された全部で17個の回路ブロック502が回路設計500内に存在する。好ましい方法によれば、2個の回路ブロック502a,502bが結合されて、クロックレイアウトのために単一の回路ブロック502として扱われる。図6は図5の回路設計500の変形を示し、2個の小さな回路ブロック502a,502bが結合されて、1つのより大きな回路ブロック502cに収束されている。好ましくは、集団化またはグループ化のために選択された2個の回路ブロックは、後続のステップ403を含む処理工程400の後続ステップを容易にするように選択され、残りのブロック502はほぼ等しい領域の多数のグループ(好ましくは4個)に分割され、各グループが最も接近した領域の回路ブロック502を有するようにされる。
【0026】
回路設計500内に8個以下の回路ブロック502がある場合は、処理400の工程のいくつかは省略することができる。回路ブロック502の個数を次の最下位の2の累乗に各削減することにより、処理400のもっと多くの工程を省略することができる。
【0027】
図4に示す処理400の次のステップ403では、残りのブロック502がほぼ等しい領域の4つのグループに分割され、各グループは互いに近接した回路ブロックを有するように502を有するように処理される。一般に、各回路ブロック520は、回路設計500が抽象化レベルで分割され得る4つの象限の1つと関連付けることができる。典型的な回路設計500では、回路ブロック502のの領域は一般に配置時間によって知られるであろう。したがって、回路ブロック502の各可能なグループの全領域を合計することは容易なことである。図7は図6の回路設計の図であり、回路ブロック502はほぼ等しい領域の4つのグループA,B,C,Dに分割されている。回路ブロックA1,A2,A3,A4はグループA内にあり、回路ブロックB1,B2,B3,B4はグループB内にあり、回路ブロックC1,C2,C3,C4はグループC内にあり、回路ブロックD1,D2,D3,D4はグループD内にある。
【0028】
図4に示す処理400の次の一連のステップ405〜417では、H形木構造クロックレイアウトの上部構造が生成される。詳しく説明すると、ステップ405において、各回路ブロックグループA乃至Dの中心点(即ち、集合体の中心)が決定される。各回路ブロック502の既知の領域とその配置情報を付与することにより、各回路ブロックグループA乃至Dの中心点の決定は直進的代数演算を含む。図8は図7の回路設計500の図であり、回路ブロックグループA,B,C,Dのそれぞれの近似中心点511,512,513,514を示している。次のステップ406では、中心点511,512,513,または514のいずれかが回路ブロック502内に存在するかどうか判定される。もし存在しなければ、処理400はステップ408に進む。存在する場合は、ステップ407において、中心点はそれに最も近い溝(チャンネル)部520に移動される。図9は図7の回路設計500を示し、中心点512がブロックB1の外部の新しい中心点512’に移動され、中心点514がブロックD2の外部の新しい中心点514’に移動され、その結果、変更された中心点511,512’,513,514’の組となっている。
【0029】
次のステップ408では、変更された4つの中心点511,512’,513,514’の組は垂直的に組合され、次に再度水平的に組合される。したがって、図示の例では、中心点511は中心点511’と垂直的に組合され、中心点513は中心点514’と垂直的に組合される。次に、中心点511は中心点513と水平的に組合され、中心点512’は中心点514’と水平的に組合される。次のステップ409では、非対角線位置の各組合わせ中心点間の溝部配線長さが測定される。溝部配線長さの測定は、「マンハッタン距離」を用いて行われる、即ち、最短の溝経路を用いるが、いずれの回路ブロック502も通過しない溝部520に沿って測定される。図10は前記技術による溝部配線長さの測定を示す。中心点511と513を水平的に接続する溝部配線601の長さは長さaに等しく、中心点512’と514’を水平的に接続する溝部配線604の長さは長さe,f,gの合計に等しく、中心点511と512’を垂直的に接続する溝部配線602の長さは長さh,i,jの合計に等しく、中心点513と514’を垂直的に接続する溝部配線603の長さは長さb,c,dの合計に等しい。
【0030】
次のステップ410では、上記中心点の各組合せに対する溝部配線長さが比較され、その差が算出される。即ち、溝部配線601の長さは溝部配線604の長さと比較され(差Δhを生じ)、溝部配線602の長さは溝部配線603の長さと比較され(差Δvを生じ)る。これらの比較は絶対距離測定の方法で行うことができ、または他の方法として比率(パーセンテージ)により行うこともでき、またはチップの長さ及び幅の比率に基く重量比較で行うこともできる。次のステップ411では、中心点の組合せ(即ち、垂直的または水平的)が、組合せ距離が最も等しくなるように選択される(即ち、最小の差ΔhまたはΔvが選択される)。この例では、ΔhはΔvより小さい場合を想定すると、中心点の水平的組合せが選択されるであろう。(配線602と603に対して)長さの最も等しい配線601と604の組合わせを最初に選択する目的は、平衡H形木構造レイアウトをより容易に達成するためである。同様に、「マンハッタン距離」測定が成される理由は、回路ブロック502の周囲及びその間に経路設定された配線601と604の全長が、各クロック経路に沿ってインピーダンスを平衡処理するために考慮される必要があるためである。
【0031】
次のステップ412では、選択された組の中心点が再度必要に応じて調整され、このとき組合せられた距離が(「マンハッタン距離」測定を用いて)等しくなるように調整される。図11は、配線長さ601と604が等しくなるように中心点512’を中心点512”に移動することを示す。移動すべき中心点511,512’,513,または514’の選択は種々の基準に基いて行うことができる。例えば1実施例では、調整済中心点を元の中心点から最大可能範囲まで移動することを防止することを目的としている。しかし、移動すべき中心点511,512’,513,または514’の選択の他の基準も使用可能である。
【0032】
次のステップ413では、クロック線が各中心点の組合わせにおける中心点間に経路設定される。図12は、他の部品間において、各中心点の組からの中心点間(即ち、中心点511と512間、および中心点512”と514’間)に水平的に経路設定された2本のクロック線521と522を示す図である。次のステップ414では、各配線521と522のそれぞれの中心点524と525が決定される。次のステップ415では、さらに図12に示すように、クロック線530が、各配線521と522の中心点524と525間に経路設定される。クロック線530の幅は好ましくは配線521と522の幅の合計、即ち、配線521または522の2倍の幅に等しい。次のステップ416では、クロック線530の中心点531が決定される。次のステップ417では、図12に示すように、クロック線535が、ターンを最小にしながら、クロック線530の中心点531から回路設計の最近接端部まで経路設定される(距離的経路設定)。クロック線535は好ましくはクロック線530と同じ幅(即ち、各クロック線521,522の2倍の幅)である。1態様におけるクロック線521,522,530,535は、平衡H形木構造クロックレイアウトの上部構造536を形成する。
【0033】
一旦、H形木構造クロックレイアウトの上部構造536が設定されると、H形木構造クロックレイアウトの下部構造が展開される。全体のH形木構造クロックレイアウトが図13に図示され、以下の説明に関連して時々参照されるであろう。図4に示す好ましい処理400のステップ420で始まる後続のステップの一団は、各回路ブロックグループA,B,C,Dに対して実行される。各回路ブロックグループに対して隣接回路ブロック502の端部間の中心点が決定される。このステップ420は図14を参照して説明できる。そこに図示されているように、中心点691は回路ブロックA1とA3の対向端部間に決定され、他の中心点692は回路ブロックA1とA2の対向端部間に決定され、等々と4個の中心点691,692,693,694まで決定される。中心点691,692,693,694の決定は、回路設計520内の回路ブロックA1,A2,A3,A4の既知の配置及び大きさが付与された自動制御ソフトウェアツールによって実行することができる。
【0034】
次のステップ421では、H形木構造クロックレイアウトの上部構造536の最も近い終点の端部(この例では配線521の端部511)と各中心点691,692,693,694との間の距離が算出される。これらの距離の算出は、(中心点と配線521の位置情報が付与された)直進的自動制御ソフトウェアルーチンを用いて達成することも可能であり、その測定結果はそれぞれx1,y1,x2,y2となる。次のステップ422では、2つの水平的測定値(x1とx2)の平均値および2つの垂直的測定値(y1とy2)の平均値が算出され、その結果、平均の水平及び垂直測定値xavg=(x1+x2)/2とyavg=(y1+y2)/2が得られる。ステップ422は4個の回路ブロックグループA,B,C,Dすべてに対して実行され、その結果、各回路ブロックグループに対する平均測定値xavgとyavgが求められる。
【0035】
次のステップ425では、最小の偏差で4つの平均測定値xavgとyavgの組み合わせ(特定の回路ブロックグループからxavgかまたはyavgを選択すること)が決定される。最小の偏差をもつ1つを決定するために、すべての可能な組合せ(全部で16組)が判定される。例えば、最小の偏差をもつ組合せは、xavgが回路ブロックグループAとCに対して選択され、yavgが回路ブロックグループBとDに対して選択された1つであり得る。基本的な目的は、下部H形木構造の各レベルにおいて同じ長さの配線長さに到達し、レイアウトを平衡化することである。
【0036】
次のステップ426では、図15に更に示すように、想像線697と698が、2個の隣接回路ブロック502の各々の端部から等距離にあるように、経路溝スペースの中心に沿って形成される。想像線697と698は好ましくはそれらが入力される回路ブロック502の角部によって連結される。次のステップ427では、(4個の回路ブロックグループA,B,C,Dすべてに同時に対する)中心点691と694が(束縛された)想像線697と698に沿って調整され、配線521の端部511からの距離を等しくするとともに、4個の回路ブロックグループすべての配線分枝線(合計8本)に対して共通の長さを達成する。中心点調整の例を図15に示し、中心点691は(連結された)想像線697に沿って新しい中心点691’に調整される。この技法は、8本のすべての配線に対する共通長さに収束するように試みることにおいて、例えば、4個の回路ブロックグループA,B,C,Dすべての種々の中心点に順次適用することができる。または、8本のすべての配線に対する共通長さに収束することが可能であることを確かめる前に、境界線の判定を完了してもよい。
【0037】
共通長さに収束することが達成された場合、次のステップ430で、クロック線セグメントが各組の中心点に対して経路設定される。それによって得られた回路ブロックグループAのクロック線セグメントが、図13で配線562として集合的に図示されている。各回路ブロックグループB,C,Dに対しても同じ処理工程が繰返され、それぞれ配線563,561,560が生成される。各配線562,563,561,560は好ましくは同じ長さであり、上記工程によって達成される。各配線562,563,561,560は経路溝の中心で終端すべきであり、図13はこの観点で設計する必要はないことに留意すべきである。経路溝の中心で終端させることにより、次のレベルでの配線は等しい長さとなり、H形木構造の次の下部と通常最後の階層を平衡化する。
【0038】
共通長さに収束することが達成されない場合、またはクロック信号レイアウトを最適化するために、ステップ435で記載しているように、2個の回路ブロック502を回路ブロックグループ間で「交換」してもよい。例えば、図13では、回路ブロックC3とD4が交換され、配線561が回路ブロックC4とD4(C3ではなく)に接続し、配線560が回路ブロックD3とC3(D4ではなく)に接続する。自動化された処理では、交換は、共通長さに収束することが達成されるまで、異なる回路ブロック502を用いて引き続き試みることができる。
【0039】
処理400の次のステップは、ある程度まで、最下位レベルの回路ブロック502が単独ブロックであるか、またはここで前述の集合化処理により形成された複合ブロックであるか(または16個の代わりに32個のブロックに関するレイアウトを実行した結果であるか)どうかに依存する。最下位レベルの回路ブロック502が単独ブロックである場合は、ステップ436で、各回路ブロックグループA,B,C,Dの2組の回路ブロック502の各々に対して、配線が、各組の回路ブロック502間に、経路中央部で組の中心と交差するするように経路設定される。したがって、例えば、配線575は配線経路の中央部において回路ブロックA1とA3の中心と交差し(即ち、図15の想像線697)、同様に、配線574は配線経路の中央部において回路ブロックA2とA4の中心と交差すべきある(即ち、図15の想像線698)。最終結果は、図13に示すように、一組のブロック対ブロックを接続する配線集団570乃至578が形成される。
【0040】
他方、最下位レベルの回路ブロック502の一方または両方が複合ブロックかまたはブロックの集団である場合は、ステップ436で、複合回路ブロック502の「端部」と他の回路ブロック(または複合回路ブロックの端部)502との間に、配線が経路中央部において2個のブロック502の中心と交差するように経路設定され、これは単独の回路ブロック502の場合と同様である。配線の終端では、バッファが配置される。バッファを追加する目的は、単独の回路ブロックでの終端と一致するようにブロックの複合グループでH形木構造を終端することであり、これは各単独の回路ブロックがそれのクロックピンにおいてバッファを有することを想定しているためである。複合グループはピンを備えないで、むしろ2個以上の回路ブロックを備え(各々それ自体の規定のI/Oピンの組を備える)ているので、複合グループの端部に配置されたバッファは、その特性を、バッファが本来配置された他の回路ブロックに一致させる。バッファから、配線を、複合回路ブロック502に関して内部の回路ブロックに経路設定してもよい。このような複合回路ブロックに関して内部的でありバッファを超えた配線は、H形木構造のインピーダンスに影響を与えない。
【0041】
次のステップ450では、最大のブロック対ブロック経路が決定される。即ち、最長の配線570乃至577が決定される。すべての配線570乃至577が等しい長さでない場合は、レイアウトは可能な限り平衡化されたものではないであろう。したがって、後続のステップ451では、各配線570乃至577と配線570乃至577の最大長さの配線との差を考慮して、配線の接続位置及び/又は大きさを変更することにより、配線の長さが調整される。1実施例では、このステップは、最大でないブロック対ブロック長さのすべてを最大のブロック対ブロック長さに等しくなるように増大することにより達成される。最終ステップ455では、H形木構造レイアウトが完成される。
【0042】
ある例では、溝520は、H形木構造レイアウトの種々の配線を収容するために、幅を広げる必要があるかもしれないことが留意される。しかし、基盤設計の改善は、通常は、クロック信号の経路設定に適した幅の可能な限り比較的真っ直ぐで長い溝520を提供することを目的として行われている。
【0043】
場合によっては、配線はチップ設計の下位レベルからチップ設計の上位レベル、またはその逆向きに経路設定されるであろう。このようなチップレベルの変換は「バイアス(via’s)」と呼ばれる。好ましくは、「バイアス」によって提供された追加の配線長さは、配線の距離を測定するとき、またはクロック線をレイアウトするときに、平衡H形木構造クロックレイアウトを確実にするために、考慮される。また、クロック経路の1分枝線上にバイアス経路が存在する場合は、同様のバイアス経路がクロック経路の他の分枝線に付加され、H形木構造レイアウトを平衡化することが好ましい。
【0044】
2通りの方法の一方で、隣接配線(例えば、1トラック離間)が使用されてもよい。最初に、隣接配線が接地部により分離される。または、配線は、配線間に開口トラックを有して2本以上の離間トラック線となるように配置することもできる。互いに交差する配線がチップの異なるレベル面上に存在しなければならないことも理解されるであろう。
【0045】
回路ブロック502は全体が「軟体」であるか、または「軟体の環状部」を有する硬体であり、それらのピン(特に、クロック入力ピン)がH形木構造レイアウトによるクロック信号を受信するのに適した位置に再配置できることが好ましい。「軟体の環状部」は一般に回路ブロック502の入出力ピンの順応性のある配置と呼ばれる。
【0046】
ここでは種々の実施例がクロック信号に関して説明されているが、同様の原理は多数の異なる回路ブロック間の平衡分布から利点を得るであろう他の種類の信号にも適用可能であることを理解すべきである。
【0047】
本発明の好ましい実施例がここで説明されているが、本発明の概念および範囲内にある多くの変形が可能である。このような変形は明細書と図面を参照することにより当業者に明確になるであろう。したがって本発明は添付の請求項の範囲内以外に限定されるべきではない。
【図面の簡単な説明】
【図1】 ここで述べた本発明の種々の実施例に関して使用可能なコンピュータシステムの図
【図2】 仮想素子ブロックの形体で表記可能な簡略化された集積回路の図
【図3】 回路抽象化の種々のレベルを示す回路設計のための一般的な処理フローの図
【図4】 クロック信号のレイアウト用などの平衡H形木構造を構成するための好ましい技法を示す処理フロー図
【図5】 回路ブロックの初期または予備配置後で、クロック信号の経路設定前の回路設計例の図
【図6】 2個の小回路ブロックを1個の大回路ブロックに変形した図5の回路設計の図
【図7】 回路ブロックがグループに分割された図6の回路設計の図
【図8】 回路ブロックの各組の近似中心点を示す図7の回路設計の図
【図9】 近似中心点が最近接の隣接溝の新中心点に移動された図7の回路設計の他の図
【図10】 図9の変形中心点を用い、垂直及び水平的に、中心点の組間の距離の比較を示す図
【図11】 クロック信号レイアウトの上部構造の配線長さを等しくするための中心点の調整を示す図
【図12】 クロック信号レイアウトの上部構造の図
【図13】 図7の元の回路設計の完全なH形木構造クロック信号レイアウトの例を示す図
【図14】 H形木構造クロックレイアウトの下位レベルをレイアウトするときに有用な演算を示す図
【図15】 H形木構造クロックレイアウトの下位レベルをレイアウトするときに有用な演算を示す図
【符号の説明】
100…コンピュータシステム、 110…コンピュータ、 120…データ経路基盤設計部、 130…データ経路配置部、 140…経路スペース概算部、 150…チップ基盤設計部、 160…全体/細部経路設定部、 170…基準セル配置部、 180…論理合成部、 190…HDLエディタ、 191…表示装置、 192…入出力装置、 195…レイアウトデータベース、 200…集積回路、 201…制御領域、 203…データ経路領域、 205…メモリ、 207…データバス、 209…データ経路機能部、 215…セルインスタンス、 301…(RTL)ファイル、 303…編集処理、 304…ネットリストファイル、 306…要素ライブラリ、 309…物理設計処理、 310…レイアウトファイル、 312…確認処理、 315…マスクファイル、 500…回路設計、 502…回路ブロック、 511,512,513,514、691,692,693,694…中心点、 521、562,563,561,560…配線 601、602、603、604…溝部配線、 697、698…想像線、 700…H形木構造クロックレイアウト。

Claims (7)

  1. チャンネルによって分離された複数の回路ブロックを有する集積回路においてクロック信号を経路設定するためのコンピュータで実行される方法であって、
    少なくとも1つのプロセッサを有するコンピュータシステムを用い、該コンピュータシステムが、少なくとも、
    上記回路ブロックを複数の回路ブロックグループに分割し、各回路ブロックグループが上記集積回路の連続した領域上を覆うようにすることと、
    上記各回路ブロックグループの中心点を少なくとも部分的に集合体中心に基いて決定することと、
    複数の回路ブロックグループの中心点が回路ブロック内にあるかどうかを判定し、あると判定された場合は、決定された中心点をそれに最も近いチャンネルに移動させることと、
    上記中心点間の距離を水平的および垂直的に算出し、水平的および垂直的に算出された距離間の最小差に少なくとも部分的に基づいて上記中心点の組を選択することと、
    各選択された中心点の組内の上記中心点間の一組のクロック線を経路設定することと、
    上記各組のクロック線の線中心点を決定することと、
    上記各組のクロック線の線中心点に主クロック線を経路設定することと、
    上記各回路ブロックグループに対して、上記回路ブロックグループの中心点から該回路ブロックグループの回路ブロックにクロック線を経路設定すること
    の動作を実行するようプログラムされている、コンピュータで実行される方法。
  2. 前記各回路ブロックグループは同数の回路ブロックを有する請求項1記載のコンピュータで実行される方法。
  3. 前記回路ブロックの数は2の累乗より成る請求項1記載のコンピュータで実行される方法。
  4. 前記回路ブロックの数が2の累乗となるように前記方法のために、多数の回路ブロックが集約されて1つの回路ブロックとして処理される請求項3記載のコンピュータで実行される方法。
  5. 前記主クロック線の幅が上記クロック線の組の両方を結合した幅に等しい請求項1記載のコンピュータで実行される方法。
  6. 前記各回路ブロックグループに対して、上記回路ブロックグループの中心点から該回路ブロックグループの回路ブロックにクロック線を経路設定する動作が、
    各回路ブロックグループに対して、該各回路ブロックグループ内の隣接する回路ブロックの対向端部間の回路ブロックグループ内部中心点を決定することと、
    各回路ブロックグループに対して、上記クロック線の組の最も近い終点から上記各回路ブロックグループ内部中心点までの距離を算出することと、
    各回路ブロックグループに対して、上記距離の平均を水平的及び垂直的に算出し、平均水平測定値と平均垂直測定値を求めることと、
    上記回路ブロックグループの全てに対して集合的に、最小の差異をもつ平均水平測定値と平均垂直測定値との組合せを選択することと、
    結合されたチャンネル内の上記回路ブロックグループを調整し、実質的に理想の距離を達成することと、
    各回路ブロックグループに対して、上記クロック線の組の最も近い終点から上記各回路ブロックグループ内部中心点までクロック線を経路設定すること
    を有する請求項1記載のコンピュータで実行される方法。
  7. 各回路ブロックグループに対して、上記回路ブロックグループ内部中心点から上記各回路ブロックまでクロック線を経路設定する工程を更に有する請求項6記載のコンピュータで実行される方法。
JP2001554227A 2000-01-18 2001-01-18 H形木構造クロックレイアウトのシステムと方法 Expired - Fee Related JP4676123B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17704800P 2000-01-18 2000-01-18
US60/177,048 2000-01-18
PCT/US2001/001941 WO2001054002A1 (en) 2000-01-18 2001-01-18 System and method for h-tree clocking layout

Publications (2)

Publication Number Publication Date
JP2003521044A JP2003521044A (ja) 2003-07-08
JP4676123B2 true JP4676123B2 (ja) 2011-04-27

Family

ID=22646966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001554227A Expired - Fee Related JP4676123B2 (ja) 2000-01-18 2001-01-18 H形木構造クロックレイアウトのシステムと方法

Country Status (4)

Country Link
US (1) US6651237B2 (ja)
JP (1) JP4676123B2 (ja)
TW (1) TWI222580B (ja)
WO (1) WO2001054002A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312413A (ja) * 2001-04-09 2002-10-25 Nec Corp 電子回路のレイアウト方法
US7058913B1 (en) * 2001-09-06 2006-06-06 Cadence Design Systems, Inc. Analytical placement method and apparatus
US6701507B1 (en) * 2001-12-14 2004-03-02 Sequence Design, Inc. Method for determining a zero-skew buffer insertion point
AU2002357305A1 (en) * 2001-12-18 2003-06-30 Silicon Perspective Corporation Gated clock tree synthesis
JP4215722B2 (ja) * 2002-12-17 2009-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーション クロック・ツリー構築用プログラム
US6975145B1 (en) 2003-06-02 2005-12-13 Xilinx, Inc. Glitchless dynamic multiplexer with synchronous and asynchronous controls
US7142033B2 (en) * 2004-04-30 2006-11-28 Xilinx, Inc. Differential clocking scheme in an integrated circuit having digital multiplexers
US7126406B2 (en) 2004-04-30 2006-10-24 Xilinx, Inc. Programmable logic device having an embedded differential clock tree
US7129765B2 (en) * 2004-04-30 2006-10-31 Xilinx, Inc. Differential clock tree in an integrated circuit
US7376927B2 (en) * 2005-06-13 2008-05-20 Advanced Micro Devices, Inc. Manhattan routing with minimized distance to destination points
US7665054B1 (en) * 2005-09-19 2010-02-16 Cadence Design Systems, Inc. Optimizing circuit layouts by configuring rooms for placing devices
US7439773B2 (en) * 2005-10-11 2008-10-21 Casic Corporation Integrated circuit communication techniques
US7475374B1 (en) 2005-12-20 2009-01-06 Advanced Micro Devices, Inc. Clock grid driven by virtual leaf drivers
JP5029070B2 (ja) * 2007-03-02 2012-09-19 日本電気株式会社 集積回路のレイアウト設計支援装置、方法、及びプログラム
US20090045839A1 (en) * 2007-08-15 2009-02-19 International Business Machines Corporation Asic logic library of flexible logic blocks and method to enable engineering change
US20090045836A1 (en) * 2007-08-15 2009-02-19 Herzl Robert D Asic logic library of flexible logic blocks and method to enable engineering change
US8928387B2 (en) 2013-05-10 2015-01-06 Laurence H. Cooke Tunable clock distribution system
US10282506B1 (en) * 2017-08-28 2019-05-07 Cadence Design Systems, Inc. Systems and methods for clock tree clustering
US11620428B1 (en) * 2021-05-07 2023-04-04 Cadence Design Systems, Inc. Post-CTS clock tree restructuring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0554100A (ja) * 1991-06-10 1993-03-05 Toshiba Corp クロツク信号の分配方法
JPH11145293A (ja) * 1997-11-05 1999-05-28 Matsushita Electron Corp 半導体集積回路のレイアウト方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872169A (en) 1987-03-06 1989-10-03 Texas Instruments Incorporated Hierarchical scan selection
US5774371A (en) * 1994-08-03 1998-06-30 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit and layout designing method for the same
US6067409A (en) 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US6260175B1 (en) * 1997-03-07 2001-07-10 Lsi Logic Corporation Method for designing an integrated circuit using predefined and preverified core modules having prebalanced clock trees
US6237128B1 (en) * 1997-10-01 2001-05-22 International Business Machines Corporation Method and apparatus for enabling parallel layout checking of designing VLSI-chips
US6148432A (en) * 1997-11-17 2000-11-14 Micron Technology, Inc. Inserting buffers between modules to limit changes to inter-module signals during ASIC design and synthesis
US6286128B1 (en) 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
US6327696B1 (en) * 1998-05-05 2001-12-04 Lsi Logic Corporation Method and apparatus for zero skew routing from a fixed H trunk
US6367051B1 (en) 1998-06-12 2002-04-02 Monterey Design Systems, Inc. System and method for concurrent buffer insertion and placement of logic gates
US6305001B1 (en) 1998-06-18 2001-10-16 Lsi Logic Corporation Clock distribution network planning and method therefor
US6311313B1 (en) * 1998-12-29 2001-10-30 International Business Machines Corporation X-Y grid tree clock distribution network with tunable tree and grid networks
US6311302B1 (en) 1999-04-01 2001-10-30 Philips Semiconductor, Inc. Method and arrangement for hierarchical control of multiple test access port control modules
US6367060B1 (en) 1999-06-18 2002-04-02 C. K. Cheng Method and apparatus for clock tree solution synthesis based on design constraints

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0554100A (ja) * 1991-06-10 1993-03-05 Toshiba Corp クロツク信号の分配方法
US5557779A (en) * 1991-06-10 1996-09-17 Kabushiki Kaisha Toshiba Method for distributing a clock signal within a semiconductor integrated circuit by minimizing clock skew
JPH11145293A (ja) * 1997-11-05 1999-05-28 Matsushita Electron Corp 半導体集積回路のレイアウト方法

Also Published As

Publication number Publication date
TWI222580B (en) 2004-10-21
US20010025368A1 (en) 2001-09-27
US6651237B2 (en) 2003-11-18
WO2001054002A1 (en) 2001-07-26
WO2001054002A9 (en) 2002-10-31
WO2001054002A8 (en) 2002-03-07
JP2003521044A (ja) 2003-07-08

Similar Documents

Publication Publication Date Title
JP4676123B2 (ja) H形木構造クロックレイアウトのシステムと方法
US5638291A (en) Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew
US5754826A (en) CAD and simulation system for targeting IC designs to multiple fabrication processes
US7992122B1 (en) Method of placing and routing for power optimization and timing closure
US7549137B2 (en) Latch placement for high performance and low power circuits
US6543043B1 (en) Inter-region constraint-based router for use in electronic design automation
JP3891599B2 (ja) 集積回路レイアウト内への標準セルの自動挿入装置
US6496965B1 (en) Automated design of parallel drive standard cells
JP3737104B2 (ja) プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法
US7676780B2 (en) Techniques for super fast buffer insertion
CN107918694B (zh) 用于减少集成电路上的延迟的方法
KR101013309B1 (ko) 회로 설계에서의 회로 소자의 귀납적 클러스터링
US6662349B2 (en) Method of repeater insertion for hierarchical integrated circuit design
US7013438B1 (en) System chip synthesis
US20090013299A1 (en) Buffer insertion to reduce wirelength in vlsi circuits
US20050268268A1 (en) Methods and systems for structured ASIC electronic design automation
WO2000065490A1 (en) Timing optimization in presence of interconnect delays
US6901562B2 (en) Adaptable circuit blocks for use in multi-block chip design
US8015532B2 (en) Optimal timing-driven cloning under linear delay model
US6317863B1 (en) Method and apparatus for irregular datapath placement in a datapath placement tool
JPH0714927A (ja) 自動配置設計方法および自動配置設計装置
US6931610B1 (en) Method for rapid estimation of wire delays and capacitances based on placement of cells
WO2001075687A9 (en) Method and apparatus to optimize an integrated circuit design using transistor folding
US20060064654A1 (en) Routed layout optimization with geotopological layout encoding for integrated circuit designs
US20090241082A1 (en) Method and System for Generating an Accurate Physical Realization for an Integrated Circuit Having Incomplete Physical Constraints

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110127

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140204

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees