JP3913180B2 - 半導体集積回路の設計方法 - Google Patents
半導体集積回路の設計方法 Download PDFInfo
- Publication number
- JP3913180B2 JP3913180B2 JP2003013710A JP2003013710A JP3913180B2 JP 3913180 B2 JP3913180 B2 JP 3913180B2 JP 2003013710 A JP2003013710 A JP 2003013710A JP 2003013710 A JP2003013710 A JP 2003013710A JP 3913180 B2 JP3913180 B2 JP 3913180B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- wiring
- delay time
- block
- semiconductor integrated
- 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
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、半導体集積回路のレイアウト設計方法に係り、特にクロック信号を伝達するクロック配線及びクロック信号で駆動されるセルのレイアウトを設計する方法に関する。
【0002】
【従来の技術】
従来より、半導体集積回路(LSI)のレイアウト設計方式として、ゲートアレイ(又は、シー・オブ・ゲート)方式やスタンダードセル方式等がある。これらの方式は、NAND、NOR等の基本論理セルやそれらを組み合わせた複合セルをアレイ状に半導体チップ上に配置し、論理接続要求に従ってそれらのセルの端子間を配線することによってLSIを構成する方法である。これらの方法は設計の自動化が進んでおり、様々なシステムが開発されている。
【0003】
さらに、LSIの製造技術の進歩により、ゲートアレイ方式とスタンダードセル方式とを融合させたエンベデッド・アレイ・セル方式の半導体集積回路が開発されている。この方式は、半導体集積回路の中の一部の回路又は全ての回路を複数の機能ブロック内に例えば予め設計されたマクロブロックか新しく設計されたスタンダードセル方式ブロック内に組み込んで、各機能ブロックを半導体チップ上に配置し、各機能ブロック外はゲートアレイ領域と定めておく。そして、機能ブロックに収納された回路以外の回路の生成と、機能ブロック外の配線とはゲートアレイ領域で行なって、半導体集積回路を造り上げようとするものである。従って、これらの方式では、機能ブロック外の領域で任意に回路を生成できるので製造の配線工程の前までなら、回路の追加・修正を比較的簡単に行なうことができるという利点がある。
【0004】
ところで、近年は所望の機能を果たすために必要なシステム全体を1つの半導体チップ上に搭載できるほどに高集積化された半導体集積回路が開発されてきており、このように半導体集積回路の集積度が増大するにつれて半導体集積回路設計にかかる工数も増加の一途を辿っている。半導体集積回路のレイアウト設計についても例外ではなく、工数・処理時間が指数関数的に増大してきており、半導体集積回路全体を一度にレイアウトするには膨大な時間及び労力を費やすことになる。そこで、上述のように半導体集積回路を幾つかの機能ブロックに分割し、各機能ブロック内を個別に設計し、最後に機能ブロック間を配線して組み上げるといった階層設計の手法がとられることが多い。
【0005】
一方、半導体集積回路内の各セルを同期して駆動させるクロック信号の周波数も増大されてきている。半導体集積回路の動作速度は、各セルに到達するクロック信号の位相差であるクロックスキューによって制約され、同様に、システム全体の動作速度は、各半導体集積回路間のクロックスキューによって制約される。そして、半導体集積回路の高集積化によって、クロック信号で駆動されるフリップフロップ等のセルの数が多くなるとともに、各機能ブロックに供給されるクロック信号も互いに同期をとらなければならないので、クロック信号を各セルに供給するための配線方式は益々重要になってきている。
【0006】
ここで、上述のクロックスキューを最小化する方法として、クロック木を生成する方法がある。これは、図16に示すように、ある機能ブロック毎に、クロック信号入力部から同時に動作しなければならないフリップフロップ群までの配線経路をクロック木として構成し、そのクロック木内の根にあたるクロック信号を発信するセルから各フリップフロップ間までの信号が到達するまでの時間差(クロック木のスキュー)をある大きさ以内に抑える方法である。ここで、図16aに示すように、パッド11で囲まれる半導体集積回路1内には、3つの機能ブロックBL1,BL2,BL3が配置されており、各機能ブロックBL1,BL2,BL3内には、それぞれクロック信号を伝達するための配線構造(クロックネット)を示すクロック木CT1,CT2,CT3が形成されている。また、図16bは、上記機能ブロックBL1中で構成されたクロック木CT1の一部を拡大した図である。クロック木CT1の葉に相当する部位にはフリップフロップ20が配置され、クロック木CT1の各タッピングポイント23間の中間節点に相当する部位にはクロックバッファ21が配置(挿入)されている。そして、各クロックバッファ間やクロックバッファ−フリップフロップ間を配線で接続して構成されている。このように生成されたクロック木において、クロックスキューを抑えることが全回路の動作速度を速めることになるので、クロックスキューを「0」に近づけることが重要な課題となる。
【0007】
このように、クロック木を生成する際にクロックスキューを正確に「0」にする方法の公知例として、非特許文献1がある。この方法は、クロック木を構築していく際、フリップフロップから順に、ボトムアップ的に2分木を構成するようにゼロスキュー併合と呼ぶ常にその木がスキュー=0(この状態をゼロスキューと呼ぶ)となるように生成していくものである。ここで、このゼロスキューになるように2つの木から1つの木をつくるときに重要な概念として、上述のタッピングポイント23がある(図16参照)。これは、2つの木を併合するときにどの位置を根のポイント(そこにクロックバッファが接続される)にするかを表した点である。タッピングポイント23からそれぞれの木の葉にあるフリップフロップ20までの遅延を等しくなるような点に設定すれば、ゼロスキューのクロック木が実現できる。上記公知例では、フリップフロップとバッファをいったん配置させた後、ボトムアップ的に配線をゼロスキューを常に保証しながら2分クロック木になるように配線する方法が記述されている。
【0008】
ところで、このクロック木を生成するとき常にゼロスキューを保証する必要があるので、うまく配線を行なわないと配線長が長いクロック木が生成されることになる。即ち、クロック木の根から葉までの遅延時間が大きくなる結果、クロックの一周期が長くなって動作の遅い回路になってしまう。
【0009】
そこで、最近かかる不具合を解決した効率的なアルゴリズムが開発されてきている。例えば、非特許文献2がその一例である。これは、クロック信号の遅延時間の見積り式を目的関数にしてそれを最小化するアルゴリズムであり、配線幅の最適化も同時に行う手法である。
【0010】
以上のクロック木を用い、半導体集積回路を機能ブロックに区画するようにしたスタンダードセル方式(又はゲートアレイ方式)におけるレイアウト設計手順の一例は、以下のようになる。
【0011】
1.所望の動作を表した回路図を基に基本論理セルをアレイ状に配置する。このとき、フリップフロップは機能ブロック全体に広がるように配置する。
【0012】
2.クロック信号を伝達する配線のネット(クロックネット)に対して、フリップフロップ群からボトムアップ的にクロック木を構成しながら、クロックバッファの配置とクロック木の概略配線経路を決定する。
【0013】
3.残りのネットについて、概略的な配線経路を決定する。
【0014】
4.クロックネットについて、概略的な配線経路に従ってゼロスキューになるように詳細配線を行なう。
【0015】
5.クロックネット以外のネットについて、概略的な配線経路に従って詳細配線を行なう。
【0016】
一方、上述の手順とは異なる手順でクロック木を生成する方法として、例えば特許文献1に開示されるように、階層的にブロックを分割しながらトップダウン的にクロック木を生成する方法がある。この方法は、上記手順1.と2.とを同時に行なう方法であって、トップダウンに階層的領域分割を行ないながら、クロックバッファの挿入と基本論理セルの配置とクロック木構造の生成を一度に行なうものである。この方法によれば、クロック木構造を意識しながらフリップフロップ以外の基本論理セルの配置の最適化が図れるという利点がある。
【0017】
なお、これら上述の手法は、半導体チップ全体で一度に行なうか、各機能ブロック毎に適用されることが多い。
【0018】
また、半導体集積回路の設計は階層的に行なわれることが多いので、機能ブロック毎に適用された場合、機能ブロック同士のクロック信号の同期をとることも重要なことである。各機能ブロックに供給されるクロック信号同士の同期をとる従来のレイアウト方法の一例としては、
(A)クロック供給源から機能ブロックに至るブロック外クロック配線を、各機能ブロック外の配線チャネルに制限されることなく自由に、かつ、クロック供給源から各機能ブロックのクロック入力部(クロック端子)まで等長となるように敷設する方法
(B)半導体集積回路の中心部にクロック信号分配部を設置して、クロック供給源とクロック信号分配部とを1本のクロック配線で接続し、クロック分配部と機能ブロックを含む各機能ブロックのクロック端子との間に各々のクロック配線を等長となるように敷設する方法
等がある。例えば、特許文献2に開示される方法がその一例である。
【0019】
【非特許文献1】
Proc. IEEE International Conference on Computer Aided Design, 1991, pp.336-339
【非特許文献2】
Proc. IEEE International Conference on Computer Aided Design, 1993, pp.563-566
【特許文献1】
特開平6−282603号公報(要約書)
【特許文献2】
特開平5−198674号公報(要約書)
【0020】
【発明が解決しようとする課題】
しかしながら、上記非特許文献1及び2の方法では、フリップフロップとクロックバッファを含む基本論理セルを先に配置してからクロック木を生成するので、ゼロスキューになるようにクロック木は構成できるが、クロック木の遅延時間の大きさを最小にすることや要求された遅延時間値に収めることは困難であるという問題があった。そのため、半導体集積回路内において各機能ブロック間の動作の同期を得ることができない虞れを生じたり、複数の半導体集積回路からなるシステムを構成した場合に、各半導体集積回路間の動作の同期を得ることができない虞れがあった。
【0021】
特許文献1の方法では、階層的にフリップフロップ群の分散が行なわれるため、クロック木の遅延時間の大きさを最小にすることや要求された遅延時間値に調整することが困難である。そのため、非特許文献1,2と同様に、各半導体集積回路間の動作の同期を得ることができない虞れがあった。
【0022】
また、非特許文献1,2及び特許文献1の方法が目的とするごとく、クロックスキューが現実に「0」になると、同時に多数のフリップフロップが動作してしまうことになり、一時的に多くの電流(ピーク電流の増大)が流れる。従って、電力供給状態によっては、フリップフロップが動作しなくなる場合が生じる虞れがあった。すなわち、従来のように各論理セルに対するクロックスキューが「0」になるように設計していても、半導体集積回路内に組み込まれるフリップフロップ等の論理セルの数がそれほど多くない場合には、現実には工程上のバラツキ等によって少しずつ作動時刻がずれるので、一度に多くの論理セルが作動することによる動作不良を生じる虞れは少ない。しかし、最近のように半導体集積回路あるいはシステム全体の規模が大きくなってしかもクロック周波数が増大すると、現実に同時に作動する論理セルの数が増大する確率が高くなる。したがって、瞬時的に過剰な電流が生じることに起因する上述の不具合を招く虞れがある。
【0023】
また、非特許文献1,2,3の方法では、通常クロックネットは、クロック信号が供給されないセルに対する他のネットと同時に配線される場合(使用できる配線層は同じ)が多く、大規模で複雑なクロック木の場合、他のネットとの配線経路の関係からクロックネットの配線経路の迂回路の発生等、配線長がいたずらに長くなる配線が発生しやすくなるといった問題があった。
【0024】
また、特許文献2の方法において、半導体チップ上に機能ブロックを配置してクロック木を生成してクロック配線を行なう場合、その配線はクロック供給源から各機能ブロックのクロック端子までを等長にしなければならないという制約があり、その制約を守るために他のネットの障害を避ける意味でクロック専用の配線を用いることが必要になってくる。例えば、配線層を3層で構成する半導体チップの場合、第1及び第2層目配線を一般信号線や電源配線用とし、第3層目配線をクロック配線用として用いることになる。この場合、3層目配線に一般信号線を形成できないため、3層目配線を一般信号線としても併用した場合と比べてチップ面積が大きくなる。一方、配線層が2層の半導体集積回路では、クロックネットとクロックネット以外のネットとを混在させると、クロックスキューの正確な調整が困難となる。これは、下記理由による。すなわち、クロックネットとクロックネット以外のネットとを同じ配線層内に混在させているので、クロックネットとクロックネット以外のネットとの干渉を避けるためには、クロック発生源から各機能ブロックのクロック入力端子までの配線長を同じ長さにすることが困難な場合が多い。したがって、いったん機能ブロックの配置やクロックネットの配線を行った後、スキューの最終的な調整を行うためにクロックバッファのトランジスタサイズを変更しなければならない場合等がある。その場合、機能ブロック内のクロックバッファのトランジスタサイズを変更すると、機能ブロック内のレイアウトを再度設計する必要が生じる。しかし、これではレイアウト工数が大幅に増大することになり、このような手法を用いることの意義が薄れてしまうことになる。
【0025】
本発明の目的は、半導体集積回路内における遅延時間を容易に所定範囲内に調整し得る手段を講ずることにより、多数の回路を組み込んだシステム全体においても、各回路間の作動を円滑にある同期させ得るような半導体集積回路のレイアウトを設計することにある。
【0028】
【課題を解決するための手段】
本発明の半導体集積回路の設計方法は、複数の素子で構成される半導体集積回路を少なくとも1つの素子からなる複数のセルに区画し、上記複数のセルを上記クロック信号が供給される複数の第1種セルと該第1種セル以外のセルからなる複数の第2種セルとに分類し、かつ上記複数のセルを複数の機能ブロックに区画して、上記半導体集積回路を設計する方法であって、仮配置された各機能ブロックとブロック外配線とを用いて、上記第1クロック入力部から上記各機能ブロックの上記第2クロック入力部までのブロック外遅延時間と各機能ブロック内における上記第2クロック入力部から上記各第1種セルまでのブロック内遅延時間との和として最終的遅延時間を上記各第1種セルごとに算出して、上記各第1種セルにおける最終的遅延時間の差であるクロックスキューが制限範囲に収まり、かつ上記各第1種セルについての最終的遅延時間が所定範囲に収まるように上記ブロック外配線経路を回路シミュレータにより算出する第1ステップと、上記第1ステップで算出された各配線経路にしたがって配線パターンを生成する第2ステップとを備えている。
【0029】
この方法により、半導体集積回路内における各第1種セルにおける遅延時間がある幅に調整される。したがって、半導体集積回路内における各機能ブロック間において、各セルを構成する素子が共通のクロック信号に同期して動作する。また、複数の半導体集積回路で構成されるシステムの各半導体集積回路間においても、各セルを構成する素子が共通のクロック信号に同期して動作することができる。
【0032】
上記第1ステップで、各セルの最終的遅延時間を上記所定範囲内で互いに異なる複数の値に分布させることにより、半導体集積回路の回路規模が大きくなり、クロック周波数が増大しても、半導体集積回路内で現実に多くのセルが同時に作動するような事態を回避することが可能となる。したがって、瞬間的な電流の増大に起因するフリップフロップ等の動作不良を防止することができる。
【0033】
上記第1ステップを、上記機能ブロックへの第2クロック入力部から導出される配線を順次複数方向に分木させ最終的に個々の上記第1種セルに至るように構成されたクロック木構造を表すテンプレートを生成するステップと、上記クロック木構造に基づいて、上記各第1種セルを機能ブロック内に配置し、さらに上記第1種セルが配置された領域以外の空き領域に上記第2種セルを配置するステップと、論理接続要求に従って、上記各セル間の概略の配線経路を算出するステップと、上記第2クロック入力部から上記クロック木上の各第1種セルにおける遅延時間を最終的に所望の値に調整するステップと、上記ステップで求めた配線経路に従って機能ブロック内の配線パターンを生成するステップとにより構成することにより、各機能ブロック内でクロック木構造を利用したクロックネットの形成が容易に行われる。また、予めクロックネットの構造が定まっているので、第2種セルの配置の最適化やクロックネットとクロックネット以外のネット間の配線の干渉を容易に回避することができる。したがって、レイアウト設計のための工数が大幅に低減されることになる。
【0034】
上記テンプレートを生成するステップを、上記クロック木の分木数を算出するステップと、上記クロック木の大きさを算出するステップと、上記クロック木上のタッピングポイントの位置を算出するステップと、上記クロック木に遅延時間調整用セルを配置するステップとにより構成することにより、テンプレートを生成する段階で、機能ブロック内への第2種セルを配置するための領域が確保され、遅延時間及びクロックスキューがある程度所望値に近い状態に設定されているので、後のステップの進行がスムーズとなる。したがって、レイアウト設計の能率が大幅に向上する。
【0035】
なお、上記各セルの最終的な遅延時間を調整するステップは、クロック木上の中間節点に位置するセルの出力駆動能力の変更と、クロック木内の配線の幅の変更と、クロック木上のタッピングポイントの変更とのうち少なくともいずれか1つの変更により行うことができる。
【0036】
上記第2クロック入力部の前段側かつ機能ブロックの外側にブロック外遅延時間調整用セルを配置するステップをさらに備えることにより、ブロック外遅延時間調整用セル例えばクロックバッファのサイズを変更するだけでブロック外遅延時間やクロックスキューが調整され、その際、各機能ブロック内のレイアウトを再設計し直す必要はない。したがって、このリサイジングに伴うレイアウト工数の増大を回避することができる。
【0048】
図1a−図1dは、クロック構造の設計の概念を示す図である。図1aに示すように、半導体集積回路1の内部を複数の機能ブロックBL1,BL2,…,BLnに区画し、各機能ブロックBL1,BL2,…,BLnの配置を仮に定める。すると、クロック発生源2から第1クロック入力部3を介して半導体集積回路1内に入力されるクロック信号を各機能ブロックBL1,BL2,…,BLnの第2クロック入力部4まで伝達するためのブロック外配線経路CNout (ブロック外クロックネット)も仮に決定し得る。ただし、図1aに示す半導体集積回路1内の内部が空白で表されている枠は、図1bに示す機能ブロックBL1,BL2,BLnを示す。そして、図1bに示すように、半導体集積回路1内の各機能ブロックBL1,BL2,…,BLn内には、多数の論理セルが収納された状態となっている。
【0049】
ここで、図1cに示すように、ブロック外クロックネットCNout を構成する配線は電気的には抵抗と容量とが結合した遅延要素の集合であるので、第1クロック入力部3から各機能ブロックBL1,…,BLn-1 ,BLnまでのブロック外遅延時間T1out ,…,Tn−1out ,Tnout は仮に定まる(ただし、配線の径は一定値としておく)。また、各機能ブロックBL1,…,BLn−1,BLnはそれぞれ遅延時間T1in,…,Tn−1in,Tninをもったバッファとみなし得る。従って、第1クロック入力部3から各機能ブロックBL1,BL2,…,BLn−1,BLnの各論理セルまでのクロック信号の遅延時間T1,T2,…,Tn−1,Tnを概略的に見積もることができる。そして、この段階で各機能ブロックにおける遅延時間T1,T2,…,Tn−1,Tnがそれぞれ所定範囲内に収まるか否かを見積もる。同時に、クロックスキューが制限範囲内に収まるかどうかの見当をつける。なお、クロックスキューが「0」であるということは、T1=T2=…=Tn−1=Tnであることを意味する。そして、各論理セルにおける遅延時間T1,T2,…,Tn−1,Tnがいずれも所定範囲に収まるという見通しが立てば、仮に定めた位置への機能ブロックの配置及び機能ブロック内のクロックネットの設計にはいる。一方、この段階で、各機能ブロックにおける遅延時間T1,T2,…,Tn−1,Tnを所定時間に収める見通しが立たない場合には、機能ブロックBL1,BL2,…,BLn−1,BLnの配置を変更するなどによって、各論理セルにおける遅延時間T1,T2,…,Tn−1,Tnを再度見積もり、遅延時間が所定範囲内に収まりかつクロックスキューが制限範囲内に収まるまで仮配置を行う。この仮配置が終わると、図1dに示すように、仮配置が終わった段階におけるクロックネットについて回路シミュレータ(例えばSPICE)を用いて詳細に遅延時間の演算を行う。
【0050】
次に、本実施形態におけるクロック設計方法の詳細について説明する。まず、図2aに示すように、ブロック外クロックネットCNout を形成する。このとき、半導体集積回路1内に各機能ブロックBL1,BL2,…を仮に配置しておき、ブロック外クロックネットCNout のうち各機能ブロックBL1,BL2,…,BLnに至るまでの最終分岐点までの部分を決定し、最終分岐点5から各機能ブロックBL1,BL2,…,BLnに至る部分は、仮に決定しておく。つまり、最後に機能ブロックBL1,BL2,…,BLnの位置を少しずらせる余地は残しておくのである。そして、第1クロック入力部3から各機能ブロックBL1,BL2,…,BLnの第2クロック入力部4までのクロック信号のブロック外遅延時間T1out ,T2out ,…,Tnout を計算する。
【0051】
次に、図2bに示すように、各機能ブロックBL1,BL2,…,BLn内におけるクロック信号を伝達するための配線経路であるクロック木CT1,CT2,…,CTnを後述のクロック木構造で生成する。このクロック木の生成方法については、第2の実施形態で説明する。このとき、各機能ブロックBL1,BL2,…,BLn内におけるブロック内遅延時間T1in,T2in,…,Tninを計算する。
【0052】
最後に、図2cに示すように、半導体集積回路1内に各機能ブロックBL1,BL2,…,BLnを組み込んだ状態で、各機能ブロック内の論理セルにおける遅延時間T1(=T1out +T1in),T2(=T2out +T2in),…,Tn(=Tnout +Tnin)を算出する。このとき、各論理セルにおける遅延時間T1,T2,…,Tnがそれぞれある範囲内で互いに異なる何種類かの値に群別されるように制御しながら、各クロックネットの配線の幅を変更し、あるいは必要に応じてクロックバッファを配置する。その場合、クロックスキューは「0」ではなく、何種類かの異なる値に群別されることになるが、各論理セルの同期不良を招かない程度の制限範囲内には収まるようにする。
【0053】
このように遅延時間を群別する場合、各機能ブロックBL1,BL2,…,BLn単位で何種類かに群別すればある機能ブロック内では各論理セルへのクロック信号の遅延時間が同じになるように設計することになる。それでもよいが、各論理セルについて遅延時間を群別してもよい。つまり、ある機能ブロック内である論理セル群毎にクロック信号の遅延時間が異なるように設計してもよい。
【0054】
本実施形態のようなレイアウト設計方法では、先に機能ブロック外の配線経路つまりブロック外クロックネットを生成し、その後各第1クロック入力部3から各論理セルまでのクロック信号の遅延時間T1,T2,…,Tnを所定範囲にするように、全体のクロックネットを生成するので、各論理セルまでのクロック信号の遅延時間T1,T2,…,Tnを所望の値に調整し得る。従って、各機能ブロック間において、各論理セルが共通のクロック信号に同期して動作する。また、幾つかの半導体集積回路で大きなシステムを構成する場合でも、各半導体集積回路間の作動を正確に同期させることができる。
【0055】
なお、本実施形態のように、クロックネットの構造設計の当初はブロック外クロックネットCNout のうち各機能ブロックBL1,BL2,…,BLnに至る最終分岐点5までに止めておく必要は必ずしもなく、各機能ブロックの各第2クロック入力部4まで決定してもよい。ただし、本実施形態のごとく、クロックネットの構造設計の当初はブロック外クロックネットのうち最終分岐点5までの部分をまず決定しておき、最後の配線を行うステップで遅延時間を調整する等のために機能ブロックの位置を微調整することで、特に遅延時間の調整を微細かつ正確に行うことができるとともに、調整可能な幅の拡大をも図ることができる。
【0056】
なお、本実施形態では、本番のクロックネットのレイアウト設計に入る前に擬似的にクロックネットの設計を行ったが、必ずしも擬似的なクロックネットの設計を行うことなく本番のクロックネットのレイアウト設計から始めてもよい。ただし、擬似的なクロックネットの設計の段階で、遅延時間T1,T2,…,Tnが所定範囲に収まるように各機能ブロックBL1,BL2,…,BLnの適正な配置場所を概略的に求めておくことで、後に当初の配置場所ではどうしても遅延時間やクロックスキューを所望の値に調整できないことが判明して機能ブロックを再配置しなければならなくなるような事態を回避し得る。
【0057】
また、本実施形態におけるような遅延時間の群別は必ずしも行う必要はなく、各論理セルの遅延時間を同じに、言い換えるとクロックスキューが「0」になるようにしてもよい。ただし、このように設計段階で論理セルにおける遅延時間が幾つかの異なる値に群別されるように設計しておくことで、半導体集積回路の規模が大きくなり、クロック周波数が高くなったときでも、ある瞬間に多くの論理セルが一度に作動して電力の不足により動作不良を生じるのを有効に防止することができる。
【0058】
さらに、本実施形態においては、ブロック外クロックネットCNout はクロック木を用いて設計しなかったが、クロック木を利用してブロック外クロックネットCNout を設計するようにしてもよい。
【0059】
(第2の実施形態)
次に、第2の実施形態について、図3−図11を参照しながら説明する。
【0060】
図3は、第2の実施形態におけるレイアウト設計方法の全体の手順を示すフローチャートである。
【0061】
図4は、本実施形態に係る半導体集積回路1の構成を示し、半導体集積回路1内のパッド11で囲まれる領域に3つの機能ブロックBL1,BL2,BL3が配置されており、クロック信号を供給するクロック発生源(図示せず)から各機能ブロックBL1,BL2,BL3に供給されるクロック信号を伝達するブロック外クロックネットCNout と、各機能ブロックBL1,BL2,BL3内で各基本論理セルにクロック信号を伝達するための配線経路を表すクロック木CT1,CT2,CT3が生成されている。
【0062】
図5−図8は、上記図3に示す手順に従って上記図4に示す機能ブロックBL1内における配置配線を行う場合の構造の変化を示す図である。
【0063】
以下、図5−図8を参照しながら、図3に示す手順に従って、概略的な手順のみを説明する。
【0064】
まず、ステップST1で、例えば図5aに示すように、クロック木が持つ遅延(木の根から各葉までの到達時間)を制限範囲内に抑えるために、機能ブロックBL1におけるクロック木CT1の構造を表すテンプレートを生成する。本実施形態では、予めクロック木CT1上に配置される第1種セルであるフリップフロップ及びクロックバッファの位置とクロック木CT1自体の大きさを決定するために、クロック木CT1のテンプレートを生成する。ここで、重要なことは、クロックバッファのトランジスタサイズの変更だけでなく、クロック木の大きさによっても、クロック木の根から葉に位置するフリップフロップまでの遅延時間(この実施形態ではブロック内遅延時間Tinになる)を変化させることができることである。この性質を使って、クロック木の遅延を微細に調整できるとともに、必要に応じて空き領域を確保することができる。その際、ステップST12で、遅延時間の計算を行い、その計算結果を基にテンプレートを生成する。例えば図5bに示すように、タッピングポイント23を各論理セルの等距離位置よりもずらせることで、各論理セルにおける遅延時間を互いに異なる値とし、クロックスキュー値を調整することもできる。
【0065】
次に、ステップST2で、全ての論理セルを配置する。このとき、まず、図6a及び図6bに示すように、クロック木CT1上に第1種論理セルであるフリップフロップ20及びクロックバッファ21を先に配置する。その後に、図7aに示すように、残りの第2種論理セル22を配置することにする。
【0066】
次に、ステップST3で、概略配線を行なう。クロック木の構造は既にステップST1で生成されているが、クロック木に関する概略配線経路を詳細に決定し、つまり具体的に半導体集積回路内のどの辺りに配線を引くかを決定し、さらにクロックネット以外のネット(つまり、クロック信号以外の信号を伝達する配線の経路)に関しても概略的な配線経路を求める。このとき、クロック木の構造を考慮して、配線混雑度の最小化等を行ない、配線領域の面積が最小化されるような概略配線経路を決定する。
【0067】
次に、ステップST4で、フリップフロップ20及びクロックバッファ21の配置位置を基に、詳細にクロックスキュー値の調整を行なう。その際、クロックバッファ21のトランジスタサイズの変更や、図7bに示すような経路30,31,32における配線幅の変更や、タッピングポイントの変更等を行なって微小な調整をする。このステップST4では、クロック木の遅延の調整は行なわない。何故なら、この段階では大きな遅延の変更(調整)が不可能であるからである。なお、クロックバッファのトランジスタサイズの変更の代わりに、異なるクロックバッファを選択する方法でもよい。
【0068】
最後に、ステップST5で、図8に示すように、全てのネットの配線の詳細なパターンを生成する。ここでは、下記2つの方法(1)又は(2)
(1)クロックネットに対し専用配線層1層で配線し、それ以外のネットは他の配線層を用いて配線する方法
(2)全ネットについて全ての配線層を用いて配線する方法
を択一的に選択することができる。
【0069】
上記方法(2)の場合、クロックネットとクロックネット以外のネットとの関係によっては、所望のクロックスキュー値と異なる配線を行なう場合が発生するかもしれないので、さらに微小な調整の意味で配線幅変更を行なう。
【0070】
このように、クロック木構造決定にテンプレートを用いているので、フリップフロップやクロックバッファの最適配置の決定及びクロックスキューやクロック木の遅延を柔軟かつ容易に制御することができ、クロック周波数の高い半導体集積回路のレイアウト設計が容易となる。また、クロック木構造が予めわかっているので、他の論理セルの配置位置を最適化でき、かつクロックネットと一般信号ネットとの間の干渉を回避して配線混雑度を容易に低減することができる。
【0071】
なお、本実施形態はクロック木の中間節点のクロックバッファとしてバッファを配置してクロック木を生成しているが、クロック木の根元から葉までが偶数段である場合には、論理値が反転するインバータを配置しても最終的には入力信号の論理値が維持されるので、不具合は生じない。
【0072】
次に、上記図3に示すフローチャートの各ステップST1−ST5の具体的な内容について説明する。
【0073】
ステップST1は、図3に示すように、大きく分けて4つのステップから構成されている。まず、ステップST6で、クロック木の構造を決定する。その場合、例えば図9aに示す2分木方式と図9bに示す3分木方式とがある。図9aに示す2分木方式の場合、クロック木をバッファ挿入レベルが「3」とすると、図9aの上図に示すように、フリップフロップ20を最大8個まで配置でき、クロックバッファ21は7つ挿入する必要がある。ここで、バッファ挿入レベルとはクロック信号を供給する根元となるクロックバッファ21から各フリップフロップ20まで辿るのに必要なバッファの段数である。もしバッファ挿入レベルが「3」でクロック木が3分木とすると、図9bに示すように、フリップフロップ20を最大9個まで配置でき、クロックバッファ21は4つ挿入する必要があることになる。従って、分木数が多くなるほどバッファ挿入数が減少し、最大フリップフロップ数は増加するが、バッファ間やフリップフロップ−バッファ間の配線が増加するので最終的なチップ面積に有利であるとは限らない。
【0074】
なお、1つのクロック木内における分木数の種類を2分木,3分木等の単一種類に限定してもよいが、1つのクロック木内に数種類の分木数を混在させてもよい。
【0075】
本実施形態では、図5aに示すように、2分木構造のクロック木CT1を生成する。
【0076】
次に、ステップST7で、テンプレートサイズつまり機能ブロックBL1内で生成するクロック木CT1の大きさを決定する。図10aは、各機能ブロックBL1,BL2,BL3内におけるテンプレート領域Ret1,Ret2,Ret3を示し、各テンプレート領域Ret1,Ret2,Ret3は各機能ブロックBL1,BL2,BL3で生成するクロック木CT1,CT2,CT3の大きさをそれぞれ表している。例えば、図10bはテンプレートサイズを小さく設定した場合の形状を示し、図10cはテンプレートサイズを大きく設定した場合の形状を示す。両者の形状は幾何学的には相似であるが、クロックバッファ間やフリップフロップ−バッファ間の配線の長さが異なってくる。そして、配線の長さが異なると、配線の遅延時間が変化し、短い配線長であるほど配線における遅延時間は小さくなる。すなわち、図10bに示すテンプレートサイズを有するクロック木の方が、総遅延時間(根元のクロックバッファからフリップフロップまでの最大遅延時間)が小さいことになる。しかし、クロック木のサイズを小さくし過ぎると、フリップフロップが狭い領域に集中し、配線の混雑による配線の占有面積が増大し、最終的な機能ブロック面積の増加やチップ面積の増加を引き起こすことになるので注意しなければならない。
【0077】
本実施形態では、図5a,図5bに示すように、機能ブロックBL1の大きさ一杯にクロック木を生成させる。
【0078】
次に、ステップST8で、クロックスキューの大きさを調整するためにタッピングポイント23を決定する。図11aは、クロック木がバランスするようにタッピングポイント23を設定している場合であり、クロックスキューは「0」となる。一方、図11bはタッピングポイント23を図中やや左方にずらし、クロック木としてアンバランスな形を形成したものである。この場合、各クロックバッファ21間やクロックバッファ−フリップフロップ間の配線長が各々異なっているのでクロックスキューは「0」より大となる。これを実現するために、図3のフローチャートに示すように、ステップST8は、2つのサブステップST8a及びST8bから構成されている。すなわち、ステップST8aで、予め設定された最大許容スキュー値以内のあるクロックスキュー値に設定した後、ステップST8bで、その設定されたクロックスキュー値に合うようなタッピング位置を決定する。
【0079】
その際、ステップST12による遅延時間の計算結果を利用してクロックスキュー値を算出する。クロックスキュー値は、2分木の場合、分木される左側に生じる遅延時間と分木される右側に生じる遅延時間との差であるから、先のステップST8aで設定されたクロックスキュー値になるように、タッピングポイント23の位置を決定する。これは、3分木以上の場合も同様に計算することができる。
【0080】
以上のステップによってクロック木の大きさとタッピングポイント23の位置までが決まってもクロック木に挿入されるクロックバッファ21の種類が決定していないので、クロック木の遅延時間は一意に定まらない。それを決定するために、ステップST9で、挿入されるクロックバッファ21の種類を選択する。クロックバッファ21は、一般的に駆動能力の大きいものは早く、小さいものは遅く動作する。予め要求されたクロック木の遅延時間値になるように、ステップST12で得られた遅延時間の計算結果に基づいて各クロックバッファ21の種類を選択する。ここで、どのようにクロックバッファの組み合わせを変えてもクロック木の遅延の要求値に合わない場合が発生することもあり得るが、その場合は、ステップST7に戻ってクロックバッファ21の種類を固定して再度テンプレートの大きさを決定する。
【0081】
以上のステップにより、要求されるクロックスキュー値とクロック木の遅延時間値に合ったテンプレートの大きさと、その中に挿入されるクロックバッファ21の種類及びタッピングポイント23の位置が決定される。
【0082】
図5bは、機能ブロックBL1において、クロック木CT1の各部のタッピングポイント23の位置が決定された状態を示している。
【0083】
次に、ステップST2で、フリップフロップとクロックバッファを含む回路中の論理セル群を配置する。その際、まず、クロック木に配置される第1種論理セルを配置する。すなわち、ステップST2aで、図6aに示すように、機能ブロックBL1内のクロック木CT1にフリップフロップ20を配置する一方、ステップST22bで、図6bに示すように、クロック木CT1にクロックバッファ21を配置する。ただし、フリップフロップ20とクロックバッファ21との配置の順番はどちらでも良い。
【0084】
そして、ステップST2cで、機能ブロックBL1内のクロック木CT1以外の部位に、クロック信号が直接入力されない第2種論理セル(残セル)22を配置する。図7aは、第2種論理セルが配置された状態を示す。この状態では、まだ配線幅等は未定なので、配線部分は破線で示されている。
【0085】
その際、すでにフリップフロップ20とクロックバッファ21を配置しているので、クロック木CT1つまりブロック内クロックネットの構造を意識しながら第2種論理セル22を配置することができる。従って、仮想配線長の最小化や配線混雑度の低減化等を評価しながら配置の最適化を行なうことが可能となる。ただし、このステップのみでは配置が良くない場合もあり得る。その場合には、さらに、上記ステップST2aやステップST2bに戻って、第2種論理セル22を配置した状態で、フリップフロップ20又はクロックバッファ21の配置改善を行ない、その後、再度ステップST2cで第2種論理セル22の再配置を行なうことができる。その際、配置状態が最適化されるまで、例えば仮想配線長が最小なるまでや配線混雑度が最小になるまで行なうことにより、従来クロックネットとその他のネットの配線の絡み合いが低減され、結果的に混雑(密集)の少ない配線パターンの生成ができる。
【0086】
次に、ステップST3では、全ネットの概略配線経路を決定するが、すでにクロック木構造が決まっているので、設定したクロックスキューやクロック木の遅延を保持しながら、クロックネット以外のネットとの間の配線経路を決定することができる。
【0087】
以上の各ステップによって、全ネットの概略配線経路まで定まったので、ステップST4では、所望のクロックスキュー値を正確に実現するために、クロックバッファ21のトランジスタサイズ変更、配線幅の変更及びタッピングポイント23の変更を行なう。配線における遅延時間は配線がもつ容量と抵抗から求められるので、クロックスキューの大きさは、配線幅によって調整でき、配線幅の変更もクロックスキュ値ーを調整するための一手段として用いることができる。例えば図12aは、タッピングポイント23がバランスし、かつ同一の幅を有する配線を用いた場合の配線状態を示す。この場合、明らかにクロックスキュー値は「0」である。それに対し、図12bは、タッピングポイント23はバランスしているものの、2種類の相異なる幅を有する配線を用いた場合の配線状態を示す。この場合、配線幅が大きい程抵抗値が下がるので、太い配線を用いた経路における遅延時間は小さくなる。なお、太い配線において、容量は逆に増えることになるがその割合は抵抗値より低い。従って、図12bに示す配線状態では、クロックスキュー値は「0」ではない。
【0088】
なお、このステップST4は、ステップST12による遅延時間の計算と連係しながら実行する。
【0089】
ここで、ステップST4のサブステップST4aでクロックバッファ21のトランジスタサイズの変更を行い、サブステップST4bで配線幅の変更を行い、サブステップST4cでタッピングポイント23の位置の変更を行なう。タッピングポイント23の位置は、各セルの配置が既に完了しているので、大幅に変更することは困難である。従って、遅延時間を大幅に調整する場合は、クロックバッファ21のトランジスタサイズの変更による。そして、遅延時間の微調整は、配線幅の変更とタッピング位置の変更とによる。これらのステップST4a−4cを用いることによって、正確なクロックスキュー値の調整が可能となる。図7bにおいて、経路30は最小線幅で、経路31はそれより少し太く、さらに経路32は経路31より太い配線幅にしたことを表している。
【0090】
次に、ステップST5で全ネットの配線を行うが、上述のように、ステップST5を実行する具体的な方法として上記方式(1)と方式(2)とがある。
【0091】
方式(1)では、ステップST10aで、クロックネットを主に一層で配線し、ステップST10bで、クロックネット以外のネットをステップST10aで主に使われなかった層を用いて配線をする。このようにステップST10aでクロックネットのみを主に一層で配線する理由は、以下の通りである。すなわち、ステップST4で、クロックスキュー値を正確に計算してタッピングポイント23や経路30,31,32の配線幅を変更してクロックネットを構成したが、クロックネットをクロックネット以外のネットと同様に扱うと、上述の設定通りに実際の配線を行うことが困難となる虞れがあるからである。
【0092】
また、方式(2)では、ステップST11aで、いったん全ネットを配線した後、ステップST11bで、クロックネットのみに対し、ステップST8aで求めたクロックスキュー値に合わせて再度配線幅を変更する。
【0093】
図8に示すように、本実施形態では、ステップST4で決定した各クロックネットの構造に合わせて配線幅を決定している。例えば、図7bに示す経路30,31,32は、それぞれ図8に示す配線33,34,35にそれぞれ対応している。
【0094】
以上でレイアウトが完了する。
【0095】
本実施形態によれば、クロック木構造決定にテンプレートを用いているので、フリップフロップやクロックバッファの最適配置の決定とクロックスキューやクロック木に配置される各第1種論理セルにおける遅延時間の調整とを柔軟かつ容易に行うことができ、クロック周波数の高い半導体LSIチップのレイアウト設計が容易となる。また、クロック木構造が予めわかっているので、他の論理セルの配置位置最適化やクロックネットと一般信号ネットの間の配線混雑度の低減を容易化することができる。
【0096】
なお、第2実施形態において、ブロック外クロックネットをクロック木を用いて設計してもよいし、各論理セルを機能ブロックに分割することなく、半導体集積回路内に配置してもよい。
【0097】
(第3の実施形態)
次に、第3の実施形態について、図13−図15を参照しながら説明する。図13は、第3の実施形態に係る半導体集積回路1のレイアウトを示す図である。図13に示すように、半導体集積回路1内には、4つの機能ブロックBL1−BL4が配置されており、各機能ブロックBL1−BL4が配置されている領域以外の領域はトランジスタを敷き詰めたゲートアレイ領域40となっている。また、クロック信号を生成するために、パッド上の一部にクロック発生源2が設けられている。クロック信号は、ブロック外クロック配線41を通り、各クロック端子43を介して各機能ブロックBL1−BL4に供給される。ブロック外クロック配線41と各機能ブロックBL1−BL4との間にはクロックバッファ44が配置されている。このバッファ44はブロック外クロック配線41を構成するためのクロック木を構成したときに現れるものか、或は、機能ブロックBL1−BL4内のクロック木CT1−CT4の根になるものかいずれかである。ブロック外クロック配線41を生成する場合、通常各機能ブロックBL1−BL4に供給されるクロック信号の同期をとるために、可能な限りクロック発生源2から各クロックバッファ44までが等長となるように配線が行なわれる。
【0098】
ここで、本実施形態では、クロックバッファ44は機能ブロックBL1−BL4の外側に配置されているので、各機能ブロックBL1−BL4とは独立して、クロックバッファ44のトランジスタサイズの変更(リサイジング)が可能となる。機能ブロックBL1−BL4内に根元となるクロックバッファを配置した場合、何らかの問題から機能ブロックBL1−BL4のレイアウトを終了したのちにクロックバッファのバッファサイズ、即ちトランジスタサイズの変更があったとき、遅延時間を所望の値の制御するためには、再度機能ブロックBL1−BL4をレイアウトする必要が生じ、レイアウトのための工数が増大する。それに対し、このように機能ブロックBL1−BL4の外部にクロックバッファ44を配置することで、機能ブロックの再レイアウトを実行することなしにチップ全体のクロック木の遅延時間やクロックスキューの調整を詳細に行なうことができ、よって、レイアウト工数の増大を有効に防止することができる。
【0099】
なお、図13のクロックバッファ44の部分を拡大した図に示すように、本実施形態では、標準サイズの3倍のトランジスタサイズをもったクロックバッファ44を用いている。
【0100】
なお、本実施形態では、ゲートアレイ領域40内に敷き詰められたトランジスタを利用してクロックバッファ44を形成しているが、機能ブロックBL1−BL4の近傍の配線領域の一部に設けたトランジスタを利用してゲート領域を形成した場合でもよい。
【0101】
次に、本実施形態におけるレイアウト設計方法について、図14及び図15を参照しながら説明する。図14は、図13に示す半導体集積回路1におけるクロック配線を形成する手順を示すフローチャートである。図15は、図14に示すフローに沿った半導体集積回路の設計状態の変化を示す分解図である。
【0102】
本実施形態では、図15aに示すように、パッド上の一部にクロック発生源2を配置し、半導体集積回路1内に、未だレイアウトを実行していない機能ブロックBL1−BL4と、機能ブロック外の配線領域であるゲートアレイ領域40とを有するチップ(この例の場合、エンベデッド・セル・アレイ方式LSI)を例にとって説明する。
【0103】
まず、ステップST21で、図15bに示すように、未だレイアウトの終了していない4つの機能ブロックBL1−BL4において、クロックネットを形成するためのクロック木CT1−CT4をそれぞれ生成させ、クロックネット以外のネットと共にレイアウトを完成させる。その際、クロック木CT1−CT4を生成させるとき、そのクロック木の根にあたるクロックバッファを機能ブロックBL1−BL4内に配置することなく、ゲートアレイ領域40に配置する。
【0104】
次に、ステップST22で、図15cに示すように、各機能ブロックBL1−BL4を半導体集積回路1内に配置する。
【0105】
ここで、上記ステップST22を先に行った後に、ステップST21を行ってもよい。但し、その場合は、ステップST22では、未レイアウトの機能ブロックBL1−BL4を配置することになるので、これらの概略の位置を決定したに過ぎない。
【0106】
次に、ステップST23で、図15dに示すように、機能ブロックBL1−BL4の近傍にクロックバッファ44を配置する。このクロックバッファ44は、ステップST22で生成された各機能ブロックBL1−BL4内のクロック木CT1−CT4の根に相当する部位に配置されている。各クロックバッファ44のトランジスタサイズは、各クロック木CT1−CT4を生成するときに見積もった必要なドライブ能力に応じたサイズである。この例では、機能ブロック外の領域をゲートアレイ領域40で構成しているので、任意の位置にクロックバッファ44を配置することができる。
【0107】
最後に、ステップST24で、機能ブロック外のクロック木を生成し、ブロック外クロック配線41を形成する。この例のブロック外クロック配線41は、テーパーリング(段階的に、配線幅を変化させる)が行われた結果の状態を示している。テーパーリングは、エレクトロ・マイグレーションやクロック遅延時間値の最適化を行なう際に有効な手段である。また、ブロック外クロック配線41はクロック発生源2から各クロックバッファ44までのクロックスキューを最小化するように形成する。この時、チップ全体におけるクロックスキューを微調整するために、クロックバッファ44を構成するトランジスタのリサイジングを行なうこともある。その場合、上述したように、機能ブロックBL1−BL4の外側にクロックバッファ44を配置したので、クロックバッファ44を構成するトランジスタのリサイジングだけで、チップ全体のクロックスキューの微調整を実現できることは明白である。
【0108】
【発明の効果】
本発明によれば、機能ブロック内だけでなく、各機能ブロック間や、複数の半導体集積回路で構成されるシステムにおける各半導体集積回路間においても、各セルの動作の同期を確保することができる。
【0109】
あるいは、トップダウン的な設計により遅延時間の増大を回避しながら、各機能ブロック間における各セルの動作の同期の確保と、クロックネットの形成の容易化と、各配線間の干渉の回避の容易化とを図り、かつ工数の大幅な低減を図ることができる。
【図面の簡単な説明】
【図1】第1の実施形態に係る仮クロック設計の手順を説明する図である。
【図2】第1の実施形態に係るクロック設計の手順を説明する図である。
【図3】第2の実施形態に係るレイアウト設計手順を示すフロー図である。
【図4】第2の実施形態に係る半導体集積回路の構成を概略的に示すブロック図である。
【図5】第2の実施形態に係るレイアウト設計手順のうちクロック木の構造の決定とタッピングポイントの位置の決定とを終了した状態を示すブロック図である。
【図6】第2の実施形態に係るレイアウト設計手順のうちフリップフロップの配置と、その後のクロックバッファの配置とを終了した状態を示すブロック図である。
【図7】第2の実施形態に係るレイアウト設計手順のうち第2種論理セルの配置と、配線幅の変更とを終了した状態を示すブロック図である。
【図8】第2の実施形態に係るレイアウト設計を終了した状態を示すブロック図である。
【図9】第2の実施形態に係るレイアウト設計手順のうちクロック木の構造が2分木の場合と3分木の場合とのセル数の相違を説明するブロック図である。
【図10】第2の実施形態に係るレイアウト設計手順のうち機能ブロックとクロック木の大きさとの関係及びクロック木の大小の相違を説明するブロック図である。
【図11】第2の実施形態に係るレイアウト設計手順のうちクロックスキューを「0」又は正の値にするためのタッピングポイントの位置を説明するブロック図である。
【図12】第2の実施形態に係るレイアウト設計手順のうちクロックスキューを「0」又は正の値にするための配線幅の設定を説明するブロック図である。
【図13】第3の実施形態に係る半導体集積回路の全体構成を概略的に示すブロック図である。
【図14】第3の実施形態に係るレイアウト設計手順を示すフロー図である。
【図15】第3の実施形態に係るレイアウト設計手順中における半導体集積回路の仮想的構造の変化を示すブロック図である。
【図16】従来の半導体集積回路の概略的な構造とクロック木の生成方法とを説明するためのブロック図である。
【符号の説明】
1 半導体集積回路
2 クロック発生源
3 第1クロック入力部
4 第2クロック入力部
5 最終分岐点
11 パッド
20 フリップフロップ(第1種セル)
21 クロックバッファ(第1種セル)
22 第2種セル
23 タッピングポイント
40 ゲートアレイ領域
44 クロックバッファ(ブロック外遅延時間調整用セル)
BL 機能ブロック
CT クロック木
CN クロックネット
Claims (6)
- 複数の素子で構成され、外部からクロック信号が入力される第1クロック入力部を有する半導体集積回路を、少なくとも1つの素子からなる複数のセルに区画し、上記複数のセルを上記クロック信号が供給される複数の第1種セルと該第1種セル以外のセルからなる複数の第2種セルとに分類し、かつ上記複数のセルを複数の機能ブロックに区画して、上記半導体集積回路を設計する方法であって、
上記第1クロック入力部から上記各機能ブロックに設けられた第2クロック入力部までのブロック外遅延時間と各機能ブロック内における上記第2クロック入力部から上記各第1種セルまでのブロック内遅延時間との和である最終的遅延時間の上記各第1種セルにおける差であるクロックスキューが制限範囲に収まり、かつ上記各第1種セルについての上記最終的遅延時間が所定範囲に収まるように上記各機能ブロックの配置及び上記各機能ブロック外に設けられたブロック外配線の経路を決定する第1ステップと、
上記第1ステップで決定された各配線経路に従って配線パターンを生成する第2ステップとを備え、
上記第1ステップは、
上記各機能ブロック及びブロック外配線を仮配置するステップと、
仮配置された上記各機能ブロック及びブロック外配線の配置データに基づいて、上記ブロック外遅延時間を回路シミュレータを用いて算出するステップと、
上記機能ブロックごとに、上記第2クロック入力部から導出される配線を順次複数方向に分木させ最終的に個々の上記第1種セルに至るように構成されたクロック木の構造を表すテンプレートを生成するステップと、
上記テンプレートに基づいて、上記各第1種セルを上記機能ブロック内に配置した後、上記第1種セルが配置された領域以外の空き領域に上記第2種セルを配置するステップと、
上記第1種セルの配置データに基づいて、上記各機能ブロック内における上記ブロック内遅延時間を回路シミュレータを用いて算出するステップと、
上記各第1種セルごとに、上記ブロック外遅延時間と上記ブロック内遅延時間とを加算することにより上記最終的遅延時間をそれぞれ算出すると共に、上記最終的遅延時間に基づいて上記クロックスキューをそれぞれ算出するステップと、
上記クロックスキューが上記制限範囲に収まり、かつ上記最終的遅延時間が上記所定範囲に収まるように、上記各機能ブロックの配置及び上記ブロック外配線の経路の調整を行うことにより上記各機能ブロックの配置及び上記ブロック外配線の経路を決定するステップとを含むことを特徴とする半導体集積回路の設計方法。 - 請求項1記載の半導体回路の設計方法において、
上記第1ステップでは、各セルの最終的遅延時間を上記所定範囲内で互いに異なる複数の値に分布させることを特徴とする半導体集積回路の設計方法。 - 請求項1記載の半導体集積回路の設計方法において、
上記第1ステップは、
論理接続要求に従って、上記各セル間の概略の配線経路を決定するステップと、
上記第2クロック入力部から上記テンプレートに基づいて配置された各第1種セルに至る遅延時間を最終的に所望の値に調整して、上記各セル間の配線経路を確定するステップと、
確定した配線経路に従って上記機能ブロック内の配線パターンを生成するステップとを含むことを特徴とする半導体集積回路の設計方法。 - 請求項3記載の半導体集積回路の設計方法において、
上記テンプレートを生成するステップは、
上記クロック木の分木数を算出するステップと、
上記クロック木の大きさを算出するステップと、
上記クロック木上のタッピングポイントの位置を算出するステップと、
上記クロック木に遅延時間調整用セルを配置するステップと
からなることを特徴とする半導体集積回路の設計方法。 - 請求項3記載の半導体集積回路の設計方法において、
上記各セルの最終的な遅延時間を調整するステップは、クロック木上の中間節点に位置する遅延時間調整用セルの出力駆動能力の変更と、クロック木内の配線の幅の変更と、クロック木上のタッピングポイントの変更とのうち少なくともいずれか1つの変更により行うことを特徴とする半導体集積回路の設計方法。 - 請求項1記載の半導体集積回路の設計方法において、
上記第2クロック入力部の前段側かつ上記機能ブロックの外側にブロック外遅延時間調整用セルを配置するステップをさらに備えたことを特徴とする半導体集積回路の設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003013710A JP3913180B2 (ja) | 1994-08-03 | 2003-01-22 | 半導体集積回路の設計方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18228694 | 1994-08-03 | ||
JP31339894 | 1994-12-16 | ||
JP6-182286 | 1994-12-16 | ||
JP6-313398 | 1994-12-16 | ||
JP2003013710A JP3913180B2 (ja) | 1994-08-03 | 2003-01-22 | 半導体集積回路の設計方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7189276A Division JPH08221473A (ja) | 1994-08-03 | 1995-07-25 | 半導体集積回路及びそのレイアウト設計方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003112929A Division JP3877698B2 (ja) | 1994-08-03 | 2003-04-17 | 半導体集積回路の設計方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003296387A JP2003296387A (ja) | 2003-10-17 |
JP3913180B2 true JP3913180B2 (ja) | 2007-05-09 |
Family
ID=29407401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003013710A Expired - Fee Related JP3913180B2 (ja) | 1994-08-03 | 2003-01-22 | 半導体集積回路の設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3913180B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150102086A (ko) * | 2012-12-26 | 2015-09-04 | 시놉시스, 인크. | 자동 클럭 트리 라우팅 규칙 생성 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5077010B2 (ja) * | 2008-03-26 | 2012-11-21 | 富士通株式会社 | システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。 |
JP4918934B2 (ja) * | 2009-08-21 | 2012-04-18 | 日本電気株式会社 | 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム |
CN103259526B (zh) * | 2013-06-03 | 2016-09-07 | 龙芯中科技术有限公司 | 时钟网络的构建方法和装置 |
CN113191112A (zh) * | 2021-03-25 | 2021-07-30 | 西安紫光国芯半导体有限公司 | 一种芯片的时钟树规划方法以及芯片 |
-
2003
- 2003-01-22 JP JP2003013710A patent/JP3913180B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150102086A (ko) * | 2012-12-26 | 2015-09-04 | 시놉시스, 인크. | 자동 클럭 트리 라우팅 규칙 생성 |
KR102103617B1 (ko) * | 2012-12-26 | 2020-04-22 | 시놉시스, 인크. | 자동 클럭 트리 라우팅 규칙 생성 |
Also Published As
Publication number | Publication date |
---|---|
JP2003296387A (ja) | 2003-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5774371A (en) | Semiconductor integrated circuit and layout designing method for the same | |
US6601227B1 (en) | Method for making large-scale ASIC using pre-engineered long distance routing structure | |
US8966425B1 (en) | Clock tree generation and routing | |
JP3891599B2 (ja) | 集積回路レイアウト内への標準セルの自動挿入装置 | |
US6442745B1 (en) | Method and apparatus for layout-constrained global routing | |
CN101587508B (zh) | 用于确定数据路径的路由的方法、***及计算机程序产品 | |
US6662349B2 (en) | Method of repeater insertion for hierarchical integrated circuit design | |
JP2540762B2 (ja) | クロック信号供給方法 | |
TW201921602A (zh) | 積體電路設計及(或)製造 | |
KR20020037715A (ko) | 혼합형 공급 전압 설계용 전압 아일런드를 논리적 및물리적으로 동시에 구성하는 방법 | |
JP2001505716A (ja) | 電子素子におけるネット・ルーティング方法 | |
US6480996B1 (en) | System and method for transposing wires in a circuit design | |
JPH10335472A (ja) | レイアウト設計方法およびレイアウト設計装置 | |
TWI222580B (en) | System and method for H-tree signal layout | |
JP2008147217A (ja) | 半導体集積回路のレイアウト方法、レイアウトプログラム | |
US6958545B2 (en) | Method for reducing wiring congestion in a VLSI chip design | |
US5849610A (en) | Method for constructing a planar equal path length clock tree | |
CN106096070A (zh) | 使用去填充和再填充操作来实现集成电路设计 | |
CN115659901B (zh) | 一种芯片物理设计的距离布线优化方法和装置 | |
JP3913180B2 (ja) | 半導体集積回路の設計方法 | |
CN102637217A (zh) | 基于云计算平台的大规模集成电路布线的方法及其*** | |
JP3877698B2 (ja) | 半導体集積回路の設計方法 | |
US6944842B1 (en) | Method for making large-scale ASIC using pre-engineered long distance routing structure | |
JP2002318827A (ja) | 集積回路製造システム | |
JPH08221473A (ja) | 半導体集積回路及びそのレイアウト設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061017 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061215 |
|
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: 20070116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070130 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100209 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120209 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |