(57)【要約】【課題】ノード間を短絡したことによる貫通電流の増大を抑制することのできるスキュー調整方法を提供する。【解決手段】パス間のスキューがスキュー制約を満たさない場合に、ドライバセルのドライバ抵抗に対する、そのドライバセルの出力ノード間の短絡抵抗の比率を示す第１判定係数αと上限値α１とを比較するステップＳ２４を有する。また、クロックソースから一方の出力ノードまでの第１遅延と、クロックソースから他方の出力ノードまでの第２遅延との差分に対する、ドライバセルの出力ノード間の遅延の比を示す第２判定係数βと下限値β１とを比較するステップＳ２５を有する。そして、第１判定係数αが上限値α１以下であり、第２判定係数βが下限値β１以上となる出力ノード間を短絡するステップＳ２７を有する。【選択図】図１０
2013058098.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置に含まれるパス間のスキューを設計支援装置により調整するスキュー調整方法であって、
前記設計支援装置が実行する処理は、
前記パス間のスキューがスキュー制約を満たさない場合に、各パスに含まれるドライバセルの出力ノード間を短絡するステップを有し、
前記出力ノード間を短絡するステップは、
前記ドライバセルの抵抗に対する前記出力ノード間の抵抗の比率を示す第１判定係数に基づいて、前記出力ノード間を短絡したときの貫通電流及びスキューが保証範囲内になるように、前記出力ノード間を短絡する位置を決定することを特徴とするスキュー調整方法。
【請求項２】
前記出力ノード間を短絡するステップは、
クロックソースから一方の前記出力ノードまでの第１遅延と、前記クロックソースから他方の前記出力ノードまでの第２遅延との差分に対する、前記出力ノード間の遅延の比を示す第２判定係数に基づいて、モデルベースで演算したときの遅延値と実際の遅延値との遅延誤差が保証範囲内になるように、前記出力ノード間を短絡する位置を決定することを特徴とする請求項１に記載のスキュー調整方法。
【請求項３】
前記出力ノード間を短絡するステップに先立って、
前記第１判定係数と前記貫通電流及び前記スキューとの関係を示す第１特性テーブルを作成するステップと、
前記第１特性テーブルに基づいて、前記貫通電流及び前記スキューが前記保証範囲内に収まるように前記第１判定係数の第１閾値を設定するステップと、
前記第２判定係数と前記遅延誤差との関係を示す第２特性テーブルを作成するステップと、
前記第２特性テーブルに基づいて、前記遅延誤差が前記保証範囲に収まるように前記第２判定係数の第２閾値を設定するステップと、を実行し、
前記出力ノード間を短絡するステップは、
前記第１判定係数が前記第１閾値を超えず、且つ前記第２判定係数が前記第２閾値を超えない出力ノード間を短絡することを特徴とする請求項２に記載のスキュー調整方法。
【請求項４】
前記第１判定係数が前記第１閾値を超える場合には、前記ドライバセルの抵抗が大きくなるように変更して前記スキューを調整し、
前記第２判定係数が前記第２閾値を超える場合には、前記第１遅延と前記第２遅延との遅延差が小さくなるように、前記クロックソースから前記出力ノードまでの抵抗成分を変更して前記スキューを調整することを特徴とする請求項３に記載のスキュー調整方法。
【請求項５】
前記第１判定係数は、該第１判定係数をα、一方のドライバセルのドライバ抵抗をＲａ、他方のドライバセルのドライバ抵抗をＲｂ、前記一方のドライバセルの出力ノードと前記他方のドライバセルの出力ノードとの間の配線の抵抗をＲｌとしたときに、下記式１により算出され、
式１：
【数１】
2013058098.tif 000010
前記第２判定係数は、該第２判定係数をβ、前記クロックソースから一方の出力ノードまでの抵抗成分をΣＲｃ、前記クロックソースから他方の出力ノードまでの抵抗成分をΣＲｄとしたときに、下記式２により算出されることを特徴とする請求項３又は４に記載のスキュー調整方法。
式２：
【数２】
2013058098.tif 000011
【請求項６】
前記出力ノード間を短絡するステップは、クロックツリーを形成する際にセルを１段形成する毎に実行するとともに、新たに形成されたセルに対するドライバセルの出力ノード間を短絡することを特徴とする請求項１〜５のいずれか１つに記載のスキュー調整方法。
【請求項７】
半導体装置に含まれるパス間のスキューを調整する設計支援装置であって、
前記パス間のスキューがスキュー制約を満たさない場合に、各パスに含まれるドライバセルの出力ノード間を短絡する手段を有し、
前記出力ノード間を短絡する手段は、
前記ドライバセルの抵抗に対する前記出力ノード間の抵抗の比率を示す第１判定係数に基づいて、前記出力ノード間を短絡したときの貫通電流及びスキューが保証範囲内になるように、前記出力ノード間を短絡する位置を決定することを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキュー調整方法及び設計支援装置に関するものである。
【背景技術】
【０００２】
半導体集積回路装置（ＬＳＩ）の開発工程においては、論理回路の動作を確認し保証するため、タイミング検証が実施されている。タイミング検証は、設定されたコーナー条件において算出したパス（信号伝達経路）の遅延時間に基づいて、信号が供給される素子の動作を確認するものである。例えば１つの回路から出力されるクロック信号に基づいて動作する同期回路においては、クロック信号を分岐して同期回路に含まれる複数のフリップフロップ回路に供給される。このクロック信号を供給する経路はクロックツリーと呼ばれる。そして、タイミング検証では、クロックツリーにてクロック信号が供給される回路、例えばフリップフロップ回路において、設定されたコーナー条件におけるセットアップ／ホールド時間などのタイミングマージンをチェックする。
【０００３】
同期回路では、各クロックパスの遅延時間により、クロック信号が供給される複数の回路間、例えば複数のフリップフロップ回路間においてクロック信号に時間差（クロックスキュー）が生じる場合がある。クロックスキューが生じた場合、上記複数のフリップフロップ回路において、タイミングマージンにずれを生じさせる。このため、クロックスキューが小さくなるように、クロックツリーにおける遅延時間の調整（スキュー調整）が行われる。
【０００４】
例えば図１５に示すように、クロック信号ＣＬＫを複数のクロックバッファ８０により２つのフリップフロップ回路８１，８２に伝達するクロックツリーにおいて、所定のノードＣ，Ｄ間を配線短絡することにより、クロックスキューを調整する方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−１１５３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記配線短絡手法では、例えばクロックスキュー量を判定基準に用い、クロックスキュー量が大きい箇所を短絡位置に決定していた。しかし、短絡するノードＣ，Ｄ間の距離が長くなると、そのノードＣ，Ｄ間を短絡してもクロックスキューを十分に低減できず、さらに上記短絡によりノードＣ，Ｄ間に発生する貫通電流が増大するという問題がある。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、半導体装置に含まれるパス間のスキューがスキュー制約を満たさない場合に、各パスに含まれるドライバセルの出力ノード間を短絡するステップを有し、前記出力ノード間を短絡するステップは、前記ドライバセルの抵抗に対する前記出力ノード間の抵抗の比率を示す第１判定係数に基づいて、前記出力ノード間を短絡したときの貫通電流及びスキューが保証範囲内になるように、前記出力ノード間を短絡する位置を決定する。
【発明の効果】
【０００８】
本発明の一観点によれば、ノード間を短絡したことによる貫通電流の増大を抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】設計支援装置の概略構成図。
【図２】半導体装置の設計工程を示すフローチャート。
【図３】第１判定係数を説明するための回路図。
【図４】第１判定係数と貫通電流及びスキュー低減量との関係を示す特性図。
【図５】第２判定係数を説明するための回路図。
【図６】エルモア遅延モデルの説明図。
【図７】第２判定係数と遅延誤差との関係を示す特性図。
【図８】第１判定係数の上限値及び第２判定係数の下限値の設定方法を示すフローチャート。
【図９】係数抽出モデルを示す回路図。
【図１０】クロックツリー合成処理及びスキュー調整処理を示すフローチャート。
【図１１】（ａ）、（ｂ）は、クロックツリー合成処理及びスキュー調整処理を示す回路図。
【図１２】（ａ）、（ｂ）は、クロックツリー合成処理及びスキュー調整処理を示す回路図。
【図１３】（ａ）、（ｂ）は、スキュー調整処理を示す説明図。
【図１４】（ａ）、（ｂ）は、ノード間短絡によるスキューばらつき低減効果を示す説明図。本図のグラフは、モンテカルロシミュレーションによる評価結果を示している。
【図１５】従来のスキュー調整方法を示す回路図。
【発明を実施するための形態】
【００１０】
（第１実施形態）
以下、第１実施形態を図１〜図１３に従って説明する。
図１に示すように、設計支援装置（コンピュータ）１０は、半導体装置の設計を支援するための装置であり、例えば一般的な設計支援装置（Computer Aided Design：ＣＡＤ）である。この設計支援装置１０は、中央処理装置（Central Processing Unit：ＣＰＵ）１１と、メモリ１２と、記憶装置１３と、表示装置１４と、入力装置１５と、ドライブ装置１６とを有している。これら各装置１１，１３，１４，１５，１６及びメモリ１２は、バス１７を介して相互に接続されている。
【００１１】
ＣＰＵ１１は、メモリ１２を利用してプログラムを実行し、半導体装置（半導体集積回路装置）のレイアウト設計等の必要な処理を実現する。プログラムは、ＣＰＵ１１を、半導体装置のレイアウトデータを生成する設計支援装置としての各種手段として機能させるためのものである。メモリ１２には、各種処理を提供するために必要なプログラムとデータが格納される。このメモリ１２としては、通常、キャッシュ・メモリ、システム・メモリ及びディスプレイ・メモリ等が含まれる。
【００１２】
表示装置１４は、パターン表示、パラメータ入力画面等の表示に用いられる。この表示装置１４としては、例えばＣＲＴ，ＬＣＤ，ＰＤＰ等が用いられる。入力装置１５は、ユーザからの要求や指示、パターン、パラメータの入力に用いられる。この入力装置１５としては、例えばキーボード及びマウス装置等が用いられる。
【００１３】
設計支援装置１０は、レイアウトデータに基づき半導体装置に形成するパターン（図形）を表示装置１４に表示させる。そして、設計支援装置１０は、ユーザが操作する入力装置１５からの信号に従って、表示装置１４上のパターンの追加、削除を行うとともに、レイアウトデータに対してパターンデータの追加、削除を行う。
【００１４】
記憶装置１３は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等を含む。この記憶装置１３には、半導体装置のレイアウトデータを生成するためのプログラムデータを含むファイルや、各種データを含むファイルが格納されている。ＣＰＵ１１は、入力装置１５による指示に応答してプログラムやデータをメモリ１２に転送し、それを実行する。
【００１５】
ＣＰＵ１１が実行するプログラムデータは、記録媒体１８にて提供される。ドライブ装置１６は、記録媒体１８を駆動し、その記憶内容にアクセスする。ＣＰＵ１１は、ドライブ装置１６を介して記録媒体１８からプログラムデータを読み出し、それを記憶装置１３にインストールする。
【００１６】
記録媒体１８としては、磁気テープ（ＭＴ）、メモリカード、フレキシブルディスク、光ディスク（ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭなど）、光磁気ディスク（ＭＯ，ＭＤなど）等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体１８に、上述のプログラムやデータを格納しておき、必要に応じて、メモリ１２にロードして使用することもできる。
【００１７】
なお、記録媒体１８には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体やディスク装置が含まれる。さらに、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、一旦他の記録媒体（ハードディスク等）にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含まれる。
【００１８】
次に、設計支援装置１０（とくに、ＣＰＵ１１）が実行する処理の概要を図２に従って説明する。設計支援装置１０は、図２に示すステップＳ１〜Ｓ４の処理を実行する。
ステップＳ１（論理合成処理）において、設計支援装置１０は、半導体装置の論理をハードウェア記述言語（例えばＲＴＬ：Register Transfer Level）により記述したデータに基づいてネットリスト（論理データ）を生成する。このとき、設計支援装置１０は、ネットリストの回路動作を保証し得るタイミング情報を規定したタイミング制約を生成する。なお、このタイミング制約にはスキュー制約が含まれる。
【００１９】
次に、ステップＳ２（配置処理）において、設計支援装置１０は、セルライブラリ等のライブラリデータとネットリストとに基づいて、半導体装置に含まれるセルを配置する。セルの配置を示すデータ（配置データ）は記憶装置１３（図１参照）に記憶される。なお、配置データはメモリ１２に格納されてもよい。
【００２０】
次に、ステップＳ３（クロックツリー合成（ＣＴＳ：Clock Tree Synthesis）処理及びスキュー調整処理）において、設計支援装置１０は、ネットリスト等のデータに基づいて、クロックツリーを生成する。クロックツリーは、クロックバッファと配線とを含む。このとき、設計支援装置１０は、クロックバッファを１段形成する毎にスキュー制約を満たすか否かを判定し、スキュー制約を満たさない箇所にスキュー調整処理を実行してクロックツリーを形成する。このスキュー調整処理では、スキュー制約を満たさない箇所（ノード間）の中で第１判定係数α及び第２判定係数βが保証範囲内に収まるノード間を短絡することにより、クロックスキュー（以下、単に「スキュー」ともいう。）が調整される。
【００２１】
次に、ステップＳ４（タイミング解析及び最適化処理）において、設計支援装置１０は、上記タイミング制約に基づいて、クロックツリーを含む同期回路におけるタイミング解析、例えば静的タイミング解析（ＳＴＡ：Static Timing Analysis）を行い、その解析結果に応じて最適化処理を実行する。
【００２２】
ＳＴＡによる解析結果には、フリップフロップ回路（ＦＦ回路）におけるセットアップタイム、ホールドタイム、セットアップスラック（Setup Slack）、ホールドスラック（Hold Slack）やスキュー等が含まれる。ここで、フリップフロップ回路において、データの確定時と、そのデータを取り込むためのクロック信号のエッジとの間がセットアップタイムであり、クロック信号のエッジとデータの終了時との間がホールドタイムである。また、スラックは、信号の到達時間に対する余裕を示す値であり、例えば、そのパスの終点に信号が到達する時間とタイミング制約を満たすために当該信号が当該終点に到達すべき最も遅い時間との差分である。
【００２３】
そして、設計支援装置１０は、解析結果が、スキュー制約、セットアップ制約やホールド制約等の上記タイミング制約を満たすか否かを判定する。具体的には、設計支援装置１０は、スキューが規定値以下であるか否かを判定するとともに、セットアップスラック、ホールドスラックが規定値以上であるか否かを判定する。このとき、設計支援装置１０は、判定結果に基づいて、対象パスがタイミング制約を満たさない場合には、当該パスに対してタイミング最適化処理を実行し、その処理後に再度タイミング解析を実行する。なお、タイミング最適化処理において、設計支援装置１０は、例えばセル（クロックバッファやＦＦ回路等）や配線の遅延時間に従って、タイミング制約を満たすように、セルのサイジングやバッファの挿入等を行ってパスを最適化する。一方、設計支援装置１０は、タイミング制約を満たす場合には、ステップＳ４の処理を終了する。
【００２４】
次に、上記ステップＳ３（クロックツリー合成処理及びスキュー調整処理）の詳細な処理を説明する。
はじめに、上記スキュー調整処理時に使用される第１判定係数α及び第２判定係数βについて図３〜図７に従って説明する。
【００２５】
（第１判定係数αについて）
第１判定係数αは、図３に示すように、クロックバッファ（ドライバセル）２１の出力ノードＡとクロックバッファ（ドライバセル）２２の出力ノードＢとを短絡したときの、ドライバセル２１，２２のドライバ抵抗Ｒａ，Ｒｂに対する短絡配線２３の短絡抵抗Ｒｌの比率を表わした値である。具体的には、第１判定係数αは、以下の式で求められる値である。
【００２６】
【数１】
2013058098.tif 000003
ここで、ドライバ抵抗Ｒａは、ドライバセル２１がオンしたときのオン抵抗であり、ドライバ抵抗Ｒｂは、ドライバセル２２がオンしたときのオン抵抗である。
【００２７】
次に、短絡位置を決定する際に上記第１判定係数αを使用する理由について説明する。
図３に示すように、ノードＡ，Ｂ間を短絡すると、それらノードＡ，Ｂ間に電流（貫通電流）Ｉｐが流れる。この貫通電流Ｉｐは、ノードＡ，Ｂ間の電圧降下量（ＩＲドロップ）Ｖｐの大きさに依存する。すなわち、短絡したノードＡ，Ｂ間の短絡抵抗ＲｌによるＩＲドロップＶｐの大きさが貫通電流Ｉｐの大きさに比例する。このため、ドライバ抵抗Ｒａ，Ｒｂに対して短絡抵抗Ｒｌの比率が大きくなるほど、ノードＡ，Ｂ間のＩＲドロップＶｐが大きくなり、貫通電流Ｉｐが大きくなる。換言すると、図４に示すように、第１判定係数αが大きくなるほど、貫通電流Ｉｐが大きくなる。
【００２８】
また、ノードＡ，Ｂ間を短絡したことによるスキューの低減効果は、ノードＡ，Ｂ間の距離が短いほど高い効果が得られる。具体的には、ノードＡ，Ｂ間の距離が長くなるほど、ノードＡ，Ｂ間を短絡する短絡配線２３の短絡抵抗Ｒｌが大きくなる。この短絡抵抗Ｒｌが無限大に近づくと、ノードＡ，Ｂ間の短絡によるスキュー低減効果（スキュー低減量）が極めて低くなり、ノードＡ，Ｂ間を短絡していない場合とほとんど変わらなくなる。このため、図４に示すように、ドライバ抵抗Ｒａ，Ｒｂに対して短絡抵抗Ｒｌの比率が大きくなるほど、つまり第１判定係数αが大きくなるほど、ノードＡ，Ｂ間の短絡によるスキュー低減量が低くなる。
【００２９】
以上のように、第１判定係数αが大きくなるほど、貫通電流Ｉｐが大きくなるとともに、スキュー低減量が低くなる。このため、テクノロジルール（例えば、許容貫通電流など）に応じて第１判定係数αの上限値α１を設定することにより、貫通電流Ｉｐを所望の範囲（許容貫通電流以下）に制限することができ、所望のスキュー低減効果を得ることができるようになる。すなわち、第１判定係数αの上限値α１を適切に設定し、その上限値α１よりも第１判定係数αが低くなる位置でノード間を短絡することにより、その短絡によって生じる貫通電流Ｉｐを低く抑えつつ、高いスキュー低減効果を得ることができる。そこで、本実施形態では、第１判定係数αを使用して短絡位置を決定するようにした。
【００３０】
（第２判定係数β）
図５に示すように、第２判定係数βは、クロック信号ＣＬＫの供給源であるクロックソースからノードＡまでの遅延Ｄａと、クロックソースからノードＢまでの遅延Ｄｂとの遅延差Ｄａ−Ｄｂと、ノードＡからノードＢまでの遅延Ｄｌとの比を表わした値である。具体的には、第２判定係数βは、以下の式で求められる値である。
【００３１】
【数２】
2013058098.tif 000004
なお、上記式において、遅延Ｄａ，Ｄｂの遅延差Ｄａ−Ｄｂは、ノードＡ，Ｂにおけるスキューに相当する。
【００３２】
ここで、クロックソースからノードＡ（又はノードＢ）までの経路に配置されたセル（クロックバッファ等）３０を単純なドライバ抵抗に置き換えると、クロックソースからノードＡ（又はノードＢ）までの遅延をエルモア遅延モデルで単純化することができる。詳述すると、エルモア遅延モデルでは、図６に示すように、クロックソースからノードＡ（又はノードＢ）までの経路が、抵抗Ｒ１〜Ｒｎと容量Ｃ１〜Ｃｎとがπ型に接続された等価回路に置換される。そして、この回路におけるノードＡでの遅延Ｄａは、以下のように見積もられる。
【００３３】
【数３】
2013058098.tif 000005
上記式において、遅延Ｄａの特性は、抵抗成分の特性と同じになる。すなわち、抵抗成分が大きければ大きいほど、遅延Ｄａも大きくなる。そこで、遅延Ｄａを、
【００３４】
【数４】
2013058098.tif 000006
と近似する。同様に、クロックソースからノードＢまでの抵抗成分をΣＲｂとして、遅延Ｄｂを、
【００３５】
【数５】
2013058098.tif 000007
と近似する。さらに、ノードＡからノードＢまでの遅延Ｄｌについても同様にノードＡ，Ｂ間の抵抗成分で表わすと、遅延Ｄｌを、
【００３６】
【数６】
2013058098.tif 000008
と短絡抵抗Ｒｌで近似することができる。
【００３７】
以上の近似式から、本実施形態の第２判定係数βは、
【００３８】
【数７】
2013058098.tif 000009
と表わすことができる。
【００３９】
ところで、上記ステップＳ４のタイミング解析では、セルやトランジスタの特性値などをモデル化したモデルベースでの遅延計算が行われる。但し、モデルベースでの遅延計算は簡易的な遅延計算であるため、そのモデルベースでの遅延結果と回路シミュレーション（例えば、ＳＰＩＣＥ：Simulation Program with Integrated Circuit Emphasis）による測定結果（理想値）との間には計算誤差（遅延誤差）が生じる。このような遅延誤差は、ノードＡ，Ｂ間が短絡されている場合に、ノードＡ，Ｂ間のスキューが大きくなるほど顕著になる。換言すると、第２判定係数βの分母が大きくなるほど、つまり第２判定係数βが小さくなるほど、図７に示すように、上記遅延誤差は大きくなる。別の見方をすれば、ノードＡ，Ｂ間が短絡されている場合に、ノードＡ，Ｂ間のスキューが大きくなると、モデルベースでの遅延計算では遅延量を正しく計算することができない、と言える。このような場合には、上記タイミング解析において、少なくとも短絡箇所について演算量及び演算時間が膨大な上記回路シミュレーションを実施しなければならないため、ＴＡＴ（Turn Around Time）が増大してしまう。また、短絡箇所のみに回路シミュレーションを実施する場合には、短絡箇所を切り出す処理が必要となるため、処理が複雑になるという問題もある。
【００４０】
ここで、上述したように、第２判定係数βが小さくなるほど、遅延誤差が大きくなる。このため、例えばテクノロジルール（例えば、許容誤差など）に応じて第２判定係数βの下限値β１を設定することにより、遅延誤差を所望の範囲（許容誤差以内）に制限することができるようになる。すなわち、第２判定係数βの下限値β１を適切に設定し、その下限値β１よりも第２判定係数βが高くなる位置でノード間を短絡することにより、モデルベースでの遅延計算のみで上記タイミング解析を行うことができるようになる。そこで、本実施形態では、第２判定係数βを使用して短絡位置を決定するようにした。
【００４１】
なお、以下の説明では、上記モデルベースでの遅延計算を行うシステムをＥＤＡ（Electronic Design Automation）ツールと呼ぶ。
次に、上記第１判定係数αの上限値α１と第２判定係数βの下限値β１を設定する準備処理について図８及び図９に従って説明する。なお、この準備処理は、例えば新たなテクノロジを立ち上げる際などに、後述するスキュー調整処理に先立って実施される。
【００４２】
まず、図１に示す設計支援装置１０は、第１判定係数αの特性テーブル及び第２判定係数βの特性テーブルを抽出するために、係数抽出モデル（係数抽出用回路）を作成する（ステップＳ１１）。この係数抽出モデルは、図９に示すように、例えばクロックソースに接続された高駆動能力のクロックバッファ３１，３２とクロックバッファ（ドライバセル）３３，３４をそれぞれ接続し、それらドライバセル３３，３４にレシーバセル３５，３６をそれぞれ接続した回路である。このような係数抽出モデルは、クロックバッファ３１からドライバセル３３までの抵抗成分Ｒｅと、クロックバッファ３２からドライバセル３４までの抵抗成分Ｒｆと、ドライバセル３３，３４のドライバ抵抗Ｒａ，Ｒｂと、ノードＡ，Ｂ間を短絡した場合のノードＡ，Ｂ間の短絡抵抗Ｒｌとを様々に可変させた多数のバリエーションが作成される。ここで、抵抗成分Ｒｅとドライバ抵抗Ｒａを合算した抵抗値が上述したクロックソースからノードＡまでの抵抗成分ΣＲｃに相当し、抵抗成分Ｒｆとドライバ抵抗Ｒｂを合算した抵抗値が上述したクロックソースからノードＢまでの抵抗成分ΣＲｄに相当する。すなわち、本ステップでは、第１判定係数α及び第２判定係数βの値の組み合わせが様々に異なる係数抽出モデルが多数作成される。さらに、係数抽出モデルは、１つのバリエーション（第１判定係数α及び第２判定係数βの１つの組み合わせ）に対して、ノードＡ，Ｂ間を短絡した回路とノードＡ，Ｂ間を短絡しない回路とが作成される。
【００４３】
次に、上記作成した全ての係数抽出モデルにおいて、レシーバセル３５，３６（ノードＡ，Ｂ）におけるスキューが回路シミュレーション（例えば、ＳＰＩＣＥ）で測定される（ステップＳ１２）。この測定結果に基づいて、１つのバリエーション（第１判定係数αの１つの値）について、ノードＡ，Ｂ間を短絡しない回路で測定されたスキューと、ノードＡ，Ｂ間を短絡した回路で測定されたスキューとの差分を、ノードＡ，Ｂ間を短絡したことによるスキュー低減量として算出する。これにより、第１判定係数αの各値に対するスキュー低減量（スキュー低減効果）を求めることができ、第１判定係数αの各値に対するノードＡ，Ｂ間短絡後のスキュー量を求めることができる。
【００４４】
また、上記ステップＳ１２では、ノードＡ，Ｂ間を短絡した全ての係数抽出モデルにおいて、ノードＡ，Ｂ間に流れる貫通電流Ｉｐが回路シミュレーションで測定される。これにより、第１判定係数αの各値に対する貫通電流Ｉｐの大きさを求めることができる。
【００４５】
次に、設計支援装置１０は、上記ステップＳ１２における測定結果に基づいて、第１判定係数αと貫通電流Ｉｐとの関係、第１判定係数αとスキュー低減量との関係、及び第１判定係数αとノードＡ，Ｂ間短絡後のスキュー量との関係を表わした第１判定係数αの特性テーブルを作成する（ステップＳ１３）。この第１判定係数αの特性テーブルは、テクノロジ毎に作成される。なお、第１判定係数αと貫通電流との関係、第１判定係数αとスキュー低減量との関係を表わした特性テーブルをグラフ化すると、例えば図４に示すようなグラフとなる。
【００４６】
続いて、上記作成した係数抽出モデルのうちノードＡ，Ｂ間を短絡した全ての係数抽出モデルにおいて、クロックバッファ３１，３２からレシーバセル３５，３６（ノードＡ，Ｂ）までの遅延が回路シミュレーション（例えば、ＳＰＩＣＥ）で測定される（ステップＳ１４）。
【００４７】
次いで、上記作成した係数抽出モデルのうちノードＡ，Ｂ間を短絡した全ての係数抽出モデルにおいて、クロックバッファ３１，３２からレシーバセル３５，３６（ノードＡ，Ｂ）までの遅延がＥＤＡツールにより計算される（ステップＳ１５）。ここで、上記タイミング解析（ステップＳ４）で使用されるＥＤＡツールが複数存在する場合には、各ＥＤＡツール毎に遅延計算が実施される。これは、ＥＤＡツール毎に遅延誤差（計算誤差）が異なるため、それぞれのＥＤＡツールに対する遅延誤差を抽出するためである。
【００４８】
次に、設計支援装置１０は、１つのバリエーション（第２判定係数βの１つの値）について、上記ステップＳ１４で測定された遅延値に対する、上記ステップＳ１５で計算された遅延値の差を遅延誤差（計算誤差）として算出する（ステップＳ１６）。これにより、第２判定係数βの各値に対する遅延誤差の大きさを求めることができる。
【００４９】
続いて、設計支援装置１０は、上記ステップＳ１６における算出結果に基づいて、第２判定係数βと遅延誤差との関係を表わした第２判定係数βの特性テーブルを作成する（ステップＳ１７）。第２判定係数βの特性テーブルは、テクノロジ毎及びＥＤＡツール毎に作成される。なお、第２判定係数βの特性テーブルをグラフ化すると、例えば図７に示すようなグラフとなる。
【００５０】
次いで、設計支援装置１０は、上記第１判定係数αの特性テーブル及び第２判定係数βの特性テーブルに基づいて、第１判定係数αの上限値α１と第２判定係数βの下限値β１を設定する。具体的には、テクノロジルール（許容貫通電流、許容誤差やスキュー制約など）に応じて、上限値α１と下限値β１を設定する。より具体的には、貫通電流Ｉｐが許容貫通電流よりも小さくなり、且つノード間短絡後のスキュー量がスキュー制約を満たす第１判定係数αの値を上限値α１に設定するとともに、遅延誤差が許容誤差よりも小さくなる第２判定係数βの値を下限値β１に設定する。
【００５１】
そして、設計支援装置１０は、テクノロジ毎及びＥＤＡツール毎に設定された上限値α１及び下限値β１を記憶装置１３に格納する。
次に、上述のように設定された上限値α１及び下限値β１を利用したクロックツリー合成処理及びスキュー調整処理（ステップＳ３）の詳細を図１０〜図１３に従って説明する。
【００５２】
ステップＳ２１において、図１に示す設計支援装置１０は、制約条件４１、論理データ４２及び配置データ４３を図１に示す記憶装置１３から入力する。ここで、制約条件４１には、スキュー制約、第１判定係数αの上限値α１及び第２判定係数βの下限値β１が含まれている。
【００５３】
次に、ステップＳ２２において、設計支援装置１０は、入力した論理データ４２及び配置データ４３に基づいて、クロックツリー合成処理を実行し、一部のクロックパスを形成する。ここでは、図１１（ａ）に示すように、クロックソースに接続されるクロックバッファ（ドライバセル）５１，５２と、それらドライバセル５１，５２のレシーバセルとなるクロックバッファ５３，５４，５５，５６とが形成される。すなわち、クロックソースから、１段目のドライバセル５１，５２の次段のセル５３〜５６まで形成される。
【００５４】
続いて、設計支援装置１０は、上記ステップＳ２２で形成されたクロックパスの終端（クロックソースから離間する側）のドライバセル（ここでは、ドライバセル５１，５２）の全ての出力ノードａ，ｂ，ｃ，ｄ間の遅延差がスキュー制約以上であるか否かを判定する（ステップＳ２３）。詳述すると、設計支援装置１０は、まず、クロックソースから出力ノードａ，ｂ，ｃ，ｄまでの４つの経路（パス）の抵抗成分をそれぞれ求める。これにより、クロックソースから出力ノードａ〜ｄまでの遅延をそれぞれ求めることができる。次に、設計支援装置１０は、全ての出力ノードａ，ｂ，ｃ，ｄ間の遅延差がスキュー制約以上であるか否かをそれぞれ判定する。そして、設計支援装置１０は、出力ノード間の遅延差がスキュー制約以上である場合にスキュー調整が必要であると判定する。なお、ここでは、全ての出力ノードａ，ｂ，ｃ，ｄ間の遅延差がスキュー制約よりも小さいため（ステップＳ２３でＮＯ）、ステップＳ２２に戻る。
【００５５】
次に、ステップＳ２２において、設計支援装置１０は、クロックツリー合成処理を再度実行して次段のセルを形成する。ここでは、図１１（ｂ）に示すように、図１１（ａ）に示した回路の終端セルであるクロックバッファ５３〜５６がドライバセルになり、そのドライバセル５３〜５６のレシーバセルとなる次段のセル５７，５８，５９，６０，６１，６２が形成される。
【００５６】
続いて、ステップＳ２３において、設計支援装置１０は、ドライバセル５１〜５６のうち終端のドライバセル５３〜５６の全てのノードｅ，ｆ，ｇ，ｈ，ｉ，ｊ間の遅延差がスキュー制約以上であるか否かを判定する。ここでは、出力ノードｇ，ｈ間の遅延差がスキュー制約以上となり、その出力ノードｇ，ｈ間でスキュー調整が必要であると判定される（ステップＳ２３でＹＥＳ）。
【００５７】
次いで、ステップＳ２４において、設計支援装置１０は、出力ノードｇ，ｈにおける第１判定係数αを算出し、その第１判定係数αの値が上限値α１よりも大きいか否かを判定する。具体的には、設計支援装置１０は、クロックソースから出力ノードｇ，ｈまでのパスＰ１，Ｐ２における終端ドライバセル５１，５２のドライバ抵抗と、ノードｇ，ｈ間を接続する短絡配線の抵抗成分（短絡抵抗）とに基づいて、出力ノードｇ，ｈにおける第１判定係数αを算出する。そして、設計支援装置１０は、算出した第１判定係数αが上限値α１よりも大きい場合、つまり出力ノードｇ，ｈ間を短絡したときに生じる貫通電流が許容貫通電流よりも大きくなる場合には（ステップＳ２４でＹＥＳ）、パスＰ１，Ｐ２間のスキューを調整する（ステップＳ２５）。このスキュー調整では、例えば図１３に示すように、ドライバ抵抗に対する短絡抵抗の比率を小さくするために、ドライバセル５４をドライバ抵抗の大きいドライバセル５４ａに変更する。具体的には、短絡対象のパスＰ１，Ｐ２のうち出力ノードｇ，ｈにおける遅延値が小さいパス（ここでは、パスＰ１）の終端ドライバセル５４を変更する。これにより、出力ノードｇ，ｈ間におけるスキューを小さくすることができ、さらに出力ノードｇ，ｈにおける第１判定係数αを小さくすることができる。
【００５８】
このようなスキュー調整が行われると、図１１（ｂ）に示す終端のドライバセル５３〜５６の全てのノードｅ，ｆ，ｇ，ｈ，ｉ，ｊ間の遅延差がスキュー制約以上であるか否かが再度判定される（ステップＳ２３）。ここでは、前回と同じように、出力ノードｇ，ｈ間でスキュー調整が必要であると判定される。
【００５９】
続いて、ステップＳ２４において、出力ノードｇ，ｈにおける第１判定係数αが上限値α１以下であると判定されると（ステップＳ２４でＮＯ）、ステップＳ２６に移る。このステップＳ２６において、設計支援装置１０は、出力ノードｇ，ｈにおける第２判定係数βを算出し、その第２判定係数βの値が下限値β１よりも小さいか否かを判定する。具体的には、設計支援装置１０は、クロックソースからノードｇまでのパスＰ１の抵抗成分と、クロックソースからノードｈまでのパスＰ２の抵抗成分と、ノードｇ，ｈ間を接続する短絡配線の抵抗成分とに基づいて、出力ノードｇ，ｈにおける第２判定係数βを算出する。そして、設計支援装置１０は、算出した第２判定係数βが下限値β１よりも小さい場合、つまり出力ノードｇ，ｈ間を短絡したときの遅延誤差が許容誤差よりも大きくなる場合には（ステップＳ２６でＹＥＳ）、パスＰ１，Ｐ２間のスキューを調整する（ステップＳ２５）。この場合には、例えば出力ノードｇ，ｈにおける遅延差を小さくするように、各出力ノードｇ，ｈまでのパスＰ１，Ｐ２の抵抗成分を変更する。ここで、パスＰ１，Ｐ２の抵抗成分は、例えば図１３（ｂ）に示すように、タッピングポイントＴＰの変更やスネーク配線ＳＷの利用などにより調整することができる。このパスＰ１，Ｐ２の抵抗成分の変更により、出力ノードｇ，ｈ（図１１（ｂ）参照）間におけるスキューを小さくすることができ、さらに出力ノードｇ，ｈにおける第２判定係数βを大きくすることができる。
【００６０】
このようなスキュー調整が行われると、図１１（ｂ）に示す終端のドライバセル５３〜５６の全てのノードｅ，ｆ，ｇ，ｈ，ｉ，ｊ間の遅延差がスキュー制約以上であるか否かが再度判定される（ステップＳ２３）。そして、以上説明したステップＳ２３〜Ｓ２６の処理が、第１判定係数αが上限値α１以下、且つ第２判定係数βが下限値β１以上になるまで繰り返し実行される。
【００６１】
やがて、ステップＳ２６において、出力ノードｇ，ｈにおける第２判定係数βが下限値β１以上であると判定されると（ステップＳ２６でＮＯ）、ステップＳ２７に移る。このステップＳ２７において、設計支援装置１０は、出力ノードｇと出力ノードｈを接続する短絡配線を形成する。すなわち、第１判定係数α及び第２判定係数βが保証範囲（上限値α１及び下限値β１）内に収まったところで出力ノードｇ，ｈが短絡される。これにより、この出力ノードｇ，ｈの短絡により生じる貫通電流を許容貫通電流よりも小さくできるとともに、短絡後の出力ノードｇ，ｈにおけるスキューがスキュー制約を満たすようになる。さらに、遅延誤差を許容誤差よりも小さくできる。
【００６２】
上記出力ノードｇ，ｈ間の短絡が終了するとステップＳ２２に戻って、クロックツリー合成処理が再度実行されて次段のセルが形成される。ここでは、図１２（ａ）に示すように、図１１（ｂ）に示した回路の終端セルであるクロックバッファ５７，５８，６０〜６２がドライバセルになり、そのドライバセル５７，５８，６０〜６２のレシーバセルとなる次段のセル６３，６４，６５，６６，６７が形成される。続いて、この図１２（ａ）に示した回路に対して上記ステップＳ２３〜Ｓ２７の処理が実行される。これにより、本例では、出力ノードｋ，ｌ間及び出力ノードｍ，ｏ間が短絡される。なお、このときのステップＳ２３〜Ｓ２７では、上記短絡した出力ノードｇ，ｈ間のスキューを０とみなして処理が実行される。その後、ステップＳ２２に戻って、図１２（ｂ）に示すように、ドライバセル６５のレシーバセルとなるセル６８が形成されると、クロック信号ＣＬＫが複数のクロックバッファ５１〜５８，６０〜６２，６５により６つのＦＦ回路５９〜６３，６４，６６〜６８に伝達されるクロックツリーが形成される。
【００６３】
以上のように、本実施形態のクロックツリー合成処理及びスキュー調整処理では、ドライバセルに対するレシーバセルを１段形成する毎に、スキュー調整の必要な箇所を探索するとともに、適切な短絡位置を探索して出力ノード間を短絡する。
【００６４】
なお、本実施形態において、遅延Ｄａは第１遅延の一例、遅延Ｄｂは第２遅延の一例、上限値α１は第１閾値の一例、下限値β１は第２閾値の一例、ステップＳ２３〜Ｓ２７は「出力ノード間を短絡するステップ」の一例である。
【００６５】
以上説明した本実施形態によれば、以下の効果を奏することができる。
（１）第１判定係数αに基づいて、貫通電流及びスキューが保証範囲（許容貫通電流及びスキュー制約）内になるように、出力ノード間を短絡する短絡箇所を決定するようにした。これにより、出力ノード間を短絡することによるスキュー低減効果を十分に得ることができ、さらに出力ノード間を短絡することによって生じる貫通電流の増大を抑制することができる。
【００６６】
（２）第２判定係数βに基づいて、遅延誤差が保証範囲（許容誤差）内になるように、出力ノード間を短絡する短絡箇所を決定するようにした。これにより、出力ノード間を短絡することによる遅延誤差の増大を抑制することができる。したがって、出力ノード間を短絡した場合であっても、ＥＤＡツールでのタイミング解析によって遅延値を正しく演算することができる。このため、出力ノード間を短絡した箇所がある場合にも、回路シミュレーションを行わずに、ＥＤＡツールのみでのタイミング解析を実現することができる。これにより、設計効率を向上させることができ、ＴＡＴの増大を抑制することができる。さらに、短絡箇所のみ切り出して回路シミュレーションを行う場合と比べて、タイミング解析の処理を単純化することができる。
【００６７】
（３）クロックツリーを形成する際にセルを１段形成する毎に、スキュー調整の必要な箇所を探索するとともに、適切な短絡位置を探索して出力ノード間を短絡するようにした。これにより、スキュー調整を行いながらクロックツリーを形成することができる。したがって、クロックツリー形成後にクロックバッファ挿入などのタイミング調整を比較的行わずとも、タイミング制約を満たすことができるようになる。この結果、バッファ挿入などに伴うレイアウト面積や消費電力の増加を抑制することができる。
【００６８】
（４）出力ノード間の短絡、ドライバセルのドライバ抵抗の変更、タッピングポイントＴＰの変更やスネーク配線の利用などのように抵抗成分の変更のみでスキュー調整を行うようにした。これにより、バッファ挿入などによりスキュー調整を行う場合と比べて、バッファ挿入に伴うレイアウト面積や消費電力の増加を抑制することができる。
【００６９】
（５）抵抗成分のみで求めることのできる第１判定係数α及び第２判定係数βを利用して、出力ノード間を短絡する短絡箇所を決定するようにした。これにより、最適な短絡箇所を探索する際に、抵抗成分のみを考慮すれば良いため、余計な計算コストがかからない。すなわち、回路シミュレーションやモデルベースでの遅延計算などを行う必要がなく、抵抗成分を求めるという簡易的な演算によって最適な短絡箇所を探索することができる。
【００７０】
（６）図１４（ａ）に示すように、出力ノードＡ，Ｂ間を短絡していない場合のノードＡ，Ｂにおけるスキューは、トランジスタの特性ばらつきや動作温度変化などの影響を受けてばらつきが生じる。これに対して、図１４（ｂ）に示すように、出力ノードＡ，Ｂ間を短絡することにより、ノードＡ，Ｂ間におけるスキューのばらつきを抑制することができる。
【００７１】
（他の実施形態）
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態では、第２判定係数βを抵抗成分のみで表現した値にした。これに限らず、例えば第２判定係数βを抵抗成分と容量成分で表現した値に変更してもよい。すなわち、クロックソースから出力ノードＡまでの遅延Ｄａと、クロックソースから出力ノードＢまでの遅延Ｄｂと、出力ノードＡ，Ｂ間の遅延Ｄｌとを、抵抗成分及び容量成分を考慮して算出するようにしてもよい。
【００７２】
・上記実施形態のスキュー調整処理（ステップＳ２３〜Ｓ２７）では、抵抗成分の変更のみでスキュー調整を行うようにしたが、これに限らず、例えばバッファ挿入などによりスキュー調整を行うようにしてもよい。
【００７３】
・上記実施形態では、クロックツリー合成処理を行いながらスキュー調整処理を行うようにした。すなわち、クロックツリーを形成する際にセルを１段形成する毎に、スキュー調整の必要な箇所を探索するとともに、適切な短絡位置を探索して出力ノード間を短絡するようにした。これに限らず、例えばクロックツリー合成処理の終了後、つまりクロックツリー完成後に、上記説明したスキュー調整処理（ステップＳ２３〜Ｓ２７）と同様の処理を実行するようにしてもよい。
【００７４】
・上記実施形態では、短絡箇所を決定する際に第１判定係数αと第２判定係数βを使用するようにした。これに限らず、例えば第１判定係数αのみを使用して短絡箇所を決定するようにしてもよい。この場合には、図８に示すステップＳ１４〜Ｓ１７及び図１０に示すステップＳ２６の処理を省略することができる。
【符号の説明】
【００７５】
１０  設計支援装置
１１  中央処理装置
１３  記憶装置
α  第１判定係数
β  第２判定係数
α１  上限値
β１  下限値
Ｐ１，Ｐ２  パス
２１，２２  ドライバセル
２３  短絡配線
Ｉｐ  貫通電流
Ｒａ，Ｒｂ  ドライバ抵抗
Ｒｌ  短絡抵抗
Ｄａ，Ｄｂ  遅延
Ｄｌ  遅延
ＣＬＫ  クロック信号
【図１】
2013058098.tif 000012
【図２】
2013058098.tif 000013
【図３】
2013058098.tif 000014
【図４】
2013058098.tif 000015
【図５】
2013058098.tif 000016
【図６】
2013058098.tif 000017
【図７】
2013058098.tif 000018
【図８】
2013058098.tif 000019
【図９】
2013058098.tif 000020
【図１０】
2013058098.tif 000021
【図１１】
2013058098.tif 000022
【図１２】
2013058098.tif 000023
【図１３】
2013058098.tif 000024
【図１４】
2013058098.tif 000025
【図１５】
2013058098.tif 000026