JP2005004496A - 半導体集積回路のレイアウト方法およびレイアウト装置 - Google Patents
半導体集積回路のレイアウト方法およびレイアウト装置 Download PDFInfo
- Publication number
- JP2005004496A JP2005004496A JP2003167495A JP2003167495A JP2005004496A JP 2005004496 A JP2005004496 A JP 2005004496A JP 2003167495 A JP2003167495 A JP 2003167495A JP 2003167495 A JP2003167495 A JP 2003167495A JP 2005004496 A JP2005004496 A JP 2005004496A
- Authority
- JP
- Japan
- Prior art keywords
- delay time
- clock
- data line
- synchronous circuit
- circuit cell
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】製造ばらつきによるクロックスキュー発生を補償するための遅延調整素子の挿入により、半導体集積回路の面積、電力が増大する。
【解決手段】データライン306における遅延時間τLが相対的に小さい場合には、フリップフロップ対(304,305)からクロック合流点307までのクロック遅延時間τCが短くなるように、データライン306の入出力フリップフロップ対(304,305)を選択する。これにより、製造ばらつきを考慮したホールドエラー回避のために挿入すべき遅延調整素子309の数を減らすことができ、チップ面積、消費電力を削減することができる。
【選択図】 図3
【解決手段】データライン306における遅延時間τLが相対的に小さい場合には、フリップフロップ対(304,305)からクロック合流点307までのクロック遅延時間τCが短くなるように、データライン306の入出力フリップフロップ対(304,305)を選択する。これにより、製造ばらつきを考慮したホールドエラー回避のために挿入すべき遅延調整素子309の数を減らすことができ、チップ面積、消費電力を削減することができる。
【選択図】 図3
Description
【0001】
【発明の属する技術分野】
本発明は、半導体集積回路のレイアウト方法およびレイアウト装置に関し、特に、製造ばらつきによるクロックスキューの発生を考慮したレイアウトの技術に関する。
【0002】
【従来の技術】
クロック信号を複数の同期回路セルに分配するクロックツリー方式は、クロックドライバから各同期回路セル(例えばフリップフロップ)のクロック入力端子までの遅延時間がほぼ等しくなるようにバッファツリーを構成し、クロックのスキューを抑える設計方法である。
【0003】
しかしながら、上記手法では、チップ内の製造プロセスばらつきを考慮したタイミング設計がなされておらず、製造段階でタイミング不良品を除去するため、製造歩留まりが低下するという問題があった。
【0004】
そこで、従来の半導体集積回路のレイアウト方法は、プロセスばらつき等で生じるクロックスキューによる誤動作回避のために、図7に示すフローのようにして対応している。
【0005】
ステップ701において、フリップフロップおよびその他の論理セルを配置する。ステップ702において、クロックドライバを付加しつつ、フリップフロップとクロック信号線を接続する(CTS:Clock Tree Synthesis;クロック配線処理)。ステップ703において、その他の論理セルとフリップフロップとを接続する。これにより、クロックツリーが形成される。
【0006】
ステップ704のタイミング検証においては、その後のレイアウトデータに対し、データラインの送り側および受け側となるフリップフロップ対を考察の対象とする。それぞれのフリップフロップのクロック端子からクロックツリーを遡り、その合流点までの遅延を考慮する。この遅延に対し、製造ばらつきが原因で生じるスキューを考慮して、ホールド/セットアップエラーの有無を検証する。合流点までのクロック遅延が大きければ大きいほど、製造ばらつきにより生じるクロックスキューの絶対時間が大きくなる。このことを考慮して、タイミング検証を行う。タイミング検証により、ホールドエラーが検出された場合には、ステップ705において、データライン上に遅延調整素子を付加する。これにより、タイミング補償を行う。セットアップエラーについては、データラインをより高速化する等の手段で補償する(例えば、特許文献1参照)。
【0007】
このレイアウト方法によれば、製造ばらつきを考慮した設計になっているため、製造歩留りが低下することはないとされている。
【0008】
この従来のレイアウト方法は、チップ全体の配置配線設計済みのレイアウトデータに対するタイミング検証結果に応じて不具合箇所を補正する手法である。
【0009】
【特許文献1】
特開平10−301982号公報(第3頁、第1−4図)
【0010】
【発明が解決しようとする課題】
しかしながら、上記従来のレイアウト方法では、製造ばらつきによるタイミングエラー箇所が非常に多く検出される可能性がある。特に、ホールドエラーに関しては、検出されたエラーへの対応方法は、データラインへの遅延調整素子の挿入である。そのため、多くのエラーに対応する結果、レイアウト上の空きスペースに遅延調整素子を多数配置しなければならない場合には、チップ面積や消費電力の増大を招くことになる。また、空きスペースが十分に無い場合には、再配置配線が必要となり、設計完成の遅れを招くことになる。
【0011】
また、フリップフロップのクロック端子からクロックの合流点までの遅延が大きいほど、製造ばらつきによるスキューは大きくなることが想定される。このため、一箇所につき多数の遅延調整素子が必要になり、チップ面積、消費電力が大幅に増大する可能性がある。
【0012】
本発明は、このような事情に鑑みて創作したものであり、データラインとその送り側および受け側となる同期回路セル対の配置および接続について、製造ばらつきを考慮した最適化を図る上で、挿入すべき遅延調整素子の数の削減を図り、チップ面積や消費電力を削減することを目的としている。
【0013】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【0014】
第1の解決手段は、レイアウト前に遅延調整素子数削減の対策を講じる。第1の解決手段として、本発明による半導体集積回路のレイアウト方法は、データラインで接続される送り側および受け側の同期回路セルとクロックドライバのレイアウト配置と、前記両同期回路セルとクロックドライバを接続する配線経路とを決定するレイアウト方法であって、前記レイアウト配置と前記配線経路とを決定するに、前記両同期回路セル間のデータライン遅延時間τLに応じて決定することを特徴としている。
【0015】
そして、上記の場合の好ましい態様としては、前記レイアウト配置と前記配線経路の決定を、前記データライン遅延時間τLが相対的に小さいことを優先して、前記同期回路セル対に対するクロック分岐点からのクロック遅延時間τCがより小さくなる条件で行うことである。さらに、前記データラインと前記同期回路セル対との接続関係を論理接続情報に反映することが好ましい。
【0016】
これは、同期回路セル対のそれぞれについてデータライン遅延時間τLが決まり、その大小関係による優先順位を決め、優先順位の高いものから始めて(データライン遅延時間τLの小さいものを優先して)、クロック分岐点までのクロック信号線の形態を決め、そのような組み合わせとしてクロックツリーを構築する。端的には、データライン遅延時間τLが小さいほどクロック遅延時間τCがより小さくなるようにクロック分岐点を選択するものである。
【0017】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0018】
クロックツリーを伴う半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
前記優先順位の高い順に同期回路セル対を互いに近傍に配置するステップと、
前記優先順位の高いものほどクロック分岐点が前記同期回路セル対の近傍になるようにクロックドライバを配置した上で配線を行うステップと、
配置配線後にタイミング検証を行うステップと、
タイミング検証の結果、ホールドエラーのある箇所に遅延調整素子を挿入するステップとである。
【0019】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0020】
すなわち、クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、前記優先順位の高い順に同期回路セル対を互いに近傍に配置する手段と、前記優先順位の高いものほどクロック分岐点が前記同期回路セル対の近傍になるようにクロックドライバを配置した上で配線を行う手段と、配置配線後にタイミング検証を行う手段と、タイミング検証の結果、ホールドエラーのある箇所に遅延調整素子を挿入する手段とを備えたレイアウト装置である。
【0021】
高集積化された半導体集積回路では、すべての同期回路セル対についてクロック遅延時間τCを削減することは困難であるが、データライン遅延時間τLが十分に大きければ、たとえ大きなクロックスキューが発生しても、ホールドエラーの発生を抑制できる。したがって、クロック遅延時間τCが大きくても、データライン上に遅延調整素子を挿入する必要はない。一方、データライン遅延時間τLが相対的に小さい場合には、そのデータラインの同期回路セル対に対するクロック遅延時間τCを、データライン遅延時間τLの小ささに応じて小さくすれば、ホールドエラー発生の抑制の度合いが高まることになる。すなわち、
if〔τL→小〕then〔τC→小〕 …………(*1)
のように模式化して考えることができる。このように、データライン遅延時間τLに応じてレイアウト配置と配線経路の決定を行うことにより、製造ばらつきを考慮したホールドエラー回避のための遅延調整素子の数を減らすことができ、チップ面積、消費電力を削減することができる。
【0022】
第2の解決手段は、レイアウト後に遅延調整素子数削減の対策を講じる。第2の解決手段として、本発明による半導体集積回路のレイアウト方法は、データラインで接続される送り側および受け側の同期回路セルとクロックドライバのレイアウト配置と、前記両同期回路セルとクロックドライバを接続する配線経路とを決定してあらかじめレイアウトを行い、前記レイアウトされている複数の同期回路セルの中から前記データラインに接続すべき同期回路セル対を選択するに、当該データラインの遅延時間τLに応じて選択することを特徴としている。
【0023】
これは、同期回路セル群およびクロックドライバの配置配線が決まりレイアウトがあらかじめなされている状態において、データライン遅延時間τLの大小関係による優先順位を決め、優先順位の高いものから始めて(データライン遅延時間τLの小さいものを優先して)、同期回路セル対の位置を決める。
【0024】
そして、上記の場合の好ましい態様としては、前記データラインに接続すべき同期回路セル対の選択を、前記データライン遅延時間τLが相対的に小さいことを優先して、前記同期回路セル対に対するクロック遅延時間τCがより小さくなる条件で行うことである。端的には、データライン遅延時間τLが小さいほどクロック遅延時間τCがより小さい位置にある同期回路セル対を選択するものである。
【0025】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0026】
同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
前記優先順位の高い順に同期回路セル対を前記クロックツリーの中から選択するステップとである。
【0027】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0028】
すなわち、同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、前記優先順位の高い順に同期回路セル対を前記クロックツリーの中から選択する手段とを備えたレイアウト装置である。
【0029】
これも、
if〔τL→小〕then〔τC→小〕 …………(*1)
の原則に従っている。このように、データライン遅延時間τLに応じて同期回路セル対を選択することにより、製造ばらつきを考慮したホールドエラー回避のための遅延調整素子の数を減らすことができ、チップ面積、消費電力を削減することができる。
【0030】
第3の解決手段として、本発明による半導体集積回路のレイアウト方法は、クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路のレイアウト方法であって、セル群が配置配線されたレイアウトデータにおいて、同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行うことを特徴としている。
【0031】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0032】
同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行うステップとである。
【0033】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0034】
すなわち、同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行う手段とを備えたレイアウト装置である。
【0035】
使用する同期回路セルの種類によっては、同期回路セルの出力遅延時間τO、ホールド時間τHが異なるため、データライン遅延時間τLと製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差τSだけによる手法では十分に最適化されていない場合がある。そこで、データライン遅延時間τLとクロック遅延時間差τSに加えて、送り側同期回路セルの出力遅延時間τOと受け側同期回路セルのホールド時間τHも加味して対応する。これにより、各データラインに割り当てた同期回路セル対をさらに最適化し、遅延調整素子の削減効果を向上する。
【0036】
第4の解決手段として、本発明による半導体集積回路のレイアウト方法は、クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路のレイアウト方法であって、セル群が配置配線されたレイアウトデータにおいて、同期回路セル間のデータライン遅延時間をτL、クロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、クロックツリーを構成する配線を再配線することを特徴としている。
【0037】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0038】
同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
同期回路セル間のデータライン遅延時間をτL、クロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、クロックツリーを構成する配線を再配線するステップとである。
【0039】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0040】
すなわち、同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、同期回路セル間のデータライン遅延時間をτL、クロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、クロックツリーを構成する配線を再配線する手段とを備えたレイアウト装置である。
【0041】
データライン遅延時間τLの小さいデータラインが多数存在し、クロック分岐点からの遅延時間τCが小さい同期回路セル対が少数しかない場合には、遅延時間τLの小さいデータラインに対しクロック遅延時間τCの大きい同期回路セル対が割り当てられている場合が起こり得る。このような場合に、クロックツリーを構成する配線を繋ぎ替えることで、クロック分岐点からの遅延時間τCが小さい同期回路セル対を増やすことが可能となり、ホールドエラー回避のためのデータラインへ挿入すべき遅延調整素子の数をさらに削減することができる。
【0042】
上記において、前記再配線を、前記データライン遅延時間τLが相対的に小さいことを優先して、前記同期回路セル対に対するクロック遅延時間τCがより小さくなる条件で行うことは、好ましい態様である。挿入すべき遅延調整素子の数のさらなる削減を可能とする。
【0043】
【発明の実施の形態】
以下、本発明にかかわる半導体集積回路のレイアウト方法・装置の実施の形態を説明する。
【0044】
本発明は、製造ばらつきによるホールドエラーの発生を抑えるために挿入する遅延調整素子数を削減し、面積、消費電力および設計時間を削減するレイアウト手法にかかわるものである。そこで、まず、ホールドエラーの発生条件を考察する。以下では、同期回路セルとしてフリップフロップを例に挙げる。送り側フリップフロップの出力遅延時間をτO、フリップフロップ間のデータライン遅延時間をτL、クロックスキューをτS、受け側フリップフロップのホールド時間をτHとして、
τO+τL<τS+τH ………(式1)
がホールドエラーの発生条件である。(式1)において、フリップフロップの出力遅延τO、ホールド時間τHを一定とする。そして、
τO−τH=T0 ………(式2)
として、
τS−τL>T0 ………(式3)
書き換えると、
τS>τL+T0 ………(式4)
これがホールドエラーの発生条件である。
【0045】
製造ばらつきを考慮した場合にホールドエラーが発生しやすい状況は、以下の2つの場合である。
【0046】
一つは、フリップフロップ間のデータライン遅延時間τLが相対的に小さい場合である。(式4)によると、この場合は、わずかなクロックスキューτSによってもホールドエラーが発生しやすくなる。データライン遅延時間τLが小さいほど(式4)が成立しやすくなるからである。
【0047】
もう一つは、クロックスキューτSが大きい場合である。クロックスキューτSが大きいほど(式4)が成立しやすくなるからである。
【0048】
設計段階でクロックスキューτSはゼロになるように設計されている。それでも、製造のばらつきによってはクロックスキューは発生し得る。製造ばらつきによってクロックスキューτSが大きくなる条件は、フリップフロップ対のそれぞれのクロック端子からクロック信号線を遡った合流点(クロック分岐点)までのクロック遅延時間τCが一定以上に大きくなることである。これは、製造ばらつき率が同じであっても、クロック分岐点からフリップフロップまでのクロック遅延時間τCが相対的に大きい場合の方が、製造ばらつきによって生じるクロックスキューτSの絶対時間が大きくなるためである。
【0049】
以上のことから、ホールドエラー抑制の条件は、次のようになる。(式4)を否定すると、
τS≦τL+T0 ………(式5)
ということになる。
【0050】
そこで、フリップフロップ対に挟まれているデータライン遅延時間τLを大きくするか、または、できる限りクロックスキューτSを削減すればよいことになる。データライン遅延時間τLが大きいほど(式5)が成立しやすくなるからである。また、クロックスキューτSが小さいほど、(式5)が成立しやすくなる。
【0051】
フリップフロップ対について、クロック分岐点からの遅延時間τCはクロックスキューτSに相関する。そこで、(式5)のクロックスキューτSに代えて、クロック分岐点からフリップフロップまでのクロック遅延時間τCを用い、T0に代えてT0′を用いて表現すると、
τC≦k・τL+T0′ ………(式6)
となる(∵τS≒k・τC)。これもホールドエラー抑制の条件である。フリップフロップ対に挟まれているデータライン遅延時間τLを大きくするか、または、できる限りクロック遅延時間τCを削減すればよいことになる。クロック遅延時間τCが小さいほど(式6)が成立しやすくなるからである。
【0052】
高集積化されたLSIでは、クロック遅延時間τCを削減することは非常に困難である。しかしながら、例えば、データライン遅延時間τLが十分に大きければ、たとえ大きなクロックスキューτSが発生しても、(式5)より、ホールドエラーの発生を抑制できる。つまり、このような箇所に対しては、(式6)より、クロック分岐点からの遅延時間τCが大きくても、データライン上に遅延調整素子を挿入する必要はない。
【0053】
したがって、挿入する遅延調整素子数を削減するためには、データライン遅延時間τLが相対的に小さい場合に、そのデータラインの入出力フリップフロップ対に入力されるクロック信号のクロック分岐点からの遅延時間τCを充分に小さくすればよいことになる。
【0054】
なお、データライン遅延時間τLが大きい場合には、対応可能な箇所のクロック遅延時間τCを削減しておけば、これは、セットアップ時間に対するマージンとなる。
【0055】
以下、本発明の実施の形態を具体的レベルで説明する。
【0056】
(実施の形態1)
実施の形態1は、レイアウト前に遅延調整素子数削減の対策を講じるものである。図1は、本発明の実施の形態1における半導体集積回路のレイアウト方法を説明するフローチャートである。
【0057】
まず、ステップ101において、集積回路の論理接続情報から全てのフリップフロップ対を検索し、各々のフリップフロップ対の間に存在する組み合わせ回路によって構成されているデータライン遅延時間τLを算出する。論理接続情報は論理合成によって生成される場合が多いが、その場合は、論理合成の結果からデータライン遅延時間τLを簡単に求めることができる。
【0058】
次に、ステップ102において、ステップ101によって求めた各々のデータライン遅延時間τLに基づき、データライン遅延時間τLの小さい順に、次ステップ103の処理の優先度が高くなるよう順位付けを行う。データライン遅延時間τLの小さいものを優先するというのは、(式4)から明かなように、ホールドエラーが発生しやすいものを選んでいるということである。
【0059】
ステップ103において、ステップ102で決定された優先順位に基づいて、フリップフロップの配置を行う。この際、優先順位が高くホールドエラーを起こしやすい順にデータラインの入出力フリップフロップ対を互いに近傍に配置するようにする。
【0060】
ステップ104において、後工程でブロック内の自動配線を行う際の入力データとなる論理接続情報に対し、接続すべきデータラインとフリップフロップ対に関する情報を反映させる。
【0061】
さらにステップ105において、ステップ103で配置されたフリップフロップ対へのクロック分配のためのクロック分岐点がフリップフロップ対の近傍になるようにクロックドライバを配置する。すなわち、クロック分岐点からフリップフロップ対までのクロック遅延時間τCが短くなるようにクロックドライバを配置する。通常は、クロックドライバをフリップフロップ対の近傍に配置することで、上記の目的を実現することができる。
【0062】
ステップ106において、フリップフロップ、クロックドライバ以外の論理セルを配置する。そして、ステップ107において、必要なクロックドライバを適宜追加しながら、クロックツリーを生成する(CTS:Clock Tree Synthesis;クロック配線処理)。
【0063】
さらにステップ108において、ステップ104で生成した論理接続情報に基づいて、論理セル、フリップフロップを配線する。
【0064】
全ての配線接続が完了した後、ステップ109において、ステップ108までに生成したレイアウトデータに対し、製造ばらつきを考慮したタイミング検証を実施する。そして、ステップ110において、検証結果に基づいて、ホールドエラー回避のための遅延調整素子を挿入する。
【0065】
次に、上述したレイアウト設計手法を用いて、フリップフロップ、クロックドライバ、その他の論理セルを配置配線した例について図示する。
【0066】
図2(a)は、従来のレイアウト設計手法によりクロックツリーとフリップフロップおよびデータラインを設計した場合の回路図の一部を示した模式図、図2(b)は、タイミング検証結果に基づき、従来の設計に対してタイミング補正をかけた後の回路図の一部を示した模式図である。また図3は、図1のフローチャートに従って、フリップフロップ、クロックドライバを配置し、クロックツリーを生成した場合の回路図の一部を示した模式図である。これらの図においては、フリップフロップ間のデータラインの遅延時間τLの大きさが矩形面積に比例するように表現されている。
【0067】
図2では、フリップフロップ201,202間のデータライン203の遅延時間τLが大きいことから遅延調整素子が不要となる。図2(b)では、フリップフロップ201,202間に遅延調整素子は挿入されていない。
【0068】
一方、フリップフロップ204,205に関しては、データライン206の遅延時間τLが小さく、また、入出力フリップフロップ対(204,205)のクロック分岐点207は比較的離れていて、クロック遅延時間τCが大きくなっている。つまり、分岐後のクロック段数が大きくなっている。そのため、クロック信号の製造ばらつきによるクロックスキューτSが大きくなる可能性がある。遅延時間τLが小さく、かつクロックスキューτSが大きいときは、(式5)が成立しにくく、したがって、タイミング補償のために、図2(b)に示すように、フリップフロップ204,205間に多くの遅延調整素子208の挿入が必要になる。これは、本発明以前の対応に相当する。
【0069】
一方、本発明の実施の形態1を適用する場合には、図3に示すように、フリップフロップ301,302間のデータライン303の遅延時間τLは大きく、フリップフロップ304,305のデータライン306の遅延時間τLは小さい。したがって、図1のステップ102〜105の論理に従うと、遅延時間τLのより小さい方のフリップフロップ304,305が優先され、入出力フリップフロップ対(304,305)は、クロック分岐点307に対して近接配置される。これに対して、遅延時間τLのより大きい方の入出力フリップフロップ対(301,302)は、より遠いクロック分岐点308に接続されるように配置される。
【0070】
フリップフロップ301,302間のデータライン303については、その遅延時間τLが大きいことから遅延調整素子は不要である。
【0071】
一方、フリップフロップ304,305のデータライン306に関しては、その遅延時間τLは小さく、ホールドエラーの発生する可能性はあるが、入出力フリップフロップ対(304,305)のクロック分岐点307は近接していて、クロック遅延時間τCが小さくなっている。つまり、分岐後のクロック段数が小さくなっている。そのため、クロック信号の製造ばらつきによるクロックスキューτSは小さい。遅延時間τLは小さいが、クロック遅延時間τCも小さいので、(式6)の成立のしにくさは、その度合いが低く、タイミング補償のために遅延調整素子309の挿入を必要とするが、その挿入数は少なく抑えることが可能となる。
【0072】
(実施の形態2)
本実施の形態2は、すでにクロックツリーが構成されている場合に遅延調整素子の挿入数を削減するものである。
【0073】
図4は、本発明の実施の形態2について、半導体集積回路の設計方法の処理フローを説明するフローチャートである。
【0074】
ステップ401において、フリップフロップ、その他の論理セルを配置し、ステップ402において、クロックドライバを付加しながらフリップフロップ、クロックドライバを配線し、クロックツリーを構成する。
【0075】
ステップ403において、集積回路の論理接続情報から全てのフリップフロップ対を検索し、各々のフリップフロップ対の間に存在する組み合わせ回路によるデータライン遅延時間τLを算出する。論理接続情報は論理合成によって生成される場合が多く、その場合は、データライン遅延時間τLを論理合成の結果より簡単に求めることができる。
【0076】
次に、ステップ404において、ステップ403によって求めた各々のデータライン遅延時間τLに基づき、データライン遅延時間τLの小さい順に、次ステップ405の処理の優先度が高くなるよう順位付けを行う。これは、実施の形態1の場合と同様に、(式6)に基づいて、ホールドエラーが発生しやすいのはデータライン遅延時間τLがより小さい、という論理を適用するためである。
【0077】
ステップ405において、ステップ404で決定された優先順位に基づいて、各データラインの入出力フリップフロップをクロックツリーの中から選択する。この際、優先順位が高くホールドエラーを起こしやすい順に、クロック分岐点からのクロック遅延が小さいフリップフロップ対を選択する。つまり、その選択したフリップフロップ対を、当該のデータラインの入出力フリップフロップ対とする。
【0078】
図5にステップ405の適用による効果を表す模式図を示す。3つのデータライン501,502,503それぞれの遅延時間τLについて、データライン501,502,503の順に遅延時間τLが小さいとする。すると、ステップ405の処理においては、遅延時間τLが一番小さいデータライン501の優先度が最も高い。これにより、データライン501の入出力フリップフロップ対としては、クロック分岐点504からのクロック遅延時間τCが小さいフリップフロップ対(507,508)が優先的に割り当てられる。
【0079】
次に優先順位の高いデータライン502には、フリップフロップ対(509,507)が割り当てられ、最も優先順の低いデータライン503には、クロック分岐点506からのクロック遅延時間τCが大きいフリップフロップ対(510,511)が割り当てられる。
【0080】
このようにステップ405を適用するのは、ホールドエラーを抑えるための遅延調整素子数を削減するためである。
【0081】
次いで、ステップ406において、後工程でブロックの自動配線を行う際の入力データとなる論理接続情報に対し、各データラインとレイアウト上のフリップフロップ対の接続関係情報を反映させる。
【0082】
ステップ407において、ステップ405で各データラインに割り当てたフリップフロップ対をさらに最適化し、遅延調整素子を削減する。例えば、使用するフリップフロップの種類によっては、フリップフロップの出力遅延時間、ホールド時間が異なるため、ステップ405の手法のみでは十分に最適化されていない場合がある。
【0083】
ステップ407において、ホールドエラー発生条件を示した(式1)を用い、データライン毎に、
τD=τS−τL+τH−τO ………(式7)
を算出する。これは、(式1)の右辺から左辺を減算したものに相当する。この算出結果が各データラインに必要な遅延調整時間τDとなる。
【0084】
τD>0 ………(式8)
がホールドエラーの発生条件になる。
【0085】
(式7)において、クロックスキューτSに代えてクロック分岐点からのクロック遅延時間τCで捉える場合には、遅延調整時間をτD′として、
τD′=k・τC−τL+τH−τO ………(式9)
となる。また、(式8)に代えて、
τD′>0 ………(式10)
となる。
【0086】
この遅延調整時間τD′を全データラインについて算出した結果の和S、すなわち、
S=ΣτD′=Σ(k・τC−τL+τH−τO) ………(式11)
が最小になるように、各データラインの入出力フリップフロップ対の再割り当てを行う。但し、各データラインでの算出結果が負になった場合は、遅延調整素子の挿入が不要なため、加算対象とはしない。
【0087】
次いで、ステップ408において、その他の論理セルをステップ406で生成した論理接続情報に基づいて配線した後、さらにステップ409において、クロックツリーの構成を最適化する。これにより、遅延調整素子を削減する。
【0088】
例えば、データライン遅延時間τLの小さいデータラインが多数存在し、クロック分岐点からの遅延時間τCが小さい入出力フリップフロップ対が少数しかない場合には、ステップ407までの工程で、データライン遅延時間τLの小さいデータラインに対し、クロック遅延時間τCの大きい入出力フリップフロップ対が割り当てられている場合が存在することになり、この場合には、ホールドエラー回避のため、データラインへの遅延調整素子の挿入が必要となる。
【0089】
しかしながら、クロックツリーを構成する配線を繋ぎ替えることで、クロック分岐点からの遅延時間τCが小さい入出力フリップフロップ対を増やすことができる。
【0090】
図6にステップ409の適用による、クロックツリーの構成の差と、その効果を表す模式図を示す。
【0091】
図6(a)において、データライン601〜605の遅延時間τLが小さく遅延調整素子を挿入する必要があるとする。フリップフロップ対(606,607)、(608,609)、(611,612)は、クロック分岐点618,619,622からのクロック遅延時間τCが小さく、製造ばらつきによるクロックスキューτSは、遅延調整素子一つ分に相当するとする。この場合、データライン601,603,605には、遅延調整素子613,615,617をそれぞれ一つずつ挿入すればよい。
【0092】
フリップフロップ対(607,608)、(610,611)は、クロック分岐点620,623からのクロック遅延時間τCが大きく、製造ばらつきによるクロックスキューτSは、遅延調整素子二つ分に相当するとする。この場合、データライン602,604には、二つずつの遅延調整素子614a,616aのように挿入する必要がある。
【0093】
一方、ステップ409によりクロックツリーを構成する配線を繋ぎ替えると、図6(b)のようになる。フリップフロップ対(607,608)のクロック分岐点をフリップフロップ対(606,607)と同じクロック分岐点618に繋ぎ替え、フリップフロップ対(610,611)のクロック分岐点をフリップフロップ対(611,612)と同じクロック分岐点622に繋ぎ替えている。これにより、各フリップフロップ対のクロック分岐点からの遅延時間τCを小さくすることができる。その結果、製造ばらつきによるクロックスキューτSも小さくなるため、データライン602,604には、一つ分相当の遅延調整素子614,616を挿入するだけでよく、挿入すべき遅延調整素子数を削減することができる。
【0094】
なお、上記では、ステップ405,407,409を一連のフローチャートで説明したが、それぞれのステップを単独で実施しても遅延調整素子の削減効果がある。
【0095】
また、実施の形態1で説明した方法によって生成したクロックツリーに対しても、ステップ405,407,409を適用することで、遅延調整素子の削減が可能であることはもちろんである。
【0096】
【発明の効果】
以上説明したように本発明は、データライン遅延時間が相対的に小さい場合には同期回路セルからクロックの合流点までのクロック遅延時間が短くなるように構成することにより、製造ばらつきを考慮したホールドエラー回避のために挿入すべき遅延調整素子の数を減らすことができ、チップ面積、消費電力を削減することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における半導体集積回路のレイアウト方法を説明するフローチャート
【図2】従来のレイアウト設計手法によりクロックツリーとフリップフロップおよびデータラインを設計した場合の回路図の一部を示した模式図
【図3】本発明の実施の形態1における半導体集積回路のレイアウト方法に従って、フリップフロップ、クロックドライバを配置し、クロックツリーを生成した場合の回路図の一部を示した模式図
【図4】本発明の実施の形態2における半導体集積回路のレイアウト方法を説明するフローチャート
【図5】本発明の実施の形態2における半導体集積回路のレイアウト方法の適用による効果を表した模式図
【図6】本発明の実施の形態2における半導体集積回路のレイアウト方法の適用によるクロックツリーの構成差と、その効果を表した模式図
【図7】従来の半導体集積回路設計方法の処理フローを示すフローチャート
【符号の説明】
201,202,204,205 フリップフロップ
203,206 データライン
207 クロック分岐点
208 遅延調整素子
301,302,304,305 フリップフロップ
303,306 データライン
307,308 クロック分岐点
309 遅延調整素子
501〜503 データライン
504〜506 クロック分岐点
507〜511 フリップフロップ
【発明の属する技術分野】
本発明は、半導体集積回路のレイアウト方法およびレイアウト装置に関し、特に、製造ばらつきによるクロックスキューの発生を考慮したレイアウトの技術に関する。
【0002】
【従来の技術】
クロック信号を複数の同期回路セルに分配するクロックツリー方式は、クロックドライバから各同期回路セル(例えばフリップフロップ)のクロック入力端子までの遅延時間がほぼ等しくなるようにバッファツリーを構成し、クロックのスキューを抑える設計方法である。
【0003】
しかしながら、上記手法では、チップ内の製造プロセスばらつきを考慮したタイミング設計がなされておらず、製造段階でタイミング不良品を除去するため、製造歩留まりが低下するという問題があった。
【0004】
そこで、従来の半導体集積回路のレイアウト方法は、プロセスばらつき等で生じるクロックスキューによる誤動作回避のために、図7に示すフローのようにして対応している。
【0005】
ステップ701において、フリップフロップおよびその他の論理セルを配置する。ステップ702において、クロックドライバを付加しつつ、フリップフロップとクロック信号線を接続する(CTS:Clock Tree Synthesis;クロック配線処理)。ステップ703において、その他の論理セルとフリップフロップとを接続する。これにより、クロックツリーが形成される。
【0006】
ステップ704のタイミング検証においては、その後のレイアウトデータに対し、データラインの送り側および受け側となるフリップフロップ対を考察の対象とする。それぞれのフリップフロップのクロック端子からクロックツリーを遡り、その合流点までの遅延を考慮する。この遅延に対し、製造ばらつきが原因で生じるスキューを考慮して、ホールド/セットアップエラーの有無を検証する。合流点までのクロック遅延が大きければ大きいほど、製造ばらつきにより生じるクロックスキューの絶対時間が大きくなる。このことを考慮して、タイミング検証を行う。タイミング検証により、ホールドエラーが検出された場合には、ステップ705において、データライン上に遅延調整素子を付加する。これにより、タイミング補償を行う。セットアップエラーについては、データラインをより高速化する等の手段で補償する(例えば、特許文献1参照)。
【0007】
このレイアウト方法によれば、製造ばらつきを考慮した設計になっているため、製造歩留りが低下することはないとされている。
【0008】
この従来のレイアウト方法は、チップ全体の配置配線設計済みのレイアウトデータに対するタイミング検証結果に応じて不具合箇所を補正する手法である。
【0009】
【特許文献1】
特開平10−301982号公報(第3頁、第1−4図)
【0010】
【発明が解決しようとする課題】
しかしながら、上記従来のレイアウト方法では、製造ばらつきによるタイミングエラー箇所が非常に多く検出される可能性がある。特に、ホールドエラーに関しては、検出されたエラーへの対応方法は、データラインへの遅延調整素子の挿入である。そのため、多くのエラーに対応する結果、レイアウト上の空きスペースに遅延調整素子を多数配置しなければならない場合には、チップ面積や消費電力の増大を招くことになる。また、空きスペースが十分に無い場合には、再配置配線が必要となり、設計完成の遅れを招くことになる。
【0011】
また、フリップフロップのクロック端子からクロックの合流点までの遅延が大きいほど、製造ばらつきによるスキューは大きくなることが想定される。このため、一箇所につき多数の遅延調整素子が必要になり、チップ面積、消費電力が大幅に増大する可能性がある。
【0012】
本発明は、このような事情に鑑みて創作したものであり、データラインとその送り側および受け側となる同期回路セル対の配置および接続について、製造ばらつきを考慮した最適化を図る上で、挿入すべき遅延調整素子の数の削減を図り、チップ面積や消費電力を削減することを目的としている。
【0013】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【0014】
第1の解決手段は、レイアウト前に遅延調整素子数削減の対策を講じる。第1の解決手段として、本発明による半導体集積回路のレイアウト方法は、データラインで接続される送り側および受け側の同期回路セルとクロックドライバのレイアウト配置と、前記両同期回路セルとクロックドライバを接続する配線経路とを決定するレイアウト方法であって、前記レイアウト配置と前記配線経路とを決定するに、前記両同期回路セル間のデータライン遅延時間τLに応じて決定することを特徴としている。
【0015】
そして、上記の場合の好ましい態様としては、前記レイアウト配置と前記配線経路の決定を、前記データライン遅延時間τLが相対的に小さいことを優先して、前記同期回路セル対に対するクロック分岐点からのクロック遅延時間τCがより小さくなる条件で行うことである。さらに、前記データラインと前記同期回路セル対との接続関係を論理接続情報に反映することが好ましい。
【0016】
これは、同期回路セル対のそれぞれについてデータライン遅延時間τLが決まり、その大小関係による優先順位を決め、優先順位の高いものから始めて(データライン遅延時間τLの小さいものを優先して)、クロック分岐点までのクロック信号線の形態を決め、そのような組み合わせとしてクロックツリーを構築する。端的には、データライン遅延時間τLが小さいほどクロック遅延時間τCがより小さくなるようにクロック分岐点を選択するものである。
【0017】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0018】
クロックツリーを伴う半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
前記優先順位の高い順に同期回路セル対を互いに近傍に配置するステップと、
前記優先順位の高いものほどクロック分岐点が前記同期回路セル対の近傍になるようにクロックドライバを配置した上で配線を行うステップと、
配置配線後にタイミング検証を行うステップと、
タイミング検証の結果、ホールドエラーのある箇所に遅延調整素子を挿入するステップとである。
【0019】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0020】
すなわち、クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、前記優先順位の高い順に同期回路セル対を互いに近傍に配置する手段と、前記優先順位の高いものほどクロック分岐点が前記同期回路セル対の近傍になるようにクロックドライバを配置した上で配線を行う手段と、配置配線後にタイミング検証を行う手段と、タイミング検証の結果、ホールドエラーのある箇所に遅延調整素子を挿入する手段とを備えたレイアウト装置である。
【0021】
高集積化された半導体集積回路では、すべての同期回路セル対についてクロック遅延時間τCを削減することは困難であるが、データライン遅延時間τLが十分に大きければ、たとえ大きなクロックスキューが発生しても、ホールドエラーの発生を抑制できる。したがって、クロック遅延時間τCが大きくても、データライン上に遅延調整素子を挿入する必要はない。一方、データライン遅延時間τLが相対的に小さい場合には、そのデータラインの同期回路セル対に対するクロック遅延時間τCを、データライン遅延時間τLの小ささに応じて小さくすれば、ホールドエラー発生の抑制の度合いが高まることになる。すなわち、
if〔τL→小〕then〔τC→小〕 …………(*1)
のように模式化して考えることができる。このように、データライン遅延時間τLに応じてレイアウト配置と配線経路の決定を行うことにより、製造ばらつきを考慮したホールドエラー回避のための遅延調整素子の数を減らすことができ、チップ面積、消費電力を削減することができる。
【0022】
第2の解決手段は、レイアウト後に遅延調整素子数削減の対策を講じる。第2の解決手段として、本発明による半導体集積回路のレイアウト方法は、データラインで接続される送り側および受け側の同期回路セルとクロックドライバのレイアウト配置と、前記両同期回路セルとクロックドライバを接続する配線経路とを決定してあらかじめレイアウトを行い、前記レイアウトされている複数の同期回路セルの中から前記データラインに接続すべき同期回路セル対を選択するに、当該データラインの遅延時間τLに応じて選択することを特徴としている。
【0023】
これは、同期回路セル群およびクロックドライバの配置配線が決まりレイアウトがあらかじめなされている状態において、データライン遅延時間τLの大小関係による優先順位を決め、優先順位の高いものから始めて(データライン遅延時間τLの小さいものを優先して)、同期回路セル対の位置を決める。
【0024】
そして、上記の場合の好ましい態様としては、前記データラインに接続すべき同期回路セル対の選択を、前記データライン遅延時間τLが相対的に小さいことを優先して、前記同期回路セル対に対するクロック遅延時間τCがより小さくなる条件で行うことである。端的には、データライン遅延時間τLが小さいほどクロック遅延時間τCがより小さい位置にある同期回路セル対を選択するものである。
【0025】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0026】
同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
前記優先順位の高い順に同期回路セル対を前記クロックツリーの中から選択するステップとである。
【0027】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0028】
すなわち、同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、前記優先順位の高い順に同期回路セル対を前記クロックツリーの中から選択する手段とを備えたレイアウト装置である。
【0029】
これも、
if〔τL→小〕then〔τC→小〕 …………(*1)
の原則に従っている。このように、データライン遅延時間τLに応じて同期回路セル対を選択することにより、製造ばらつきを考慮したホールドエラー回避のための遅延調整素子の数を減らすことができ、チップ面積、消費電力を削減することができる。
【0030】
第3の解決手段として、本発明による半導体集積回路のレイアウト方法は、クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路のレイアウト方法であって、セル群が配置配線されたレイアウトデータにおいて、同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行うことを特徴としている。
【0031】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0032】
同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行うステップとである。
【0033】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0034】
すなわち、同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行う手段とを備えたレイアウト装置である。
【0035】
使用する同期回路セルの種類によっては、同期回路セルの出力遅延時間τO、ホールド時間τHが異なるため、データライン遅延時間τLと製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差τSだけによる手法では十分に最適化されていない場合がある。そこで、データライン遅延時間τLとクロック遅延時間差τSに加えて、送り側同期回路セルの出力遅延時間τOと受け側同期回路セルのホールド時間τHも加味して対応する。これにより、各データラインに割り当てた同期回路セル対をさらに最適化し、遅延調整素子の削減効果を向上する。
【0036】
第4の解決手段として、本発明による半導体集積回路のレイアウト方法は、クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路のレイアウト方法であって、セル群が配置配線されたレイアウトデータにおいて、同期回路セル間のデータライン遅延時間をτL、クロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、クロックツリーを構成する配線を再配線することを特徴としている。
【0037】
上記構成の本発明を別の角度から記述すると、次のようにいうことができる。それは、次のような内容の複数のステップを含むものとして構成されている半導体集積回路のレイアウト方法である。
【0038】
同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出するステップと、
前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行うステップと、
同期回路セル間のデータライン遅延時間をτL、クロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、クロックツリーを構成する配線を再配線するステップとである。
【0039】
上記のレイアウト方法の発明は、半導体集積回路のレイアウト装置として、次のように展開することが可能である。
【0040】
すなわち、同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間τLを算出する手段と、前記算出した各データラインの遅延時間τLについて、その遅延時間τLの小さいものから順に優先順位付けを行う手段と、同期回路セル間のデータライン遅延時間をτL、クロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO) …………(*2)
が最小になるように、クロックツリーを構成する配線を再配線する手段とを備えたレイアウト装置である。
【0041】
データライン遅延時間τLの小さいデータラインが多数存在し、クロック分岐点からの遅延時間τCが小さい同期回路セル対が少数しかない場合には、遅延時間τLの小さいデータラインに対しクロック遅延時間τCの大きい同期回路セル対が割り当てられている場合が起こり得る。このような場合に、クロックツリーを構成する配線を繋ぎ替えることで、クロック分岐点からの遅延時間τCが小さい同期回路セル対を増やすことが可能となり、ホールドエラー回避のためのデータラインへ挿入すべき遅延調整素子の数をさらに削減することができる。
【0042】
上記において、前記再配線を、前記データライン遅延時間τLが相対的に小さいことを優先して、前記同期回路セル対に対するクロック遅延時間τCがより小さくなる条件で行うことは、好ましい態様である。挿入すべき遅延調整素子の数のさらなる削減を可能とする。
【0043】
【発明の実施の形態】
以下、本発明にかかわる半導体集積回路のレイアウト方法・装置の実施の形態を説明する。
【0044】
本発明は、製造ばらつきによるホールドエラーの発生を抑えるために挿入する遅延調整素子数を削減し、面積、消費電力および設計時間を削減するレイアウト手法にかかわるものである。そこで、まず、ホールドエラーの発生条件を考察する。以下では、同期回路セルとしてフリップフロップを例に挙げる。送り側フリップフロップの出力遅延時間をτO、フリップフロップ間のデータライン遅延時間をτL、クロックスキューをτS、受け側フリップフロップのホールド時間をτHとして、
τO+τL<τS+τH ………(式1)
がホールドエラーの発生条件である。(式1)において、フリップフロップの出力遅延τO、ホールド時間τHを一定とする。そして、
τO−τH=T0 ………(式2)
として、
τS−τL>T0 ………(式3)
書き換えると、
τS>τL+T0 ………(式4)
これがホールドエラーの発生条件である。
【0045】
製造ばらつきを考慮した場合にホールドエラーが発生しやすい状況は、以下の2つの場合である。
【0046】
一つは、フリップフロップ間のデータライン遅延時間τLが相対的に小さい場合である。(式4)によると、この場合は、わずかなクロックスキューτSによってもホールドエラーが発生しやすくなる。データライン遅延時間τLが小さいほど(式4)が成立しやすくなるからである。
【0047】
もう一つは、クロックスキューτSが大きい場合である。クロックスキューτSが大きいほど(式4)が成立しやすくなるからである。
【0048】
設計段階でクロックスキューτSはゼロになるように設計されている。それでも、製造のばらつきによってはクロックスキューは発生し得る。製造ばらつきによってクロックスキューτSが大きくなる条件は、フリップフロップ対のそれぞれのクロック端子からクロック信号線を遡った合流点(クロック分岐点)までのクロック遅延時間τCが一定以上に大きくなることである。これは、製造ばらつき率が同じであっても、クロック分岐点からフリップフロップまでのクロック遅延時間τCが相対的に大きい場合の方が、製造ばらつきによって生じるクロックスキューτSの絶対時間が大きくなるためである。
【0049】
以上のことから、ホールドエラー抑制の条件は、次のようになる。(式4)を否定すると、
τS≦τL+T0 ………(式5)
ということになる。
【0050】
そこで、フリップフロップ対に挟まれているデータライン遅延時間τLを大きくするか、または、できる限りクロックスキューτSを削減すればよいことになる。データライン遅延時間τLが大きいほど(式5)が成立しやすくなるからである。また、クロックスキューτSが小さいほど、(式5)が成立しやすくなる。
【0051】
フリップフロップ対について、クロック分岐点からの遅延時間τCはクロックスキューτSに相関する。そこで、(式5)のクロックスキューτSに代えて、クロック分岐点からフリップフロップまでのクロック遅延時間τCを用い、T0に代えてT0′を用いて表現すると、
τC≦k・τL+T0′ ………(式6)
となる(∵τS≒k・τC)。これもホールドエラー抑制の条件である。フリップフロップ対に挟まれているデータライン遅延時間τLを大きくするか、または、できる限りクロック遅延時間τCを削減すればよいことになる。クロック遅延時間τCが小さいほど(式6)が成立しやすくなるからである。
【0052】
高集積化されたLSIでは、クロック遅延時間τCを削減することは非常に困難である。しかしながら、例えば、データライン遅延時間τLが十分に大きければ、たとえ大きなクロックスキューτSが発生しても、(式5)より、ホールドエラーの発生を抑制できる。つまり、このような箇所に対しては、(式6)より、クロック分岐点からの遅延時間τCが大きくても、データライン上に遅延調整素子を挿入する必要はない。
【0053】
したがって、挿入する遅延調整素子数を削減するためには、データライン遅延時間τLが相対的に小さい場合に、そのデータラインの入出力フリップフロップ対に入力されるクロック信号のクロック分岐点からの遅延時間τCを充分に小さくすればよいことになる。
【0054】
なお、データライン遅延時間τLが大きい場合には、対応可能な箇所のクロック遅延時間τCを削減しておけば、これは、セットアップ時間に対するマージンとなる。
【0055】
以下、本発明の実施の形態を具体的レベルで説明する。
【0056】
(実施の形態1)
実施の形態1は、レイアウト前に遅延調整素子数削減の対策を講じるものである。図1は、本発明の実施の形態1における半導体集積回路のレイアウト方法を説明するフローチャートである。
【0057】
まず、ステップ101において、集積回路の論理接続情報から全てのフリップフロップ対を検索し、各々のフリップフロップ対の間に存在する組み合わせ回路によって構成されているデータライン遅延時間τLを算出する。論理接続情報は論理合成によって生成される場合が多いが、その場合は、論理合成の結果からデータライン遅延時間τLを簡単に求めることができる。
【0058】
次に、ステップ102において、ステップ101によって求めた各々のデータライン遅延時間τLに基づき、データライン遅延時間τLの小さい順に、次ステップ103の処理の優先度が高くなるよう順位付けを行う。データライン遅延時間τLの小さいものを優先するというのは、(式4)から明かなように、ホールドエラーが発生しやすいものを選んでいるということである。
【0059】
ステップ103において、ステップ102で決定された優先順位に基づいて、フリップフロップの配置を行う。この際、優先順位が高くホールドエラーを起こしやすい順にデータラインの入出力フリップフロップ対を互いに近傍に配置するようにする。
【0060】
ステップ104において、後工程でブロック内の自動配線を行う際の入力データとなる論理接続情報に対し、接続すべきデータラインとフリップフロップ対に関する情報を反映させる。
【0061】
さらにステップ105において、ステップ103で配置されたフリップフロップ対へのクロック分配のためのクロック分岐点がフリップフロップ対の近傍になるようにクロックドライバを配置する。すなわち、クロック分岐点からフリップフロップ対までのクロック遅延時間τCが短くなるようにクロックドライバを配置する。通常は、クロックドライバをフリップフロップ対の近傍に配置することで、上記の目的を実現することができる。
【0062】
ステップ106において、フリップフロップ、クロックドライバ以外の論理セルを配置する。そして、ステップ107において、必要なクロックドライバを適宜追加しながら、クロックツリーを生成する(CTS:Clock Tree Synthesis;クロック配線処理)。
【0063】
さらにステップ108において、ステップ104で生成した論理接続情報に基づいて、論理セル、フリップフロップを配線する。
【0064】
全ての配線接続が完了した後、ステップ109において、ステップ108までに生成したレイアウトデータに対し、製造ばらつきを考慮したタイミング検証を実施する。そして、ステップ110において、検証結果に基づいて、ホールドエラー回避のための遅延調整素子を挿入する。
【0065】
次に、上述したレイアウト設計手法を用いて、フリップフロップ、クロックドライバ、その他の論理セルを配置配線した例について図示する。
【0066】
図2(a)は、従来のレイアウト設計手法によりクロックツリーとフリップフロップおよびデータラインを設計した場合の回路図の一部を示した模式図、図2(b)は、タイミング検証結果に基づき、従来の設計に対してタイミング補正をかけた後の回路図の一部を示した模式図である。また図3は、図1のフローチャートに従って、フリップフロップ、クロックドライバを配置し、クロックツリーを生成した場合の回路図の一部を示した模式図である。これらの図においては、フリップフロップ間のデータラインの遅延時間τLの大きさが矩形面積に比例するように表現されている。
【0067】
図2では、フリップフロップ201,202間のデータライン203の遅延時間τLが大きいことから遅延調整素子が不要となる。図2(b)では、フリップフロップ201,202間に遅延調整素子は挿入されていない。
【0068】
一方、フリップフロップ204,205に関しては、データライン206の遅延時間τLが小さく、また、入出力フリップフロップ対(204,205)のクロック分岐点207は比較的離れていて、クロック遅延時間τCが大きくなっている。つまり、分岐後のクロック段数が大きくなっている。そのため、クロック信号の製造ばらつきによるクロックスキューτSが大きくなる可能性がある。遅延時間τLが小さく、かつクロックスキューτSが大きいときは、(式5)が成立しにくく、したがって、タイミング補償のために、図2(b)に示すように、フリップフロップ204,205間に多くの遅延調整素子208の挿入が必要になる。これは、本発明以前の対応に相当する。
【0069】
一方、本発明の実施の形態1を適用する場合には、図3に示すように、フリップフロップ301,302間のデータライン303の遅延時間τLは大きく、フリップフロップ304,305のデータライン306の遅延時間τLは小さい。したがって、図1のステップ102〜105の論理に従うと、遅延時間τLのより小さい方のフリップフロップ304,305が優先され、入出力フリップフロップ対(304,305)は、クロック分岐点307に対して近接配置される。これに対して、遅延時間τLのより大きい方の入出力フリップフロップ対(301,302)は、より遠いクロック分岐点308に接続されるように配置される。
【0070】
フリップフロップ301,302間のデータライン303については、その遅延時間τLが大きいことから遅延調整素子は不要である。
【0071】
一方、フリップフロップ304,305のデータライン306に関しては、その遅延時間τLは小さく、ホールドエラーの発生する可能性はあるが、入出力フリップフロップ対(304,305)のクロック分岐点307は近接していて、クロック遅延時間τCが小さくなっている。つまり、分岐後のクロック段数が小さくなっている。そのため、クロック信号の製造ばらつきによるクロックスキューτSは小さい。遅延時間τLは小さいが、クロック遅延時間τCも小さいので、(式6)の成立のしにくさは、その度合いが低く、タイミング補償のために遅延調整素子309の挿入を必要とするが、その挿入数は少なく抑えることが可能となる。
【0072】
(実施の形態2)
本実施の形態2は、すでにクロックツリーが構成されている場合に遅延調整素子の挿入数を削減するものである。
【0073】
図4は、本発明の実施の形態2について、半導体集積回路の設計方法の処理フローを説明するフローチャートである。
【0074】
ステップ401において、フリップフロップ、その他の論理セルを配置し、ステップ402において、クロックドライバを付加しながらフリップフロップ、クロックドライバを配線し、クロックツリーを構成する。
【0075】
ステップ403において、集積回路の論理接続情報から全てのフリップフロップ対を検索し、各々のフリップフロップ対の間に存在する組み合わせ回路によるデータライン遅延時間τLを算出する。論理接続情報は論理合成によって生成される場合が多く、その場合は、データライン遅延時間τLを論理合成の結果より簡単に求めることができる。
【0076】
次に、ステップ404において、ステップ403によって求めた各々のデータライン遅延時間τLに基づき、データライン遅延時間τLの小さい順に、次ステップ405の処理の優先度が高くなるよう順位付けを行う。これは、実施の形態1の場合と同様に、(式6)に基づいて、ホールドエラーが発生しやすいのはデータライン遅延時間τLがより小さい、という論理を適用するためである。
【0077】
ステップ405において、ステップ404で決定された優先順位に基づいて、各データラインの入出力フリップフロップをクロックツリーの中から選択する。この際、優先順位が高くホールドエラーを起こしやすい順に、クロック分岐点からのクロック遅延が小さいフリップフロップ対を選択する。つまり、その選択したフリップフロップ対を、当該のデータラインの入出力フリップフロップ対とする。
【0078】
図5にステップ405の適用による効果を表す模式図を示す。3つのデータライン501,502,503それぞれの遅延時間τLについて、データライン501,502,503の順に遅延時間τLが小さいとする。すると、ステップ405の処理においては、遅延時間τLが一番小さいデータライン501の優先度が最も高い。これにより、データライン501の入出力フリップフロップ対としては、クロック分岐点504からのクロック遅延時間τCが小さいフリップフロップ対(507,508)が優先的に割り当てられる。
【0079】
次に優先順位の高いデータライン502には、フリップフロップ対(509,507)が割り当てられ、最も優先順の低いデータライン503には、クロック分岐点506からのクロック遅延時間τCが大きいフリップフロップ対(510,511)が割り当てられる。
【0080】
このようにステップ405を適用するのは、ホールドエラーを抑えるための遅延調整素子数を削減するためである。
【0081】
次いで、ステップ406において、後工程でブロックの自動配線を行う際の入力データとなる論理接続情報に対し、各データラインとレイアウト上のフリップフロップ対の接続関係情報を反映させる。
【0082】
ステップ407において、ステップ405で各データラインに割り当てたフリップフロップ対をさらに最適化し、遅延調整素子を削減する。例えば、使用するフリップフロップの種類によっては、フリップフロップの出力遅延時間、ホールド時間が異なるため、ステップ405の手法のみでは十分に最適化されていない場合がある。
【0083】
ステップ407において、ホールドエラー発生条件を示した(式1)を用い、データライン毎に、
τD=τS−τL+τH−τO ………(式7)
を算出する。これは、(式1)の右辺から左辺を減算したものに相当する。この算出結果が各データラインに必要な遅延調整時間τDとなる。
【0084】
τD>0 ………(式8)
がホールドエラーの発生条件になる。
【0085】
(式7)において、クロックスキューτSに代えてクロック分岐点からのクロック遅延時間τCで捉える場合には、遅延調整時間をτD′として、
τD′=k・τC−τL+τH−τO ………(式9)
となる。また、(式8)に代えて、
τD′>0 ………(式10)
となる。
【0086】
この遅延調整時間τD′を全データラインについて算出した結果の和S、すなわち、
S=ΣτD′=Σ(k・τC−τL+τH−τO) ………(式11)
が最小になるように、各データラインの入出力フリップフロップ対の再割り当てを行う。但し、各データラインでの算出結果が負になった場合は、遅延調整素子の挿入が不要なため、加算対象とはしない。
【0087】
次いで、ステップ408において、その他の論理セルをステップ406で生成した論理接続情報に基づいて配線した後、さらにステップ409において、クロックツリーの構成を最適化する。これにより、遅延調整素子を削減する。
【0088】
例えば、データライン遅延時間τLの小さいデータラインが多数存在し、クロック分岐点からの遅延時間τCが小さい入出力フリップフロップ対が少数しかない場合には、ステップ407までの工程で、データライン遅延時間τLの小さいデータラインに対し、クロック遅延時間τCの大きい入出力フリップフロップ対が割り当てられている場合が存在することになり、この場合には、ホールドエラー回避のため、データラインへの遅延調整素子の挿入が必要となる。
【0089】
しかしながら、クロックツリーを構成する配線を繋ぎ替えることで、クロック分岐点からの遅延時間τCが小さい入出力フリップフロップ対を増やすことができる。
【0090】
図6にステップ409の適用による、クロックツリーの構成の差と、その効果を表す模式図を示す。
【0091】
図6(a)において、データライン601〜605の遅延時間τLが小さく遅延調整素子を挿入する必要があるとする。フリップフロップ対(606,607)、(608,609)、(611,612)は、クロック分岐点618,619,622からのクロック遅延時間τCが小さく、製造ばらつきによるクロックスキューτSは、遅延調整素子一つ分に相当するとする。この場合、データライン601,603,605には、遅延調整素子613,615,617をそれぞれ一つずつ挿入すればよい。
【0092】
フリップフロップ対(607,608)、(610,611)は、クロック分岐点620,623からのクロック遅延時間τCが大きく、製造ばらつきによるクロックスキューτSは、遅延調整素子二つ分に相当するとする。この場合、データライン602,604には、二つずつの遅延調整素子614a,616aのように挿入する必要がある。
【0093】
一方、ステップ409によりクロックツリーを構成する配線を繋ぎ替えると、図6(b)のようになる。フリップフロップ対(607,608)のクロック分岐点をフリップフロップ対(606,607)と同じクロック分岐点618に繋ぎ替え、フリップフロップ対(610,611)のクロック分岐点をフリップフロップ対(611,612)と同じクロック分岐点622に繋ぎ替えている。これにより、各フリップフロップ対のクロック分岐点からの遅延時間τCを小さくすることができる。その結果、製造ばらつきによるクロックスキューτSも小さくなるため、データライン602,604には、一つ分相当の遅延調整素子614,616を挿入するだけでよく、挿入すべき遅延調整素子数を削減することができる。
【0094】
なお、上記では、ステップ405,407,409を一連のフローチャートで説明したが、それぞれのステップを単独で実施しても遅延調整素子の削減効果がある。
【0095】
また、実施の形態1で説明した方法によって生成したクロックツリーに対しても、ステップ405,407,409を適用することで、遅延調整素子の削減が可能であることはもちろんである。
【0096】
【発明の効果】
以上説明したように本発明は、データライン遅延時間が相対的に小さい場合には同期回路セルからクロックの合流点までのクロック遅延時間が短くなるように構成することにより、製造ばらつきを考慮したホールドエラー回避のために挿入すべき遅延調整素子の数を減らすことができ、チップ面積、消費電力を削減することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における半導体集積回路のレイアウト方法を説明するフローチャート
【図2】従来のレイアウト設計手法によりクロックツリーとフリップフロップおよびデータラインを設計した場合の回路図の一部を示した模式図
【図3】本発明の実施の形態1における半導体集積回路のレイアウト方法に従って、フリップフロップ、クロックドライバを配置し、クロックツリーを生成した場合の回路図の一部を示した模式図
【図4】本発明の実施の形態2における半導体集積回路のレイアウト方法を説明するフローチャート
【図5】本発明の実施の形態2における半導体集積回路のレイアウト方法の適用による効果を表した模式図
【図6】本発明の実施の形態2における半導体集積回路のレイアウト方法の適用によるクロックツリーの構成差と、その効果を表した模式図
【図7】従来の半導体集積回路設計方法の処理フローを示すフローチャート
【符号の説明】
201,202,204,205 フリップフロップ
203,206 データライン
207 クロック分岐点
208 遅延調整素子
301,302,304,305 フリップフロップ
303,306 データライン
307,308 クロック分岐点
309 遅延調整素子
501〜503 データライン
504〜506 クロック分岐点
507〜511 フリップフロップ
Claims (16)
- データラインで接続される送り側および受け側の同期回路セルとクロックドライバのレイアウト配置と、前記両同期回路セルとクロックドライバを接続する配線経路とを決定するレイアウト方法であって、
前記両同期回路セル間のデータライン遅延時間に応じて、前記レイアウト配置と前記配線経路の決定を行うことを特徴とする半導体集積回路のレイアウト方法。 - 前記レイアウト配置と前記配線経路の決定を、前記データライン遅延時間が相対的に小さいことを優先して、前記同期回路セル対に対するクロック分岐点からのクロック遅延時間τCがより小さくなる条件で行うことを特徴とする請求項1に記載の半導体集積回路のレイアウト方法。
- さらに、前記データラインと前記同期回路セル対との接続関係を論理接続情報に反映することを特徴とする請求項1または請求項2に記載の半導体集積回路のレイアウト方法。
- データラインで接続される送り側および受け側の同期回路セルとクロックドライバのレイアウト配置と、前記両同期回路セルとクロックドライバを接続する配線経路とを決定してあらかじめレイアウトを行い、前記レイアウトされている複数の同期回路セルの中から前記データラインに接続すべき同期回路セル対を選択するに、当該データラインの遅延時間に応じて選択することを特徴とする半導体集積回路のレイアウト方法。
- 前記データラインに接続すべき同期回路セル対の選択を、前記データライン遅延時間が相対的に小さいことを優先して、前記同期回路セル対に対するクロック分岐点からのクロック遅延時間τCがより小さくなる条件で行うことを特徴とする請求項4に記載の半導体集積回路のレイアウト方法。
- クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路のレイアウト方法であって、
セル群が配置配線されたレイアウトデータにおいて、同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行うことを特徴とする半導体集積回路のレイアウト方法。 - クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路のレイアウト方法であって、
セル群が配置配線されたレイアウトデータにおいて、同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO)
が最小になるように、クロックツリーを構成する配線を再配線することを特徴とする半導体集積回路のレイアウト方法。 - 前記再配線を、前記データライン遅延時間が相対的に小さいことを優先して、前記同期回路セル対に対するクロック分岐点からのクロック遅延時間τCがより小さくなる条件で行うことを特徴とする請求項7に記載の半導体集積回路のレイアウト方法。
- クロックツリーを伴う半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出するステップと、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行うステップと、
前記優先順位の高い順に同期回路セル対を互いに近傍に配置するステップと、
前記優先順位の高いものほどクロック分岐点が前記同期回路セル対の近傍になるようにクロックドライバを配置した上で配線を行うステップと、
配置配線後にタイミング検証を行うステップと、
タイミング検証の結果、ホールドエラーのある箇所に遅延調整素子を挿入するステップとを含むことを特徴とする半導体集積回路のレイアウト方法。 - 同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出するステップと、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行うステップと、
前記優先順位の高い順に同期回路セル対を前記クロックツリーの中から選択するステップとを含むことを特徴とする半導体集積回路のレイアウト方法。 - 同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出するステップと、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行うステップと、
同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行うステップとを含むことを特徴とする半導体集積回路のレイアウト方法。 - 同期回路セル、クロックドライバを配置配線してクロックツリーを形成するステップと、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出するステップと、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行うステップと、
同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO)
が最小になるように、クロックツリーを構成する配線を再配線するステップとを含むことを特徴とする半導体集積回路のレイアウト方法。 - クロック信号を複数の同期回路セルに分配するためのクロックツリーを備えた半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出する手段と、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行う手段と、
前記優先順位の高い順に同期回路セル対を互いに近傍に配置する手段と、
前記優先順位の高いものほどクロック分岐点が前記同期回路セル対の近傍になるようにクロックドライバを配置した上で配線を行う手段と、
配置配線後にタイミング検証を行う手段と、
タイミング検証の結果、ホールドエラーのある箇所に遅延調整素子を挿入する手段とを含むことを特徴とする半導体集積回路のレイアウト装置。 - 同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出する手段と、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行う手段と、
前記優先順位の高い順に同期回路セル対を前記クロックツリーの中から選択する手段とを含むことを特徴とする半導体集積回路のレイアウト装置。 - 同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出する手段と、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行う手段と、
同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO)
が最小になるように、同期回路セル対の再割り当てとデータラインへの再接続を行う手段とを含むことを特徴とする半導体集積回路のレイアウト装置。 - 同期回路セル、クロックドライバを配置配線してクロックツリーを形成する手段と、
半導体集積回路の論理接続情報においてデータラインで接続される同期回路セル対を検索し、各同期回路セル対間のデータラインの遅延時間を算出する手段と、
前記算出した各データラインの遅延時間について、その遅延時間の小さいものから順に優先順位付けを行う手段と、
同期回路セル間のデータライン遅延時間をτL、製造ばらつきによって生じ得るクロック分岐点から送り側および受け側同期回路セル対へのクロック遅延時間差をτS、送り側同期回路セルの出力遅延時間をτO、受け側同期回路セルのホールド時間をτH、全同期回路セル対についての遅延調整時間和をSとして、
S=Σ(τS−τL+τH−τO)
が最小になるように、クロックツリーを構成する配線を再配線する手段とを含むことを特徴とする半導体集積回路のレイアウト装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003167495A JP2005004496A (ja) | 2003-06-12 | 2003-06-12 | 半導体集積回路のレイアウト方法およびレイアウト装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003167495A JP2005004496A (ja) | 2003-06-12 | 2003-06-12 | 半導体集積回路のレイアウト方法およびレイアウト装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005004496A true JP2005004496A (ja) | 2005-01-06 |
Family
ID=34093287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003167495A Pending JP2005004496A (ja) | 2003-06-12 | 2003-06-12 | 半導体集積回路のレイアウト方法およびレイアウト装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005004496A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006197569A (ja) * | 2004-12-13 | 2006-07-27 | Samsung Electronics Co Ltd | ポイント拡散クロックの分配ネットワーク及びクロックの分配方法 |
JP2006203687A (ja) * | 2005-01-21 | 2006-08-03 | Matsushita Electric Ind Co Ltd | 半導体集積回路 |
JP2007027841A (ja) * | 2005-07-12 | 2007-02-01 | Nec Electronics Corp | 半導体集積回路の設計装置と方法並びにプログラム |
JP2007183887A (ja) * | 2006-01-10 | 2007-07-19 | Fujitsu Ltd | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
JP2013045459A (ja) * | 2011-08-22 | 2013-03-04 | Fujitsu Ltd | クロック・ネットワーク・メタ合成のためのシステムおよび方法 |
US8748515B2 (en) | 2010-04-15 | 2014-06-10 | Henry Company Llc | Mixtures and emulsions for use in providing strength to gypsum compositions |
US9045370B2 (en) | 2011-02-24 | 2015-06-02 | Henry Company Llc | Aqueous wax emulsions having reduced solids content for use in gypsum compositions and building products |
-
2003
- 2003-06-12 JP JP2003167495A patent/JP2005004496A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006197569A (ja) * | 2004-12-13 | 2006-07-27 | Samsung Electronics Co Ltd | ポイント拡散クロックの分配ネットワーク及びクロックの分配方法 |
JP2006203687A (ja) * | 2005-01-21 | 2006-08-03 | Matsushita Electric Ind Co Ltd | 半導体集積回路 |
JP2007027841A (ja) * | 2005-07-12 | 2007-02-01 | Nec Electronics Corp | 半導体集積回路の設計装置と方法並びにプログラム |
JP2007183887A (ja) * | 2006-01-10 | 2007-07-19 | Fujitsu Ltd | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
JP4602909B2 (ja) * | 2006-01-10 | 2010-12-22 | 富士通セミコンダクター株式会社 | 半導体集積回路のクロックツリー形成方法およびプログラム。 |
US8748515B2 (en) | 2010-04-15 | 2014-06-10 | Henry Company Llc | Mixtures and emulsions for use in providing strength to gypsum compositions |
US9045370B2 (en) | 2011-02-24 | 2015-06-02 | Henry Company Llc | Aqueous wax emulsions having reduced solids content for use in gypsum compositions and building products |
JP2013045459A (ja) * | 2011-08-22 | 2013-03-04 | Fujitsu Ltd | クロック・ネットワーク・メタ合成のためのシステムおよび方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7809971B2 (en) | Clock distribution circuit, semiconductor integrated circuit and method of designing clock distribution circuit | |
US7017132B2 (en) | Methodology to optimize hierarchical clock skew by clock delay compensation | |
US8219965B2 (en) | Layout design method of semiconductor integrated circuit including regenerating a cell layout to set first and second distances and generating library data | |
US5339253A (en) | Method and apparatus for making a skew-controlled signal distribution network | |
JP2004524617A (ja) | クロック分配システム | |
JP2008140821A (ja) | 半導体装置および半導体装置の設計方法 | |
US7612599B2 (en) | Semiconductor device | |
US7509609B2 (en) | Methods and apparatus for reducing timing skew | |
JP2005004496A (ja) | 半導体集積回路のレイアウト方法およびレイアウト装置 | |
JP2007123336A (ja) | 半導体集積回路のクロック構成方法およびそのプログラム | |
US7162707B2 (en) | Scan path timing optimizing apparatus determining connection order of scan path circuits to realize optimum signal timings | |
US20090195274A1 (en) | Semiconductor integrated circuit | |
JP4473163B2 (ja) | スキャンチェーンのホールドエラー解消方法 | |
US7181709B2 (en) | Clock delay adjusting method of semiconductor integrated circuit device and semiconductor integrated circuit device formed by the method | |
JP2008053606A (ja) | 半導体装置のレイアウト方法およびレイアウトプログラム | |
US7707529B2 (en) | Method for the computer-aided ascertainment of a clock tree structure, and integrated semiconductor circuit | |
JP3116915B2 (ja) | クロックネットのレイアウト設計変更方式 | |
US20060117286A1 (en) | Method for correcting timing error when designing semiconductor integrated circuit | |
JP3017038B2 (ja) | 半導体集積回路の設計方式 | |
JP2009176823A (ja) | 半導体集積回路装置 | |
US20120013373A1 (en) | Semiconductor device, circuit correction method, design support device, and recording medium storing design support program | |
JP2003045972A (ja) | マスクレイアウト自動配置配線方法 | |
JP2009253756A (ja) | クロック分配回路のレイアウト生成方法、および半導体集積回路装置 | |
JP2001250865A (ja) | 配置配線方法 | |
JP2006302995A (ja) | 半導体集積回路、回路レイアウト装置、回路レイアウト方法および回路レイアウトプログラム |