説明

レイアウト装置及びレイアウト方法

【課題】クロックツリーにおけるクロックスキューの調整において、精度の確保とデューティ保持とを両立させる。
【解決手段】レイアウト装置(10)において、MOSトランジスタ1段で形成された第1セルと、MOSトランジスタ複数段で形成された第2セルとがライブラリ化されたテーブルを設ける。また、上記レイアウト装置には、上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンを上記クロックツリーに挿入することで、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能な演算処理部(12)を設ける。上記コンビネーションチェーンによってクロックスキューの調整を行うことで、個々の第1セルでの遅延誤差が伝播されるのを抑制し、遅延計算における遅延誤差の低減を図る。また、第1セルはMOSトランジスタ1段で形成され、そこで論理反転されるため、デューティ保持の観点で有利とされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スタンダードセルのレイアウト技術、さらにはクロックツリーにおけるクロックスキューを調整するための技術に関する。
【背景技術】
【0002】
論理LSI(Large Scale Integration)を効率よく設計するために、予め、機能毎に、所定の機能を実現するためのパターンを示すスタンダードセル(単に「セル」という)が設計され、設計対象となる回路に含まれる機能に応じて、チップ上に複数のスタンダードセルがレイアウトされる。また、論理LSIには、クロック信号を分配するためのクロックツリーが構築される。クロックツリーは、クロック分配のための論理構造のひとつとされる。
【0003】
特許文献1には、データ接続経路の数に基づいて、半導体集積回路上のフリップフロップが配置された領域の分割を繰り返し、分割された領域のフリップフロップをツリー状に接続する技術が記載されている。
【0004】
特許文献2には、クロックスキューが閾値以下に収束する回路規模となるように、クロックツリーが有するフリップフロップを複数のグループに分割し、グループの前段に遅延バッファを挿入する技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−123336号公報
【特許文献2】特開2006−107206号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
論理LSIなどの半導体装置においては、クロック信号を分配するためのクロックツリーが構築される。クロックツリーは、クロック分配のための論理構造のひとつであり、半導体装置におけるクロック論理始点からフリップフロップ回路へのクロック到達時間のばらつき(クロックスキュー)をできるだけ小さくするために、複数の遅延素子が介在されることでツリー状に構築される。クロックツリーにおいて、互いに異なるクロック系統間でクロックスキューの調整(レイテンシ合わせ)が必要になる場合がある。このクロックスキューの調整においては、部品レベルで設計された回路の遅延計算が行われる。
【0007】
部品レベルで設計された回路の遅延計算においては、部品毎に事前に遅延特性を測定しておいたもの(ライブラリ)を使用し、各セル毎の遅延変動要素(スルーレートや負荷容量等)によりセル毎に遅延計算した後、ネットリストに従い加算される。このような遅延計算について本願発明者が検討したところ、以下のような課題が見いだされた。
【0008】
セル単位で部品特性を抽出する方法は、回路シミュレーションによる非線形性の遅延変動特性に対して、線形や区分線形(テーブル)でライブラリに表現するため、一定の精度誤差が生じる。この誤差は各セル種や変動要素の度合いにより異なるが、ほとんどのケースで大きな誤差にならない。しかし、インバータや2入力ナンドゲート等のMOSトランジスタ1段のセルは、入力側の遅延誤差が出力側に直接影響するため、遅延計算における遅延誤差が大きくなりやすい。特に複数のインバータが互いに直列接続されたインバータチェーンでは、個々のインバータでの遅延誤差が伝播されることによって誤差が大きくなる。
【0009】
これに対して、バッファなどのMOSトランジスタ2段のセルは、インバータや2入力ナンドゲート等のMOSトランジスタ1段のセルに比べて遅延誤差は少ない。しかし、バッファなどのMOSトランジスタ2段のセルは、クロック信号のハイレベル期間とローレベル期間のとの比(デューティ)保持の観点で、MOSトランジスタ1段のセルに比べて劣る。すなわち、インバータなどのMOSトランジスタ1段のセルでは、入力論理に対して出力論理が反転するため、複数のインバータが互いに直列接続されて成るインバータチェーンでは、クロック信号のデューティが変化し難い。これに対して、バッファなどのMOSトランジスタ2段のセルは、入力論理に対して出力論理が反転しないため、複数のバッファが互いに直列接続されて成るバッファチェーンでは、波形立ち上がり及び波形立ち下がりの遅延時間差によってクロック信号のデューティが変化しやすい。
【0010】
本発明の目的は、クロックツリーにおけるクロックスキューの調整において、精度の確保とデューティ保持とを両立させるための技術を提供することにある。
【0011】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0013】
すなわち、レイアウト装置は、半導体装置における各部にクロック信号を分配するためのクロックツリーを構築し、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整することができる。このようなレイアウト装置において、MOSトランジスタ1段で形成された第1セルと、MOSトランジスタ複数段で形成された第2セルとがライブラリ化されたテーブルが設けられる。また、上記レイアウト装置には、上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンを上記クロックツリーに挿入することで、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能な演算処理部が設けられる。
【発明の効果】
【0014】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0015】
すなわち、クロックツリーにおけるクロックスキューの調整において、精度の確保とデューティ保持とを両立させることができる。
【図面の簡単な説明】
【0016】
【図1】本発明にかかるレイアウト装置の構成例ブロック図である。
【図2】クロックツリー生成の説明図である。
【図3】クロックツリーにおける主要部の説明図である。
【図4】クロックツリーにおけるクロックスキュー調整の説明図である。
【図5】インバータチェーンによるクロックスキュー調整の説明図である。
【図6】バッファとインバータとのコンビネーションチェーンによるクロックスキュー調整の説明図である。
【図7】インバータと配線遅延とのコンビネーションチェーンによるクロックスキュー調整の説明図である。
【図8】バッファとインバータと配線遅延とのコンビネーションチェーンによるクロックスキュー調整の説明図である。
【図9】複数のクロック間遅延調整用インバータの一般的なレイアウト処理の説明図である。
【図10】クロック間遅延調整用インバータセルの配置間隔決定の説明図である。
【図11】遅延テーブルの構成例説明図である。
【図12】クロックツリー構築処理のフローチャートである。
【図13】クロックツリー構築処理の別のフローチャートである。
【図14】クロックツリー構築における始点間レイテンシ合わせ処理のフローチャートである。
【図15】クロックツリー構築における始点間レイテンシ合わせ処理の別のフローチャートである。
【図16】クロックツリー構築における始点間レイテンシ合わせ処理の別のフローチャートである。
【図17】インバータの回路構成と入出力波形の説明図である。
【図18】バッファの回路構成と入出力波形の説明図である。
【発明を実施するための形態】
【0017】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0018】
〔1〕本発明の代表的な実施の形態に係るレイアウト装置(10)は、半導体装置における各部にクロック信号を分配するためのクロックツリーを構築し、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整することができる。このようなレイアウト装置において、MOSトランジスタ1段で形成された第1セルと、MOSトランジスタ複数段で形成された第2セルとがライブラリ化されたテーブル(111)が設けられる。また、レイアウト装置には、上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンを上記クロックツリーに挿入することで、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能な演算処理部(12)が設けられる。
【0019】
上記の構成によれば、上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンによってクロックスキューの調整を行うようにしているので、個々の第1セルでの遅延誤差が伝播されるのを抑制することができ、遅延計算における遅延誤差を低減することができる。これにより、クロックツリーにおけるクロックスキューの調整における精度を向上させることがでできる。
【0020】
また、上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンが用いられることにより、コンビネーションチェーン中に第1セルが介在され、そこで論理が反転されるため、デューティ保持の観点で有利とされる。
【0021】
〔2〕上記〔1〕において、上記演算処理部は、上記第1セルの段数を「1」とし、上記第2セルの段数を「n」とし、上記第1セルの1段の遅延誤差を「X」とし、上記第2セルn段の遅延誤差を「Yn」とし、上記コンビネーションチェーン1個当たりの遅延誤差を「Z」とするとき、(X+Yn)/(n+1)≦Zが成立するように上記コンビネーションチェーン1個当たりの構成を決定するように構成することができる。そして、上記クロックツリー間のクロックスキューの調整に必要とされる数だけ、上記コンビネーションチェーンを互いに直列接続することで上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整するように構成することができる。精度面だけなら、第2セルの段数が多い方が良いが、レイテンシや使い易さを考慮すると、第2セルの段数は小さい方が良い。トレードオフを考えると、上記式が成立するように上記コンビネーションチェーン1個当たりの構成を決定するのが望ましい。
【0022】
〔3〕上記〔2〕において、上記演算処理部は、上記ライブラリ化された上記第1セルの配線容量の下限値に基づいて、レイアウト対象とされる上記第1セルの入力側ネットの配線長を決定するように構成することができる。
【0023】
〔4〕上記〔3〕において、上記演算処理部は、レイアウト対象とされる上記第1セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記第1セルの配線容量の下限値よりも大きくなるように、上記第1セルのレイアウト位置を決定することができる。コンビネーションチェーンにおける第1セルの入力側ネットについて配線容量を指定することにより、対応する配線容量が形成されるため、遅延計算における遅延誤差の低減を図ることができる。このとき、チェーンを形成する全てセルに配線遅延を付加するものではないので、配線リソースを多く使用するリスクを回避することができる。
【0024】
〔5〕上記〔4〕において、上記第1セルをインバータとし、上記第2セルをバッファとすることができる。
【0025】
〔6〕本発明の代表的な実施の形態に係る別のレイアウト装置(10)は、MOSトランジスタ1段で形成された調整用セルがライブラリ化されたテーブル(111)と、レイアウト対象とされる上記調整用セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記調整用セルの配線容量の下限値よりも大きくなるように、上記調整用セルのレイアウト位置を決定する演算処理部(12)とを含んで構成される。
【0026】
上記の構成によれば、レイアウト対象とされる上記調整用セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記調整用セルの配線容量の下限値よりも大きくなるように、上記調整用セルのレイアウト位置が決定されることによって、上記ライブラリ化された上記調整用セルの配線容量に対応する配線容量が形成されるため、遅延計算における遅延誤差の低減を図ることができる。
【0027】
〔7〕上記〔6〕において、上記調整用セルをインバータとすることができる。
【0028】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0029】
《実施の形態1》
図1には、本発明にかかるレイアウト装置の構成例が示される。
【0030】
図1に示されるレイアウト装置10は、表示装置11、演算処理装置12、記憶装置13、及び入力装置14を含むコンピュータシステムを用いて構成される。記憶装置13は、例えば磁気ディスクを記録媒体とするハードディスク装置である。この記憶装置13には、各種プログラムや、半導体装置のレイアウトに用いられる各種情報が格納される。半導体装置のレイアウトに用いられる各種情報には、ネットリストやライブラリが含まれる。このライブラリには、インバータやバッファなどの各種セルの遅延テーブルなども含まれる。演算処理装置12は、プログラムに従って各種演算処理を実行可能なマイクロコンピュータ、及びその周辺回路を含み、半導体装置のレイアウト処理を行う。このレイアウト処理には、半導体装置における各部にクロック信号を分配するためのクロックツリーの構築や、このクロックツリー間のクロックスキューの調整が含まれる。上記レイアウト装置12においては、必要に応じて、記憶装置13内のネットリストやライブラリが参照される。入力装置14は、キーボードやマウスを含み、半導体装置のレイアウト処理に関する各種情報入力を行うのに用いられる。表示装置11は、液晶ディスプレイなどとされ、半導体装置のレイアウト処理に関する各種情報表示を行うことができる。
【0031】
論理LSIなどの半導体装置においては、クロック信号を分配するためのクロックツリーが構築される。クロックツリーは、クロック分配のための論理構造のひとつであり、例えば図2の(A)のように、半導体装置200におけるクロック論理始点203からフリップフロップ回路201へのクロック到達時間のばらつき(クロックスキュー)をできるだけ小さくするために、図2の(B)のように、複数の遅延素子202が介在されることでツリー状に構築される。
【0032】
図12には、クロックツリー構築処理の流れが示される。
【0033】
図12に示されるクロックツリー構築処理は、演算処理装置12において、クロックツリー構築処理のための所定のプログラムが実行されることで実現される。
【0034】
大規模な回路を効率よく形成するため上記ステップ1201のセル配置処理では、インバータ、ナンドゲート、ノアゲート、フリップフロップ回路などのセルを用いて、レイアウト対象とされる半導体装置のセル配置処理が行われる(1201)。そして、タイミングの最適化処理が行われ(1202)、その後、クロックツリー合成処理(CTS;Clock Tree Synthesis)が実行される(1203)。このクロックツリー合成処理が終了すると、再びタイミングの最適化処理が行われ(1208)、その後に配線処理が行われる(1209)。
【0035】
上記ステップ1203のクロック構成処理では、先ず、入力装置14を介して、クロックツリーの始点及び終点が指示されると(1204)、各始点毎にクロックツリーが構築される(1205)。そして構築されたクロックツリー毎にレイテンシ合わせ処理が行われ(1206)、それが終了すると、始点間のレイテンシ合わせ処理が行われる(1207)。
【0036】
尚、図13に示されるように、上記ステップ1206のクロックツリー毎のレイテンシ合わせ処理と、上記ステップ1207の始点間レイテンシ合わせ処理との間で、レイテンシ合わせ処理が必要か否かの判別処理(1301)を行うようにしても良い。この判別処理で、レイテンシ合わせ処理が必要と判断された場合にのみ、上記ステップ1207の始点間レイテンシ合わせ処理を行うようにする。このようにすれば、レイテンシ合わせ処理が実際には不要である場合には、レイテンシ合わせ処理を省略することができるので、処理効率の向上を図ることができる。
【0037】
次に、上記ステップ1207の始点間レイテンシ合わせ処理について詳述する。
【0038】
クロックツリーにおいて、互いに異なるクロック系統間でクロックスキューの調整(レイテンシ合わせ)が必要になる場合がある。例えば図3に示されるように、クロックツリーにおいて、互いに異なるクロック系統302,304が設けられ、クロック系統302には、分周回路301で分周されたクロック信号が供給され、クロック系統304には、バッファ303を介してクロック信号が供給される場合を考える。クロック系統302におけるフリップフロップ回路の数が、クロック系統304におけるフリップフロップ回路の数よりも少ない場合、クロック系統302とクロック系統304との間でクロックレイテンシの差が大きくなる。このため、クロック系統302に属するフリップフロップ回路と、クロック系統304に属するフリップフロップ回路との間でデータ転送が行われる場合、クロックスキューの調整が必要になる。このクロックスキューの調整のため、図4に示されるように、分周器301とクロック系統302との間にバッファチェーン401を設けたり、図5に示されるように、分周器301とクロック系統302との間にインバータチェーン501を設けることが考えられる。バッファチェーン401は、複数のバッファが互いに直列接続されて成る。インバータチェーンは、複数のインバータが互いに直列接続されて成る。
【0039】
インバータは、例えば図17の(A)に示されるように、pチャネル型MOSトランジスタ1701とnチャネル型MOSトランジスタ1702とが直列接続されて成る。pチャネル型MOSトランジスタ1701のゲート電極と、nチャネル型MOSトランジスタ1702のゲート電極とが入力端子(IN)に共通接続される。pチャネル型MOSトランジスタ1701とnチャネル型MOSトランジスタ1702との直列接続ノードから出力端子(OUT)が引き出される。インバータの出力側には、配線容量1703が存在する。
【0040】
バッファは、例えば図18の(A)に示されるように、pチャネル型MOSトランジスタ1801とnチャネル型MOSトランジスタ1802とが直列接続されて成る第1インバータと、pチャネル型MOSトランジスタ1803とnチャネル型MOSトランジスタ1804とが直列接続されて成る第2インバータとが直列接続されて成る。第2インバータ(1803,1804)の出力側には配線容量1805が存在する。第1インバータ(1801,1802)の出力側にも配線容量が存在するが、その値は、配線容量1805に比べて極めて小さい。これは、セルとしてのバッファにおいては、第1インバータ(1801,1802)と第2インバータ(1803,1804)との間の配線が極めて短いためである。
【0041】
インバータの出力側には、配線容量1703が形成されるため、入力端子を介して入力されたクロック信号は、図7の(B)に示されるように、遅延されて出力される。つまり、配線容量170の存在により、出力波形が鈍ってしまう。これに対して、バッファの場合、第1インバータ(1801,1802)の出力側の配線容量が極小のため、第1インバータ(1801,1802)の入力波形が整形されてから第2インバータ(1803,1804)に入力されるため、第2インバータ(1803,1804)の出力波形は、図17の(A)に示されるインバータ(1701,1702)の出力波形に比べて鈍りが少ない。
【0042】
既述のように、部品レベルで設計された回路の遅延計算は、部品毎に事前に遅延特性を測定しておいたもの(記憶装置13内のライブラリ)を使用し、各セル毎の遅延変動要素(スルーレートや負荷容量等)によりセル段毎に遅延計算した後、ネットリストに従い加算される。セル単位で部品特性を抽出する方法は、非線形性の遅延変動特性に対して、大規模LSIを高速一括で遅延計算するため、線形や区分線形(テーブル)でライブラリに表現することから、一定の誤差を生じる。インバータのようなMOSトランジスタ1段のセルは、バッファのようなMOSトランジスタ2段のセルに比べて、遅延誤差が次段に影響するため、誤差が大きくなりやすい。特に複数のインバータが直列接続されたインバータチェーン701では、個々のインバータでの遅延誤差が順次に伝播されるため、誤差が大きくなる。
【0043】
そこで、上記ステップ1207の始点間レイテンシ合わせ処理においては、図6に示されるように、バッファとインバータとのコンビネーションチェーン601によってクロックスキューの調整を行うようにする。このコンビネーションチェーン601では、インバータの前後にバッファが設けられている。
【0044】
図14には、バッファとインバータとのコンビネーションチェーン601を用いた始点間レイテンシ合わせ処理の流れが示される。
【0045】
図14に示される始点間レイテンシ合わせ処理1207においては、入力装置14を介して、ターゲットとなる遅延値、スキューの設定が行われると(1401)、所定のコンビネーションルールに従ってバッファ及びインバータが追加される(1402)。そして、上記ステップ1402の処理で追加されたバッファ及びインバータが、実際のレイアウトパターン上に配置され(1403)、追加されたバッファ及びインバータの遅延値の計算が行われる(1404)。そして、上記ステップ1404で算出された遅延値と、上記ステップ1401で設定されたターゲット遅延値とが等しいか否かの判別が行われる(1405)。この判別で、上記ステップ1404で算出された遅延値と、上記ステップ1401で設定されたターゲット遅延値とが等しくない(NO)と判断された場合には、再び、上記ステップ1402の処理に戻ってバッファ及びインバータが追加された後に、上記ステップ1403,1404の処理を経て、再び上記ステップ1405の判別処理が行われる。上記ステップ1405の判別処理において、上記ステップ1404で算出された遅延値と、上記ステップ1401で設定されたターゲット遅延値とが等しい(YES)と判断された場合には、始点間レイテンシ合わせ処理1207が終了される。
【0046】
ここで、上記ステップ1402におけるバッファ及びインバータの追加について詳述する。
【0047】
プロセスにより多少異なるが、たとえば65nm以降のプロセスの場合、インバータ1段の誤差が8%程度、バッファの1段の誤差が2%程度、バッファの遅延値がインバータの2倍程度とおくと、クロックツリーで要求される精度3%以内に収めるためには、バッファ3段、インバータ1段の直列接続構成になる。精度面だけなら、バッファ段数が多い方が良いが、レイテンシや使い易さ(段数が小さい方が使い易い)とのトレードオフを考えると、バッファが3段、インバータが1段の構成になる。このバッファとインバータとの組み合わせは、始点間レイテンシ合わせ処理のパラメータとして演算処理装置12に入力される。このパラメータは予め設定しておいても良いし、入力装置14を介して入力しても良い。
【0048】
一般化すると、インバータの段数「1」とし、バッファの段数を「n」とし、インバータ1段の誤差を「X」とし、バッファn段の誤差を「Yn」(ただし、X>Y)だとし、目的とする誤差(1段分)を「Z」とすると、次式の関係が成立するように、コンビネーションチェーン1個当たりの構成が決定される。
【0049】
【数1】

【0050】
このようにして、上記ステップ1402におけるバッファ及びインバータの追加が行われる。そして、上記ステップ1401で設定されたターゲット遅延値とが等しい(YES)と判断されるまで、上記コンビネーションチェーンが追加されることになる。つまり、目標となる遅延をSnsとすると、上記の組み合わせ(インバータ1段、バッファn段)で得られる遅延がPnsのとき、Pns・m=Snsの関係が成立する場合の「m」の値に等しくなる数だけ、上記コンビネーションチェーンが追加形成される。
【0051】
尚、遅延が僅かに足りない場合において上記コンビネーションチェーンを更に追加すると、遅延量が多すぎてしまうことが考えられる。その場合には、バッファあるいはインバータを単体で追加すると良い。
【0052】
また、各バッファ、各インバータの駆動能力は異なることが一般的なので、実際にはバッファやインバータの駆動能力的に差異が出てくる。駆動能力別の誤差がバッファ、インバータそれぞれ、X1,X2…,Xn、Y1,Y2…,Ynとなるため(誤差、駆動能力共に1<2,…,<nの関係)、所望の遅延になるように段数を決定する。この場合、駆動能力の選定は、次の(1)〜(3)の考え方に基づき決定すると良い。
【0053】
(1)遅延誤差が最小になるような組み合わせとするため、最大の駆動能力のバッファを使用する。
【0054】
(2)電力が最小になるような組み合わせとするため、最小の駆動能力のバッファを使用する。
【0055】
(3)上記(1)と(2)とを組み合わせる。すなわち、一定誤差内での電力最小の組み合わせ、もしくは一定電力値内で誤差最小の組み合わせを使用する。
【0056】
このように本例によれば、図6に示されるように、バッファとインバータとのコンビネーションチェーン601によってクロックスキューの調整を行うようにしており、インバータを挟むようにバッファが介在されているので、個々のインバータでの遅延誤差が伝播されるのを抑制することができ、インバータチェーンを用いる場合に比べて、遅延計算における遅延誤差を低減することができる。これにより、クロックツリーにおけるクロックスキューの調整における精度を向上させることがでできる。
【0057】
また、複数のバッファが互いに直列接続されたバッファチェーンでは、立ち上がり及び立ち下がりの遅延時間の差によってクロック信号のデューティが変化しやすいが、本例では、バッファとインバータとのコンビネーションチェーン601が用いられることにより、チェーン中にインバータが介在され、そこで論理が反転されるため、論理反転を生じないバッファチェーンを用いる場合に比べて、デューティ保持の観点で優れている。
【0058】
《実施の形態2》
上記ステップ1207の始点間レイテンシ合わせ処理において、図7に示されるように、インバータと配線遅延とのコンビネーションチェーン701によってクロックスキューの調整を行うことができる。インバータと配線遅延とのコンビネーションチェーン701によってクロックスキューの調整を行う場合、パラメータとして、最小容量値(容量の下限値)が、パラメータとして演算処理装置12に入力される。このパラメータは、予め設定しておいても良いし、入力装置14を介して入力しても良い。
【0059】
図15には、インバータと配線遅延とのコンビネーションチェーン701を用いた始点間レイテンシ合わせ処理の流れが示される。
【0060】
図15に示される始点間レイテンシ合わせ処理1207においては、入力装置14を介して、ターゲットとなる遅延値、スキューの設定が行われると(1501)、インバータが追加される(1502)。そして、上記ステップ1502の処理で追加されたインバータが、実際のレイアウトパターン上に配置され(1503)、追加されたインバータが指定した配線容量値以上になるようにインバータの配置位置が決定される(1504)。そして、上記ステップ1504での配置位置決定後のコンビネーションチェーン701の遅延値と、上記ステップ1501で設定されたターゲット遅延値とが等しいか否かの判別が行われる(1505)。この判別で、上記ステップ1504での配置位置決定後のコンビネーションチェーン701の遅延値と、上記ステップ1501で設定されたターゲット遅延値とが等しくない(NO)と判断された場合には、再び、上記ステップ1502の処理に戻ってインバータが追加された後に、上記ステップ1503,1504の処理を経て、再び上記ステップ1505の判別処理が行われる。上記ステップ1505の判別処理において、上記ステップ1504での配置位置決定後のコンビネーションチェーン701の遅延値と、上記ステップ1501で設定されたターゲット遅延値とが等しい(YES)と判断された場合には、始点間レイテンシ合わせ処理1207が終了される。
【0061】
ここで、上記ステップ1504の配置位置決定について詳述する。
【0062】
図11には、記憶装置13内のライブラリ中のセルの遅延テーブルの構成例が示される。図11に示される遅延テーブル111においては、variable_1とindex_1とが関連付けられ、variable_2とindex_2とが関連付けられている。index_1,index_2共にテーブルサイズが6になっている。index_2の実際の値の定義数が多ければそれだけテーブルのサイズが大きくなり、テーブル参照に時間がかかる。図11の遅延テーブル111では、index_2の実際の値は、容量値とされ、「0.001,0.00123399,0.00189322,0.00375043,0.00898268,0.0137473」と定義されている。
【0063】
例えば図9の(A)に示されるようなインバータチェーンは、バッファ901の後段に複数のクロック間遅延調整用インバータが互いに直列接続されて成る。複数のクロック間遅延調整用インバータの一般的なレイアウト処理では、例えば図9の(B)に示されるように、バッファ901の出力側の直近に複数のクロック間遅延調整用インバータが配置される。このため、各クロック間遅延調整用インバータ間の配線も短くなり、各クロック間遅延調整用インバータの出力側の配線容量値は小さくなる。このようなレイアウトにより、各クロック間遅延調整用インバータの出力側の配線容量値が、図11の遅延テーブル111で定義されている容量値(index_2の実際の値)の範囲外となると、遅延誤差が大きくなってしまう。
【0064】
そこで上記ステップ1504の配置位置決定においては、図11の遅延テーブル111で定義されている容量値(index_2の実際の値)の下限値をパラメータとして、クロック間遅延調整用インバータセル間の配置間隔が決定される。例えば図11の遅延テーブル111で定義されている容量値(index_2の実際の値)の下限値は、「0.001」であるため、演算処理装置12では、この容量値(index_2の実際の値)の下限値「0.001」をパラメータとしてセル間の配置間隔が決定される。つまり、図10の(A)に示されるように、クロック間遅延調整用インバータセル列における配線のうち、最も短い配線(最短距離配線)902の長さから算出される容量(配線容量)の値が、上記パラメータとされる容量値(index_2の実際の値)の下限値「0.001」以上になるように、クロック間遅延調整用インバータセルの配置間隔が決定される。
【0065】
尚、上記パラメータとされる容量値(index_2の実際の値)の下限値が「0.002」の場合には、図10の(B)に示されるように、クロック間遅延調整用インバータセル列における配線のうち、最も短い配線903の長さから算出される容量値が、上記パラメータとされる容量値(index_2の実際の値)の下限値「0.002」以上になるように、クロック間遅延調整用インバータセルの配置間隔が決定される。このため、上記パラメータとされる容量値(index_2の実際の値)の下限値が「0.002」の場合のクロック間遅延調整用インバータセルの配置間隔は、上記パラメータとされる容量値(index_2の実際の値)の下限値が「0.001」の場合のクロック間遅延調整用インバータセルの配置間隔に比べて大きくなる。
【0066】
このように、クロック間遅延調整用インバータセル列における配線のうち、最も短い配線902の長さから算出される容量値が、上記パラメータとされる容量値(index_2の実際の値)の下限値以上になるように、クロック間遅延調整用インバータセルの配置間隔が決定されることにより、各クロック間遅延調整用インバータの入力側や出力側には、図11の遅延テーブル111での定義情報に対応する配線容量が形成されるため、遅延誤差の低減を図ることができる。
【0067】
《実施の形態3》
実施の形態2のように、インバータと配線遅延とのコンビネーションチェーンや、バッファと配線遅延とのコンビネーションチェーンの場合には、チェーンを形成する全てのインバータ又はバッファに配線遅延を付加する必要があるため、配線リソースを多く使用するリスクがある。そこで、図8に示されるように、実施の形態1のようなバッファとインバータとのコンビネーションチェーン801を構築し、このコンビネーションチェーンにおけるインバータの入力側ネット802について、実施の形態2のように配線容量を指定すると良い。
【0068】
図16には、バッファとインバータと配線遅延とのコンビネーションチェーン701を用いた始点間レイテンシ合わせ処理の流れが示される。この場合、パラメータとして、挿入するバッファ・インバータの組み合わせ、及び最小容量値が演算処理装置12に入力される。
【0069】
図16に示される始点間レイテンシ合わせ処理1207においては、入力装置14を介して、ターゲットとなる遅延値、スキューの設定が行われると(1601)、所定のコンビネーションルールに従ってバッファ及びインバータが追加される(1602)。そして、上記ステップ1602の処理で追加されたバッファ及びインバータが、実際のレイアウトパターン上に配置され(1603)、追加されたインバータの入力側ネットの配線容量が、指定された配線容量値以上になるようにセルの配置位置が決定される(1604)。この配置位置が決定は、実施の形態2の場合と同様に行うことができる。すなわち、追加されたインバータの入力側ネットの配線容量が、パラメータとされる容量値(index_2の実際の値)の下限値以上になるように、セルの配置間隔が決定される。そして、上記ステップ1603で追加されたバッファ及びインバータの遅延値が算出され(1605)、算出された遅延値と、上記ステップ1401で設定されたターゲット遅延値とが等しいか否かの判別が行われる(1606)。この判別で、上記ステップ1605で算出された遅延値と、上記ステップ1601で設定されたターゲット遅延値とが等しくない(NO)と判断された場合には、再び、上記ステップ1602の処理に戻ってバッファ及びインバータが追加された後に、上記ステップ1603,1604,1605の処理を経て、再び上記ステップ1606の判別処理が行われる。上記ステップ1606の判別処理において、上記ステップ1605で算出された遅延値と、上記ステップ1601で設定されたターゲット遅延値とが等しい(YES)と判断された場合には、始点間レイテンシ合わせ処理1207が終了される。
【0070】
このように本例によれば、実施の形態1のようにバッファとインバータとのコンビネーションチェーンが構築されるので、個々のインバータでの遅延誤差が伝播されるのを抑制することができ、インバータチェーンを用いる場合に比べて、遅延計算における遅延誤差を低減することができる。また、コンビネーションチェーンにおけるインバータの入力側ネット802について、実施の形態2のように配線容量を指定することにより、図11の遅延テーブル111で定義情報に対応する配線容量が形成されるため、遅延計算における遅延誤差の低減を図ることができる。さらに、コンビネーションチェーンにおけるインバータの入力側ネット802について、実施の形態2のように配線容量を指定するようにしており、チェーンを形成する全てのインバータ又はバッファに配線遅延を付加するものではないので、配線リソースを多く使用するリスクを回避することができる。
【0071】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0072】
例えば、インバータは、MOSトランジスタ1段で形成されたセルの一例であり、バッファは、MOSトランジスタ複数段で形成されたセルの一例である。MOSトランジスタ1段で形成されたセルとして、上記インバータの他に2入力ナンドゲートを挙げることができる。MOSトランジスタ複数段で形成されたセルとして、上記バッファの他にマルチプレクサを挙げることができる。
【符号の説明】
【0073】
10 レイアウト装置
11 表示装置
12 演算処理装置
13 記憶装置
14 入力装置
111 遅延テーブル
601,701,801 コンビネーションチェーン

【特許請求の範囲】
【請求項1】
半導体装置における各部にクロック信号を分配するためのクロックツリーを構築するとともに、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能なレイアウト装置であって、
MOSトランジスタ1段で形成された第1セルと、MOSトランジスタ複数段で形成された第2セルとがライブラリ化されたテーブルと、
上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンを上記クロックツリーに挿入することで、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能な演算処理部と、を含むことを特徴とするレイアウト装置。
【請求項2】
上記演算処理部は、上記第1セルの段数を「1」とし、上記第2セルの段数を「n」とし、上記第1セルの1段の遅延誤差を「X」とし、上記第2セルn段の遅延誤差を「Yn」とし、上記コンビネーションチェーン1個当たりの遅延誤差を「Z」とするとき、(X+Yn)/(n+1)≦Zが成立するように上記コンビネーションチェーン1個当たりの構成を決定し、上記クロックツリー間のクロックスキューの調整に必要とされる数だけ、上記コンビネーションチェーンを互いに直列接続することで上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整する請求項1記載のレイアウト装置。
【請求項3】
上記演算処理部は、上記ライブラリ化された上記第1セルの配線容量の下限値に基づいて、レイアウト対象とされる上記第1セルの入力側ネットの配線長を決定する請求項2記載のレイアウト装置。
【請求項4】
上記演算処理部は、レイアウト対象とされる上記第1セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記第1セルの配線容量の下限値よりも大きくなるように、上記第1セルのレイアウト位置を決定する請求項3記載のレイアウト装置。
【請求項5】
上記第1セルはインバータとされ、上記第2セルはバッファとされる請求項4記載のレイアウト装置。
【請求項6】
半導体装置における各部にクロック信号を分配するためのクロックツリーを構築するとともに、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能なレイアウト装置であって、
MOSトランジスタ1段で形成された調整用セルがライブラリ化されたテーブルと、
レイアウト対象とされる上記調整用セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記調整用セルの配線容量の下限値よりも大きくなるように、上記調整用セルのレイアウト位置を決定する演算処理部と、を含むことを特徴とするレイアウト装置。
【請求項7】
上記調整用セルはインバータとされる請求項6記載のレイアウト装置。
【請求項8】
MOSトランジスタ1段で形成された第1セルと、MOSトランジスタ複数段で形成された第2セルとがライブラリ化されたテーブルと、演算処理を行う演算処理部とを用いて、半導体装置における各部にクロック信号を分配するためのクロックツリーを構築するとともに、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能なレイアウト方法であって、
上記第1セルと上記第2セルとの組み合わせによるコンビネーションチェーンを上記クロックツリーに挿入することで、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整する処理を上記演算処理部に実行させることを特徴とするレイアウト方法。
【請求項9】
上記演算処理部は、上記第1セルの段数を「1」とし、上記第2セルの段数を「n」とし、上記第1セルの1段の遅延誤差を「X」とし、上記第2セルn段の遅延誤差を「Yn」とし、上記コンビネーションチェーン1個当たりの遅延誤差を「Z」とするとき、(X+Yn)/(n+1)≦Zが成立するように上記コンビネーションチェーン1個当たりの構成を決定し、上記クロックツリー間のクロックスキューの調整に必要とされる数だけ、上記コンビネーションチェーンを互いに直列接続することで上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整する請求項8記載のレイアウト方法。
【請求項10】
上記演算処理部は、レイアウト対象とされる上記第1セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記第1セルの配線容量の下限値よりも大きくなるように、上記第1セルのレイアウト位置を決定する請求項9記載のレイアウト方法。
【請求項11】
MOSトランジスタ1段で形成された調整用セルがライブラリ化されたテーブルと、演算処理を行う演算処理部とを用いて、半導体装置における各部にクロック信号を分配するためのクロックツリーを構築するとともに、上記クロックツリーにおける異なるクロック系統間のクロックスキューを調整可能なレイアウト方法であって、
レイアウト対象とされる上記調整用セルの最短距離配線長から算出される容量が、上記ライブラリ化された上記調整用セルの配線容量の下限値よりも大きくなるように、上記調整用セルのレイアウト位置を決定する処理を上記演算処理部に実行させることを特徴とするレイアウト方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2013−97705(P2013−97705A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−242082(P2011−242082)
【出願日】平成23年11月4日(2011.11.4)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】