JPH11175579A - 集積回路の設計方法、集積回路及び記憶媒体 - Google Patents

集積回路の設計方法、集積回路及び記憶媒体

Info

Publication number
JPH11175579A
JPH11175579A JP9345117A JP34511797A JPH11175579A JP H11175579 A JPH11175579 A JP H11175579A JP 9345117 A JP9345117 A JP 9345117A JP 34511797 A JP34511797 A JP 34511797A JP H11175579 A JPH11175579 A JP H11175579A
Authority
JP
Japan
Prior art keywords
clock
flip
integrated circuit
path
stages
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.)
Granted
Application number
JP9345117A
Other languages
English (en)
Other versions
JP2993488B2 (ja
Inventor
Toshio Tazaki
利雄 田崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP9345117A priority Critical patent/JP2993488B2/ja
Publication of JPH11175579A publication Critical patent/JPH11175579A/ja
Application granted granted Critical
Publication of JP2993488B2 publication Critical patent/JP2993488B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】ゲートアレイやスタンダードセルなどの集積回
路のレイアウト設計時に、クロックスキューやホールド
タイムに関わる不具合が発生しないように配置段階で考
慮し、クロックスキューに対する制約を緩和し、バック
アノテーション後の後戻り工程の発生を抑制する。 【解決手段】フリップフロップ間のデータ信号の経路内
に挿入されるべきゲート回路の段数を計測する工程(ス
テップ101)と、段数が相対的に大きい経路に係るフ
リップフロップが相互に近傍に配置し、段数が相対的に
小さい経路に係るフリップフロップが相互に遠距離に配
置するように、各フリップフロップの配置を決定する工
程(ステップ104)とを設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ゲートアレイ型や
スタンダードセル型の集積回路の設計方法に関し、特
に、クロックのスキュー制約が厳しい回路におけるクロ
ック配線や記憶素子、フリップフロップなどの配置を決
定するレイアウト方法に関する。
【0002】
【従来の技術】ゲートアレイ型やスタンダードセル型の
集積回路を設計する場合、与えられた論理式に適合する
ように設計することはもちろんのこととして、与えられ
たクロックに対して配線遅延などにより動作が不安定に
なったりすることがないように、各種の論理ゲートやフ
リップフロップを配置し、クロック配線を決定する。
【0003】図6は、記憶素子としてフリップフロップ
を使用し、クロックに同期して動作する回路の一例を示
す図である。
【0004】回路内には4個のフリップフロップ601
〜604が設けられ、これらフリップフロップ601〜
604には、クロックドライバ607によってクロック
が分配されている。初段のフリップフロップ601のデ
ータ出力端子と2段目のフリップフロップ602のデー
タ入力端子とはネット608によって直接接続されてい
る。フリップフロップ602のデータ出力端子と次のフ
リップフロップ603のデータ入力端子とは、その間に
組み合わせ回路605が挿入されるとともに、ネット6
09,610によって接続されている。フリップフロッ
プ603のデータ出力端子と終段のフリップフロップ6
04のデータ入力端子とは、その間に論理ゲート606
(図示した例ではNANDゲート)を一段介し、ネット
611,612によって接続されている。
【0005】図6に示したように前段のフリップフロッ
プのデータ出力が次段のフリップフロップのデータ入力
となるような同期式の回路では、これらフリップフロッ
プに対して共通のクロックが与えられるようにする必要
がある。動作周波数が高くて配線遅延を無視できないよ
うな場合には、いもづる式のクロック配線によって各フ
リップフロップにクロックを供給すると、クロック源に
最も近いフリップフロップと最も遠いフリップフロップ
との間でのクロックパルスの到達に大きな時間差を生
じ、回路が正常に動作しないことがある。
【0006】そこで、クロックドライバから各フリップ
フロップのクロック入力端子までの遅延時間がほぼ等し
くなるように、つまりクロックスキューが小さくなるよ
うに、バッファツリーを構成してクロック配線をレイア
ウトすることが一般的に行われている。この手法はクロ
ックツリーシンセシス(CTS; Clock Tree Synthesi
s)と呼ばれている。このバッファツリーの構成の一例
を図7に示す。
【0007】図7に示す例では、まずクロック信号の最
もソース側にある1段目のクロックドライバ701から
複数(図示した例では4個の)の2段目のクロックドラ
イバ702〜705にクロックネット712を介してク
ロック信号が分配され、さらに、これらのクロックドラ
イバから各フリップフロップのクロック入力端子にクロ
ック信号が分配される。例えば、クロックドライバ70
3からは、クロックネット713を介してフリップフロ
ップ706〜711のクロック入力端子にクロック信号
が分配される。ここでは、クロックドライバが2段の場
合を示したが、さらに段数が多い場合もある。論理上
は、図6のように単一のクロックドライバ607で表さ
れていても、実際にレイアウトが行う時には、そのクロ
ックドライバは、図7に示すように複数段数のクロック
バッファツリーに展開されるわけである。
【0008】図8は、展開されたバッファツリーと各フ
リップフロップのレイアウトの一例を示す図である。チ
ップ801のほぼ中央部に、1段目のクロックドライバ
802が配置し、このクロックドライバ802は、ネッ
ト809〜811を介して、次段の6個のクロックドラ
イバ803〜808に接続している。1段目のクロック
ドライバ802と2段目のクロックドライバ803〜8
08との間は、クロック信号の遅延差がなるべく小さく
なるように、ネット809〜811のレイアウトが行わ
れる。各クロックドライバの駆動能力や負荷によって多
少の相違があるが、大まかにいえば、1段目のクロック
ドライバと2段目のクロックドライバとの間の配線長
が、2段目の各クロックドライバ間においてほぼ等しく
なるように配線レイアウトを決定する。なお、クロック
信号の遅延差は、配線の形状等を決定する際においての
み考慮されるわけではなく、配線を決定する前に行われ
るクロックドライバの配置の決定に際しても、配線長や
配線形状を予め予測することにより、考慮されている。
2段目の各クロックドライバ803〜808は、最終段
となるフリップフロップに接続している。ここでは、ネ
ット820,821を介してクロックドライバ806に
接続するフリップフロップ812〜819のみが図示さ
れているが、他のクロックドライバ803〜805,8
07,808にもそれぞれ複数のフリップフロップが接
続している。クロックドライバとフリップフロップとの
接続においても、1段目のクロックドライバと2段目の
クロックドライバの間で考慮されたのと全く同じよう
に、クロック信号の遅延差がなるべく小さくなるように
配線を決定する。そしてその結果、おおもとのクロック
から各フリップフロップのクロック入力端子までのクロ
ック信号の遅延時間の差がほぼ等しくなる。
【0009】図9は、クロック系の信号のための配線や
クロックドライバ、フリップフロップなどが上述したよ
うにクロックバッファツリーによって配置し、クロック
信号での遅延差がなるべく小さくなるようにレイアウト
した場合に、データ系の信号(クロック系の信号以外の
信号)のための配線がどうなるかを示している。ここで
は、2段目のクロックドライバ901からネット91
1,912を介して各フリップフロップ902〜909
にクロックが供給されるものとする。ここで、フリップ
フロップ902〜904の相互間でのデータ信号の接続
関係が、図6におけるフリップフロップ601〜603
の相互間での接続関係と同じにあるとすると、フリップ
フロップ902が出力するデータ信号がフリップフロッ
プ903に直接入力することになる。つまり、データ信
号の観点からすれば、フリップフロップ902とフリッ
プフロップ903とはネット913によって直接接続さ
れていてこれらは強い接続の関係にあり、そのため、こ
れら2つのフリップフロップ902,903は相互にご
く近傍に配置されデータ信号に関する限り両者間の配線
長も非常に短くなる。一方。フリップフロップ903と
フリップフロップ904とは、データ信号に関しては、
ネット914,915を経由し組み合わせ回路910を
介して接続されているため、接続関係が弱い。したがっ
て、フリップフロップ903,904は、相互に近傍に
配置されるとは限らず、むしろやや離れた位置に配置さ
れることが多い。
【0010】以上説明したクロック配線方法を含め、集
積回路全体のレイアウトを決定する設計方法の手順は図
10のフローチャートに示したもののようになる。
【0011】まずクロックツリーを構成し(ステップ9
51)、その結果として得られるネットリストに基づい
て、フロア上に、クロックドライバ(CD)とフリップ
フロップ(F/F)を配置する(ステップ952)。上
述したように、このあと行う配線工程において配線遅延
差の合わせ込みを行いやすいように考慮して、クロック
ドライバやフリップフロップを配置を行う。次に、集積
回路を構成する回路ブロックのうち未配置となっている
残りのブロックについて、配置を行う(ステップ95
3)。
【0012】以上の配置工程(ステップ952,95
3)が終わったら、次に、配線工程を実施する。配線工
程においては、クロックドライバ間の配線及びクロック
ドライバと各フリップフロップ間の配線のレイアウトを
まず決定し(ステップ954)、次に、残りの配線のレ
イアウトを決定する(ステップ955)。
【0013】全ての配線工程が完了したら配線遅延時間
を算出し(ステップ956)、この結果をもとにバック
アノテーションを行ってタイミングを検証する(ステッ
プ957)。この検証において、与えられたタイミング
制約を満足するか否かを判断し(ステップ958)、問
題なければ製造工程に移る(ステップ959)。もしタ
イミング制約を満足することができていなければ再レイ
アウトを行う。上述のステップ951〜957までの各
工程のうち、どの工程からやり直すかは状況に応じて決
定する。
【0014】この従来のレイアウト設計方法には、接続
が強いフリップフロップ相互が近傍に配置されてしまう
ため、接続が強いフリップフロップの相互間ではクロッ
クスキュー値の制約を非常に厳しくしなければならない
という問題点がある。例を挙げて説明すると次のように
なる。図11に示す2つのフリップフロップ971,9
72はデータ信号線が直接接続されており、接続関係が
強い。具体的には、フリップフロップ971のデータ出
力が、フリップフロップ972のデータ入力端子に入力
している。フリップフロップ972に入力するデータを
DATABで表す。また、フリップフロップ971,9
72のクロック入力端子に入力するクロック信号をそれ
ぞれCLKA,CLKBで表すことにする。図12(a),
(b)は、図11の回路でクロックが変化したときの信号
の変化の様子を示すタイミングチャートである。ここで
は、データがクロックの立ち上がりエッジに同期して変
化する例を挙げている。
【0015】図12(a)では、フリップフロップ971,
972へのクロック信号CLKA,CLKB間にクロッ
クスキューがあり、CLKBの方がCLKAに比べて信
号が遅延して変化している。フリップフロップ971の
出力データはCLKAの立ち上がりに同期して変化する
が、その時刻t1がCLKAの立ち上がり時刻taとCL
KBの立ち上がり時刻tbとの間となった場合、フリッ
プフロップ972においてはデータはCLKBの立ち上
がりでラッチされるので、フリップフロップ971での
変化後の出力データをラッチしてしまうことになり誤動
作してしまう。この誤動作を防ぐには、クロックスキュ
ーつまり時刻tbと時刻taとの差を極力小さくする必要
があるが、そもそも時刻t1と時刻taとの時刻差がフリ
ップフロップ971内の遅延量であって非常に小さいの
で、それだけクロックスキューへの制約も厳しくなる。
このような傾向は、ゲートやフリップフロップの動作速
度の向上に伴いますます顕著になってきており、クロッ
クスキューを小さくするレイアウト設計は、集積回路で
の高集積化とともにますます困難になりつつあり、もは
や限界にきているといえる。
【0016】図12(b)は、フリップフロップ971,9
72へのクロック信号CLKA,CLKB間にクロック
スキューがほとんどない場合の例であるが、この場合に
おいても別の問題が発生する。つまりクロックの立ち上
がり時刻tcと入力データの変化時刻t1との時刻差が非
常に小さいため、フリップフロップ972において、規
定されたホールドタイムを満足できずに不具合を発生す
る可能性がある。ホールドタイムを満足しないことがあ
るという問題も、ゲートの動作速度の向上に伴いますま
す顕著になってきている。
【0017】図12(a),(b)を用いて説明したこれらの
問題については、従来は、レイアウト終了後のバックア
ノテーションでそのような問題を検出した場合には、一
度行ったレイアウト設計に対して修正を施すということ
で対処していた。例えば、特開平7−121580号公
報には、クロック配線やデータ配線を迂回させたり、あ
るいは配線途中に遅延素子を挿入するという手法が開示
されている。この手法は、バックアノテーションによる
修正方法として一般的に行われている手法である。
【0018】
【発明が解決しようとする課題】上述した従来のレイア
ウト設計方法では、クロックスキューやホールドタイム
に関わる不具合箇所をバックアノテーション時などに検
出した場合に、迂回配線や遅延素子挿入という手法を用
いて修正を行っている。しかしながら、集積回路におけ
る高集積化や回路パターンの微細化が進んでいる状況に
おいては、不具合箇所を検出し修正を行おうとしても、
迂回配線や遅延素子挿入といったことを自由に行うこと
が困難になりつつあり、修正自体を容易には行えないと
いう問題点が生じている。
【0019】本発明の目的は、クロックスキューやホー
ルドタイムに関わる不具合箇所が発生しないように、ク
ロックドライバやフリップフロップなどの配置を決定す
る段階で考慮し、これによってクロックスキューに対す
る制約を緩和できるとともに、バックアノテーション後
の後戻り工程の発生を抑制できる集積回路の設計方法
と、この設計方法に基づく集積回路とを提供することに
ある。
【0020】
【課題を解決するための手段】本発明の集積回路の設計
方法は、集積回路を構成する回路ブロック間の接続関係
を表す接続関係リストに基づき、回路ブロックを集積回
路のフロア内に配置する集積回路の設計方法であって、
回路ブロックとして、状態を記憶するとともにクロック
に同期して動作する記憶素子が含まれ、記憶素子間のデ
ータ信号の経路内に挿入されるべきゲート回路の段数を
計測する工程と、段数が相対的に大きい経路に係る記憶
素子が相互に近傍に配置し、段数が相対的に小さい経路
に係る記憶素子が相互に遠距離に配置するように、各記
憶素子の配置を決定する工程と、を有する。
【0021】本発明の集積回路は、複数の回路ブロック
がフロア内に配置された集積回路において、回路ブロッ
クとして、状態を記憶するとともにクロックに同期して
動作する記憶素子が含まれ、記憶素子間のデータ信号の
経路内に挿入されるゲート回路の段数に応じ、段数が相
対的に大きい経路に係る記憶素子が相互に近傍に配置
し、段数が相対的に小さい経路に係る記憶素子が相互に
遠距離に配置している。
【0022】本発明において記憶素子とは、入力データ
を保持、記憶して出力するとともに、データの入力及び
/または出力がクロックに同期して行われるもののこと
である。典型的には、各種のフリップフロップが、本発
明での記憶素子に含まれる。
【0023】本発明の集積回路の設計方法は、上述した
従来のレイアウト設計方法と比べ、記憶素子(フリップ
フロップ)間の論理段数から各論理ブロック間の接続の
強さを計算し、接続が強い、つまりフリップフロップ間
の論理段数が少ない場合にはレイアウト時にそれを考慮
し近傍に配置されないようにする、あるいはフリップフ
ロップ間に仮想ノードや遅延素子を予め挿入する点で相
違している。本発明では、接続強度が大きいフリップフ
ロップが相互に遠くに配置されるので、これらフリップ
フロップ間で必要なクロックスキューの精度を緩和する
ことができ、しかもバックアノテーション後の後戻り工
程を少なくすることができる。
【0024】
【発明の実施の形態】次に、本発明の実施の形態につい
て、図面を参照して説明する。図1は、本発明の実施の
一形態の集積回路の設計方法により、集積回路での回路
ブロックの配置や配線を決定するレイアウト設計を行う
際の手順を示すフローチャートである。ここでは、集積
回路を構成する論理ゲートやフリップフロップ、組み合
わせ回路などの回路ブロックについて、回路ブロック間
の接続関係を表す接続関係リストが予め与えられている
ものとする。レイアウト設計では、与えられた接続関係
リストに基づいて、クロックツリーシンセシス(CT
S)を生成するとともに、集積回路のフロアに、クロッ
クドライバやフリップフロップ、論理ゲート、組み合わ
せ回路などの回路ブロックを配置し、これら回路ブロッ
ク間の配線の経路や形状などを決定する。
【0025】まず、レイアウト設計を開始する前に、接
続関係リストを参照し、データ信号に関するフリップフ
ロップ間の論理段数を計算し記憶する(ステップ10
1)。ここでフリップフロップ間の論理段数とは、ある
クロック信号に同期して動作する第1のフリップフロッ
プのデータ出力が、各種の論理ゲートや組合せ回路を経
て、あるいは直接、同じクロック信号に同期して動作す
る第2のフリップフロップのデータ入力端子に入力する
として、第1のフリップフロップのデータ出力端子から
第2のフリップフロップのデータ入力端子までの経路に
介在する論理ゲートの段数のことである。ここでは、第
1のフリップフロップのデータ出力端子と第2のフリッ
プフロップのデータ入力端子までの経路には、上述と同
じクロック信号に同期して動作するフリップフロップは
存在しないものとする。また、複数の経路が存在する場
合には、論理ゲートの段数の少ない方の経路に対応する
論理段数を求める。
【0026】次に、論理段数の算出結果に基づいて。フ
リップフロップ間のデータ信号ネットに対して重み付け
を行う(ステップ102)。この重み付けは、レイアウ
ト時に考慮されるものであって、重み付けが大きいフリ
ップフロップの組み合わせほど近傍に配置されるように
設定するものである。ネットに重み付けを行ってレイア
ウトする手法は従来から行われているものであるが、本
実施形態は、重み付けの方法として、単に各論理ブロッ
ク間の接続強度を基準とするものではなく、フリップフ
ロップ間の論理段数を基準に加えたものを用いているこ
とが特徴である。本実施の形態での重み付けの方法とし
ては、例えば上述の「従来の技術」で説明した図6を用
いると、フリップフロップ601とフリップフロップ6
02とはデータ信号のネット608により直接接続され
て接続強度が強い。このように接続強度が強いフリップ
フロップの組み合わせに対しては、レイアウト時に近傍
に配置されないように、ネット608に負の値の重みを
設定する。一方、フリップフロップ602とフリップフ
ロップ603とは組み合わせ回路605を介して接続さ
れており、これら2つのフリップフロップ602,60
3間の論理段数が大きく接続強度が弱いので、ネット6
09,610及び組み合わせ回路605内でデータの経
路上にあるネットに対しては、通常の値の重み、あるい
は論理段数が大きい場合にはそれだけ大きな値の重みを
設定する。具体的には、ゲート段数に対するしきい値を
予め設定しておき、ゲート段数がしきい値に満たない場
合には負の重みを設定し、しきい値を超えた場合に正の
重みを設定するようにすればよい。
【0027】各フリップフロップ間のネットに対する重
み付け設定が済んだら、その結果に基づいてクロックツ
リーを生成する(ステップ103)。ここでのクロック
ツリー生成では、フリップフロップ間のネットの重みづ
けが小さい場合にはそれらのフリップフロップに直接ク
ロックを分配するクロックドライバを別にするなどし
て、それらのフリップフロップが相互になるべく遠くに
配置されるように考慮する。続けて、予め与えられてい
る接続関係リストと作成したクロックツリーとに基づい
て、集積回路のフロアにクロックドライバと各フリップ
フロップを配置する(ステップ104)。当然ここで
は、先に設定した重みが考慮され、具体的には、重みが
小さいものフリップフロップ相互が遠く、重みが大きい
フリップフロップ相互が近くなるように配置する。その
後、未配置となっている他の回路ブロックを配置し(ス
テップ105)、配置工程を終了する。
【0028】配置工程が終わったら、次に、配線工程を
実施する。配線工程においては、まず、クロックドライ
バ間の配線及びクロックドライバと各フリップフロップ
間の配線のレイアウトを決定する(ステップ106)。
その際、設定されている重みに応じた配線が行われるよ
うにする。次に、残りのブロック間の配線レイアウトを
決定する(ステップ107)。
【0029】全ての配線工程が完了したら配線遅延時間
を算出し(ステップ108)、この結果をもとにバック
アノテーションを行ってタイミングを検証する(ステッ
プ109)。この検証において、与えられたタイミング
制約を満足するか否かを判断し(ステップ110)、問
題なければ製造工程に移る(ステップ111)。もしタ
イミング制約を満足することができていなければ再レイ
アウトを行う。上述のステップ103〜109までの各
工程のうち、どの工程からやり直すかは状況に応じて決
定する。
【0030】次に、上述したレイアウト設計手順によっ
て、クロックドライバ、フリップフロップ、論理ゲート
及び組み合わせ回路などを集積回路のフロアに配置し、
また、これら回路ブロック間の配線を決定した例につい
て説明する。図2は、単一のクロックドライバ(CD)
201を使用し、このクロックドライバ201から各フ
リップフロップ(F/F)にクロック信号を直接分配す
る例を示している。接続関係リストを参照することによ
り、フリップフロップ202とフリップフロップ203
がデータ信号に関して直接接続していることが分かり、
これら2つのフリップフロップ202,203間の接続
強度は強いことになる。これに対し、フリップフロップ
203とフリップフロップ204とは間に組み合わせ回
路205を介して接続されており、これら2つのフリッ
プフロップ203,204間の接続強度は弱い。
【0031】上述のステップ101においてフリップフ
ロップ間の論理段数について以上のことが分かることに
より、ステップ102において、フリップフロップ20
2とフリップフロップ203の間のネット206には負
の重みが設定され、一方、フリップフロップ203とフ
リップフロップ204との間のネット207,208
と、組み合わせ回路205内のデータ経路上のネットに
は、大きい重みが設定されている。ステップ104で
は、この重み付けにしたがって、各フリップフロップを
配置を行う。その結果、図2に示すように、フリップフ
ロップ202とフリップフロップ203とは相互に離れ
た位置に配置され、フリップフロップ203とフリップ
フロップ204とは、組み合わせ回路205も含め、全
て近傍に配置される。
【0032】配置工程の終了後、配線工程を行うわけで
あるが、配線工程においては、フリップフロップ203
とフリップフロップ204と組み合わせ回路205の間
のネット207,208はなるべく短い距離で配線され
るように考慮される。一方、相互に離されて配置されて
いるフリップフロップ202とフリップフロップ203
の間の配線206は、短い距離で配線される必要は低
く、多少迂回して配線されても問題にならないため、も
し他に配線長を短くする必要があるネットが近傍にあれ
ば、そのネットの配線を優先させることができる。
【0033】図3は、集積回路上に設けられるフリップ
フロップを複数の群にわけ、各群とごとにクロックドラ
イバを設けてその群のフリップフロップに対してそのク
ロックドライバからクロックを直接分配するような構成
とした場合のレイアウトの一例を示している。この場
合、群の数に応じたクロックドライバが設けられるわけ
であるが、これらのクロックドライバに対してクロック
を供給するおおもとのクロックドライバ(不図示)が別
途設けられ、これによって、異なる群間でのクロック同
期が保証されている。図示した例では、2つのクロック
ドライバ301,302からネット311〜313を介
して各フリップフロップにクロックが直接供給されてい
る。
【0034】接続関係リストを参照することにより、フ
リップフロップ303とフリップフロップ304がデー
タ信号に関して直接接続していることが分かり、これら
2つのフリップフロップ303,304間の接続強度は
強いことになる。これに対し、フリップフロップ304
とフリップフロップ305とは間に組み合わせ回路30
6を介して接続されており、これら2つのフリップフロ
ップ304,305間の接続強度は弱い。ここでフリッ
プフロップ303とフリップフロップ304とは、接続
強度が大きいため、従来のクロックツリー生成において
は同一のクロックドライバからクロックを分配されるこ
とが多いが、本実施の形態においては、クロックツリー
生成時に、データについて相互の接続強度が大きい2つ
のフリップフロップ303,304は、それぞれ別のク
ロックドライバからクロックが供給されるように考慮す
る。通常、群ごとのクロックドライバは、ある程度離れ
た位置に配置されるから、クロックドライバを別にする
だけで、フリップフロップ303とフリップフロップ3
04の間のネット307の配線距離が長くなることが期
待できる。また、フリップフロップ304とフリップフ
ロップ305の間の論理段数が大きいことにより、これ
らの間のネット308,309と、組み合わせ回路30
6内のデータ経路上のネットには、大きい重みが設定さ
れている。フリップフロップ304とフリップフロップ
305とは、組み合わせ回路306も含め、全て近傍に
配置される。
【0035】配置工程においては、上述したフリップフ
ロップ303〜305以外のフリップのフリップフロッ
プの配置も行うが、その際にも重みを考慮することでさ
らに配線長を制御することができる。
【0036】さらに、配置工程に引き続く配線工程にお
いても重みを考慮して、配線のレイアウトを決定する。
このように重みを考慮することにより、接続強度が大き
いフリップフロップ303とフリップフロップ304と
の間のネットの配線307が、非常に長くなるようにレ
イアウトされる。
【0037】以上述べたように、接続強度が大きいフリ
ップフロップ間の配線長が長くなるようにレイアウト設
計を行うと、例えば、従来の技術で述べた図11におけ
るフリップフロップ971のデータ出力においてデータ
変化があってもそれが次段のフリップフロップ972の
データ入力端子に到達するまでの時間が長くなる。図1
2(a)に示した場合と同様に多少のクロックスキューが
あったとしても、本実施形態のによれば、フリップフロ
ップ972のデータ入力端子におけるデータ変化の時刻
1がこのフリップフロップへのクロック信号CLKB
の立ち上がりの時刻tbより後になる。したがって従来
は問題となったクロックスキューがあっても、回路が正
常に動作するようになる。つまりクロックスキューの制
約を緩和することができる。また、従来のレイアウト方
法によれば図12(b)に示すようにホールド時間が不足
してエラーとなることがあったのに対し、本実施形態に
よれば、十分なホールド時間が確保されるため、ホール
ド時間制約エラーが解消される。
【0038】次に、本発明の別の実施の形態について説
明する。ここでは、仮想ノードを挿入してレイアウト設
計を実行する場合を説明する。図4は、仮想ノードを含
む回路の一例を示す回路図である。この回路は図6に示
した回路同様に4個のフリップフロップ402〜405
を有し、これらフリップフロップ402〜405には、
クロックドライバ401からネット409を介してクロ
ックが分配されている。初段のフリップフロップ402
のデータ出力端子と2段目のフリップフロップ403の
データ入力端子とは直接接続されていたものであって、
これらフリップ402とフリップ403との間の接続強
度は大きい。そこでこの実施形態では、初段のフリップ
フロップ402のデータ出力端子と2段目のフリップフ
ロップ403のデータ入力端子の間に仮想ノード406
を挿入し、仮想ノード406も通常の論理セルと同様に
配置することとしている。ただし、仮想ノードは通常の
論理セルと重ねて配置することが可能である。
【0039】また、フリップフロップ403のデータ出
力端子と次のフリップフロップ404のデータ入力端子
とは、その間に組み合わせ回路407が挿入されるとと
もに、ネット413,414によって接続されている。
フリップフロップ404のデータ出力端子と終段のフリ
ップフロップ405のデータ入力端子とは、その間に論
理ゲート408を一段介し、ネット414,415によ
って接続されている。
【0040】この回路では、接続強度が大きいネットに
対し、仮想ノード406を挿入し、この仮想ノード40
6は通常の論理セルと同様に配置されるようにしてい
る。このように構成することによって、接続強度が大き
い2つのフリップフロップ402,403間のネット
は、直接ではなく、仮想ノード406とネット410,
411を経由して配線されることとなり、配線長が長く
なるように制御されることが期待できる。また、仮想ノ
ードの挿入段数は1段に限られるものではなく、複数段
設定することが可能である。配置工程において、仮想ノ
ードは接続される論理ブロックからなるべく遠ざけて配
置する、というように制御することもできる。
【0041】図5は、仮想ノードを配置しこの仮想ノー
ドを経由するようにフリップフロップ間のネットを配線
したレイアウト例を示している。接続関係が強いフリッ
プフロップ502とフリップフロップ503との間に仮
想ノード505が挿入され、仮想ノード505は2つの
フリップフロップ502,503からやや離れた位置に
配置されている。フリップフロップ502,503間の
ネット507,508は仮想ノード505を経由して配
線されることになるため、結果的に配線長が長くなる。
一方、フリップフロップ503,504の間は、組み合
あせ回路506が挿入されネット509,510を介し
て接続しているので、これら2つのフリップフロップ5
03,504の間の接続強度は小さく、したがって、フ
リップフロップ503,504の間には仮想ノードを挿
入する必要はない。なお、各フリップフロップ502〜
504には、クロックドライバ501からネット511
を介してクロックが供給されている。
【0042】ここでは、接続強度の大きいフリップフロ
ップ間のネットの配線長が長くなるように制御すること
で、図1〜図3に示す実施形態での場合と同様にクロッ
クスキューの緩和及びホールドタイム不足によるエラー
の解消が図れる。なお、仮想ノードの代わりに遅延素子
を挿入するようにしてもよい。ただし、仮想ノードの代
わりに遅延素子を挿入した場合、遅延素子が実在の回路
ブロックとなるため、通常の論理セルと重ね合わせて配
置することはできない。
【0043】以上説明した本発明の集積回路の設計方法
は、一般に、この方法を実施するための計算機プログラ
ムを計算機システムに読み込ませ、この計算機プログラ
ムを実行することによって実行される。図13は、計算
機システムの構成を示すブロック図である。
【0044】この計算機システムは、中央処理装置(C
PU)51と、プログラムやデータを格納するためのハ
ードディスク装置52と、主メモリ53と、キーボード
やマウスなどの入力装置54と、CRTなどの表示装置
55と、磁気テープやCD−ROM等の記録媒体57を
読み取る読み取り装置56とから構成されている。ハー
ドディスク装置52、主メモリ53、入力装置54、表
示装置55及び読み取り装置56は、いずれも中央処理
装置51に接続している。集積回路の設計を行うための
プログラムを格納した記録媒体57を読み取り装置56
に装着し、記録媒体57からプログラムを読み出してハ
ードディスク装置52に格納し、ハードディスク装置5
2に格納されたプログラムを中央処理装置51が実行す
ることにより、上述した集積回路の設計が実行される。
【0045】
【発明の効果】以上説明したように本発明は、接続強度
の大きい記憶素子(フリップフロップ)間のネットの配
線長をレイアウト設計時に考慮して長くするように制御
することで、クロックスキューの制約を緩和することが
可能となり、レイアウト設計がこれまでに比較して容易
になる。またホールドタイム制約エラーについても発生
し難くなる。そしてこれらの理由によりバックアノテー
ション時にタイミングエラーが検出され修正するという
作業を生じ難くでき、レイアウト設計にかかるターンア
ラウンド時間を短くできるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の一形態の集積回路の設計方法で
のレイアウト設計手順を示すフローチャートである。
【図2】図1に示す手順に基づいてレイアウト設計を行
った場合の配置、配線の一例を示す図である。
【図3】図1に示す手順に基づいてレイアウト設計を行
った場合の配置、配線の別の例を示す図である。
【図4】本発明の別の実施形態に基づき、仮想ノードを
挿入した回路の一例を示す回路図である。
【図5】仮想ノードを含めてレイアウト設計を行った場
合の配置、配線の一例を示す図である。
【図6】従来のレイアウト設計方法におけるフリップフ
ロップを含む同期式の回路の一例を示す回路図である。
【図7】クロックツリーの構成の一例を示す回路図であ
る。
【図8】従来のレイアウト設計方法によるクロックドラ
イバ及びフリップフロップの配置、配線の一例を示す図
である。
【図9】従来のレイアウト設計方法によるクロックドラ
イバ及びフリップフロップの配置、配線の別の例を示す
図である。
【図10】従来のレイアウト設計方法の手順を示すフロ
ーチャートである。
【図11】強い接続関係にあるフリップフロップを示す
回路図である。
【図12】(a),(b)は、図11の回路でのクロックとデ
ータとの関係を示すタイミングチャートである。
【図13】計算機システムの構成を示すブロック図であ
る。
【符号の説明】
51 中央処理装置(CPU) 52 ハードディスク装置 53 主メモリ 54 入力装置 55 表示装置 56 読み取り装置 57 記録媒体 101〜111 ステップ 201 クロックドライバ 202〜204 フリップフロップ 205 組み合わせ回路 206〜210 ネット 301〜302 クロックドライバ 303〜305 フリップフロップ 306 組み合わせ回路 307〜312 ネット 401 クロックドライバ 402〜405 フリップフロップ 406 仮想ノード 407 組み合わせ回路 408 論理ゲート 409〜415 ネット 501 クロックドライバ 502〜504 フリップフロップ 505 仮想ノード 506 組み合わせ回路 507〜511 クロック信号 601〜604 フリップフロップ 605 組み合わせ回路 606 論理ゲート 607 クロックドライバ 608〜612 ネット 701〜705 クロックドライバ 706〜711 フリップフロップ 712,713 ネット 801 チップ 802〜808 クロックドライバ 809〜811,820,821 ネット 812〜819 フリップフロップ 901 クロックドライバ 902〜909,971,972 フリップフロップ 910 組み合わせ回路 911〜915 ネット

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 集積回路を構成する回路ブロック間の接
    続関係を表す接続関係リストに基づき、前記回路ブロッ
    クを集積回路のフロア内に配置する集積回路の設計方法
    であって、 前記回路ブロックとして、状態を記憶するとともにクロ
    ックに同期して動作する記憶素子が含まれ、 前記記憶素子間のデータ信号の経路内に挿入されるべき
    ゲート回路の段数を計測する工程と、 前記段数が相対的に大きい経路に係る前記記憶素子が相
    互に近傍に配置し、前記段数が相対的に小さい経路に係
    る前記記憶素子が相互に遠距離に配置するように、前記
    各記憶素子の配置を決定する工程と、 を有する集積回路の設計方法。
  2. 【請求項2】 前記段数が相対的に小さい経路に仮想ノ
    ード及び/または遅延素子を挿入し、前記仮想ノードを
    含めて前記回路ブロックの配置を決定する請求項1に記
    載の集積回路の設計方法。
  3. 【請求項3】 前記各記憶素子にクロックを分配して供
    給する複数のクロックドライバを前記フロア内に配置す
    るとともに、前記段数が相対的に小さい経路に係る2つ
    の記憶素子を、それぞれ異なるクロックドライバからク
    ロックが供給されるように配置する、請求項1に記載の
    集積回路の設計方法。
  4. 【請求項4】 前記段数が相対的に小さい経路が、当該
    経路外からの信号が入力する論理ゲートの段数が0であ
    る経路である、請求項1乃至3いずれか1項に記載の集
    積回路の設計方法。
  5. 【請求項5】 前記各回路ブロック間の配線レイアウト
    を決定する工程をさらに有し、前記段数が相対的に小さ
    い経路の配線長が長くなるように配線レイアウトを決定
    する請求項1乃至5いずれか1項に記載の集積回路の設
    計方法。
  6. 【請求項6】 集積回路を構成する回路ブロック間の接
    続関係を表す接続関係リストに基づき、前記回路ブロッ
    クを集積回路のフロア内に配置する集積回路の設計方法
    であって、 前記回路ブロックとして、状態を記憶するとともにクロ
    ックに同期して動作する記憶素子が含まれ、 前記記憶素子間のデータ信号の経路内に挿入されるべき
    ゲート回路の段数を計測する工程と、 前記段数に対する予め設定されたしきい値よりも段数が
    小さい経路に対して負の重みが設定され、前記しきい値
    を超える段数の経路に対して正の重みが設定されるよう
    に、前記経路ごとに、その経路での前記段数に応じた重
    みを設定する工程と、 前記重みが大きい経路に係る前記記憶素子が相互にでき
    るだけ近傍に配置し、前記重み小さい経路に係る前記記
    憶素子が相互に遠距離に配置するように、前記各記憶素
    子の配置を決定する工程と、 を有する集積回路の設計方法。
  7. 【請求項7】 複数の回路ブロックがフロア内に配置さ
    れた集積回路において、 前記回路ブロックとして、状態を記憶するとともにクロ
    ックに同期して動作する記憶素子が含まれ、 前記記憶素子間のデータ信号の経路内に挿入されるゲー
    ト回路の段数に応じ、前記段数が相対的に大きい経路に
    係る前記記憶素子が相互に近傍に配置し、前記段数が相
    対的に小さい経路に係る前記記憶素子が相互に遠距離に
    配置していることを特徴とする集積回路。
  8. 【請求項8】 各記憶素子にクロックを分配して供給す
    る複数のクロックドライバを前記フロア内に有し、前記
    段数が相対的に小さい経路に係る2つの記憶素子に対
    し、それぞれ異なるクロックドライバからクロックが供
    給される請求項7に記載の集積回路。
  9. 【請求項9】 集積回路を構成する回路ブロック間の接
    続関係を表す接続関係リストに基づき、前記回路ブロッ
    クを集積回路のフロア内に配置する処理を計算機に実行
    させるプログラムを格納した記憶媒体において、 前記回路ブロックとして、状態を記憶するとともにクロ
    ックに同期して動作する記憶素子が前記集積回路に含ま
    れており、 前記計算機に、 前記記憶素子間のデータ信号の経路内に挿入されるべき
    ゲート回路の段数を計測する工程と、 前記段数が相対的に大きい経路に係る前記記憶素子が相
    互に近傍に配置し、前記段数が相対的に小さい経路に係
    る前記記憶素子が相互に遠距離に配置するように、前記
    各記憶素子の配置を決定する工程と、 を実行させるプログラムを格納したことを特徴とする記
    録媒体。
JP9345117A 1997-12-15 1997-12-15 集積回路の設計方法、集積回路及び記憶媒体 Expired - Lifetime JP2993488B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9345117A JP2993488B2 (ja) 1997-12-15 1997-12-15 集積回路の設計方法、集積回路及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9345117A JP2993488B2 (ja) 1997-12-15 1997-12-15 集積回路の設計方法、集積回路及び記憶媒体

Publications (2)

Publication Number Publication Date
JPH11175579A true JPH11175579A (ja) 1999-07-02
JP2993488B2 JP2993488B2 (ja) 1999-12-20

Family

ID=18374404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9345117A Expired - Lifetime JP2993488B2 (ja) 1997-12-15 1997-12-15 集積回路の設計方法、集積回路及び記憶媒体

Country Status (1)

Country Link
JP (1) JP2993488B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519750B2 (en) 2000-03-13 2003-02-11 Nec Corporation Method of designing layout for integrated circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519750B2 (en) 2000-03-13 2003-02-11 Nec Corporation Method of designing layout for integrated circuit

Also Published As

Publication number Publication date
JP2993488B2 (ja) 1999-12-20

Similar Documents

Publication Publication Date Title
JP2882359B2 (ja) レイアウト設計装置
US5663889A (en) Apparatus for computing delay time of integrated circuit
JPH098143A (ja) 遅延最適化方法
US6090150A (en) Method of designing clock wiring and apparatus for implementing the same
JP3695428B2 (ja) 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム
JP2993488B2 (ja) 集積回路の設計方法、集積回路及び記憶媒体
CN108459876B (zh) 用于缩减面积的控制寄存器电路的方法与装置
JP2001125937A (ja) 半導体集積回路装置のレイアウト設計システム、半導体集積回路装置のレイアウト設計方法、およびそのシステムにおける各手段をもしくはその方法における各工程をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2010004352A (ja) 半導体集積回路およびその設計装置
JP2000091506A (ja) 半導体集積回路
US7797653B2 (en) Circuit verification apparatus, circuit verification method, and signal distribution method for the same
JPH10154793A (ja) 半導体集積回路のレイアウト設計方法
JP3116915B2 (ja) クロックネットのレイアウト設計変更方式
JP3553010B2 (ja) 半導体集積回路設計方法
JP2001308186A (ja) フリップフロップ追加修正が可能なレイアウト方法およびレイアウトプログラムを記録した記録媒体
JP3561661B2 (ja) 半導体集積回路及び半導体集積回路の設計方法
JP2962232B2 (ja) スキャンパス回路の自動配置配線方法
US7979821B2 (en) Method of verifying semiconductor integrated circuit and design program
JP2874719B2 (ja) 集積回路設計装置
JP2000215223A (ja) スキャンパス接続装置
JPH11259555A (ja) マクロの設計方法
JP2004005126A (ja) 半導体集積回路設計装置およびその設計方法
JP2786017B2 (ja) 半導体集積回路の製造方法
JPH11125662A (ja) 半導体集積回路及びフルスキャン実行方法
JP2004266034A (ja) 半導体集積回路、および半導体集積回路の設計方法