JP2006054348A - 半導体装置、クロック分配方法及びプログラム - Google Patents
半導体装置、クロック分配方法及びプログラム Download PDFInfo
- Publication number
- JP2006054348A JP2006054348A JP2004235585A JP2004235585A JP2006054348A JP 2006054348 A JP2006054348 A JP 2006054348A JP 2004235585 A JP2004235585 A JP 2004235585A JP 2004235585 A JP2004235585 A JP 2004235585A JP 2006054348 A JP2006054348 A JP 2006054348A
- Authority
- JP
- Japan
- Prior art keywords
- drive
- cell
- clock
- cells
- tree
- 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.)
- Withdrawn
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】 本発明は、半導体装置、クロック分配方法及びプログラムに関し、クロックスキューの調整を行いやすくすることを目的とする。
【解決手段】 配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたツリー構造を有し、各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるクロックツリーからなるように構成する。
【選択図】 図2
【解決手段】 配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたツリー構造を有し、各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるクロックツリーからなるように構成する。
【選択図】 図2
Description
本発明は、半導体装置、クロック分配方法及びプログラムに係り、特にクロックスキュー(Skew)対策が施された半導体装置、クロックスキューを調整するクロック分配方法及びコンピュータにクロックスキューを調整するクロック分配を行わせるプログラムに関する。
一般に、大規模集積回路(LSI)等のレイアウト設計においては、クロックスキュー対策として、クロックツリー生成法によりクロック回路をツリー型構造の回路で構成することがある。従来より、このようなツリー型構造の回路は、レイアウト用のツール等により自動的に生成される。
図1は、従来のクロックツリー生成法を説明する図である。図1中、白抜きの四角形はフリップフロップ等のシンクセル(Sink Cell)111を示し、ハッチングを施された四角形は駆動バッファ等の駆動セル112を示し、太線は配線113を示す。図1の場合、クロックツリーの生成によりスター配線が生成される。
従来のクロックツリー生成法では、基本的には配線が分岐する直前に駆動セルを配置し、配線を介してフリップフロップ等のシンクセルを駆動する図1に示す如きツリー型構造を採用している。生成したクロックツリーがクロックスキュー制約を満たさない場合には、生成したツリーに対し、遅延調整の目的でセルを挿入する処理等を行い、クロックスキューを調整する。しかし、図1の如きツリー型構造の場合、ある分岐先へのセルの挿入は、他の分岐先の負荷容量にまで影響を与えるため、結果的に他の分岐先の遅延まで変化させてしまい、クロックスキューの調整が難しくなる。
特開2000−122751号公報
特開2004−022864号公報
従来のクロックツリー生成法では、次段の駆動セルを近づけるような工夫はなされないため、図1に示すように、1個のセルから複数の離れた次段のセルを駆動するような構造のクロックツリーが生成されやすい。このため、従来のクロックツリー生成法では、クロックスキューの調整が難しいという問題があった。
そこで、本発明は、クロックスキューの調整を行いやすい半導体装置、クロック分配方法及びプログラムを提供することを目的とする。
上記の課題は、配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたツリー構造を有し、各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるクロックツリーからなることを特徴とする半導体装置によって達成できる。
上記の課題は、半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、該半導体装置のレイアウト領域を、配線による遅延差が一定値以下となるような縦寸法及び横寸法を持つメッシュ領域に分割して、任意のメッシュ領域内に駆動セルを配置するステップと、配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたクロックツリーをボトムアップに生成するステップと、各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とするクロック分配方法によっても達成できる。
上記の課題は、半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、複数の駆動セルをまとめた1入力多出力の駆動セルを作成するステップと、配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されると共に、前記1入力多出力の駆動セルを用いたクロックツリーをボトムアップに生成するステップと、各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とするクロック分配方法によっても達成できる。
上記の課題は、上記いずれかののクロック分配方法により、コンピュータに半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配させることを特徴とするプログラムによっても達成できる。
本発明によれば、クロックスキューの調整が容易なクロックツリーを生成することができるので、クロックスキューを抑制することができる。又、クロックスキューを調整するためのバッファの挿入による遅延見積もりの精度を向上し、クロックスキューの小さなクロックツリーを生成することができる。
図2は、本発明におけるクロックツリー生成方法を説明する図である。図2中、白抜きの四角形はフリップフロップ等のシンクセル1を示し、ハッチングを施された四角形は駆動バッファ等の駆動セル2を示し、太線は配線3を示す。図2の場合、クロックツリーの生成により1:1配線が生成される。
本発明では、図2に示すように、ファンアウト直後にバッファ等の駆動セル2をまとめて配置しながらクロックツリーを生成していくことで、クロックスキューの調整が行いやすいクロックツリーを生成する。つまり、本発明では、配線3が分岐した直後に、分岐先毎に1個の駆動セル2を近傍にまとめて配置するツリー構造を採用する点に特徴がある。これにより、各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるようなクロックツリーを生成することができる。バッファ等の駆動セル2を配置する方法としては、後述するように、シンクセル1の集合の中心から配置できる場所を探索し、複数の駆動セル2をまとめて配置する方法か、或いは、複数の駆動セル2をまとめた1入力多出力の駆動セルを生成し、この1入力多出力の駆動セルを中心に配置して全ての分岐を駆動させる方法を採用する。
以下に、本発明になる半導体装置、本発明になるクロック分配方法及び本発明になるプログラムの各実施例を図3以降と共に説明する。本発明になるクロック分配方法は、汎用のコンピュータシステムを用いてコンピュータ支援設計(CAD)によりLSI等の半導体装置を設計する際に用いられる。本発明になるプログラムは、CPU等のプロセッサ及び記憶装置からなる汎用のコンピュータシステムにインストールされていても、磁気ディスクやCD−ROM等の記憶媒体に格納されていても良い。本発明になる半導体装置は、本発明になるクロック分配方法を用いて生成されたツリー構造の回路を備えたLSI等である。
図3は、ツリー型構造の回路を生成する処理を説明するフローチャートである。図3において、ステップS11は、LSIの分割対象領域を複数の領域に分割し、分割により得られた各領域に、分配対象であるLSIの構成素子、即ち、セルを分配する。ステップS12は、クロックツリーを生成し、ステップS13は、概略配線を行う。ステップS14は、必要に応じてクロック位相差を考慮してタイミング改善処理を行う。ステップS15は、以上の処理がLSIの領域を繰り返し分割する規定回数だけ行われたか否かを判定し、判定結果がNOであると、処理はステップS11へ戻る。他方、ステップS15の判定結果がYESであると、ステップS16は、構成素子及び追加されたバッファ等の駆動セルの詳細配置を行う。以上の処理により、タイミングドリブン自動配置が行われる。最後に、ステップS17は、自動配線を行う。このように、LSIを構成する素子の配置座標をトップダウンに決定する自動配置処理の途中のステップS12で、ツリー構造の回路が生成される。
本発明になる半導体装置は、上記ツリー構造の回路を備え、本発明になるクロック分配方法は、上記ステップS12におけるクロック分配を行う。本発明になるプログラムは、上記コンピュータシステムのCPUに上記ステップS12におけるクロック分配を行わせる。
本実施例では、図2と共に説明したように、配線が分岐した直後に、分岐先毎に1個の駆動セルを配置する。次に、このように駆動セルをまとめて配置する場合のクロックツリー生成方法について説明する。クロックツリーの生成は、次のようなクロックツリー生成ステップST1又はST2からなる。
1. クロックツリー生成ステップST1:
ステップST1は、複数の駆動バッファ12をまとめて配置してクロックツリーを生成する。
ステップST1は、複数の駆動バッファ12をまとめて配置してクロックツリーを生成する。
1−1. レイアウト領域のメッシュへの分割処理
図4に示すLSIのレイアウト領域を、配線13による遅延差が一定値以下となるような縦及び横の長さ(即ち、縦寸法及び横寸法)を持つ図5に示す如きメッシュ領域Mに分割する。これにより、同一のメッシュ領域M内に駆動バッファ12を配置すれば、図6に示す部分Pにより、一定値を超える遅延差の発生を防止できる。つまり、図6において、部分Pの遅延差が一定値以下になるように、図5に示すメッシュ領域Mの縦寸法及び横寸法が決定される。
図4に示すLSIのレイアウト領域を、配線13による遅延差が一定値以下となるような縦及び横の長さ(即ち、縦寸法及び横寸法)を持つ図5に示す如きメッシュ領域Mに分割する。これにより、同一のメッシュ領域M内に駆動バッファ12を配置すれば、図6に示す部分Pにより、一定値を超える遅延差の発生を防止できる。つまり、図6において、部分Pの遅延差が一定値以下になるように、図5に示すメッシュ領域Mの縦寸法及び横寸法が決定される。
図4〜図6中、及び後述する図7〜図13中、白抜きの四角形はフリップフロップ等のシンクセル11を示し、ハッチングを施された四角形は駆動バッファ等の駆動セル12を示し、太線は配線13を示す。
1−2. クロックツリーの生成処理
配線13が分岐した直後に、分岐先毎に1個の駆動セル12を近傍にまとめて配置されたクロックツリーを、ボトムアップに生成していく。具体的には、処理1−2−1〜1−2−4までを繰り返し行い、クロックツリーの生成が完了したら処理を終了する。
配線13が分岐した直後に、分岐先毎に1個の駆動セル12を近傍にまとめて配置されたクロックツリーを、ボトムアップに生成していく。具体的には、処理1−2−1〜1−2−4までを繰り返し行い、クロックツリーの生成が完了したら処理を終了する。
1−2−1. 遅延計算処理
クロックツリーを生成済みの部分から、末端までの遅延を計算する。
クロックツリーを生成済みの部分から、末端までの遅延を計算する。
1−2−2. セルのグループ化処理
駆動セル12が駆動できるシンクセル数の制約と駆動できる負荷容量の能力の制約下で、距離をコストに換算してグループ化する。
駆動セル12が駆動できるシンクセル数の制約と駆動できる負荷容量の能力の制約下で、距離をコストに換算してグループ化する。
1−2−3. クロックツリー作成処理
クロックツリー作成処理は、次の手順で行われる。
クロックツリー作成処理は、次の手順で行われる。
p1: 各メッシュ領域Mで挿入できるセル(又はゲート)数を計算しておく。
p2: シンクセル11の集合の中心から順に各クラスタ内のシンクセル数分の駆動セル12を配置できるメッシュ領域Mを探す。使用する駆動セル12は、駆動能力を満たす範囲内で最小の駆動バッファを仮定する。
p3: 駆動セル12を、処理p2で見つけたメッシュ領域M内に配置する。駆動セル12は、メッシュ領域M内であればどこに配置してもよい。
p4: 駆動セル・シンクセル間、駆動セル間を最短経路の配線13で結ぶ。
従って、図7にs1で示すシンクセル11の配置が与えられたときに、s2でG1で示すようなシンクセル11の集合の中心から順に各クラスタ内のシンクセル数分の駆動セル12を配置できる空きのあるメッシュ領域Mを探し、s3で示すように空きのあるメッシュ領域Mに駆動セル12を配置して駆動セル・シンクセル間、駆動セル12間を最短経路の配線13で結ぶ。以後、シンクセル11のグループ化、駆動セル12の配置及び駆動セル12・シンクセル11間と駆動セル12間を最短経路の配線13で結ぶことを、クロックツリーが完成するまで繰り返す。
図7の場合、s4でG2で示すような駆動セル12のグループ化を行い、s5で示すように空きのあるメッシュ領域Mに駆動セル12を配置し、s6で空きのあるメッシュ領域Mに更に駆動セル12を配置する。このようにして、最後に駆動セル12が1つのグループに属する構成となったら、このグループをクロックソースに接続し、処理は終了する。
1−2−4. スキュー調整処理
図8に示す如き各駆動セル・シンクセル間に対して、図9に示すように駆動セル12の挿入、駆動セル12のリサイズ、配線長の変更等うち少なくとも1つの操作を行い、分岐点から次段のシンクセル11までのスキュー調整を行う。図9中、梨地を施された四角形は、スキュー調整のために挿入された駆動セル12Aを示す。
図8に示す如き各駆動セル・シンクセル間に対して、図9に示すように駆動セル12の挿入、駆動セル12のリサイズ、配線長の変更等うち少なくとも1つの操作を行い、分岐点から次段のシンクセル11までのスキュー調整を行う。図9中、梨地を施された四角形は、スキュー調整のために挿入された駆動セル12Aを示す。
1−3. クロックツリー全体のスキュー調整処理
クロックソースから、リーフピンまでの遅延を計算し、スキュー調整をボトムアップに行う。この際、処理1−2で生成したクロックツリーをもとにスリュー(Slew)を設定すれば、処理1−2で行った遅延計算よりも精度が向上する。
クロックソースから、リーフピンまでの遅延を計算し、スキュー調整をボトムアップに行う。この際、処理1−2で生成したクロックツリーをもとにスリュー(Slew)を設定すれば、処理1−2で行った遅延計算よりも精度が向上する。
2. クロックツリー生成ステップST2:
ステップST2は、複数の駆動セル12をまとめた、1入力多出力の駆動セルを作成して使用することでクロックツリーを生成する。この場合の処理は、シンクセル11の集合の中心から一定距離に駆動セル12をまとめて配置する上記ステップST1と類似しているが、以下の点で異なる。
ステップST2は、複数の駆動セル12をまとめた、1入力多出力の駆動セルを作成して使用することでクロックツリーを生成する。この場合の処理は、シンクセル11の集合の中心から一定距離に駆動セル12をまとめて配置する上記ステップST1と類似しているが、以下の点で異なる。
第1に、レイアウト領域をメッシュ領域Mに分割する上記処理1−1が不要である。
第2に、複数の駆動セル12をまとめた駆動セルを作成して使用する。つまり、複数の駆動セル12をまとめて配置する代わりに、図10中丸印で囲まれた部分の駆動セル12(この例では4個)を同図の右側に抜き出して示すようにまとめた駆動セルG3を作成し、この駆動セルG3を使用してクロックツリーを生成する。
3. その他の処理:
3−1. シンクセルの数が多数の場合の処理
各シンクセル11に対して1個の駆動セル12を挿入したのでは、挿入する駆動セル12の数が膨大な数になってしまう。このため、図11に示すレイアウト領域を最初にメッシュ領域Mに分割し、そのメッシュ領域M内のシンクセル11をまとめて駆動するローカル駆動セル12Lを図12に示すように配置する。
3−1. シンクセルの数が多数の場合の処理
各シンクセル11に対して1個の駆動セル12を挿入したのでは、挿入する駆動セル12の数が膨大な数になってしまう。このため、図11に示すレイアウト領域を最初にメッシュ領域Mに分割し、そのメッシュ領域M内のシンクセル11をまとめて駆動するローカル駆動セル12Lを図12に示すように配置する。
3−2. グループ化時にスケジュールを考慮する処理
クロックツリーの生成途中でも、配置した駆動セル12からシンクセル11までの遅延は計算する。このため、上記処理1−2−2において、シンクセル11までの遅延差が一定値以下で小さい駆動セル12のみをグループ化の対象とする。最初は全てのシンクセル11をグループ化対象とし、クロックツリーが生成できた部分は、駆動セル・シンクセル間遅延でソートし、遅延が「最小遅延」から「最小遅延+駆動セル1個分の遅延」未満の範囲内にあるものをクラスタリング対象とする。
クロックツリーの生成途中でも、配置した駆動セル12からシンクセル11までの遅延は計算する。このため、上記処理1−2−2において、シンクセル11までの遅延差が一定値以下で小さい駆動セル12のみをグループ化の対象とする。最初は全てのシンクセル11をグループ化対象とし、クロックツリーが生成できた部分は、駆動セル・シンクセル間遅延でソートし、遅延が「最小遅延」から「最小遅延+駆動セル1個分の遅延」未満の範囲内にあるものをクラスタリング対象とする。
例えば、クロックツリーの生成途中の段階で、以下のような遅延を持つ状態になったとする。図13中、駆動セル12の集合A,B,C,Dから末端のフリップフロップ、RAM等のシンクセル11までの遅延時間が夫々40ps,45ps,80ps,160psであるものとする。この場合、駆動セル12の1段当たりの単位遅延を35psとすると、駆動セル12の集合(A,D)をグループ化して、駆動セル12の配置、遅延調整を行うと、120psの遅延差を調整することになる。これを同じ程度の遅延を持つ、駆動セル12の集合(A,B)を先にグループ化して、クロックツリーを生成し、その後、駆動セル12の集合{(A,B),C}、駆動セル12の集合{(A,B,C),D}と遅延の小さいものから先にグループ化してクロックツリーの生成を進める。
3−3. 第1のスキュー調整処理(ゼロスキュー調整処理)
第1のスキュー調整処理は次の手順で行う。
第1のスキュー調整処理は次の手順で行う。
p11: スキュー調整に使用できる全ての駆動セル12において、一定の駆動負荷容量とスリューを与えたときのセル遅延を計算しておき、テーブルに格納しておく。テーブルは、コンピュータシステムの記憶装置内に設けても良い。以下の説明では、この遅延値を単位遅延と言う。
p12: グループ化したシンクセル11のうち、最大遅延を持つシンクセル11の遅延を固定する。
p13: 最大遅延を持つシンクセル11以外は、処理p11で記録したテーブルのデータをもとに、スキューが小さく(ゼロスキューに)なる方向に駆動セル12を変更する。
p14: 最も小さい遅延を有する駆動セル12の単位遅延以上の遅延差を持つシンクセル11については、最大の遅延を超えない範囲内で配線経路上に駆動セル12の挿入処理を行う。
p15: 配線経路を変更することで、スキュー調整を行う。
3−4. 第2のスキュー調整処理(意図的(Intentional)スキュー調整処理)
駆動セル12において、各シンクセル11で独立に遅延調整が可能であるため、各シンクセル11で許容できるタイミングに幅が与えられたときは、タイミングの幅の範囲内で意図的にスキューを加えたクロックツリーの作成を行う。
駆動セル12において、各シンクセル11で独立に遅延調整が可能であるため、各シンクセル11で許容できるタイミングに幅が与えられたときは、タイミングの幅の範囲内で意図的にスキューを加えたクロックツリーの作成を行う。
従って、本実施例によれば、スキュー調整を行う際に、次のようなメリットがある。尚、遅延調整には、駆動セル12の挿入や配線経路の変更を行うことを考えるものとする。
図14は、従来のクロックツリー生成方法により駆動セルを挿入した場合の影響を説明する図であり、図15は、クロックツリー生成方法の実施例により駆動セルを挿入した場合の影響を説明する図である。図14及び図15中、12Iは挿入された駆動セルを示し、この駆動セル12Iの挿入により遅延変化が予想される場所を太線で示す。
図14に示す従来の方法の場合、駆動セル12Iの挿入は、スキュー調整を行う際に、合わせるべき他の分岐先への遅延にも影響を与えてしまう。このため、スキュー調整のために挿入した駆動セル12Iによる影響まで考慮して、挿入する駆動セル12や駆動セル12の挿入ポイントを決定しなければならず、スキュー調整が困難である。
一方、図15に示す本実施例の場合、駆動セル12Iの挿入の影響は、1つの分岐先に止まる。分岐点19とは駆動セル12Iで分割され、他の分岐先の遅延が変化することがないため、各分岐先で独立に遅延調整を行うことができ、スキュー調整がしやすくなる。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1) 配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたツリー構造を有し、
各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるクロックツリーからなることを特徴とする、半導体装置。
(付記2) 複数の駆動セルが、シンクセルの集合の中心から配置できる場所に順次まとめて配置されていることを特徴とする、付記1記載の半導体装置。
(付記3) 複数の駆動セルをまとめた1入力多出力の駆動セルが各分岐を駆動するよう配置されていることを特徴とする、付記1記載の半導体装置。
(付記4) 半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、
該半導体装置のレイアウト領域を、配線による遅延差が一定値以下となるような縦寸法及び横寸法を持つメッシュ領域に分割して、任意のメッシュ領域内に駆動セルを配置するステップと、
配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたクロックツリーをボトムアップに生成するステップと、
各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とする、クロック分配方法。
(付記5) クロックソースからリーフピンまでの遅延を計算し、スキュー調整をボトムアップに行うステップを更に含むことを特徴とする、付記4記載のクロック分配方法。
(付記6) 前記スキュー調整をボトムアップに行うステップは、該クロックツリーをもとにスリューを設定することを特徴とする、付記5記載のクロック分配方法。
(付記7) 前記クロックツリーをボトムアップに生成するステップは、
シンクセルの集合の中心から順に探して得られた、各クラスタ内のシンクセル数分の駆動セルを配置できるメッシュ領域に該シンクセル分の駆動セルを配置し、
駆動セル・シンクセル間と、駆動セル間を最短経路の配線で結ぶことを特徴とする、付記4記載のクロック分配方法。
(付記8) 前記クロックツリーをボトムアップに生成するステップは、駆動セルを1つのグループにグループ化し、このグループをクロックソースに接続することを特徴とする、付記7記載のクロック分配方法。
(付記9) 前記シンクセルまでの遅延差が一定値以下である駆動セルのみを前記グループ化の対象とすることを特徴とする、付記8記載のクロック分配方法。
(付記10) 前記メッシュ領域内に駆動セルを配置するステップは、1つのメッシュ領域内のシンクセルをまとめて駆動するローカル駆動バッファを配置することを特徴とする、付記4記載のクロック分配方法。
(付記11) 半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、
複数の駆動セルをまとめた1入力多出力の駆動セルを作成するステップと、
配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されると共に、前記1入力多出力の駆動セルを用いたクロックツリーをボトムアップに生成するステップと、
各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とする、クロック分配方法。
(付記12) クロックソースからリーフピンまでの遅延を計算し、スキュー調整をボトムアップに行うステップを更に含むことを特徴とする、付記11記載のクロック分配方法。
(付記13) 前記スキュー調整をボトムアップに行うステップは、該クロックツリーをもとにスリューを設定することを特徴とする、付記12記載のクロック分配方法。
(付記14) 付記4〜14のいずれか1項記載のクロック分配方法により、コンピュータに半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配させることを特徴とする、プログラム。
(付記1) 配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたツリー構造を有し、
各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるクロックツリーからなることを特徴とする、半導体装置。
(付記2) 複数の駆動セルが、シンクセルの集合の中心から配置できる場所に順次まとめて配置されていることを特徴とする、付記1記載の半導体装置。
(付記3) 複数の駆動セルをまとめた1入力多出力の駆動セルが各分岐を駆動するよう配置されていることを特徴とする、付記1記載の半導体装置。
(付記4) 半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、
該半導体装置のレイアウト領域を、配線による遅延差が一定値以下となるような縦寸法及び横寸法を持つメッシュ領域に分割して、任意のメッシュ領域内に駆動セルを配置するステップと、
配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたクロックツリーをボトムアップに生成するステップと、
各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とする、クロック分配方法。
(付記5) クロックソースからリーフピンまでの遅延を計算し、スキュー調整をボトムアップに行うステップを更に含むことを特徴とする、付記4記載のクロック分配方法。
(付記6) 前記スキュー調整をボトムアップに行うステップは、該クロックツリーをもとにスリューを設定することを特徴とする、付記5記載のクロック分配方法。
(付記7) 前記クロックツリーをボトムアップに生成するステップは、
シンクセルの集合の中心から順に探して得られた、各クラスタ内のシンクセル数分の駆動セルを配置できるメッシュ領域に該シンクセル分の駆動セルを配置し、
駆動セル・シンクセル間と、駆動セル間を最短経路の配線で結ぶことを特徴とする、付記4記載のクロック分配方法。
(付記8) 前記クロックツリーをボトムアップに生成するステップは、駆動セルを1つのグループにグループ化し、このグループをクロックソースに接続することを特徴とする、付記7記載のクロック分配方法。
(付記9) 前記シンクセルまでの遅延差が一定値以下である駆動セルのみを前記グループ化の対象とすることを特徴とする、付記8記載のクロック分配方法。
(付記10) 前記メッシュ領域内に駆動セルを配置するステップは、1つのメッシュ領域内のシンクセルをまとめて駆動するローカル駆動バッファを配置することを特徴とする、付記4記載のクロック分配方法。
(付記11) 半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、
複数の駆動セルをまとめた1入力多出力の駆動セルを作成するステップと、
配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されると共に、前記1入力多出力の駆動セルを用いたクロックツリーをボトムアップに生成するステップと、
各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とする、クロック分配方法。
(付記12) クロックソースからリーフピンまでの遅延を計算し、スキュー調整をボトムアップに行うステップを更に含むことを特徴とする、付記11記載のクロック分配方法。
(付記13) 前記スキュー調整をボトムアップに行うステップは、該クロックツリーをもとにスリューを設定することを特徴とする、付記12記載のクロック分配方法。
(付記14) 付記4〜14のいずれか1項記載のクロック分配方法により、コンピュータに半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配させることを特徴とする、プログラム。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは、言うまでもない。
1,11,111 シンクセル
2,12,12A,12L,12I,112 駆動セル
3,13,113,P 配線
19 分岐点
M メッシュ領域
s1〜s6,S11〜S17 処理ステップ
2,12,12A,12L,12I,112 駆動セル
3,13,113,P 配線
19 分岐点
M メッシュ領域
s1〜s6,S11〜S17 処理ステップ
Claims (5)
- 配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたツリー構造を有し、
各分岐のネットを分割し、夫々の分岐先に対して独立して遅延調整ができるクロックツリーからなることを特徴とする、半導体装置。 - 半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、
該半導体装置のレイアウト領域を、配線による遅延差が一定値以下となるような縦寸法及び横寸法を持つメッシュ領域に分割して、任意のメッシュ領域内に駆動セルを配置するステップと、
配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されたクロックツリーをボトムアップに生成するステップと、
各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とする、クロック分配方法。 - 前記クロックツリーをボトムアップに生成するステップは、
シンクセルの集合の中心から順に探して得られた、各クラスタ内のシンクセル数分の駆動セルを配置できるメッシュ領域に該シンクセル分の駆動セルを配置し、
駆動セル・シンクセル間と、駆動セル間を最短経路の配線で結ぶことを特徴とする、請求項2記載のクロック分配方法。 - 半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配するクロック分配方法であって、
複数の駆動セルをまとめた1入力多出力の駆動セルを作成するステップと、
配線が分岐した直後に、分岐先毎に1個の駆動セルを近傍にまとめて配置されると共に、前記1入力多出力の駆動セルを用いたクロックツリーをボトムアップに生成するステップと、
各駆動セル・シンクセル間に対して、駆動セルの挿入、駆動セルのリサイズ、配線長の変更のうち少なくとも1つの操作を行い、分岐点から次段のシンクセルまでのスキュー調整を行うステップとを含むことを特徴とする、クロック分配方法。 - 請求項2〜4のいずれか1項記載のクロック分配方法により、コンピュータに半導体装置を構成する素子の配置座標を決定する自動配置処理中にツリー構造の回路を生成してクロックを分配させることを特徴とする、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004235585A JP2006054348A (ja) | 2004-08-12 | 2004-08-12 | 半導体装置、クロック分配方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004235585A JP2006054348A (ja) | 2004-08-12 | 2004-08-12 | 半導体装置、クロック分配方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006054348A true JP2006054348A (ja) | 2006-02-23 |
Family
ID=36031620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004235585A Withdrawn JP2006054348A (ja) | 2004-08-12 | 2004-08-12 | 半導体装置、クロック分配方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006054348A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070311A (ja) * | 2007-09-18 | 2009-04-02 | Hitachi Ltd | 半導体装置 |
EP2053487A2 (en) | 2007-10-25 | 2009-04-29 | Funai Electric Co., Ltd. | Electric circuit and method for designing electric circuit |
-
2004
- 2004-08-12 JP JP2004235585A patent/JP2006054348A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070311A (ja) * | 2007-09-18 | 2009-04-02 | Hitachi Ltd | 半導体装置 |
EP2053487A2 (en) | 2007-10-25 | 2009-04-29 | Funai Electric Co., Ltd. | Electric circuit and method for designing electric circuit |
US8001507B2 (en) | 2007-10-25 | 2011-08-16 | Funai Electric Co., Ltd. | Electric circuit and method for adjusting wirelength of clock signal in electric circuit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6496965B1 (en) | Automated design of parallel drive standard cells | |
US7017132B2 (en) | Methodology to optimize hierarchical clock skew by clock delay compensation | |
EP0684572B1 (en) | Designing semiconductor integrated circuits | |
US6305001B1 (en) | Clock distribution network planning and method therefor | |
US6651224B1 (en) | Method of optimizing signal lines within circuit, optimizing apparatus, recording medium having stored therein optimizing program, and method of designing circuit and recording medium having stored therein program for designing circuit | |
US5751596A (en) | Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system | |
US7795943B2 (en) | Integrated circuit device and layout design method therefor | |
US8661374B2 (en) | Placement aware clock gate cloning and fanout optimization | |
US9141739B2 (en) | LSI design method | |
US7917882B2 (en) | Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof | |
US6651237B2 (en) | System and method for H-Tree clocking layout | |
US6763513B1 (en) | Clock tree synthesizer for balancing reconvergent and crossover clock trees | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
JP2017123010A (ja) | 半導体設計支援装置及び半導体設計支援方法 | |
US7480886B2 (en) | VLSI timing optimization with interleaved buffer insertion and wire sizing stages | |
US20060041852A1 (en) | Targeted optimization of buffer-tree logic | |
US8499268B2 (en) | Method of supporting layout design of semiconductor integrated circuit | |
JP2006054348A (ja) | 半導体装置、クロック分配方法及びプログラム | |
US11126768B2 (en) | Methods of designing semiconductor devices, design systems performing the same and methods of manufacturing semiconductor devices using the same | |
JP3869406B2 (ja) | クロック位相差検出回路、クロック分配回路、及び大規模集積回路 | |
JP2001267429A (ja) | レイアウト設計装置およびレイアウト設計方法 | |
JP3116915B2 (ja) | クロックネットのレイアウト設計変更方式 | |
JP4587754B2 (ja) | クロック合成方法、半導体装置及びプログラム | |
JP2009188093A (ja) | 半導体集積回路の設計装置、方法、及び、プログラム | |
US20080141207A1 (en) | Wiring Design System of Semiconductor Integrated Circuit, Semiconductor Integrated Circuit, and Wiring Design Program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071106 |