JP4131119B2 - 半導体集積回路設計方法及び半導体集積回路設計プログラム - Google Patents
半導体集積回路設計方法及び半導体集積回路設計プログラム Download PDFInfo
- Publication number
- JP4131119B2 JP4131119B2 JP2002117624A JP2002117624A JP4131119B2 JP 4131119 B2 JP4131119 B2 JP 4131119B2 JP 2002117624 A JP2002117624 A JP 2002117624A JP 2002117624 A JP2002117624 A JP 2002117624A JP 4131119 B2 JP4131119 B2 JP 4131119B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- hierarchical
- semiconductor integrated
- integrated circuit
- circuit
- 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
Links
Images
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、半導体集積回路の設計方法に関するものであり、特に、複数の階層ブロックを有する階層構造の半導体集積回路内において、回路内に配置されるフリップフロップ(FF)/ラッチ回路へ供給するクロック又は各種信号の分配回路を最適にレイアウト(配置・配線)する設計方法に関する。
【0002】
【従来の技術】
半導体集積回路のレイアウトでは、半導体集積回路の大規模化に伴い、集積回路をいくつかのブロックに分けブロック単位でレイアウトする階層レイアウトが一般的である。階層レイアウト方法には、半導体集積回路全体の設計から詳細なブロックの設計へと細かくしていくトップダウン方式(上位から下位へのレイアウト方式)と、初めに各ブロックを詳細に設計し、これを組立て全体にまとめていくボトムアップ方式(下位から上位へのレイアウト方式)との2種類がある。この階層レイアウト方法に従って、半導体集積回路内のフリップフロップ(FF)回路やラッチ回路へクロック又は各種信号を分配する分配回路の設計も行なわれる。以下、クロック分配回路の設計を中心に説明する。
【0003】
クロック分配回路の設計は、以下のように行なわれる。図11にトップダウン方式によってクロック分配回路を設計した第一の従来方法を示す。図11において、100は集積回路(チップ全体)、101A〜Eは階層ブロック、102A、B、Cは階層ブロック内に配置されるマクロ、103はクロック信号の供給を必要とするフリップフロップ(FF)回路やラッチ回路、104はクロックバッファ、105はクロック配線を示す。トップダウン方式のクロック分配回路の設計方法では、最初にトップレベルのフロアプランを行い、チップ内の各階層ブロック101A〜Eの配置を決める。そして、クロックの供給が必要なFF/ラッチ回路103のために、クロック分配回路104,105を合成する。クロック分配回路の合成は、供給クロックの時間差であるクロックスキューをなくすため、クロックツリーを用いて各ノード間の配線が等長かつ等容量となるように設計する。また、クロック分配回路の設計では、多段の中継用クロックバッファ104を中途に挿入することによって、クロック信号の劣化を緩和している。ここでは、トップレベルでのスキュー(供給クロックの時間差)は0となるように設計される。トップレベルのクロック分配回路を合成し、トップレベルの状態を確定してから、そこで得られた各階層ブロック101A〜Eのタイミング予算値を元に、各階層ブロック101A〜E内のフロアプランを行い、階層ブロック101A〜E内の各マクロ102A〜Cの配置を決める。次に階層ブロック内のクロック分配回路の合成を行う。階層ブロック内のクロックバッファ挿入では、全ての階層ブロックのうち階層ブロック内でのクロックツリーが最も大きく、ディレイが最大となる階層ブロックに条件を合わせ、各階層ブロックへクロックバッファを挿入する。図11の例では、階層ブロック101Bが最もディレイの大きいブロックであり、この階層ブロック101Bに合わせて、ディレイの小さい階層ブロック101A内にも、本来不必要なクロックバッファ107の挿入が行なわれる。
【0004】
次に、図12に第2の従来方法であるボトムアップ方式に従ったクロック分配回路を設計した例を示す。図12では、図11と同じ対象に同じ番号を付けている。ボトムアップ方式のクロック分配回路の設計方法では、各階層ブロックごとに最適になるようにクロック合成を行い、トップレベルでこれを組立てる。このため、階層ブロック内におけるクロックスキュー、挿入ディレイ、ゲートオーバーヘッドは最適にすることができる。しかし、この方法でも最もディレイの大きい階層ブロック101Bに合わせてクロックバッファ104が挿入されるため、挿入ディレイの小さい階層ブロック101Aのブロック領域外のクロックパスには不必要なクロックバッファ108の挿入が行なわれる。
【0005】
図13に、従来の方法であるボトムアップ方式の階層レイアウト設計方法の処理フローを示す。まず、論理合成(ステップ1)では、RTL(Register Transfer Level)の設計データ(ハードウェア記述言語、論理式、真理値表など)13を入力して、ネットリスト(ゲートレベルの論理回路)14を出力する。論理合成1においては、所望の回路を得るために、面積や遅延時間などの制約条件がある。遅延時間に関する制約条件として、例えばネット遅延や配線負荷モデルとの結合、クロック・タイミング、最大/最小遅延時間などがある。次に階層パーティショニングを用いたトップレベルのフロアプラン(ステップ2)を行う。階層パーティショニングとは、階層ブロックをチップ内の何処に設定するかを決め、階層ブロックを分割することを意味する。フロアプラン(ステップ2)では、ネットリスト14を入力し、機能ブロック(ハードマクロやソフトマクロ)をチップ上のどの位置へ配置すべきかを概略的に決め、仮配線での階層ブロックのタイミング予算値を求める(ステップ3)。
【0006】
次に各階層ブロック内のフロアプランとマクロセルの配置及び基幹電源配線の配線を行う(ステップ4)。併せて、論理合成時に想定した配線遅延や信号伝播の同期などタイミング条件を制約としてタイミングを保証するタイミングドリブンレイアウトによってセル配置を行う。
【0007】
次に階層ブロック内にクロックバッファを挿入しクロック配線をして、クロック分配回路の合成(ステップ5)を行う。
【0008】
次に階層ブロック内の配線とRC抽出を行う(ステップ6)。
【0009】
次に階層ブロック内のタイミング解析とタイミング調整を行って(ステップ7)、階層ブロックのタイミングモデルを作成する(ステップ8)。
【0010】
各階層ブロック内のレイアウトが決まると、上位階層に上がってトップレベルのフロアプランを調整し、セル配置を行う(ステップ9)。
【0011】
次にトップレベルのクロック合成とクロック配線を行う(ステップ10)。トップレベルのクロック配線ツリーは、1つのルートドライバと、このルートドライバに直列に接続されている1つのクロックドライバと、このクロックドライバに並列に接続されている複数のクロックドライバとからなる。階層ブロック内のクロック配線ツリーはそれぞれ構造が違うので、この違いをトップレベルのクロック配線ツリーで吸収させるため、ルートドライバとクロック信号入力端子との間にクロックドライバを挿入する。
【0012】
次にトップレベルのセル配置最適化及び配線、RC抽出を行う(ステップ11)。最後にトップレベルのタイミング解析とタイミング調整を行って(ステップ12)、レイアウト設計を終える。
【0013】
【発明が解決しようとする課題】
前述した従来の階層レイアウトに従ったFF/ラッチ回路への信号分配回路の設計方法では、分配回路の合成を各階層ブロック単位に行っていたことから、階層ブロックの大きさ、FFの数、階層の深さ等が各階層ブロックごとに異なることによって生じる信号遅延の差等を、階層ブロック内またはトップレベルにおいて調整しなければならず、そのため最も悪い条件の階層ブロックに全体を合わせ、余分なバッファ−挿入を行っていた。一方、全てのレイアウトデータを単純に階層展開して分配回路の合成を行うことは、データ量が膨大になり過ぎるため、メモリ使用量・処理スピードの点で現実的な解決方法ではなかった。
【0014】
そこで、本発明は、複数の階層ブロックを有する階層レイアウトの設計方法において、余分なバッファ挿入をしない最適な分配回路を設計する半導体集積回路の設計方法を提供することを目的とする。
【0015】
【課題を解決するための手段】
上記課題を解決するために、本発明では、次に述べる特徴を有した方法によって、クロック等の分配回路の設計を行う。図1は、本発明の概念図である。図1において、1はネットリスト、2は複数の階層を有する階層レイアウトデータ,3は分配回路合成用データベース、4は分配回路、5は分配回路を配置した階層レイアウトデータである。図に示すように、階層レイアウトデータには上位階層Aの下に下位階層B、Cが存在する。下位階層B、Cの中にはクロックや各種信号の供給を必要とするFF回路やラッチ回路6が存在する。本発明では、まず階層レイアウトデータ2から、分配回路合成に必要なネット情報を抽出し、分配回路合成用のデータベース3を作成する。次に、分配回路合成用のデータベース3を入力して、階層のないフラットな状態で分配回路4を合成する。次に、合成された分配回路4を階層レイアウトデータ2上の位置に割当て、分配回路を配置した階層レイアウトデータ5を作成する。分配回路4のバッファ7及び配線8は、上位階層Aや下位階層B,C内のレイアウトにマッピングされる。
【0016】
このように、本発明では、半導体集積回路内全体に散らばって、複数の階層ブロック内にある複数のFF/ラッチ回路へいっせいに供給するクロックや各種信号の分配回路の設計において、階層レイアウトデータの中から、分配回路合成に必要な情報のみを抽出し、階層のないフラットな状態で分配回路合成を行い、これを元の階層レイアウトデータへマッピングする。このため、余分なバッファの挿入が起こらない。また、抽出した必要な情報だけで分配回路合成を行い、他の回路の設計は階層処理を行うので、使用メモリ量が少なく分配回路の合成処理スピードも速い。
【0023】
請求項1記載の発明は、CPUにて実行される半導体集積回路の設計方法において、
記憶部から複数の階層ブロックを有する階層構造のレイアウトデータを抽出し、抽出した前記階層構造のレイアウトデータに基づいてセット/リセット信号のネット情報を抽出してセット/リセット合成用データベースを作成し、
前記セット/リセット合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのセット/リセット信号分配回路を合成し、
前記セット/リセット信号分配回路を、前記階層構造のレイアウトデータ上へマッピングすることを特徴とする半導体集積回路設計方法。
【0024】
この発明によれば、セット/リセット分配回路合成に必要な情報のみを抽出するので、データ量の少ないデータベースで高速な処理ができる。また階層展開した半導体集積回路全体についてセット/リセット分配回路の合成をするので、余分な中継バッファ挿入のない最適なセット/リセット分配回路の合成ができる。
【0027】
【発明の実施の形態】
以下、本発明を具体化した一実施形態を、図2〜図9を参照しながら説明する。
【0028】
図2は、本発明を適用したレイアウト設計を行うためのハードウェア構成を表したものである。図2において、50は全体を制御するCPUを、51はROMを、52はCPUの作業用記憶領域として使用されるRAMを、53はデータを読み書きするハードディスク(HD)を、54はCPU50の制御にしたがってハードディスク(HD)53へのデータ読み書きを制御するハードディスクドライブ(HDD)を、55は各装置を接続するための内部バスを、56はネットワークと内部とのインタフェース部を、57、58は各種入力装置及び各種出力装置を示す。また、59,60,61は半導体集積回路のレイアウト設計を行うためのネットリスト、階層レイアウト、分配回路合成用データが格納されている各種データベースである。
【0029】
図3は、本発明を適用した第一の実施形態の処理フロー図である。第一の実施形態では、クロック分配回路の設計を対象とする。まず、本発明の論理合成(ステップ201)では、同じ階層ブロックがチップ内に複数回配置されるものは、異なる別々の階層ブロックと認識されるように異なる名前を付けるブロック固有化処理をする。なお、本発明の対象となる階層レイアウトデータでは、同じブロックの繰返し配置がもともと少ない場合を想定している。このため、ブロック固有化処理によって増えるデータ量は問題となるほどではない。この処理によって、各階層ブロックはチップ内において単独で固有なブロックとなる。これは、後で合成するクロック分配回路を各階層ブロックへマッピングする処理のために必要である。この後のトップレベルのフロアプラン(ステップ202)トップレベルのセル配置処理とタイミング予測処理(ステップ203)及び階層ブロック内のフロアプラン(ステップ204)までは、従来の方法と同様なため説明を省略する。
【0030】
次に、階層を有するネットリスト215及び階層レイアウトデータ216からクロック合成に必要な情報を抽出し、クロック合成用データベース217を作成する(ステップ205)。クロック合成用データベース217の作成については、後で詳述する。
【0031】
次に、上記で抽出したフラットなクロックネットのデータベース217に対して、クロック合成を実施して、クロック合成及びクロック配線の生成を行う(ステップ206)。クロック合成にはクロックツリーを用いる。クロックツリーとは、クロックスキューを最小化するため、クロック配線網にバッファ回路を適宜挿入し、ツリ−状にレイアウトするものである。
【0032】
次に、クロック合成によって生成したクロックバッファとクロック配線からなるクロック分配回路218を、階層ブロックのパーティション情報をもとに、トップレベル及び各階層ブロックの配置/配線情報とネットリストにマッピングし、クロック分配回路が配置された階層レイアウトデータ219を生成する(ステップ207)。マッピング処理についても、後で詳述する。
【0033】
次に、合成したクロック分配回路を元に、トップレベル及び各階層ブロックのタイミング制約を編集する(ステップ208)。この処理では、クロック分配回路をトップレベル及び各階層ブロックにマッピングしたことによって、新たに発生したクロック端子をクロックソースピンとしてタイミング制約に追加する。このとき、追加したクロックソースのタイミングは、元のクロックソースと同じタイミングとする。
【0034】
次に、各階層ブロックについて、上記のように編集したタイミング制約を使用し、配置調整(クロックバッファのオーバラップを解除する)とクロック配線の修正、信号の配線、RC抽出を順に実行する(ステップ209)。
【0035】
次に、タイミング解析とタイミング調整を実行し、階層ブロックレベルのレイアウト処理を完了する(ステップ210)。
【0036】
次に、階層ブロックのタイミング解析結果からタイミングモデルを作成する(ステップ211)。
【0037】
次にトップレベルのタイミング制約と、上記で作成したブロックのタイミングモデルを使って、配置調整(クロックバッファのオーバラップ解除)とクロック配線の修正、信号の配線、RC抽出を順に実行する(ステップ212)。
【0038】
最後に、タイミング解析とタイミング調整を実行し、トップレベルのレイアウト処理を完了する(ステップ213)。ここまでで、レイアウト処理全体を完了する。
【0039】
図4の例を用い、クロック合成前の階層レイアウトについて説明する。図4以降では、従来の方法について説明した図10や図11と同じものを指す場合は、同じ番号を使用している。まず、チップ全体のネットリストから、クロックネットに関する情報のみを抽出する。図4の例では、クロックルートピン106を元に接続されたクロックネット110及びそのクロックネットに接続されたFF回路及びラッチ回路103のセル全てを抽出する。併せて、チップレベル/各階層ブロックのセル配置情報からも、クロックネット110及びこのクロックネットに接続されたFF回路及びラッチ回路103のセルの配置情報、クロック合成時の配置制約になるマクロセル(マクロA〜マクロC)の配置情報、その他のセル配置禁止情報等を抽出する。このようにして、クロックネットだけに関する階層のないフラットなネットリストと配置情報を格納したクロック合成用データベースを作成する。
【0040】
図5は、クロック合成用データベースの作成について説明するための図である。クロック合成用データベースでは、座標値は階層展開され絶対座標値へ変換される。例えば、ブロック101Bの下位階層であるブロック101E内にあるFF回路111の階層展開後の座標値(X、Y)は、(X、Y)=チップ100の原点(0,0)からの階層ブロック101Bの相対座標位置(X2,Y2)+階層ブロック101B原点からの階層ブロック101Eの相対座標位置(X3,Y3)+階層ブロック101E原点からのFF回路111の相対座標位置(X5、Y5)=(X2+X3+X5、Y2+Y3+Y5)となる。もし階層ブロックの配置に回転・反転が加わる場合は、適宜計算した上で階層展開する。このようにして、クロック合成用データベースの座標位置データは、全て階層展開してチップ100原点からの絶対座標値に変換されている。
【0041】
図6に、クロック合成用データベースの主なデータ内容を示す。クロック合成用データベースには、例えばクロック種テーブルを有する。クロック種テーブルは、トップレベル及び各階層ブロックのネットリストとFF回路及びラッチ回路等の絶対座標値から作る。ここで、クロック種テーブルの項目は、例えばクロックソース毎に、クロックソース名、クロックサイクル、クロック波形の立上がりと立下り、目標とするクロックの遅延時間、目標とするクロックスキュー、クロックソースにぶらさがるFF回路及びラッチ回路の数(シンクピン数)である。
【0042】
図6の下部は、クロック合成用データベースの一部であるクロックドメインテーブルである。クロックドメインテーブルは、クロックの種数に応じてそれぞれ作成する。ここで、クロックドメインテーブルの項目は、例えばクロックソースにぶらさがるFF回路及びラッチ回路及びクロックネットのリーフピンが設定されている回路のシンクセル名(連結固有名)、ピン名、ライブラリ名、配置座標(絶対座標)、セル配置時の回転コード、クロックスキュー調整の対象から外す場合の排他ピンフラグである。
【0043】
次に、図7を用い、クロック分配回路の合成手順(ステップ206)についてより詳しく説明する。まず、配置されたFF/ラッチ回路103に対して、クロックのクラスタ分割としてFF/ラッチ回路103をダイヤモンド形状111に集め、その中心にローカルクロックバッファ114を配置する。例えば、図7の左上のFF/ラッチ回路103を集めたダイヤモンド形状111の中心に、ローカルクロックバッファ114Aを配置する。ローカルクロックバッファ114Aから各FF/ラッチ回路103までは、等長となるように各FF/ラッチ回路103の位置を調節する。同様に、他のFF/ラッチ回路103を集めた各ダイヤモンド形状111B〜Gでも、その中心にローカルクロックバッファ114B〜Gを置く。次に各ローカルクロックバッファ114A〜Gを駆動するグローバルクロックバッファ115A、B、Cを配置する。図7では、例えばローカルクロックバッファ114Aと114Bを駆動するグローバルクロックバッファ115Aが配置される。グローバルクロックバッファ115Aから各ローカルクロックバッファ114A、114Bまでは、等長となるようにグローバルクロックバッファ115Aが配置される。図7からも分かるように、ローカルクロックバッファ114A,114Bもグローバルクロックバッファ115Aも同一階層ブロック101A,101B内に配置されなければならないという制約はない。グローバルクロックバッファ115Aは、異なる階層ブロック内のFF/ラッチ回路103やローカルクロックバッファ114A,114Bを配下に持っていて構わない。但し、クロックバッファが本来あるブロック枠上に配置されないように工夫がなされる。クロックバファの原点座標を基にブロック枠上は避け、いずれかのブロック枠内に収まるように調整される。更にグローバルクロックバッファ115Aを駆動するためのグローバルクロックバッファも配置する。図7の例では、例えばグローバルクロックバッファ115A,115B,115Cを駆動するグローバルクロックバッファ116、117,118などがこれに相当する。最後に、各クロックバッファ114A〜F,115,116間、クロックバッファ114とFF/ラッチ回路103間に対して、クロック配線120を行い、クロック分配回路を合成する。
【0044】
図8は、先に合成したクロック分配回路を階層のあるレイアウトデータへマッピングする処理を説明する図である。まず階層ブロック101A〜Eの外枠の絶対座標を算出する。絶対座標の求め方は、例えば図7のブロックEの枠の座標値は、上位階層の階層ブロックBの原点の座標値(X2、Y2)と階層ブロックE自身の原点の座標値(X3、Y3)と、階層ブロックEの幅・高さの値を足した値(X33,Y33)とから求める。次に、クロックバッファの相対座標位置を末端のものから決めていく。こうして、クロックバッファ114〜118の各座標位置は、階層展開した絶対座標値を各階層ブロック内の座標値に割当てて計算する。
【0045】
さらにクロック配線120と階層ブロック101A〜E枠との交点座標値を求め、これを階層ブロックのクロックピンの位置と定める。このようにして算出されたクロックピンの位置P1〜P8が図に示される。次に、挿入されたクロックピンP1〜P8の位置に基づいて、ネットリストは分割される。
【0046】
タイミング制約の編集(ステップ208)では、まず、クロック合成後に追加された各階層ブロックのクロックピンP1〜P8をタイミング制約に追加する。このとき、新たに追加したクロックピンP1〜P8のタイミング制約は、クロック合成結果のタイミング情報を元に設定する。また、新たに追加したクロックピンP1〜P8は、元のクロックピンに対してマスター・スレーブの関係とする。すなわち、クロックピンは元々1本のクロックソースを元から派生するが、新しくできたクロックピンは大元のクロックソースを親とする親子(マスター・スレーブ)関係を持たせる。
【0047】
次に、本発明を適用した第二の実施形態について説明する。本発明は、クロック分配回路以外の制御系ネット回路、例えばセット/リセット分配回路にも適用できる。セット/リセット分配回路とは、FF/ラッチ回路等のクリア/プリセット端子につながるセット/リセット信号のネットで、外部から全てのFF/ラッチ回路に対してセット/リセット信号を送るものである。セット/リセット分配回路は、FF/ラッチ回路に接続する回路であり、基本的にクロックツリーと似た回路構造となる。しかし、クロック分配回路よりタイミングの制約が少ないため、少ないバッファでより効率良くツリーを構成するものである。従来では、クロック合成と同じ方法によって、階層ごとにファンアウトを調節しながらバッファを挿入し、ツリーを完成させていた。
【0048】
第二の実施形態では、本発明を適用して、階層レイアウトデータから、セット/リセット合成に必要なネット情報を抽出して作ったセット/リセット合成用のデータベースを基に、階層のないフラットな状態でセット/リセット分配回路を合成し、この回路を階層レイアウトデータ上の位置に割当て、セット/リセット分配回路を配置した階層レイアウトデータを作成する。
【0049】
図9は、本発明を適用した第二の実施形態による処理フロー図である。第二の実施形態の処理が第一の実施形態の処理と異なるのは、セット/リセット分配回路の合成に関わるステップ410から412の部分である。第二の実施形態では、論理合成(ステップ401)から、クロック合成後の各階層ブロック内のセル配置最適化(ステップ409)まで、第一の実施形態による処理フロー(図3)と同様の処理をするため、説明を省略する。
【0050】
ステップ409の後、チップ全体のネットリストから、セット/リセットのネット及びセット/リセットのネットに接続されたFF/ラッチ回路等のセルだけを抽出する。併せて、チップレベル/各階層ブロック内のセル配置情報からも、セット/リセットのネットに接続されたFF/ラッチ回路等のセルだけを抽出し、セット/リセットのネットだけに関するフラットなネットリストと配置情報を格納したセット/リセット合成用データベース420を作成する(ステップ410)。
【0051】
次に、セット/リセット合成用データベース420を基に、クロック合成と同様の方法でセット/リセット分配回路421のバッファ挿入とセット/リセット用ネット配線を行う(ステップ411)。このセット/リセット分配回路の合成411では、クロック合成に比べファンアウトの調整条件やタイミング条件が緩和されている。
【0052】
次に、合成したセット/リセット分配回路421を、階層ブロックのパーティション情報を基に、トップ及び各階層ブロックの配置/配線情報とネットリストに割り付ける(ステップ412)。階層ブロックのピンの位置は、セット/リセット配線と階層ブロック枠との交点から座標を算出して決める。該当する階層ブロック枠の座標位置には、階層ブロックのピンを挿入し、ネットリストを分割する。
【0053】
次に、階層ブロック内の他の配線を実施し、RC抽出を行う(ステップ413)。この後の処理は、クロック合成の処理フローと同様となる。
【0054】
図10は、本発明を適用した第2の実施形態におけるセット/リセット分配回路の合成(ステップ411)を説明する図である。セット/リセット分配回路の合成(ステップ411)では、配置されたFF/ラッチ回路103に対して、クラスタ分割としてFF/ラッチ回路103をダイヤモンド形状511A〜Gに集め、その中心にローカルバッファ503A〜Gを配置する。この方法は、第一の実施形態と同様である。異なるのは、セット/リセット分配回路の合成では、クロック合成に比べファンアウトの調整条件やタイミング条件が緩和されているため、より少ないバッファの挿入で済むという点である。ローカルバッファ503から各FF/ラッチ回路103までは等長になるように各FF/ラッチ回路103の位置が調節される。次にローカルバッファ503A〜Gを駆動するグローバルバッファ501、502が配置され、リセットIO500から各バッファ501、502,503、各FF/ラッチ回路103間を接続するセット/リセット信号分配用の配線506が引かれ、セット/リセット分配回路を合成する。さらに、セットリセット信号分配用の配線506と階層ブロック101A〜E枠の交点座標を求め、これを階層ブロックのセット/リセット信号分配用のピンの位置と定める。このようにして算出されたピンP51〜58の位置が図に示される。次に、挿入されたピンピンP51〜58の位置に基づいて、ネットリストは分割される。
【0055】
以上、本発明の実施の形態を説明したが、本発明の半導体集積回路設計方法は実施の形態に記載した用途、構成及び条件に限られるものではなく、各種の変更が可能である。分配回路は、実施形態ではクロック分配回路とセット/リセット分配回路を例に取ったが、これに限らず、半導体集積回路全体に散らばり階層ブロックをまたがって配置される回路であれば、本発明を適用できる。
【0056】
上記各実施形態の特徴をまとめると以下のようになる。
【0057】
(付記1) 半導体集積回路の設計方法において、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、分配回路の合成に必要なネット情報を抽出して分配回路合成用データベースを作成する工程と、
前記分配回路合成用データベースを用いて、階層構造を展開した半導体集積回路全体についての分配回路の合成工程と、
前記合成された分配回路を、前記階層構造のレイアウトデータ上へマッピングする工程とを有することを特徴とする半導体集積回路設計方法。
【0058】
(付記2) 付記1記載の半導体集積回路設計方法において、
前記分配回路とは、前記半導体集積回路内のフリップフロップ回路またはラッチ回路に入力するクロック又は信号を分配する回路であることを特徴とする半導体集積回路設計方法。
【0059】
(付記3) 半導体集積回路の設計方法において、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、クロックネット情報を抽出してクロック合成用データベースを作成する工程と、
前記クロック合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのクロック分配回路の合成工程と、
前記クロック分配回路を、前記階層構造のレイアウトデータ上へマッピングする工程とを有することを特徴とする半導体集積回路設計方法。
【0060】
(付記4) 半導体集積回路の設計方法において、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、セット/リセット信号のネット情報を抽出してセット/リセット合成用データベースを作成する工程と、
前記セット/リセット合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのセット/リセット信号分配回路の合成工程と、
前記セット/リセット信号分配回路を、前記階層構造のレイアウトデータ上へマッピングする工程とを有することを特徴とする半導体集積回路設計方法。
【0061】
(付記5) 付記1記載の半導体集積回路設計方法において、
同一の階層ブロックを複数配置する場合には、予め前記階層ブロックを単独の階層ブロックとして固有化処理をすることを特徴とする半導体集積回路設計方法。
【0062】
(付記6) 付記3記載の半導体集積回路設計方法において、
前記クロックネット情報とは、クロックルートピンに繋がるクロックネットリストと、該クロックネットリストに接続される全てのフリップフロップまたはラッチ回路の位置情報を含むことを特徴とする半導体集積回路設計方法。
【0063】
(付記7) 付記3記載の半導体集積回路設計方法において、
前記クロック分配回路の合成は、クロックバッファの挿入及びクロック配線を合成することを含むことを特徴とする半導体集積回路設計方法。
【0064】
(付記8) 付記3記載の半導体集積回路設計方法において、
合成した前記クロック分配回路と、前記階層ブロックの外枠との交点に、新たなクロックピンを生成することを特徴とする半導体集積回路設計方法。
【0065】
(付記9) 付記3記載の半導体集積回路設計方法において、
前記マッピング工程には、前記クロック分配回路のクロックバッファ座標位置及び階層ブロックのクロックピン座標位置を求める工程と、
前記クロック分配回路の座標位置を、階層構造のレイアウトデータのチップまたは各階層ブロック内での座標位置に変換する工程とを有することを特徴とする半導体集積回路設計方法。
【0066】
(付記10) 付記3記載の半導体集積回路設計方法において、
更に前記クロック分配回路を前記階層レイアウトデータ上にマッピングすることによって新たにできたクロックピンをタイミング制約に追加する工程を有する
ことを特徴とする半導体集積回路設計方法。
【0067】
(付記11) 付記4記載の半導体集積回路設計方法において、
前記セット/リセット信号のネット情報とは、セット/リセットルートピンに繋がるセット/リセットネットリストと、該セット/リセットネットリストに接続される全てのフリップフロップまたはラッチ回路の位置情報を含むことを特徴とする半導体集積回路設計方法。
【0068】
(付記12) 付記4記載の半導体集積回路設計方法において、
前記セット/リセット分配回路の合成は、バッファの挿入及びセット/リセット信号の配線を合成することを含むことを特徴とする半導体集積回路設計方法。
【0069】
(付記13) 付記4記載の半導体集積回路設計方法において、
合成した前記セット/リセット分配回路と、前記階層ブロックの外枠との交点に、新たなピンを生成することを特徴とする半導体集積回路設計方法。
【0070】
(付記14) 付記4記載の半導体集積回路設計方法において、
前記マッピングする工程には、前記セット/リセット分配回路のバッファ座標位置及び階層ブロックのピン座標位置を求める工程と、
前記セット/リセット分配回路の座標位置を、階層構造のレイアウトデータのチップまたは各階層ブロック内での座標位置に変換する工程とを有することを特徴とする半導体集積回路設計方法。
【0071】
(付記15) 付記4記載の半導体集積回路設計方法において、
更に前記セット/リセット分配回路を前記階層レイアウトデータ上にマッピングすることによって新たにできたピンをタイミング制約に追加する工程を有することを特徴とする半導体集積回路設計方法。
【0072】
(付記16) 半導体集積回路の設計プログラムにおいて、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、分配回路の合成に必要なネット情報を抽出する分配回路合成用データベースを作成し、
前記分配回路合成用データベースを用いて、階層構造を展開した半導体集積回路全体についての分配回路を合成し、
前記合成された分配回路を、前記階層構造のレイアウトデータ上へマッピングする工程を有することを特徴とする半導体集積回路設計プログラム。
(付記17) 半導体集積回路の設計プログラムにおいて、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、クロックネット情報を抽出するクロック合成用データベースを作成し、
前記クロック合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのクロック分配回路を合成し、
前記クロック分配回路を、前記階層構造のレイアウトデータ上へマッピングすることを特徴とする半導体集積回路設計プログラム。
【0073】
(付記18) 付記17記載の半導体集積回路設計プログラムにおいて、
同一の階層ブロックを複数配置する場合には、予め前記階層ブロックを単独の階層ブロックとして固有化処理をすることを特徴とする半導体集積回路設計プログラム。
【0074】
(付記19) 付記17記載の半導体集積回路設計プログラムにおいて、
前記クロックネット情報とは、クロックルートピンに繋がるクロックネットリストと、該クロックネットリストに接続される全てのフリップフロップまたはラッチ回路の位置情報を含むことを特徴とする半導体集積回路設計プログラム。
【0075】
(付記20) 半導体集積回路の設計プログラムにおいて、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、セット/リセット信号のネット情報を抽出するセット/リセット合成用データベースを作成し、
前記セット/リセット合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのセット/リセット信号分配回路を合成し、
前記セット/リセット信号分配回路を、前記階層構造のレイアウトデータ上へマッピングすることを特徴とする半導体集積回路設計プログラム。
【0076】
【発明の効果】
以上説明したように、本発明では、階層を展開した状態でFF/ラッチ回路へのクロック又は各種信号の分配回路の設計を行い、階層を有するレイアウトデータと合体させるので、余分な中継バッファを挿入せず最適な分配回路を設計できる。
【図面の簡単な説明】
【図1】 本発明の概念図
【図2】 本発明を適用した設計方法のためのハードウェア構成図
【図3】 本発明を適用した第一の実施形態による処理フロー図
【図4】 クロック合成前の階層レイアウト
【図5】 クロック合成用データベースの作成
【図6】 クロック合成用データベースの内容
【図7】 クロック分配回路の合成
【図8】 クロック分配回路のマッピング
【図9】 本発明を適用した第二の実施形態による処理フロー図
【図10】 セット/リセット分配回路の合成
【図11】 第一の従来方法
【図12】 第二の従来方法
【図13】 従来の方法による処理フロー
【符号の説明】
2 階層レイアウトデータ
3 分配回路合成用データベース
4 分配回路
5 分配回路を配置した階層レイアウトデータ
6、103 FF/ラッチ回路
7 バッファ
100 チップ
101A〜E 階層ブロック
114A〜G ローカルクロックバッファ
115 グローバルクロックバッファ
120 クロック配線
218 クロック分配回路
270 クロック合成用データベース
420 セット/リセット合成用データベース
421 セット/リセット分配回路
503 セット/リセット信号分配用のローカルバッファ
506 セット/リセット信号分配用の配線
Claims (2)
- CPUにて実行される半導体集積回路の設計方法において、
記憶部から複数の階層ブロックを有する階層構造のレイアウトデータを抽出し、抽出した前記階層構造のレイアウトデータに基づいてセット/リセット信号のネット情報を抽出してセット/リセット合成用データベースを作成し、
前記セット/リセット合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのセット/リセット信号分配回路を合成し、
前記セット/リセット信号分配回路を、前記階層構造のレイアウトデータ上へマッピングすることを特徴とする半導体集積回路設計方法。 - 半導体集積回路の設計プログラムにおいて、
複数の階層ブロックを有する階層構造のレイアウトデータを入力し、セット/リセット信号のネット情報を抽出してセット/リセット合成用データベースを作成し、
前記セット/リセット合成用データベースを用いて、階層構造を展開した半導体集積回路全体についてのセット/リセット信号分配回路を合成し、
前記セット/リセット信号分配回路を、前記階層構造のレイアウトデータ上へマッピングすることを特徴とする半導体集積回路設計プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002117624A JP4131119B2 (ja) | 2002-04-19 | 2002-04-19 | 半導体集積回路設計方法及び半導体集積回路設計プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002117624A JP4131119B2 (ja) | 2002-04-19 | 2002-04-19 | 半導体集積回路設計方法及び半導体集積回路設計プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003316843A JP2003316843A (ja) | 2003-11-07 |
JP4131119B2 true JP4131119B2 (ja) | 2008-08-13 |
Family
ID=29534759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002117624A Expired - Fee Related JP4131119B2 (ja) | 2002-04-19 | 2002-04-19 | 半導体集積回路設計方法及び半導体集積回路設計プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4131119B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4876770B2 (ja) * | 2005-08-15 | 2012-02-15 | 富士通セミコンダクター株式会社 | 集積回路のレイアウト設計方法および集積回路のレイアウト設計プログラム |
US7409657B2 (en) | 2005-10-05 | 2008-08-05 | Matsushita Electric Industrial Co., Ltd. | Clock tree layout method for semiconductor integrated circuit |
JP4805779B2 (ja) * | 2006-10-04 | 2011-11-02 | 富士通株式会社 | 集積回路設計方法、集積回路設計装置及び集積回路設計プログラム |
JP4733059B2 (ja) | 2007-01-30 | 2011-07-27 | 富士通株式会社 | 集積回路設計装置、集積回路設計方法及び集積回路設計プログラム |
US8286115B2 (en) * | 2008-12-09 | 2012-10-09 | International Business Machines Corporation | Fast routing of custom macros |
JP6070100B2 (ja) * | 2012-11-19 | 2017-02-01 | 株式会社ソシオネクスト | 回路設計方法、回路設計プログラムおよび回路設計装置 |
US9098666B2 (en) * | 2012-11-28 | 2015-08-04 | Qualcomm Incorporated | Clock distribution network for 3D integrated circuit |
US8893073B2 (en) | 2012-12-27 | 2014-11-18 | Synopsys, Inc. | Displaying a congestion indicator for a channel in a circuit design layout |
-
2002
- 2002-04-19 JP JP2002117624A patent/JP4131119B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003316843A (ja) | 2003-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268797B2 (en) | Architectural physical synthesis | |
US8966415B2 (en) | Architectural physical synthesis | |
Donno et al. | Clock-tree power optimization based on RTL clock-gating | |
US7624366B2 (en) | Clock aware placement | |
US9852253B2 (en) | Automated layout for integrated circuits with nonstandard cells | |
US9280632B2 (en) | Methods and apparatuses for circuit design and optimization | |
US7653884B2 (en) | Methods and systems for placement | |
US8239805B2 (en) | Method for designing integrated circuits employing a partitioned hierarchical design flow and an apparatus employing the method | |
US6598215B2 (en) | Datapath design methodology and routing apparatus | |
WO2005119441A2 (en) | Methods and systems for structured asic eletronic design automation | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
JP4131119B2 (ja) | 半導体集積回路設計方法及び半導体集積回路設計プログラム | |
US8694940B2 (en) | System and method for integrated circuit design and implementation using mixed cell libraries | |
US11704467B2 (en) | Automated balanced global clock tree synthesis in multi level physical hierarchy | |
Pandini et al. | Global and local congestion optimization in technology mapping | |
JP2004265224A (ja) | 半導体集積回路設計方法および設計支援装置 | |
Pedram et al. | Combining technology mapping with layout | |
Bening et al. | Physical Design of 0.35-μm Gate Arrays for Symmetric Multiprocessing Servers | |
Cao et al. | Post-layout logic duplication for synthesis of domino circuits with complex gates | |
Bazargan | FPGA Technology Mapping, Placement, and Routing | |
Kapadia | Partitioning-driven convergence in the design of random-logic blocks | |
Alpert et al. | Placement-Driven Synthesis Design Closure Tool | |
Kim | Physically-coupled replication and resynthesis | |
Yang | Congestion and timing optimization for standard-cell placement | |
JP2006049638A (ja) | 半導体装置の設計方法および半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050328 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080314 |
|
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: 20080430 |
|
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: 20080513 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120606 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120606 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130606 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140606 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |