【解決手段】 本発明は、半導体装置の動作のシミュレーションに基づき該半導体装置におけるマクロセル部の消費電流を計算することと、該マクロセル部の消費電流と、該半導体装置の電源層と該マクロセル部とを接続するビアの一つ当たりの許容電流とに基づき、該マクロセル部の一側端部の少なくとも一方端部の上面に第1の形状及び大きさからなる第1の領域を定義することと、該第1の領域に基づき該マクロセル部の上面に第2の形状及び大きさからなる第2の領域を定義することと、該第2の領域に基づき該半導体装置における該マクロセル部及び該電源層の配置を決定することと、該マクロセル部及び該電源層の該配置に基づき該第2の領域における該ビアの配置を決定することと、を含む、設計方法である。
前記配線層の配置を決定することは、前記配線層を前記ロジック部と前記電源層との間、及び前記第1の領域と前記電源層との間の少なくともいずれかに設けることを含む、請求項6記載の設計方法。
少なくとも一つのセル回路により構成されるマクロセル部と、ビアを介して前記マクロセル部に電力を供給するための電源層と、信号をやり取りするための配線層とを備える半導体装置であって、
前記マクロセル部は、一側端部から他側端部に向かう方向に延伸する複数の電源ストラップを含み、
前記複数の電源ストラップのうちの少なくともいくつかは、各先端部が前記マクロセル部の前記一側端部の少なくとも一方端部の上面において梯陣配列をなすことによって前記配線層のための所定の領域を形成するように、配置される、
半導体装置。
前記梯陣配列をなす前記複数の電源ストラップのうちの少なくともいくつかは、各先端部が前記マクロセル部の前記一側端部の中央部から前記少なくとも一方端部に向かって漸次に後退するように、配置される、請求項11記載の半導体装置。
【背景技術】
【0002】
従来より、一つの基板上に、CPUやメモリセル部等の大規模なマクロセル部を核として、その周辺に目的とするシステムの仕様に応じた論理回路が形成された半導体装置が知られている。このような半導体装置において、一般的に、半導体装置全体の電源配線は、上位層の金属配線層がメッシュ状に配線されることで形成される。また、マクロセル部の電源配線層は、マクロセル部の上部に電源ストラップとして設けられる。マクロセル部の電源配線層は、半導体装置全体の電源配線とビアとを介して接続されることにより、マクロセル部に電源が供給される。
【0003】
斯かるビアは、一般的には、マクロセル部の電源配線層全体を埋め尽くすように配置される。従って、半導体装置における他の信号配線は、マクロセル部が配置されている領域を通ることができない。例えば、信号配線によって接続されるべきノード間にマクロセル部が設けられている場合、該信号配線は、一方のノードからマクロセル部を迂回する経路で他方のノードへ向かうように配されなければならない。これにより、半導体装置におけるマクロセル部の周辺部には、迂回を必要とする信号配線の輻輳が発生する。このようなマクロセル部周辺の信号配線の輻輳は、半導体装置に対して、面積の削減や配線層数の削減を妨げるといった悪影響を及ぼし、結果として、半導体装置の小面積化及び低層化を阻んでいる。
【0004】
例えば、マクロセル部がメモリセル部である場合、マクロセル部周辺部における信号配線の輻輳の度合いはより大きくなる。即ち、メモリセル部は、典型的には、メモリセルアレイ部とコントロール部とを含んで構成されるが、コントロール部は、メモリセル部における外部との入出力の制御を行うため、一般的にメモリセル部内における外部と隣接する位置に配置されていた。また、メモリセル部における電力消費は、コントロール部による消費が最も多くを占めることから、メモリセル部の電源配線層は、効率が最も良くなるように、コントロール部の上層に配置されていた。従って、メモリセル部の電源配線層は、一般的にメモリセル部における外部と隣接する位置に配置されることになり、メモリセル部近傍の信号配線と物理的に干渉しやすくなるという問題があった。これにより、メモリセル部周辺部における信号配線の輻輳の度合いは、より大きくなる。
【0005】
下記特許文献1は、マクロセル部と、マクロセル部の周辺に形成されたロジック部とを備え、該マクロセル部は該ロジック部内の配線を設けるためのロジック配線領域を有する半導体装置を開示する。より具体的には、特許文献1に開示される半導体装置は、マクロセル部がロジック部内の配線領域を含むように構成されることで、ロジック部内の配線をマクロセル部内に設けることができ、それによって、該半導体装置はロジック部の配線がマクロセル部を迂回しなければならない確率を低下させることができる。これにより、特許文献1に開示される半導体装置は、ロジック部の配線容量の低減及びマクロセル部周辺での配線の混雑の防止を実現し、それに伴って、該半導体装置は回路動作の高速化及び回路の高集積化を実現している。
【0006】
また、下記特許文献2は、電源配線の近傍にビアが配置されたセルの使用が可能な半導体装置及び設計手法を開示する。より具体的には、特許文献2に開示される半導体装置及び設計手法は、チップ面内に一定間隔で上位金属配線層の電源ストラップが配線され、該電源ストラップに直交する方向に配線される低位配線層のセルの電源配線と、該電源ストラップに接続され該セルの電源配線と平行に配線される中間金属配線層と、を備え、該中間金属配線層と該セルの電源配線とを接続する複数の電源ビアが、高密度領域、低密度領域及び無配置領域に分けて配置され、該無配置領域に、電源配線付近にセル内ビアが配置されてセル面積が削減された省面積セルが配置されることを特徴とする。これにより、特許文献2に開示される半導体装置及びレイアウト方法は、電源配線の近傍においてもビアが配置されたセルを使用することができ、それに伴って、該セルの省面積化を実現している。
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記特許文献1が開示する半導体装置は、マクロセル部がロジック部の信号配線を設けるためのロジック配線領域を有することで、マクロセル部周辺の信号配線の混雑を緩和するものであった。しかしながら、特許文献1においては、マクロセル部内におけるロジック配線領域をどのように設けるかは開示されていなかった。従って、特許文献1に開示される半導体装置は、マクロセル部におけるロジック配線領域を広く設けることによって、マクロセル部に供給される電流や電源電圧の降下を招く可能性や、或いは該領域を狭く設けることによって、マクロセル部における未使用領域を十分に活用することができないといった問題があった。また、特許文献1は、マクロセル部自体の修正を必要とするため、マクロセル部の修正に伴う設計工数の増大という別の問題も有していた。
【0009】
また、上記特許文献2が開示する半導体装置の設計手法では、電源配線上のビアの配置密度を調整し、該電源配線上にビアを配置しない領域を設けることで、該電源配線の近傍にビアが配置されたセルの使用を可能とする領域を作り出し、セルの省面積化を実現するものであるものの、マクロセル部の周辺の信号配線の混雑を緩和するものではなかった。また、特許文献2は、セルの修正を必要とするため、特許文献1と同様に、セルの修正に伴う設計工数の増大という問題も有していた。
【0010】
そこで、本発明は、信号配線の輻輳を効率的に解消することによって、半導体装置のチップ面積の縮小及び配線層数の削減ができる半導体装置の設計手法を提供することを目的とする。
【0011】
より具体的には、本発明は、マクロセル部周辺において発生する信号配線の輻輳をマクロセル部におけるビアの生成を効率的に行うことによって解消し、半導体装置のチップ面積の縮小及び配線層数の削減ができる半導体装置の設計手法を提供することを目的とする。
【課題を解決するための手段】
【0012】
即ち、ある観点に従う本発明は、半導体装置の設計方法であって、仮想モデルを用いた前記半導体装置の動作のシミュレーションに基づいて、前記半導体装置におけるマクロセル部の消費電流を計算することと、前記マクロセル部の消費電流と、前記半導体装置の電源層と前記マクロセル部とを接続するビアの一つ当たりの許容電流とに基づいて、前記マクロセル部の一側端部の少なくとも一方端部の上面に、第1の形状及び大きさからなる第1の領域を定義することと、前記第1の領域に基づいて、前記マクロセル部の上面に第2の形状及び大きさからなる第2の領域を定義することと、前記第2の領域に基づいて、前記半導体装置における前記マクロセル部及び前記電源層の配置を決定することと、前記マクロセル部及び前記電源層の前記配置に基づいて、前記第2の領域における前記ビアの配置を決定することと、を含む、設計方法である。
【0013】
ここで、前記第1の領域を定義することは、前記一側端部の両方端部のそれぞれの上面に前記第1の領域を定義することを含んでも良い。
【0014】
さらに、前記設計方法は、前記電源層において発生する所定の電気的影響の評価を行うことと、前記評価に基づいて、前記所定の電気的影響が第1の許容範囲内にあるか否かを判断することと、をさらに含み、前記所定の電気的影響が前記第1の許容範囲内にないと判断する場合、前記第1の領域を新たに決定し前記マクロセル部及び前記電源層の配置を決定しても良い。
【0015】
さらに、また、前記所定の電気的影響の評価を行うことは、前記電源層において発生する電圧降下の度合いの評価を行うこと、を含んでも良い。
【0016】
また、前記所定の電気的影響の評価を行うことは、前記半導体装置において発生するエレクトロマイグレーション効果の度合いの評価を行うこと、を含んでも良い。
【0017】
さらに、前記設計方法は、前記マクロセル部及び前記電源層の配置に基づいて、ロジック部及び配線層の配置を決定することをさらに含んでも良い。
【0018】
さらに、また、前記配線層の配置を決定することは、前記配線層を前記ロジック部と前記電源層との間、及び前記第1の領域と前記電源層との間の少なくともいずれかに設けることを含んでも良い。
【0019】
さらに、前記設計方法は、前記配線層の配置に基づいて、前記配線層の混雑度の計算を行うことと、前記混雑度が第2の許容範囲内にあるか否かを判断することと、をさらに含み、前記混雑度が前記第2の許容範囲内にないと判断する場合、前記第1の領域を新たに決定し、前記配線層の配置を決定しても良い。
【0020】
さらに、また、前記混雑度の計算を行うことは、前記第1の領域の上方の領域と前記マクロセル部の一側端部の少なくとも一方端部の周囲部分の上方の領域とを含む第3の領域を定義することと、前記第3の領域において、前記第3の領域に対する前記配線層が配置されている領域の割合を計算することと、を含んでも良い。
【0021】
さらに、別の観点に従う本発明は、半導体装置の設計を行う半導体設計装置であって、仮想モデルを用いた半導体装置の動作のシミュレーションに基づいて、前記半導体装置におけるマクロセル部の消費電流を計算する手段と、前記マクロセル部の消費電流と、前記半導体装置の電源層と前記マクロセル部とを接続するビアの一つ当たりの許容電流とに基づいて、前記マクロセル部の一側端部の少なくとも一方端部の上面に、第1の形状及び大きさからなる第1の領域を定義する手段と、前記第1の領域に基づいて、前記マクロセル部の上面に第2の形状及び大きさからなる第2の領域を定義する手段と、前記第2の領域に基づいて、前記半導体装置における前記マクロセル部及び前記電源層の配置を決定する手段と、前記マクロセル部及び前記電源層の前記配置に基づいて、前記第2の領域における前記ビアの配置を決定する手段と、を備える、半導体設計装置である。
【0022】
さらに、別の観点に従う本発明は、少なくとも一つのセル回路により構成されるマクロセル部と、ビアを介して前記マクロセル部に電力を供給するための電源層と、信号をやり取りするための配線層とを備える半導体装置であって、前記マクロセル部は、一側端部から他側端部に向かう方向に延伸する複数の電源ストラップを含み、前記複数の電源ストラップのうちの少なくともいくつかは、各先端部が前記マクロセル部の前記一側端部の少なくとも一方端部の上面において梯陣配列をなすことによって前記配線層のための所定の領域を形成するように配置される、半導体装置である。
【0023】
ここで、前記梯陣配列をなす前記複数の電源ストラップのうちの少なくともいくつかは、各先端部が前記マクロセル部の前記一側端部の中央部から前記少なくとも一方端部に向かって漸次に後退するように、配置されても良い。
【0024】
また、前記半導体装置は、前記マクロセル部の周囲に配置されるロジック部をさらに備え、前記配線層は、前記ロジック部と前記電源層との間、及び前記所定の領域と前記電源層との間の少なくともいずれかに設けられても良い。
【0025】
なお、本開示において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段による機能が1つの物理的手段により実現されても良い。
【発明の効果】
【0026】
本発明によれば、半導体装置は、信号配線の輻輳を効率的に解消することによって、半導体装置のチップ面積の縮小及び配線層数の削減ができるようになる。
【0027】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【発明を実施するための形態】
【0029】
次に、本発明の実施形態について、図面を参照しつつ説明する。
【0030】
図1及び
図2は、本発明の一実施形態に係る半導体設計方法により得られる半導体装置の概略構成の一例を示す図である。具体的には、
図1は、該半導体装置1の特定部分の平面模式図を示す。また、
図2は、
図1に示す半導体装置1のII−II断面模式図である。
図1及び
図2に示すように、半導体装置1は、例えば、マクロセル部10と、ロジック部20と、ビア30及び40と、電源層50と、配線層60及び70とを含んで構成される。特定部分は、本例では、半導体装置1におけるマクロセル部10の一側端部乃至は一側辺部とその周辺とを含む部分である。以下では、マクロセル部10の該一側端部からこれに対向する他側端部に向かう方向を第1の方向と定義し、該第1の方向に対して平面内で直交する方向を第2の方向と定義する。半導体装置1のこのようなレイアウトは、後述する半導体設計方法によって最適化され、決定される。
【0031】
マクロセル部10は、複数のセル回路が組み合わされて構成されたセルであり、例えば、メモリセル(RAM、ROM)やCPUである。マクロセル部10は、
図2に示されるように、例えば、半導体装置1の最下層に設けられる。マクロセル部10は、電源ストラップ11上に形成されたビア30を介して上部層の電源層50に接続される。これにより、マクロセル部10は、電源層50からビア30を介して、自身の動作に必要な電流を得るようになっている。
【0032】
マクロセル部10の一側端部の両方端部上面の領域は、後述するように、領域α0及びα1と定義される。領域α0及びα1の上方には、所定の設計手法に従って、ビア40並びに配線層60及び70が配置される(
図2参照)。本例では、領域α0及びα1は、平面視、略三角形の形状を有する。領域α0及びα1の形状及び面積は、マクロセル部10に接続されるビア30の個数によって決定されるが、その詳細に関しては後述する。なお、同図において、マクロセル部10の一側端部の両端部上面には、領域α0及びα1の2つの領域が設けられるが、これに限られるものではなく、領域α0又はα1のいずれか一方のみが設けられていても良い。また、同図において、領域α0及びα1の面積及び形状は、略等しいように示されているが、これに限られるものではなく、領域α0及びα1の面積及び形状は異なっていても良い。
【0033】
また、本開示では、マクロセル部10の上面のうち、領域α0及びα1が存在しない領域には、領域βが設けられる。領域βには、例えば、第1の方向に延伸する複数の電源ストラップ11が形成される。具体的には、複数の電源ストラップ11のいくつかは、領域βにおいて、その各先端部がマクロセル部10の一側端部の少なくとも一方端部の上面において梯陣配列をなすように、配置される。例えば、マクロセル部10の外周に近い電源ストラップ11ほど、その先端部が領域α0及びα1との境界に沿って漸次に後退するように配置される。言い換えれば、マクロセル部10上の複数の電源ストラップ11は、配線層60及び70を配置すべき領域(領域α0及びα1に相当する。)が確保されるように配置される。
【0034】
ロジック部20は、例えば、PLL回路や、ADコンバータ、オペアンプ、スタンダードセルなどの論理回路である。ロジック部20は、例えば、半導体装置1の最下層において、マクロセル部10の周囲に設けられる。ロジック部20は、ビア40を介してその上方に存在する電源層50と、配線層60及び70とに接続される。
【0035】
ビア30及び40は、半導体装置1における各層の構成要素間を電気的に接続する層間接続領域であり、本実施形態では、ビア30は、マクロセル部10と電源層50とを電気的に接続し、ビア40は、マクロセル部10以外の各構成要素同士を電気的に接続する。ビア40は、例えば、ロジック部20と電源層50との間に設けられる。また、他の例としては、ビア40は、ロジック部20と、配線層60及び70のうち少なくともいずれか一方との間に設けられる。さらに、他の例としては、ビア40は、例えば配線層60及び70の少なくともいずれか一方と、電源層50との間に設けられる。さらにまた、他の例としては、ビア40は、配線層60及び70の間に設けられる。一つのビア30が供給することができる電流(即ち、許容電流)Icには限界があるため、マクロセル部10には、マクロセル部10が必要とする電流(即ち、消費電流Im)を供給するのに必要な数のビア30が接続される。なお、ビア30及び40は、多層間にまたがる構成要素同士を接続する場合は、層間接続領域として配線層60及び70を含み得る。
【0036】
電源層50は、典型的には、第2の方向に延伸する複数の電源配線から構成され、半導体装置1の例えば最上層に設けられる。つまり、本例では、電源層50は、電源ストラップ11と直交するように設けられる。電源層50は、半導体装置1における各構成要素に電流を供給する層である。なお、電源層50の接続関係は、
図1及び
図2において模擬的に示されるが、電源層50及び電源ストラップ11の接続は、典型的には、電源の種類を違わずに行われる。
【0037】
配線層60及び70は、半導体装置1において所定の信号をやり取りするために、各層内の構成要素同士を電気的に接続する層である。配線層60は、例えば、ロジック部20及び配線層70のうちいずれか少なくとも一方と、電源層50との間に設けられる。また、配線層70は、電源層50及び配線層60のうちいずれか少なくとも一方と、ロジック部20との間に設けられる。さらに、配線層60及び70は、領域α0及びα1のうち少なくともいずれか一方と、電源層50との間に設けられる。配線層60及び70は、上述したように、例えば、ビア40を介して相互に接続され、また、ビア40を介してロジック部20及び電源層50に接続される。
【0038】
なお、本実施形態に係る半導体装置1においては、配線層60及び70の二層の配線層が設けられているが、これに限られるものではなく、必要な数の配線層が設けられて良い。
【0039】
以上のような半導体装置1のレイアウトは、半導体設計装置2によって設計される。半導体設計装置2は、例えば汎用のコンピュータや制御装置、シミュレーターである。半導体設計装置2は、例えば、所定の設計プログラムを実行することにより、半導体装置1におけるマクロセル部10やロジック部20、電源ストラップ11、ビア30及び40、電源層50、配線層60及び70の配置を決定する。また、半導体設計装置2は、半導体装置1の設計において、配置モデルとよばれる各構成要素の配置及び電気特性等を疑似的に示す仮想模型を用いることによって、各構成要素の配置及び種々の電気的特性の評価を行う。なお、半導体設計装置2の概略構成の一例は、
図7を用いて参照される。
【0040】
本実施形態に係る半導体装置1の設計方法においては、半導体設計装置2は、マクロセル部10の消費電流Imに基づいて、マクロセル部10に接続されるビア30の個数を決定する。次に、半導体設計装置2は、決定されたビア30の個数に基づいて、マクロセル部10における領域α0及びα1の面積及び形状を決定し、領域α0及びα1の面積及び形状に基づいて、マクロセル部10において電源ストラップ11が配置される領域βの面積、形状及び配置を決定する。そして、半導体設計装置2は、領域βの面積、形状及び配置に基づいて、半導体装置1における各構成要素の配置を行う。さらに半導体設計装置2は、配線層60及び70の混雑度を計算し、該混雑度が一定の基準を満たしているか否かを判断する。半導体設計装置2は、該混雑度が一定の基準を満たしていないと判断する場合、該混雑度に基づいて再び領域α0及びα1を決定する。一方、半導体設計装置2は該混雑度が一定の基準を満たしていると判断する場合、設計を終了する。上述したように、領域α0及びα1の上方には、ビア40と、配線層60及び70とが配置され得るため、本実施形態に係る半導体装置1は、マクロセル部10の近傍において発生する配線層60及び70の輻輳を解消し、面積の縮小及び配線層数の削減を実現する。
【0041】
本実施形態に係る半導体装置1の設計方法の一例を
図3A乃至
図6を参照しつつ説明する。
図3Aは、本実施形態に係る半導体設計装置が用いるマクロセル部配置モデルを示す図である。同図に示すように、マクロセル部配置モデル10aは、電源ストラップ配置モデル11aと、領域βと、領域α0及びα1とを含んで構成される。マクロセル部配置モデル10aは、マクロセル部10における各構成要素の配置及び電気特性等を疑似的に示す仮想模型である。
【0042】
電源ストラップ配置モデル11aは、マクロセル部10における電源ストラップ11の配置及び電気特性等を疑似的に示す仮想模型である。電源ストラップ配置モデル11aは、マクロセル部配置モデル10aにおける領域βに設けられる。
【0043】
領域βは、マクロセル部10において電源ストラップ11を配置することができる領域である。領域βの面積、形状及び配置は、半導体装置1の設計の過程において変動し得る。領域β(0)は、半導体装置1の設計の過程における最初の領域βであり、また、領域α0及びα1の面積が0である場合の領域βである。領域β(n)は、半導体装置1の設計の過程における最終的な領域βである。
【0044】
なお、本実施形態における半導体装置1の設計方法においては、領域α0及びα1の斜辺以外の辺の長さはx0及びx1とそれぞれ定義する。なお、同図においては、領域α0及びα1の面積及び形状は略等しいように示されているが、これに限られるものではなく、領域α0及びα1の面積及び形状は異なっていても良い。また、本実施形態における半導体装置1の設計方法においては、領域α0の斜辺以外の辺の長さは、等しいものと仮定しているが、これに限られるものではない。領域α0の斜辺以外の辺の長さは、領域α0の面積が保たれる範囲で異なっていても構わない。また、領域α1についても領域α0と同様であり、領域α1の斜辺以外の辺の長さは、領域α1の面積が保たれる範囲で異なっていても構わない。
【0045】
図3Bは、本実施形態に係る半導体設計装置が用いる配線層配置モデルを示す図である。具体的には、
図3Bは、後述する
図3Cにおける領域δに対応する配線層60及び70の状態を模式的に示すための配線層配置モデル60aを示す図である。配線層配置モデル60aは、後述する配線の混雑度の計算において参照されうる。同図に示すように、配線層配置モデル60aは、配線層60及び70における配線の配置及び電気特性等を疑似的に示す仮想模型であり、配線層の層数に応じて半導体設計装置2によって定義される。配線層配置モデル60aは、例えば、配線トラック61aを含んで構成される。また、同図において、配線層配置モデル60aを所定の形状及び面積によって網羅するように配線層配置モデル60aに設けられる領域を単位領域γと定義する。
【0046】
配線トラック61aは、配線層配置モデル60aにおいて配線を配置することができる帯状の領域である。配線トラック61aは、典型的には、配線層配置モデル60aにおいて、第1の方向或いは第2の方向に並列に複数設けられる。同図においては、配線トラック61aは第2の方向に設けられているが、これに限られるものではない。
【0047】
単位領域γは、配線層60及び70の混雑度の計算において、混雑度を計算する基本単位となる領域であり、上述したように、所定の形状及び面積を有し配線層配置モデル60aを網羅するように配線層配置モデル60aに設けられる。なお、配線層60及び70の混雑度の計算の詳細については後述する。
【0048】
図3Cは、本実施形態に係る半導体設計装置が用いるマクロセル部配置モデルを示す図である。具体的には、
図3Cは、後述する
図4及び
図5Bにおいて、配線層60及び70の混雑度に基づいて領域α0及びα1における斜辺でない辺の長さx0及びx1の計算を説明することによって、領域α0及びα1を変更する様子を説明するための半導体設計装置2が用いるマクロセル部配置モデル10aを示す図である。なお、本例においては、領域α1が存在する一方端部について述べるが、領域α0が存在する一方端部についても同様である。
【0049】
同図において、マクロセル部配置モデル10aの一側端部の両方端部の一方の領域の各辺をマクロセル部配置モデル10aの外側に長さa1だけ延長した領域を領域δ1と定義する。領域δ1は、マクロセル部10近傍の配線層60及び70の混雑度を計算するための領域である。また、同図において、領域α1(0)及び長さx1(0)は、配線層60及び70の混雑度を計算する前の領域α1及び該領域の斜辺でない長さx1である。
【0050】
半導体設計装置2は、領域δ1に対応する配線層60及び70の混雑度を計算する。半導体設計装置2は、該混雑度が一定の基準を満たすか否かを判断し、該判断結果に基づいて領域α1(1)の斜辺でない長さx1を決定するが、その詳細については後述する。
【0051】
図4は、本発明の一実施形態に係る半導体装置の設計方法を概略的に説明するためのフローチャートである。斯かる設計方法は、例えば、半導体設計装置2が所定の設計プログラムを実行することにより実現される。
【0052】
半導体設計装置2は、マクロセル部10の消費電流Imをシミュレーションにより計算する(S401)。該シミュレーションは、例えば、半導体設計装置2が電気特性を示すマクロセル部10の仮想モデル(例えば、マクロセル部配置モデル10a)に対して実際の動作と同じ制御を行い、該仮想モデルにおける仮想信号線や仮想電源線の状態を参照することによって、マクロセル部10の実際の動作の予測を行うものである。続いて、半導体設計装置2は、計算されたマクロセル部10の消費電流Imと、ビア30一つあたりの許容電流Icとに基づいて、マクロセル部10において電源ストラップ11が配置される領域βの面積、形状及び配置を決定する(S402)。該処理の詳細に関しては
図5Aを参照して説明される。
【0053】
半導体設計装置2は、次に、半導体装置1における配線層60及び70とビア30及び40とを除いた各構成要素(例えば、マクロセル部10、ロジック部20及び電源層50)の配置を決定する(S403)。該処理の詳細に関しては、
図6を参照して説明される。
【0054】
半導体設計装置2は、ステップS403の処理において決定された半導体装置1における配線層60及び70と、ビア30及び40とを除いた各構成要素の配置に基づいて、半導体装置1における配線層60及び70と、ビア30及び40との配置を決定する(S404)。
【0055】
半導体設計装置2は、半導体装置1が所定の設計規則を満たすか否かを判断する。所定の設計規則は、例えば、半導体装置1における電源線の各ノードにおける電圧降下(IRDrop)の度合いが半導体設計装置2によって定められる許容範囲内にあることや、半導体装置1におけるエレクトロマイグレーション効果(ElectroMigration Effect:EM効果)の度合いが同様に半導体設計装置2によって定められる許容範囲内にあることである。即ち、半導体設計装置2は、半導体装置1における電源線の各ノードにおける電圧降下及びエレクトロマイグレーション効果の度合いの確認を行い、その度合いが設計ルール上許容できる程度であるか否かを評価する(S405)。半導体設計装置2は、該評価に基づき、IRDrop及びEM効果の度合いが許容できるか否かを判断し(S406)、IRDrop及びEM効果の度合いが許容できないと判断する場合(S406のFAIL)、ステップS402の処理に進む。一方、半導体設計装置2は該評価に基づき、IRDrop及びEM効果の度合いが許容できると判断する場合(S406のPASS)、半導体設計装置2は、決定された配線層60及び70と、ビア30及び40との配置に基づいて、配線層60及び70の混雑度の計算を行う(S407)。該処理の詳細に関しては、
図5Bを参照して説明される。
【0056】
そして、半導体設計装置2は、計算された配線層60及び70の混雑度が設計ルール上許容できる許容混雑度以下であるか否かを判断する(S408)。半導体設計装置2は、該混雑度が許容混雑度以下でないと判断する場合(S408のFAIL)、ステップS402の処理に進む。一方、半導体設計装置2は該混雑度が許容混雑度以下であると判断する場合(S408のPASS)、半導体装置1の設計が正常に行われたと判断して、その設計を終了する。
【0057】
図5Aは、本発明の一実施形態に係る半導体装置の設計方法を概略的に説明するためのフローチャートであり、
図4におけるステップS402の処理の詳細を示している。
【0058】
半導体設計装置2は、ステップS401の処理において計算されたマクロセル部10の消費電流Imと、ビア30の許容電流Icとに基づいて、マクロセル部10に必要なビア30の個数Nmを計算する(S501)。マクロセル部10に必要なビア30の個数Nmは、例えば、以下の式に示す関係を有する。
Nm=Im/Ic …<式1>
【0059】
半導体設計装置2は、次に、Nm個のビア30をマクロセル部10に配置するにあたって必要な面積Svを計算する(S502)。該面積Svは、半導体装置1に配置可能なビア30の密度(即ち、単位面積あたりに配置可能な数)の最大値をDvと仮定すると、例えば、以下の式に示す関係を有する。
Sv=Nm/Dv …<式2>
【0060】
さらに、半導体設計装置2は、削減可能な電源ストラップ11が配置される領域βの面積Sdを計算する(ステップS503)。該面積Sdは最初の領域β(0)の面積をSpと仮定すると、例えば、以下の式に示す関係を有する。
Sd=Sp−Sv …<式3>
【0061】
続いて、半導体設計装置2は、計算された削減可能な領域βの面積Sdが許容される値(例えば正の値)か否かを判断する(S504)。半導体設計装置2は、該面積が許容できる面積でないと判断する場合(S504のFAIL)、半導体装置1の設計が正常に行われなかったと判断し、元のフローに戻り、その設計を終了する。一方、半導体設計装置2は該面積が許容できる面積であると判断する場合(S504のPASS)、ステップS505の処理に進む。
【0062】
半導体設計装置2は、電源線の各ノードにおける電圧降下及び半導体装置1のエレクトロマイグレーション効果の評価(即ち、
図4におけるステップS405の処理)が実施済であるか否かを判断する(S505)。半導体設計装置2は、電源線の各ノードにおける電圧降下及び半導体装置1のエレクトロマイグレーション効果の評価を実施済でないと判断する場合(S505のFAIL)、係数k0乃至k2の値を初期化し(S506)、ステップS508の処理に進む。ここで、係数k0乃至k2は、領域α0及びα1の斜辺でない辺の長さx0及びx1の決定に用いられる値であり、その値は、電源線の各ノードの電圧降下及び半導体装置1のエレクトロマイグレーション効果の評価に応じて変動する。係数k0は、0以上かつ1以下の値であり、係数k1及びk2は、0以上の値である。
【0063】
一方、半導体設計装置2は、電源線の各ノードにおける電圧降下及び半導体装置1のエレクトロマイグレーション効果の評価を実施済であると判断する場合(S505のPASS)、係数k0乃至k2の値を更新する(S507)。具体的には、半導体設計装置2は、ステップS507の処理において、係数k0乃至k2の値を減少させる。半導体設計装置2は、係数k0乃至k2の値が許容される値(例えば正の値)であるか否かを判断する(S508)。半導体設計装置2は、係数k0乃至k2の値が許容される値でないと判断する場合(S508のFAIL)、半導体装置1の設計が正常に行われなかったと判断し、元のフローに戻り、その設計を終了する。一方、半導体設計装置2は、係数k0乃至k2の値が許容される値であると判断する場合(S508のPASS)、ステップS509の処理に進む。
【0064】
次に、半導体設計装置2は、配線層60及び70の混雑度の評価(即ち、
図4におけるステップS407の処理)が実施済であるか否かを判断する(S509)。半導体設計装置2は配線層60及び70の混雑度の評価が実施済でないと判断する場合(S509のFAIL)、半導体設計装置2は、ステップS503の処理において計算された削減可能な領域βの面積Sdに基づいて、領域α0及びα1の斜辺でない辺の長さx0及びx1を決定し、ステップS508の処理に進む(S510)。なお、ステップS506の処理において、該長さx0及びx1は、例えば、以下の式に示す関係を有する。
x0=x1=(Sd×k0)^(1/2) …<式4>
【0065】
一方、半導体設計装置2は配線層60及び70の混雑度の評価が実施済であると判断する場合(S509のPASS)、半導体設計装置2は、ステップS407の処理において計算された配線層60及び70の混雑度と、許容混雑度と、領域δ0及びδ1の面積Sa0及びSa1と、配線層の数N(本例においては、配線層60及び70より2である)と、前回計算された該長さx0(0)及びx1(0)とに基づいて、領域α0及びα1の斜辺以外の辺の長さx0及びx1を決定し、ステップS508の処理に進む(S511)。
【0066】
具体的には、半導体設計装置2は、ステップS511の処理において、まず配線層60及び70の混雑度及び許容混雑度に基づいて、超過混雑率を計算する。ここで、超過混雑率は、許容混雑度に対して混雑度がどの程度超過しているかを示す割合である。超過混雑率は、例えば、以下の式に示す関係を有する。
(超過混雑率)=(混雑度−許容混雑度) …<式5>
半導体設計装置2は、ステップS507の処理において、式5で計算した超過混雑率に基づいて、該長さx0及びx1を計算する。該長さx0及びx1は、例えば、以下の式に示す関係を有する。
x0=√((2×Sa0×(超過混雑率)×k1/N+x0(0)^2) …<式6>
x1=√((2×Sa1×(超過混雑率)×k2/N+x1(0)^2) …<式7>
【0067】
半導体設計装置2は、決定した長さx0及びx1に基づいて、マクロセル部10における領域α0及びα1の面積及び形状を決定する(S512)。続いて、半導体設計装置2は、マクロセル部10における領域α0及びα1の面積及び形状に基づいて、マクロセル部10において電源ストラップ11が配置される領域βの形状、面積及び配置を決定し(S513)、元のフローに戻る。
【0068】
図5Bは、本発明の一実施形態に係る半導体装置の設計方法を概略的に説明するためのフローチャートであり、
図4におけるステップS407の処理の詳細を示している。
【0069】
半導体設計装置2は、領域δ1及びδ1に対応する配線層60及び70の領域について、それぞれ混雑度を計算する。具体的には、半導体設計装置2は、配線層60及び70の混雑度の計算に使用する各種値(例えば、使用率や混雑度など)を初期化する(S521)。次に、半導体設計装置2は、とある配線層について、該配線層60及び70の領域における計算対象となる単位領域γに対して、配線トラック61aの使用率を計算する(S522)。使用率は、単位領域γに存在する配線トラック61aの数に対する単位領域γにおいて配線が設けられる配線トラック61aの数の割合である。
【0070】
次に、半導体設計装置2は、該計算した単位領域γの使用率が許容使用率を上回っているか否かを判断する(S523)。半導体設計装置2は、該計算した単位領域γの配線トラック61aの使用率が許容使用率を上回っていると判断する場合(S523のPASS)、混雑値に1を加算し(S524)、計算対象となる単位領域γを更新する(S525)。一方、半導体設計装置2は、該計算した単位領域γの配線トラック61aの使用率が許容使用率を上回っていないと判断する場合(S523のFAIL)、計算対象となる単位領域γを更新する(S525)。なお、許容使用率は、製造プロセスや設計ルール、半導体装置1の構造に基づいて、任意に決定される。
【0071】
半導体設計装置2は、計算対象となる全ての単位領域γについて使用率を計算したか否かを判断する(S526)。半導体設計装置2は、計算対象となる全ての単位領域γについて使用率を計算していないと判断する場合(S526のFAIL)、ステップS522の処理に進む。一方、半導体設計装置2は、計算対象となる全ての単位領域γについて使用率を計算したと判断する場合(S526のPASS)、ステップS524の処理において計算した混雑値と、領域δ0及びδ1に存在する単位領域γの数とに基づいて、計算対象である配線層の混雑度を計算する(S527)。計算対象である配線層の混雑度は、混雑値を領域δに存在する単位領域γの数で除することよって算出される。
【0072】
半導体設計装置2は、計算対象である全ての配線層について混雑度を計算したか否かを判断する(S528)。半導体設計装置2は、計算対象である全ての配線層について混雑度を計算していないと判断する場合(S528のFAIL)、混雑度を計算する配線層を更新し、ステップS522の処理に進む。一方、半導体設計装置2は、計算対象である全ての配線層について混雑度を計算したと判断する場合(S528のPASS)、計算対象である全ての配線層の混雑度を合計し、混雑度を該合計結果に更新して(S529)、配線層の混雑度の計算を終了し、元のフローに戻る。
【0073】
図6は、本発明の一実施形態に係る半導体装置の設計方法を概略的に説明するためのフローチャートであり、
図4におけるステップS403の処理の詳細を示している。
【0074】
半導体設計装置2は、マクロセル部10における電源ストラップ11が配置される領域βに基づいて、マクロセル部配置モデル10aを更新する。即ち、半導体設計装置2は、決定した領域βに基づいて、マクロセル部配置モデル10aに電源ストラップ11aを配置し、さらに、半導体設計装置2は、マクロセル部配置モデル10aを該決定した内容に変更する(S601)。次に、半導体設計装置2は、更新されたマクロセル部配置モデル10aに基づいて、半導体装置1におけるマクロセル部10の配置を決定する(S602)。
【0075】
半導体設計装置2は、決定された半導体装置1におけるマクロセル部10の配置に基づいて、半導体装置1におけるロジック部20の配置を決定する(S603)。続いて、半導体設計装置2は、決定された半導体装置1におけるマクロセル部10及びロジック部20の配置に基づいて、半導体装置1における電源層50の配置を決定する(S604)。
【0076】
図7は、本発明の一実施形態に係る半導体設計装置の概略的なハードウェア構成の一例を示すブロックダイアグラムである。同図に示すように、上述した半導体設計装置2を構成するコンピューティングデバイスは、典型的には、1又は2以上のプロセッサモジュール701、チップセット702、メモリモジュール703、ストレージデバイス704、I/Oコントローラ705及び各種のペリフェラルインターフェース706を含むが、これらに限られるものではない。
【0077】
プロセッサモジュール701は、例えば、プロセッサコア、マイクロコントローラ、デジタル信号プロセッサ及び/又はこれらの組み合わせを含むが、これらに限られるものではない。ここでは、「プロセッサコア」という用語は、メインプロセッサを意味するプロセッサやCPU、MPU等と同義のものとして扱われる。プロセッサモジュール701は、1次又はそれ以上のレベルのキャッシュ機構を含んでも良い。
【0078】
チップセット702は、プロセッサモジュール701、メモリモジュール703、ストレージデバイス704及びI/Oコントローラ705等を接続するバスとのブリッジや、コンピューティングデバイスを構成するために必要な他のコンポーネントを集積した回路からなる。チップセット702は、例えば、プロセッサモジュール701によって制御される。
【0079】
メモリモジュール703は、典型的には、揮発性メモリ(例えばRAM)、不揮発性メモリ(例えばROMやフラッシュメモリ等)及び/又はこれらの組み合わせからなる1次記憶装置である。メモリモジュール703は、典型的には、デバイスドライバ、オペレーティングシステム(OS)プログラム、1又は2以上のアプリケーションプログラム及びプログラムデータ等の全部又は一部を保持し、プロセッサモジュール701の利用に供される。本実施形態では、上述した設計方法を実現するための設計プログラムが、アプリケーションプログラムの一つとして、メモリモジュール703に保持される。
【0080】
ストレージデバイス704は、典型的には、ハードディスクドライブ(HDD)や光学式ディスクドライブ、ソリッドステートデバイス(SSD)等からなる。ストレージデバイス704は、プロセッサモジュール701の2次記憶装置として機能し、OS、アプリケーションプログラム、プログラムデータ及び各種のデータベースを記憶する。
【0081】
I/Oコントローラ705は、各種のペリフェラルインターフェース706(例えば、出力インターフェース706a、I/Oインターフェース706b及び通信インターフェース706c等)との間の通信を効率的に制御する回路である。出力インターフェース706aは、例えば、グラフィックボード及びサウンドボード等を含み、ディスプレイ及びスピーカ等の外部出力デバイスの動作を制御する。I/Oインターフェース706bは、例えば、シリアルコントローラ又はパラレルコントローラを含み、各種の入力デバイスやその他のペリフェラルデバイス等の動作を制御する。I/Oインターフェース706bは、例えば、PCI、USBインターフェース、IEEE1394インターフェース、Thunderboltインターフェース、ファイバチャネル等を含むが、これらに限られるものではない。通信インターフェース706cは、他のコンピューティングデバイス等のノードとの通信を可能にする回路である。通信インターフェースは、例えば、イーサネット(登録商標)回路を含む。ネットワーク通信は、有線又は無線のいずれであっても良い。
【0082】
上述したように、本実施形態に係る半導体装置1の設計手法においては、半導体設計装置2は、マクロセル部10の消費電流Imと、ビア30の許容電流Icとに基づいて、マクロセル部10の一側端部の両方端部に設けられる領域α0及びα1を決定し、さらに、マクロセル部10において電源ストラップ11が設けられる領域βを決定する。そして、本実施形態に係る半導体装置1の設計手法によれば、半導体設計装置2は、ビア40と、配線層60及び70との配置を設けられた領域α0及びα1の上方に決定することによって、マクロセル部10周辺において発生する信号配線の輻輳を解消することができ、半導体装置1のチップ面積の縮小及び配線層数の削減を実現することができる。
【0083】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【0084】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【0085】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。