(57)【要約】【課題】  設計工数を削減でき、設計ＴＡＴを短縮できる半導体装置の設計方法を提供する。【解決手段】  トップ階層上に複数の階層マクロを配置し（ステップＳ１）、トップ階層上の複数の階層マクロ間を接続するマクロ間配線の配線経路を決定する（ステップＳ２）。マクロ間配線のうち階層マクロ上を通過する通過配線部分を下位の階層マクロ内に埋め込み（ステップＳ３）、埋め込まれる通過配線部分の階層マクロ上での位置情報を生成する。通過配線部分の位置情報を階層マクロの種類ごとにマージし、そのマージされた通過配線部分の位置情報で示される領域を禁止領域化する（ステップＳ４）。禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、下位階層で階層マクロ内のレイアウトを設計する（ステップＳ５）。レイアウト設計された階層マクロ内に、通過配線部分に相当する配線を埋め込み、チップデータを生成する（ステップＳ７）。【選択図】    図１
2005235804.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを使用して、半導体装置を階層化設計によって設計する半導体装置の設計方法において、
一の階層上に複数の階層マクロを配置し、前記複数の階層マクロの配置情報を前記コンピュータがアクセス可能な記憶装置に記憶するステップと、
前記複数の階層マクロ間を接続するマクロ間配線の配線経路を決定し、前記配線経路の情報を前記記憶装置に記憶するステップと、
前記マクロ間配線のうち前記階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報を生成し、該通過配線部分の階層マクロ上での位置情報を前記記憶装置に記憶するステップと、
前記通過配線部の位置情報を階層マクロの種類ごとにマージし、該マージされた通過配線部分の位置情報で示される領域を各種類の階層マクロで禁止領域化し、該禁止領域化された領域の情報を前記記憶装置に記憶するステップと、
前記各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、前記レイアウト情報を前記記憶装置に記憶するステップと、
前記レイアウト設計された各種類の階層マクロのそれぞれに、前記通過配線部分に相当する配線を埋め込むステップとを有することを特徴とする半導体装置の設計方法。
【請求項２】
コンピュータを使用して、半導体装置を階層化設計によって設計する半導体装置の設計方法において、
一の階層上に複数の階層マクロを配置し、前記複数の階層マクロの配置情報を前記コンピュータがアクセス可能な記憶装置に記憶するステップと、
前記複数の階層マクロ間を接続するマクロ間配線の配線経路を決定し、該マクロ間配線にタイミング調整のためのタイミング調整用コンポーネントを挿入して、前記配線経路の情報及びタイミング調整用コンポーネントの位置情報を前記記憶装置に記憶するステップと、
前記マクロ間配線のうち階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報と、前記階層マクロ上に位置するタイミング調整用コンポーネントの階層マクロ上での位置情報とを生成し、前記通過配線部分の階層マクロ上での位置情報及び前記タイミング調整用コンポーネントの階層マクロ上での位置情報を前記記憶装置に記憶するステップと、
前記通過配線部分の位置情報と、前記タイミング調整用コンポーネントの位置情報とを階層マクロの種類ごとにマージし、該マージされた通過配線部分及び前記タイミング調整用コンポーネントのそれぞれの位置情報で示される領域を各種類の階層マクロで禁止領域化し、該禁止領域化された領域の情報を前記記憶装置に記憶するステップと、
各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、該レイアウト設計された階層マクロの情報を前記記憶装置に記憶するステップと、
前記レイアウト設計された各種類の階層マクロ内に、前記通過配線部分に相当する配線及び前記タイミング調整用コンポーネントを埋め込むステップとを有することを特徴とする半導体装置の設計方法。
【請求項３】
コンピュータを用いて、一の階層上に配置した複数の階層マクロの配置情報と、前記複数の階層マクロ間を接続するマクロ間配線の配線経路情報とを含むデータを用い、半導体装置を階層化設計によって設計するためのプログラムにおいて、
前記マクロ間配線のうち階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報を生成して記憶するステップと、
前記記憶された通過配線部分の位置情報を読み出して階層マクロの種類ごとにマージし、該マージされた通過配線部分の位置情報で示される領域を各種類の階層マクロで禁止領域化するステップと、
各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、レイアウトデータを生成して記憶するステップと、
前記各種類の階層マクロのレイアウトデータのそれぞれに、前記記憶された通過配線部分の位置情報に基づいて、前記通過配線部分に相当する配線を埋め込むステップとを実行させることを特徴とするプログラム。
【請求項４】
コンピュータを用いて、一の階層上に配置した複数の階層マクロの配置情報と、前記複数の階層マクロ間を接続するマクロ間配線の配線経路情報と、該マクロ間配線にタイミング調整のために挿入されたタイミング調整用コンポーネントの配置情報とを含むデータを用い、半導体装置を階層化設計によって設計するためのプログラムにおいて、
前記マクロ間配線のうち階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報と、前記階層マクロ上に位置するタイミング調整用コンポーネントの階層マクロ上での位置情報とを生成して記憶するステップと、
前記記憶された通過配線部分の位置情報及びタイミング調整用コンポーネントの位置情報を階層マクロの種類ごとにマージし、該マージされた通過配線部分及び前記タイミング調整用コンポーネントのそれぞれの位置情報で示される領域を各種類の階層マクロで禁止領域化するステップと、
各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、レイアウトデータを生成して記憶するステップと、
前記各種類の階層マクロ内のレイアウトデータのそれぞれに、前記記憶された通過配線部分の位置情報及びタイミング調整用コンポーネントの位置情報に基づいて、前記通過配線部分に相当する配線及び前記タイミング調整用コンポーネントを埋め込むステップとを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の設計方法及びプログラムに関し、更に詳しくは、階層化設計手法によって半導体装置の設計する方法及びプログラムに関する。
【背景技術】
【０００２】
近年、システムＬＳＩやＡＳＩＣ等の半導体装置は、求められる機能や能力が増大して回路構成が複雑化しており、その設計には、半導体装置をいくつかの機能ブロック（モジュール）の集まりとして設計し、かつ、各機能ブロックを、複数の小規模のモジュールの集まりとして設計する階層化設計手法が採用される。階層化設計におけるトップ階層の設計では、ＣＰＵコアやＤＳＰコア等のメガマクロの配置を決定し、この配置された各マクロブロック間をトップ階層の配線によって接続するレイアウト設計が行われる。
【０００３】
図７（ａ）及び（ｂ）は、それぞれ３つの階層マクロがトップ階層上に配置される様子を示している。トップ階層のレイアウト設計では、トップ階層の配線経路を最適化するために、同図（ａ）に示すように、２つの階層マクロ２０１、２０３間を接続する配線２１０が、それらの間に配置された階層マクロ２０２上を通過することが許可されている。また、トップ階層の配線には、タイミング調整のために、リピータ等のタイミング調整用のコンポーネントが挿入されることがあり、そのようなタイミング調整用のコンポーネントもまた、階層マクロ上に配置されることが許可されている。
【０００４】
ある階層マクロ上を、そのマクロに接続されない上位階層の配線が単に通過する場合には、その階層マクロ内に、上位階層の通過配線を埋め込む埋め込み処理が行われる。具体的には、図７（ｂ）に示すように、階層マクロ２０２上のトップ階層の配線２１０を、階層マクロ２０１と階層マクロ２０２との間の配線２１１と、階層マクロ２０２内の通過配線２１２と、階層マクロ２０２と階層マクロ２０３との間の配線２１３とに分割し、通過配線２１２を、トップ階層から下位階層に落とし込んで、階層マクロ２０２内に埋め込む。トップ階層の通過配線を、下位階層の階層マクロに埋め込む技術としては、例えば特許文献１や特許文献２に記載された技術がある。
【０００５】
図８（ａ）は、トップ階層での階層マクロ間を接続する配線の様子を示している。この例では、階層マクロ２０４〜２０７は、それぞれ同じ機能を有する階層マクロとして構成される。階層マクロ２０４〜２０７は、それぞれライブラリ等のコピー元から、反転・回転が許可されるかたちでコピーされ、トップ階層上に配置される。同図の例では、階層マクロ２０５は、階層マクロ２０４をＮ向きであるとすると、Ｎ向きとは左右が反転された態様でトップ階層に配置されている。また、階層マクロ２０６は、Ｎ向きとは上下が反転された態様でトップ階層に配置されており、階層マクロ２０７は、Ｎ向きとは左右が反転され、かつ、上下が反転された態様でトップ階層に配置される。
【０００６】
トップ階層の配線の所望の位置には、タイミング調整のためのリピータが挿入される。トップ階層の配線経路及びリピータの配置位置が図８（ａ）に示すように設計された場合、階層マクロ２０４〜２０７は、その機能は同じであるが、埋め込まれるべき通過配線の配線経路やリピータの配置位置が相互に異なっている。このため、上位階層の通過配線やリピータを階層マクロ内に埋め込み、各階層マクロ内のレイアウト設計を行う際には、同図（ｂ）に示すように、それぞれのトップ階層上での配置方向をＮ向き配置であると認識し、階層マクロ２０４〜２０７をそれぞれ別個の階層マクロと認識して、各階層マクロそれぞれについて、レイアウト設計が行われることとなる。
【特許文献１】特開２０００−１００９４９号公報
【特許文献２】特開２０００−１５６４１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように、従来の半導体装置の設計では、階層マクロ２０４〜２０７は、同じ機能を有する階層マクロではあるものの、上位階層の通過配線やリピータを埋め込む際には、４つの異なる階層マクロとして取り扱われている。この場合、階層マクロの種類としては１種類であるが、レイアウト設計対象の階層マクロの種類は４種類となり、レイアウト設計対象の階層マクロの増加に伴って、設計工数が増加するという問題がある。また、階層マクロのレイアウト設計が終了すると、その階層マクロが正しく動作するか否か等を検証する動作検証や、レイアウト検証が行われるが、そのような検証も、４つの階層マクロそれぞれについて行う必要があり、結果として設計ＴＡＴが増大するという問題がある。
【０００８】
本発明は、上記従来技術の問題を解消するためになされたものであり、レイアウト設計に要する時間を短縮でき、設計ＴＡＴを短縮できる半導体装置の設計方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の半導体装置の設計方法は、コンピュータを使用して、半導体装置を階層化設計によって設計する半導体装置の設計方法において、一の階層上に複数の階層マクロを配置し、前記複数の階層マクロの配置情報を前記コンピュータがアクセス可能な記憶装置に記憶するステップと、前記複数の階層マクロ間を接続するマクロ間配線の配線経路を決定し、前記配線経路の情報を前記記憶装置に記憶するステップと、前記マクロ間配線のうち前記階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報を生成し、該通過配線部分の階層マクロ上での位置情報を前記記憶装置に記憶するステップと、前記通過配線部の位置情報を階層マクロの種類ごとにマージし、該マージされた通過配線部分の位置情報で示される領域を各種類の階層マクロで禁止領域化し、該禁止領域化された領域の情報を前記記憶装置に記憶するステップと、前記各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、前記レイアウト情報を前記記憶装置に記憶するステップと、前記レイアウト設計された各種類の階層マクロのそれぞれに、前記通過配線部分に相当する配線を埋め込むステップとを有することを特徴とする。
【００１０】
本発明の半導体装置の設計方法では、通過配線部分の位置情報で示される領域を、階層マクロの種類ごとに配置方向をそろえた形でマージし、その領域を禁止領域化して階層マクロのレイアウト設計を行う。従来、トップ階層上で同じ機能を有する階層マクロが複数配置され、その複数の階層マクロに埋め込まれる通過配線の配線経路がそれぞれ異なる場合には、同じ機能を有する複数の階層マクロそれぞれについてレイアウト設計を行う必要があり、設計工数が増えて、設計ＴＡＴが長かった。本発明では、そのような場合であっても、同じ種類の階層マクロについては、レイアウト設計を１回で済ませることができ、従来に比して、半導体装置の設計工数を削減することができる。
【００１１】
本発明のプログラムは、コンピュータを用いて、一の階層上に配置した複数の階層マクロの配置情報と、前記複数の階層マクロ間を接続するマクロ間配線の配線経路情報とを含むデータを用い、半導体装置を階層化設計によって設計するためのプログラムにおいて、前記マクロ間配線のうち階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報を生成して記憶するステップと、前記記憶された通過配線部分の位置情報を読み出して階層マクロの種類ごとにマージし、該マージされた通過配線部分の位置情報で示される領域を各種類の階層マクロで禁止領域化するステップと、各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、レイアウトデータを生成して記憶するステップと、前記各種類の階層マクロのレイアウトデータのそれぞれに、前記記憶された通過配線部分の位置情報に基づいて、前記通過配線部分に相当する配線を埋め込むステップとを実行させることを特徴とする。
【００１２】
本発明の別の視点の半導体装置の設計方法は、コンピュータを使用して、半導体装置を階層化設計によって設計する半導体装置の設計方法において、一の階層上に複数の階層マクロを配置し、前記複数の階層マクロの配置情報を前記コンピュータがアクセス可能な記憶装置に記憶するステップと、前記複数の階層マクロ間を接続するマクロ間配線の配線経路を決定し、該マクロ間配線にタイミング調整のためのタイミング調整用コンポーネントを挿入して、前記配線経路の情報及びタイミング調整用コンポーネントの位置情報を前記記憶装置に記憶するステップと、前記マクロ間配線のうち階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報と、前記階層マクロ上に位置するタイミング調整用コンポーネントの階層マクロ上での位置情報とを生成し、前記通過配線部分の階層マクロ上での位置情報及び前記タイミング調整用コンポーネントの階層マクロ上での位置情報を前記記憶装置に記憶するステップと、前記通過配線部分の位置情報と、前記タイミング調整用コンポーネントの位置情報とを階層マクロの種類ごとにマージし、該マージされた通過配線部分及び前記タイミング調整用コンポーネントのそれぞれの位置情報で示される領域を各種類の階層マクロで禁止領域化し、該禁止領域化された領域の情報を前記記憶装置に記憶するステップと、各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、該レイアウト設計された階層マクロの情報を前記記憶装置に記憶するステップと、前記レイアウト設計された各種類の階層マクロ内に、前記通過配線部分に相当する配線及び前記タイミング調整用コンポーネントを埋め込むステップとを有することを特徴とする。
【００１３】
本発明の別の視点の半導体装置の設計方法では、通過配線部分の位置情報で示される領域、及び、階層マクロ上のタイミング調整用コンポーネントの位置情報を、階層マクロの種類ごとに配置方向をそろえた形でマージし、その領域を禁止領域化して階層マクロのレイアウト設計を行う。このため、トップ階層上で同じ機能を有する階層マクロが複数配置され、その複数の階層マクロに埋め込まれる通過配線の配線経路がそれぞれ異なる場合であっても、同じ種類の階層マクロについては、レイアウト設計を１回で済ませることができ、従来に比して、半導体装置の設計工数を削減することができる。
【００１４】
本発明の別の視点のプログラムは、コンピュータを用いて、一の階層上に配置した複数の階層マクロの配置情報と、前記複数の階層マクロ間を接続するマクロ間配線の配線経路情報と、該マクロ間配線にタイミング調整のために挿入されたタイミング調整用コンポーネントの配置情報とを含むデータを用い、半導体装置を階層化設計によって設計するためのプログラムにおいて、前記マクロ間配線のうち階層マクロ上を通過する通過配線部分の階層マクロ上での位置情報と、前記階層マクロ上に位置するタイミング調整用コンポーネントの階層マクロ上での位置情報とを生成して記憶するステップと、前記記憶された通過配線部分の位置情報及びタイミング調整用コンポーネントの位置情報を階層マクロの種類ごとにマージし、該マージされた通過配線部分及び前記タイミング調整用コンポーネントのそれぞれの位置情報で示される領域を各種類の階層マクロで禁止領域化するステップと、各種類の階層マクロについて、前記禁止領域化された領域以外の領域に、階層マクロ内のコンポーネントを配置し、階層マクロ内の配線を配線して、前記一の階層よりも低い階層で階層マクロ内のレイアウトを設計し、レイアウトデータを生成して記憶するステップと、前記各種類の階層マクロ内のレイアウトデータのそれぞれに、前記記憶された通過配線部分の位置情報及びタイミング調整用コンポーネントの位置情報に基づいて、前記通過配線部分に相当する配線及び前記タイミング調整用コンポーネントを埋め込むステップとを実行させることを特徴とする。
【発明の効果】
【００１５】
本発明の半導体装置の設計方法及びプログラムは、通過配線や階層マクロ内に埋め込まれるタイミング調整用コンポーネントの位置情報を、階層マクロの種類ごとにマージしてから、階層マクロのレイアウト設計を行うため、同じ種類の階層マクロについては、レイアウト設計を１回で済ませることができ、半導体装置の設計工数を削減して、設計ＴＡＴを短縮することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図１は、本発明の一実施形態例の半導体装置の設計方法の手順を示している。この半導体装置の設計は、コンピュータを用いた計算機援用設計により実行される。まず、レイアウト階層（以下、階層マクロとも呼ぶ）を決定し、ネットリストの階層分割を行う。次いで、階層フロアプランを行い、各階層マクロのトップ階層上での形状、サイズ、配置位置、及び、配置方向を決定して、トップ階層フロアプランデータ１１を生成すると共に、各階層マクロ内のフロアプランデータである階層マクロフロアプランデータ１２を生成する（ステップＳ１）。
【００１７】
ステップＳ１で生成されたトップ階層フロアプランデータ１１及び階層マクロフロアプランデータ１２は、それぞれ、記憶装置に記憶される。ステップＳ１では、トップ階層上に配置する階層マクロがＮ種類であれば、Ｎ種類の階層マクロフロアプランデータ１２が生成される。トップ階層上には、同じ機能を有する階層マクロ、言い換えれば同じ種類の階層マクロが、反転・回転された態様で、複数配置される場合がある。
【００１８】
図２は、トップ階層での階層マクロ間の配線接続の様子を示している。階層マクロ１０１〜１０４は、それぞれ同じ種類の階層マクロとして構成される。同図では、階層マクロ１０２は、階層マクロ１０１をＮ向きであるとすると、Ｎ向きとは左右が反転された態様でトップ階層に配置され、階層マクロ１０３は、Ｎ向きとは上下が反転された態様でトップ階層に配置されている。また、階層マクロ１０４は、Ｎ向きとは、左右が反転され、かつ、上下が反転された態様で、トップ階層に配置されている。
【００１９】
トップ階層フロアプランデータ１１が生成されると、トップ階層での配線処理を行い、階層マクロ間の配線接続を行う（ステップＳ２）。この配線処理では、トップ階層の配線は、階層マクロ上を通過することが許可される。また、トップ階層の配線には、所望の位置に、タイミング調整のためのリピータ等のコンポーネントが挿入される。ステップＳ２の配線処理により、トップ階層の配線Ｎｅｔ１〜Ｎｅｔ８（図２）の配線経路と、コンポーネントＣ１〜Ｃ７の配置位置が決定する。トップ階層の配線Ｎｅｔ２、Ｎｅｔ３、Ｎｅｔ６、Ｎｅｔ７は、階層マクロ上を通過する通過配線部分を含み、コンポーネントＣ２、Ｃ５は、階層マクロ上に配置されている。
【００２０】
トップ階層での配線が決定すると、コンピュータは、トップ階層の配線を、階層マクロ上を通過する部分と、それ以外の部分とに分割し、階層マクロ上を通過する部分の配線と、階層マクロ上に配置されるコンポーネントとを、階層マクロに落とし込む処理を行う（ステップＳ３）。この落とし込み処理により、落とし込み後のトップ階層フロアプランデータ１３と、落とし込み後の階層マクロデータ１４とが生成され、それらは記憶装置に記憶される。各階層マクロにおける通過配線の通過位置や、コンポーネントの配置位置は、階層マクロごとに異なる状態となる。このため、ステップＳ３では、Ｎ種類の階層マクロについて、各種類の階層マクロのトップ階層での配置数をそれぞれＭ1、Ｍ2、・・・、ＭNとすると、（Ｍ1＋Ｍ2＋・・・＋ＭN）個の落とし込み後の階層マクロデータ１４が生成されることとなる。
【００２１】
図３は、図２に示すトップ階層の状態から得られる、落とし込み処理後のトップ階層フロアプランデータを示している。ステップＳ３の落とし込み処理により、トップ階層の配線Ｎｅｔ２、Ｎｅｔ３、Ｎｅｔ６、Ｎｅｔ７のうち、階層マクロ上を通過する通過配線部分Ｎｅｔ２（１）、Ｎｅｔ２（３）、Ｎｅｔ３（０）、Ｎｅｔ６（１）、Ｎｅｔ７（０）、及び、Ｎｅｔ７（２）と、階層マクロ上のコンポーネントＣ２、Ｃ５とが、トップ階層上から削除される。落とし込み後のトップ階層には、図３に示すように、配線Ｎｅｔ１、Ｎｅｔ４、Ｎｅｔ５、Ｎｅｔ８、及び、Ｎｅｔ９と、通過配線部分が除かれた配線Ｎｅｔ２（０）、Ｎｅｔ２（２）、Ｎｅｔ３（１）、Ｎｅｔ６（０）、Ｎｅｔ７（１）、Ｎｅｔ７（３）、及び、Ｎｅｔ７（４）と、コンポーネントＣ１、Ｃ３、Ｃ４、Ｃ６、及び、Ｃ７とが残ることとなる。
【００２２】
図４は、階層マクロ１０１〜１０４に埋め込まれる通過配線を示している。図２では、階層マクロ１０２〜１０４は、それぞれＮ向きとは反転・回転された態様で配置されているが、図４では、各階層マクロ１０２〜１０４の配置方向を、階層マクロ１０１と配置方向と同じ方向（Ｎ向き）に揃えて図示している。階層マクロ１０１〜１０４では、図４に示すように、それぞれ埋め込まれる通過配線の配線経路や埋め込まれるコンポーネントとの配置位置が相互に異なっており、図２に示す通過配線及び階層マクロ上のコンポーネントを階層マクロに落とし込むと、同じ階層マクロフロアプランデータ１２から、４つの落とし込み後の階層マクロデータ１４が生成される。
【００２３】
コンピュータは、落とし込み後の階層マクロデータ１４を入力して、埋め込み対象の配線の配線経路に関する情報と、コンポーネントの配置位置の情報とを抽出し、Ｎ種類の階層マクロのそれぞれについて、埋め込み対象の配線の配線経路と、コンポーネントの配置位置とをマージする処理を行う（ステップＳ４）。このマージ処理は、同じ種類の階層マクロについて、各階層マクロの配置方向を、図４に示すように、同じ方向に揃えてから行われる。図５は、マージされた配線経路とコンポーネントの配置位置とを示している。図４に示す落とし込み後の４つの階層マクロデータ１４で示される埋め込み対象の配線経路の情報と、埋め込み対象のコンポーネントの位置情報とを、１つのデータにマージすると、図５に示すデータが得られる。
【００２４】
マージされた配線経路の領域、及び、コンポーネントが配置される領域は、後の階層マクロ内の配置・配線処理の際に、配置・配線禁止領域として認識されるように、禁止領域化される。具体的には、例えば、マージ後のデータ（図５）において、配線経路の領域は配線禁止領域に変換され、コンポーネントが配置される領域は、階層マクロ内でコンポーネントが配置されないように配置されるフィルセルに変換される。コンピュータは、マージされた配線経路の領域及びコンポーネントが配置される領域を禁止領域化し、その情報を記憶装置に記憶する。コンピュータは、禁止領域化された領域に階層マクロ内のコンポーネントや階層マクロ内の配線が配置されないように階層マクロ内の配置・配線処理を行い、Ｎ種類の階層マクロのそれぞれについて、階層マクロレイアウトデータ１５を生成し（ステップＳ５）、これを記憶装置に記憶する。
【００２５】
各階層マクロは、ステップＳ５で生成された階層マクロレイアウトデータ１５に基づいて、動作検証が行われる。この動作検証には、例えば、シミュレーション又はスタティックタイミング検証によって、期待するタイミングで回路が動作するか否かを確かめる検証や、形式検証ツールによって、配置・配線結果のネットリストが、配置・配線前のネットリストと等価であることを確かめる検証、消費電力の検証等が含まれる。動作検証の結果に不具合があるときには、検証結果に不具合がなくなるまで、ステップＳ５の配置・配線処理を繰り返し行う。
【００２６】
動作検証によって、不具合がないことを確認して、各階層マクロのレイアウト検証を行う。レイアウト検証の際には、トップ階層の動作検証に使用する階層マクロのモデルが作成される。階層マクロのレイアウト検証が終了すると、作成された階層マクロのモデルを用いて、トップ階層の動作検証を行う。トップ階層の動作検証の結果に不具合がないことが確認されると、コンピュータは、階層マクロレイアウトデータ１５から禁止領域に関する情報を削除し、禁止領域に関する情報が削除された階層マクロレイアウトデータ１５と、落とし込み後の階層マクロデータ１４で示される通過配線、及び、落とし込むべきコンポーネントとをマージして、Ｎ種類の階層マクロレイアウトデータ１５から、（Ｍ1＋Ｍ2＋・・・＋ＭN）個の階層マクロ最終データ１６を生成し（ステップＳ６）、これを記憶装置に記憶する。
【００２７】
図６は、階層マクロ最終データが生成される様子を模式的に示している。階層マクロ１０１〜１０４と同じ種類の階層マクロに対応する、禁止領域に関する情報が削除された階層マクロレイアウトデータ１４として、同図に示すような落とし込み後の階層マクロレイアウトデータ１４が得られていたとする。このような階層マクロレイアウトデータ１４と、階層マクロ内に埋め込むべき通過配線、及び、埋め込むべきコンポーネントとをマージすることにより、階層マクロ１０１〜１０４に対応する４つの階層マクロ最終データ１６（１）〜（４）が得られる。
【００２８】
コンピュータは、ステップＳ２で生成された落とし込み後のトップ階層フロアプランデータ１３と、階層マクロ最終データ１６とをマージして階層の平坦化を行い、チップデータを生成する（ステップＳ７）。その際、各階層マクロ最終データ１６は、対応する階層マクロのトップ階層上での配置方向にあわせるように反転・回転されてマージされる。例えば、図２の階層マクロ１０１に対応する階層マクロ最終データ１６（１）は、平行移動するようにして、落とし込み後のトップ階層フロアプランデータ１３にマージされ、階層マクロ１０２に対応する階層マクロ最終データ１６（２）は、左右が反転されて、落とし込み後のトップ階層フロアプランデータ１３にマージされて、最終的に、図２に示す接続状態を有するチップデータが得られる。
【００２９】
従来の半導体装置の設計では、トップ階層上に同じ種類の階層マクロが複数配置される場合であって、各階層マクロに埋め込むべき通過配線の配線経路及びタイミング調整用のコンポーネントの配置位置が相互に異なっている場合には、各階層マクロそれぞれについて、レイアウト設計を行う必要があった。このように、従来は、トップ階層に配置される階層マクロの種類に比べて、レイアウト設計が必要な階層マクロの数が多く、レイアウト設計した各階層マクロについては、動作検証やレイアウト検証が必要となるため、設計ＴＡＴが長いという問題があった。
【００３０】
本実施形態例では、階層マクロの種類ごとに、各階層マクロの配置方向を一の方向に統一した上で、各階層マクロでの通過配線の経路情報、及び、タイミング調整用のコンポーネントの配置位置情報をマージし、マージされた情報で示される領域を禁止領域化して、階層マクロのレイアウト設計を行う。このため、トップ階層に同じ種類の階層マクロが複数配置される場合であって、各階層マクロに埋め込むべき通過配線の配線経路及びタイミング調整用のコンポーネントの配置位置が相互に異なっているときでも、同じ種類の階層マクロについては、階層マクロ内のレイアウト設計を１回で済ませることができる。
【００３１】
レイアウト設計された階層マクロは、動作検証やレイアウト検証によって、不具合がないことが確認される。本実施形態例では、このようにしてレイアウト設計された検証済みの階層マクロに、埋め込むべき通過配線、及び、タイミング調整用のコンポーネントを追加して、階層マクロ最終データ１６を得ているため、階層マクロ最終データ１６のそれぞれを検証する必要がない。本実施形態例では、トップ階層上にＮ種類の階層マクロが配置される場合には、Ｎ種類の階層マクロのレイアウト設計を行えばよく、レイアウト設計及び検証が必要な階層マクロの数を従来よりも削減することができ、設計ＴＡＴを短縮することができる。
【００３２】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明の半導体装置の設計方法及びプログラムは、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００３３】
【図１】本発明の半導体装置の設計方法の手順を示すフローチャート。
【図２】トップ階層での階層マクロ間の配線接続の様子を示すブロック図。
【図３】図２に示すトップ階層の状態から得られる、落とし込み処理後のトップ階層フロアプランデータを示すブロック図。
【図４】階層マクロ１０１〜１０４に埋め込まれる通過配線を示すブロック図。
【図５】マージされた配線経路とコンポーネントの配置位置と示すブロック図。
【図６】階層マクロ最終データが生成される様子を模式的に示すブロック図。
【図７】（ａ）及び（ｂ）は、それぞれ３つの階層マクロがトップ階層上に配置されている様子を示すブロック図。
【図８】（ａ）は、トップ階層での階層マクロ間を接続する配線の様子を示すブロック図であり、（ｂ）は、階層マクロ内に埋め込まれる配線等の様子を示すブロック図。
【符号の説明】
【００３４】
１１：トップ階層フロアプランデータ
１２：階層マクロフロアプランデータ
１３：落とし込み後のトップ階層フロアプランデータ
１４：落とし込み後の階層マクロデータ
１５：階層マクロレイアウトデータ
１６：階層マクロ最終データ
１０１〜１０４：階層マクロ
Ｎｅｔ〜Ｎｅｔ２：マクロ間配線
Ｃ１〜Ｃ７：コンポーネント
【図１】
2005235804.tif 000003
【図２】
2005235804.tif 000004
【図３】
2005235804.tif 000005
【図４】
2005235804.tif 000006
【図５】
2005235804.tif 000007
【図６】
2005235804.tif 000008
【図７】
2005235804.tif 000009
【図８】
2005235804.tif 000010