(57)【要約】【課題】好適な配線レイアウトを有する半導体集積回路を実現可能な新たな設計手法を提供する。【解決手段】半導体集積回路の設計方法であって、前記集積回路のレイアウト設計用の設計データを保持し、前記集積回路を構成する配線のスイッチング確率の情報を保持し、前記配線の配置を、前記設計データと前記スイッチング確率とに基づいて決定することを特徴とする設計方法。【選択図】図１
2009099899.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の設計方法であって、
前記集積回路のレイアウト設計用の設計データを保持し、
前記集積回路を構成する配線のスイッチング確率の情報を保持し、
前記配線の配置を、前記設計データと前記スイッチング確率とに基づいて決定することを特徴とする設計方法。
【請求項２】
前記配置の決定では、前記スイッチング確率が低い配線を、前記集積回路の上位階層に優先的に配置することを特徴とする請求項１に記載の設計方法。
【請求項３】
前記配置の決定では、前記集積回路の最上位階層に配置する配線は全て、前記スイッチング確率が最も低い配線とすることを特徴とする請求項１に記載の設計方法。
【請求項４】
前記集積回路の機能設計用の動作記述を保持し、
前記動作記述に基づいて、前記集積回路の論理設計用のＲＴＬ記述を生成し、
前記ＲＴＬ記述に関するＲＴＬ検証を行って、ＲＴＬ検証結果を取得し、
前記ＲＴＬ検証結果に基づいて、前記スイッチング確率を導出し、
前記ＲＴＬ検証により検証された前記ＲＴＬ記述に基づいて、ネットリストである前記設計データを生成することを特徴とする請求項１に記載の設計方法。
【請求項５】
集積回路の設計装置であって、
前記集積回路のレイアウト設計用の設計データを管理するデータ管理部と、
前記集積回路を構成する配線のスイッチング確率の情報を管理する確率管理部と、
前記配線の配置を、前記設計データと前記スイッチング確率とに基づいて決定する配線配置決定部とを備えることを特徴とする設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の設計方法及び設計装置に関する。
【背景技術】
【０００２】
集積回路の設計は、ＥＤＡ（Electronic Design Automation）ツールを用いて自動的に行われる事が多い。集積回路の自動設計は一般に、機能設計、論理設計、レイアウト設計という順番で段階的に行われる。
【０００３】
集積回路は、不要輻射対策やノイズ対策を必要とする事が多い。集積回路の不要輻射を低減させる手法の１つとして、集積回路の最上位階層を電源配線やグラウンド配線に専用の階層とし、当該階層に大面積の電源配線やグラウンド配線を形成するという手法が挙げられる。このような配線により、集積回路のシールド効果が得られる。
【０００４】
しかし、集積回路の製造コストを低減するためには、配線層の階層数をなるべく少なくして、集積回路の製造工程数を削減することが望ましい。よって、集積回路の最上位階層を電源配線やグラウンド配線に専用の階層とすることは望ましくない。当該階層の無駄が大き過ぎるからである。
【０００５】
特許文献１には、半導体装置のレイアウト方法の例が開示されている。当該レイアウト方法では、シールド配線として使用する電源配線に対して、指定情報を与える。そして、当該レイアウト方法では、電源配線のレイアウトを実施し、上記の指定情報が与えられた電源配線をシールド配線として認識し、ノイズによる影響を受けやすい機能ブロックを、シールド配線として認識した電源配線の下に配置する。これにより、上記の機能ブロックのノイズによる誤動作が防止される。
【特許文献１】特開２００４−３４９６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、好適な配線レイアウトを有する集積回路を実現可能な新たな設計手法を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の実施例は、集積回路の設計方法であって、前記集積回路のレイアウト設計用の設計データを保持し、前記集積回路を構成する配線のスイッチング確率の情報を保持し、前記配線の配置を、前記設計データと前記スイッチング確率とに基づいて決定することを特徴とする設計方法である。
【０００８】
本発明の実施例は、集積回路の設計装置であって、前記集積回路のレイアウト設計用の設計データを管理するデータ管理部と、前記集積回路を構成する配線のスイッチング確率の情報を管理する確率管理部と、前記配線の配置を、前記設計データと前記スイッチング確率とに基づいて決定する配線配置決定部とを備えることを特徴とする設計装置である。
【発明の効果】
【０００９】
本発明によれば、好適な配線レイアウトを有する集積回路を実現可能な新たな設計手法が提供される。
【発明を実施するための最良の形態】
【００１０】
本発明の実施例を、図面に基づいて説明する。
【００１１】
図１は、集積回路の設計装置１０１の機能構成図である。設計装置１０１はここでは、集積回路の自動設計用のコンピュータプログラムがインストールされたＰＣ（パーソナルコンピュータ）又はＷＳ（ワークステーション）であり、ＣＰＵ等の情報処理部、ＲＡＭやＲＯＭやＨＤＤ等の記憶部、マウスやキーボード等の操作部、ディスプレイ等の表示部を備える。
【００１２】
設計装置１０１はここでは、動作記述管理部１１１と、ＲＴＬ設計部１２１と、ＲＴＬ検証部１２２と、ＲＴＬ記述管理部１３１と、ＲＴＬ検証結果管理部１３２と、論理設計部１４１と、データ管理部の具体例であるネットリスト管理部１５１と、セル配置決定部１６１と、配線配置決定部１６２と、タイミング検証部１６３と、レイアウトデータ管理部１７１とを備える。これらの機能ブロックはここでは、上記コンピュータプログラムにより実現される。ＲＴＬは、Register Transfer Levelの略語に相当する。
【００１３】
図１には、自動設計対象の半導体集積回路３０１が示されている。
【００１４】
動作記述管理部１１１は、集積回路３０１の動作記述を管理するブロックである。当該動作記述は、集積回路３０１の機能設計用の設計データである。動作記述管理部１１１はここでは、ユーザーにより入力された動作記述を保持する。
【００１５】
ＲＴＬ設計部１２１は、上記動作記述に基づいて、集積回路３０１のＲＴＬ記述を生成するブロックである。当該ＲＴＬ記述は、ＲＴＬ記述管理部１３１によって保持される。ＲＴＬ検証部１２２は、上記ＲＴＬ記述に関するＲＴＬ検証を行って、ＲＴＬ検証結果を取得するブロックである。当該ＲＴＬ検証結果は、ＲＴＬ検証結果管理部１３２によって保持される。上記ＲＴＬ記述は、上記ＲＴＬ検証結果に応じて、自動又は手動で適宜修正される。
【００１６】
ＲＴＬ記述管理部１３１は、集積回路３０１のＲＴＬ記述を管理するブロックである。当該ＲＴＬ記述は、集積回路３０１の論理設計用の設計データである。ＲＴＬ検証結果管理部１３２は、当該ＲＴＬ記述に関するＲＴＬ検証結果を管理するブロックである。当該ＲＴＬ検証結果の例としては、シミュレーションにより得られた信号波形データやセル動作データ等が挙げられる。当該ＲＴＬ検証結果は例えば、ＶＣＤ（Value Change Dump）ファイルに格納される。
【００１７】
論理設計部１４１は、上記ＲＴＬ検証により検証された上記ＲＴＬ記述に基づいて、集積回路３０１のネットリストを生成するブロックである。当該ネットリストは、ネットリスト管理部１５１によって保持される。
【００１８】
ネットリスト管理部１５１は、集積回路３０１のネットリストを管理するブロックである。当該ネットリストは、集積回路３０１のレイアウト設計用の設計データである。
【００１９】
セル配置決定部１６１は、上記ネットリストに基づいて、集積回路３０１を構成するセルの配置を決定するブロックである。配線配置決定部１６２は、上記ネットリストに基づいて、集積回路３０１を構成する配線の配置を決定するブロックである。これらのセル及び配線のレイアウトデータは、レイアウトデータ管理部１７１によって保持される。タイミング検証部１６３は、上記レイアウトデータに関するタイミング検証を行うブロックである。上記レイアウトデータは、上記タイミング検証の実行結果に応じて、自動又は手動で適宜修正される。
【００２０】
レイアウトデータ管理部１７１は、集積回路３０１のレイアウトデータを管理するブロックである。当該レイアウトデータは、集積回路３０１を構成するセル及び配線のレイアウト（配置）を規定するデータである。
【００２１】
設計装置１０１はここでは、確率導出部２０１と、確率管理部２１１とを更に備える。これらの機能ブロックもここでは、上記コンピュータプログラムにより実現される。
【００２２】
確率導出部２０１は、上記ＲＴＬ検証結果に基づいて、集積回路３０１を構成する配線のスイッチング確率を導出するブロックである。確率導出部２０１は、集積回路３０１の各配線のスイッチング確率を導出する。確率導出部２０１により導出されたスイッチング確率の情報は、確率管理部２１１により保持される。
【００２３】
確率管理部２１１は、集積回路３０１を構成する配線のスイッチング確率の情報を管理するブロックである。確率管理部２１１は、集積回路３０１の各配線のスイッチング確率の情報を管理する。確率管理部２１１により保持されるスイッチング確率は、確率導出部２０１により導出されたスイッチング確率でも、既存のツールにより導出されたスイッチング確率でも、ユーザーにより導出されたスイッチング確率でもよい。
【００２４】
上記スイッチング確率はここでは、配線配置決定部１６２により利用される。本実施例の配線配置決定部１６２は、集積回路３０１を構成する配線の配置を、上記ネットリストと上記スイッチング確率とに基づいて決定する。上記スイッチング確率はここでは更に、セル配置決定部１６１により利用される。本実施例のセル配置決定部１６１は、集積回路３０１を構成するセルの配置を、上記ネットリストと上記スイッチング確率とに基づいて決定する。
【００２５】
スイッチング確率の概念を、図２に基づいて説明する。図２は、集積回路３０１の配線構造の例を表しており、図２には、５本の配線Ｌ１乃至Ｌ５が示されている。配線Ｌ１はテスト制御信号用の配線、配線Ｌ２はモード設定信号用の配線、配線Ｌ３は入出力信号用の配線、配線Ｌ４はクロック信号用の配線、配線Ｌ５はリセット信号用の配線である。
【００２６】
テスト制御信号やモード設定信号やリセット信号は一般に、単位時間あたりにスイッチされる回数が少なく、スイッチング確率が低いとみなす事ができる。すなわち、配線Ｌ１やＬ２やＬ５は、スイッチング確率が低い配線とみなす事ができる。一方、入出力信号やクロック信号は一般に、単位時間あたりにスイッチされる回数が多く、スイッチング確率が高いとみなす事ができる。すなわち、配線Ｌ３やＬ４は、スイッチング確率が高い配線とみなす事ができる。
【００２７】
スイッチング確率の具体例を、図３及び図４に基づいて説明する。図３には、集積回路３０１の例として、８個のフリップフロップ回路ＦＦ０乃至ＦＦ７と１個の制御回路ＣＬとを有するカウンタ回路が示されている。図４には、クロック信号ＣＫと、リセット信号ＲＴと、フリップフロップＦＦ０乃至ＦＦ７の出力信号ＯＵＴＤＡＴＡ［０］乃至［７］とが示されている。図４では例えば、リセット信号ＲＴや出力信号ＯＵＴＤＡＴＡ［７］が、スイッチング確率が低い信号に相当する。一方、図４では例えば、クロック信号ＣＫや出力信号ＯＵＴＤＡＴＡ［０］が、スイッチング確率が高い信号に相当する。
【００２８】
以上の説明から理解されるように、各配線のスイッチング確率は例えば、各信号の単位時間あたりのスイッチ回数を利用して定量化可能である。このようなスイッチング確率は例えば、各信号の単位時間あたりのスイッチ回数をカウントすることで導出可能である。そこで、本実施例の確率導出部２０１は例えば、各信号の単位時間あたりのスイッチ回数をカウントすることで、各配線のスイッチング確率を導出する。各信号のスイッチ回数は例えば、ＶＣＤファイル内の信号波形データを利用してカウント可能である。
【００２９】
スイッチング確率は、低確率ｐ１及び高確率ｐ２のように２値化されていてもよいし、確率ｐ１乃至ｐＮのようにＮ値化（Ｎは３以上の整数）されていてもよい。図２では、低いスイッチング確率を有する配線Ｌ１，Ｌ２，及びＬ５、高いスイッチング確率を有する配線Ｌ３及びＬ４というように、スイッチング確率が２値化されている。一方、図３及び図４では例えば、低いスイッチング確率を有するＲＴ及びＯＵＴＤＡＴＡ［７］、高いスイッチング確率を有するＣＫ及びＯＵＴＤＡＴＡ［０］、中程度のスイッチング確率を有するＯＵＴＤＡＴＡ［１］乃至［６］というように、スイッチング確率を３値化することが可能である。スイッチング確率は、２値化もＮ値化もされていなくても構わない。
【００３０】
以下、スイッチング確率と配線レイアウトとの関係について説明する。
【００３１】
上述のように、図２の配線Ｌ１やＬ２やＬ５は、スイッチング確率が低い配線とみなす事ができる。配線Ｌ１はテスト制御信号用の配線であり、配線Ｌ２はモード設定信号用の配線であり、配線Ｌ５はリセット信号用の配線である。上述のように、これらの信号は、単位時間あたりのスイッチ回数が少ない。そのため、これらの配線は、集積回路３０１の実動作中はほぼＤＣレベルにあるとみなす事ができる。よって、これらの配線を集積回路３０１の最上位階層に配置すれば、電源配線やグラウンド配線を当該階層に配置するのと同様のシールド効果が得られると考えられる。
【００３２】
そこで、配線配置決定部１６２は、スイッチング確率が低い配線を、集積回路３０１の上位階層に優先的に配置する。このような配線レイアウトの例を図５に示す。図５では、スイッチング確率が２値化されており、スイッチング確率が低いメタル配線がＭ１、スイッチング確率が高いメタル配線がＭ２で示されている。図５では、メタル配線Ｍ１が優先的に上位階層に配置されており、メタル配線Ｍ１は主に上位階層Ｘ３及びＸ４に、メタル配線Ｍ２は主に下位階層Ｘ１及びＸ２に配置されている。これにより、集積回路３０１のシールド効果が得られる。本実施例によれば、シールド効果が期待されるメタル配線Ｍ１が相対的に上位に配置され、ノイズ源となるおそれがあるメタル配線Ｍ２が相対的に下位に配置される。
【００３３】
スイッチング確率が２値化又はＮ値化される場合、配線配置決定部１６２は、集積回路３０１の最上位階層に配置する配線は全て、スイッチング確率が最も低い配線とすることが望ましい。これにより、より強力なシールド効果が得られる。図５では実際、集積回路３０１の最上位階層Ｘ４の配線は全て、メタル配線Ｍ１となっている。スイッチング確率がＮ値化される場合、配線配置決定部１６２は、集積回路３０１の最上位階層に配置する配線は全て、スイッチング確率の低さが１番からＫ番までの配線としてもよい。ただし、ＫはＮよりも小さい整数である。配線配置決定部１６２は、集積回路３０１の最上位階層に配置する配線は全て、スイッチング確率が閾値未満又は閾値以下の配線としてもよい。これは、スイッチング確率が２値化もＮ値化もされない場合にも適用可能である。
【００３４】
以上のように、配線配置決定部１６２は、配線の配置を、ネットリストとスイッチング確率とに基づいて決定する。これにより、上記のようなシールド効果を得ることが可能になる。また、本実施例では、最上位階層を電源配線やグラウンド配線に専用の階層とする必要がない。にもかかわらず、本実施例では、この場合と同様のシールド効果を得ることが可能である。よって、本実施例では、最上位階層の無駄を回避して、集積回路３０１の製造コストを抑制することができる。最上位階層を電源配線に専用の階層とする場合の例を、図６に示す。図６では、最上位階層Ｘ５が電源配線ＭＳに専用の階層となっている。なお、配線配置決定部１６２は、配線の配置を決定する際、ネットリストやスイッチング確率に加えて、配線混雑の緩和や信号のスピードを考慮する事が望ましい。
【００３５】
本実施例では、セル配置決定部１６１も、セルの配置を、ネットリストとスイッチング確率とに基づいて決定する。セルの配置を決定する際にスイッチング確率を考慮することで、配線の配置をより好適化することが可能になるからである。これにより、より好適なシールド効果が実現可能になる。
【００３６】
以下、設計装置１０１により実行される設計方法について説明する。図７は、当該設計方法に関するフローチャート図である。
【００３７】
先ず、ユーザーが、集積回路３０１の動作記述を設計装置１０１に入力する。当該動作記述の記述言語は例えば、Ｃ言語である。当該動作記述は、動作記述管理部１１１により保持される。
【００３８】
次に、ＲＴＬ設計部１２１が、上記動作記述に基づいて、集積回路３０１のＲＴＬ記述を自動生成する（Ｓ１１１）。当該ＲＴＬ記述の記述言語は例えば、ＨＤＬ（Hardware Description Language）である。当該ＲＴＬ記述は、ＲＴＬ記述管理部１３１により保持される。
【００３９】
次に、ＲＴＬ検証部１２２が、上記ＲＴＬ記述に関するＲＴＬ検証を実行して、ＲＴＬ検証結果を取得する（Ｓ１１２）。当該ＲＴＬ検証では例えば、入力信号や出力期待値等のテストベクタが考慮される。当該ＲＴＬ検証結果は、ＲＴＬ検証結果管理部１３２により保持される。
【００４０】
次に、論理設計部１４１が、上記ＲＴＬ検証が済んだ上記ＲＴＬ記述に基づいて、集積回路３０１のネットリストを自動生成する（Ｓ１２１）。当該ネットリストを生成する際には例えば、クロックスピードやクリティカルパス等のタイミング制約が考慮される。当該ネットリストは、ネットリスト管理部１５１により保持される。
【００４１】
一方で、確率導出部２０１は、上記ＲＴＬ検証結果に基づいて、集積回路３０１を構成する配線のスイッチング確率を導出する（Ｓ２０１）。Ｓ２０１の処理は、Ｓ１２１の処理の前に実行しても後に実行しても構わない。当該スイッチング確率の情報は、確率管理部２１１により保持される。
【００４２】
次に、セル配置決定部１６１が、集積回路３０１を構成するセルの配置を、上記ネットリストと上記スイッチング確率とに基づいて自動決定する（Ｓ１３１）。当該配置を決定する際には例えば、上記のようなタイミング制約が考慮される。上記セルの配置の情報は、レイアウトデータ管理部１７１により保持される。
【００４３】
次に、配線配置決定部１６２が、集積回路３０１を構成する配線の配置を、上記ネットリストと上記スイッチング確率とに基づいて自動決定する（Ｓ１３２）。当該配置を決定する際には例えば、上記のようなタイミング制約が考慮される。上記配線の配置の情報は、レイアウトデータ管理部１７１により保持される。
【００４４】
次に、タイミング検証部１６３が、上記セル及び配線のレイアウトデータに関するタイミング検証を行う（Ｓ１３３）。当該タイミング検証では例えば、上記のようなタイミング制約が考慮される。
【００４５】
Ｓ１３１やＳ１３２で利用されるスイッチング確率は、既存のツールやユーザーにより導出されたスイッチング確率でもよい。この場合、Ｓ２０１の処理は不要である。
【図面の簡単な説明】
【００４６】
【図１】集積回路の設計装置の機能構成図である。
【図２】スイッチング確率の概念を説明するための図である。
【図３】スイッチング確率の具体例を説明するための回路図である。
【図４】スイッチング確率の具体例を説明するための波形図である。
【図５】集積回路の配線レイアウトの例を表す（実施例）。
【図６】集積回路の配線レイアウトの例を表す（比較例）。
【図７】本実施例の設計方法に関するフローチャート図である。
【符号の説明】
【００４７】
１０１  設計装置
１１１  動作記述管理部
１２１  ＲＴＬ設計部
１２２  ＲＴＬ検証部
１３１  ＲＴＬ記述管理部
１３２  ＲＴＬ検証結果管理部
１４１  論理設計部
１５１  ネットリスト管理部
１６１  セル配置決定部
１６２  配線配置決定部
１６３  タイミング検証部
１７１  レイアウトデータ管理部
２０１  確率導出部
２１１  確率管理部
３０１  集積回路
【図１】
2009099899.tif 000003
【図２】
2009099899.tif 000004
【図３】
2009099899.tif 000005
【図４】
2009099899.tif 000006
【図５】
2009099899.tif 000007
【図６】
2009099899.tif 000008
【図７】
2009099899.tif 000009