(57)【要約】【課題】半導体装置の設計におけるロジック回路のタイミングエラーの発生を低減し、コンピュータの処理時間を短縮する。【解決手段】コンピュータ１の配置情報入力部１ａは、半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付ける。マクロ−電源配線網配置部１ｂは、配置情報に従ってマクロ及び電源配線網を半導体チップに配置する。電圧降下率算出部１ｃは、マクロ及び電源配線網の配置による半導体チップの電源電圧降下率を算出する。領域分割部１ｄは、電源電圧降下率に基づいて半導体チップを分割領域に分割する。ロジック回路配置部１ｅは、接続関係のあるロジック回路を分割領域の同一領域内に配置する。これにより、ロジック回路に供給される電源電圧に差がなくなり、ロジック回路のタイミングエラーの発生が低減され、コンピュータ１の処理時間を短縮する。【選択図】        図１
2004151929.tif 000002
【特許請求の範囲】
【請求項１】
半導体チップの電源電圧降下による動作速度変動に対応したコンピュータを使用する半導体装置の設計方法において、
半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付け、
前記配置情報に従って前記マクロ及び前記電源配線網を前記半導体チップに配置し、
前記マクロ及び前記電源配線網の配置による前記半導体チップの電源電圧降下率を算出し、
前記電源電圧降下率に基づいて前記半導体チップを分割領域に分割し、
接続関係のあるロジック回路を前記分割領域の同一領域内に配置する、
ことを特徴とする半導体装置の設計方法。
【請求項２】
前記同一領域内に前記ロジック回路を配置し尽くした場合、前記同一領域に隣接する分割領域に前記ロジック回路を配置することを特徴とする請求項１記載の半導体装置の設計方法。
【請求項３】
前記分割領域に前記ロジック回路を配置する際、前記分割領域の属性を前記ロジック回路に付与することを特徴とする請求項１記載の半導体装置の設計方法。
【請求項４】
レイアウト設計が完了するまで、前記属性が付与されたロジック回路を、前記属性を有している分割領域に固定することを特徴とする請求項３記載の半導体装置の設計方法。
【請求項５】
前記ロジック回路の信号のタイミング解析を実行する際、前記ロジック回路に、前記分割領域の前記電源電圧降下率を反映させることを特徴とする請求項１記載の半導体装置の設計方法。
【請求項６】
新たなロジック回路を追加配置する際、予め配置する前記分割領域の前記電源電圧降下率を前記ロジック回路に反映させることを特徴とする請求項１記載の半導体装置の設計方法。
【請求項７】
前記ロジック回路の信号のタイミング解析を実行し、エラーを検出した場合、前記ロジック回路間に前記信号のタイミング調整を図るためのバッファ回路を挿入することを特徴とする請求項１記載の半導体装置の設計方法。
【請求項８】
前記ロジック回路が配置されている分割領域と同じ領域に、前記バッファ回路を配置することを特徴とする請求項７記載の半導体装置の設計方法。
【請求項９】
階層レイアウト領域内における前記分割領域の同一領域内に前記ロジック回路を配置することを特徴とする請求項１記載の半導体装置の設計方法。
【請求項１０】
前記同一領域内に前記ロジック回路を配置し尽くした場合、前記階層レイアウト領域内における前記同一領域に隣接する分割領域に前記ロジック回路を配置することを特徴とする請求項９記載の半導体装置の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体装置の設計方法に関し、特に半導体チップの電源電圧降下による動作速度変動に対応したコンピュータを使用する半導体装置の設計方法に関する。
【０００２】
【従来の技術】
ＬＳＩの電源は、一般にチップの外周から、チップ上の各セルに供給されているため、チップの中心部では、電源電圧が降下する。そのため、チップ上の位置によっては、同一特性のセルであっても電源電圧が異なるため、動作速度に違いが生じる。この電源電圧の降下を防ぐためには、電源供給用のパターン幅を広げればよいが、パターン幅を広げればＬＳＩの実装密度が低下する。
【０００３】
そこで、電源電圧降下の対策として、ＬＳＩの設計時に動作シミュレーションを行い、電源電圧降下に対応した設計をする必要がある。（例えば、特許文献１，２参照）また、以下のような半導体設計方法がある。図１８は、従来の半導体装置の設計手順を示したフローチャートである。コンピュータは、以下のステップに従って半導体装置を設計する。
【０００４】
［ステップＳ２１］チップ上にマクロ（マクロセル）を配置し、電源配線を行う。マクロとは、所定の機能を有する回路ブロックである。例えば、データを記憶するＲＡＭマクロ、加算、乗算を行う演算マクロなどがある。
【０００５】
［ステップＳ２２］半導体装置が所望の機能を有するように、マクロ間を接続するロジック回路（基本論理セル）をネットリスト、ライブラリ等に基づいて、配置する。また、所定の機能を有する回路ブロックを構成するために、ロジック回路を配置する。ロジック回路は、例えば、ＡＮＤ回路、ＯＲ回路、又はこれらから構成されるフリップフロップ回路などである。
【０００６】
［ステップＳ２３］ネットリスト、ライブラリ等に基づいて、マクロ、ロジック回路間を配線する。
［ステップＳ２４］マクロ、電源配線によるチップ上の電源電圧降下の解析を行い、チップ上の電源電圧分布を算出する。
【０００７】
［ステップＳ２５］算出された電源電圧分布における各ロジック回路の、信号の遅延時間、スルーレートなどのタイミング解析を行い、エラー判断をする。エラーがなければ、設計を終了する。エラーがあれば、ステップＳ２６へ進む。
【０００８】
［ステップＳ２６］タイミングエラーを修正するため、ロジック回路間、ロジック回路、マクロ間にバッファ回路などを挿入しタイミング調整をする。ステップＳ２２へ進み、再び電源解析を行う。
【０００９】
このように、従来の設計方法では、ロジック回路の配置を行って、チップ上のマクロ、電源解析、タイミング解析を行う。そして、タイミングエラーが生じれば、ロジック回路の再配置を行う。
【００１０】
【特許文献１】
特開２０００−９９５５４号公報（第７−８貢、第１図）
【特許文献２】
特開２０００−９９５６１号公報（第３−４貢、第１，２図）
【００１１】
【発明が解決しようとする課題】
しかし、従来の方法では、ロジック回路の配置は、無作為に行われる。そのため、多くのロジック回路が、電源電圧分布の異なる位置に配置された場合、多くのタイミングエラーが生じ、ロジック回路の再配置を行わなければならず、コンピュータの処理時間がかかってしまうという問題点があった。
【００１２】
本発明はこのような点に鑑みてなされたものであり、ロジック回路によるタイミングエラーの発生を低減し、半導体装置の設計におけるコンピュータの処理時間を短縮する半導体装置の設計方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明では、上記課題を解決するために、図１に示す半導体チップの電源電圧降下による動作速度変動に対応したコンピュータ１を使用する半導体装置の設計方法が提供される。コンピュータ１の配置情報入力部１ａは、半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付ける。マクロ−電源配線網配置部１ｂは、配置情報に従ってマクロ及び電源配線網を半導体チップに配置する。電圧降下率算出部１ｃは、マクロ及び電源配線網の配置による半導体チップの電源電圧降下率を算出する。領域分割部１ｄは、電源電圧降下率に基づいて半導体チップを分割領域に分割する。ロジック回路配置部１ｅは、接続関係のあるロジック回路を分割領域の同一領域内に配置する。
【００１４】
これにより、電圧降下率算出部１ｃは、半導体チップの電源電圧降下率を算出し、領域分割部１ｄは、電源電圧降下率に基づいて半導体チップを分割領域に分割する。そして、ロジック回路配置部１ｅは、接続関係のあるロジック回路を分割領域の同一領域に配置する。よって、ロジック回路に供給される電源電圧に差がなくなり、ロジック回路のタイミングエラーの発生を低減する。
【００１５】
【発明の実施の形態】
まず、本発明の原理について図面を参照して説明する。
図１は、本発明の原理を説明する原理図である。図１には、本発明の半導体装置の設計方法を実現するコンピュータ１が示してある。コンピュータ１は、配置情報入力部１ａ、マクロ−電源配線網配置部１ｂ、電圧降下率算出部１ｃ、領域分割部１ｄ、ロジック回路配置部１ｅ、ライブラリＤＢ１ｆ、及びネットリストＤＢ１ｇを有している。
【００１６】
ライブラリＤＢ１ｆは、半導体チップに配置するマクロ、及びマクロの消費電力に関する情報のデータベースである。ネットリストＤＢ１ｇは、ロジック回路の接続関係を規定した情報のデータベースである。具体的には、マクロ間を接続するロジック回路の接続関係、又は所定の機能を有する回路を構成するためのロジック回路の接続関係を示す情報である。ロジック回路とは、ＡＮＤ回路、ＯＲ回路、ＮＯＴ回路又はこれらの回路により構成されるフリップフロップ（以下ＦＦ）回路などである。
【００１７】
配置情報入力部１ａは、半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付ける。
マクロ−電源配線網配置部１ｂは、配置情報入力部１ａが受け付けた配置情報に従って、マクロ及び電源配線網を半導体チップに配置する。
【００１８】
電圧降下率算出部１ｃは、マクロ及び電源配線網の配置による半導体チップの電源電圧降下率を算出する。電圧降下率算出部１ｃは、ライブラリＤＢ１ｆを参照して、配置されたマクロの消費電力から電源電圧降下率を算出し、さらに配置された電源電圧網の長さ、幅から抵抗値を算出して電源電圧降下率を算出する。
【００１９】
領域分割部１ｄは、電圧降下率算出部１ｃによって算出された電源電圧降下率に基づいて半導体チップを分割領域に分割する。
ロジック回路配置部１ｅは、ネットリストＤＢ１ｇを参照して、接続関係のあるロジック回路を分割領域の同一領域内に配置する。
【００２０】
このように、半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付け、受け付けた配置情報に従って、マクロ及び電源配線網を半導体チップに配置する。そして、マクロ及び電源配線網の配置による半導体チップの電源電圧降下率を算出し、電源電圧降下率に基づいて半導体チップを分割領域に分割し、接続関係のあるロジック回路を分割領域の同一領域に配置するようにした。これにより、ロジック回路に供給される電源電圧に差がなくなり、ロジック回路のタイミングエラーの発生が低減され、コンピュータの処理時間を短縮することができる。
【００２１】
次に、本発明の実施の形態を、コンピュータに適用した場合を例にして説明する。
図２は、コンピュータのハードウェアブロック図である。コンピュータ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０ａによって装置全体が制御されている。ＣＰＵ１０ａには、バス１０ｇを介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０ｂ、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０ｃ、グラフィック処理装置１０ｄ、入力インタフェース１０ｅ、および通信インタフェース１０ｆが接続されている。
【００２２】
ＲＡＭ１０ｂには、ＣＰＵ１０ａに実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムや半導体装置を設計するアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０ｂには、ＣＰＵ１０ａによる処理に必要な各種データが保存される。ＨＤＤ１０ｃには、ＯＳやアプリケーションプログラムが格納される。
【００２３】
グラフィック処理装置１０ｄには、モニタ１０ｈが接続されている。グラフィック処理装置１０ｄは、ＣＰＵ１０ａからの命令に従って、画像をモニタ１０ｈの表示画面に表示させる。入力インタフェース１０ｅには、キーボード１０ｉと、マウス１０ｊとが接続されている。入力インタフェース１０ｅは、キーボード１０ｉやマウス１０ｊから送られてくる信号を、バス１０ｇを介してＣＰＵ１０ａに送信する。
【００２４】
通信インタフェース１０ｆは、図示しない他のコンピュータに接続されている。通信インタフェース１０ｆは、ＬＡＮなどのネットワーク１０ｋを介して、他のコンピュータとの間のデータの送受信を行う。
【００２５】
以上のようなハードウェア構成によって、本発明の半導体装置の設計方法を実現することができる。
図３は、コンピュータの機能ブロック図である。図に示すようにコンピュータ１０は、配置情報入力部１１、マクロ−電源配線網配置部１２、電圧降下率算出部１３、領域分割部１４、ロジック回路配置部１５、配線部１６、動作タイミング解析部１７、ライブラリＤＢ１８、及びネットリストＤＢ１９を有している。
【００２６】
ライブラリＤＢ１８は、半導体チップに配置するマクロ、及びそのマクロの消費電力に関する情報のデータベースである。マクロとは、所定の機能を有する回路ブロックである。例えば、データを記憶するＲＡＭマクロ、加算、乗算を行う演算マクロなどがある。
【００２７】
ネットリストＤＢ１９は、ロジック回路の接続関係を規定したデータベースである。具体的には、マクロ間を接続するロジック回路の接続関係、又は所定の機能を有する回路ブロックを構成するためのロジック回路の接続関係を規定した情報のデータベースである。ロジック回路とは、ＡＮＤ回路、ＯＲ回路、ＮＯＴ回路又はこれらの回路により構成されるＦＦ回路などである。所定の機能を有する回路ブロックとは、ロジック回路で構成されるクロック発生回路などである。ライブラリＤＢ１８、及びネットリストＤＢ１９は、例えば、図２に示すＨＤＤ１０ｃに構築される。
【００２８】
配置情報入力部１１は、半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を入力する。
マクロ−電源配線網配置部１２は、配置情報入力部１１によって入力された配置情報に従って、ライブラリＤＢ１８のマクロ、及び電源配線網を半導体チップに配置していく。
【００２９】
図４は、半導体チップと半導体チップに配置されたマクロを示す図である。図には、半導体チップ２０、半導体チップ２０上に配置されたマクロ２１ａ〜２１ｄを示している。図に示すようにマクロ−電源配線網配置部１２は、配置情報に従って半導体チップ２０にマクロ２１ａ〜２１ｄを配置する。
【００３０】
図５は、半導体チップと半導体チップに配置された電源配線網を示す図である。図には、半導体チップ２０、半導体チップ２０の周囲に設けられ電源を供給する電源パッド２２ａａ〜２２ａｄ、電源パッド２２ａａ〜２２ａｄの電源を半導体チップ２０上の各マクロ、及び各ロジック回路に供給する電源配線網２２ｂを示している。半導体チップ２０は、格子状の電源配線網２２ｂによって、電源パッド２２ａａ〜２２ａｄの電源を各マクロ及びロジック回路に供給するようになっている。図に示すようにマクロ−電源配線網配置部１２は、配線情報に従って半導体チップ２０に電源パッド２２ａａ〜２２ａｄ、電源配線網２２ｂを配置する。
【００３１】
電圧降下率算出部１３は、半導体チップに配置されたマクロ及び電源配線網に、電源が供給された場合を仮定し、半導体チップ上の電源電圧降下率を算出する。具体的には、ライブラリＤＢ１８のマクロの消費電力を参照して、半導体チップ上の各位置における電源電圧降下率を算出する。電源配線網の長さ、幅から電源配線網の抵抗値を算出して、半導体チップ上の各位置における電源電圧降下率を算出する。
【００３２】
領域分割部１４は、電圧降下率算出部１３によって算出された電源電圧降下率に基づいて、半導体チップを分割領域に分割する。
図６は、分割領域に分割した半導体チップを示す図である。図には、半導体チップ２０、半導体チップ２０の電圧降下率によって分割された分割領域Ａ１〜Ａｎを示している。半導体チップ２０の中央に近づくにつれ、電圧降下率が大きくなる。これは、半導体チップ２０の中央に近づくにつれ、マクロの消費電力が加算されるためである。また、図５で示したように、電源が供給される電源パッド２２ａａ〜２２ａｄから、半導体チップ２０の中央に近づくにつれ、電源配線網２２ｂの長さが長くなるため、抵抗値が大きくなるためである。
【００３３】
図７は、図６の各分割領域における半導体チップの電圧降下率を示す図である。図には、各分割領域における電圧降下率を示した電圧降下率データ３０が示してある。電圧降下率データ３０より、図６の分割領域Ａ１は、電圧降下率０％以上０．１％未満の電源電圧の分布を示している。分割領域Ａ２は、電圧降下率０．１％以上０．２％未満の電源電圧の分布を示している。分割領域Ａ３は、電圧降下率０．２％以上０．３％未満の電源電圧の分布を示している。分割領域Ａｎは、電圧降下率Ｍ％以上Ｎ％未満の電源電圧の分布を示している。
【００３４】
このように、電圧降下率算出部１３は、電源電圧降下率を算出し、領域分割部１４は、電源電圧降下率に基づいて半導体チップを分割領域に分割する。
ロジック回路配置部１５は、接続関係のあるロジック回路を、分割領域の同一領域に配置する。ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、接続関係のあるロジック回路を配置する。また、ロジック回路配置部１５は、ロジック回路を配置するとき、配置する分割領域の属性をロジック回路に付与する。属性は、例えば、分割領域を識別する情報であり、ロジック回路を分割領域Ａ１に配置する場合、‘Ａ１’という属性が付与され、ロジック回路を分割領域Ａ２に配置する場合、‘Ａ２’という属性が付与される。
【００３５】
図８は、ネットリストの接続情報の一例を示す図である。図に示す番号ＦＦ１〜ＦＦｎは、半導体チップに配置されるＦＦ回路を識別するための番号である。図８の例では、番号ＦＦ１のＦＦ回路は、番号ＦＦ２のＦＦ回路に接続される。番号ＦＦ２のＦＦ回路は、番号ＦＦ３のＦＦ回路に接続される。番号ＦＦｍのＦＦ回路は、番号ＦＦｎのＦＦ回路に接続される。すなわち、ロジック回路配置部１５は、ネットリストＤＢ１９により、半導体チップに配置されるＦＦ回路の接続関係を認識する。
【００３６】
図９は、接続関係にあるロジック回路の一例を示す図である。直列に接続されたＦＦ回路Ｚ１とＦＦ回路Ｚ２が示してある。ＦＦ回路Ｚ１は、図８で説明した番号ＦＦ１のＦＦ回路である。ＦＦ回路Ｚ２は、番号ＦＦ２のＦＦ回路である。ＦＦ回路Ｚ３は、番号ＦＦ３のＦＦ回路である。図９に示すように、ＦＦ回路Ｚ１の出力端子Ｑ１は、ＦＦ回路Ｚ２の入力端子Ｄと接続されている。ＦＦ回路Ｚ２の出力端子Ｑ１は、ＦＦ回路Ｚ３の入力端子Ｄと接続されている。また、ＦＦ回路Ｚ１〜Ｚ３の各々のクロック端子ＣＫは、共通のクロック線ＣＬＫに接続されている。ＦＦ回路Ｚ１〜Ｚ３は、各々の入力端子Ｄ、出力端子Ｑ１において、接続関係がある。また、クロック端子ＣＫにおいても接続関係がある。
【００３７】
ここで、例えばＦＦ回路Ｚ１とＦＦ回路Ｚ２，Ｚ３とに供給される電源電圧が異なるとする。ＦＦ回路Ｚ１の出力端子Ｑ１から出力される信号は、クロック線ＣＬＫの同期信号に同期して、ＦＦ回路Ｚ２の入力端子Ｄに入力されるが、電源電圧が異なるために信号の入出力のタイミングがずれてしまうことがある。そこで、ロジック回路配置部１５は、接続関係のあるＦＦ回路Ｚ１〜Ｚ３を分割領域の同一領域内に配置する。
【００３８】
なお、上記では、ＦＦ回路における接続関係を説明したが、ＡＮＤ回路、ＯＲ回路などのロジック回路についても同様である。
また、ロジック回路配置部１５は、ある分割領域の全領域にロジック回路を敷き詰めて、ロジック回路を配置するのに適した空き領域が無くなった場合、その領域の隣接する分割領域にロジック回路を配置していく。隣接した電圧分布内にロジック回路を配置することにより、電源電圧の差が少なく、タイミングエラーが生じる恐れが少なくなる。また、ロジック回路配置部１５は、半導体チップの全領域にロジック回路を配置し、ロジック回路を配置できなくなった場合、半導体チップのフレームサイズの見直しを行う。
【００３９】
また、ロジック回路配置部１５は、レイアウト設計途中（配置情報を入力してから、動作タイミングの解析が終了するまでの間）、設計変更などにより、新たなロジック回路を追加配置する場合、そのロジック回路に、配置しようとする分割領域の電源電圧降下率を反映させる。例えば、電源電圧１．８Ｖで動作するロジック回路を、電源電圧１．５Ｖに低下した分割領域に配置する場合、予め電源電圧１．５Ｖでの動作を反映させてから配置する。すなわち、予め分割領域の電源電圧降下率をロジック回路に反映させることによって、その分割領域でのロジック回路の動作が容易に予測できる。
【００４０】
配線部１６は、半導体チップに配置されたマクロ、及びロジック回路間をライブラリＤＢ１８、ネットリストＤＢ１９を参照して配線する。
動作タイミング解析部１７は、半導体チップに配置されたマクロ、ロジック回路のタイミング解析（ＳＴＡ：Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）をする。具体的には、半導体チップに配置されたロジック回路の、同期信号の入力からの動作開始のタイミング、信号のスルーレート、クロストークを解析する。そして、それらがエラーか否か（設計仕様を満足しているか否か）を判断する。動作タイミング解析部１７は、分割領域に配置されたロジック回路を、その分割領域の電源電圧降下率を反映させてタイミング解析を行う。すなわち、各分割領域では、電源電圧降下によって、ロジック回路に供給される電源電圧は異なるので、それぞれの電源電圧でのロジック回路のタイミング解析を行う。
【００４１】
動作タイミング解析部１７は、エラー判断をした場合、エラー修正を行うためロジック回路間に遅延バッファ回路、バッファ回路を挿入する。遅延バッファ回路、バッファ回路は、ロジック回路と同じ分割領域に配置されるように挿入される。これにより、ロジック回路と同じ電源電圧で遅延バッファ回路、バッファ回路は動作するので、挿入によるエラー発生を低減することができる。なお、遅延バッファ回路、バッファ回路を挿入するとき、挿入する分割領域の属性が付与される。
【００４２】
動作タイミング解析部１７は、タイミングによるエラー判断をした場合、タイミング調整を行うために、遅延バッファ回路をロジック回路間に挿入する。
図１０は、半導体チップに配置されたロジック回路と遅延バッファ回路の一部を示す図である。図には、ＦＦ回路Ｚ１〜Ｚ３、タイミング調整のためにＦＦ回路Ｚ１，Ｚ２間に挿入された遅延バッファ回路Ｚ４〜Ｚ７が示してある。ＦＦ回路Ｚ１に供給される電源電圧が、ＦＦ回路Ｚ２，Ｚ３に供給される電源電圧より高いとする。クロック線ＣＬＫの同期信号に対し、ＦＦ回路Ｚ１は、ＦＦ回路Ｚ２，Ｚ３より早く動作してしまう。よって、動作タイミング解析部１７は、ＦＦ回路Ｚ１，Ｚ２のクロック線ＣＬＫの間に、ＦＦ回路Ｚ１とＦＦ回路Ｚ２，Ｚ３とが同時に動作するように、遅延バッファ回路Ｚ４〜Ｚ７を挿入する。遅延バッファ回路Ｚ４〜Ｚ７は、ＦＦ回路Ｚ１又はＦＦ回路Ｚ２，Ｚ３と同じ分割領域に配置される。なお、遅延バッファ回路の接続段数は、ＦＦ回路Ｚ１、ＦＦ回路Ｚ２，Ｚ３に供給される電源電圧の差が考慮されて決まる。
【００４３】
動作タイミング解析部１７は、信号のスルーレートによるエラーを判断した場合、スルーレートの改善を行うためバッファ回路をロジック回路間に挿入する。図１１は、半導体チップに配置されたロジック回路の一部を示す図である。半導体チップに配置されたバッファ回路Ｚ８，Ｚ９が示してある。図１２は、図１１のロジック回路の信号波形を示した図である。図１１に示すバッファ回路Ｚ９の入力端子に入力される信号波形Ｂ１が示してある。また、信号波形Ｂ１のスルーレート幅Ｂ２が示してある。信号の満たすべきスルーレート幅Ｂ３が示してある。
【００４４】
図１２に示すように、信号波形Ｂ１のスルーレート幅Ｂ２が、信号の満たすべきスルーレート幅Ｂ３より大きい場合、動作タイミング解析部１７は、図１１のバッファ回路Ｚ８，Ｚ９間の信号線にスルーレートの改善を行うためのバッファ回路を挿入する。バッファ回路は、ロジック回路と同じ分割領域に配置される。バッファ回路を挿入することによって、信号波形Ｂ１のスルーレート幅Ｂ２をスルーレート幅Ｂ３より小さくすることができる。スルーレートの改善を行うためのバッファ回路は、バッファ回路Ｚ８，Ｚ９と同じ分割領域に配置され、同じ属性となるので、バッファ回路Ｚ８，Ｚ９と同じ電源電圧降下率を考慮すればよいことが、電源網解析を行わなくても分かる。
【００４５】
動作タイミング解析部１７は、信号のクロストークによるエラーを判断した場合、クロストークの改善を行うためバッファ回路をロジック回路間に挿入する。図１３は、半導体チップに配置されたロジック回路の一部を示す図である。図には、バッファ回路Ｚ１０，Ｚ１１が示してある。また、バッファ回路Ｚ１０，Ｚ１１間を接続する信号線Ｃ１、信号線Ｃ１に隣接する信号線Ｃ２，Ｃ３が示してある。図１４は、図１３のクロストークによるロジック回路に生じる信号波形を示した図で、（ａ）は信号波形その１、（ｂ）は信号波形その２を示す。図１４（ａ），（ｂ）には、信号線Ｃ１を伝達する信号波形Ｄ１，Ｄ２が示してある。
【００４６】
図１３に示すように、信号線Ｃ１に、他の信号線Ｃ２，Ｃ３が隣接すると、信号線Ｃ２、Ｃ３の信号が信号線Ｃ１に影響を及ぼす。このため、信号線Ｃ１には、図１４（ａ）（ｂ）に示す信号波形Ｄ１又は信号波形Ｄ２のようなクロストークによるノイズが入ってしまう。そこで、動作タイミング解析部１７は、図１３に示すバッファ回路Ｚ１０，Ｚ１１間の信号線にクロストークを減少するためのバッファ回路を挿入する。クロストークを減少するためのバッファ回路は、バッファ回路Ｚ１０，Ｚ１１と同じ分割領域に配置する。スルーレートの改善を行うためのバッファ回路は、バッファ回路Ｚ８，Ｚ９と同じ分割領域に配置され、同じ属性となるので、バッファ回路Ｚ８，Ｚ９と同じ電源電圧降下率を考慮すればよいことが、電源網解析を行わなくても分かる。バッファ回路を挿入することによって、信号線Ｃ１と信号線Ｃ２，Ｃ３の隣接する配線長を実質的に短くし、クロストークの影響を減少させる。
【００４７】
なお、レイアウト設計が完了するまで（配置情報を入力してから、動作タイミングの解析が終了するまで）、分割領域に配置されたロジック回路は、その分割領域から他の分割領域に移動されることはなく固定される。コンピュータ１０は、ロジック回路に付与された属性と、分割領域の属性が異ならないようにする。
【００４８】
また、レイアウト設計完了後、タイミングエラーを解消するため、又は設計変更などにより、新たなロジック回路を追加配置する場合、そのロジック回路に、配置しようとする分割領域の電源電圧降下率を反映させる。すなわち、分割領域の電源電圧降下率をロジック回路に反映させることによって、ロジック回路をその分割領域に配置すべきか否かが判断できる。
【００４９】
以上のような構成のコンピュータ１０において、本実施の形態の半導体装置の設計方法が実行される。コンピュータ１０の処理の流れを、フローチャートを用いて説明する。
【００５０】
図１５は、コンピュータの処理の流れを示したフローチャートである。図１６は、コンピュータの処理の流れの一部を詳細にしたフローチャートである。コンピュータ１０は、以下のステップに従って半導体装置の設計を行う。
【００５１】
［ステップＳ１１］コンピュータ１０の配置情報入力部１１は、半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を入力する。
［ステップＳ１２］コンピュータ１０のマクロ−電源配線網配置部１２は、配置情報に従って、ライブラリＤＢ１８のマクロ、及び電源配線網を半導体チップに配置する。
【００５２】
［ステップＳ１３］コンピュータ１０の電圧降下率算出部１３は、ライブラリＤＢ１８のマクロの消費電力を参照し、さらに電源配線網の抵抗値を算出して、半導体チップ上の各位置における電源電圧降下率を算出する。
【００５３】
［ステップＳ１４］コンピュータ１０の領域分割部１４は、電源電圧降下率に基づいて半導体チップを分割領域に分割する。
［ステップＳ１５］コンピュータ１０のロジック回路配置部１５は、接続関係のあるロジック回路を、ネットリストＤＢ１９を参照して、同一の分割領域に配置していく。以下、ロジック回路の配置について、図１６のフローチャートを用いて説明する。
【００５４】
［ステップＳ１５−１］ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、例えば図６に示す分割領域Ａ１にロジック回路を配置する。
［ステップＳ１５−２］ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、分割領域Ａ１に配置する接続関係のあるロジック回路があるか否かを判断する。接続関係のあるロジック回路がないと判断した場合、ステップＳ１５−３へ進む。接続関係のあるロジック回路があると判断した場合、ステップＳ１５−４へ進む。
【００５５】
［ステップＳ１５−３］ロジック回路配置部１５は、他の接続関係のあるロジック回路を分割領域Ａ１に配置していく。なお、図１６では省略しているが、このロジック回路を配置していくとき、ステップＳ１５−１〜Ｓ１５−３と同様の処理を行って配置していく。なお、配置すべきロジック回路を全て配置した場合は、ロジック回路の配置処理を終了する（図１５のステップＳ１６へ進む）。
【００５６】
［ステップＳ１５−４］ロジック回路配置部１５は、接続関係のあるロジック回路を配置するスペースが分割領域Ａ１にあるか否かを判断する。分割領域Ａ１にロジック回路を配置するスペースがあると判断した場合は、ステップＳ１５−１へ進む。ロジック回路を配置するスペースがないと判断した場合は、ステップＳ１５−５へ進む。
【００５７】
［ステップＳ１５−５］ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、隣接する分割領域、例えば図６に示す分割領域Ａ２にロジック回路を配置する。
【００５８】
［ステップＳ１５−６］ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、分割領域Ａ２に配置する接続関係のあるロジック回路があるか否かを判断する。接続関係のあるロジック回路がないと判断した場合、ステップＳ１５−７へ進む。接続関係のあるロジック回路があると判断し場合、ステップＳ１５−８へ進む。
【００５９】
［ステップＳ１５−７］ロジック回路配置部１５は、他の接続関係のあるロジック回路を分割領域Ａ２に配置する。なお、図１６では省略しているが、このロジック回路を配置していくとき、ステップＳ１５−５〜Ｓ１５−８と同様の処理を行って配置していく。なお、配置すべきロジック回路を全て配置した場合は、ロジック回路の配置処理を終了する（図１５のステップＳ１６へ進む）。
【００６０】
［ステップＳ１５−８］ロジック回路配置部１５は、ロジック回路を配置するスペースが分割領域Ａ２にあるか否かを判断する。分割領域Ａ２にロジック回路を配置するスペースがあると判断した場合は、ステップＳ１５−５へ進む。ロジック回路を配置するスペースがないと判断した場合は、隣接する分割領域Ａ３，・・・と、ロジック回路のステップを繰り返していく（ステップＳ１５−９へ）。
【００６１】
［ステップＳ１５−９］ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、図６に示す分割領域Ａｎにロジック回路を配置する。
［ステップＳ１５−１０］ロジック回路配置部１５は、ネットリストＤＢ１９を参照して、分割領域Ａｎに配置する接続関係のあるロジック回路があるか否かを判断する。接続関係のあるロジック回路がないと判断した場合、ステップＳ１５−１１へ進む。接続関係のあるロジック回路があると判断し場合、ステップＳ１５−１２へ進む。
【００６２】
［ステップＳ１５−１１］ロジック回路配置部１５は、他の接続関係のあるロジック回路を分割領域Ａｎに配置する。なお、図１６では省略しているが、このロジック回路を配置していくとき、ステップＳ１５−９〜Ｓ１５−１２と同様の処理を行って配置していく。なお、配置すべきロジック回路を全て配置した場合は、ロジック回路の配置処理を終了する（図１５のステップＳ１６へ進む）。
【００６３】
［ステップＳ１５−１２］ロジック回路配置部１５は、接続関係のあるロジック回路を配置するスペースが分割領域Ａｎにあるか否かを判断する。分割領域Ａｎにロジック回路を配置するスペースがあると判断した場合は、ステップＳ１５−９へ進む。ロジック回路を配置するスペースがないと判断した場合は、ステップＳ１５−１３へ進む。
【００６４】
［ステップＳ１５−１３］ロジック回路配置部１５は、半導体チップのフレームサイズの見直しを行う。
図１５のフローチャートに戻って説明する。
【００６５】
［ステップＳ１６］コンピュータ１０の配線部１６は、半導体チップに配置されたマクロ、及びロジック回路間をライブラリＤＢ１８、ネットリストＤＢ１９を参照して配線する。
【００６６】
［ステップＳ１７］コンピュータ１０の動作タイミング解析部１７は、半導体チップに配置されたマクロ、ロジック回路のタイミング解析をする。
［ステップＳ１８］コンピュータ１０の動作タイミング解析部１７は、タイミング解析結果がエラーか否かを判断する。エラーでないと判断した場合は、処理を終了する。エラーと判断した場合は、ステップＳ１９へ進む。
【００６７】
［ステップＳ１９］コンピュータ１０の動作タイミング解析部１７は、エラー修正を行う。動作タイミング解析部１７は、エラー修正のために挿入する遅延バッファ回路、バッファ回路を、エラー修正を行うロジック回路と同じ分割領域に配置する。ステップＳ１７へ進む。
【００６８】
このように、半導体チップの同じ電源電圧の分割領域に、接続関係のあるロジック回路を配置することによって、ロジック回路のタイミングエラーの発生が低減される。よって、半導体装置の設計におけるコンピュータの処理時間を短縮することができる。
【００６９】
また、ロジック回路のタイミングエラーの発生が低減されるので、エラー修正のためにロジック回路間に挿入される回路数が低減され、半導体チップサイズを小さくすることができる。
【００７０】
また、エラー修正のためにロジック回路間に挿入される回路は、エラー修正が行われるロジック回路と同じ分割領域に配置されるように挿入される。これにより、同じ電源電圧降下率での電源電圧が供給されて動作することにより、遅延バッファ回路、バッファ回路の挿入によるエラー発生が低減され、半導体装置の設計におけるコンピュータの処理時間を短縮することができる。
【００７１】
なお、現在半導体チップの設計は、大規模になっており、半導体チップを所定の階層レイアウトに分割し、階層レイアウトごとに設計を行う。この場合、ロジック回路配置部１５は、半導体チップの階層レイアウト内における、分割領域にロジック回路を配置するようにする。図１７は、半導体チップの階層レイアウトを示した図である。図には、半導体チップ２０、分割領域Ａ１〜Ａｎ、階層レイアウトの領域を示すブロック２３ａ〜２３ｃが示してある。
【００７２】
ロジック回路配置部１５は、各ブロック２３ａ〜２３ｃ内における分割領域Ａ１〜Ａｎに、ロジック回路を配置していく。処理手順は、図１５のフローチャートについては、同様である。図１６のフローチャートにおいては、ブロック毎にステップＳ１５−１〜Ｓ１５−１３を繰り返すところが異なる。
【００７３】
このように、階層レイアウト毎にロジック回路を配置することによって、階層レイアウト設計にも対応することができる。なお、階層レイアウト領域内におけるロジック回路の配置においても、ロジック回路には、分割領域の属性が付与され、レイアウト設計が完了するまで、分割領域に配置されたロジック回路は、その分割領域から他の分割領域に移動されることはなく固定される。
【００７４】
また、半導体装置は、一般に製品として動作する回路（システム回路）と、システム回路の動作テストを行うテスト回路（テスト回路は、システム回路の動作適正を調べるスキャンモード時にのみ動作する）が実装される。この場合、テスト回路を構成するロジック回路においては、分割領域に配置するとき、電源電圧降下率を反映しないように配置する。これは、システム回路が動作するとき、テスト回路は、動作しないので、システム回路のみでタイミング解析を行う必要があるからである。
【００７５】
また、テスト回路を構成するロジック回路は、自由に配置するようにする。テスト回路は、製品として動作する回路ではないので、テスト回路を構成するロジック回路は、同じ分割領域に配置する必要がないからである。これにより、半導体装置の設計におけるコンピュータの処理時間を短縮することができる。なお、システム回路、及びテスト回路を構成するロジック回路の区別は、ネットリストＤＢ１９を参照することにより可能である。
【００７６】
なお、コンピュータ１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などがある。
【００７７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７９】
（付記１）  半導体チップの電源電圧降下による動作速度変動に対応したコンピュータを使用する半導体装置の設計方法において、
半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付け、
前記配置情報に従って前記マクロ及び前記電源配線網を前記半導体チップに配置し、
前記マクロ及び前記電源配線網の配置による前記半導体チップの電源電圧降下率を算出し、
前記電源電圧降下率に基づいて前記半導体チップを分割領域に分割し、
接続関係のあるロジック回路を前記分割領域の同一領域内に配置する、
ことを特徴とする半導体装置の設計方法。
【００８０】
（付記２）  前記同一領域内に前記ロジック回路を配置し尽くした場合、前記同一領域に隣接する分割領域に前記ロジック回路を配置することを特徴とする付記１記載の半導体装置の設計方法。
【００８１】
（付記３）  前記分割領域に前記ロジック回路を配置する際、前記分割領域の属性を前記ロジック回路に付与することを特徴とする付記１記載の半導体装置の設計方法。
【００８２】
（付記４）  レイアウト設計が完了するまで、前記属性が付与されたロジック回路を、前記属性を有している分割領域に固定することを特徴とする付記３記載の半導体装置の設計方法。
【００８３】
（付記５）  前記ロジック回路の信号のタイミング解析を実行する際、前記ロジック回路に、前記分割領域の前記電源電圧降下率を反映させることを特徴とする付記１記載の半導体装置の設計方法。
【００８４】
（付記６）  新たなロジック回路を追加配置する際、予め配置する前記分割領域の前記電源電圧降下率を前記ロジック回路に反映させることを特徴とする付記１記載の半導体装置の設計方法。
【００８５】
（付記７）  前記ロジック回路の信号のタイミング解析を実行し、エラーを検出した場合、前記ロジック回路間に前記信号のタイミング調整を図るためのバッファ回路を挿入することを特徴とする付記１記載の半導体装置の設計方法。
【００８６】
（付記８）  前記バッファ回路を挿入する際、予め配置する前記分割領域の前記電源電圧降下率を前記バッファ回路に反映させることを特徴とする付記７記載の半導体装置の設計方法。
【００８７】
（付記９）  前記ロジック回路が配置されている分割領域と同じ領域に、前記バッファ回路を配置することを特徴とする付記７記載の半導体装置の設計方法。
（付記１０）  前記エラーは、前記ロジック回路の同期信号に対するタイミングエラーであることを特徴とする付記７記載の半導体装置の設計方法。
【００８８】
（付記１１）  前記エラーは、前記ロジック回路を伝達する信号のスルーレートエラーであることを特徴とする付記７記載の半導体装置の設計方法。
（付記１２）  前記エラーは、前記ロジック回路の信号線間に発生するクロストークエラーであることを特徴とする付記７記載の半導体装置の設計方法。
【００８９】
（付記１３）  階層レイアウト領域内における前記分割領域の同一領域内に前記ロジック回路を配置することを特徴とする付記１記載の半導体装置の設計方法。
【００９０】
（付記１４）  前記同一領域内に前記ロジック回路を配置し尽くした場合、前記階層レイアウト領域内における前記同一領域に隣接する分割領域に前記ロジック回路を配置することを特徴とする付記１３記載の半導体装置の設計方法。
【００９１】
（付記１５）  前記分割領域に前記ロジック回路を配置する際、前記分割領域の属性を前記ロジック回路に付与することを特徴とする付記１３記載の半導体装置の設計方法。
【００９２】
（付記１６）  レイアウト設計が完了するまで、前記属性が付与されたロジック回路を、前記属性を有している分割領域に固定することを特徴とする付記１５記載の半導体装置の設計方法。
【００９３】
（付記１７）  テスト回路を構成するロジック回路を配置するとき、前記分割領域の前記電源電圧降下率を反映しないことを特徴とする付記１記載の半導体装置の設計方法。
【００９４】
（付記１８）  テスト回路を構成するロジック回路を自由に配置することを特徴とする付記１記載の半導体装置の設計方法。
（付記１９）  半導体チップの電源電圧降下による動作速度変動に対応した半導体装置の設計プログラムにおいて、
コンピュータに、
半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を受け付け、
前記配置情報に従って前記マクロ及び前記電源配線網を前記半導体チップに配置し、
前記マクロ及び前記電源配線網の配置による前記半導体チップの電源電圧降下率を算出し、
前記電源電圧降下率に基づいて前記半導体チップを分割領域に分割し、
接続関係のあるロジック回路を前記分割領域の同一領域内に配置する、
処理を実行させることを特徴とする半導体装置の設計プログラム。
【００９５】
（付記２０）  半導体チップの電源電圧降下による動作速度変動に対応した半導体設計装置において、
半導体チップに形成されるマクロ及び電源配線網の配置に関する配置情報を入力する配置情報入力部と、
前記配置情報に従って前記マクロ及び前記電源配線網を前記半導体チップに配置するマクロ電源配線網配置部と、
前記マクロ及び前記電源配線網の配置による前記半導体チップの電源電圧降下率を算出する電圧降下率算出部と、
前記電源電圧降下率に基づいて前記半導体チップを分割領域に分割する領域分割部と、
接続関係のあるロジック回路を前記分割領域の同一領域内に配置するロジック回路配置部と、
を有することを特徴とする半導体設計装置。
【００９６】
【発明の効果】
以上説明したように本発明では、マクロ及び電源配線網の配置による半導体チップの電源電圧降下率を算出し、電源電圧降下率に基づいて半導体チップを分割領域に分割し、接続関係のあるロジック回路を分割領域の同一領域に配置するようにした。これにより、ロジック回路によるタイミングエラーの発生を低減し、コンピュータの処理時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の原理を説明する原理図である。
【図２】コンピュータのハードウェアブロック図である。
【図３】コンピュータの機能ブロック図である。
【図４】半導体チップと半導体チップに配置されたマクロを示す図である。
【図５】半導体チップと半導体チップに配置された電源配線網を示す図である。
【図６】分割領域に分割した半導体チップを示す図である。
【図７】図６の各分割領域における半導体チップの電圧降下率を示す図である。
【図８】ネットリストの接続情報の一例を示す図である。
【図９】接続関係にあるロジック回路の一例を示す図である。
【図１０】半導体チップに配置されたロジック回路と遅延バッファ回路の一部を示す図である。
【図１１】半導体チップに配置されたロジック回路の一部を示す図である。
【図１２】図１１のロジック回路の信号波形を示した図である。
【図１３】半導体チップに配置されたロジック回路の一部を示す図である。
【図１４】図１３のクロストークによるロジック回路に生じる信号波形を示した図で、（ａ）は信号波形その１、（ｂ）は信号波形その２を示す。
【図１５】コンピュータの処理の流れを示したフローチャートである。
【図１６】コンピュータの処理の流れの一部を詳細にしたフローチャートである。
【図１７】半導体チップの階層レイアウトを示した図である。
【図１８】従来の半導体装置の設計手順を示したフローチャートである。
【符号の説明】
１，１０  コンピュータ
１ａ，１１  配置情報入力部
１ｂ，１２  マクロ−電源配線網配置部
１ｃ，１３  電圧降下率算出部
１ｄ，１４  領域分割部
１ｅ，１５  ロジック回路配置部
１６  配線部
１７  動作タイミング解析部
１ｆ，１８  ライブラリＤＢ
１ｇ，１９  ネットリストＤＢ
２０  半導体チップ
２０ａａ〜２０ａｄ  電源パッド
２０ｂ  電源配線網
Ａ１〜Ａｎ  分割領域
Ｚ１〜Ｚ３  ＦＦ回路
【図１】
2004151929.tif 000003
【図２】
2004151929.tif 000004
【図３】
2004151929.tif 000005
【図４】
2004151929.tif 000006
【図５】
2004151929.tif 000007
【図６】
2004151929.tif 000008
【図７】
2004151929.tif 000009
【図８】
2004151929.tif 000010
【図９】
2004151929.tif 000011
【図１０】
2004151929.tif 000012
【図１１】
2004151929.tif 000013
【図１２】
2004151929.tif 000014
【図１３】
2004151929.tif 000015
【図１４】
2004151929.tif 000016
【図１５】
2004151929.tif 000017
【図１６】
2004151929.tif 000018
【図１７】
2004151929.tif 000019
【図１８】
2004151929.tif 000020