(57)【要約】【課題】電源ノイズによる遅延変動の少ない半導体装置を設計する際の設計期間の増加を防ぐ。【解決手段】プロセッサ２が、半導体装置内の配線７と配線８間で生じる信号ノイズに基づく、配線７を伝搬する信号の伝搬遅延の変動量を、半導体装置のレイアウトの１または複数の修正候補（レイアウトｂ，ｃ）に対応して１または複数算出する。また、プロセッサ２が、半導体装置で発生する電源ノイズに基づく、伝搬遅延の増加量を算出し、１または複数算出した上記の変動量から、上記増加量を減少させる第１の変動量を選択し、１または複数の修正候補のうち、第１の変動量に対応する修正候補を用いてレイアウトの修正を行う。【選択図】図１
2016110490.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の設計を行う設計方法であって、
プロセッサが、前記半導体装置内の第１の配線と第２の配線間で生じる信号ノイズに基づく、前記第１の配線を伝搬する信号の伝搬遅延の変動量を、前記半導体装置のレイアウトの１または複数の修正候補に対応して１または複数算出し、
前記プロセッサが、前記半導体装置で発生する電源ノイズに基づく、前記伝搬遅延の増加量を算出し、
前記プロセッサが、１または複数算出した前記変動量から、前記増加量を減少させる第１の変動量を選択し、
前記プロセッサが、前記１または複数の修正候補のうち、前記第１の変動量に対応する第１の修正候補を用いて前記レイアウトの修正を行う、
ことを特徴とする設計方法。
【請求項２】
前記１または複数の修正候補は、前記レイアウトよりも前記第１の配線と前記第２の配線との距離が短い第１のレイアウト、または、前記レイアウトよりも前記第１の配線に対して平行に配置されている前記第２の配線の第１の部分の長さが長い第２のレイアウトを含む、ことを特徴とする請求項１に記載の設計方法。
【請求項３】
前記プロセッサは、前記レイアウトにおける前記第１の配線と前記第２の配線との間に、第３の配線が配置されているか否か、または配線の配置を制限する制限領域が設定されているか否かを判定し、前記第３の配線が配置されていない、または前記制限領域が設定されていないときに、前記第１のレイアウトを前記１または複数の修正候補の１つとする、ことを特徴とする請求項２に記載の設計方法。
【請求項４】
前記プロセッサは、前記レイアウトにおける前記第２の配線の前記第１の部分の延長方向の領域に、第３の配線が配置されているか否か、または配線の配置を制限する制限領域が設定されているか否かを判定し、前記第３の配線が配置されていない、または前記制限領域が設定されていないときに、前記第２のレイアウトを前記１または複数の修正候補の１つとする、ことを特徴とする請求項２に記載の設計方法。
【請求項５】
半導体装置の設計装置であって、
前記半導体装置内の第１の配線と第２の配線間で生じる信号ノイズに基づく、前記第１の配線を伝搬する信号の伝搬遅延の変動量を、前記半導体装置のレイアウトの１または複数の修正候補に対応して１または複数算出する遅延変動量算出部と、
前記半導体装置で発生する電源ノイズに基づく、前記伝搬遅延の増加量を算出する遅延増加量算出部と、
前記遅延変動量算出部が１または複数算出した前記変動量から、前記増加量を減少させる第１の変動量を選択する遅延変動量選択部と、
前記１または複数の修正候補のうち、前記第１の変動量に対応する第１の修正候補を用いて前記レイアウトの修正を行うレイアウト修正部と、
を有することを特徴とする設計装置。
【請求項６】
半導体装置の設計を行うプログラムであって、
前記半導体装置内の第１の配線と第２の配線間で生じる信号ノイズに基づく、前記第１の配線を伝搬する信号の伝搬遅延の変動量を、前記半導体装置のレイアウトの１または複数の修正候補に対応して１または複数算出し、
前記半導体装置で発生する電源ノイズに基づく、前記伝搬遅延の増加量を算出し、
１または複数算出した前記変動量から、前記増加量を減少させる第１の変動量を選択し、
前記１または複数の修正候補のうち、前記第１の変動量に対応する第１の修正候補を用いて前記レイアウトの修正を行う、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計方法、設計装置及びプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated circuit）チップ（以下単にチップと呼ぶ）では、ノイズ起因による電圧変動や信号波形の変動によって、配線を伝搬する信号の伝搬遅延が変動する可能性がある。そこで、チップの設計段階でこのような伝搬遅延の変動に対する検証が行われ、その１つとして、ＤｖＤ（Dynamic voltage Drop）検証がある。
【０００３】
ＤｖＤ検証では、電源ノイズによる電圧降下が生じた場合でも、チップ内の配線を伝搬する信号の伝搬遅延が増加して誤動作が起きないか確認される。ＤｖＤ検証の際には、たとえば、電源ノイズによる遅延変動量の許容値が設定され、遅延変動量が許容値を超える場合には、電力を削減したり、容量セルを挿入したりするなどのレイアウトデータの修正が行われる。
【０００４】
また、チップの設計の際、信号ノイズ（クロストークノイズとも呼ばれる）による遅延特性の変動を考慮して、ＳＴＡ（Static Timing Analysis）が実行される。ＳＴＡでは、チップ内における配線の、抵抗、容量についての情報と、トランジスタの出力波形の情報から信号ノイズによる遅延変動が考慮され、期待した動作が実現されているか確認される。期待した動作が実現できない場合、トランジスタの出力波形の改善や、配線間容量（カップリング容量）の削減などのレイアウトデータの修正が行われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２５０６３０号公報
【特許文献２】特開２００８−２３５４４０号公報
【特許文献３】特開２００６−１５５１２０号公報
【特許文献４】特開２００６−２５９９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ＤｖＤ検証は、レイアウト終盤で行われるため、電源ノイズによる遅延変動量が許容値を超える場合には、ノイズ抑制のための容量セルを挿入しようとしても配置できるスペースがない可能性がある。その場合、レイアウトのし直しなど設計工程が繰り返され、設計期間が長くなってしまう。
【０００７】
つまり、電源ノイズによる遅延変動の少ない半導体装置を設計するためには、設計期間が長くなってしまう可能性があるという問題がある。
【課題を解決するための手段】
【０００８】
発明の一観点によれば、半導体装置の設計を行う設計方法であって、プロセッサが、前記半導体装置内の第１の配線と第２の配線間で生じる信号ノイズに基づく、前記第１の配線を伝搬する信号の伝搬遅延の変動量を、前記半導体装置のレイアウトの１または複数の修正候補に対応して１または複数算出し、前記プロセッサが、前記半導体装置で発生する電源ノイズに基づく、前記伝搬遅延の増加量を算出し、前記プロセッサが、１または複数算出した前記変動量から、前記増加量を減少させる第１の変動量を選択し、前記プロセッサが、前記１または複数の修正候補のうち、前記第１の変動量に対応する第１の修正候補を用いて前記レイアウトの修正を行う、設計方法が提供される。
【０００９】
また、発明の一観点によれば、半導体装置の設計装置であって、前記半導体装置内の第１の配線と第２の配線間で生じる信号ノイズに基づく、前記第１の配線を伝搬する信号の伝搬遅延の変動量を、前記半導体装置のレイアウトの１または複数の修正候補に対応して１または複数算出する遅延変動量算出部と、前記半導体装置で発生する電源ノイズに基づく、前記伝搬遅延の増加量を算出する遅延増加量算出部と、前記遅延変動量算出部が１または複数算出した前記変動量から、前記増加量を減少させる第１の変動量を選択する遅延変動量選択部と、前記１または複数の修正候補のうち、前記第１の変動量に対応する第１の修正候補を用いて前記レイアウトの修正を行うレイアウト修正部と、を有する設計装置が提供される。
【００１０】
また、発明の一観点によれば、半導体装置の設計を行うプログラムであって、前記半導体装置内の第１の配線と第２の配線間で生じる信号ノイズに基づく、前記第１の配線を伝搬する信号の伝搬遅延の変動量を、前記半導体装置のレイアウトの１または複数の修正候補に対応して１または複数算出し、前記半導体装置で発生する電源ノイズに基づく、前記伝搬遅延の増加量を算出し、１または複数算出した前記変動量から、前記増加量を減少させる第１の変動量を選択し、前記１または複数の修正候補のうち、前記第１の変動量に対応する第１の修正候補を用いて前記レイアウトの修正を行う、処理をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１１】
開示の設計方法、設計装置及びプログラムによれば、半導体装置の設計期間の増加を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の設計方法の一例を示す図である。
【図２】第１の実施の形態の設計装置の一例の機能ブロック図である。
【図３】第２の実施の形態の設計装置の一例を示す図である。
【図４】第２の実施の形態の設計方法の一例の処理の流れを示すフローチャートである。
【図５】Ｘｔａｌｋによる伝搬遅延の変動情報の一例を示す図である。
【図６】ＤｖＤによる伝搬遅延の変動情報の一例を示す図である。
【図７】Ｘｔａｌｋ計算の対象回路の一例を示す図である。
【図８】Ｘｔａｌｋ計算結果の一例を示す図である。
【図９】レイアウト修正情報を生成する処理の一例の流れを示すフローチャートである。
【図１０】ステップＳ３５の判定処理の一例の流れを示すフローチャートである。
【図１１】アグレッサネットをネットに近づけられるレイアウトの一例を示す図である。
【図１２】アグレッサネットをネットに近づけられないレイアウトの一例を示す図である。
【図１３】ネットに対するアグレッサネットの平行配線長を増やせるレイアウトの一例を示す図である。
【図１４】ネットに対するアグレッサネットの平行配線長を増やせないレイアウトの一例を示す図である。
【図１５】レイアウト修正情報の一例を示す図である。
【図１６】１つ目のレイアウト修正例を示す図である。
【図１７】２つ目のレイアウト修正例を示す図である。
【図１８】モニタにおける表示例を示す図である。
【図１９】チップに含まれる回路の一例を示す図である。
【図２０】図１９に示したような回路におけるネットを伝搬する信号の一例とＤｖＤの発生例を示す図である。
【図２１】チップに含まれる回路の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の設計方法の一例を示す図である。
【００１４】
また、図２は、第１の実施の形態の設計装置の一例の機能ブロック図である。
設計装置１は、たとえば、コンピュータであり、プロセッサ２と記憶部３を有している。プロセッサ２は、記憶部３に記憶されているデータ及びプログラムに基づき、図２に示すような、遅延変動量算出部１０、遅延増加量算出部１１、遅延変動量選択部１２、レイアウト修正部１３の機能を実現する。記憶部３は、プロセッサ２が実行するプログラムや、半導体装置の設計データなどの各種データを記憶する。
【００１５】
以下、図２の設計装置１における機能ブロックの各機能を説明する。
遅延変動量算出部１０は、半導体装置内の配線間で生じるクロストークノイズに基づく、信号の伝搬遅延の変動量（以下Ｘｔａｌｋによる伝搬遅延の変動量という）を、半導体装置のレイアウトの１または複数の修正候補に対応して、１または複数算出する。後述するようにＸｔａｌｋによる伝搬遅延の変動量は、レイアウトによって伝搬遅延が減少する値となる場合や、伝搬遅延が増加する値となる場合がある。
【００１６】
遅延増加量算出部１１は、半導体装置で発生する電源ノイズに基づく、伝搬遅延の増加量（以下ＤｖＤによる伝搬遅延の増加量という）を算出する。
遅延変動量選択部１２は、遅延変動量算出部１０が１または複数算出したＸｔａｌｋによる伝搬遅延の変動量から、ＤｖＤによる伝搬遅延の増加量を減少させる変動量を選択する。
【００１７】
レイアウト修正部１３は、レイアウトの１または複数の修正候補のうち、遅延変動量選択部１２が選択した変動量に対応する修正候補を用いてレイアウト修正を行う。
以下、上記のような設計装置１を用いた設計方法の一例を、図１を用いて説明する。なお、前述したように図２の遅延変動量算出部１０、遅延増加量算出部１１、遅延変動量選択部１２、レイアウト修正部１３の機能は、プロセッサ２により実現されるため、以下では各処理の主体を、プロセッサ２として説明する。
【００１８】
まず、プロセッサ２は、Ｘｔａｌｋによる伝搬遅延の変動量を、１または複数の修正候補に対応して複数算出する（ステップＳ１）。
図１には、セル５，６（図１の例ではバッファ）間を結ぶ配線７で生じるＸｔａｌｋによる伝搬遅延の変動量の例が示されている。配線７に対して平行に配線８が配置されており、配線７と配線８との間に容量Ｃ１（カップリング容量）が形成されている。Ｘｔａｌｋによって、この容量Ｃ１の大きさに応じた伝搬遅延の変動量が生じる。
【００１９】
図１の例では、レイアウトａで生じるＸｔａｌｋによる伝搬遅延の変動量は−０．０５ｎｓとしている。ここで、“−”は、変動量が伝搬遅延を減少させる値であることを示している。このような伝搬遅延の減少が生じる理由としては、配線７を伝搬する信号の論理レベルがＬ（Low）レベルからＨ（High）レベルに遷移する際、配線８を伝搬する信号の論理レベルの遷移の影響を受け、遷移速度が速まる場合があることがあげられる。Ｘｔａｌｋによる伝搬遅延は、たとえば、配線７，８の間の距離が短くなり容量値が大きくなると、配線７を伝搬する信号が配線８を伝搬する信号の影響をより強く受けるため、より減少する。
【００２０】
図１の例では、レイアウトａよりも、配線８を配線７に近づけたレイアウトｂの場合、配線７，８間の容量Ｃ２は、容量Ｃ１よりも大きな容量値をもつ。図１の例では、レイアウトｂでの容量Ｃ２の影響で生じるＸｔａｌｋによる伝搬遅延の変動量は、−０．１ｎｓとしている。
【００２１】
さらに、配線８を配線７に近づけたレイアウトｃの場合は、配線７，８間の容量Ｃ３は、容量Ｃ２よりもさらに大きな容量値をもつ。図１の例では、レイアウトｃでの容量Ｃ３の影響で生じるＸｔａｌｋによる伝搬遅延の変動量は、−０．２ｎｓとしている。
【００２２】
ステップＳ１の処理では、たとえば、レイアウトａを元のレイアウトとした場合、プロセッサ２は、レイアウトｂ，ｃのようなレイアウトの修正候補に対応したＸｔａｌｋによる伝搬遅延の変動量を算出する。このような計算は、たとえば、ネット（配線）ごとに行われ、計算結果は、記憶部３に記憶される。
【００２３】
次に、プロセッサ２は、ＤｖＤによる伝搬遅延の増加量を算出する（ステップＳ２）。
ＤｖＤが生じると、伝搬遅延は増加する。プロセッサ２は、たとえば、セルごとに、ＤｖＤによる伝搬遅延の増加量を算出する。図１の例では、セル５においてＤｖＤによる伝搬遅延の変動量が＋０．２ｎｓであることが示されている。ここで、“＋”は、変動量が伝搬遅延を増加させる値であることを示している。ＤｖＤによる伝搬遅延の変動量の計算結果も、たとえば、記憶部３に記憶される。
【００２４】
その後、プロセッサ２は、ステップＳ１の処理で算出したＸｔａｌｋによる伝搬遅延の変動量から、ＤｖＤによる伝搬遅延の増加量を減少させる変動量を選択する（ステップＳ３）。Ｘｔａｌｋによる伝搬遅延の変動量は、マイナスの値以外に、プラスの値となる場合もあるが、プロセッサ２は、ＤｖＤによる伝搬遅延の増加量を減少させるマイナスの値を選択する。たとえば、上記のようにセル５において、ＤｖＤによる伝搬遅延の変動量が＋０．２ｎｓであるとき、Ｘｔａｌｋによる伝搬遅延の変動量として、プロセッサ２は、−０．２ｎｓを選択すれば、ＤｖＤによる伝搬遅延の増加分を打ち消すことができる。
【００２５】
そして、プロセッサ２は、複数のレイアウトの修正候補のうち、選択した変動量に対応する修正候補を用いてレイアウト修正を行う（ステップＳ４）。
たとえば、プロセッサ２は、ステップＳ４の処理で、変動量＝−０．２ｎｓを選択した場合、その変動量に対応したレイアウトｃを適用して、レイアウト修正を行う。
【００２６】
なお、ステップＳ１，Ｓ２の順序は逆であってもよい。
以上のような、設計方法及び設計装置１では、伝搬遅延がＸｔａｌｋによって減少するレイアウトを用いて、ＤｖＤによる伝搬遅延の増加分を減らすことができるようにしたため、ＤｖＤ対策用の容量素子を追加する工程などの手間が少なくなる。そのため、容量素子を追加する際に、容量素子を配置するスペースがなくて再レイアウトするなどの手戻りの発生が抑制され、設計期間の増加を抑制できる。
【００２７】
（第２の実施の形態）
以下、第２の実施の形態の設計方法及び設計装置の一例を示す。
図３は、第２の実施の形態の設計装置の一例を示す図である。
【００２８】
設計装置は、たとえば、コンピュータ２０であり、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００３０】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００３１】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３２】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３３】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３４】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３５】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３６】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３７】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、図１に示した第１の実施の形態の設計装置１も、図３に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００３８】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３９】
（設計方法の一例）
図４は、第２の実施の形態の設計方法の一例の処理の流れを示すフローチャートである。
【００４０】
コンピュータ２０において、プロセッサ２１は、ＨＤＤ２３に格納されたプログラムを読み出してＲＡＭ２２上に展開して、たとえば、図４に示すような各ステップの処理を実行する。
【００４１】
以下に示す設計方法は、Ｘｔａｌｋ検証と、ＤｖＤ検証とを含む。まず、Ｘｔａｌｋ検証を説明する。なお、図４の各ステップは下記の順序に限定されず、適宜入れ替えてもよい。
【００４２】
（Ｘｔａｌｋ検証）
プロセッサ２１は、Ｘｔａｌｋ検証を開始すると、たとえば、ＨＤＤ２３に記憶されているチップレイアウト情報３０、配線ＲＣ情報３１、ライブラリ３２などの設計情報を取得する（ステップＳ１０）。
【００４３】
チップレイアウト情報３０は、チップにおけるセルや配線の位置や大きさなどのレイアウトに関する情報である。
配線ＲＣ情報３１は、配線抵抗や配線容量に関する情報である。
【００４４】
ライブラリ３２は、Ｘｔａｌｋによる伝搬遅延の変動情報とＤｖＤによる伝搬遅延の変動情報を含む。
図５は、Ｘｔａｌｋによる伝搬遅延の変動情報の一例を示す図である。
【００４５】
Ｘｔａｌｋによる伝搬遅延の変動情報は、たとえば、図５のようなテーブル３２ａで表される。テーブル３２ａには、セル（ｃｅｌｌＡ，ｃｅｌｌＢ，ｃｅｌｌＣ）ごとに、そのセルが駆動するネットに生じるカップリング容量と、そのカップリング容量によって生じる伝搬遅延の変動量の情報が含まれる。たとえば、図５では、ｃｅｌｌＡが駆動するネットに生じるカップリング容量の値が１ｆＦのとき、伝搬遅延の変動量は−０．１ｎｓｅｃであり、カップリング容量の値が２ｆＦのとき、伝搬遅延の変動量は−０．２ｎｓｅｃであることが示されている。
【００４６】
このようなＸｔａｌｋによる伝搬遅延の変動情報は、シミュレーションで予め計算される。たとえば、プロセッサ２１は、セルに対する入力波形を変化させて、セルが駆動するネットのカップリング容量の影響による出力波形の変化から、そのカップリング容量に起因する伝搬遅延の変動量を求める。
【００４７】
図６は、ＤｖＤによる伝搬遅延の変動情報の一例を示す図である。
ＤｖＤによる伝搬遅延の変動情報は、たとえば、図６のようなテーブル３２ｂで表される。テーブル３２ｂには、セル（ｃｅｌｌＡ，ｃｅｌｌＢ，ｃｅｌｌＣ）ごとに、そのセルで生じる電圧降下と、その電圧降下によって生じる伝搬遅延の変動量の情報が含まれる。たとえば、図６では、ｃｅｌｌＡで生じる電圧降下の値は０．１Ｖであり、伝搬遅延の変動量は＋０．２ｎｓｅｃであることが示されている。
【００４８】
このようなＤｖＤによる伝搬遅延の変動情報も、シミュレーションで予め計算される。たとえば、プロセッサ２１は、セルの情報、配線情報、ＤｖＤによる電圧降下の値を含む電源電圧情報、入力波形情報に基づき、ＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）シミュレーションを実行する。これによりＤｖＤによる電圧降下の値に対応した伝搬遅延の変動量が算出される。
【００４９】
ステップＳ１０の処理では、プロセッサ２１は、以上のような設計情報を取得する。
その後、プロセッサ２１は、設計情報に基づき、各セルにおける入力と出力の波形を計算し（ステップＳ１１）、計算した波形に基づき、Ｘｔａｌｋを計算する（ステップＳ１２）。
【００５０】
ステップＳ１２の処理では、プロセッサ２１は、チップ上の各ネットに対して隣接する他のネット（以下アグレッサネットという）を特定する。そして、プロセッサ２１は、設計情報からネットとアグレッサネット間のカップリング容量を抽出し、ネットを伝搬する信号の波形の遷移開始から遷移終了までの時間のカップリング容量に起因する変動量を、Ｘｔａｌｋによる伝搬遅延の変動量として計算する。
【００５１】
図７は、Ｘｔａｌｋ計算の対象回路の一例を示す図である。
図７に示す回路４０は、セル４１，４２を有しており、セル４１の出力端子とセルの４２の入力端子との間にネット４３が接続されている。またセル４２の出力端子には、ネット４４が接続されている。
【００５２】
さらに、ネット４３に隣接してネット４５，４６，４７が配置されている。これらのネット４５〜４７が、ネット４３に対するアグレッサネットとなる。また、ネット４４に隣接してネット４８が配置されている。ネット４８は、ネット４４に対するアグレッサネットとなる。
【００５３】
このような回路４０では、カップリング容量として、ネット４３，４５間に容量Ｃ１０、ネット４３，４６間に容量Ｃ１１、ネット４３，４７間に容量Ｃ１２、ネット４４，４８間に容量Ｃ１３が形成される。
【００５４】
図８は、Ｘｔａｌｋ計算結果の一例を示す図である。
Ｘｔａｌｋ計算結果５０には、図７のセル４１（セル名：ｃｅｌｌＡ）が駆動するネット４３（ネット名：ｎｅｔＡ）と、そのアグレッサネットであるネット４５，４６，４７（アグレッサネット名：ａｇｎｅｔＡ，ａｇｎｅｔＣ，ａｇｎｅｔＤ）が示されている。さらに、ネット４３とネット４５〜４７間に形成されるカップリング容量である容量Ｃ１０〜Ｃ１２の値（単位はｆＦ）と、容量Ｃ１０〜Ｃ１２に起因する伝搬遅延の変動量（単位はｎｓｅｃ）が示されている。また、図７のセル４２（セル名：ｃｅｌｌＢ）が駆動するネット４４（ネット名：ｎｅｔＢ）と、そのアグレッサネットであるネット４８（アグレッサネット名：ａｇｎｅｔＢ）が示されている。さらに、ネット４４とネット４８間に形成されるカップリング容量である容量Ｃ１３の値と、容量Ｃ１０〜Ｃ１２に起因する伝搬遅延の変動量が示されている。
【００５５】
なお、図８の例では、伝搬遅延の変動量は、各カップリング容量の値に対して２つ示されている。一方の値は、伝搬遅延を減少させる値であり、マイナスの値として示されている。他方の値は、伝搬遅延を増加させる値であり、プラスの値として示されている。同一ネット間で生じるＸｔａｌｋであっても、ステップＳ１１の処理で計算された波形によっては、マイナスの値とプラスの値の両方をもつ場合もある。
【００５６】
プロセッサ２１は、Ｘｔａｌｋ計算後、レイアウト修正情報３３を生成する（ステップＳ１３）。
レイアウト修正情報３３は、元のレイアウトを修正した複数のレイアウトに対応した複数の、Ｘｔａｌｋによる伝搬遅延の変動量の情報を含んでいる。
【００５７】
以下、レイアウト修正情報３３の生成処理を説明する。
図９は、レイアウト修正情報を生成する処理の一例の流れを示すフローチャートである。
【００５８】
レイアウト修正情報の生成処理が開始すると、プロセッサ２１は、たとえば、ＨＤＤ２３に記憶されたＸｔａｌｋ計算結果を読み出し（ステップＳ３０）、チップの全ネットから１つのネットを選択する（ステップＳ３１）。そして、プロセッサ２１は、選択したネットに対する全アグレッサネットを抽出し（ステップＳ３２）、その後、１つのアグレッサネットを選択する（ステップＳ３３）。プロセッサ２１は、選択したアグレッサネットにより伝搬遅延が減少するＸｔａｌｋが発生するか否かを判定する（ステップＳ３４）。
【００５９】
ステップＳ３４の処理では、プロセッサ２１は、たとえば、図７に示した回路４０に対して計算された、図８に示したようなＸｔａｌｋ計算結果５０に基づき判定を行う。
図７、図８の例では、ネット４３（ネット名：ｎｅｔＡ）に対するアグレッサネットであるネット４５，４６（アグレッサネット名：ａｇｎｅｔＡ，ａｇｎｅｔＣ）に対応づけられた伝搬遅延の変動量は、伝搬遅延を減少させるものを含む。
【００６０】
ただし、ネット４５に対応づけられた伝搬遅延の変動量は、伝搬遅延を増加させる変動量も含むため、ステップＳ３４の処理では、プロセッサ２１は、このようなネット４５に対しては、伝搬遅延が減少するＸｔａｌｋが発生しないと判定してもよい。本実施の形態の設計方法は、Ｘｔａｌｋによる伝搬遅延の減少を利用して、ＤｖＤによる伝搬遅延の増加を抑えるものであるため、伝搬遅延を増加させる可能性のあるアグレッサネットはレイアウト修正候補の対象外となる。
【００６１】
プロセッサ２１は、選択したアグレッサネットにより伝搬遅延が減少するＸｔａｌｋが発生すると判定したときには、ステップＳ３５の処理を行い、伝搬遅延が減少するＸｔａｌｋが発生しないと判定したときには、ステップＳ４０の処理を行う。
【００６２】
ステップＳ３５の処理では、プロセッサ２１は、選択したアグレッサネットをステップＳ３１の処理で選択したネットに近づけられるか否かを判定する。
アグレッサネットをネットに近づけるレイアウト修正を行うことで、カップリング容量が大きくなり、ネットを伝搬する信号が、アグレッサネットを伝搬する信号の影響をより強く受ける。これにより、Ｘｔａｌｋによる伝搬遅延の変動量（減少量）を増やすことができ、ＤｖＤによる伝搬遅延の増加量をより抑制することができる。そこで、このような修正が可能か判定するために、ステップＳ３５の判定処理が行われる。
【００６３】
ステップＳ３５の判定処理は、たとえば、以下のように行われる。
図１０は、ステップＳ３５の判定処理の一例の流れを示すフローチャートである。
プロセッサ２１は、チップレイアウト情報３０から、ステップＳ３３の処理で選択したアグレッサネットの配線座標と、ステップＳ３１の処理で選択したネットの配線座標を抽出する（ステップＳ５０，Ｓ５１）。
【００６４】
そして、プロセッサ２１は、アグレッサネットとネットの配線座標とチップレイアウト情報３０に基づき、アグレッサネットと同じ層に配線（以下同層配線という）があるか否かを判定する（ステップＳ５２）。プロセッサ２１は、同層配線があると判定したときにはステップＳ５３の処理を行い、同層配線がないと判定したときにはステップＳ５６の処理を行う。
【００６５】
ステップＳ５３の処理では、プロセッサ２１は、アグレッサネットとネット間に同層配線があるか否かを判定し、同層配線がないと判定したときにはステップＳ５４の処理を行う。
【００６６】
ステップＳ５４の処理では、プロセッサ２１は、アグレッサネットとネット間に、配線の配置を制限する制限領域（以下配置禁止領域と呼ぶ）があるか否かを判定する。
プロセッサ２１は、ステップＳ５４の処理で、配置禁止領域がないと判定したとき、アグレッサネットをネットに近づけられると判定する（ステップＳ５５）。一方、プロセッサ２１は、ステップＳ５３の処理で、アグレッサネットとネット間に同層配線があると判定したときと、ステップＳ５４の処理で、配置禁止領域があると判定したとき、アグレッサネットをネットに近づけられないと判定する（ステップＳ５６）。
【００６７】
これによってステップＳ３５の判定処理が終わる。なお、図１０の各ステップは上記の順序に限定されず、適宜入れ替えてもよい。
図１１は、アグレッサネットをネットに近づけられるレイアウトの一例を示す図である。図７に示した回路４０に対応する要素については同一符号が付されている。
【００６８】
ステップＳ３１の処理でセル４１が駆動するネット４３が選択され、ステップＳ３４の処理で、ネット４６は、伝送遅延が減少するＸｔａｌｋをネット４３に発生させるアグレッサネットであると判定されたとする。図１１の例では、ネット４３，４６間には、同層配線はなく、配置禁止領域もない。したがって、このような場合は、アグレッサネットであるネット４６は、ネット４３に近づけられると判定される。
【００６９】
なお、各ネットは、１または複数の矩形部で形成される。たとえば、図１１において、ネット４６は、２つの矩形部４６１，４６２によって形成されている。
図１２は、アグレッサネットをネットに近づけられないレイアウトの一例を示す図である。図７に示した回路４０に対応する要素については同一符号が付されている。
【００７０】
上記と同様に、ステップＳ３１の処理でセル４１が駆動するネット４３が選択され、ステップＳ３４の処理で、ネット４６は、伝送遅延が減少するＸｔａｌｋをネット４３に発生させるアグレッサネットであると判定されたとする。図１２の例では、ネット４３，４６間には、同層配線はないものの、配置禁止領域６０が設けられている。したがって、このような場合は、アグレッサネットであるネット４６は、ネット４３に近づけられないと判定される。
【００７１】
以上のようなステップＳ３５の判定処理において、プロセッサ２１は、選択したアグレッサネットをネットに近づけられると判定したときには、ステップＳ３９の処理を行い、ネットに近づけられないと判定したときには、ステップＳ３６の処理を行う。
【００７２】
ステップＳ３６の処理では、プロセッサ２１は、ネットに対して平行（完全に平行でなくてもよい）に配置されているアグレッサネットの長さ（以下平行配線長と呼ぶ）を増やせるか否かを判定する。
【００７３】
ネットに対するアグレッサネットの平行配線長を増やすレイアウト修正を行うことでもカップリング容量が大きくなり、ネットを伝搬する信号が、アグレッサネットを伝搬する信号の影響をより強く受ける。これにより、Ｘｔａｌｋによる伝搬遅延の変動量（減少量）を増やすことができ、ＤｖＤによる伝搬遅延の増加量をより抑制することができる。そこで、このような修正が可能か判定するために、ステップＳ３６の判定処理が行われる。
【００７４】
ステップＳ３６の判定処理も、図１０に示したステップＳ３５の判定処理とほぼ同様に行われる。プロセッサ２１は、ネットに対するアグレッサネットの平行配線長を増やす領域に、他の配線や配置禁止領域があるときには、平行配線長を増やせないと判定し、他の配線や配置禁止領域がないときには、平行配線長を増やせると判定する。
【００７５】
図１３は、ネットに対するアグレッサネットの平行配線長を増やせるレイアウトの一例を示す図である。図１１に示した要素と同じ要素については同一符号が付されている。
ステップＳ３１の処理でセル４１が駆動するネット４３が選択され、ステップＳ３４の処理で、ネット４６ａは、伝送遅延が減少するＸｔａｌｋをネット４３に発生させるアグレッサネットであると判定されたとする。
【００７６】
図１３の例では、ネット４３，４６ａ間にはネット６１があるため、前述のステップＳ３５の処理では、ネット４６ａは、ネット４３に近づけられないと判定される。ただし、図１３の例では、ネット４６ａにおいて、ネット４３と平行に配置されている部分を伸ばすことができる。つまり、ネット４３に対するネット４６ａの平行配線長を増やすことができる。
【００７７】
なお、前述のように各ネットは、１または複数の矩形部で形成される。たとえば、図１３において、ネット４６ａは、４つの矩形部４６ａ１，４６ａ２，４６ａ３，４６ａ４によって形成されている。
【００７８】
図１４は、ネットに対するアグレッサネットの平行配線長を増やせないレイアウトの一例を示す図である。図１３に示した要素と同じ要素については同一符号が付されている。
上記と同様に、ステップＳ３１の処理でセル４１が駆動するネット４３が選択され、ステップＳ３４の処理で、ネット４６ａは、伝送遅延が減少するＸｔａｌｋをネット４３に発生させるアグレッサネットであると判定されたとする。
【００７９】
図１４の例では、ネット４３，４６ａ間には、図１３に示したネット６１の他に、さらに、ネット６２がある。このネット６２は、ネット４３に対するネット４６ａの平行配線長を延長する領域に含まれている。たとえば、このような場合は、平行配線長を増やせないと判定される。なお、平行配線長を延長する領域に、図１２に示したような配置禁止領域が設けられている場合も、同様の判定結果となる。
【００８０】
以上のようなステップＳ３６の判定処理において、プロセッサ２１は、選択したアグレッサネットの平行配線長を増やせると判定したときには、ステップＳ３９の処理を行い、平行配線長を増やせないと判定したときには、ステップＳ３７の処理を行う。
【００８１】
ステップＳ３７の処理では、プロセッサ２１は、アグレッサネットを駆動するセルの駆動力を上げられるか否かを判定する。アグレッサネットを駆動するセルの駆動力を上げることで、その影響を受けるネットでは伝搬遅延がより減少する。
【００８２】
プロセッサ２１は、アグレッサネットを駆動するセルの駆動力を上げられると判定したときには、ステップＳ３９の処理を行い、駆動力を上げられないと判定したときには、ステップＳ３８の処理を行う。たとえば、アグレッサネットを駆動するセルを、そのセルよりも駆動力の高いセルに置き換えることができるときには、駆動力を上げられると判定される。
【００８３】
ステップＳ３８の処理では、プロセッサ２１は、ネットを駆動するセルの駆動力を下げられるか否かを判定する。ネットを駆動するセルの駆動力を下げることで、ネットはアグレッサネットの影響をより大きく受け、伝搬遅延がより減少する。
【００８４】
プロセッサ２１は、ネットを駆動するセルの駆動力を下げられると判定したときには、ステップＳ３９の処理を行い、駆動力を下げられないと判定したときには、ステップＳ４０の処理を行う。たとえば、ネットを駆動するセルを、そのセルよりも駆動力の小さいセルに置き換えられることができるときには、駆動力を下げられると判定される。
【００８５】
ステップＳ３９の処理では、プロセッサ２１は、ステップＳ３５〜Ｓ３８での判定結果に基づいたレイアウト修正情報の生成／更新を行い、その後ステップＳ４０の処理を行う。
【００８６】
図１５は、レイアウト修正情報の一例を示す図である。
レイアウト修正情報３３には、伝搬遅延を減少させる１または複数のレイアウト修正候補が示されている。各レイアウト修正候補の情報には、セルのセル名と、そのセルが駆動するネットのネット名、そのネットに対するアグレッサネットのネット名、ネットとアグレッサネット間に生じるカップリング容量の値が含まれる。さらに、そのカップリング容量に起因する伝搬遅延の変動量と、ネットにおける配線パターンの修正情報及び追加情報、レイアウト修正後の最大カップリング容量の値、修正後の伝搬遅延の最大変動量が含まれる。
【００８７】
たとえば、ステップＳ３５の処理で、アグレッサネットをネットに近づけられると判定されたとき、またはステップＳ３６の処理で、ネットに対するアグレッサネットの平行配線長を増やせると判定されたとき、配線パターンの修正情報及び追加情報が更新される。
【００８８】
図１５では、アグレッサネット（アグレッサネット名：ａｇｎｅｔＣ）を修正した例が示されている。前述したようにアグレッサネットは１または複数の矩形の配線パターン（ビアも含む）として表される。“ＭＥＴ４（Ｘ１  Ｙ１，Ｘ２  Ｙ２）→ＭＥＴ４（Ｘ３  Ｙ３，Ｘ４  Ｙ４）”は、多層構造となっているチップの４層目において、アグレッサネットに含まれる矩形の配線パターンの座標を変更することを示している。図１５の例では、矩形の左下の座標が“Ｘ１  Ｙ１”から、“Ｘ３  Ｙ３”に変更され、矩形の右上の座標が“Ｘ２  Ｙ２”から、“Ｘ４  Ｙ４”に変更されている。また、アグレッサネットに含まれるビアの座標も同様に変更される。
【００８９】
配線パターンの追加情報は、たとえば、アグレッサネットとそのアグレッサネットを駆動するセルとの接続を確保するためなどに追加される配線パターンの情報である。
図１５のレイアウト修正情報３３の例では、以上のようなアグレッサネットのレイアウト修正によって、ネットとアグレッサネット間の最大カップリング容量が、１ｆＦから、２ｆＦに増加している。そして、伝搬遅延を減少させる伝搬遅延の変動量（マイナスの値）が−０．１から−０．２に変わっている。つまり、以上のようなアグレッサネットのレイアウト修正によって、より多く伝搬遅延を減少させることができる。
【００９０】
以下、レイアウト修正情報で示されるレイアウトの修正例を説明する。
図１６は、１つ目のレイアウト修正例を示す図である。
ネット４６ｂは、アグレッサネットであるネット４６がネット４３に近づくように修正されたものである。ネット４６ｂは、３つの矩形部４６ｂ１，４６ｂ２，４６ｂ３で形成されている。ここで、矩形部４６ｂ１は、図１１に示した元のネット４６の矩形部４６１の長さが図１６中のＸ軸方向に、ネット４３に近づくように延長されたものである。
【００９１】
たとえば、元のネット４６の矩形部４６１の左下の座標が（１００  １０４）（左がＸ軸座標の値、右がＹ軸座標の値（以下も同じ））、右上の座標が（１１０  １０５）で表されているとする。このとき、たとえば、修正後のネット４６ｂの矩形部４６ｂ１の左下の座標は（９８  １０４）などと修正され、右上の座標は変わらない。
【００９２】
また、元のネット４６の矩形部４６２の左下の座標が（１００  １００）、右上の座標が（１０１  １０５）で表されているとする。このとき、修正後のネット４６ｂの矩形部４６ｂ２の左下の座標は（９８  １００）、右上の座標は（９９  １０５）などと、Ｘ軸方向にネット４３に近づくように修正される。
【００９３】
ところで、このような修正が行われると、ネット４６ｂを駆動するセル６３との接続が取れなくなる可能性がある。そこで、ネット４６ｂは、追加の矩形部４６ｂ３によって、セル６３との接続を確保している。たとえば、矩形部４６ｂ３の左下の座標は（９８  １００）、右上の座標は（９９  １０１）である。
【００９４】
図１７は、２つ目のレイアウト修正例を示す図である。
ネット４６ｃは、図１３に示したアグレッサネットであるネット４６ａがネット４３に対する平行配線長を増加するように修正されたものである。ネット４６ｃは、２つの矩形部４６ｃ１，４６ｃ２で形成されている。ここで、矩形部４６ｃ１は、図１３に示した元のネット４６ａの矩形部４６ａ１の長さが図１７中のＸ軸方向に延長されたものである。
【００９５】
たとえば、元のネット４６の矩形部４６ａ１の左下の座標が（１０８  １０７）、右上の座標が（１２０  １０８）で表されているとする。このとき、たとえば、修正後のネット４６ｃの矩形部４６ｃ１の左下の座標は（１００  １０７）などと修正され、右上の座標は変わらない。
【００９６】
また、元のネット４６の矩形部４６ａ４の左下の座標が（１００  １００）、右上の座標が（１０１  １０５）で表されているとする。このとき、修正後のネット４６ｃ２の矩形部４６ｂ２の左下の座標は変わらないが、右上の座標は（１０１  １０８）などと、Ｙ軸方向の長さが増加するように修正される。
【００９７】
なお、元のネット４６の矩形部４６ａ２，４６ａ３は削除される。
以上のような配線パターンの修正情報や配線パターンの追加情報が、図１６に示したレイアウト修正情報３３に含まれる。
【００９８】
プロセッサ２１は、配線パターンの修正情報や配線パターンの追加情報に基づき、修正後のネットとアグレッサネットとの間の最大カップリング容量の値を算出する。図１５のレイアウト修正情報３３の例では、最大カップリング容量は、２ｆＦと算出されている。
【００９９】
さらに、プロセッサ２１は、ライブラリ３２に含まれる図５に示したようなテーブル３２ａで表されるＸｔａｌｋによる伝搬遅延の変動情報に基づき、修正後の伝搬遅延の最大変動量を決定する。図１５の例では、伝搬遅延を減らす変動量の値は、−０．２ｎｓｅｃ、伝搬遅延を増加させる変動量の値は、０ｎｓｅｃであることが示されている。
【０１００】
なお、プロセッサ２１は、ステップＳ３７の処理で、アグレッサネットを駆動するセルの駆動力を上げられると判定した場合には、たとえば、元のセルを、そのセルよりも駆動力の高い別のセルに置換し、そのときのＸｔａｌｋによる伝搬遅延の変動量を算出する。そして、プロセッサ２１は、セルを置換する旨の修正情報と、その修正情報に対応したＸｔａｌｋによる伝搬遅延の変動量を含むレイアウト修正情報３３を生成する。
【０１０１】
また、プロセッサ２１は、ステップＳ３８の処理で、ネットを駆動するセルの駆動力を下げられると判定した場合にも同様の処理で、レイアウト修正情報３３を生成する。
なお、以上のようなレイアウト修正情報３３は、後述するタイミング検証の結果に応じて更新される。
【０１０２】
レイアウト修正情報３３は、たとえば、ＨＤＤ２３に記憶される。なお、図９の各ステップは上記の順序に限定されず、適宜入れ替えてもよい。
プロセッサ２１は、レイアウト修正情報３３の生成／更新後、またはステップＳ３８の処理で、ネットを駆動するセルの駆動力を下げられないと判定したとき、選択したネットに対する全アグレッサネットを選択したか否かを判定する（ステップＳ４０）。
【０１０３】
プロセッサ２１は、選択したネットに対する全アグレッサネットを選択したときには、ステップＳ４１の処理を行い、未選択のアグレッサネットがあるときには、ステップＳ３３からの処理を繰り返す。
【０１０４】
ステップＳ４１の処理では、プロセッサ２１は、チップ内の全ネットを選択したか否かを判定する。プロセッサ２１は、全ネットを選択したときには、レイアウト情報生成処理を終了し、未選択のネットがあるときには、ステップＳ３１からの処理を繰り返す。
【０１０５】
以上で、図４のステップＳ１３のレイアウト修正情報生成処理の説明を終える。
次に、プロセッサ２１は、Ｘｔａｌｋ計算結果５０に基づき、ネットにおける伝搬遅延を計算し（ステップＳ１４）、タイミング検証を行ってタイミングエラーがあるか否かを判定する（ステップＳ１５）。
【０１０６】
プロセッサ２１は、タイミングエラーがあると判定したときは、チップレイアウト情報３０を修正し（ステップＳ１６）、ステップＳ１０からの処理を繰り返し、タイミングエラーがないと判定したときは、Ｘｔａｌｋ検証処理を終える。
【０１０７】
次に、本実施の形態の設計方法におけるＤｖＤ検証を説明する。
（ＤｖＤ検証）
プロセッサ２１は、ＤｖＤ検証を開始すると、たとえば、ＨＤＤ２３に記憶されているチップレイアウト情報３０、配線ＲＣ情報３１、ライブラリ３２などの設計情報を取得する（ステップＳ２０）。
【０１０８】
その後、プロセッサ２１は、設計情報に基づき、各セルにおける入力と出力の波形を計算し（ステップＳ２１）、計算した波形に基づき、消費される電力を計算する（ステップＳ２２）。その後、プロセッサ２１は、チップ内において発生するＤｖＤを計算し（ステップＳ２３）、ＤｖＤエラーが生じるか否かを判定する（ステップＳ２４）。ステップＳ２４の処理では、たとえば、ステップＳ２３の処理で計算されたＤｖＤによる遅延変動量が許容値を超えていないか検証される。この検証処理の際、プロセッサ２１は、図６のテーブル３２ｂに示されているようなＤｖＤによる伝搬遅延の変動情報を用いてもよい。
【０１０９】
プロセッサ２１は、ＤｖＤエラーが生じると判定したときは、ステップＳ２５の処理を行い、ＤｖＤエラーが生じないと判定したときは、ＤｖＤ検証処理を終える。
ステップＳ２５の処理では、プロセッサ２１は、たとえば、ＨＤＤ２３に記憶されているレイアウト修正情報３３を読み出し、レイアウト修正情報３３に基づき、ＤｖＤによる伝搬遅延の変動量（増加量）を減少させるＸｔａｌｋによる遅延変動量を選択する。
【０１１０】
たとえば、図７に示したような回路４０において、セル名が“ｃｅｌｌＡ”のセル４１におけるＤｖＤによる電圧降下がある０．１であった場合、プロセッサ２１は、図６に示したようなテーブル３２ｂを参照し、伝搬遅延の変動量、＋０．２ｎｓｅｃを取得する。
【０１１１】
この場合、プロセッサ２１は、レイアウト修正情報３３から、たとえば、ＤｖＤによる伝搬遅延の変動量を０にできるＸｔａｌｋによる遅延変動量として−０．２ｎｓｅｃを選択する。
【０１１２】
そして、プロセッサ２１は、選択したＸｔａｌｋによる遅延変動量に対応する配線パターン修正情報または配線パターン追加情報で示されるレイアウトになるようにチップレイアウト情報３０を修正する（ステップＳ２６）。その後、ステップＳ２０からの処理が繰り返される。
【０１１３】
なお、プロセッサ２１は、図３に示したようなグラフィック処理装置２４を制御して、ステップＳ２６の処理でチップレイアウト情報３０を修正する前に、修正を実行するか否かを確認する画面をモニタ２４ａに表示させるようにしてもよい。
【０１１４】
図１８は、モニタにおける表示例を示す図である。
モニタ２４ａの画面７０には、レイアウト修正情報３３のほか、図１６に示したレイアウト修正例が表示されている。さらに、ＤｖＤによる伝搬遅延の変動量と、レイアウト修正後の伝搬遅延の変動量の例が表示されている。
【０１１５】
ユーザは、画面７０に表示されている情報を確認して、修正を許可するときには、たとえば、マウス２５ｂの操作により、ボタン７１を押下する。プロセッサ２１は、ボタン７１が押下されたことを検出すると、チップレイアウト情報３０を修正する。ユーザは、修正を許可しないときは、たとえば、マウス２５ｂの操作により、ボタン７２を押下する。
【０１１６】
なお、ユーザは、画面７０に表示されているレイアウト修正情報３３に含まれる複数の修正候補の中から、適用するものを選択するようにしてもよい。その場合、プロセッサ２１は、ユーザによって選択された修正候補に基づいて、チップレイアウト情報３０を修正する。
【０１１７】
以上のような、第２の実施の形態の設計方法及び設計装置では、伝搬遅延がＸｔａｌｋによって減少するレイアウトを用いて、ＤｖＤによる伝搬遅延の増加分を減らすことができるようにしたため、ＤｖＤ対策用の容量素子を追加する工程などの手間が少なくなる。そのため、容量素子を追加する際に、容量素子を配置するスペースがなくて再レイアウトするなどの手戻りの発生が抑制され、ノイズによる遅延変動の影響を考慮した品質の高いチップの設計期間が短縮される。
【０１１８】
また、第２の実施の形態の設計方法及び設計装置では、アグレッサネットとネットの距離が元のレイアウトよりも短いものや、ネットに対するアグレッサネットの平行配線長が元のレイアウトよりも長いものなど、複数のレイアウト修正候補が用いられる。そのため、同層配線の有無や配置禁止領域の有無など、アグレッサネットの周囲の配置状況に応じて、伝搬遅延が減少するレイアウト修正候補が選択可能となる。
【０１１９】
ところで、以上のような第２の実施の形態の設計方法及び設計装置は、以下に示すような回路を多く含むチップの設計に好適である。
図１９は、チップに含まれる回路の一例を示す図である。
【０１２０】
回路８０は、回路部８１，８２，８３を有し、回路部８１の出力信号は、バッファ８４，８５を介して回路部８２に入力され、バッファ８６，８７を介して回路部８３に入力される。ここで、バッファ８４，８５間を接続するネット８８に対するアグレッサネットは、バッファ８６，８７間を接続するネット８９となり、ネット８８，８９間にはカップリング容量Ｃ２０が形成されている。
【０１２１】
図１９の例では、ネット８８を駆動するバッファ８４は、ネット８９を駆動するバッファ８６よりも大きい。
図２０は、図１９に示したような回路におけるネットを伝搬する信号の一例とＤｖＤの発生例を示す図である。
【０１２２】
図２０において、“ｖｉｃｔｉｍ  ｆａｌｌ”は、ネット８８を伝搬する信号の立ち下がりの様子を示しており、“ａｇｇｒｅｅｓｓｏｒ  ｆａｌｌ”は、ネット８９を伝搬する信号の立ち下がりの様子を示している。また、“ｖｉｃｔｉｍ  ｒｉｓｅ”は、ネット８８を伝搬する信号の立ち上がりの様子を示しており、“ａｇｇｒｅｅｓｓｏｒ  ｒｉｓｅ”は、ネット８９を伝搬する信号の立ち上がりの様子を示している。さらに、図２０には、電源電圧ＶＤＤの様子が示されている。
【０１２３】
バッファ８４，８６のサイズや駆動力の違いやバッファ８４，８６内のトランジスタがオンまたはオフする閾値電圧の違いなどによって、バッファ８４，８６の出力信号の立ち上がりと立ち下がりの特性が異なる場合がある。
【０１２４】
図２０の例では、バッファ８４が駆動するネット８８を伝搬する信号の立ち下りタイミングｔ１と、バッファ８６が駆動するネット８９を伝搬する信号の立ち下がりタイミングｔ２とに差が生じている。一方、ネット８８，８９を伝搬する信号の立ち上がりは、タイミングｔ３でほぼ揃っている。図２０の例では、タイミングｔ３で、電源電圧ＶＤＤが降下するＤｖＤも生じている。
【０１２５】
このようなタイミングｔ３では、ＤｖＤによる伝搬遅延が増加する可能性があるが、本実施の形態の設計方法によって、Ｘｔａｌｋによる伝搬遅延の減少分が大きくなるようなレイアウト修正を行うことで、ＤｖＤによる伝搬遅延の増加分を抑制できる。
【０１２６】
図２１は、チップに含まれる回路の一例を示す図である。
回路９０は、回路部９１，９２，９３を有し、回路部９１の出力信号は、バッファ９４，９５，９６，９７，９８，９９を介して回路部９２に入力され、バッファ１００，１０１，１０２，１０３，１０４，１０５を介して回路部９３に入力される。ここで、バッファ９８，９９間を接続するネット１０６に対するアグレッサネットは、バッファ１０４，１０５間を接続するネット１０７となり、ネット１０６，１０７間にはカップリング容量Ｃ２１が形成されている。図２１の例では、バッファ９４〜９８は、他のバッファ９９〜１０５よりも大きい。
【０１２７】
このような回路９０でも図１９に示した回路８０と同様に、ネット１０６，１０７間で、図２０のタイミングｔ３のような状況が発生する可能性がある。そのため、本実施の形態の設計方法によって、Ｘｔａｌｋによる伝搬遅延の減少分が大きくなるようなレイアウト修正を行うことで、ＤｖＤによる伝搬遅延の増加分を抑制できる。
【０１２８】
以上、実施の形態に基づき、本発明の設計方法、設計装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
たとえば、プロセッサ２１は、レイアウト修正情報３３の生成の際、アグレッサネットをネットに近づけるとともに、ネットに対するアグレッサネットの平行配線長を増やすようなレイアウト修正候補を生成するようにしてもよい。
【符号の説明】
【０１２９】
１  設計装置（コンピュータ）
２  プロセッサ
３  記憶部
５，６  セル
７，８  配線
Ｃ１〜Ｃ３  容量
【図１】
2016110490.tif 000003
【図２】
2016110490.tif 000004
【図３】
2016110490.tif 000005
【図４】
2016110490.tif 000006
【図５】
2016110490.tif 000007
【図６】
2016110490.tif 000008
【図７】
2016110490.tif 000009
【図８】
2016110490.tif 000010
【図９】
2016110490.tif 000011
【図１０】
2016110490.tif 000012
【図１１】
2016110490.tif 000013
【図１２】
2016110490.tif 000014
【図１３】
2016110490.tif 000015
【図１４】
2016110490.tif 000016
【図１５】
2016110490.tif 000017
【図１６】
2016110490.tif 000018
【図１７】
2016110490.tif 000019
【図１８】
2016110490.tif 000020
【図１９】
2016110490.tif 000021
【図２０】
2016110490.tif 000022
【図２１】
2016110490.tif 000023