(57)【要約】【課題】半導体回路を構成するセルまたはマクロによる発熱が回路動作に及ぼす様々な好ましくない影響を回避することを可能とした、放熱コンポーネントの配置方法を提供することである。【解決手段】本発明の放熱コンポーネントの配置方法では、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定される（ステップＳ１０５）とともに、その放熱形成領域内に放熱コンポーネントが、バイオレーション判定ステップによる判定を介して、バイオレーションを発生しないように（配線同士の接触および配線と放熱コンポーネントとの接触がないように）配置される（ステップＳ１１０〜Ｓ１１３）。【選択図】図５
2008059225.tif 000002
【特許請求の範囲】
【請求項１】
基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、
その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法。
【請求項２】
前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする請求項１記載の放熱コンポーネント配置方法。
【請求項３】
前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする請求項１記載の放熱コンポーネント配置方法。
【請求項４】
前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする請求項１記載の放熱コンポーネント配置方法。
【請求項５】
基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、
設定された放熱コンポーネント配置を配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラム。
【請求項６】
前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする請求項５記載の放熱コンポーネント配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラムに関する。
【背景技術】
【０００２】
近年、基板上に搭載されるセル（ロジックゲート、インバータ、ナンド、等）またはマクロ（ＳＲＡＭ等）の個数が飛躍的に増大したことに伴って、それらセルまたはマクロ間を配線する層を、基板とは別に、基板に平行に複数設けるようにしている。
【０００３】
一方、ＩＣ内部で動作時に発生する熱がＩＣの動作に影響を与えるという報告がなされている。例えば、非特許文献１では、クロック・タイミングが温度変化の影響を受けやすい、局所的に温度が１５℃上昇するごとに、遅延やスルーレイトは、約１０〜１５％局所的に増加する、等といった内容が、発熱が回路動作に及ぼす影響として挙げられている。
【非特許文献１】http://www.ednjapan.com/content/issue/2005/12/content02.html “サーマル”インテグリティ 熱設計抜きでは語れない、ICの低消費化、Michael Santarini
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、半導体回路を構成するセルまたはマクロによる発熱が回路動作に及ぼす様々な好ましくない影響を回避することを可能とした、放熱コンポーネントを配置しうる放熱形成領域の設定方法、放熱コンポーネント配置方法、放熱コンポーネントを配置しうる放熱形成領域の設定プログラム、および、放熱コンポーネント配置プログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明の第１態様の放熱形成領域設定方法は、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を備えることを特徴とする放熱形成領域設定方法である。
【０００６】
ここで、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定される。
【０００７】
これにより、例えば、その放熱形成領域内に放熱コンポーネントを配置するように指定された設計データを基に製造されたＩＣチップの動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響（クロックタイミングの遅延等）を回避することができる。
【０００８】
本発明の第２態様の放熱コンポーネント配置方法は、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法である。
【０００９】
ここで、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定されるとともに、その放熱形成領域内に放熱コンポーネントが、バイオレーション判定ステップによる判定を介して、バイオレーションを発生しないように（配線同士の接触および配線と放熱コンポーネントとの接触がないように）配置される。
【００１０】
これにより、例えば、その設計データを基に製造されたＩＣチップの動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響（クロックタイミングの遅延等）を回避することができる。
【００１１】
本発明の第３態様の放熱形成領域設定プログラムは、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラムである。
【００１２】
本発明の第４態様の放熱コンポーネント配置プログラムは、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、設定された放熱コンポーネントを配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラムである。
【発明の効果】
【００１３】
本発明の放熱コンポーネントを配置しうる放熱形成領域の設定方法、放熱コンポーネントの配置方法、放熱コンポーネントを配置しうる放熱形成領域の設定プログラム、および、放熱コンポーネント配置プログラムを介して設計した半導体回路では、動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響を回避できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
本発明は、例えば、ＣＡＤ（Computer Aided Design）上で設計しているＩＣチップ（半導体回路）に対して、そのＩＣチップが備える複数のピンのうちから、１以上のピンを指定し、そのピンのクロックツリーに含まれる一部のセルまたはマクロについて基板上の搭載位置の周辺部に放熱コンポーネントを配置しうる放熱形成領域を設ける。
【００１５】
そして、このようにＩＣチップの設計データを調整し、その放熱形成領域内のいずれかの位置に放熱コンポーネントを配置するようにＩＣチップの設計データを変更する。これにより、例えば、その設計データを基に製造されたＩＣチップの動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響（クロックタイミングの遅延等）を回避することができる。
【００１６】
例えば、下記１．〜３．の手順にて、放熱コンポーネントをＩＣチップの基板上に配置する。
１．ＩＣチップの基板上に配置される複数のセル（マクロ）を複数のグループに分ける。
【００１７】
ここで、それぞれのグループは、基板内の近接した領域に配置される複数のセル（マクロ）から構成される。例えば、５個以下のセル（マクロ）から構成される。
このグループ内では、複数のセル（マクロ）が近接した領域内に配置されるため、１つのセル（マクロ）に放熱コンポーネントを配置した結果生じた配線形成層上での信号配線のルーティングの変更によって、そのグループ内の他のセル（マクロ）もバイオレーション（配線同士の接触または放熱コンポーネントと配線の接触）を引き起こす可能性が高い。
２．グループ内のセル（マクロ）の放熱形成領域内の放熱コンポーネントの位置のすべての組み合わせに対し、それらの位置にある放熱コンポーネントを迂回するように信号配線を実施するステップと、その信号配線を実施した結果、バイオレーションがあるかを判定するステップを実行する。
３．２．の判定ステップにおいてバイオレーションが発生しないと判定された場合に、それら放熱コンポーネントの位置の組み合わせと、対応する放熱形成領域をＩＣチップの設計データ上に追加して保存する。
【００１８】
図１は、本発明の一実施形態のＩＣチップに対する放熱コンポーネントの配置処理を行う放熱コンポーネント配置処理部の構成を示すブロック図である。
図１において、放熱コンポーネント配置処理部１０は、対象Ｉ／Ｏ決定部１２、対象セル・マクロ決定部１５、放熱形成領域・放熱コンポーネントサイズ設定部１６、放熱コンポーネント配置部１７、レイアウト部１８、を備える。
【００１９】
対象Ｉ／Ｏ決定部１２は、ＩＣチップのピンアサイン情報を記憶する仕様データ記憶部１１を基に、対象Ｉ／Ｏ（対象ピン）を決定する。
対象セル・マクロ決定部１５は、決定された対象ピンのクロックツリーを、ピンごとのクロックツリーを記憶するクロックツリー記憶部１３から取得するとともに、そのクロックツリーに含まれるセルまたはマクロについての各パラメータをセル・マクロライブラリ１４から取得する。そして、対象セル・マクロ決定部１５は、そのクロックツリーに含まれる複数のセルまたはマクロのうちから、対象ピンの入力信号の周波数を許容しうるセルまたはマクロを放熱コンポーネントを配置するセルまたはマクロとして決定する。
【００２０】
放熱形成領域・放熱コンポーネントサイズ決定部１６は、放熱コンポーネントを配置する対象として決定されたセルまたはマクロに対し、そのセルまたはマクロの各パラメータ（入力周波数、セルまたはマクロの面積、等）を基に、単位面積当たり、例えば、１μｍ２当たりの消費電力を求め、その消費電力の値に応じて、そのセルまたはマクロを配置する基板の位置の周辺に設ける放熱形成領域の幅を決める。
【００２１】
また、放熱形成領域・放熱コンポーネントサイズ設定部１６は、そのセルまたはマクロに対応して決定された放熱形成領域内に配置する放熱コンポーネントサイズを決定する。
セルまたはマクロごとに決定された放熱形成領域、放熱コンポーネントサイズは、ＩＣチップのレイアウトをシミュレーションするレイアウト部１８に出力される。
【００２２】
レイアウト部１８は、受け取った放熱形成領域に対応するセルまたはマクロを配置する基板の位置の周辺に、その受け取った放熱形成領域を設けるように、ＩＣチップの設計データを調整するとともに、自身の上で動作する放熱コンポーネント配置部１７を介して、その放熱形成領域上に放熱コンポーネントを配置する。
【００２３】
図２は、図１の仕様データ記憶部のデータ構造を示す図である。
図２に示すように、ＩＣチップの仕様データ（ピンアサイン情報）は、ＩＣチップに設けられたピンごとの各種情報（ピンの入出力信号、その信号の周波数、等）を備える。
【００２４】
図２では、クロック信号を入力するピンに対して、ユーザが、ユーザインターフェイス部（図１では、不図示）を介して、「Pinkind」の項目の値を「Clock」に設定するようにしている。また、「Pinkind」の値を「Clock」に設定したピンについては、そのクロックの周期を「周期（ns）」の項目に設定するようにしている。
【００２５】
図３は、図１の対象セル・マクロ決定部による処理を説明する図である。
図３に示すように、対象セル・マクロ決定部１５は、決定された対象ピンのクロックツリーをクロックツリー記憶部１３から取得する。
【００２６】
この例では、取得したクロックツリーでは、そのピンの入力信号が２つのクロックバッファ（「CLKbuf」）が接続され、その２つのクロックバッファに４つのクロックバッファが接続され、その４つのクロックバッファのそれぞれに複数のフリップフロップ（「F.F」）が接続される。
【００２７】
図３では、セルから次段移行で接続されるセルまでの範囲、すなわち、入力ＣＬＫピンからクロックバッファを通してＦＦのＣＬＫ端子に直接つながる範囲に含まれるセル（図３に含まれるすべてのクロックバッファおよびフリップフロップ）が、対象とするセル（クロックバッファ、フリップフロップ）として選択されている。
【００２８】
これにより、決定された対象ピンのクロックツリーに含まれる複数のセルまたはマクロのうちで、高い周波数のクロック信号を入力して動作するセルまたはマクロ、すなわち、動作時の発熱が高いセルまたはマクロを抽出することが可能となる。
【００２９】
図４は、図１のセル・マクロライブラリのデータ構造を示す図である。
図４において、セルの一例として、クロックバッファ（「CLKbuf」）およびフリップフロップ（「F.F」）が挙げられている。そして、それらのセルについて、入力信号の周期、セルサイズ、電源電圧、クロック（CLK）動作率、DATA動作率（データを入力するかどうかを示すフラグ情報）、プロセス（設計値に対して製造結果が速くずれるか遅くずれるかを示す情報）の各項目を備えている。
【００３０】
図５は、ＩＣチップに対する放熱コンポーネント配置処理のフローチャートである。この処理は、図１の放熱コンポーネント配置処理部１０によって実行される。
図５において、まず、ステップＳ１０１で、ＩＣチップのピンアサイン情報を記憶する仕様データ記憶部１１を基に、対象Ｉ／Ｏ決定部１２によって、対象Ｉ／Ｏ（対象ピン）が決定される。すなわち、対象Ｉ／Ｏ決定部１２は、クロック信号を入力するピンを、仕様データ記憶部１１から抽出する。
【００３１】
そして、ステップＳ１０２で、対象セル・マクロ決定部１５によって、決定された対象ピンのクロックツリーが、ピンごとのクロックツリーを記憶するクロックツリー記憶部１３から取得されるとともに、そのクロックツリーに含まれるセルまたはマクロについての各パラメータがセル・マクロライブラリ１４から取得される。そして、対象セル・マクロ決定部１５によって、そのクロックツリーに含まれる複数のセルまたはマクロのうちから、対象ピンの入力信号の周波数を許容しうるセルまたはマクロが放熱コンポーネントを配置するセルまたはマクロとして決定される。例えば、ステップＳ１０２をＣＴＳ（Clock Tree Synthesis）工程の一部として行うことができる。
【００３２】
ステップＳ１０３では、放熱コンポーネントを配置する対象のセルまたはマクロとして決定されたセルまたはマクロ（対象とするセルまたはマクロ）に対する、各種パラメータが放熱形成領域・放熱コンポーネントサイズ決定部１６によって、セル・マクロライブラリ１４から抽出される。
【００３３】
そして、ステップＳ１０４において、放熱形成領域・放熱コンポーネントサイズ決定部１６によって、対象とするセルまたはマクロの単位面積当たりの消費電力が算出される。
ステップＳ１０５では、放熱形成領域・放熱コンポーネントサイズ決定部１６によって、算出された単位面積当たりの消費電力を基に、その対象とするセルまたはマクロを基板上に配置する位置の周辺に設ける放熱形成領域（の幅）が決定される。図６は、クロックバッファおよびフリップフロップに対して決定された放熱形成領域を示す図である。
【００３４】
そして、ステップＳ１０６では、ステップＳ１０５で決定された放熱形成領域が示すマージンをそれぞれの対象とするセルおよびマクロに持たせて、レイアウト部１８による基板上へのセルおよびマクロの配置（シミュレーション）が実行される。図７は、レイアウト部による基板上のセル配置の調整の一例を示す図である。
【００３５】
ステップＳ１０７では、放熱形成領域・放熱コンポーネントサイズ決定部１６によって、そのセルまたはマクロに対応して決定された放熱形成領域内に配置する放熱コンポーネントサイズ（放熱コンポーネントが基板や配線形成層に占める領域）が決定される。
【００３６】
なお、放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置（の上下方向）において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成される。すなわち、放熱コンポーネントは、基板上の放熱配線に対し、ビアとそのビアと接触する放熱配線を１段以上、例えば、基板から最上層の配線形成層に達するまでの段数重ねて構成される。
【００３７】
ビアと放熱配線が接触しているため、基板上に配置された放熱配線が吸収したセル（マクロ）の動作時の熱を、ビアを介して、対応する位置のより上層に設けられた放熱配線にも吸収させることが可能となる。ビアとそのビアと接触する放熱配線を重ねる段数が多いほど、熱の吸収効果は高い。
【００３８】
なお、「放熱コンポーネントが基板に占める領域」は、後述するように、レイアウト時に、配線形成層において、放熱コンポーネントを配線に優先させる領域であることから「優先放熱配線領域」とも呼ぶ。「放熱コンポーネントが基板に占める領域」にマージンを持たせた領域を「優先放熱配線領域」と呼んで区別するようにしてもよい（ステップＳ１０７で両方の値を算出するようにしてもよい）。この場合、バイオレーション（配線同士の接触や配線と放熱コンポーネントとの接触、「設計基準違反」ともいう）の発生率を一層下げることができる。
【００３９】
ステップＳ１０８では、放熱コンポーネント配置部１７によって、図８に示すように、決定された放熱形成領域が四隅部分、上下部分、左右部分に分割される。
また、ステップＳ１０９では、放熱コンポーネント配置部１７によって、分割された放熱形成領域の各部に対して順位付け（番号付け）が行われる。
【００４０】
この順位付けでは、図９に示すように、放熱コンポーネントを、四隅部分、上下部分、左右部分、の順に放熱形成領域上に配置するように優先順位を付けている。
セルまたはマクロに配線が出入りしない斜め方向（四隅部分）の優先順位を最も高く設定することで、放熱コンポーネントの基板上への配置処理を効率よく行うことができる。
【００４１】
なお、図１０に示すように、「Ａ１」→「Ａ２」→「Ａ３」→「Ａ４」→「Ｂ１」→「Ｂ２」→「Ｂ３」→「Ｂ４」→「Ｃ１」→「Ｃ２」→「Ｃ３」→「Ｃ４」の順にそのセル（クロックバッファ）に対して放熱コンポーネントの配置シミュレーションが行われることになる。
【００４２】
そして、ステップＳ１１０で、放熱コンポーネント配置部１７によって、放熱形成領域の現在位置（この場合、「Ａ１」）が優先放熱配線領域に指定される。
ステップＳ１１１では、ステップＳ１１０で、優先放熱配線領域に指定された放熱形成領域の現在位置が、レイアウト部１８によって、図１１に示すように、配線のその領域内への引き回しを禁止する配線禁止領域に指定される。
【００４３】
なお、図１１では、１個のフリップフロップ（「F.F」）と、２個のクロックバッファ（「CLKbuf」）が基板上に配置されている。その３個のセルの放熱形成領域を分割した領域のすべての組み合わせに対して、図５のステップＳ１１０〜Ｓ１１３の各ステップが実行される。
【００４４】
一般には、基板上の近接する領域に含まれる複数のセルまたはマクロ（配線の引き回しの結果が相互に影響するような複数のセルまたはマクロ）の放熱形成領域を分割した領域のすべての組み合わせに対して、図５のステップＳ１１０〜Ｓ１１３の各ステップが実行される。そして、図５のステップＳ１１３でバイオレーション判定ステップにおいて接触が発生しないと判定された場合に、基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、ＩＣチップの設計データに追加して保存する。
【００４５】
図５のステップＳ１１２では、レイアウト部１８によって、図１２に示すように、信号配線が実施される。この際、レイアウト部１８は、信号配線をステップＳ１１１で配線禁止領域に指定した領域を避けるように、それぞれの配線形成層で信号配線をルーティングする。
【００４６】
なお、本実施形態においては、放熱コンポーネントは、ビアとそのビアと接触する放熱配線を１段以上重ねて構成されるが、図１２では、ビアとそのビアと接触する放熱配線を積み重ねる段数を基板から最上層の配線形成層までとしている。このようにすることで、効率よく熱を吸収できるという利点がある反面、バイオレーションの発生率は高まってしまう。
【００４７】
そこで、放熱コンポーネントを積み重ねる段数を１段以上の段数中からユーザが設定できるようにしてもよい。このようにすれば、バイオレーションの発生率を下げることができ、放熱コンポーネントが必要な高い周波数で動作するすべてのセル（マクロ）に放熱コンポーネントを配置できる確率を一層高めることができる。
【００４８】
図５のステップＳ１１３では、レイアウト部１８によって、ステップＳ１１２の信号配線を実施した結果としてバイオレーション（配線同士の接触や配線と放熱コンポーネントとの接触）が発生したかどうかが判定される。
【００４９】
ステップＳ１１３においてレイアウト部１８によりバイオレーションが発生しないと判定された場合、ステップＳ１１４において、レイアウト部１８によって、図１３に示すように、そのレイアウト（直前のステップＳ１１２の信号配線の実施結果）において、それぞれのセル（マクロ）に放熱コンポーネントを余分に置くスペースがあるかが判定され、もし、放熱コンポーネントを余分に置くスペースがあった場合、そのスペースにも放熱コンポーネントを置くようにＩＣチップの設計データが変更される。なお、このステップＳ１１４で、ステップＳ１１１で配線禁止領域に指定した領域を優先放熱配線領域に戻す。
【００５０】
ステップＳ１１５では、レイアウト部１８によって、図１４に示すように、ステップＳ１１２の信号配線の実施結果上に、放熱コンポーネントが形成される。すなわち、優先放熱配線領域上に、放熱コンポーネントが形成される。
【００５１】
一方、ステップＳ１１３においてレイアウト部１８によりバイオレーションが発生すると判定された場合、ステップＳ１１６において、放熱コンポーネント配置部１７によって、それぞれのセル（マクロ）の放熱形成領域内の位置のすべての組み合わせが完了したかどうかが判定される。
【００５２】
ステップＳ１１６において、放熱コンポーネント配置部１７によって、それぞれのセル（マクロ）の放熱形成領域内の位置のすべての組み合わせが完了していないと判定された場合、例えば、現在位置を移動しているセルについて、すべての位置を移動済みでない場合、現在位置を次の位置に移動して（図１０の「Ａ１」に対しては、次の位置は「Ａ２」）ステップＳ１１０に戻る。
【００５３】
一方、ステップＳ１１６において、放熱コンポーネント配置部１７によって、それぞれのセル（マクロ）の放熱形成領域内の位置のすべての組み合わせが完了したと判定された場合、ステップＳ１１７において処理を強制終了する。そして、ステップＳ１１８において、ステップＳ１１０で行った優先放熱配線領域の指定を解除する。
【００５４】
続いて、図５のステップＳ１０４のセル（マクロ）の単位面積当たりの消費電力の計算、ステップＳ１０５の放熱形成領域（の幅）の決定、ステップＳ１０７の対象セル（マクロ）の放熱コンポーネントサイズの決定（優先放熱配線領域の正方形の一辺の長さの算出）についてより詳細に説明する。
【００５５】
以下では、セルとして、クロックバッファ、フリップフロップを、マクロとしてメモリマクロを例にとり説明する。
まず、クロックバッファの場合、消費電力ＰＣＬＫは以下の式で計算できる。
ＰＣＬＫ＝（Ｐ０＋ＰＣＬ）［μＷ／ＭＨｚ／ＣＤ］×クロック周波数［ＭＨｚ］×ＣＤ動作率
ここで、Ｐ０は、１ＣＤ、１イベント当たりの平均消費電力、ＰＣＬは、出力負荷の充放電平均消費電力であり、クロックバッファの型番等で異なるが、一例を示せば、あるクロックバッファについては以下の式で与えられる。
Ｐ０＝０．０７１５０×Ｖ×ＰＴＶｑｉ［μＷ／ＭＨｚ／ＣＤ］
ＰＣＬ＝０．３８５００×Ｖ＾２［μＷ／ＭＨｚ／ＣＤ］
ここで、Ｖは電源電圧、ＰＴＶｑｉは、電源電圧Ｖと、動作時の温度Ｔと、プロセスで決まる定数であり、ここでは、その値は１．０６である。
【００５６】
クロック周波数＝１００ＭＨｚ、ＣＤ動作率＝２．００、Ｖ＝１．８Ｖとすると、消費電力は次式で与えられる。
ＰＣＬ＝（０．０７１５０×１．８×１．０６＋０．３８５００×１．８＾２）×１００×２．００
上式で算出された消費電力の値をセル（クロックバッファ）の面積で割ることで、単位面積（１μｍ２）当たりの（この例の）クロックバッファの消費電力が求まる。
【００５７】
図１５は、対象とするセル（マクロ）の単位面積当たりの消費電力と、そのセル（マクロ）に設定する放熱形成領域の幅を対応付けたテーブルを示す図である。
このテーブルを用いて、上述のようにして求めたクロックバッファの単位面積当たりの消費電力に対する放熱形成領域の幅を図５のステップＳ１０５では求めている。
【００５８】
図１６は、対象とするセル（マクロ）の単位面積当たりの消費電力と、そのセル（マクロ）に配置する放熱コンポーネントの矩形（正方形）の一辺の長さを対応付けたテーブルを示す図である。
【００５９】
このテーブルを用いて、上述のようにして求めたクロックバッファの単位面積当たりの消費電力に対する放熱形成領域内に配置する放熱コンポーネントの矩形（正方形）の一辺の長さを図５のステップＳ１０７では求めている。
【００６０】
次に、フリップフロップの場合、データ部とクロック部に分けて消費電力ＰＦＦ（データ部）、ＰＦＦ（クロック部）を求めている。
まず、フリップフロップ（データ部）について説明する。
【００６１】
フリップフロップ（データ部）の消費電力は、以下の式で求まる。
ＰＦＦ（データ部）＝（Ｐ０＋ＰＣＬ）［μＷ／ＭＨｚ／ＦＦ］×クロック周波数［ＭＨｚ］×ＦＦ動作率（データ部）
ここで、ＦＦ動作率（データ部）には、データ部分が変化する度合いを率として与え、その値は、通常、０．１〜０．３前後になる。また、Ｐ０は、１ＦＦ、データ部１イベント当たりの平均消費電力、ＰＣＬは、出力負荷の充放電平均消費電力（１ＦＦ当たり１出力と仮定）であり、フリップフロップの型番等で異なるが、一例を示せば、あるフリップフロップについては以下の式で与えられる。
Ｐ０＝０．０４５９２×Ｖ×ＰＴＶｑｉ［μＷ／ＭＨｚ／ＦＦ］
ＰＣＬ＝０．０１２９４×Ｖ＾２［μＷ／ＭＨｚ／ＦＦ］
ここで、Ｖは電源電圧、ＰＴＶｑｉは、電源電圧Ｖと、動作時の温度Ｔと、プロセスで決まる定数であり、ここでは、その値は１．０６である。
【００６２】
クロック周波数＝１００ＭＨｚ、ＦＦ動作率（データ部）＝０．１０、Ｖ＝１．８Ｖとすると、消費電力は次式で与えられる。
ＰＦＦ（データ部）＝（０．０４５９２×１．８×１．０６＋０．０１２９４×１．８＾２）×１００×０．１０
上式で算出された消費電力の値をセル（フリップフロップ）の面積で割ることで、単位面積（１μｍ２）当たりの（この例の）フリップフロップ（データ部）の消費電力が求まる。
【００６３】
続いて、フリップフロップ（クロック部）について説明する。
フリップフロップ（クロック部）の消費電力は、以下の式で求まる。
ＰＦＦ（クロック部）＝（Ｐ０）［μＷ／ＭＨｚ／ＦＦ］×クロック周波数［ＭＨｚ］×ＦＦ動作率（クロック部）
ここで、ＦＦ動作率（クロック部）は、ＦＦが波形の立ち上がり、および、立下りで動作していると考え、その値を２．０に設定する。また、Ｐ０は、１ＦＦ、データ部１イベント当たりの平均消費電力であり、フリップフロップの型番等で異なるが、一例を示せば、あるフリップフロップについては以下の式で与えられる。
Ｐ０＝０．０１５２１×Ｖ×ＰＴＶｑｉ［μＷ／ＭＨｚ／ＦＦ］
ここで、Ｖは電源電圧、ＰＴＶｑｉは、電源電圧Ｖと、動作時の温度Ｔと、プロセスで決まる定数であり、ここでは、その値は１．０６である。
【００６４】
クロック周波数＝１００ＭＨｚ、ＦＦ動作率（クロック部）＝２．００、Ｖ＝１．８Ｖとすると、消費電力は次式で与えられる。
ＰＦＦ（クロック部）＝０．０１５２１×１．８×１．０６×１００×２．００
上式で算出された消費電力の値をセル（フリップフロップ）の面積で割ることで、単位面積（１μｍ２）当たりの（この例の）フリップフロップ（クロック部）の消費電力が求まる。
【００６５】
最後にメモリマクロの場合、消費電力Ｐ＿ｒａｍは以下の式で計算できる。
Ｐ＿ｒａｍ＝Ｐ＿ｒａｍ＿ｄ０×εｐｔｖ＋Ｐ＿ｒａｍ＿ｓ０×δｐｔｖ
ここで、上式右辺第１項（Ｐ＿ｒａｍ＿ｄ０×εｐｔｖ）は、動作時の電力計算式であり、右辺第２項（Ｐ＿ｒａｍ＿ｓ０×δｐｔｖ）は、静止時の電力計算式である。
【００６６】
右辺第１項（Ｐ＿ｒａｍ＿ｄ０×εｐｔｖ）中のＰ＿ｒａｍ＿ｄ０は、論理ワード数Ｗ、論理ビット数Ｂ、column数、動作周波数Ｆ、電源電圧Ｖに依存して決まる定数であり、εｐｔｖは、動作時温度Ｔ、電源電圧Ｖ、プロセス（slow、typical、fast）に依存して決まる定数である。
【００６７】
また、右辺第２項（Ｐ＿ｒａｍ＿ｓ０×δｐｔｖ）中のＰ＿ｒａｍ＿ｓ０は、論理ワード数Ｗ、論理ビット数Ｂ、電源電圧Ｖに依存して決まる定数であり、δｐｔｖは、動作時温度Ｔ、電源電圧Ｖ、プロセス（slow、typical、fast）に依存して決まる定数である。
【００６８】
この場合も、算出された消費電力Ｐ＿ｒａｍの値をメモリマクロの面積で割ることで、単位面積（例えば、１μｍ２）当たりのメモリマクロの消費電力が求まる。
図１７は、記憶媒体例を示す図である。
【００６９】
本発明の放熱形成領域・放熱コンポーネントサイズ決定処理、放熱コンポーネント配置シミュレーションは、情報処理装置４１によって実現することが可能である。本発明の処理のためのプログラムやデータは、情報処理装置４１の記憶装置４５から情報処理装置４１のメモリにロードして実行することも、可搬型記憶媒体４３から情報処理装置４１のメモリにロードして実行することも、外部記憶装置４２からネットワーク４６を介して情報処理装置４１のメモリにロードして実行することも可能である。
【００７０】
本発明は下記構成でもよい。
（付記１）  基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を備えることを特徴とする放熱形成領域設定方法。
（付記２）  前記あるパラメータは、セルまたはマクロの面積、セルまたはマクロの温度係数、そのセルまたはマクロに接続されるピンの入力信号の周波数であることを特徴とする付記１記載の放熱形成領域設定方法。
（付記３）  前記選択されたセルまたはマクロは、信号が入力されるピンに接続された複数のセルまたはマクロの中で、入力周波数範囲がそのピンの入力信号の周波数を含むセルまたはマクロであることを特徴とする付記１記載の放熱形成領域設定方法。
（付記４）  基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップ、を備えることを特徴とする放熱形成領域設定方法。
（付記５）  前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記４記載の放熱形成領域設定方法。
（付記６）  基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、
その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法。
（付記７）  前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記６記載の放熱コンポーネント配置方法。
（付記８）  前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする付記６記載の放熱コンポーネント配置方法。
（付記９）  前記放熱コンポーネントは、基板上の放熱配線に対し、ビアと該ビアと接触する放熱配線を基板から最上層の配線形成層に達するまでの段数重ねて構成されることを特徴とする付記８記載の放熱コンポーネント配置方法。
（付記１０）  前記選択されたセルまたはマクロは、前記半導体回路が備える複数のピンのうちから、指定されたピンに対応するクロックツリーから選択されたセルまたはマクロであることを特徴とする付記６記載の放熱コンポーネント配置方法。
（付記１１）  前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする付記６記載の放熱コンポーネント配置方法。
（付記１２）  前記放熱形成領域を四隅部分、上下部分、左右部分に分割するステップをさらに備え、
前記基板上の近接する領域に集まって配置される複数のセルまたはマクロのそれぞれについて、その放熱形成領域を分割した領域のすべての組み合わせに対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行され、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記保存するステップでは、前記基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存することを特徴とする付記６記載の放熱コンポーネント配置方法。
（付記１３）  基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラム。
（付記１４）  前記あるパラメータは、セルまたはマクロの面積、セルまたはマクロの温度係数、そのセルまたはマクロに接続されるピンの入力信号の周波数であることを特徴とする付記１３記載の放熱形成領域設定プログラム。
（付記１５）  前記選択されたセルまたはマクロは、信号が入力されるピンに接続された複数のセルまたはマクロの中で、入力周波数範囲がそのピンの入力信号の周波数を含むセルまたはマクロであることを特徴とする付記１３記載の放熱形成領域設定プログラム。
（付記１６）  基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラム。
（付記１７）  前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記１６記載の放熱形成領域設定プログラム。
（付記１８）  前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする付記１６記載の放熱コンポーネント配置プログラム。
（付記１９）  前記放熱コンポーネントは、基板上の放熱配線に対し、ビアと該ビアと接触する放熱配線を基板から最上層の配線形成層に達するまでの段数重ねて構成されることを特徴とする付記１８記載の放熱コンポーネント配置プログラム。
（付記２０）  前記選択されたセルまたはマクロは、前記半導体回路が備える複数のピンのうちから、指定されたピンに対応するクロックツリーから選択されたセルまたはマクロであることを特徴とする付記１６記載の放熱形成領域設定プログラム。
（付記２１）  基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、
設定された放熱コンポーネントを配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラム。
（付記２２）  前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする付記２１記載の放熱コンポーネント配置プログラム。
（付記２３）  前記放熱形成領域を四隅部分、上下部分、左右部分に分割するステップをさらに備え、
前記基板上の近接する領域に集まって配置される複数のセルまたはマクロのそれぞれについて、その放熱形成領域を分割した領域のすべての組み合わせに対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行され、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記保存するステップでは、前記基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存することを特徴とする付記２１記載の放熱コンポーネント配置プログラム。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態のＩＣチップに対する放熱コンポーネントの配置処理を行う放熱コンポーネント配置処理部の構成を示すブロック図である。
【図２】図１の仕様データ記憶部のデータ構造を示す図である。
【図３】図１の対象セル・マクロ決定部による処理を説明する図である。
【図４】図１のセル・マクロライブラリのデータ構造を示す図である。
【図５】ＩＣチップに対する放熱コンポーネント配置処理のフローチャートである。
【図６】クロックバッファおよびフリップフロップに対して決定された放熱形成領域を示す図である。
【図７】レイアウト部による基板上のセル配置の調整の一例を示す図である。
【図８】クロックバッファおよびフリップフロップに対して決定された放熱形成領域を分割した状態を示す図である。
【図９】図８で分割した放熱形成領域の各部分を順位付けした図である。
【図１０】優先放熱配線領域を、順位付けの順番にしたがって、放熱形成領域の各部分に移動することを示した図である。
【図１１】信号配線を実施するに先立って、優先放熱配線領域を配線禁止領域に指定したＩＣチップの状態を示した図である。
【図１２】信号配線を実施した結果のＩＣチップの状態を示した図である。
【図１３】信号配線を実施した結果のＩＣチップに対し、優先放熱配線領域を設定可能な位置にさらに設定した状態を示した図である。
【図１４】図１３の優先放熱配線領域を放熱コンポーネントで置き換えた図である。
【図１５】対象とするセル（マクロ）の単位面積当たりの消費電力と、そのセル（マクロ）に設定する放熱形成領域の幅を対応付けたテーブルを示す図である。
【図１６】対象とするセル（マクロ）の単位面積当たりの消費電力と、そのセル（マクロ）に配置する放熱コンポーネントの矩形（正方形）の一辺の長さを対応付けたテーブルを示す図である。
【図１７】記憶媒体例を示す図である。
【符号の説明】
【００７２】
１０      放熱コンポーネント配置処理部
１１      仕様データ記憶部
１２      対象Ｉ／Ｏ決定部
１３      クロックツリー記憶部
１４      セル・マクロライブラリ
１５      対象セル・マクロ決定部
１６      放熱形成領域・放熱コンポーネントサイズ決定部
１７      放熱コンポーネント配置部
１８      レイアウト部
【図１】
2008059225.tif 000003
【図２】
2008059225.tif 000004
【図４】
2008059225.tif 000005
【図５】
2008059225.tif 000006
【図１５】
2008059225.tif 000007
【図１６】
2008059225.tif 000008
【図１７】
2008059225.tif 000009
【図３】
2008059225.tif 000010
【図６】
2008059225.tif 000011
【図７】
2008059225.tif 000012
【図８】
2008059225.tif 000013
【図９】
2008059225.tif 000014
【図１０】
2008059225.tif 000015
【図１１】
2008059225.tif 000016
【図１２】
2008059225.tif 000017
【図１３】
2008059225.tif 000018
【図１４】
2008059225.tif 000019