(57)【要約】【課題】タイミング解析の結果に影響を与えるようなクロストークノイズを検出する。【解決手段】クロストークノイズ検出方法として、半導体集積回路の各インスタンス及び各配線について、生じ得る遅延時間の最大値又は最小値を求める遅延計算ステップと、同一のパスに属するインスタンス及び配線の遅延時間の和を求め、前記パスのインスタンスの出力における信号遷移タイミングを求めるタイミング解析ステップと、前記信号遷移タイミングに基づいて、前記パスのインスタンスにクロストークが発生するか否かを判定すべき期間を設定するクロストーク判定タイミング最適化ステップと、前記パスのインスタンスの出力の配線との間にカップリング容量が存在するインスタンスに、前記期間において信号遷移が生じる場合には、前記パスのインスタンスにクロストークノイズが発生すると判定するクロストーク判定ステップとを備える。【選択図】      図１
2004280439.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の個々のセル及び配線について、生じ得る遅延時間の最大値又は最小値を求める遅延計算ステップと、
前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、
前記信号遷移タイミングに基づいて、前記パスのセルにクロストークが発生するか否かを判定すべき期間を設定するクロストーク判定タイミング最適化ステップと、
前記パスのセルの出力の配線との間にカップリング容量が存在するセルに、前記期間において信号遷移が生じる場合には、前記パスのセルにクロストークノイズが発生すると判定するクロストーク判定ステップとを備える
クロストークノイズ検出方法。
【請求項２】
請求項１に記載のクロストークノイズ検出方法において、
前記パスのセルがクロストークの影響を受ける場合に、当該セルの遅延に生じる変動量を求める遅延変動量計算ステップを更に備え、
前記クロストーク判定タイミング最適化ステップは、
前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最大値を用いて求められた信号遷移タイミングと、それよりも前記変動量に応じた時間だけ前の時点との間を、前記期間として設定するものである
ことを特徴とするクロストークノイズ検出方法。
【請求項３】
請求項１に記載のクロストークノイズ検出方法において、
前記パスのセルがクロストークの影響を受ける場合に、当該セルの遅延に生じる変動量を求める遅延変動量計算ステップを更に備え、
前記クロストーク判定タイミング最適化ステップは、
前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最小値を用いて求められた信号遷移タイミングと、それよりも前記変動量に応じた時間だけ後の時点との間を、前記期間として設定するものである
ことを特徴とするクロストークノイズ検出方法。
【請求項４】
請求項１に記載のクロストークノイズ検出方法において、
前記遅延計算ステップは、
セル及び配線について、生じ得る遅延時間の最大値及び最小値を求めるものであり、
前記クロストーク判定タイミング最適化ステップは、
前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最大値及び最小値のそれぞれを用いて求められた信号遷移タイミングである最大信号遷移タイミング及び最小信号遷移タイミングの差を求め、最大信号遷移タイミングとそれよりも前記差に応じた時間だけ前の時点との間を、前記期間として設定するものである
ことを特徴とするクロストークノイズ検出方法。
【請求項５】
請求項１に記載のクロストークノイズ検出方法において、
前記遅延計算ステップは、
セル及び配線について、生じ得る遅延時間の最大値及び最小値を求めるものであり、
前記クロストーク判定タイミング最適化ステップは、
前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最大値及び最小値のそれぞれを用いて求められた信号遷移タイミングである最大信号遷移タイミング及び最小信号遷移タイミングの差を求め、最小信号遷移タイミングとそれよりも前記差に応じた時間だけ後の時点との間を、前記期間として設定するものである
ことを特徴とするクロストークノイズ検出方法。
【請求項６】
半導体集積回路のセル及び配線について、生じ得る遅延時間の最大値、及び生じ得る遅延時間の最小値と前記最大値との間の値である遅延時間の中間値を求める遅延計算ステップと、
前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、
カップリング容量が存在する、２つの配線の信号遷移タイミングの順が、前記遅延時間の最大値に基づいて求められた場合と前記遅延時間の中間値に基づいて求められた場合とで入れ替わるような箇所にクロストークノイズが発生すると判定する信号遷移タイミング比較ステップとを備える
クロストークノイズ検出方法。
【請求項７】
半導体集積回路の個々のセル及び配線について、遅延時間を求める遅延計算ステップと、
前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、
前記タイミング解析の結果に基づいて、フリップフロップ間のパスにおけるセルであって、このセルに対してアグレッサとなるセルとの間で信号遷移期間に重なりがあるものを修正対象のセルとして求め、これと後段のフリップフロップとの間に介在するセルにおいて、この介在するセルとこれに対してアグレッサとなるセルとの間で、信号遷移期間に重なりが生じず、かつ、信号遷移のタイミングの前後関係が変化しないように、前記修正対象のセルの信号遷移のタイミングを変化させることができる範囲を求める遅延修正可能幅決定ステップと、
前記範囲内において、前記修正対象のセルと、このセルに対してアグレッサとなるセルとの間で信号遷移期間に重なりが生じないように、信号遷移のタイミングを変化させるような回路修正を前記修正対象のセルに対して行う回路修正ステップとを備える
半導体集積回路の設計方法。
【請求項８】
請求項７に記載の半導体集積回路の設計方法において、
前記遅延修正可能幅決定ステップは、
前記フリップフロップ間のパスにおいて前記後段のフリップフロップから前段のフリップフロップに向かってパストレースし、前記修正対象のセルとして最初に該当するものを求めるものであり、
前記遅延計算ステップと、前記タイミング解析ステップと、前記遅延修正可能幅決定ステップと、前記回路修正ステップとを、前記前段のフリップフロップに達するまで行う
ことを特徴とする半導体集積回路の設計方法。
【請求項９】
半導体集積回路の個々のセル及び配線について、遅延時間を求める遅延計算ステップと、
前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、
フリップフロップ間のパスのうち、前記タイミング解析の結果から得られる、サイクルタイムに対する余裕度に基づいて、クリティカルパスを求めるクリティカルパス抽出ステップと、
前記クリティカルパス上の配線に隣接し、前記クリティカルパスに属さないフリップフロップにクロックを供給する配線と、前記クリティカルパス上の配線との間のカップリング容量が小さくなるように、配線の再配置を行う回路修正ステップとを備える
半導体集積回路の設計方法。
【請求項１０】
請求項９に記載の半導体集積回路の設計方法において、
前記回路修正ステップは、
前記クリティカルパス上の配線に隣接する配線を、前記クリティカルパス上の配線との間の距離が大きくなるように再配置するものである
ことを特徴とする半導体集積回路の設計方法。
【請求項１１】
セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、
配線の長さに応じて、これと隣接する配線との間の間隔を有するように配線を行う
半導体集積回路の設計方法。
【請求項１２】
請求項１１に記載の半導体集積回路の設計方法において、
各ネットの配線長を求める配線長見積りステップと、
前記配線長見積りステップで求められた配線長に基づいて、所定の規則に従い、各ネットについて最小配線間隔の制約を算出する配線制約算出ステップと、
前記制約の下でセル間の配線を行う配線ステップとを備える
ことを特徴とする半導体集積回路の設計方法。
【請求項１３】
半導体集積回路の設計を検証する方法であって、
レイアウトされた配線に基づいて、各ネットについて配線間隔を算出する配線間隔算出ステップと、
各ネットについて、配線長を算出する配線長算出ステップと、
前記配線間隔を前記配線長に応じた値と比較し、前記配線間隔が前記値以下である配線のネットを抽出する制約比較ステップとを備える
半導体集積回路の設計検証方法。
【請求項１４】
セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、
当該半導体集積回路の設計仕様で定められたサイクルタイムに応じて選択したセルを用いて設計を行う
半導体集積回路の設計方法。
【請求項１５】
請求項１４に記載の半導体集積回路の設計方法において、セルについて、入力波形の傾きと負荷容量との複数の組み合わせのそれぞれに対する標準的な遅延値を求める標準遅延算出ステップと、
前記標準遅延算出ステップで求められた標準遅延値に基づいて、容量変動に対する遅延値変動量が、前記サイクルタイムに対する所定の割合以下であるセルを選択するセル選択ステップと、
前記セル選択ステップで選択されたセルを用いて論理設計を行う論理設計ステップとを備える
ことを特徴とする半導体集積回路の設計方法。
【請求項１６】
セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、
フリップフロップの出力端子に接続された配線に沿って、前記出力端子から出力される信号の反転信号を出力する、前記フリップフロップの他の出力端子に接続された配線を追加する
半導体集積回路の設計方法。
【請求項１７】
請求項１６に記載の半導体集積回路の設計方法において、正信号とその反転信号とを出力するフリップフロップを検出するセル検出ステップと、
前記検出されたフリップフロップに関してホールドタイミングマージンを求めるマージン算出ステップと、
前記検出されたフリップフロップについての出力ネットのうち、ホールドタイミングマージンが最も少ないものを選択するネット選択ステップと、
前記選択されたネットの配線に沿って、前記選択されたネットの配線と同一のフリップフロップに接続され、前記選択されたネットの信号の反転信号を伝送する配線を追加する配線変更ステップとを備える
ことを特徴とする半導体集積回路の設計方法。
【請求項１８】
セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、
フリップフロップの入力のネットの信号波形の傾きが、前記ネットの配線に隣接する配線のネットにおける信号波形の傾きよりも急峻になるように、前記ネットの配線、又はこれに隣接する配線を駆動する回路の駆動能力を設定する
半導体集積回路の設計方法。
【請求項１９】
請求項１８に記載の半導体集積回路の設計方法において、前記フリップフロップの入力のネットの配線を駆動する第１のセルの出力端子、及び前記ネットの配線に隣接する配線を駆動する第２のセルの出力端子のそれぞれにおける信号波形傾きを求める信号波形傾き算出ステップと、
前記第１及び第２のセルの信号波形傾きを組にして、両者を比較し、前記第１のセルの信号波形傾きの方が緩やかな組を抽出するビクティムネット抽出ステップと、
前記抽出された組に関して、前記第１のセルの出力端子における信号波形傾きを急峻にするような、前記第１のセルに対する回路修正、又は、前記第２のセルの出力端子における信号波形傾きを緩やかにするような、前記第２のセルに対する回路修正を行う回路修正ステップとを備える
ことを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路の設計技術に関し、特に、半導体集積回路の隣接配線間のクロストークノイズを考慮した設計技術に関する。
【０００２】
【従来の技術】
近年、ＬＳＩの高集積化に伴い、その配線ピッチは縮小され続けてきた。配線ピッチの縮小は、隣接する平行配線間の結合容量を増加させるので、信号遅延の増加やクロストークノイズによる誤動作を引き起こす。配線ピッチの縮小による高集積化を図るＬＳＩでは、この問題は避けられないものであり、近年この問題は顕著になってきた。
【０００３】
クロストークノイズを検出する方法について説明する。まず、レイアウト設計後にその配線結果を用いて配線間容量を求め、クロストークノイズを算出する。図２のような１つの平行配線ネットにおいて、クロストークの影響を受けたビクティム（ｖｉｃｔｉｍ）側の信号電圧ＶＸＴＡＬＫは、容量に着目した代表的なクロストークノイズモデルを用いて、次式、すなわち、
ＶＸＴＡＬＫ  ＝  ＶＤＤ・ＣＣ／（ＣＣ＋ＣＧＮＤ）  …（ａ１）
によって求められる。ここで、ＶＤＤは、クロストークの影響を与えるアグレッサ（ａｇｇｒｅｓｓｏｒ）側の信号電圧、Ｃｃはカップリング容量、ＣＧＮＤは対基板容量である。
【０００４】
一般に、アグレッサ側とビクティム側の信号電圧の振幅は同一であるので、クロストークによる危険度を総容量に対する配線間容量の割合とし、この割合があるしきい値以上であるとき、すなわち、
ＣＣ／（ＣＣ＋ＣＧＮＤ）≧  ｅｒｒｏｒ＿ｒａｔｉｏ    …（ａ２）
が成り立つとき、クロストークノイズの影響による誤動作が起き易いと判断する。ここで、０≦ｅｒｒｏｒ＿ｒａｔｉｏ≦１である。
【０００５】
このモデルをベースにして、アグレッサ側とビクティム側の信号遷移時間を考慮した「クロストークエラー改善方式及び方法」が特許文献１に開示されている。これは、同時に信号遷移する複数の隣接ネットの容量値を前記式（ａ２）に基づいて算出し、クロストークを検出する方法である。アグレッサ側とビクティム側との信号遷移が重なり合う期間（これをタイミングウインドウと称する）と信号遷移方向の見積もりは、静的タイミングシミュレータによって行う。静的に処理がなされるので、高速にクロストークを検出することが可能となる。
【０００６】
タイミングウインドウを使う際には、シミュレーション条件の設定が重要になる。図２２は、温度及び電源電圧が取り得る範囲を示すグラフである。この範囲において、例えば右上端はセルの遅延が最大になる条件、左下端はセルの遅延が最小になる条件を表している。この範囲内の任意の条件を取りうることを、タイミングウインドウを求める際や、クロストークノイズを検出する際には考慮する必要がある。
【０００７】
図２３（ａ）は、静的タイミングシミュレーション結果の例を示すグラフである。ｍｉｎからｍａｘまでの期間内に、ビクティム側の信号レベルが遷移するタイミングがあるとする。クロストークが生じる条件は、この期間にアグレッサ側の信号レベルが変化することである。
【０００８】
図２３（ｂ）は、図２３（ａ）においてクロストークを考慮した場合のグラフである。クロストークノイズの発生によって、ビクティム側の遅延が増加する可能性があり、ビクティム側の信号レベルが遷移するタイミングが取り得る期間は図２３（ｂ）のように広がる。すると、タイミング違反が発生する可能性が増加する。その後、タイミングシミュレーションを行い、クロストークノイズの発生に起因して、タイミング違反を起こすと判断した場合には、タイミング違反を起こさないようにレイアウトを修正する必要がある。
【０００９】
このように、クロストークノイズ検出を行い、遅延量の変化を求めた後、タイミングシミュレーションによって、タイミング違反の有無を調べ、求められた違反箇所に対して、タイミング違反が起きないようにレイアウト修正が行われていた。そして、再び同様にして、クロストークノイズ検出とタイミングシミュレーションとをタイミング違反が起きなくなるまで繰り返されていた。この方法によると、クロストークノイズを考慮しながらレイアウト修正が行えるので、正確なシミュレーション結果を得ることができる利点がある。しかし、繰り返し回数は、回路の複雑さ・設計制約の困難さによって異なり、収束性の保証はない。
【００１０】
次に、タイミング違反を起こさないようにするためのレイアウト修正について説明する。クロストークノイズを除去する方法には、平行配線ネットに対して、同一タイミングウインドウに属さないようにタイミング差を生じさせるために、（１）バッファ挿入を行うこと、（２）クリティカルネット（ＬＳＩの動作を決定する最長時間パス上のネット）側がビクティム側にならないように、トランジスタの駆動能力をアグレッサ側と同等以上に設定すること、カップリング容量を低減するために、（３）配線間隔を広げること等がある。いずれの方法も効果的であり、かつ同時に行うことができる。
【００１１】
（１）と（２）は、従来のレイアウトと論理修正とを行う最適化手法であるＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）で実現できる。また、（３）はレイアウト工程の詳細配線時に行うことが可能である。
【００１２】
次に、クロストークノイズによって通常は遅延劣化が起きるが、逆に、クロストークノイズを有効活用する方法について説明する。この例が、特許文献２に開示されている。これは、クロストークノイズによるアグレッサ側の影響力に着目して、信号変化を加速させる回路を組む方法である。具体的には、隣接する信号配線間に並行するように制御用配線を置き、アグレッサ側の信号配線上の電位と同等の電位をもつ駆動信号を制御用配線に出力する回路を備え、隣接する信号配線間のクロストークノイズを吸収し、制御用配線と隣接する信号配線との間のカップリング容量や、信号配線の配線容量を減じる。
【００１３】
これによって、信号配線に高周波信号を伝播させることができる。同方向にレベルが変化する信号遷移がほぼ同時に、かつ隣接した配線ネット間で起こると、クロストークによって互いの信号遷移が加速する方向で影響し合うため、結果的に遷移時間を短縮することになる。
【００１４】
【特許文献１】
特開平１１−４０６７７号公報
【特許文献２】
特開平５−８２６４６号公報
【００１５】
【発明が解決しようとする課題】
このように、従来は、ビクティム側の遅延の取り得る範囲（ビクティム側の信号レベルが遷移し得る期間）が図２３（ａ）のようにｍｉｎからｍａｘまでであるとすると、クロストークの起こる条件は、その範囲にアグレッサ側が信号変化を起こす時であるとしていた。これによると、図２３（ａ）のｍｉｎとｍａｘとのちょうど中間でアグレッサ側が信号遷移した場合であってもクロストークノイズによってビクティム側の遅延量が変化することになる。
【００１６】
しかし、この場合、ビクティム側の遅延量が実際には変化しないこともある。また、クロストークノイズの発生によりビクティム側に実際に生じる遅延量の変化は、アグレッサ側の信号変化が、図２３（ａ）のｍｉｎ又はｍａｘのいずれかに近いときに大きくなる。すなわち、実際の現象とは異なったシミュレーション結果を得るという問題点があった。
【００１７】
また、前述のように、クロストークノイズを考慮した遅延計算→タイミングシミュレーション→レイアウト修正→クロストークノイズを考慮した遅延計算→……のループを繰り返して、レイアウト修正を行っていた。これによると、レイアウト修正を行ってあるクロストークノイズを改善すると、クロストークノイズを起こしていなかったところに新たにクロストークノイズが発生する場合があった。その結果、収束性が保証できず、タイミングが改善されたり悪化したりを繰り返す振動を起こすという問題点があった。
【００１８】
また、クロストークノイズを発生させにくくする方法として、配線間隔を広げるものがあった。従来は、全ての配線ネットを一律に取り扱って配線間隔を一律倍ピッチにする、ある基準によって決められた特定の配線ネットのみ配線間隔を広げる、一旦配線が終わった後で空き領域があるときのみ配線ネットにジョグ等入れることによって配線間隔を広げる、等が行われていた。
【００１９】
ところが、倍ピッチ法は、不必要にレイアウト面積を拡大することにつながる。特定配線ネットのみ間隔を広げる方法は、指定した配線ネットのみクロストークノイズ改善が図れるが、他配線ネットについては考慮していない。また、一旦配線が終わった後で配線間隔を広げる場合は、高密度な配線を行った場合は改善効率が悪くなる。
【００２０】
クロストークノイズは、配線の総容量（カップリング容量と対基板容量との和）に対するカップリング容量の割合が大きい時に発生しやすいが、上記の３つの手法はその割合に着目した改善ができないので、本来不必要な箇所の配線間隔の拡大を引き起こしていた。
【００２１】
また、クロストークノイズを積極的に利用する方法では、特別に駆動回路を設ける必要があり、その数が多くなると回路規模の増加、ひいてはレイアウト面積の増加を引き起こす問題点があった。
【００２２】
本発明は、半導体集積回路の設計の際に、タイミング解析の結果に影響を与えるようなクロストークノイズを検出することを目的とする。また、本発明は、クロストークの影響を受けにくい半導体集積回路を設計することを目的とする。
【００２３】
【課題を解決するための手段】
前記課題を解決するため、請求項１の発明が講じた手段は、クロストークノイズ検出方法として、半導体集積回路の個々のセル及び配線について、生じ得る遅延時間の最大値又は最小値を求める遅延計算ステップと、前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、前記信号遷移タイミングに基づいて、前記パスのセルにクロストークが発生するか否かを判定すべき期間を設定するクロストーク判定タイミング最適化ステップと、前記パスのセルの出力の配線との間にカップリング容量が存在するセルに、前記期間において信号遷移が生じる場合には、前記パスのセルにクロストークノイズが発生すると判定するクロストーク判定ステップとを備えるものである。
【００２４】
請求項１の発明によると、クロストークが発生するか否かを判定すべき期間を設定するので、タイミング解析の結果に影響を与えるような、考慮する必要がある場合にのみ、クロストークの検出を行うようにすることができる。したがって、必要がないクロストークの検出を行って、これを抑制するための無駄な回路修正を行わないようにすることができる。
【００２５】
請求項２の発明は、請求項１に記載のクロストークノイズ検出方法において、前記パスのセルがクロストークの影響を受ける場合に、当該セルの遅延に生じる変動量を求める遅延変動量計算ステップを更に備え、前記クロストーク判定タイミング最適化ステップは、前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最大値を用いて求められた信号遷移タイミングと、それよりも前記変動量に応じた時間だけ前の時点との間を、前記期間として設定するものである。
【００２６】
請求項３の発明は、請求項１に記載のクロストークノイズ検出方法において、前記パスのセルがクロストークの影響を受ける場合に、当該セルの遅延に生じる変動量を求める遅延変動量計算ステップを更に備え、前記クロストーク判定タイミング最適化ステップは、前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最小値を用いて求められた信号遷移タイミングと、それよりも前記変動量に応じた時間だけ後の時点との間を、前記期間として設定するものである。
【００２７】
請求項４の発明では、請求項１に記載のクロストークノイズ検出方法において、前記遅延計算ステップは、セル及び配線について、生じ得る遅延時間の最大値及び最小値を求めるものであり、前記クロストーク判定タイミング最適化ステップは、前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最大値及び最小値のそれぞれを用いて求められた信号遷移タイミングである最大信号遷移タイミング及び最小信号遷移タイミングの差を求め、最大信号遷移タイミングとそれよりも前記差に応じた時間だけ前の時点との間を、前記期間として設定するものである。
【００２８】
請求項５の発明では、請求項１に記載のクロストークノイズ検出方法において、前記遅延計算ステップは、セル及び配線について、生じ得る遅延時間の最大値及び最小値を求めるものであり、前記クロストーク判定タイミング最適化ステップは、前記タイミング解析ステップにおいて、個々のセル及び配線についての遅延時間の最大値及び最小値のそれぞれを用いて求められた信号遷移タイミングである最大信号遷移タイミング及び最小信号遷移タイミングの差を求め、最小信号遷移タイミングとそれよりも前記差に応じた時間だけ後の時点との間を、前記期間として設定するものである。
【００２９】
請求項６の発明は、クロストークノイズ検出方法として、半導体集積回路のセル及び配線について、生じ得る遅延時間の最大値、及び生じ得る遅延時間の最小値と前記最大値との間の値である遅延時間の中間値を求める遅延計算ステップと、前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、カップリング容量が存在する、２つの配線の信号遷移タイミングの順が、前記遅延時間の最大値に基づいて求められた場合と前記遅延時間の中間値に基づいて求められた場合とで入れ替わるような箇所にクロストークノイズが発生すると判定する信号遷移タイミング比較ステップとを備えるものである。
【００３０】
請求項６の発明によると、処理が非常に簡単であるので、高速にクロストークノイズを検出することができる。
【００３１】
請求項７の発明は、半導体集積回路の設計方法として、半導体集積回路の個々のセル及び配線について、遅延時間を求める遅延計算ステップと、前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、前記タイミング解析の結果に基づいて、フリップフロップ間のパスにおけるセルであって、このセルに対してアグレッサとなるセルとの間で信号遷移期間に重なりがあるものを修正対象のセルとして求め、これと後段のフリップフロップとの間に介在するセルにおいて、この介在するセルとこれに対してアグレッサとなるセルとの間で、信号遷移期間に重なりが生じず、かつ、信号遷移のタイミングの前後関係が変化しないように、前記修正対象のセルの信号遷移のタイミングを変化させることができる範囲を求める遅延修正可能幅決定ステップと、前記範囲内において、前記修正対象のセルと、このセルに対してアグレッサとなるセルとの間で信号遷移期間に重なりが生じないように、信号遷移のタイミングを変化させるような回路修正を前記修正対象のセルに対して行う回路修正ステップとを備えるものである。
【００３２】
請求項７の発明によると、回路修正による新たなクロストークの発生を防止することができるので、クロストークを防ぐための回路修正後に新たなクロストークが発生し、再度回路修正が必要になるという悪循環をなくすことができる。
【００３３】
請求項８の発明では、請求項７に記載の半導体集積回路の設計方法において、前記遅延修正可能幅決定ステップは、前記フリップフロップ間のパスにおいて前記後段のフリップフロップから前段のフリップフロップに向かってパストレースし、前記修正対象のセルとして最初に該当するものを求めるものであり、前記遅延計算ステップと、前記タイミング解析ステップと、前記遅延修正可能幅決定ステップと、前記回路修正ステップとを、前記前段のフリップフロップに達するまで行うことを特徴とする。
【００３４】
請求項９の発明は、半導体集積回路の設計方法として、半導体集積回路の個々のセル及び配線について、遅延時間を求める遅延計算ステップと、前記遅延計算ステップで求められた遅延時間とネットリストとに基づいて、同一のパスに属するセル及び配線の遅延時間の和を求め、前記パスのセルの出力における信号遷移タイミングを求めるタイミング解析ステップと、フリップフロップ間のパスのうち、前記タイミング解析の結果から得られる、サイクルタイムに対する余裕度に基づいて、クリティカルパスを求めるクリティカルパス抽出ステップと、前記クリティカルパス上の配線に隣接し、前記クリティカルパスに属さないフリップフロップにクロックを供給する配線と、前記クリティカルパス上の配線との間のカップリング容量が小さくなるように、配線の再配置を行う回路修正ステップとを備えるものである。
【００３５】
請求項９の発明によると、タイミング制約の厳しいクリティカルパスの終端フリップフロップにおいて、クロストークによる遅延変動の影響を受けてタイミングエラーが生じるのを回避することができる。クロックを供給する配線の全てではなく、クリティカルパスに影響を与えるものに関して対策を行うので、回路面積の増大を抑えることができる。
【００３６】
請求項１０の発明では、請求項９に記載の半導体集積回路の設計方法において、前記回路修正ステップは、前記クリティカルパス上の配線に隣接する配線を、前記クリティカルパス上の配線との間の距離が大きくなるように再配置するものである。
【００３７】
請求項１１の発明は、セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、配線の長さに応じて、これと隣接する配線との間の間隔を有するように配線を行うものである。
【００３８】
請求項１１の発明によると、クロストークの影響を受ける度合いに応じて配線間隔を決めことができ、クロストークの影響を削減することができる。また、配線リソースを有効に活用することが可能となる。
【００３９】
請求項１２の発明は、請求項１１に記載の半導体集積回路の設計方法において、各ネットの配線長を求める配線長見積りステップと、前記配線長見積りステップで求められた配線長に基づいて、所定の規則に従い、各ネットについて最小配線間隔の制約を算出する配線制約算出ステップと、前記制約の下でセル間の配線を行う配線ステップとを備えるものである。
【００４０】
請求項１３の発明は、半導体集積回路の設計を検証する方法であって、レイアウトされた配線に基づいて、各ネットについて配線間隔を算出する配線間隔算出ステップと、各ネットについて、配線長を算出する配線長算出ステップと、前記配線間隔を前記配線長に応じた値と比較し、前記配線間隔が前記値以下である配線のネットを抽出する制約比較ステップとを備えるものである。
【００４１】
請求項１３の発明によると、配線間隔が比較的小さく、クロストークの影響を受けやすいネットを検出することができる。
【００４２】
請求項１４の発明は、セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、当該半導体集積回路の設計仕様で定められたサイクルタイムに応じて選択したセルを用いて設計を行うものである。
【００４３】
請求項１４の発明によると、負荷容量が変動した場合にサイクルタイムに対する遅延変動の割合が大きくなる可能性の高いセルを用いることなく、論理回路設計を行うので、クロストークの影響を受けにくい回路を得ることができる。また、クロストークの影響があった場合においても、サイクルタイムに対する変動量が大きくないので、比較的容易に回路の修正を行うことができる。
【００４４】
請求項１５の発明は、請求項１４に記載の半導体集積回路の設計方法において、セルについて、入力波形の傾きと負荷容量との複数の組み合わせのそれぞれに対する標準的な遅延値を求める標準遅延算出ステップと、前記標準遅延算出ステップで求められた標準遅延値に基づいて、容量変動に対する遅延値変動量が、前記サイクルタイムに対する所定の割合以下であるセルを選択するセル選択ステップと、前記セル選択ステップで選択されたセルを用いて論理設計を行う論理設計ステップとを備えるものである。
【００４５】
請求項１６の発明は、セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、フリップフロップの出力端子に接続された配線に沿って、前記出力端子から出力される信号の反転信号を出力する、前記フリップフロップの他の出力端子に接続された配線を追加するものである。
【００４６】
請求項１６の発明によると、回路面積を増加させることなく、ホールドタイムマージンを大きくすることができる。既に回路に用いられているフリップフロップが出力する反転信号を利用するので、回路面積はほとんど増加しない。
【００４７】
請求項１７の発明は、請求項１６に記載の半導体集積回路の設計方法において、正信号とその反転信号とを出力するフリップフロップを検出するセル検出ステップと、前記検出されたフリップフロップに関してホールドタイミングマージンを求めるマージン算出ステップと、前記検出されたフリップフロップについての出力ネットのうち、ホールドタイミングマージンが最も少ないものを選択するネット選択ステップと、前記選択されたネットの配線に沿って、前記選択されたネットの配線と同一のフリップフロップに接続され、前記選択されたネットの信号の反転信号を伝送する配線を追加する配線変更ステップとを備えるものである。
【００４８】
請求項１８の発明は、セルとその間を接続する配線とを有する半導体集積回路の設計方法であって、フリップフロップの入力のネットの信号波形の傾きが、前記ネットの配線に隣接する配線のネットにおける信号波形の傾きよりも急峻になるように、前記ネットの配線、又はこれに隣接する配線を駆動する回路の駆動能力を設定するものである。
【００４９】
請求項１８の発明によると、フリップフロップへの入力がビクティムにならないので、セットアップタイムの増加を抑えることができる。
【００５０】
請求項１９の発明は、請求項１８に記載の半導体集積回路の設計方法において、前記フリップフロップの入力のネットの配線を駆動する第１のセルの出力端子、及び前記ネットの配線に隣接する配線を駆動する第２のセルの出力端子のそれぞれにおける信号波形傾きを求める信号波形傾き算出ステップと、前記第１及び第２のセルの信号波形傾きを組にして、両者を比較し、前記第１のセルの信号波形傾きの方が緩やかな組を抽出するビクティムネット抽出ステップと、前記抽出された組に関して、前記第１のセルの出力端子における信号波形傾きを急峻にするような、前記第１のセルに対する回路修正、又は、前記第２のセルの出力端子における信号波形傾きを緩やかにするような、前記第２のセルに対する回路修正を行う回路修正ステップとを備えるものである。
【００５１】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００５２】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るクロストークノイズ検出方法の処理の流れを示すフローチャートである。図１のクロストークノイズ検出方法は、遅延計算ステップＳ１０１と、タイミング解析ステップＳ１０２と、遅延変動量計算ステップＳ１０３と、クロストーク判定タイミング最適化ステップＳ１０４と、クロストーク判定ステップＳ１０５とを備えている。
【００５３】
図２は、図１の処理の対象とする回路の例を示す回路図である。図２の回路は、素子として、バッファセルであるインスタンス１２２，１２４，１３２，１３４を備えている。インスタンスは、同じ論理を持ったセルであっても、各々を別個のものとして認識するための名前である。以下の各実施形態においては、素子としてバッファセルを用い、これをインスタンスとして表した場合について説明するが、素子として他のセルを用いた場合についても同様である。
【００５４】
図２の回路においては、インスタンス１２２の出力端子とインスタンス１２４の入力端子とが配線で接続されており、インスタンス１３２の出力端子とインスタンス１３４の入力端子とが配線で接続されている。また、これらの２つの配線間には、カップリング容量１３６が存在する。インスタンス１２２，１２４は、クロストークノイズの影響を受けるビクティム（ｖｉｃｔｉｍ）として動作するインスタンス、インスタンス１３２，１３４は、クロストークノイズを発生するアグレッサ（ａｇｇｒｅｓｓｏｒ）として動作するインスタンスである。
【００５５】
遅延計算ステップＳ１０１では、演算部（図示せず）は、遅延ライブラリとＲＣ（抵抗・容量）情報とに基づいて、個々のインスタンス及び配線について、生じる遅延時間を求める。遅延時間は、例えばＳＤＦ（ｓｔａｎｄａｒｄ  ｄｅｌａｙ  ｆｏｒｍａｔ）で表現される。また、プロセス、温度、又は供給電圧のばらつきにより遅延時間が変動するので、各インスタンス及び各配線について、これらの条件を変えて遅延時間を求める。
【００５６】
遅延時間としては、各インスタンス及び各配線のそれぞれについて、生じ得る遅延時間の最小値である最小遅延時間、生じ得る遅延時間の最大値である最大遅延時間、及び中間遅延時間の３値を求める。中間遅延時間は、最小遅延時間と最大遅延時間との間の値（中間値）である。最小遅延時間、中間遅延時間、及び最大遅延時間が得られる場合のプロセス、温度、及び供給される電源電圧の条件の組み合わせを、それぞれｍｉｎ条件、ｔｙｐ条件、及びｍａｘ条件と称する。
【００５７】
タイミング解析ステップＳ１０２では、演算部は、各インスタンス及び各配線で生じる遅延時間とネットリストとに基づいて、ネットリストに記載されたインスタンスの接続順に従い、同一のパスに属するインスタンス及び配線の遅延時間の和を求め、このパスの各インスタンスの出力端子における信号遷移タイミングを求める。この際、各インスタンス及び各配線で生じる遅延時間として最小遅延時間、中間遅延時間、及び最大遅延時間を用いた３つの場合について計算を行う。
【００５８】
信号遷移タイミングとは、インスタンスの出力端子や配線において信号のレベルが所定の電位に達するタイミングである。ここでは例として、所定の電位は、高論理レベルの５０％であるとして説明するが、他のレベルであってもよい。また、このインスタンスから、信号が伝播する方向とは逆の向きに、パストレースして到達しうるフリップフロップにクロックが入力された時刻を時刻“０”としてタイミングを計算している。
【００５９】
タイミング解析ステップＳ１０２では、最小／中間／最大遅延時間のそれぞれを用いた場合について計算を行うので、各インスタンスに信号が到達する時間として、幅を持った結果が得られる。つまり、最小遅延時間を用いた場合には、インスタンスに信号が到達する時間は早くなり、逆に最大遅延時間を用いた場合には、インスタンスに信号が到達する時間は遅くなる。
【００６０】
図３は、ビクティムの信号遷移タイミングの例を示すグラフである。図３のように、ビクティム側のインスタンス１２２の出力端子において、最小遅延時間を用いた場合には、最も早く信号が到達する場合の信号遷移１６２が得られ、最大遅延時間を用いた場合には、最も遅く信号が到達する場合の信号遷移１６４が得られる。すなわち、インスタンス１２２の出力端子においては、信号遷移１６２のタイミングである最小信号遷移タイミングと、信号遷移１６４のタイミングである最大信号遷移タイミングとの間で信号レベルが変化する可能性があり、これらのタイミングの差を信号遷移タイミング差１６６とする。
【００６１】
図４は、アグレッサとビクティムとの間における信号遷移タイミングの関係の例を示すグラフである。アグレッサ側のインスタンス１３２の出力端子における信号遷移１８２の波形の傾きは、インスタンス１２２の出力端子における信号波形の傾きよりも急峻であるとする。
【００６２】
ここでは、図４のように、インスタンス１２２の出力端子における信号が立ち上がり、インスタンス１３２の出力端子における信号が立ち下がる場合について説明する。
【００６３】
遅延変動量計算ステップＳ１０３では、演算部は、配線間のカップリング容量を考慮すべき配線の組毎に、遅延変動量を求める。配線間にカップリング容量がある場合には、その配線間でクロストークが発生し、その影響を受けてビクティム側のインスタンスで生じる遅延が変動する（すなわち、インスタンスが出力する信号のレベルが遷移するタイミングが変動する）場合がある。この変動の量を遅延変動量と称する。
【００６４】
インスタンス１２２がインスタンス１３２の出力の影響を受ける、クロストークが発生すると、インスタンス１２２の遅延が変動する。クロストークによって、インスタンス１２２で生じる遅延が増加して、クロストークが生じない場合の約２倍になることがある。
【００６５】
クロストーク判定タイミング最適化ステップＳ１０４では、演算部は、配線間でクロストークが発生するか否かを判定すべき期間を最適化して設定する。すなわち、遅延変動量計算ステップＳ１０３で求められた遅延変動量の大きさだけ、信号遷移１６４を信号遷移１６２に近づけた信号遷移１６８を求め、信号遷移１６８のタイミングと、信号遷移１６４のタイミングである最大信号遷移タイミングとの間を、インスタンス１２２にクロストークが発生するか否かを判定すべき期間１７２として設定する。
【００６６】
つまり、信号遷移１６８より前にインスタンス１３２の出力信号のレベルが遷移する場合については、クロストークが発生しないと判定し、クロストークによる遅延変動を考慮しない。これは、信号遷移１６８のタイミングよりも信号遷移１６２に近いところでクロストークが発生したとしても、遅延変動量計算ステップＳ１０３で求められた遅延変動量以上の遅延変動は生じないので、信号遷移のタイミングが信号遷移１６４よりも遅くなることがないからである。
【００６７】
なお、遅延変動量に代えて、信号遷移タイミング差１６６だけ、信号遷移１６４を信号遷移１６２に近づけるようにしてもよい。
【００６８】
クロストーク判定ステップＳ１０５では、演算部は、クロストーク判定タイミング最適化ステップＳ１０４で求めた信号遷移１６８のタイミングと、信号遷移１６４のタイミングとの間の期間１７２において、アグレッサであるインスタンス１３２の信号遷移１８２が生じる否かを判定する。
【００６９】
図４の場合には、演算部は、信号遷移１６８のタイミングと信号遷移１６４のタイミングとの間において、アグレッサであるインスタンス１３２の信号遷移１８２が生じないと判定し、クロストークノイズは発生しないと判定する。この場合、信号遷移１６４のタイミングは変更しない。
【００７０】
図５は、アグレッサとビクティムとの間における信号遷移タイミングの関係の他の例を示すグラフである。図５の場合には、演算部は、信号遷移１６８のタイミングと信号遷移１６４のタイミングとの間において、アグレッサであるインスタンス１３２の信号遷移タイミング１８４が生じると判定し、クロストークノイズが発生すると判定する。この場合、信号遷移１６４のタイミングを遅延変動量の大きさ（期間１７２）だけ遅らせて、信号遷移１７４に変更する。そして、信号遷移１７４のタイミングを新たな最大信号遷移タイミングとする。
【００７１】
以上のステップＳ１０１〜Ｓ１０５を、すべてのインスタンスを対象にして行うことにより、クロストークによる遅延変動を考慮したタイミング検証を行うことができる。
【００７２】
本実施形態によると、クロストークが発生するか否かを判定する必要がある区間を、最小信号遷移タイミングと最大信号遷移タイミングとの間（図３における信号遷移タイミング差１６６）ではなく、最大信号遷移タイミングと、それよりも遅延変動量だけ前のタイミングとの間に限定する。このため、クロストークが発生するとしても、ビクティムであるインスタンスの信号遷移が最大信号遷移タイミングよりも遅くならないような場合については、クロストークの発生を考慮する必要がない。このような場合にもクロストークが発生すると判定し、最大信号遷移タイミングを遅くするという処理をすると、過剰にタイミングを遅らせることになり、タイミング設計が厳しくなる。しかし、本実施形態によると、タイミング解析に影響を与えるような、本当に必要な場合にのみ、クロストークノイズの検出を行い、クロストークによる遅延変動を考慮するようにすることができる。このため、クロストークを抑制するための無駄な回路修正を行わないようにすることができる。
【００７３】
なお、本実施形態では、クロストークにより信号遷移のタイミングが最大信号遷移タイミングよりも遅くなる場合、つまり、セットアップ（ｓｅｔｕｐ）のチェックについて説明したが、同様に、信号遷移のタイミングが最小信号遷移タイミングよりも早くなる場合、つまり、ホールド（ｈｏｌｄ）チェックにも同様の処理を適用することができる。
【００７４】
具体的には、クロストーク判定タイミング最適化ステップにおいて、遅延変動量に応じた時間だけ、信号遷移１６２を信号遷移１６４に近づけ、そのタイミングと信号遷移１６２のタイミングである最小信号遷移タイミングとの間を、インスタンス１２２にクロストークが発生するか否かを判定すべき期間として設定するようにしてもよい。また、遅延変動量に代えて、信号遷移タイミング差１６６に応じた時間だけ、信号遷移１６２を信号遷移１６４に近づけるようにしてもよい。この場合、セットアップ／ホールドのそれぞれの処理時に使われる変動遅延量は同じ値ではなく、それぞれ別個に計算された値を使う。
【００７５】
また、遅延変動量計算ステップＳ１０３では、ビクティム側のインスタンス単体の遅延時間を遅延変動量として用いたが、信号遷移タイミング差１６６の例えば１０％、又は予め定めた値を、遅延変動量として用いるようにしてもよい。
【００７６】
（第２の実施形態）
第２の実施形態では、ｔｙｐ条件による信号遷移タイミングと、ｍａｘ条件による信号遷移タイミングとを使って、クロストークノイズの発生及びその発生箇所を求める方法について説明する。例として、図２の回路を対象にして説明する。
【００７７】
図６は、本発明の第２の実施形態に係るクロストークノイズ検出方法の処理の流れを示すフローチャートである。図６のクロストークノイズ検出方法は、遅延計算ステップＳ２０１と、タイミング解析ステップＳ２０２と、信号遷移タイミング比較ステップＳ２０３と、クロストーク考慮タイミング解析ステップＳ２０４とを備えている。
【００７８】
遅延計算ステップＳ２０１は、図１の遅延計算ステップＳ１０１とほぼ同様のものである。ただし、個々のインスタンス及び配線のそれぞれの遅延時間として、中間遅延時間、及び最大遅延時間を求める。
【００７９】
タイミング解析ステップＳ２０２では、演算部は、図１のタイミング解析ステップＳ１０２と同様に、各インスタンスの出力端子における信号遷移タイミングを求める。ここでは、遅延計算ステップＳ２０１で求められた中間遅延時間、及び最大遅延時間を用いた場合について計算を行う。
【００８０】
プロセス、温度、又は供給電圧をｔｙｐ条件からｍａｘ条件に向かって連続的に変化させる場合、各インスタンス及び配線の遅延時間も同様に、中間遅延時間から最大遅延時間に向かって連続的に変化する。この場合、インスタンスの信号遷移タイミングも、各インスタンス及び各配線の中間遅延時間を加算して得られる、ｔｙｐ条件による信号遷移タイミングから、各インスタンス及び各配線の最大遅延時間を加算して得られる、ｍａｘ条件による信号遷移タイミングに向かって、連続的に変化する。
【００８１】
図７（ａ）は、ｔｙｐ条件におけるアグレッサとビクティムとの信号遷移タイミングの一例を示すグラフである。図７（ｂ）は、ｍａｘ条件におけるアグレッサとビクティムとの信号遷移タイミングの一例を示すグラフである。
【００８２】
図７（ａ）の場合は、ビクティムであるインスタンス１２２の信号遷移タイミング２６２の方が、アグレッサであるインスタンス１３２の信号遷移タイミング２７２よりも早い。一方、図７（ｂ）の場合は、アグレッサであるインスタンス１３２の信号遷移タイミング２７４の方が、ビクティムであるインスタンス１２２の信号遷移タイミング２６４よりも早い。
【００８３】
このように、ｔｙｐ条件とｍａｘ条件とで、インスタンス１２２とインスタンス１３２との信号遷移タイミングの順が入れ替わる場合には、プロセス、温度、又は供給電圧をｔｙｐ条件からｍａｘ条件に向かって連続的に変化させていくと、ある条件（プロセス、温度、電圧）でインスタンス１２２とインスタンス１３２との信号遷移タイミングが重なる場合がある。
【００８４】
図７（ｃ）は、ｍａｘ条件におけるアグレッサとビクティムとの信号遷移タイミングの他の例を示すグラフである。図７（ｃ）の場合は、図７（ａ）の場合と同様に、ビクティムであるインスタンス１２２の信号遷移タイミング２６６の方が、アグレッサであるインスタンス１３２の信号遷移タイミング２７６よりも早い。
【００８５】
このように、ｔｙｐ条件とｍａｘ条件とで、インスタンス１２２とインスタンス１３２との信号遷移タイミングの順が入れ替わらない場合には、プロセス、温度、又は供給電圧をｔｙｐ条件からｍａｘ条件に向かって連続的に変化させても、インスタンス１２２とインスタンス１３２との信号遷移タイミングが重なることがないと考えられる。
【００８６】
そこで、信号遷移タイミング比較ステップＳ２０３では、演算部は、アグレッサ及びビクティムであるインスタンスの信号遷移タイミングを、ｔｙｐ条件における場合とｍａｘ条件における場合とで比較して、クロストークが発生するか否かを判定する。言い換えると、カップリング容量が存在する、隣接する２つの配線の信号遷移タイミングの順が、ｔｙｐ条件とｍａｘ条件とにおいて入れ替わるような箇所にクロストークノイズが発生すると判定し、そこをクロストーク発生箇所とする。
【００８７】
次に、クロストーク考慮タイミング解析ステップＳ２０４では、演算部は、信号遷移タイミング比較ステップＳ２０３でクロストークが発生すると判定された箇所についてのみ、クロストークによる遅延変動を計算し、その遅延変動を考慮したタイミング解析を行い、クロストークに起因した遅延変動によってタイミングエラーが生じるか否かを検証する。
【００８８】
ただし、クロストーク考慮タイミング解析ステップＳ２０４において遅延時間の変動が生じるので、信号遷移タイミング比較ステップＳ２０３及びクロストーク考慮タイミング解析ステップＳ２０４を繰り返し実行する。
【００８９】
以上のように、本実施形態によると、ｔｙｐ条件とｍａｘ条件とにおけるタイミング解析結果だけを使い、クロストーク発生の有無を判定することができるので、処理が非常に簡単であり、高速である。クロストークを考慮しなくて良い箇所を抜き出す可能性があるが、第１の実施形態の場合よりも処理時間は短くなる。
【００９０】
さらに、ｔｙｐ条件とｍａｘ条件の信号遷移タイミングの関係を見ているので、クロストークが発生し得ない箇所を、クロストークに起因する遅延を考慮すべき対象から確実に除外することができる。
【００９１】
本実施形態では、ｔｙｐ条件とｍａｘ条件とを用いて処理する場合について説明したが、ｔｙｐ条件とｍｉｎ条件とを用いて、同様に処理するようにしてもよい。
【００９２】
（第３の実施形態）
図８は、本発明の第３の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。図８の半導体集積回路の設計方法は、遅延計算ステップＳ１０１と、タイミング解析ステップＳ３０２と、遅延修正可能幅決定ステップＳ３０３と、回路修正ステップＳ３０４とを備えている。遅延計算ステップＳ１０１は、図１の遅延計算ステップＳ１０１と同様のものである。遅延計算ステップＳ１０１の前に、既に配線パターンが定義されているものとする。
【００９３】
図９は、図８の処理の対象とする回路の例を示す回路図である。図９の回路は、インスタンス３２１，３２２，３２３，３２４，３３１，３３２，３３３と、フリップフロップ３２７とを備えている。インスタンス３２１，３２２，３２３，３２４と、フリップフロップ３２７とは、パス３２０を構成している。
【００９４】
また、インスタンス３３１の出力の配線と、インスタンス３２１の出力の配線との間には、カップリング容量３４１が存在する。インスタンス３３２の出力の配線と、インスタンス３２２の出力の配線との間には、カップリング容量３４２が存在し、インスタンス３３３の出力の配線と、インスタンス３２３の出力の配線との間には、カップリング容量３４３が存在する。
【００９５】
遅延計算ステップＳ１０１では、第１の実施形態と同様に、遅延時間として、各インスタンス及び各配線について、最小遅延時間、最大遅延時間、及び中間遅延時間の３値を求める。以下のステップでは、例えば、各インスタンス及び各配線について、最大遅延時間を用いて処理を行う。また、各インスタンス及び各配線について、最小遅延時間を用いてもよいし、中間遅延時間を用いてもよい。ただし、最小遅延時間と最大遅延時間とを混在させて用いるようなことはしない。これらの点は、以下の実施形態においても同様である。
【００９６】
図１０（ａ）は、図９のインスタンス３２１及び３３１のそれぞれの出力の信号遷移３６１及び３８１の例を示すタイミング図である。図１０（ｂ）は、図９のインスタンス３２２及び３３２のそれぞれの出力の信号遷移３６２及び３８２の例を示すタイミング図である。図１０（ｃ）は、図９のインスタンス３２３及び３３３のそれぞれの出力の信号遷移３６３及び３８３の例を示すタイミング図である。
【００９７】
タイミング解析ステップＳ３０２では、演算部は、遅延計算ステップＳ１０１で得られた結果に基づいて、図１のタイミング解析ステップＳ１０２と同様に、各インスタンスの出力端子における信号遷移タイミングを求める。
【００９８】
遅延修正可能幅決定ステップＳ３０３では、演算部は、後段のフリップフロップ３２７から、信号が伝播する方向とは逆向きに、クロストークが発生している箇所までパストレースする。そうすると、図９に示したように、クロストークが発生したインスタンス３２１から、クロストークが発生していないインスタンス３２２，３２３を経由してフリップフロップ３２７に至るパス３２０を抜き出し、そのタイミング図を得ることができる。
【００９９】
クロストークが発生している箇所は、次のようにして求める。タイミング解析ステップＳ３０２で得られた結果から、例えば、インスタンス３２１とインスタンス３３１との信号遷移期間が重なっているので（図１０（ａ）参照）、これらのインスタンスをクロストークが発生している箇所として求める。ここで、出力信号波形の傾きが緩やかになっているインスタンス３２１がビクティムであり、他方のインスタンス３３１がアグレッサである。インスタンス３２２とインスタンス３３２との間（図１０（ｂ）参照）、及びインスタンス３２３とインスタンス３３３との間（図１０（ｃ）参照）では、信号遷移期間は重なっておらず、クロストークは発生していない。
【０１００】
インスタンス３２１とインスタンス３３１との間で発生しているクロストークによる遅延変動が原因で、回路が所定のタイミングの制約を満たさないような場合には、このクロストーク発生箇所の回路修正を行う必要がある。そこで、パス３２０に属するインスタンスであって、クロストークが発生しているインスタンス３２１を、修正対象のインスタンスとする。
【０１０１】
回路修正する方法としては、信号遷移のタイミングをずらす方法がある。アグレッサ及びビクティムの双方の信号遷移期間が重ならなければ、クロストークが発生せず、これによる遅延変動が発生しないからである。しかし、信号遷移のタイミングをただ単純にずらすだけでは、インスタンス３２１以降の信号遷移のタイミングも変化し、新たにクロストークが発生する可能性がある。そこで、遅延修正可能幅決定ステップＳ３０３において、新たなクロストークを発生させずにインスタンス３２１の信号遷移のタイミングを変化させることが可能な範囲を示す遅延修正可能幅を決定する。
【０１０２】
具体的には、まず、修正対象のインスタンス３２１とフリップフロップ３２７との間に介在するインスタンスであって、新たなクロストークが発生する可能性のあるインスタンスを探す。これは、カップリング容量が存在する配線を駆動する全てのインスタンスが対象となる。図９においては、インスタンス３２２，３２３が対象となる。インスタンス３２４は、これが駆動する配線にはカップリング容量が存在しないので、対象外である。
【０１０３】
次に、インスタンス３２２，３２３に対し、アグレッサとなり得るインスタンスとの間で信号遷移期間の関係を調べる。
【０１０４】
インスタンス３２２の場合、アグレッサとなるのはインスタンス３３２である。インスタンス３２２の信号遷移３６２の期間とインスタンス３３２の信号遷移３８２の期間とを比較すると、信号遷移３６２の期間は、信号遷移３８２の期間の前に終了している。この場合、信号遷移３６２の期間が終了してから信号遷移３８２の期間が開始するまでの期間が信号遷移の間隔３９３として存在しており、ビクティムよりも後にアグレッサが信号遷移しているので、信号遷移の間隔３９３はプラスの値とする。
【０１０５】
インスタンス３２３の場合、アグレッサとなるのはインスタンス３３３である。インスタンス３２３の信号遷移３６３の期間とインスタンス３３３の信号遷移３８３の期間とを比較すると、信号遷移３８３の期間は、信号遷移３６３の期間の前に終了している。この場合、信号遷移３８３の期間が終了してから信号遷移３６３の期間が開始するまでの期間が信号遷移の間隔３９５として存在しており、ビクティムよりも前にアグレッサが信号遷移しているので、信号遷移の間隔３９５はマイナスの値とする。
【０１０６】
更に、遅延修正可能幅決定ステップＳ３０３では、アグレッサとなるインスタンスと、ビクティムとなるインスタンスとの間で信号遷移のタイミングの前後関係が変化しないように、遅延修正可能幅を求める。すなわち、パス３２０におけるインスタンス３２１以外のビクティムとなる全てのインスタンスについて、対応するアグレッサとの間で信号遷移の間隔を求め、そのうち、値がプラスのものの中で絶対値が最小のもの、及び値がマイナスのものの中で絶対値が最小のものを選択する。そして、これらのプラスの値及びマイナスの値で定まる時間の範囲を、遅延修正可能幅とする。図１０の場合、信号遷移の間隔は、値がプラスのもの及び値がマイナスのものそれぞれ１つしかないので、これらの２つの値のうち、絶対値が小さい方が遅延修正可能幅として求められる。
【０１０７】
次に、回路修正ステップＳ３０４では、演算部は、遅延修正可能幅の範囲内で、インスタンス３２１の信号遷移のタイミングを変化させるような回路修正を行う。回路修正の方法としては、バッファの挿入、削除、又は駆動能力の変更などを行う。
【０１０８】
回路修正の際には、以下のように、新たにクロストーク発生箇所が出てこないように、遅延の修正を行う幅を限定する。まず、信号遷移３６１，３８１に着目する。ここで、クロストークが起こらないようにするために、インスタンス３２１の信号遷移３６１のタイミングを期間３９２だけ早くする、又は期間３９１だけ遅くすることにより、信号遷移３６１と信号遷移３８１との期間が重ならないようにする。
【０１０９】
例えば、信号遷移３６１のタイミングを期間３９２だけ早くすると、インスタンス３２２以降のインスタンスの信号遷移のタイミングも期間３９２だけ早くなる。このとき、期間３９２が、遅延修正可能幅のマイナス方向の境界値である信号遷移の間隔３９５の大きさよりも大きければ、この回路修正により新たにインスタンス３２３でクロストークが発生してしまう。このため、期間３９２の大きさと、信号遷移の間隔３９５の大きさとを比較し、期間３９２の方が小さい場合にのみ、期間３９２だけ信号遷移のタイミングが早くなるような回路修正が可能となる。
【０１１０】
また、信号遷移３６１のタイミングを期間３９１だけ遅くしてもよい。期間３９１と、遅延修正可能幅のプラス方向の境界値である信号遷移の間隔３９３の大きさとを比較し、期間３９１の方が小さい場合にのみ、期間３９１だけ信号遷移のタイミングが遅くなるような回路修正が可能となる。
【０１１１】
信号遷移３６１のタイミングを期間３９２だけ早くするような回路修正、及び期間３９１だけ遅くするような回路修正のうち、いずれか一方だけが可能な場合は、可能なものを選択して行う。いずれの回路修正も可能な場合は、いずれを選択してもよい。いずれの回路修正も不可能な場合は、いずれかを選択し、その回路修正により新たに生じたクロストークに対して、図８の処理を再度行うことにより、同様に回路修正を行う。
【０１１２】
図１１（ａ）は、回路修正後における図９のインスタンス３２１及び３３１のそれぞれの出力の信号遷移３６４及び３８１の例を示すタイミング図である。図１１（ｂ）は、回路修正後における図９のインスタンス３２２及び３３２のそれぞれの出力の信号遷移３６５及び３８２の例を示すタイミング図である。図１１（ｃ）は、回路修正後における図９のインスタンス３２３及び３３３のそれぞれの出力の信号遷移３６６及び３８３の例を示すタイミング図である。
【０１１３】
図１１（ａ）〜（ｃ）は、回路修正により信号遷移３６１のタイミングを期間３９２程度早くした場合に得られた結果を示している。インスタンス３２１の信号を受けるインスタンス３２２，３２３の信号遷移も同じだけ早くなっているが、遅延修正可能幅の範囲内で信号遷移のタイミングを変動させているので、新たなクロストークは発生しない。
【０１１４】
図１２は、図９のインスタンス３２３及び３３３のそれぞれの出力の信号遷移の他の例を示すタイミング図である。このとき、インスタンス３２１，３２２，３３１及び３３２のそれぞれの出力の信号遷移は、図１０（ａ），（ｂ）と同様であるとする。
【０１１５】
図１０の場合との違いは、インスタンス３２３の信号遷移３６９が図１０（ｃ）の場合よりも早く生じており、アグレッサ側であるインスタンス３３３の信号遷移３８３のタイミングが、ビクティム側であるインスタンス３２３の信号遷移３６９のタイミングよりも遅くなっていることである。
【０１１６】
この場合、クロストークが発生しているインスタンス３２１以降のインスタンス３２２，３２３のそれぞれについて、アグレッサ側のインスタンス３３２，３３３との信号遷移のタイミングを比べると、インスタンス３２２，３２３のいずれについてもアグレッサ側のインスタンス３３２，３３３の信号遷移の方が後で生じている。すなわち、インスタンス３２１の信号遷移３６１のタイミングを如何に早くしても、新たなクロストークは発生しない。このような場合は、遅延修正可能幅のマイナス側の値を無限大とする。ただし、タイミング設計上、セットアップ／ホールド検証をパスしないといけないので、この検証において要件を満たす範囲においてのみ、回路修正を行うことができる。
【０１１７】
回路修正の後、修正対象のインスタンスから、前段のフリップフロップに向かって同様の処理を行うことを、前段のフリップフロップに達するまで繰り返す。以上の処理を、全フリップフロップ間において行う。
【０１１８】
以上のように、本実施形態では、図８の処理、すなわち、全フリップフロップから、信号伝播とは逆向きにトレースし、クロストークが発生している箇所を求め、これ以降のインスタンスの信号の遷移間隔を求め、関連する回路の修正を行うという処理を繰り返し実行する。この結果、回路修正による新たなクロストークの発生を防止することができ、クロストークが発生しないように回路を修正すると、新たなクロストークが発生し、更に回路修正を行う必要が生じる、という悪循環を防ぐことができる。
【０１１９】
（第４の実施形態）
図１３は、本発明の第４の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。図１３の半導体集積回路の設計方法は、遅延計算ステップＳ１０１と、タイミング解析ステップＳ４０２と、クリティカルパス抽出ステップＳ４０３と、回路修正ステップＳ４０４とを備えている。遅延計算ステップＳ１０１は、図１の遅延計算ステップＳ１０１と同様のものである。遅延計算ステップＳ１０１の前に、既に配線パターンが定義されているものとする。
【０１２０】
タイミング解析ステップＳ４０２では、演算部は、図１のタイミング解析ステップＳ１０２とほぼ同様に、インスタンス及び配線で生じる遅延時間とネットリストとを入力として、ネットリストに記載されたインスタンスの接続順に従い、インスタンス及び配線の遅延時間を足し合わせ、全てのインスタンスの出力端子における信号遷移タイミングを計算する。
【０１２１】
次に、クリティカルパス抽出ステップＳ４０３では、演算部は、次のステップ１及びステップ２の処理を行う。
【０１２２】
ステップ１では、タイミング解析ステップＳ４０２で得られた結果から、フリップフロップ間の全てのパスにおけるパス遅延時間を求め、スラックとセットアップ時間とを足し合わせた和が小さいパスを候補として抽出し、その中から、得られた和がクロックスキューに対して小さいパスを抽出する。
【０１２３】
ここでスラックとは、サイクルタイムに対する余裕度であり、サイクルタイムから、パス遅延時間とセットアップ時間とを減じた時間である。例えば、サイクルタイムが１０ｎｓ、パス遅延時間が９．５ｎｓ、セットアップ時間が０．１ｎｓであれば、スラックは０．４ｎｓ（＝１０ｎｓ−９．５ｎｓ−０．１ｎｓ）となる。式で表現すると、次式（１）、すなわち、
（クロックスキュー）≧（スラック）＋（セットアップ時間）  …（１）
を満たす場合にステップ１で抽出の対象となる。
【０１２４】
具体的な数字の例を示すと、クロックスキュー０．６ｎｓ、セットアップ時間０．１ｎｓ、スラック０．５ｎｓのパスは、式（１）を満たすので抽出され、クロックスキュー０．２ｎｓ、セットアップ時間０．１ｎｓ、スラック０．４ｎｓのパスは、式（１）を満たさないので抽出されない。
【０１２５】
次に、ステップ２では、ステップ１で抽出されたパスに対し、そのパスの終端にあるフリップフロップの入力端子に接続された配線がクロックを供給するクロックラインと隣接しているか否か、つまり、その配線間にカップリング容量が存在するか否かを調べ、カップリング容量が存在するパスをクリティカルパスとして抽出する。
【０１２６】
クリティカルパス抽出ステップＳ４０３における処理を、具体例を用いて説明する。図１４（ａ）は、図１３の処理の対象とする回路の例を示す回路図である。図１４（ａ）の回路において、インスタンス４２１の出力がフリップフロップ４２２の入力端子に与えられ、インスタンス４３１の出力がフリップフロップ４３２のクロックとして与えられている。また、インスタンス４２１の出力の配線と、インスタンス４３１の出力の配線との間には、カップリング容量４４１が存在する。
【０１２７】
図１４（ｂ）は、図１３の処理の対象とする回路の他の例を示す回路図である。図１４（ｂ）の回路において、インスタンス４２４の出力がフリップフロップ４２５の入力端子に与えられ、インスタンス４３４の出力がフリップフロップ４３５のクロックとして与えられている。インスタンス４３４の出力の配線がインスタンス４２４の出力の配線から離れたところに配線されており、これらの２つの配線の間にカップリング容量が存在しない点が、図１４（ａ）の回路とは異なる。
【０１２８】
図１４（ｃ）は、図１３の処理の対象とする回路の更に他の例を示す回路図である。図１４（ｃ）の回路は、図１４（ａ）の回路と同様に構成されている。すなわち、インスタンス４２７の出力がフリップフロップ４２８の入力端子に与えられ、インスタンス４３７の出力がフリップフロップ４３８のクロックとして与えられている。また、インスタンス４２７の出力の配線と、インスタンス４３７の出力の配線との間には、カップリング容量４４３が存在する。
【０１２９】
図１５（ａ）は、  図１４（ａ）の回路における信号を示すタイミング図である。インスタンス４２１の出力の信号遷移４６１と、インスタンス４３１の出力の信号遷移４７１とが示されている。図１５（ｂ）は、  図１４（ｂ）の回路における信号を示すタイミング図である。インスタンス４２４の出力の信号遷移４６４と、インスタンス４３４の出力の信号遷移４７４とが示されている。図１５（ｃ）は、  図１４（ｃ）の回路における信号を示すタイミング図である。インスタンス４２７の出力の信号遷移４６７と、インスタンス４３７の出力の信号遷移４７７とが示されている。
【０１３０】
図１４（ａ）〜（ｃ）のいずれの回路においても、サイクルタイム１０ｎｓ、クロックスキュー０．３ｎｓ、セットアップ時間０．１ｎｓであるとする。図１４（ａ），（ｂ），（ｃ）の回路におけるスラックが、それぞれ０．４ｎｓ，０．２ｎｓ，０．１ｎｓであるとする。
【０１３１】
ステップ１では、式（１）を満たすか否かを判定し、式（１）を満たさない図１４（ａ）の回路を候補から除く。
【０１３２】
次に、ステップ２では、図１４（ｂ）の回路を候補から除く。パスの終端にあるフリップフロップ４２５に接続された配線が、クロックラインとの間にカップリング容量を持たないからである。この結果、図１４（ｃ）の回路が残り、インスタンス４２７からフリップフロップ４２８に至るパスがクリティカルパスとして抽出される。
【０１３３】
回路修正ステップＳ４０４では、クリティカルパス抽出ステップＳ４０３で抽出されたクリティカルパスに属し、フリップフロップ４２８の入力端子に接続された配線と、フリップフロップ４３８にクロックを供給し、前記クリティカルパス上の配線に隣接するクロックラインの配線との間のカップリング容量が小さくなるように配線を再配線する。
【０１３４】
より具体的には、フリップフロップ４３８にクロックを供給するクロックラインの配線を、図１４（ｂ）の回路のように、フリップフロップ４２８の入力端子に接続された配線との間の距離が大きくなるように迂回させる。また、フリップフロップ４２８の入力端子に接続された配線を、フリップフロップ４３８にクロックを供給するクロックラインの配線との間の距離が大きくなるように迂回させたり、フリップフロップ４２８の入力端子に接続された配線と、フリップフロップ４３８にクロックを供給するクロックラインの配線との間にシールド配線を挿入する等の回路修正を行ってもよい。これにより、２つの配線間のカップリング容量を減少させてほぼ０になるようにする。
【０１３５】
この結果、信号遷移のタイミングは回路修正前とほとんど同じであるが、カップリング容量が存在しないので、クロストークが生じない回路を得ることができる。
【０１３６】
このような回路修正を行う理由について説明する。クロック信号は、一般的に信号波形傾きが非常に急峻で、非常に強いアグレッサになる。この強いアグレッサの影響により、非常にタイミングの厳しいクリティカルパスが影響を受けると、パス遅延が増大するだけではなく、セットアップ時間も増大し、タイミングの制約を満たすのが厳しくなる。
【０１３７】
そこで、タイミングの厳しいクリティカルパスの終端にあるフリップフロップに入力される信号の配線が、クロックラインに隣接する場合には、カップリング容量がなくなるような回路修正を施すことにより、クロストークによる遅延変動が原因となってタイミングエラーとなるのを回避することができる。
【０１３８】
クロック信号が非常に強いアグレッサであることから、全てのクロックラインに関してシールド配線の挿入等の回路修正を行うと、回路面積が大きく増大するので得策ではない。本実施形態によると、タイミングの制約が厳しい箇所に限定して回路修正を行うので、回路面積の増大を最低限に抑えることができ、かつ、クロストークによるタイミングエラーを防ぐことができる。
【０１３９】
（第５の実施形態）
図１６は、本発明の第５の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。図１６の半導体集積回路の設計方法は、配線長見積りステップＳ５０１と、配線制約算出ステップＳ５０２と、配線ステップＳ５０３とを備えている。
【０１４０】
配線長見積りステップＳ５０１では、各ネットの配線長を求める。基本セルが配置されている場合は、その配置に基づいて配線長を求める。
【０１４１】
配線制約算出ステップＳ５０２では、配線長見積りステップＳ５０１で求められた配線長に基づいて、あらかじめ決められた規則に従い、各ネットについて、最小配線間隔の制約を算出する。この規則は、例えば、配線が長いほど大きな配線間隔になるようにするものである。
配線ステップＳ５０３では、配線制約算出ステップＳ５０２で算出された最小配線間隔の制約の下で、基本セル間の配線を行う。
【０１４２】
このように、配線長に応じて最小配線間隔が決定されるので、クロストークの起こる確率の高い、長距離のネット配線には大きな配線間隔が設定され、クロストークノイズの影響が削減できる。また、クロストークノイズの影響を受ける度合いに応じて配線間隔を決めるので、配線リソースを有効に活用することが可能となる。
【０１４３】
なお、配線制約算出ステップＳ５０２で用いる規則が、配線の長いネットは大きな間隔になるようにするものであるとして説明したが、これには限らず、設計のノウハウを盛りこんだ規則にしてもよい。例えば、求められる間隔が、配線長の増加に対して単調に増加するのでなく、所定の値以上においては減少するようにしてもよい。
【０１４４】
また、本実施形態では、制約として、最小配線間隔を算出したが、配線間距離と平行配線長とに応じた値を制約としてもよい。例えば、平行配線長と配線間距離との関数の総和を所定の値よりも小さくするような制約を求めるようにしてもよい。
【０１４５】
（第６の実施形態）
図１７は、本発明の第６の実施形態に係る半導体集積回路の設計における検証方法の処理の流れを示すフローチャートである。図１７の検証方法は、配線間隔算出ステップＳ６０１と、配線長算出ステップＳ６０２と、制約比較ステップＳ６０３とを備えている。
【０１４６】
図１８は、図１７の処理の対象とする配線のレイアウトの例を示すレイアウト図である。図１８において、配線セグメント６２２，６２４，６２６は、１つのネットＡを構成しているものとする。配線セグメント６２２，６２６は、第１の配線層を用いている。配線セグメント６２４は、第２の配線層を用いている。配線セグメント６３２，６３４，６３６は、ネットＡ以外のそれぞれ異なるネットを構成している。配線セグメント６３２，６３６は、第１の配線層を用いている。配線セグメント６３４は、第２の配線層を用いている。
【０１４７】
配線間隔算出ステップＳ６０１では、演算部は、レイアウトされた配線に基づいて、各ネットについて配線間隔を算出する。ここでは例として、隣接配線との最小間隔を配線間隔とする。図１８の場合、ネットＡに関しては、隣接配線との間の間隔として、配線セグメント６２２，６３２間の間隔ｄ１、配線セグメント６２６，６３２間の間隔ｄ２、配線セグメント６２６，６３６間の間隔ｄ３、配線セグメント６２４，６３４間の間隔ｄ４が考えられる。ここでは、最も小さい間隔ｄ２をネットＡの配線間隔とする。
【０１４８】
配線長算出ステップＳ６０２では、演算部は、各ネットについて、レイアウトされた配線の配線長を算出する。
【０１４９】
制約比較ステップＳ６０３では、演算部は、各ネットについて、配線間隔算出ステップＳ６０１で求めた配線間隔と、配線長算出ステップＳ６０２で求めた配線長との関係を調べる。配線間隔を、配線長に応じて決められた値と比較し、配線間隔がこの値以下である場合には、その配線のネットをクロストークの影響を受けやすいネットとして抽出する。
【０１５０】
このようにすることにより、配線間隔が配線長に応じた値以下となるネットを発見して、クロストークの影響を受け易いネットを設計の際に検出することができる。
【０１５１】
なお、配線間隔を、隣接配線との間隔のうちの最小のものとする場合について説明したが、隣接配線との平走距離と、隣接配線との間隔に基づいた関数値（例えば配線間容量）の総和を算出し、得られた値を配線間隔として用いてもよい。この場合、より精密な検証を行うことができる。
【０１５２】
また、配線間隔算出ステップＳ６０１と、配線長算出ステップＳ６０２との順は、逆であってもよい。
【０１５３】
（第７の実施形態）
図１９は、本発明の第７の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。図１９の設計方法は、標準遅延算出ステップＳ７０１と、セル選択ステップＳ７０２と、論理設計ステップＳ７０３とを備えている。
【０１５４】
標準遅延算出ステップＳ７０１では、ライブラリに含まれる各セルについて、入力波形の傾きと負荷容量との複数の組み合わせのそれぞれに対して標準的な遅延値を求める。
【０１５５】
セル選択ステップＳ７０２では、演算部は、標準遅延算出ステップＳ７０１で得られた標準遅延値に基づいて、負荷容量の変動に対する遅延値変動量が、当該半導体集積回路の設計仕様で定められたサイクルタイムに対する所定の割合、例えば１０分の１以下であるセルを選択する。ここで、１０分の１以外の割合を基準としてもよい。
【０１５６】
論理設計ステップＳ７０３では、演算部は、セル選択ステップＳ７０２で選択された論理セル群のみを用いて論理設計を行う。
【０１５７】
このように、サイクルタイムに対する遅延変動の割合が大きくなる可能性の高いセルを用いずに論理回路設計を行うので、クロストークの影響を受けにくい半導体集積回路を設計することができる。また、クロストークの影響を受ける場合においても、遅延変動の量がサイクルタイムに対してあまり大きくないので、比較的容易に回路の修正を行うことができる。
【０１５８】
（第８の実施形態）
図２０は、本発明の第８の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。図２０の設計方法は、セル配置配線ステップＳ８０１と、セル検出ステップＳ８０２と、マージン算出ステップＳ８０３と、ネット選択ステップＳ８０４と、配線変更ステップＳ８０５とを備えている。
【０１５９】
セル配置配線ステップＳ８０１では、演算部は、論理セルの配置配線を行う。セル検出ステップＳ８０２では、演算部は、セル配置配線ステップＳ８０１で配置された論理セルの中から、正信号とその反転信号とを出力するフリップフロップを検出する。
【０１６０】
マージン算出ステップＳ８０３では、演算部は、セル検出ステップＳ８０２で検出されたフリップフロップに関して、ホールドタイミングマージンを求める。
【０１６１】
ネット選択ステップＳ８０４では、演算部は、検出されたフリップフロップの出力に接続された正論理ネット及び逆論理ネットのうち、ホールドタイミングマージンが最も少ないものを対象ネットとして選択する。１つのネットが複数の終点を持つパスの場合は、その中で最も小さいマージンをそのネットのマージンとする。
【０１６２】
配線変更ステップＳ８０５では、演算部は、ネット選択ステップＳ８０４で選ばれたネットの配線に沿って、その両側に、選択されたネットの信号の反転信号を伝送する配線を追加して配置する。この配線は、選択されたネットの配線と同一のフリップフロップに接続される。すなわち、フリップフロップの正出力端子及び負出力端子のうち、一方には選択されたネットの配線が接続され、他方には追加される配線が接続される。
【０１６３】
本実施形態によると、ネット選択ステップＳ８０４で選択された、ホールドマージンの少ないネットの両側に、その逆相の信号が走ることになる。また、この信号は、選択されたネットの信号と同一のフリップフロップから出力されるので、両信号のタイミングはほぼ同時である。正相、逆相信号線間のカップリング容量が大きい場合には、クロストークが生じ、その結果、ホールドマージンの少ないネットの信号の遅延値を増大させることができる。すなわち、セル面積の増加を行うことなしに、ホールドタイムマージンを大きくすることができる。
【０１６４】
なお、セル配置配線ステップでは、配線を行わずにセル配置のみを行ってもよい。この場合、マージン算出ステップＳ８０３では、仮想的な配線長に基づいて計算を行う。また、この場合、配線変更ステップＳ８０５では、まず、修正したい箇所について必要な配線を行った後に、残りの配線を行う。
【０１６５】
本実施形態では、ネット選択ステップＳ８０４で選ばれたネットの配線に沿って、その両側に平行配線を行う場合について説明したが、片側のみに配線を行ってもよい。平行配線長は、できる限り長くしてもよいし、対象ネットの配線よりも短くてもよい。平行配線の長さは、ホールドタイミングマージン値に応じて定めてもよい。
【０１６６】
また、ネット選択ステップＳ８０４で選ばれなかったネットのセットアップタイミングにかかわらず、配線変更ステップＳ８０５の処理を行っているが、配線変更ステップＳ８０５を行った後に、選ばれなかったネットがセットアップタイミングエラーを起こす場合は、配線変更ステップＳ８０５を行わないようにしてもよいし、クロストークを生じさせない信号を出力する別のバッファを新たに追加してもよい。この場合、エリアの増加が発生するが、全ての出力についてバッファが追加されるわけではないので、エリアペナルティーは小さい。
【０１６７】
（第９の実施形態）
図２１は、本発明の第９の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。図２１の設計方法は、信号波形傾き算出ステップＳ９０１と、ビクティムネット抽出ステップＳ９０２と、回路修正ステップＳ９０３とを備えている。
【０１６８】
信号波形傾き算出ステップＳ９０１では、演算部は、フリップフロップの入力端子に接続された配線を駆動する第１のインスタンス（第１のセル）の出力端子、及びこの配線と隣接する配線を駆動する第２のインスタンス（第２のセル）の出力端子のそれぞれにおける信号波形傾きを求める。
【０１６９】
ビクティムネット抽出ステップＳ９０２では、演算部は、信号波形傾き算出ステップＳ９０１で求められた、第１及び第２の２つのインスタンスの信号波形傾きを組にして、両者を比較し、第１のインスタンスの信号波形傾きの方が緩やかな組を抽出する。
【０１７０】
回路修正ステップＳ９０３では、演算部は、抽出された組に関して、第１のインスタンスの出力端子における信号波形傾きを急峻にするような、このインスタンスに対する回路修正、又は、第２のインスタンスの出力端子における信号波形傾きを緩やかにするような、このインスタンスに対する回路修正を行う。ここで、信号波形傾きを急峻にする際には、インスタンスの駆動能力を大きくし、信号波形傾きを緩やかにする際には、インスタンスの駆動能力を小さくする。インスタンスは、例えば、駆動能力が十分に大きく、駆動能力の調整が可能なインバータである。
【０１７１】
本実施形態によると、仮に、フリップフロップの入力信号配線と、この配線の隣接配線との間でクロストークが生じたとしても、フリップフロップの入力信号配線がビクティムになることはないので、フリップフロップへのパスがタイミングエラーになることはない。この結果、フリップフロップへのデータ入力がビクティムにならないので、より効率的にセットアップタイムの増加を押さえることができる。
【０１７２】
なお、インスタンスの駆動能力を大きくするには、そのトランジスタサイズを大きくしてもよいし、トランジスタのしきい値電圧を低くしてもよい。
【０１７３】
また、ある配線に隣り合う配線が１つである場合について説明したが、隣り合う配線が複数存在している場合も同様である。
【０１７４】
また、第１のインスタンスの出力端子における信号波形傾きが、第２のインスタンスの出力端子における信号波形傾きよりも急峻になるように、第１のインスタンスの駆動能力を大きくする場合について説明したが、第１のインスタンスの駆動能力を大きくするのであれば、第１のインスタンスの出力端子における信号波形傾きが、第２のインスタンスの出力端子における信号波形傾きよりも緩やかであってもよい。また、第２のインスタンスの駆動能力を小さくする場合も同様である。
【０１７５】
また、図２１の処理を、詳細配線後に行ってもよいし、仮想的な配線モデルを用いて詳細配線前に行ってもよい。
【０１７６】
【発明の効果】
以上のように、本発明によると、半導体集積回路の設計の際に、タイミング解析の結果に影響を与えるようなクロストークノイズを検出することができる。また、クロストークの影響を受けにくい半導体集積回路を効率よく設計することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るクロストークノイズ検出方法の処理の流れを示すフローチャートである。
【図２】図１の処理の対象とする回路の例を示す回路図である。
【図３】ビクティムの信号遷移タイミングの例を示すグラフである。
【図４】アグレッサとビクティムとの間における信号遷移タイミングの関係の例を示すグラフである。
【図５】アグレッサとビクティムとの間における信号遷移タイミングの関係の他の例を示すグラフである。
【図６】本発明の第２の実施形態に係るクロストークノイズ検出方法の処理の流れを示すフローチャートである。
【図７】（ａ）は、ｔｙｐ条件におけるアグレッサとビクティムとの信号遷移タイミングの一例を示すグラフである。
（ｂ）は、ｍａｘ条件におけるアグレッサとビクティムとの信号遷移タイミングの一例を示すグラフである。
（ｃ）は、ｍａｘ条件におけるアグレッサとビクティムとの信号遷移タイミングの他の例を示すグラフである。
【図８】本発明の第３の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図９】図８の処理の対象とする回路の例を示す回路図である。
【図１０】（ａ）は、図９のインスタンス３２１及び３３１のそれぞれの出力の信号遷移３６１及び３８１の例を示すタイミング図である。
（ｂ）は、図９のインスタンス３２２及び３３２のそれぞれの出力の信号遷移３６２及び３８２の例を示すタイミング図である。
（ｃ）は、図９のインスタンス３２３及び３３３のそれぞれの出力の信号遷移３６３及び３８３の例を示すタイミング図である。
【図１１】（ａ）は、回路修正後における図９のインスタンス３２１及び３３１のそれぞれの出力の信号遷移３６４及び３８１の例を示すタイミング図である。
（ｂ）は、回路修正後における図９のインスタンス３２２及び３３２のそれぞれの出力の信号遷移３６５及び３８２の例を示すタイミング図である。
（ｃ）は、回路修正後における図９のインスタンス３２３及び３３３のそれぞれの出力の信号遷移３６６及び３８３の例を示すタイミング図である。
【図１２】図９のインスタンス３２３及び３３３のそれぞれの出力の信号遷移の他の例を示すタイミング図である。
【図１３】本発明の第４の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図１４】（ａ）は、図１３の処理の対象とする回路の例を示す回路図である。
（ｂ）は、図１３の処理の対象とする回路の他の例を示す回路図である。
（ｃ）は、図１３の処理の対象とする回路の更に他の例を示す回路図である。
【図１５】（ａ）は、  図１４（ａ）の回路における信号を示すタイミング図である。
（ｂ）は、  図１４（ｂ）の回路における信号を示すタイミング図である。
（ｃ）は、  図１４（ｃ）の回路における信号を示すタイミング図である。
【図１６】本発明の第５の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図１７】本発明の第６の実施形態に係る半導体集積回路の設計における検証方法の処理の流れを示すフローチャートである。
【図１８】図１７の処理の対象とする配線のレイアウトの例を示すレイアウト図である。
【図１９】本発明の第７の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図２０】本発明の第８の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図２１】本発明の第９の実施形態に係る半導体集積回路の設計方法の処理の流れを示すフローチャートである。
【図２２】温度及び電源電圧が取り得る範囲を示すグラフである。
【図２３】（ａ）は、静的タイミングシミュレーション結果の例を示すグラフである。
（ｂ）は、（ａ）においてクロストークを考慮した場合のグラフである。
【符号の説明】
Ｓ１０１，Ｓ２０１  遅延計算ステップ
Ｓ１０２，Ｓ２０２，Ｓ３０２，Ｓ４０２  タイミング解析ステップ
Ｓ１０３  遅延変動量計算ステップ
Ｓ１０４  クロストーク判定タイミング最適化ステップ
Ｓ１０５  クロストーク判定ステップ
Ｓ２０３  信号遷移タイミング比較ステップ
Ｓ２０４  クロストーク考慮タイミング解析ステップ
Ｓ３０３  遅延修正可能幅決定ステップ
Ｓ３０４，Ｓ４０４，Ｓ９０３  回路修正ステップ
Ｓ５０１  配線長見積りステップ
Ｓ５０２  配線制約算出ステップ
Ｓ５０３  配線ステップ
Ｓ６０１  配線間隔算出ステップ
Ｓ６０２  配線長算出ステップ
Ｓ６０３  制約比較ステップ
Ｓ７０１  標準遅延算出ステップ
Ｓ７０２  セル選択ステップ
Ｓ７０３  論理設計ステップ
Ｓ８０１  セル配置配線ステップ
Ｓ８０２  セル検出ステップ
Ｓ８０３  マージン算出ステップ
Ｓ８０４  ネット選択ステップ
Ｓ８０５  配線変更ステップ
Ｓ９０１  信号波形傾き算出ステップ
Ｓ９０２  ビクティムネット抽出ステップ
【図１】
2004280439.tif 000003
【図２】
2004280439.tif 000004
【図３】
2004280439.tif 000005
【図４】
2004280439.tif 000006
【図５】
2004280439.tif 000007
【図６】
2004280439.tif 000008
【図７】
2004280439.tif 000009
【図８】
2004280439.tif 000010
【図９】
2004280439.tif 000011
【図１０】
2004280439.tif 000012
【図１１】
2004280439.tif 000013
【図１２】
2004280439.tif 000014
【図１３】
2004280439.tif 000015
【図１４】
2004280439.tif 000016
【図１５】
2004280439.tif 000017
【図１６】
2004280439.tif 000018
【図１７】
2004280439.tif 000019
【図１８】
2004280439.tif 000020
【図１９】
2004280439.tif 000021
【図２０】
2004280439.tif 000022
【図２１】
2004280439.tif 000023
【図２２】
2004280439.tif 000024
【図２３】
2004280439.tif 000025