JP2008059225A - 半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラム - Google Patents
半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラム Download PDFInfo
- Publication number
- JP2008059225A JP2008059225A JP2006234681A JP2006234681A JP2008059225A JP 2008059225 A JP2008059225 A JP 2008059225A JP 2006234681 A JP2006234681 A JP 2006234681A JP 2006234681 A JP2006234681 A JP 2006234681A JP 2008059225 A JP2008059225 A JP 2008059225A
- Authority
- JP
- Japan
- Prior art keywords
- heat radiation
- component
- heat
- heat dissipation
- cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】半導体回路を構成するセルまたはマクロによる発熱が回路動作に及ぼす様々な好ましくない影響を回避することを可能とした、放熱コンポーネントの配置方法を提供することである。
【解決手段】本発明の放熱コンポーネントの配置方法では、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定される(ステップS105)とともに、その放熱形成領域内に放熱コンポーネントが、バイオレーション判定ステップによる判定を介して、バイオレーションを発生しないように(配線同士の接触および配線と放熱コンポーネントとの接触がないように)配置される(ステップS110〜S113)。
【選択図】図5
【解決手段】本発明の放熱コンポーネントの配置方法では、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定される(ステップS105)とともに、その放熱形成領域内に放熱コンポーネントが、バイオレーション判定ステップによる判定を介して、バイオレーションを発生しないように(配線同士の接触および配線と放熱コンポーネントとの接触がないように)配置される(ステップS110〜S113)。
【選択図】図5
Description
本発明は、半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラムに関する。
近年、基板上に搭載されるセル(ロジックゲート、インバータ、ナンド、等)またはマクロ(SRAM等)の個数が飛躍的に増大したことに伴って、それらセルまたはマクロ間を配線する層を、基板とは別に、基板に平行に複数設けるようにしている。
一方、IC内部で動作時に発生する熱がICの動作に影響を与えるという報告がなされている。例えば、非特許文献1では、クロック・タイミングが温度変化の影響を受けやすい、局所的に温度が15℃上昇するごとに、遅延やスルーレイトは、約10〜15%局所的に増加する、等といった内容が、発熱が回路動作に及ぼす影響として挙げられている。
http://www.ednjapan.com/content/issue/2005/12/content02.html "サーマル"インテグリティ 熱設計抜きでは語れない、ICの低消費化、Michael Santarini
http://www.ednjapan.com/content/issue/2005/12/content02.html "サーマル"インテグリティ 熱設計抜きでは語れない、ICの低消費化、Michael Santarini
本発明の課題は、半導体回路を構成するセルまたはマクロによる発熱が回路動作に及ぼす様々な好ましくない影響を回避することを可能とした、放熱コンポーネントを配置しうる放熱形成領域の設定方法、放熱コンポーネント配置方法、放熱コンポーネントを配置しうる放熱形成領域の設定プログラム、および、放熱コンポーネント配置プログラムを提供することである。
本発明の第1態様の放熱形成領域設定方法は、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を備えることを特徴とする放熱形成領域設定方法である。
ここで、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定される。
これにより、例えば、その放熱形成領域内に放熱コンポーネントを配置するように指定された設計データを基に製造されたICチップの動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響(クロックタイミングの遅延等)を回避することができる。
本発明の第2態様の放熱コンポーネント配置方法は、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法である。
ここで、放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、その基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域が設定されるとともに、その放熱形成領域内に放熱コンポーネントが、バイオレーション判定ステップによる判定を介して、バイオレーションを発生しないように(配線同士の接触および配線と放熱コンポーネントとの接触がないように)配置される。
これにより、例えば、その設計データを基に製造されたICチップの動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響(クロックタイミングの遅延等)を回避することができる。
本発明の第3態様の放熱形成領域設定プログラムは、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラムである。
本発明の第4態様の放熱コンポーネント配置プログラムは、基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、設定された放熱コンポーネントを配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラムである。
本発明の放熱コンポーネントを配置しうる放熱形成領域の設定方法、放熱コンポーネントの配置方法、放熱コンポーネントを配置しうる放熱形成領域の設定プログラム、および、放熱コンポーネント配置プログラムを介して設計した半導体回路では、動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響を回避できる。
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
本発明は、例えば、CAD(Computer Aided Design)上で設計しているICチップ(半導体回路)に対して、そのICチップが備える複数のピンのうちから、1以上のピンを指定し、そのピンのクロックツリーに含まれる一部のセルまたはマクロについて基板上の搭載位置の周辺部に放熱コンポーネントを配置しうる放熱形成領域を設ける。
本発明は、例えば、CAD(Computer Aided Design)上で設計しているICチップ(半導体回路)に対して、そのICチップが備える複数のピンのうちから、1以上のピンを指定し、そのピンのクロックツリーに含まれる一部のセルまたはマクロについて基板上の搭載位置の周辺部に放熱コンポーネントを配置しうる放熱形成領域を設ける。
そして、このようにICチップの設計データを調整し、その放熱形成領域内のいずれかの位置に放熱コンポーネントを配置するようにICチップの設計データを変更する。これにより、例えば、その設計データを基に製造されたICチップの動作時にセルまたはマクロに入力される信号がスイッチングすることに伴って、そのセルまたはマクロが発熱しても、その熱を放熱コンポーネントに吸収することが可能となり、発熱が回路動作に及ぼす様々な好ましくない影響(クロックタイミングの遅延等)を回避することができる。
例えば、下記1.〜3.の手順にて、放熱コンポーネントをICチップの基板上に配置する。
1.ICチップの基板上に配置される複数のセル(マクロ)を複数のグループに分ける。
1.ICチップの基板上に配置される複数のセル(マクロ)を複数のグループに分ける。
ここで、それぞれのグループは、基板内の近接した領域に配置される複数のセル(マクロ)から構成される。例えば、5個以下のセル(マクロ)から構成される。
このグループ内では、複数のセル(マクロ)が近接した領域内に配置されるため、1つのセル(マクロ)に放熱コンポーネントを配置した結果生じた配線形成層上での信号配線のルーティングの変更によって、そのグループ内の他のセル(マクロ)もバイオレーション(配線同士の接触または放熱コンポーネントと配線の接触)を引き起こす可能性が高い。
2.グループ内のセル(マクロ)の放熱形成領域内の放熱コンポーネントの位置のすべての組み合わせに対し、それらの位置にある放熱コンポーネントを迂回するように信号配線を実施するステップと、その信号配線を実施した結果、バイオレーションがあるかを判定するステップを実行する。
3.2.の判定ステップにおいてバイオレーションが発生しないと判定された場合に、それら放熱コンポーネントの位置の組み合わせと、対応する放熱形成領域をICチップの設計データ上に追加して保存する。
このグループ内では、複数のセル(マクロ)が近接した領域内に配置されるため、1つのセル(マクロ)に放熱コンポーネントを配置した結果生じた配線形成層上での信号配線のルーティングの変更によって、そのグループ内の他のセル(マクロ)もバイオレーション(配線同士の接触または放熱コンポーネントと配線の接触)を引き起こす可能性が高い。
2.グループ内のセル(マクロ)の放熱形成領域内の放熱コンポーネントの位置のすべての組み合わせに対し、それらの位置にある放熱コンポーネントを迂回するように信号配線を実施するステップと、その信号配線を実施した結果、バイオレーションがあるかを判定するステップを実行する。
3.2.の判定ステップにおいてバイオレーションが発生しないと判定された場合に、それら放熱コンポーネントの位置の組み合わせと、対応する放熱形成領域をICチップの設計データ上に追加して保存する。
図1は、本発明の一実施形態のICチップに対する放熱コンポーネントの配置処理を行う放熱コンポーネント配置処理部の構成を示すブロック図である。
図1において、放熱コンポーネント配置処理部10は、対象I/O決定部12、対象セル・マクロ決定部15、放熱形成領域・放熱コンポーネントサイズ設定部16、放熱コンポーネント配置部17、レイアウト部18、を備える。
図1において、放熱コンポーネント配置処理部10は、対象I/O決定部12、対象セル・マクロ決定部15、放熱形成領域・放熱コンポーネントサイズ設定部16、放熱コンポーネント配置部17、レイアウト部18、を備える。
対象I/O決定部12は、ICチップのピンアサイン情報を記憶する仕様データ記憶部11を基に、対象I/O(対象ピン)を決定する。
対象セル・マクロ決定部15は、決定された対象ピンのクロックツリーを、ピンごとのクロックツリーを記憶するクロックツリー記憶部13から取得するとともに、そのクロックツリーに含まれるセルまたはマクロについての各パラメータをセル・マクロライブラリ14から取得する。そして、対象セル・マクロ決定部15は、そのクロックツリーに含まれる複数のセルまたはマクロのうちから、対象ピンの入力信号の周波数を許容しうるセルまたはマクロを放熱コンポーネントを配置するセルまたはマクロとして決定する。
対象セル・マクロ決定部15は、決定された対象ピンのクロックツリーを、ピンごとのクロックツリーを記憶するクロックツリー記憶部13から取得するとともに、そのクロックツリーに含まれるセルまたはマクロについての各パラメータをセル・マクロライブラリ14から取得する。そして、対象セル・マクロ決定部15は、そのクロックツリーに含まれる複数のセルまたはマクロのうちから、対象ピンの入力信号の周波数を許容しうるセルまたはマクロを放熱コンポーネントを配置するセルまたはマクロとして決定する。
放熱形成領域・放熱コンポーネントサイズ決定部16は、放熱コンポーネントを配置する対象として決定されたセルまたはマクロに対し、そのセルまたはマクロの各パラメータ(入力周波数、セルまたはマクロの面積、等)を基に、単位面積当たり、例えば、1μm2当たりの消費電力を求め、その消費電力の値に応じて、そのセルまたはマクロを配置する基板の位置の周辺に設ける放熱形成領域の幅を決める。
また、放熱形成領域・放熱コンポーネントサイズ設定部16は、そのセルまたはマクロに対応して決定された放熱形成領域内に配置する放熱コンポーネントサイズを決定する。
セルまたはマクロごとに決定された放熱形成領域、放熱コンポーネントサイズは、ICチップのレイアウトをシミュレーションするレイアウト部18に出力される。
セルまたはマクロごとに決定された放熱形成領域、放熱コンポーネントサイズは、ICチップのレイアウトをシミュレーションするレイアウト部18に出力される。
レイアウト部18は、受け取った放熱形成領域に対応するセルまたはマクロを配置する基板の位置の周辺に、その受け取った放熱形成領域を設けるように、ICチップの設計データを調整するとともに、自身の上で動作する放熱コンポーネント配置部17を介して、その放熱形成領域上に放熱コンポーネントを配置する。
図2は、図1の仕様データ記憶部のデータ構造を示す図である。
図2に示すように、ICチップの仕様データ(ピンアサイン情報)は、ICチップに設けられたピンごとの各種情報(ピンの入出力信号、その信号の周波数、等)を備える。
図2に示すように、ICチップの仕様データ(ピンアサイン情報)は、ICチップに設けられたピンごとの各種情報(ピンの入出力信号、その信号の周波数、等)を備える。
図2では、クロック信号を入力するピンに対して、ユーザが、ユーザインターフェイス部(図1では、不図示)を介して、「Pinkind」の項目の値を「Clock」に設定するようにしている。また、「Pinkind」の値を「Clock」に設定したピンについては、そのクロックの周期を「周期(ns)」の項目に設定するようにしている。
図3は、図1の対象セル・マクロ決定部による処理を説明する図である。
図3に示すように、対象セル・マクロ決定部15は、決定された対象ピンのクロックツリーをクロックツリー記憶部13から取得する。
図3に示すように、対象セル・マクロ決定部15は、決定された対象ピンのクロックツリーをクロックツリー記憶部13から取得する。
この例では、取得したクロックツリーでは、そのピンの入力信号が2つのクロックバッファ(「CLKbuf」)が接続され、その2つのクロックバッファに4つのクロックバッファが接続され、その4つのクロックバッファのそれぞれに複数のフリップフロップ(「F.F」)が接続される。
図3では、セルから次段移行で接続されるセルまでの範囲、すなわち、入力CLKピンからクロックバッファを通してFFのCLK端子に直接つながる範囲に含まれるセル(図3に含まれるすべてのクロックバッファおよびフリップフロップ)が、対象とするセル(クロックバッファ、フリップフロップ)として選択されている。
これにより、決定された対象ピンのクロックツリーに含まれる複数のセルまたはマクロのうちで、高い周波数のクロック信号を入力して動作するセルまたはマクロ、すなわち、動作時の発熱が高いセルまたはマクロを抽出することが可能となる。
図4は、図1のセル・マクロライブラリのデータ構造を示す図である。
図4において、セルの一例として、クロックバッファ(「CLKbuf」)およびフリップフロップ(「F.F」)が挙げられている。そして、それらのセルについて、入力信号の周期、セルサイズ、電源電圧、クロック(CLK)動作率、DATA動作率(データを入力するかどうかを示すフラグ情報)、プロセス(設計値に対して製造結果が速くずれるか遅くずれるかを示す情報)の各項目を備えている。
図4において、セルの一例として、クロックバッファ(「CLKbuf」)およびフリップフロップ(「F.F」)が挙げられている。そして、それらのセルについて、入力信号の周期、セルサイズ、電源電圧、クロック(CLK)動作率、DATA動作率(データを入力するかどうかを示すフラグ情報)、プロセス(設計値に対して製造結果が速くずれるか遅くずれるかを示す情報)の各項目を備えている。
図5は、ICチップに対する放熱コンポーネント配置処理のフローチャートである。この処理は、図1の放熱コンポーネント配置処理部10によって実行される。
図5において、まず、ステップS101で、ICチップのピンアサイン情報を記憶する仕様データ記憶部11を基に、対象I/O決定部12によって、対象I/O(対象ピン)が決定される。すなわち、対象I/O決定部12は、クロック信号を入力するピンを、仕様データ記憶部11から抽出する。
図5において、まず、ステップS101で、ICチップのピンアサイン情報を記憶する仕様データ記憶部11を基に、対象I/O決定部12によって、対象I/O(対象ピン)が決定される。すなわち、対象I/O決定部12は、クロック信号を入力するピンを、仕様データ記憶部11から抽出する。
そして、ステップS102で、対象セル・マクロ決定部15によって、決定された対象ピンのクロックツリーが、ピンごとのクロックツリーを記憶するクロックツリー記憶部13から取得されるとともに、そのクロックツリーに含まれるセルまたはマクロについての各パラメータがセル・マクロライブラリ14から取得される。そして、対象セル・マクロ決定部15によって、そのクロックツリーに含まれる複数のセルまたはマクロのうちから、対象ピンの入力信号の周波数を許容しうるセルまたはマクロが放熱コンポーネントを配置するセルまたはマクロとして決定される。例えば、ステップS102をCTS(Clock Tree Synthesis)工程の一部として行うことができる。
ステップS103では、放熱コンポーネントを配置する対象のセルまたはマクロとして決定されたセルまたはマクロ(対象とするセルまたはマクロ)に対する、各種パラメータが放熱形成領域・放熱コンポーネントサイズ決定部16によって、セル・マクロライブラリ14から抽出される。
そして、ステップS104において、放熱形成領域・放熱コンポーネントサイズ決定部16によって、対象とするセルまたはマクロの単位面積当たりの消費電力が算出される。
ステップS105では、放熱形成領域・放熱コンポーネントサイズ決定部16によって、算出された単位面積当たりの消費電力を基に、その対象とするセルまたはマクロを基板上に配置する位置の周辺に設ける放熱形成領域(の幅)が決定される。図6は、クロックバッファおよびフリップフロップに対して決定された放熱形成領域を示す図である。
ステップS105では、放熱形成領域・放熱コンポーネントサイズ決定部16によって、算出された単位面積当たりの消費電力を基に、その対象とするセルまたはマクロを基板上に配置する位置の周辺に設ける放熱形成領域(の幅)が決定される。図6は、クロックバッファおよびフリップフロップに対して決定された放熱形成領域を示す図である。
そして、ステップS106では、ステップS105で決定された放熱形成領域が示すマージンをそれぞれの対象とするセルおよびマクロに持たせて、レイアウト部18による基板上へのセルおよびマクロの配置(シミュレーション)が実行される。図7は、レイアウト部による基板上のセル配置の調整の一例を示す図である。
ステップS107では、放熱形成領域・放熱コンポーネントサイズ決定部16によって、そのセルまたはマクロに対応して決定された放熱形成領域内に配置する放熱コンポーネントサイズ(放熱コンポーネントが基板や配線形成層に占める領域)が決定される。
なお、放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置(の上下方向)において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成される。すなわち、放熱コンポーネントは、基板上の放熱配線に対し、ビアとそのビアと接触する放熱配線を1段以上、例えば、基板から最上層の配線形成層に達するまでの段数重ねて構成される。
ビアと放熱配線が接触しているため、基板上に配置された放熱配線が吸収したセル(マクロ)の動作時の熱を、ビアを介して、対応する位置のより上層に設けられた放熱配線にも吸収させることが可能となる。ビアとそのビアと接触する放熱配線を重ねる段数が多いほど、熱の吸収効果は高い。
なお、「放熱コンポーネントが基板に占める領域」は、後述するように、レイアウト時に、配線形成層において、放熱コンポーネントを配線に優先させる領域であることから「優先放熱配線領域」とも呼ぶ。「放熱コンポーネントが基板に占める領域」にマージンを持たせた領域を「優先放熱配線領域」と呼んで区別するようにしてもよい(ステップS107で両方の値を算出するようにしてもよい)。この場合、バイオレーション(配線同士の接触や配線と放熱コンポーネントとの接触、「設計基準違反」ともいう)の発生率を一層下げることができる。
ステップS108では、放熱コンポーネント配置部17によって、図8に示すように、決定された放熱形成領域が四隅部分、上下部分、左右部分に分割される。
また、ステップS109では、放熱コンポーネント配置部17によって、分割された放熱形成領域の各部に対して順位付け(番号付け)が行われる。
また、ステップS109では、放熱コンポーネント配置部17によって、分割された放熱形成領域の各部に対して順位付け(番号付け)が行われる。
この順位付けでは、図9に示すように、放熱コンポーネントを、四隅部分、上下部分、左右部分、の順に放熱形成領域上に配置するように優先順位を付けている。
セルまたはマクロに配線が出入りしない斜め方向(四隅部分)の優先順位を最も高く設定することで、放熱コンポーネントの基板上への配置処理を効率よく行うことができる。
セルまたはマクロに配線が出入りしない斜め方向(四隅部分)の優先順位を最も高く設定することで、放熱コンポーネントの基板上への配置処理を効率よく行うことができる。
なお、図10に示すように、「A1」→「A2」→「A3」→「A4」→「B1」→「B2」→「B3」→「B4」→「C1」→「C2」→「C3」→「C4」の順にそのセル(クロックバッファ)に対して放熱コンポーネントの配置シミュレーションが行われることになる。
そして、ステップS110で、放熱コンポーネント配置部17によって、放熱形成領域の現在位置(この場合、「A1」)が優先放熱配線領域に指定される。
ステップS111では、ステップS110で、優先放熱配線領域に指定された放熱形成領域の現在位置が、レイアウト部18によって、図11に示すように、配線のその領域内への引き回しを禁止する配線禁止領域に指定される。
ステップS111では、ステップS110で、優先放熱配線領域に指定された放熱形成領域の現在位置が、レイアウト部18によって、図11に示すように、配線のその領域内への引き回しを禁止する配線禁止領域に指定される。
なお、図11では、1個のフリップフロップ(「F.F」)と、2個のクロックバッファ(「CLKbuf」)が基板上に配置されている。その3個のセルの放熱形成領域を分割した領域のすべての組み合わせに対して、図5のステップS110〜S113の各ステップが実行される。
一般には、基板上の近接する領域に含まれる複数のセルまたはマクロ(配線の引き回しの結果が相互に影響するような複数のセルまたはマクロ)の放熱形成領域を分割した領域のすべての組み合わせに対して、図5のステップS110〜S113の各ステップが実行される。そして、図5のステップS113でバイオレーション判定ステップにおいて接触が発生しないと判定された場合に、基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、ICチップの設計データに追加して保存する。
図5のステップS112では、レイアウト部18によって、図12に示すように、信号配線が実施される。この際、レイアウト部18は、信号配線をステップS111で配線禁止領域に指定した領域を避けるように、それぞれの配線形成層で信号配線をルーティングする。
なお、本実施形態においては、放熱コンポーネントは、ビアとそのビアと接触する放熱配線を1段以上重ねて構成されるが、図12では、ビアとそのビアと接触する放熱配線を積み重ねる段数を基板から最上層の配線形成層までとしている。このようにすることで、効率よく熱を吸収できるという利点がある反面、バイオレーションの発生率は高まってしまう。
そこで、放熱コンポーネントを積み重ねる段数を1段以上の段数中からユーザが設定できるようにしてもよい。このようにすれば、バイオレーションの発生率を下げることができ、放熱コンポーネントが必要な高い周波数で動作するすべてのセル(マクロ)に放熱コンポーネントを配置できる確率を一層高めることができる。
図5のステップS113では、レイアウト部18によって、ステップS112の信号配線を実施した結果としてバイオレーション(配線同士の接触や配線と放熱コンポーネントとの接触)が発生したかどうかが判定される。
ステップS113においてレイアウト部18によりバイオレーションが発生しないと判定された場合、ステップS114において、レイアウト部18によって、図13に示すように、そのレイアウト(直前のステップS112の信号配線の実施結果)において、それぞれのセル(マクロ)に放熱コンポーネントを余分に置くスペースがあるかが判定され、もし、放熱コンポーネントを余分に置くスペースがあった場合、そのスペースにも放熱コンポーネントを置くようにICチップの設計データが変更される。なお、このステップS114で、ステップS111で配線禁止領域に指定した領域を優先放熱配線領域に戻す。
ステップS115では、レイアウト部18によって、図14に示すように、ステップS112の信号配線の実施結果上に、放熱コンポーネントが形成される。すなわち、優先放熱配線領域上に、放熱コンポーネントが形成される。
一方、ステップS113においてレイアウト部18によりバイオレーションが発生すると判定された場合、ステップS116において、放熱コンポーネント配置部17によって、それぞれのセル(マクロ)の放熱形成領域内の位置のすべての組み合わせが完了したかどうかが判定される。
ステップS116において、放熱コンポーネント配置部17によって、それぞれのセル(マクロ)の放熱形成領域内の位置のすべての組み合わせが完了していないと判定された場合、例えば、現在位置を移動しているセルについて、すべての位置を移動済みでない場合、現在位置を次の位置に移動して(図10の「A1」に対しては、次の位置は「A2」)ステップS110に戻る。
一方、ステップS116において、放熱コンポーネント配置部17によって、それぞれのセル(マクロ)の放熱形成領域内の位置のすべての組み合わせが完了したと判定された場合、ステップS117において処理を強制終了する。そして、ステップS118において、ステップS110で行った優先放熱配線領域の指定を解除する。
続いて、図5のステップS104のセル(マクロ)の単位面積当たりの消費電力の計算、ステップS105の放熱形成領域(の幅)の決定、ステップS107の対象セル(マクロ)の放熱コンポーネントサイズの決定(優先放熱配線領域の正方形の一辺の長さの算出)についてより詳細に説明する。
以下では、セルとして、クロックバッファ、フリップフロップを、マクロとしてメモリマクロを例にとり説明する。
まず、クロックバッファの場合、消費電力PCLKは以下の式で計算できる。
PCLK=(P0+PCL)[μW/MHz/CD]×クロック周波数[MHz]×CD動作率
ここで、P0は、1CD、1イベント当たりの平均消費電力、PCLは、出力負荷の充放電平均消費電力であり、クロックバッファの型番等で異なるが、一例を示せば、あるクロックバッファについては以下の式で与えられる。
P0=0.07150×V×PTVqi[μW/MHz/CD]
PCL=0.38500×V^2[μW/MHz/CD]
ここで、Vは電源電圧、PTVqiは、電源電圧Vと、動作時の温度Tと、プロセスで決まる定数であり、ここでは、その値は1.06である。
まず、クロックバッファの場合、消費電力PCLKは以下の式で計算できる。
PCLK=(P0+PCL)[μW/MHz/CD]×クロック周波数[MHz]×CD動作率
ここで、P0は、1CD、1イベント当たりの平均消費電力、PCLは、出力負荷の充放電平均消費電力であり、クロックバッファの型番等で異なるが、一例を示せば、あるクロックバッファについては以下の式で与えられる。
P0=0.07150×V×PTVqi[μW/MHz/CD]
PCL=0.38500×V^2[μW/MHz/CD]
ここで、Vは電源電圧、PTVqiは、電源電圧Vと、動作時の温度Tと、プロセスで決まる定数であり、ここでは、その値は1.06である。
クロック周波数=100MHz、CD動作率=2.00、V=1.8Vとすると、消費電力は次式で与えられる。
PCL=(0.07150×1.8×1.06+0.38500×1.8^2)×100×2.00
上式で算出された消費電力の値をセル(クロックバッファ)の面積で割ることで、単位面積(1μm2)当たりの(この例の)クロックバッファの消費電力が求まる。
PCL=(0.07150×1.8×1.06+0.38500×1.8^2)×100×2.00
上式で算出された消費電力の値をセル(クロックバッファ)の面積で割ることで、単位面積(1μm2)当たりの(この例の)クロックバッファの消費電力が求まる。
図15は、対象とするセル(マクロ)の単位面積当たりの消費電力と、そのセル(マクロ)に設定する放熱形成領域の幅を対応付けたテーブルを示す図である。
このテーブルを用いて、上述のようにして求めたクロックバッファの単位面積当たりの消費電力に対する放熱形成領域の幅を図5のステップS105では求めている。
このテーブルを用いて、上述のようにして求めたクロックバッファの単位面積当たりの消費電力に対する放熱形成領域の幅を図5のステップS105では求めている。
図16は、対象とするセル(マクロ)の単位面積当たりの消費電力と、そのセル(マクロ)に配置する放熱コンポーネントの矩形(正方形)の一辺の長さを対応付けたテーブルを示す図である。
このテーブルを用いて、上述のようにして求めたクロックバッファの単位面積当たりの消費電力に対する放熱形成領域内に配置する放熱コンポーネントの矩形(正方形)の一辺の長さを図5のステップS107では求めている。
次に、フリップフロップの場合、データ部とクロック部に分けて消費電力PFF(データ部)、PFF(クロック部)を求めている。
まず、フリップフロップ(データ部)について説明する。
まず、フリップフロップ(データ部)について説明する。
フリップフロップ(データ部)の消費電力は、以下の式で求まる。
PFF(データ部)=(P0+PCL)[μW/MHz/FF]×クロック周波数[MHz]×FF動作率(データ部)
ここで、FF動作率(データ部)には、データ部分が変化する度合いを率として与え、その値は、通常、0.1〜0.3前後になる。また、P0は、1FF、データ部1イベント当たりの平均消費電力、PCLは、出力負荷の充放電平均消費電力(1FF当たり1出力と仮定)であり、フリップフロップの型番等で異なるが、一例を示せば、あるフリップフロップについては以下の式で与えられる。
P0=0.04592×V×PTVqi[μW/MHz/FF]
PCL=0.01294×V^2[μW/MHz/FF]
ここで、Vは電源電圧、PTVqiは、電源電圧Vと、動作時の温度Tと、プロセスで決まる定数であり、ここでは、その値は1.06である。
PFF(データ部)=(P0+PCL)[μW/MHz/FF]×クロック周波数[MHz]×FF動作率(データ部)
ここで、FF動作率(データ部)には、データ部分が変化する度合いを率として与え、その値は、通常、0.1〜0.3前後になる。また、P0は、1FF、データ部1イベント当たりの平均消費電力、PCLは、出力負荷の充放電平均消費電力(1FF当たり1出力と仮定)であり、フリップフロップの型番等で異なるが、一例を示せば、あるフリップフロップについては以下の式で与えられる。
P0=0.04592×V×PTVqi[μW/MHz/FF]
PCL=0.01294×V^2[μW/MHz/FF]
ここで、Vは電源電圧、PTVqiは、電源電圧Vと、動作時の温度Tと、プロセスで決まる定数であり、ここでは、その値は1.06である。
クロック周波数=100MHz、FF動作率(データ部)=0.10、V=1.8Vとすると、消費電力は次式で与えられる。
PFF(データ部)=(0.04592×1.8×1.06+0.01294×1.8^2)×100×0.10
上式で算出された消費電力の値をセル(フリップフロップ)の面積で割ることで、単位面積(1μm2)当たりの(この例の)フリップフロップ(データ部)の消費電力が求まる。
PFF(データ部)=(0.04592×1.8×1.06+0.01294×1.8^2)×100×0.10
上式で算出された消費電力の値をセル(フリップフロップ)の面積で割ることで、単位面積(1μm2)当たりの(この例の)フリップフロップ(データ部)の消費電力が求まる。
続いて、フリップフロップ(クロック部)について説明する。
フリップフロップ(クロック部)の消費電力は、以下の式で求まる。
PFF(クロック部)=(P0)[μW/MHz/FF]×クロック周波数[MHz]×FF動作率(クロック部)
ここで、FF動作率(クロック部)は、FFが波形の立ち上がり、および、立下りで動作していると考え、その値を2.0に設定する。また、P0は、1FF、データ部1イベント当たりの平均消費電力であり、フリップフロップの型番等で異なるが、一例を示せば、あるフリップフロップについては以下の式で与えられる。
P0=0.01521×V×PTVqi[μW/MHz/FF]
ここで、Vは電源電圧、PTVqiは、電源電圧Vと、動作時の温度Tと、プロセスで決まる定数であり、ここでは、その値は1.06である。
フリップフロップ(クロック部)の消費電力は、以下の式で求まる。
PFF(クロック部)=(P0)[μW/MHz/FF]×クロック周波数[MHz]×FF動作率(クロック部)
ここで、FF動作率(クロック部)は、FFが波形の立ち上がり、および、立下りで動作していると考え、その値を2.0に設定する。また、P0は、1FF、データ部1イベント当たりの平均消費電力であり、フリップフロップの型番等で異なるが、一例を示せば、あるフリップフロップについては以下の式で与えられる。
P0=0.01521×V×PTVqi[μW/MHz/FF]
ここで、Vは電源電圧、PTVqiは、電源電圧Vと、動作時の温度Tと、プロセスで決まる定数であり、ここでは、その値は1.06である。
クロック周波数=100MHz、FF動作率(クロック部)=2.00、V=1.8Vとすると、消費電力は次式で与えられる。
PFF(クロック部)=0.01521×1.8×1.06×100×2.00
上式で算出された消費電力の値をセル(フリップフロップ)の面積で割ることで、単位面積(1μm2)当たりの(この例の)フリップフロップ(クロック部)の消費電力が求まる。
PFF(クロック部)=0.01521×1.8×1.06×100×2.00
上式で算出された消費電力の値をセル(フリップフロップ)の面積で割ることで、単位面積(1μm2)当たりの(この例の)フリップフロップ(クロック部)の消費電力が求まる。
最後にメモリマクロの場合、消費電力P_ramは以下の式で計算できる。
P_ram=P_ram_d0×εptv+P_ram_s0×δptv
ここで、上式右辺第1項(P_ram_d0×εptv)は、動作時の電力計算式であり、右辺第2項(P_ram_s0×δptv)は、静止時の電力計算式である。
P_ram=P_ram_d0×εptv+P_ram_s0×δptv
ここで、上式右辺第1項(P_ram_d0×εptv)は、動作時の電力計算式であり、右辺第2項(P_ram_s0×δptv)は、静止時の電力計算式である。
右辺第1項(P_ram_d0×εptv)中のP_ram_d0は、論理ワード数W、論理ビット数B、column数、動作周波数F、電源電圧Vに依存して決まる定数であり、εptvは、動作時温度T、電源電圧V、プロセス(slow、typical、fast)に依存して決まる定数である。
また、右辺第2項(P_ram_s0×δptv)中のP_ram_s0は、論理ワード数W、論理ビット数B、電源電圧Vに依存して決まる定数であり、δptvは、動作時温度T、電源電圧V、プロセス(slow、typical、fast)に依存して決まる定数である。
この場合も、算出された消費電力P_ramの値をメモリマクロの面積で割ることで、単位面積(例えば、1μm2)当たりのメモリマクロの消費電力が求まる。
図17は、記憶媒体例を示す図である。
図17は、記憶媒体例を示す図である。
本発明の放熱形成領域・放熱コンポーネントサイズ決定処理、放熱コンポーネント配置シミュレーションは、情報処理装置41によって実現することが可能である。本発明の処理のためのプログラムやデータは、情報処理装置41の記憶装置45から情報処理装置41のメモリにロードして実行することも、可搬型記憶媒体43から情報処理装置41のメモリにロードして実行することも、外部記憶装置42からネットワーク46を介して情報処理装置41のメモリにロードして実行することも可能である。
本発明は下記構成でもよい。
(付記1) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を備えることを特徴とする放熱形成領域設定方法。
(付記2) 前記あるパラメータは、セルまたはマクロの面積、セルまたはマクロの温度係数、そのセルまたはマクロに接続されるピンの入力信号の周波数であることを特徴とする付記1記載の放熱形成領域設定方法。
(付記3) 前記選択されたセルまたはマクロは、信号が入力されるピンに接続された複数のセルまたはマクロの中で、入力周波数範囲がそのピンの入力信号の周波数を含むセルまたはマクロであることを特徴とする付記1記載の放熱形成領域設定方法。
(付記4) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップ、を備えることを特徴とする放熱形成領域設定方法。
(付記5) 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記4記載の放熱形成領域設定方法。
(付記6) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、
その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法。
(付記7) 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記8) 前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記9) 前記放熱コンポーネントは、基板上の放熱配線に対し、ビアと該ビアと接触する放熱配線を基板から最上層の配線形成層に達するまでの段数重ねて構成されることを特徴とする付記8記載の放熱コンポーネント配置方法。
(付記10) 前記選択されたセルまたはマクロは、前記半導体回路が備える複数のピンのうちから、指定されたピンに対応するクロックツリーから選択されたセルまたはマクロであることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記11) 前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記12) 前記放熱形成領域を四隅部分、上下部分、左右部分に分割するステップをさらに備え、
前記基板上の近接する領域に集まって配置される複数のセルまたはマクロのそれぞれについて、その放熱形成領域を分割した領域のすべての組み合わせに対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行され、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記保存するステップでは、前記基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存することを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記13) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラム。
(付記14) 前記あるパラメータは、セルまたはマクロの面積、セルまたはマクロの温度係数、そのセルまたはマクロに接続されるピンの入力信号の周波数であることを特徴とする付記13記載の放熱形成領域設定プログラム。
(付記15) 前記選択されたセルまたはマクロは、信号が入力されるピンに接続された複数のセルまたはマクロの中で、入力周波数範囲がそのピンの入力信号の周波数を含むセルまたはマクロであることを特徴とする付記13記載の放熱形成領域設定プログラム。
(付記16) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラム。
(付記17) 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記16記載の放熱形成領域設定プログラム。
(付記18) 前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする付記16記載の放熱コンポーネント配置プログラム。
(付記19) 前記放熱コンポーネントは、基板上の放熱配線に対し、ビアと該ビアと接触する放熱配線を基板から最上層の配線形成層に達するまでの段数重ねて構成されることを特徴とする付記18記載の放熱コンポーネント配置プログラム。
(付記20) 前記選択されたセルまたはマクロは、前記半導体回路が備える複数のピンのうちから、指定されたピンに対応するクロックツリーから選択されたセルまたはマクロであることを特徴とする付記16記載の放熱形成領域設定プログラム。
(付記21) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、
設定された放熱コンポーネントを配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラム。
(付記22) 前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする付記21記載の放熱コンポーネント配置プログラム。
(付記23) 前記放熱形成領域を四隅部分、上下部分、左右部分に分割するステップをさらに備え、
前記基板上の近接する領域に集まって配置される複数のセルまたはマクロのそれぞれについて、その放熱形成領域を分割した領域のすべての組み合わせに対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行され、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記保存するステップでは、前記基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存することを特徴とする付記21記載の放熱コンポーネント配置プログラム。
(付記1) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を備えることを特徴とする放熱形成領域設定方法。
(付記2) 前記あるパラメータは、セルまたはマクロの面積、セルまたはマクロの温度係数、そのセルまたはマクロに接続されるピンの入力信号の周波数であることを特徴とする付記1記載の放熱形成領域設定方法。
(付記3) 前記選択されたセルまたはマクロは、信号が入力されるピンに接続された複数のセルまたはマクロの中で、入力周波数範囲がそのピンの入力信号の周波数を含むセルまたはマクロであることを特徴とする付記1記載の放熱形成領域設定方法。
(付記4) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップ、を備えることを特徴とする放熱形成領域設定方法。
(付記5) 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記4記載の放熱形成領域設定方法。
(付記6) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、
その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法。
(付記7) 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記8) 前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記9) 前記放熱コンポーネントは、基板上の放熱配線に対し、ビアと該ビアと接触する放熱配線を基板から最上層の配線形成層に達するまでの段数重ねて構成されることを特徴とする付記8記載の放熱コンポーネント配置方法。
(付記10) 前記選択されたセルまたはマクロは、前記半導体回路が備える複数のピンのうちから、指定されたピンに対応するクロックツリーから選択されたセルまたはマクロであることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記11) 前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記12) 前記放熱形成領域を四隅部分、上下部分、左右部分に分割するステップをさらに備え、
前記基板上の近接する領域に集まって配置される複数のセルまたはマクロのそれぞれについて、その放熱形成領域を分割した領域のすべての組み合わせに対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行され、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記保存するステップでは、前記基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存することを特徴とする付記6記載の放熱コンポーネント配置方法。
(付記13) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロに対して、あるパラメータを基に、前記放熱形成領域を設定するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラム。
(付記14) 前記あるパラメータは、セルまたはマクロの面積、セルまたはマクロの温度係数、そのセルまたはマクロに接続されるピンの入力信号の周波数であることを特徴とする付記13記載の放熱形成領域設定プログラム。
(付記15) 前記選択されたセルまたはマクロは、信号が入力されるピンに接続された複数のセルまたはマクロの中で、入力周波数範囲がそのピンの入力信号の周波数を含むセルまたはマクロであることを特徴とする付記13記載の放熱形成領域設定プログラム。
(付記16) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置しうる放熱形成領域を設定する処理をコンピュータに実行させるプログラムにおいて、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップ、を前記コンピュータに実行させることを特徴とする放熱形成領域設定プログラム。
(付記17) 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする付記16記載の放熱形成領域設定プログラム。
(付記18) 前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする付記16記載の放熱コンポーネント配置プログラム。
(付記19) 前記放熱コンポーネントは、基板上の放熱配線に対し、ビアと該ビアと接触する放熱配線を基板から最上層の配線形成層に達するまでの段数重ねて構成されることを特徴とする付記18記載の放熱コンポーネント配置プログラム。
(付記20) 前記選択されたセルまたはマクロは、前記半導体回路が備える複数のピンのうちから、指定されたピンに対応するクロックツリーから選択されたセルまたはマクロであることを特徴とする付記16記載の放熱形成領域設定プログラム。
(付記21) 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、
設定された放熱コンポーネントを配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラム。
(付記22) 前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする付記21記載の放熱コンポーネント配置プログラム。
(付記23) 前記放熱形成領域を四隅部分、上下部分、左右部分に分割するステップをさらに備え、
前記基板上の近接する領域に集まって配置される複数のセルまたはマクロのそれぞれについて、その放熱形成領域を分割した領域のすべての組み合わせに対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行され、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記保存するステップでは、前記基板上の近接する領域の複数のセルまたはマクロのそれぞれについて、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存することを特徴とする付記21記載の放熱コンポーネント配置プログラム。
10 放熱コンポーネント配置処理部
11 仕様データ記憶部
12 対象I/O決定部
13 クロックツリー記憶部
14 セル・マクロライブラリ
15 対象セル・マクロ決定部
16 放熱形成領域・放熱コンポーネントサイズ決定部
17 放熱コンポーネント配置部
18 レイアウト部
11 仕様データ記憶部
12 対象I/O決定部
13 クロックツリー記憶部
14 セル・マクロライブラリ
15 対象セル・マクロ決定部
16 放熱形成領域・放熱コンポーネントサイズ決定部
17 放熱コンポーネント配置部
18 レイアウト部
Claims (6)
- 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータが実行する方法において、
前記複数のセルまたはマクロの中から、前記放熱コンポーネントを配置するセルまたはマクロとして選択されたセルまたはマクロの基板上の搭載位置の周囲に前記放熱コンポーネントを配置しうる放熱形成領域を設定するステップと、
その設定された放熱形成領域に配置する放熱コンポーネントの基板に占めるサイズを算出するステップと、
その設定された放熱形成領域に前記サイズが算出された放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を備えることを特徴とする放熱コンポーネント配置方法。 - 前記放熱形成領域の幅は、その放熱形成領域に対応するセルまたはマクロの単位面積当たりの消費電力に比例して設定されることを特徴とする請求項1記載の放熱コンポーネント配置方法。
- 前記放熱コンポーネントは、対象とするセルまたはマクロの放熱形成領域内の所定の位置において、基板と各配線形成層にサイズが算出された配線である放熱配線を配置するとともに、それら放熱配線間をビアで連結して構成されることを特徴とする請求項1記載の放熱コンポーネント配置方法。
- 前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする請求項1記載の放熱コンポーネント配置方法。 - 基板上の半導体回路を構成する複数のセルまたはマクロに対して、放熱コンポーネントを配置するシミュレーションをコンピュータに実行させるプログラムにおいて、
設定された放熱コンポーネント配置を配置しうる放熱形成領域に、その放熱形成領域に対応するサイズを有する放熱コンポーネントを配置するステップと、
前記放熱コンポーネントを配置した放熱形成領域中の位置を回避するように、前記半導体回路の複数の配線形成層の信号配線を実行するステップと、
前記信号配線の実行によって、配線同士または配線と放熱コンポーネントとの接触が発生したかを判定するバイオレーション判定ステップと、
前記バイオレーション判定ステップにおいて接触が発生しないと判定された場合に、前記放熱形成領域およびその放熱形成領域に放熱コンポーネントを配置した位置を、前記半導体回路の設計データに追加して保存するステップ、を前記コンピュータに実行させることを特徴とする放熱コンポーネント配置プログラム。 - 前記放熱形成領域を四隅、上下、左右の領域に分割するステップをさらに備え、
その放熱形成領域を分割したそれぞれの領域に対して、前記放熱コンポーネントを配置するステップ、前記信号配線を実行するステップ、前記バイオレーション判定ステップが実行されることを特徴とする請求項5記載の放熱コンポーネント配置プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006234681A JP2008059225A (ja) | 2006-08-30 | 2006-08-30 | 半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006234681A JP2008059225A (ja) | 2006-08-30 | 2006-08-30 | 半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008059225A true JP2008059225A (ja) | 2008-03-13 |
Family
ID=39241895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006234681A Withdrawn JP2008059225A (ja) | 2006-08-30 | 2006-08-30 | 半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008059225A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018528617A (ja) * | 2015-09-11 | 2018-09-27 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 電力密度ベースのクロックセル間隔 |
-
2006
- 2006-08-30 JP JP2006234681A patent/JP2008059225A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018528617A (ja) * | 2015-09-11 | 2018-09-27 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 電力密度ベースのクロックセル間隔 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10418354B2 (en) | Integrated circuit and computer-implemented method of manufacturing the same | |
US8010926B2 (en) | Clock power minimization with regular physical placement of clock repeater components | |
US9817937B2 (en) | Area efficient power switch | |
KR102434991B1 (ko) | 집적 회로 및 집적 회로의 설계 방법 | |
KR102601216B1 (ko) | 반도체 장치의 설계 방법 | |
TW201905742A (zh) | 增強去耦電容的實施方式的系統、方法及電腦產品 | |
US20070277138A1 (en) | Method of searching paths suffering from the electrostatic discharge in the process of an integrated circuit design | |
US20240037309A1 (en) | Multiplexer | |
US8187924B2 (en) | Method, design program and design support device for semiconductor integrated circuit, and semiconductor integrated circuit | |
KR101651230B1 (ko) | 집적 회로 및 표준 셀 라이브러리 | |
JP2001237317A (ja) | 半導体集積回路装置、その設計方法、及びi/oセルライブラリが記録されたコンピュータ読み取り可能な記録媒体 | |
US11392743B2 (en) | Multiplexer | |
KR20170094744A (ko) | 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법 | |
US9665678B2 (en) | Method and program for designing integrated circuit | |
JP2008059225A (ja) | 半導体回路を構成するセルまたはマクロに放熱コンポーネントを配置しうる放熱形成領域を設定する方法、半導体回路を構成するセルまたはマクロに対する放熱コンポーネント配置方法、放熱形成領域設定プログラム、および、放熱コンポーネント配置プログラム | |
US20220343053A1 (en) | Semiconductor structure of cell array with adaptive threshold voltage | |
US6799310B2 (en) | Integrated circuit layout method and program for mitigating effect due to voltage drop of power supply wiring | |
JP2010212377A (ja) | 半導体集積回路設計装置および半導体集積回路設計方法 | |
US9678530B2 (en) | Clock skew adjusting structure | |
US10860758B2 (en) | Method of using simulation software to generate circuit layout | |
JP3705737B2 (ja) | 半導体集積回路のレイアウト方法 | |
US11092885B2 (en) | Manufacturing methods of semiconductor devices | |
Banker et al. | Physical design tradeoffs for ASIC technologies | |
JP4451629B2 (ja) | 半導体集積回路のレイアウト装置および方法ならびこれらを使用して製造された半導体装置 | |
Karna et al. | Impact on the Performance of North Bridge I/O Peripheral Component Interconnect Express Block in Physical Design Flow Considering Two Different Synthesis Corners at below 10nm Technology Node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20091110 |