説明

スキュー調整方法及び設計支援装置

【課題】ノード間を短絡したことによる貫通電流の増大を抑制することのできるスキュー調整方法を提供する。
【解決手段】パス間のスキューがスキュー制約を満たさない場合に、ドライバセルのドライバ抵抗に対する、そのドライバセルの出力ノード間の短絡抵抗の比率を示す第1判定係数αと上限値α1とを比較するステップS24を有する。また、クロックソースから一方の出力ノードまでの第1遅延と、クロックソースから他方の出力ノードまでの第2遅延との差分に対する、ドライバセルの出力ノード間の遅延の比を示す第2判定係数βと下限値β1とを比較するステップS25を有する。そして、第1判定係数αが上限値α1以下であり、第2判定係数βが下限値β1以上となる出力ノード間を短絡するステップS27を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スキュー調整方法及び設計支援装置に関するものである。
【背景技術】
【0002】
半導体集積回路装置(LSI)の開発工程においては、論理回路の動作を確認し保証するため、タイミング検証が実施されている。タイミング検証は、設定されたコーナー条件において算出したパス(信号伝達経路)の遅延時間に基づいて、信号が供給される素子の動作を確認するものである。例えば1つの回路から出力されるクロック信号に基づいて動作する同期回路においては、クロック信号を分岐して同期回路に含まれる複数のフリップフロップ回路に供給される。このクロック信号を供給する経路はクロックツリーと呼ばれる。そして、タイミング検証では、クロックツリーにてクロック信号が供給される回路、例えばフリップフロップ回路において、設定されたコーナー条件におけるセットアップ/ホールド時間などのタイミングマージンをチェックする。
【0003】
同期回路では、各クロックパスの遅延時間により、クロック信号が供給される複数の回路間、例えば複数のフリップフロップ回路間においてクロック信号に時間差(クロックスキュー)が生じる場合がある。クロックスキューが生じた場合、上記複数のフリップフロップ回路において、タイミングマージンにずれを生じさせる。このため、クロックスキューが小さくなるように、クロックツリーにおける遅延時間の調整(スキュー調整)が行われる。
【0004】
例えば図15に示すように、クロック信号CLKを複数のクロックバッファ80により2つのフリップフロップ回路81,82に伝達するクロックツリーにおいて、所定のノードC,D間を配線短絡することにより、クロックスキューを調整する方法が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平08−115345号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、上記配線短絡手法では、例えばクロックスキュー量を判定基準に用い、クロックスキュー量が大きい箇所を短絡位置に決定していた。しかし、短絡するノードC,D間の距離が長くなると、そのノードC,D間を短絡してもクロックスキューを十分に低減できず、さらに上記短絡によりノードC,D間に発生する貫通電流が増大するという問題がある。
【課題を解決するための手段】
【0007】
本発明の一観点によれば、半導体装置に含まれるパス間のスキューがスキュー制約を満たさない場合に、各パスに含まれるドライバセルの出力ノード間を短絡するステップを有し、前記出力ノード間を短絡するステップは、前記ドライバセルの抵抗に対する前記出力ノード間の抵抗の比率を示す第1判定係数に基づいて、前記出力ノード間を短絡したときの貫通電流及びスキューが保証範囲内になるように、前記出力ノード間を短絡する位置を決定する。
【発明の効果】
【0008】
本発明の一観点によれば、ノード間を短絡したことによる貫通電流の増大を抑制することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【図1】設計支援装置の概略構成図。
【図2】半導体装置の設計工程を示すフローチャート。
【図3】第1判定係数を説明するための回路図。
【図4】第1判定係数と貫通電流及びスキュー低減量との関係を示す特性図。
【図5】第2判定係数を説明するための回路図。
【図6】エルモア遅延モデルの説明図。
【図7】第2判定係数と遅延誤差との関係を示す特性図。
【図8】第1判定係数の上限値及び第2判定係数の下限値の設定方法を示すフローチャート。
【図9】係数抽出モデルを示す回路図。
【図10】クロックツリー合成処理及びスキュー調整処理を示すフローチャート。
【図11】(a)、(b)は、クロックツリー合成処理及びスキュー調整処理を示す回路図。
【図12】(a)、(b)は、クロックツリー合成処理及びスキュー調整処理を示す回路図。
【図13】(a)、(b)は、スキュー調整処理を示す説明図。
【図14】(a)、(b)は、ノード間短絡によるスキューばらつき低減効果を示す説明図。本図のグラフは、モンテカルロシミュレーションによる評価結果を示している。
【図15】従来のスキュー調整方法を示す回路図。
【発明を実施するための形態】
【0010】
(第1実施形態)
以下、第1実施形態を図1〜図13に従って説明する。
図1に示すように、設計支援装置(コンピュータ)10は、半導体装置の設計を支援するための装置であり、例えば一般的な設計支援装置(Computer Aided Design:CAD)である。この設計支援装置10は、中央処理装置(Central Processing Unit:CPU)11と、メモリ12と、記憶装置13と、表示装置14と、入力装置15と、ドライブ装置16とを有している。これら各装置11,13,14,15,16及びメモリ12は、バス17を介して相互に接続されている。
【0011】
CPU11は、メモリ12を利用してプログラムを実行し、半導体装置(半導体集積回路装置)のレイアウト設計等の必要な処理を実現する。プログラムは、CPU11を、半導体装置のレイアウトデータを生成する設計支援装置としての各種手段として機能させるためのものである。メモリ12には、各種処理を提供するために必要なプログラムとデータが格納される。このメモリ12としては、通常、キャッシュ・メモリ、システム・メモリ及びディスプレイ・メモリ等が含まれる。
【0012】
表示装置14は、パターン表示、パラメータ入力画面等の表示に用いられる。この表示装置14としては、例えばCRT,LCD,PDP等が用いられる。入力装置15は、ユーザからの要求や指示、パターン、パラメータの入力に用いられる。この入力装置15としては、例えばキーボード及びマウス装置等が用いられる。
【0013】
設計支援装置10は、レイアウトデータに基づき半導体装置に形成するパターン(図形)を表示装置14に表示させる。そして、設計支援装置10は、ユーザが操作する入力装置15からの信号に従って、表示装置14上のパターンの追加、削除を行うとともに、レイアウトデータに対してパターンデータの追加、削除を行う。
【0014】
記憶装置13は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等を含む。この記憶装置13には、半導体装置のレイアウトデータを生成するためのプログラムデータを含むファイルや、各種データを含むファイルが格納されている。CPU11は、入力装置15による指示に応答してプログラムやデータをメモリ12に転送し、それを実行する。
【0015】
CPU11が実行するプログラムデータは、記録媒体18にて提供される。ドライブ装置16は、記録媒体18を駆動し、その記憶内容にアクセスする。CPU11は、ドライブ装置16を介して記録媒体18からプログラムデータを読み出し、それを記憶装置13にインストールする。
【0016】
記録媒体18としては、磁気テープ(MT)、メモリカード、フレキシブルディスク、光ディスク(CD−ROM,DVD−ROMなど)、光磁気ディスク(MO,MDなど)等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体18に、上述のプログラムやデータを格納しておき、必要に応じて、メモリ12にロードして使用することもできる。
【0017】
なお、記録媒体18には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体やディスク装置が含まれる。さらに、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、一旦他の記録媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含まれる。
【0018】
次に、設計支援装置10(とくに、CPU11)が実行する処理の概要を図2に従って説明する。設計支援装置10は、図2に示すステップS1〜S4の処理を実行する。
ステップS1(論理合成処理)において、設計支援装置10は、半導体装置の論理をハードウェア記述言語(例えばRTL:Register Transfer Level)により記述したデータに基づいてネットリスト(論理データ)を生成する。このとき、設計支援装置10は、ネットリストの回路動作を保証し得るタイミング情報を規定したタイミング制約を生成する。なお、このタイミング制約にはスキュー制約が含まれる。
【0019】
次に、ステップS2(配置処理)において、設計支援装置10は、セルライブラリ等のライブラリデータとネットリストとに基づいて、半導体装置に含まれるセルを配置する。セルの配置を示すデータ(配置データ)は記憶装置13(図1参照)に記憶される。なお、配置データはメモリ12に格納されてもよい。
【0020】
次に、ステップS3(クロックツリー合成(CTS:Clock Tree Synthesis)処理及びスキュー調整処理)において、設計支援装置10は、ネットリスト等のデータに基づいて、クロックツリーを生成する。クロックツリーは、クロックバッファと配線とを含む。このとき、設計支援装置10は、クロックバッファを1段形成する毎にスキュー制約を満たすか否かを判定し、スキュー制約を満たさない箇所にスキュー調整処理を実行してクロックツリーを形成する。このスキュー調整処理では、スキュー制約を満たさない箇所(ノード間)の中で第1判定係数α及び第2判定係数βが保証範囲内に収まるノード間を短絡することにより、クロックスキュー(以下、単に「スキュー」ともいう。)が調整される。
【0021】
次に、ステップS4(タイミング解析及び最適化処理)において、設計支援装置10は、上記タイミング制約に基づいて、クロックツリーを含む同期回路におけるタイミング解析、例えば静的タイミング解析(STA:Static Timing Analysis)を行い、その解析結果に応じて最適化処理を実行する。
【0022】
STAによる解析結果には、フリップフロップ回路(FF回路)におけるセットアップタイム、ホールドタイム、セットアップスラック(Setup Slack)、ホールドスラック(Hold Slack)やスキュー等が含まれる。ここで、フリップフロップ回路において、データの確定時と、そのデータを取り込むためのクロック信号のエッジとの間がセットアップタイムであり、クロック信号のエッジとデータの終了時との間がホールドタイムである。また、スラックは、信号の到達時間に対する余裕を示す値であり、例えば、そのパスの終点に信号が到達する時間とタイミング制約を満たすために当該信号が当該終点に到達すべき最も遅い時間との差分である。
【0023】
そして、設計支援装置10は、解析結果が、スキュー制約、セットアップ制約やホールド制約等の上記タイミング制約を満たすか否かを判定する。具体的には、設計支援装置10は、スキューが規定値以下であるか否かを判定するとともに、セットアップスラック、ホールドスラックが規定値以上であるか否かを判定する。このとき、設計支援装置10は、判定結果に基づいて、対象パスがタイミング制約を満たさない場合には、当該パスに対してタイミング最適化処理を実行し、その処理後に再度タイミング解析を実行する。なお、タイミング最適化処理において、設計支援装置10は、例えばセル(クロックバッファやFF回路等)や配線の遅延時間に従って、タイミング制約を満たすように、セルのサイジングやバッファの挿入等を行ってパスを最適化する。一方、設計支援装置10は、タイミング制約を満たす場合には、ステップS4の処理を終了する。
【0024】
次に、上記ステップS3(クロックツリー合成処理及びスキュー調整処理)の詳細な処理を説明する。
はじめに、上記スキュー調整処理時に使用される第1判定係数α及び第2判定係数βについて図3〜図7に従って説明する。
【0025】
(第1判定係数αについて)
第1判定係数αは、図3に示すように、クロックバッファ(ドライバセル)21の出力ノードAとクロックバッファ(ドライバセル)22の出力ノードBとを短絡したときの、ドライバセル21,22のドライバ抵抗Ra,Rbに対する短絡配線23の短絡抵抗Rlの比率を表わした値である。具体的には、第1判定係数αは、以下の式で求められる値である。
【0026】
【数1】

ここで、ドライバ抵抗Raは、ドライバセル21がオンしたときのオン抵抗であり、ドライバ抵抗Rbは、ドライバセル22がオンしたときのオン抵抗である。
【0027】
次に、短絡位置を決定する際に上記第1判定係数αを使用する理由について説明する。
図3に示すように、ノードA,B間を短絡すると、それらノードA,B間に電流(貫通電流)Ipが流れる。この貫通電流Ipは、ノードA,B間の電圧降下量(IRドロップ)Vpの大きさに依存する。すなわち、短絡したノードA,B間の短絡抵抗RlによるIRドロップVpの大きさが貫通電流Ipの大きさに比例する。このため、ドライバ抵抗Ra,Rbに対して短絡抵抗Rlの比率が大きくなるほど、ノードA,B間のIRドロップVpが大きくなり、貫通電流Ipが大きくなる。換言すると、図4に示すように、第1判定係数αが大きくなるほど、貫通電流Ipが大きくなる。
【0028】
また、ノードA,B間を短絡したことによるスキューの低減効果は、ノードA,B間の距離が短いほど高い効果が得られる。具体的には、ノードA,B間の距離が長くなるほど、ノードA,B間を短絡する短絡配線23の短絡抵抗Rlが大きくなる。この短絡抵抗Rlが無限大に近づくと、ノードA,B間の短絡によるスキュー低減効果(スキュー低減量)が極めて低くなり、ノードA,B間を短絡していない場合とほとんど変わらなくなる。このため、図4に示すように、ドライバ抵抗Ra,Rbに対して短絡抵抗Rlの比率が大きくなるほど、つまり第1判定係数αが大きくなるほど、ノードA,B間の短絡によるスキュー低減量が低くなる。
【0029】
以上のように、第1判定係数αが大きくなるほど、貫通電流Ipが大きくなるとともに、スキュー低減量が低くなる。このため、テクノロジルール(例えば、許容貫通電流など)に応じて第1判定係数αの上限値α1を設定することにより、貫通電流Ipを所望の範囲(許容貫通電流以下)に制限することができ、所望のスキュー低減効果を得ることができるようになる。すなわち、第1判定係数αの上限値α1を適切に設定し、その上限値α1よりも第1判定係数αが低くなる位置でノード間を短絡することにより、その短絡によって生じる貫通電流Ipを低く抑えつつ、高いスキュー低減効果を得ることができる。そこで、本実施形態では、第1判定係数αを使用して短絡位置を決定するようにした。
【0030】
(第2判定係数β)
図5に示すように、第2判定係数βは、クロック信号CLKの供給源であるクロックソースからノードAまでの遅延Daと、クロックソースからノードBまでの遅延Dbとの遅延差Da−Dbと、ノードAからノードBまでの遅延Dlとの比を表わした値である。具体的には、第2判定係数βは、以下の式で求められる値である。
【0031】
【数2】

なお、上記式において、遅延Da,Dbの遅延差Da−Dbは、ノードA,Bにおけるスキューに相当する。
【0032】
ここで、クロックソースからノードA(又はノードB)までの経路に配置されたセル(クロックバッファ等)30を単純なドライバ抵抗に置き換えると、クロックソースからノードA(又はノードB)までの遅延をエルモア遅延モデルで単純化することができる。詳述すると、エルモア遅延モデルでは、図6に示すように、クロックソースからノードA(又はノードB)までの経路が、抵抗R1〜Rnと容量C1〜Cnとがπ型に接続された等価回路に置換される。そして、この回路におけるノードAでの遅延Daは、以下のように見積もられる。
【0033】
【数3】

上記式において、遅延Daの特性は、抵抗成分の特性と同じになる。すなわち、抵抗成分が大きければ大きいほど、遅延Daも大きくなる。そこで、遅延Daを、
【0034】
【数4】

と近似する。同様に、クロックソースからノードBまでの抵抗成分をΣRbとして、遅延Dbを、
【0035】
【数5】

と近似する。さらに、ノードAからノードBまでの遅延Dlについても同様にノードA,B間の抵抗成分で表わすと、遅延Dlを、
【0036】
【数6】

と短絡抵抗Rlで近似することができる。
【0037】
以上の近似式から、本実施形態の第2判定係数βは、
【0038】
【数7】

と表わすことができる。
【0039】
ところで、上記ステップS4のタイミング解析では、セルやトランジスタの特性値などをモデル化したモデルベースでの遅延計算が行われる。但し、モデルベースでの遅延計算は簡易的な遅延計算であるため、そのモデルベースでの遅延結果と回路シミュレーション(例えば、SPICE:Simulation Program with Integrated Circuit Emphasis)による測定結果(理想値)との間には計算誤差(遅延誤差)が生じる。このような遅延誤差は、ノードA,B間が短絡されている場合に、ノードA,B間のスキューが大きくなるほど顕著になる。換言すると、第2判定係数βの分母が大きくなるほど、つまり第2判定係数βが小さくなるほど、図7に示すように、上記遅延誤差は大きくなる。別の見方をすれば、ノードA,B間が短絡されている場合に、ノードA,B間のスキューが大きくなると、モデルベースでの遅延計算では遅延量を正しく計算することができない、と言える。このような場合には、上記タイミング解析において、少なくとも短絡箇所について演算量及び演算時間が膨大な上記回路シミュレーションを実施しなければならないため、TAT(Turn Around Time)が増大してしまう。また、短絡箇所のみに回路シミュレーションを実施する場合には、短絡箇所を切り出す処理が必要となるため、処理が複雑になるという問題もある。
【0040】
ここで、上述したように、第2判定係数βが小さくなるほど、遅延誤差が大きくなる。このため、例えばテクノロジルール(例えば、許容誤差など)に応じて第2判定係数βの下限値β1を設定することにより、遅延誤差を所望の範囲(許容誤差以内)に制限することができるようになる。すなわち、第2判定係数βの下限値β1を適切に設定し、その下限値β1よりも第2判定係数βが高くなる位置でノード間を短絡することにより、モデルベースでの遅延計算のみで上記タイミング解析を行うことができるようになる。そこで、本実施形態では、第2判定係数βを使用して短絡位置を決定するようにした。
【0041】
なお、以下の説明では、上記モデルベースでの遅延計算を行うシステムをEDA(Electronic Design Automation)ツールと呼ぶ。
次に、上記第1判定係数αの上限値α1と第2判定係数βの下限値β1を設定する準備処理について図8及び図9に従って説明する。なお、この準備処理は、例えば新たなテクノロジを立ち上げる際などに、後述するスキュー調整処理に先立って実施される。
【0042】
まず、図1に示す設計支援装置10は、第1判定係数αの特性テーブル及び第2判定係数βの特性テーブルを抽出するために、係数抽出モデル(係数抽出用回路)を作成する(ステップS11)。この係数抽出モデルは、図9に示すように、例えばクロックソースに接続された高駆動能力のクロックバッファ31,32とクロックバッファ(ドライバセル)33,34をそれぞれ接続し、それらドライバセル33,34にレシーバセル35,36をそれぞれ接続した回路である。このような係数抽出モデルは、クロックバッファ31からドライバセル33までの抵抗成分Reと、クロックバッファ32からドライバセル34までの抵抗成分Rfと、ドライバセル33,34のドライバ抵抗Ra,Rbと、ノードA,B間を短絡した場合のノードA,B間の短絡抵抗Rlとを様々に可変させた多数のバリエーションが作成される。ここで、抵抗成分Reとドライバ抵抗Raを合算した抵抗値が上述したクロックソースからノードAまでの抵抗成分ΣRcに相当し、抵抗成分Rfとドライバ抵抗Rbを合算した抵抗値が上述したクロックソースからノードBまでの抵抗成分ΣRdに相当する。すなわち、本ステップでは、第1判定係数α及び第2判定係数βの値の組み合わせが様々に異なる係数抽出モデルが多数作成される。さらに、係数抽出モデルは、1つのバリエーション(第1判定係数α及び第2判定係数βの1つの組み合わせ)に対して、ノードA,B間を短絡した回路とノードA,B間を短絡しない回路とが作成される。
【0043】
次に、上記作成した全ての係数抽出モデルにおいて、レシーバセル35,36(ノードA,B)におけるスキューが回路シミュレーション(例えば、SPICE)で測定される(ステップS12)。この測定結果に基づいて、1つのバリエーション(第1判定係数αの1つの値)について、ノードA,B間を短絡しない回路で測定されたスキューと、ノードA,B間を短絡した回路で測定されたスキューとの差分を、ノードA,B間を短絡したことによるスキュー低減量として算出する。これにより、第1判定係数αの各値に対するスキュー低減量(スキュー低減効果)を求めることができ、第1判定係数αの各値に対するノードA,B間短絡後のスキュー量を求めることができる。
【0044】
また、上記ステップS12では、ノードA,B間を短絡した全ての係数抽出モデルにおいて、ノードA,B間に流れる貫通電流Ipが回路シミュレーションで測定される。これにより、第1判定係数αの各値に対する貫通電流Ipの大きさを求めることができる。
【0045】
次に、設計支援装置10は、上記ステップS12における測定結果に基づいて、第1判定係数αと貫通電流Ipとの関係、第1判定係数αとスキュー低減量との関係、及び第1判定係数αとノードA,B間短絡後のスキュー量との関係を表わした第1判定係数αの特性テーブルを作成する(ステップS13)。この第1判定係数αの特性テーブルは、テクノロジ毎に作成される。なお、第1判定係数αと貫通電流との関係、第1判定係数αとスキュー低減量との関係を表わした特性テーブルをグラフ化すると、例えば図4に示すようなグラフとなる。
【0046】
続いて、上記作成した係数抽出モデルのうちノードA,B間を短絡した全ての係数抽出モデルにおいて、クロックバッファ31,32からレシーバセル35,36(ノードA,B)までの遅延が回路シミュレーション(例えば、SPICE)で測定される(ステップS14)。
【0047】
次いで、上記作成した係数抽出モデルのうちノードA,B間を短絡した全ての係数抽出モデルにおいて、クロックバッファ31,32からレシーバセル35,36(ノードA,B)までの遅延がEDAツールにより計算される(ステップS15)。ここで、上記タイミング解析(ステップS4)で使用されるEDAツールが複数存在する場合には、各EDAツール毎に遅延計算が実施される。これは、EDAツール毎に遅延誤差(計算誤差)が異なるため、それぞれのEDAツールに対する遅延誤差を抽出するためである。
【0048】
次に、設計支援装置10は、1つのバリエーション(第2判定係数βの1つの値)について、上記ステップS14で測定された遅延値に対する、上記ステップS15で計算された遅延値の差を遅延誤差(計算誤差)として算出する(ステップS16)。これにより、第2判定係数βの各値に対する遅延誤差の大きさを求めることができる。
【0049】
続いて、設計支援装置10は、上記ステップS16における算出結果に基づいて、第2判定係数βと遅延誤差との関係を表わした第2判定係数βの特性テーブルを作成する(ステップS17)。第2判定係数βの特性テーブルは、テクノロジ毎及びEDAツール毎に作成される。なお、第2判定係数βの特性テーブルをグラフ化すると、例えば図7に示すようなグラフとなる。
【0050】
次いで、設計支援装置10は、上記第1判定係数αの特性テーブル及び第2判定係数βの特性テーブルに基づいて、第1判定係数αの上限値α1と第2判定係数βの下限値β1を設定する。具体的には、テクノロジルール(許容貫通電流、許容誤差やスキュー制約など)に応じて、上限値α1と下限値β1を設定する。より具体的には、貫通電流Ipが許容貫通電流よりも小さくなり、且つノード間短絡後のスキュー量がスキュー制約を満たす第1判定係数αの値を上限値α1に設定するとともに、遅延誤差が許容誤差よりも小さくなる第2判定係数βの値を下限値β1に設定する。
【0051】
そして、設計支援装置10は、テクノロジ毎及びEDAツール毎に設定された上限値α1及び下限値β1を記憶装置13に格納する。
次に、上述のように設定された上限値α1及び下限値β1を利用したクロックツリー合成処理及びスキュー調整処理(ステップS3)の詳細を図10〜図13に従って説明する。
【0052】
ステップS21において、図1に示す設計支援装置10は、制約条件41、論理データ42及び配置データ43を図1に示す記憶装置13から入力する。ここで、制約条件41には、スキュー制約、第1判定係数αの上限値α1及び第2判定係数βの下限値β1が含まれている。
【0053】
次に、ステップS22において、設計支援装置10は、入力した論理データ42及び配置データ43に基づいて、クロックツリー合成処理を実行し、一部のクロックパスを形成する。ここでは、図11(a)に示すように、クロックソースに接続されるクロックバッファ(ドライバセル)51,52と、それらドライバセル51,52のレシーバセルとなるクロックバッファ53,54,55,56とが形成される。すなわち、クロックソースから、1段目のドライバセル51,52の次段のセル53〜56まで形成される。
【0054】
続いて、設計支援装置10は、上記ステップS22で形成されたクロックパスの終端(クロックソースから離間する側)のドライバセル(ここでは、ドライバセル51,52)の全ての出力ノードa,b,c,d間の遅延差がスキュー制約以上であるか否かを判定する(ステップS23)。詳述すると、設計支援装置10は、まず、クロックソースから出力ノードa,b,c,dまでの4つの経路(パス)の抵抗成分をそれぞれ求める。これにより、クロックソースから出力ノードa〜dまでの遅延をそれぞれ求めることができる。次に、設計支援装置10は、全ての出力ノードa,b,c,d間の遅延差がスキュー制約以上であるか否かをそれぞれ判定する。そして、設計支援装置10は、出力ノード間の遅延差がスキュー制約以上である場合にスキュー調整が必要であると判定する。なお、ここでは、全ての出力ノードa,b,c,d間の遅延差がスキュー制約よりも小さいため(ステップS23でNO)、ステップS22に戻る。
【0055】
次に、ステップS22において、設計支援装置10は、クロックツリー合成処理を再度実行して次段のセルを形成する。ここでは、図11(b)に示すように、図11(a)に示した回路の終端セルであるクロックバッファ53〜56がドライバセルになり、そのドライバセル53〜56のレシーバセルとなる次段のセル57,58,59,60,61,62が形成される。
【0056】
続いて、ステップS23において、設計支援装置10は、ドライバセル51〜56のうち終端のドライバセル53〜56の全てのノードe,f,g,h,i,j間の遅延差がスキュー制約以上であるか否かを判定する。ここでは、出力ノードg,h間の遅延差がスキュー制約以上となり、その出力ノードg,h間でスキュー調整が必要であると判定される(ステップS23でYES)。
【0057】
次いで、ステップS24において、設計支援装置10は、出力ノードg,hにおける第1判定係数αを算出し、その第1判定係数αの値が上限値α1よりも大きいか否かを判定する。具体的には、設計支援装置10は、クロックソースから出力ノードg,hまでのパスP1,P2における終端ドライバセル51,52のドライバ抵抗と、ノードg,h間を接続する短絡配線の抵抗成分(短絡抵抗)とに基づいて、出力ノードg,hにおける第1判定係数αを算出する。そして、設計支援装置10は、算出した第1判定係数αが上限値α1よりも大きい場合、つまり出力ノードg,h間を短絡したときに生じる貫通電流が許容貫通電流よりも大きくなる場合には(ステップS24でYES)、パスP1,P2間のスキューを調整する(ステップS25)。このスキュー調整では、例えば図13に示すように、ドライバ抵抗に対する短絡抵抗の比率を小さくするために、ドライバセル54をドライバ抵抗の大きいドライバセル54aに変更する。具体的には、短絡対象のパスP1,P2のうち出力ノードg,hにおける遅延値が小さいパス(ここでは、パスP1)の終端ドライバセル54を変更する。これにより、出力ノードg,h間におけるスキューを小さくすることができ、さらに出力ノードg,hにおける第1判定係数αを小さくすることができる。
【0058】
このようなスキュー調整が行われると、図11(b)に示す終端のドライバセル53〜56の全てのノードe,f,g,h,i,j間の遅延差がスキュー制約以上であるか否かが再度判定される(ステップS23)。ここでは、前回と同じように、出力ノードg,h間でスキュー調整が必要であると判定される。
【0059】
続いて、ステップS24において、出力ノードg,hにおける第1判定係数αが上限値α1以下であると判定されると(ステップS24でNO)、ステップS26に移る。このステップS26において、設計支援装置10は、出力ノードg,hにおける第2判定係数βを算出し、その第2判定係数βの値が下限値β1よりも小さいか否かを判定する。具体的には、設計支援装置10は、クロックソースからノードgまでのパスP1の抵抗成分と、クロックソースからノードhまでのパスP2の抵抗成分と、ノードg,h間を接続する短絡配線の抵抗成分とに基づいて、出力ノードg,hにおける第2判定係数βを算出する。そして、設計支援装置10は、算出した第2判定係数βが下限値β1よりも小さい場合、つまり出力ノードg,h間を短絡したときの遅延誤差が許容誤差よりも大きくなる場合には(ステップS26でYES)、パスP1,P2間のスキューを調整する(ステップS25)。この場合には、例えば出力ノードg,hにおける遅延差を小さくするように、各出力ノードg,hまでのパスP1,P2の抵抗成分を変更する。ここで、パスP1,P2の抵抗成分は、例えば図13(b)に示すように、タッピングポイントTPの変更やスネーク配線SWの利用などにより調整することができる。このパスP1,P2の抵抗成分の変更により、出力ノードg,h(図11(b)参照)間におけるスキューを小さくすることができ、さらに出力ノードg,hにおける第2判定係数βを大きくすることができる。
【0060】
このようなスキュー調整が行われると、図11(b)に示す終端のドライバセル53〜56の全てのノードe,f,g,h,i,j間の遅延差がスキュー制約以上であるか否かが再度判定される(ステップS23)。そして、以上説明したステップS23〜S26の処理が、第1判定係数αが上限値α1以下、且つ第2判定係数βが下限値β1以上になるまで繰り返し実行される。
【0061】
やがて、ステップS26において、出力ノードg,hにおける第2判定係数βが下限値β1以上であると判定されると(ステップS26でNO)、ステップS27に移る。このステップS27において、設計支援装置10は、出力ノードgと出力ノードhを接続する短絡配線を形成する。すなわち、第1判定係数α及び第2判定係数βが保証範囲(上限値α1及び下限値β1)内に収まったところで出力ノードg,hが短絡される。これにより、この出力ノードg,hの短絡により生じる貫通電流を許容貫通電流よりも小さくできるとともに、短絡後の出力ノードg,hにおけるスキューがスキュー制約を満たすようになる。さらに、遅延誤差を許容誤差よりも小さくできる。
【0062】
上記出力ノードg,h間の短絡が終了するとステップS22に戻って、クロックツリー合成処理が再度実行されて次段のセルが形成される。ここでは、図12(a)に示すように、図11(b)に示した回路の終端セルであるクロックバッファ57,58,60〜62がドライバセルになり、そのドライバセル57,58,60〜62のレシーバセルとなる次段のセル63,64,65,66,67が形成される。続いて、この図12(a)に示した回路に対して上記ステップS23〜S27の処理が実行される。これにより、本例では、出力ノードk,l間及び出力ノードm,o間が短絡される。なお、このときのステップS23〜S27では、上記短絡した出力ノードg,h間のスキューを0とみなして処理が実行される。その後、ステップS22に戻って、図12(b)に示すように、ドライバセル65のレシーバセルとなるセル68が形成されると、クロック信号CLKが複数のクロックバッファ51〜58,60〜62,65により6つのFF回路59〜63,64,66〜68に伝達されるクロックツリーが形成される。
【0063】
以上のように、本実施形態のクロックツリー合成処理及びスキュー調整処理では、ドライバセルに対するレシーバセルを1段形成する毎に、スキュー調整の必要な箇所を探索するとともに、適切な短絡位置を探索して出力ノード間を短絡する。
【0064】
なお、本実施形態において、遅延Daは第1遅延の一例、遅延Dbは第2遅延の一例、上限値α1は第1閾値の一例、下限値β1は第2閾値の一例、ステップS23〜S27は「出力ノード間を短絡するステップ」の一例である。
【0065】
以上説明した本実施形態によれば、以下の効果を奏することができる。
(1)第1判定係数αに基づいて、貫通電流及びスキューが保証範囲(許容貫通電流及びスキュー制約)内になるように、出力ノード間を短絡する短絡箇所を決定するようにした。これにより、出力ノード間を短絡することによるスキュー低減効果を十分に得ることができ、さらに出力ノード間を短絡することによって生じる貫通電流の増大を抑制することができる。
【0066】
(2)第2判定係数βに基づいて、遅延誤差が保証範囲(許容誤差)内になるように、出力ノード間を短絡する短絡箇所を決定するようにした。これにより、出力ノード間を短絡することによる遅延誤差の増大を抑制することができる。したがって、出力ノード間を短絡した場合であっても、EDAツールでのタイミング解析によって遅延値を正しく演算することができる。このため、出力ノード間を短絡した箇所がある場合にも、回路シミュレーションを行わずに、EDAツールのみでのタイミング解析を実現することができる。これにより、設計効率を向上させることができ、TATの増大を抑制することができる。さらに、短絡箇所のみ切り出して回路シミュレーションを行う場合と比べて、タイミング解析の処理を単純化することができる。
【0067】
(3)クロックツリーを形成する際にセルを1段形成する毎に、スキュー調整の必要な箇所を探索するとともに、適切な短絡位置を探索して出力ノード間を短絡するようにした。これにより、スキュー調整を行いながらクロックツリーを形成することができる。したがって、クロックツリー形成後にクロックバッファ挿入などのタイミング調整を比較的行わずとも、タイミング制約を満たすことができるようになる。この結果、バッファ挿入などに伴うレイアウト面積や消費電力の増加を抑制することができる。
【0068】
(4)出力ノード間の短絡、ドライバセルのドライバ抵抗の変更、タッピングポイントTPの変更やスネーク配線の利用などのように抵抗成分の変更のみでスキュー調整を行うようにした。これにより、バッファ挿入などによりスキュー調整を行う場合と比べて、バッファ挿入に伴うレイアウト面積や消費電力の増加を抑制することができる。
【0069】
(5)抵抗成分のみで求めることのできる第1判定係数α及び第2判定係数βを利用して、出力ノード間を短絡する短絡箇所を決定するようにした。これにより、最適な短絡箇所を探索する際に、抵抗成分のみを考慮すれば良いため、余計な計算コストがかからない。すなわち、回路シミュレーションやモデルベースでの遅延計算などを行う必要がなく、抵抗成分を求めるという簡易的な演算によって最適な短絡箇所を探索することができる。
【0070】
(6)図14(a)に示すように、出力ノードA,B間を短絡していない場合のノードA,Bにおけるスキューは、トランジスタの特性ばらつきや動作温度変化などの影響を受けてばらつきが生じる。これに対して、図14(b)に示すように、出力ノードA,B間を短絡することにより、ノードA,B間におけるスキューのばらつきを抑制することができる。
【0071】
(他の実施形態)
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態では、第2判定係数βを抵抗成分のみで表現した値にした。これに限らず、例えば第2判定係数βを抵抗成分と容量成分で表現した値に変更してもよい。すなわち、クロックソースから出力ノードAまでの遅延Daと、クロックソースから出力ノードBまでの遅延Dbと、出力ノードA,B間の遅延Dlとを、抵抗成分及び容量成分を考慮して算出するようにしてもよい。
【0072】
・上記実施形態のスキュー調整処理(ステップS23〜S27)では、抵抗成分の変更のみでスキュー調整を行うようにしたが、これに限らず、例えばバッファ挿入などによりスキュー調整を行うようにしてもよい。
【0073】
・上記実施形態では、クロックツリー合成処理を行いながらスキュー調整処理を行うようにした。すなわち、クロックツリーを形成する際にセルを1段形成する毎に、スキュー調整の必要な箇所を探索するとともに、適切な短絡位置を探索して出力ノード間を短絡するようにした。これに限らず、例えばクロックツリー合成処理の終了後、つまりクロックツリー完成後に、上記説明したスキュー調整処理(ステップS23〜S27)と同様の処理を実行するようにしてもよい。
【0074】
・上記実施形態では、短絡箇所を決定する際に第1判定係数αと第2判定係数βを使用するようにした。これに限らず、例えば第1判定係数αのみを使用して短絡箇所を決定するようにしてもよい。この場合には、図8に示すステップS14〜S17及び図10に示すステップS26の処理を省略することができる。
【符号の説明】
【0075】
10 設計支援装置
11 中央処理装置
13 記憶装置
α 第1判定係数
β 第2判定係数
α1 上限値
β1 下限値
P1,P2 パス
21,22 ドライバセル
23 短絡配線
Ip 貫通電流
Ra,Rb ドライバ抵抗
Rl 短絡抵抗
Da,Db 遅延
Dl 遅延
CLK クロック信号

【特許請求の範囲】
【請求項1】
半導体装置に含まれるパス間のスキューを設計支援装置により調整するスキュー調整方法であって、
前記設計支援装置が実行する処理は、
前記パス間のスキューがスキュー制約を満たさない場合に、各パスに含まれるドライバセルの出力ノード間を短絡するステップを有し、
前記出力ノード間を短絡するステップは、
前記ドライバセルの抵抗に対する前記出力ノード間の抵抗の比率を示す第1判定係数に基づいて、前記出力ノード間を短絡したときの貫通電流及びスキューが保証範囲内になるように、前記出力ノード間を短絡する位置を決定することを特徴とするスキュー調整方法。
【請求項2】
前記出力ノード間を短絡するステップは、
クロックソースから一方の前記出力ノードまでの第1遅延と、前記クロックソースから他方の前記出力ノードまでの第2遅延との差分に対する、前記出力ノード間の遅延の比を示す第2判定係数に基づいて、モデルベースで演算したときの遅延値と実際の遅延値との遅延誤差が保証範囲内になるように、前記出力ノード間を短絡する位置を決定することを特徴とする請求項1に記載のスキュー調整方法。
【請求項3】
前記出力ノード間を短絡するステップに先立って、
前記第1判定係数と前記貫通電流及び前記スキューとの関係を示す第1特性テーブルを作成するステップと、
前記第1特性テーブルに基づいて、前記貫通電流及び前記スキューが前記保証範囲内に収まるように前記第1判定係数の第1閾値を設定するステップと、
前記第2判定係数と前記遅延誤差との関係を示す第2特性テーブルを作成するステップと、
前記第2特性テーブルに基づいて、前記遅延誤差が前記保証範囲に収まるように前記第2判定係数の第2閾値を設定するステップと、を実行し、
前記出力ノード間を短絡するステップは、
前記第1判定係数が前記第1閾値を超えず、且つ前記第2判定係数が前記第2閾値を超えない出力ノード間を短絡することを特徴とする請求項2に記載のスキュー調整方法。
【請求項4】
前記第1判定係数が前記第1閾値を超える場合には、前記ドライバセルの抵抗が大きくなるように変更して前記スキューを調整し、
前記第2判定係数が前記第2閾値を超える場合には、前記第1遅延と前記第2遅延との遅延差が小さくなるように、前記クロックソースから前記出力ノードまでの抵抗成分を変更して前記スキューを調整することを特徴とする請求項3に記載のスキュー調整方法。
【請求項5】
前記第1判定係数は、該第1判定係数をα、一方のドライバセルのドライバ抵抗をRa、他方のドライバセルのドライバ抵抗をRb、前記一方のドライバセルの出力ノードと前記他方のドライバセルの出力ノードとの間の配線の抵抗をRlとしたときに、下記式1により算出され、
式1:
【数1】

前記第2判定係数は、該第2判定係数をβ、前記クロックソースから一方の出力ノードまでの抵抗成分をΣRc、前記クロックソースから他方の出力ノードまでの抵抗成分をΣRdとしたときに、下記式2により算出されることを特徴とする請求項3又は4に記載のスキュー調整方法。
式2:
【数2】

【請求項6】
前記出力ノード間を短絡するステップは、クロックツリーを形成する際にセルを1段形成する毎に実行するとともに、新たに形成されたセルに対するドライバセルの出力ノード間を短絡することを特徴とする請求項1〜5のいずれか1つに記載のスキュー調整方法。
【請求項7】
半導体装置に含まれるパス間のスキューを調整する設計支援装置であって、
前記パス間のスキューがスキュー制約を満たさない場合に、各パスに含まれるドライバセルの出力ノード間を短絡する手段を有し、
前記出力ノード間を短絡する手段は、
前記ドライバセルの抵抗に対する前記出力ノード間の抵抗の比率を示す第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


【公開番号】特開2013−58098(P2013−58098A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−196326(P2011−196326)
【出願日】平成23年9月8日(2011.9.8)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】