説明

レイアウト設計装置、レイアウト設計方法およびレイアウト設計プログラム

【課題】マクロの全端子で配線が引き出し可能かを判定できるレイアウト設計装置、レイアウト設計方法およびレイアウト設計プログラムを提供する。
【解決手段】記憶部11は内部にマクロを含んだ多層回路の階層レイアウトの設計データを記憶する。チャネル数算出部13は設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出する。経路算出部15は算出したチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出する。経路判定部16はマクロの全ての端子について引き出し経路を算出できたか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レイアウト設計装置、レイアウト設計方法およびレイアウト設計プログラム
に関する。
【背景技術】
【0002】
LSI(Large Scale Integration)などの集積回路の設計では、例えば、処理を機能毎に分けた回路ブロックであるマクロが最初に単体で設計される。そして、集積回路の設計では、設計されたマクロを集積回路に配置してマクロ間の配線設計が行われる。そして、集積回路の設計では、集積回路全体での性能評価が行われる。
【0003】
マクロは、集積回路の内部に、複数層に渡って多層配線で回路が形成される。マクロの接続は、集積回路の層にビア(Via)を形成してマクロに形成された端子を接続配線が形成される層に引き出し、接続配線で接続することにより行う。
【0004】
LSIなどの基板内に形成された回路間の配線設計に関して次のような従来技術が知られている。例えば、プリント基板内に回路を配置した段階で回路間の引き出し経路やビアの配置などの配線設計を行う従来技術が知られている。また、マクロの端子を覆うチャネルと該チャネルの周辺の空きチャネルを検出し、検出されたチャネルから指定配線層まで連続して引き出し可能な空きチャネルが存在するか否か判定する技術が知られている。回路設計では、基板上に一定間隔でグリッドを仮想的に配置し、グリッドに合わせて位置を指定する。チャネルとは、ビアなどにより他の層へ信号経路が形成可能なグリッドを意味する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−139311号公報
【特許文献2】特開2006−268365号公報
【特許文献3】特開2000−353746号公報
【特許文献4】国際公開第2009/084092号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術のように、LSIにマクロを配置した段階でマクロ間の配線設計を行う場合、マクロに配線を引き出せない端子が存在し、マクロの配置変更などによっても解決できない場合、マクロの再設計が必要となり、設計作業の手戻りが大きい。
【0007】
また、従来技術の空きチャネルが存在するか否かの判定は、マクロの各端子について個別に行っており、他の端子の引き出し配線の影響を考慮していない。このため、端子単独では配線を引き出し可能と判定されても、他の端子の配線の影響で配線を引き出せない場合がある。
【0008】
開示の技術は、上記に鑑みてなされたものであって、マクロの全端子で配線が引き出し可能かを判定できるレイアウト設計装置、レイアウト設計方法およびレイアウト設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本願の開示するレイアウト設計装置は、一つの態様において、記憶部と、チャネル数算出部と、経路算出部と、経路判定部とを有する。記憶部は、階層レイアウトの設計データを記憶する。チャネル数算出部は、前記記憶部に記憶された設計データに基づいて、下位階層のマクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出する。経路算出部は、前記チャネル数算出部により算出したチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出する。経路判定部は、前記マクロの全ての端子について前記経路算出部により引き出し経路を算出できたか否かを判定する。
【発明の効果】
【0010】
一つの態様によれば、マクロの全端子で配線が引き出し可能かを判定できる。
【図面の簡単な説明】
【0011】
【図1】図1は、レイアウト設計装置の機能的な構成の一例を示す図である。
【図2】図2は、マクロの配置位置と配置グリッドおよび配線グリッドの関係の一例を示す図である。
【図3】図3は、マクロの端子層から引き出し対象層までの階層レイアウトの一例を示す図である。
【図4】図4は、使用可能な配線チャネルが制限される場合を説明するための図である。
【図5】図5は、バックトラック処理の一例を説明するための図である。
【図6】図6は、集積回路の設計手順の一例を示すフローチャートである。
【図7】図7は、マクロの全端子で配線が引き出し可能か判定する判定処理の手順を示すフローチャートである。
【図8】図8は、優先順位決定処理の手順を示すフローチャートである。
【図9】図9は、配置パターン特定処理の手順を示すフローチャートである。
【図10】図10は、レイアウト設計プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0012】
以下に、本願の開示するレイアウト設計装置、レイアウト設計方法およびレイアウト設計プログラムの各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0013】
実施例1に係るレイアウト設計装置10について説明する。図1は、レイアウト設計装置の機能的な構成の一例を示す図である。図1に示すように、レイアウト設計装置10は、記憶部11と、配置パターン特定部12と、チャネル数算出部13と、減少割合算出部14と、経路算出部15と、経路判定部16と、格納部17と、配線設計部18とを有する。レイアウト設計装置10は、LSIなどの集積回路の設計を行う機器であり、例えば、コンピュータなどである。ここで、LSIなどの集積回路の設計では、マクロ単体でのレイアウト設計が設計規則に従って行われる。そして、集積回路の設計では、設計したマクロを集積回路にマクロを配置してマクロ間の配線設計が行われる。そして、集積回路の設計では、集積回路全体での性能評価が行われる。マクロの設計は、集積回路の複数の配線層のうちの一部の配線層を用いて行われる。マクロ間の配線設計は、集積回路の層にビアを形成してマクロの端子を所定の配線層まで配線で引き出し、接続配線で接続することにより行われる。例えば、集積回路が1〜8の配線層を有する場合、マクロは1〜5の配線層を用いて設計される。マクロ間の配線は6〜8の配線層を用いて設計される。本実施例に係るレイアウト設計装置10は、マクロが設計された段階で、マクロの全端子について配線が引き出し可能かの判定を行う。
【0014】
記憶部11には、各種情報が記憶されている。例えば、記憶部11には、設計データ11a、設計条件データ11b、配置パターン情報11c、および引き出し経路情報11dが記憶されている。記憶部11のデバイスの一例としては、フラッシュメモリやNVSRAMなどのデータを書き換え可能な半導体メモリや、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【0015】
設計データ11aは、設計されたマクロの各層毎の回路のレイアウト情報や信号を入出力する端子の位置情報を含む。設計条件データ11bは、回路設計での各種の設計条件を含む。この設計条件には、例えば、各層の配線幅、ビアのサイズ、最低必要な配線間隔などの情報が含まれる。配置パターン情報11cは、後述する配置パターン特定部12により特定された配置パターン毎のマクロの各端子で配線に使用可能なチャネルに示す情報である。引き出し経路情報11dは、配置パターン毎のマクロの各端子の配線の引き出し経路を示す情報である。
【0016】
ここで、回路設計では、回路の位置を任意指定としてもよいが、位置の指定を容易にするため、基板上に一定間隔でグリッドを仮想的に配置し、グリッドに合わせて位置が指定される。また、マクロと配線は、配置位置の指定に用いる好ましいグリッドの間隔が異なる。設計条件データ11bは、マクロの配置に用いる配置グリッドの間隔および配線の配置に用いる配線グリッドの間隔をそれぞれ設計条件として含む。
【0017】
図2は、マクロの配置位置と配置グリッドおよび配線グリッドの関係の一例を示す図である。なお、図2の例では、配置グリッドおよび配線グリッドの一部だけ図示している。図2の例では、「×」のマークにより配線グリッド30を示す。また、図2の例では、横方向に平行に示した破線32で配置グリッド31の縦方向の配置位置を示し、縦方向に平行に示した破線33で配置グリッドの配置位置を示す。破線32と破線33の交点がそれぞれ配置グリッド31の配置位置を表す。図2の例では、配線グリッド30は、横方向について配置グリッドの2倍の間隔で設けられている。マクロは、配置グリッドに合わせて配置される。配線は、配線グリッド30に合わせてその上に配置される。図2の例では、同じサイズのマクロ40A、40Bが横方向に1配置グリッド分だけ位置をずらして配置されている。マクロ40A、40Bの内部に位置する配線グリッド30は、マクロ内で配線を設けることが可能な位置である配線チャネル35となる。ところで、配線グリッド30と配置グリッド31との間隔が異なるため、マクロ内部の配線チャネル35の数は、マクロの配置位置によって異なる。例えば、マクロ40Aは、配線チャネル35の列が4本ある。一方、1配置グリッド分だけ位置をずらしたマクロ40Bは、配線チャネル35の列が5本ある。このように、マクロは、配置位置によって、配線チャネル35の配置パターンが複数存在する場合がある。配置パターンのパターン数は、縦および横の配線グリッドの間隔と、縦および横の配置グリッドの間隔から以下の(1)式の演算により求めることができる。
【0018】
パターン数= [(縦の配線グリッドの間隔と縦の配置グリッドの間隔の最小公倍数)
/縦の配置グリッド]
×[(横の配線グリッドの間隔と横の配置グリッドの間隔の最小公倍数)
/横の配置グリッド)] (1)
【0019】
例えば、縦の配置グリッドの間隔を100とし、縦の配線グリッドの間隔を200とし、横の配置グリッドの間隔を100とし、横の配線グリッドの間隔を100とした場合、パターン数は、(200/100)×(100/100)=2×1=2と求まる。
【0020】
配置パターン特定部12は、マクロの配線チャネル35の配置パターンを特定する。例えば、配置パターン特定部12は、配置グリッドと配線グリッドの間隔が異なる場合、間隔の異なる方向に対して1配線グリッド分の範囲内で、マクロの配置位置を1配置グリッド分ずつずらして配線チャネル35の配置パターンを求める。例えば、縦または横の一方向で配置グリッドと配線グリッドの間隔が異なる場合は、一方向に対して1配線グリッド分の範囲内で、マクロの配置位置を1配置グリッド分ずつずらして配線チャネル35の配置パターンを求める。これにより、図2に示す2つの配置パターンが求まる。また、縦および横の2つ方向で配置グリッドと配線グリッドの間隔が異なる場合は、縦または横の何れか一方向に対して1配線グリッド分の範囲内で、マクロの配置位置を1配置グリッド分ずつずらして配線チャネル35の配置パターンを求める。そして、一方向のマクロの配置位置の移動が完了すると、マクロの配置位置を他方向に対して1配線グリッド分の範囲内で1配置グリッド分ずらし、再度一方向へ1配置グリッド分ずつずらして配線チャネル35の配置パターンを求める。
【0021】
配置パターン特定部12は、配置パターン毎のマクロ内での相対的な配線チャネル35の配置位置を配置パターン情報11cとして記憶部11に記憶させる。なお、配線グリッドおよび配置グリッドの間隔が一定の場合は、配置パターン情報11cとして、配線チャネル35の個別の配置位置を全て記憶させる必要はない。例えば、配置パターン情報11cは、マクロ内での何れか1つの配線チャネル35の位置と縦、横の配線グリッドの間隔の情報であってもよい。このように、配置パターン情報11cとして何れか1つの配線チャネル35の位置と縦、横の配線グリッドの間隔の情報を記憶した場合は、記憶された配線チャネル35の位置と縦、横の配線グリッドの間隔から各配線チャネル35の位置を特定する。
【0022】
チャネル数算出部13は、それぞれの配置パターンについて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出する。チャネル数とは、ビアなどにより他の層へ信号経路が形成可能なチャネルの数を意味する。この所定の配線層は、マクロの外への引き出し経路が形成される配線層であり、例えば、最上位層や引き出し経路が形成される中間の配線層が該当する。引き出し経路が存在する配線層が複数存在する場合は、全てを対象とする。以下、マクロの外への引き出し経路が形成される配線層を引き出し対象層とも言う。
【0023】
図3は、マクロの端子層から引き出し対象層までの階層レイアウトの一例を示す図である。図3の例は、端子層50aの上に配線層50bを設け、配線層50bの上に、マクロの外への引き出し経路が形成される引き出し対象層50cを設けた場合を示す。端子層50aには、マクロの端子として端子51aと端子51bが並んで設けられている。また、端子層50aには、端子51aの端子51b側以外の3方向を囲むように配線メタル52aが設けられている。配線層50bには、配線メタル52b、52cが設けられている。引き出し対象層50cには、配線メタル52dが設けられている。
【0024】
例えば、チャネル数算出部13は、設計データ11aおよび配置パターン情報11cに基づいて、各配置パターンについて、端子層50aから引き出し対象層50cまでの各層毎に、各端子から配線を引き出すために使用可能な配線チャネル35を特定する。具体的には、チャネル数算出部13は、マクロの各端子について、各層毎に、それぞれ端子からの引き出し配線を設けることが可能な使用可能範囲を求める。この使用可能範囲は、例えば、何れかの端子が含まれ、他の端子および各配線のスペーシング領域外となる範囲とする。そして、チャネル数算出部13は、マクロの各端子について、各層毎に、使用可能範囲内の配線グリッド30を使用可能な配線チャネル35と特定する。図3の例では、端子層50aは範囲53aの各配線グリッド30が使用可能な配線チャネル35と特定される。配線層50bは範囲53bの各配線グリッド30が使用可能な配線チャネル35と特定される。引き出し対象層50cは範囲53cの各配線グリッド30が使用可能な配線チャネル35と特定される。
【0025】
そして、チャネル数算出部13は、各層の使用可能な配線チャネル35を比較し、端子層50aから引き出し対象層50cの各相で同じ位置となった配線チャネル35のチャネル数を算出する。例えば、図3の例では、端子層50aの範囲53aと、配線層50bの範囲53bと、引き出し対象層50cの範囲53cの重複範囲を求める。配線層50bの範囲54aは、端子層50aの範囲53aと、配線層50bの範囲53bとの重複範囲である。引き出し対象層50cの範囲54bは、配線層50bの範囲54aと、引き出し対象層50cの範囲53cとの重複範囲である。よって、引き出し対象層50cの範囲54bは、範囲53aと範囲53bと範囲53cの重複範囲を示す。範囲54b内の配線チャネル35の数が、端子51aについての同じ位置となった配線チャネル35のチャネル数となる。範囲54cは、端子51bについての端子層50aから引き出し対象層50cまでの各層の使用可能範囲の重複範囲である。
【0026】
ところで、マクロの各端子は、周囲の端子に設けられた引き出し配線の影響で、使用可能な配線チャネル35が制限される場合がある。図4は、使用可能な配線チャネルが制限される場合を説明するための図である。図4の例は、端子層50aの端子51aにビア55を設けた場合を示している。端子51bは、ビア55が無い場合、端子51bおよび近傍の各配線チャネル35に引き出し配線を設けることができる。一方、端子51bは、ビア55が設けられた場合、ビア55から設計条件とされた最低必要な配線間隔を保つためにスペーシング領域56を設けるため、使用可能な配線チャネル35の数が減少する。図4の例は、使用可能な配線チャネル35の数が18個から8個に減少する。
【0027】
減少割合算出部14は、それぞれの配置パターンについて、マクロの各端子毎に、他の端子の引き出し配線の影響により、使用可能なチャネル数が減少する減少割合を算出する。例えば、減少割合算出部14は、端子層50aについて、各端子毎に、上述の使用可能範囲を求める。また、減少割合算出部14は、各端子毎に、使用可能範囲から他の端子の引き出し配線による影響を受ける範囲を除いた無影響範囲を求める。減少割合算出部14は、各端子毎に、使用可能範囲内の配線チャネル35の数から無影響範囲内の配線チャネル35の数を減算して減少チャネル数を求める。減少割合算出部14は、求めた減少チャネル数を使用可能範囲内の配線チャネル35の数で除算して減少割合を算出する。
【0028】
減少割合算出部14は、減少割合が所定の閾値以上の端子がある場合、減少割合が所定の閾値以上となる端子と当該端子の周辺の使用可能なチャネル数を減少させた端子を特定する。この所定の閾値は、例えば、30%とする。なお、閾値は、外部から調整可能とする。減少割合算出部14は、特定した各端子について、使用可能な配線チャネル35の数を比較し、各端子の使用可能チャネルの数を最も低い値に更新する。例えば、図4の例では端子51aにビア55を配置したことにより、端子51b上の引き出し使用可能チャネルが55%減少し、閾値以上減少している。このため、端子51a、51bの使用可能なチャネル数には、端子51a、51bの使用可能チャネルのうち、低い方の値を保存する。これにより、互いに配線の影響の大きい端子の組み合わせの使用可能チャネルの値が同じになる。これにより、後述する経路算出部15による経路算出の処理において、互いに配線の影響の大きい端子の同士の経路の計算順が近くなり、経路の計算をやり直す際のバックトラック処理を効率的に行うことができる。
【0029】
経路算出部15は、それぞれの配置パターンについて、使用可能チャネルの数の少ない順に、設計条件とされた配線幅、ビアのサイズ、最低必要な配線間隔で、各端子から引き出し対象層まで配線を引き出す経路を算出する。例えば、経路算出部15は、設計条件とされた配線幅、ビアのサイズで経路を算出する。また、経路算出部15は、既に経路を算出された他の端子の引き出し配線から最低必要な配線間隔以上の間隔を保って経路を算出する。この経路の算出は、既存の経路探索法を用いて行う。この経路検索法としては、例えば「ラインサーチ法」や「メイズ法」などがある。経路算出部15は、それぞれの配置パターンについて、各端子の経路を算出できた場合、算出された各配置パターンの各端子の経路を引き出し経路情報11dとして記憶する。一方、経路算出部15は、経路を算出できない端子が存在する場合、1つ前の端子の経路の算出に戻るバックトラック処理を行う。例えば、経路算出部15は、算出済みの経路以外の新たな経路が算出されるまで、配線チャネル35の数の少ない順で当該経路を算出できない端子から1つずつ前の端子の経路の算出に戻り経路を再算出することを繰り返す。新たな経路の算出は、例えば、算出済みの経路を記憶しておき、算出済みの経路をスペーシング領域など経路の算出から除外される領域に設定して行う。
【0030】
図5は、バックトラック処理の一例を説明するための図である。図5の例は、端子60aについて経路61aが算出されており、端子60bについて経路の算出を行う場合を示す。端子60bは、周囲に配線メタル62が設けられており、経路を算出した結果、経路63aが経路61aに阻まれるため、経路を算出できない。そこで、経路算出部15は、端子60aについて経路の算出をやり直し、端子60aについて算出済みの経路61a以外の新たな経路61bを算出する。これにより、経路算出部15は、端子60bについて経路の算出を行うことで、経路63bを算出できる。
【0031】
経路判定部16は、経路算出部15により、マクロの端子について引き出し経路を算出できたか否かを判定する。経路判定部16は、全ての配置パターンについて、引き出し経路を算出できた場合、マクロの全端子の配線が引き出し可能であると判定する。一方、経路判定部16は、何れの配置パターンで引き出し経路を算出できない場合、当該配置パターンについて端子で配線からの引き出し不可能であると判定する。
【0032】
格納部17は、経路算出部15により算出された経路を引き出し経路情報11dとして記憶部11に格納する。これにより、経路算出部15で全ての配置パターンについて、マクロの全ての端子について引き出し経路を算出できた場合、記憶部11には、配置パターン毎に、マクロの全ての端子の引き出し経路が引き出し経路情報11dとして記憶される。
【0033】
配線設計部18は、引き出し経路情報11dに基づいて、マクロの各端子の引き出し配線を設計する。例えば、マクロを集積回路に配置してマクロ間の配線設計が行われる場合、配線設計部18は、引き出し経路情報11dから集積回路に配置されたマクロの配置パターンに対応する各端子の引き出し経路を読み出す。そして、配線設計部18は、読み出した各端子の引き出し経路に配線を配置し、マクロの各端子の引き出し配線を設計する。なお、図1の例では、機能的な構成を示したため、配置パターン特定部12、チャネル数算出部13、減少割合算出部14、経路算出部15、経路判定部16、格納部17および配線設計部18を別に分けているが、例えば、1つのデバイスで構成してもよい。デバイスの一例としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路が挙げられる。なお、デバイスとして、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路を採用することもできる。
【0034】
次に、本実施例に係るレイアウト設計装置10を用いた場合の集積回路の設計手順について説明する。図6は、集積回路の設計手順の一例を示すフローチャートである。
【0035】
図6に示すように、集積回路の設計では、最初にマクロ単体での設計を行う(ステップS10)。集積回路の設計では、次に、設計された各マクロの集積回路への配置設計を行う(ステップS11)。集積回路の設計では、次に、配置されたマクロ間の配線設計を行う(ステップS12)。集積回路の設計では、次に、集積回路全体での性能評価を行う(ステップS13)。性能評価の結果がNGの場合は(ステップS14NG)、結果に応じてマクロ単体での設計やマクロの配置設計、マクロ間の配線設計に戻って修正を行う。性能評価を評価した結果がOKの場合は(ステップS14OK)、集積回路の設計作業は終了する。
【0036】
マクロの設計では、最初に、各マクロが実現する機能の機能設計を行う(ステップS20)。マクロの設計では、次に、機能設計に従い、各マクロの実装設計を行う(ステップS21)。マクロの設計では、次に、実装設計されたマクロの全端子で配線が引き出し可能か判定を行う(ステップS22)。全端子で配線が引き出し可能か判定した結果がNGの場合は(ステップS23肯定)、マクロの実装設計に戻って修正を行う。全端子で配線が引き出し可能か判定した結果がOKの場合は(ステップS23否定)、マクロの設計作業は終了する。本実施例に係るレイアウト設計装置10は、実装設計されたマクロの全端子で配線が引き出し可能か判定を行う。
【0037】
次に、本実施例に係るレイアウト設計装置10の処理の流れを説明する。図7は、マクロの全端子で配線が引き出し可能か判定する判定処理の手順を示すフローチャートである。
【0038】
図7に示すように、配置パターン特定部12は、設計条件データ11bから各種の設計条件を読み出す(ステップS30)。そして、配置パターン特定部12は、設計条件とされた間隔で配置グリッドおよび配線グリッドを仮想的に配置し、設計データ11aに基づくマクロを配置グリッドに合わせて配置してマクロの配線チャネル35の配置パターンを特定する(ステップS31)。特定された配置パターンは、配置パターン情報11cとして記憶部11に記憶される。チャネル数算出部13は、配置パターン情報11cにより示される各配置パターンのうち、未検証の配置パターンを検証配置パターンと決定する(ステップS32)。チャネル数算出部13は、設計条件とされた配線幅、ビアのサイズ、最低必要な配線間隔に基づいて、検証配置パターンの各端子にスペーシング領域などの制約を特定する(ステップS33)。そして、チャネル数算出部13は、検証配置パターンの各端子の優先順位を決定する優先順位決定処理を行う(ステップS34)。経路算出部15は、優先順位決定処理で決定された順に、未検証の端子を検証端子と決定する(ステップS35)。そして、経路算出部15は、設計条件とされた配線幅、ビアのサイズ、最低必要な配線間隔で、経路算出済みの他の端子については算出順の最も新しい経路を引き出し配線として、検証端子から引き出し対象層まで配線を引き出す経路を算出する(ステップS36)。経路判定部16は、経路が算出できたか否かを判定する(ステップS37)。経路が算出できた場合(ステップS37肯定)、格納部17は、算出された経路を検証端子と対応付けて算出順に記憶部11に格納する(ステップS38)。経路判定部16は、検証端子について検証OKと記憶する(ステップS39)。経路判定部16は、検証配置パターンの各端子に未検証の端子があるか否かを判定する(ステップS40)。未検証の端子がある場合(ステップS40肯定)、経路判定部16は、ステップS35の処理へ移行する。一方、未検証の端子がない場合(ステップS40否定)、格納部17は、記憶部11に端子毎の算出順に記憶させた経路のうち、各端子の算出順が最も新しい経路を引き出し経路情報11dとして記憶部11に格納する(ステップS41)。これにより、記憶部11には、検証配置パターンの各端子の配線の引き出し経路が引き出し経路情報11dとして記憶される。経路判定部16は、配置パターン情報11cにより示される各配置パターンに未検証の配置パターンがあるか否かを判定する(ステップS42)。未検証の配置パターンがある場合(ステップS42肯定)、経路判定部16は、ステップS32の処理へ移行する。一方、未検証の配置パターンがない場合(ステップS42否定)、経路判定部16は、処理を終了する。
【0039】
一方、経路が算出できない場合(ステップS37否定)、経路算出部15は、検証配置パターンに検証OKとされた端子があるか否か判定する(ステップS43)。検証OKとされた端子がある場合(ステップS43肯定)、経路算出部15は、優先順位の順で、1つ前の検証OKとされた端子について記憶部11に記憶された算出済みの経路以外の新たな経路の再算出を行う(ステップS44)。経路算出部15は、新たな経路が算出できたか否かを判定する(ステップS45)。新たな経路が算出できた場合(ステップS45肯定)、経路算出部15は、新たな経路を1つ前に検証された端子と対応付けて算出順に記憶部11に格納して、ステップS36へ移行する。一方、新たな経路が算出できない場合(ステップS45否定)、経路算出部15は、優先順位の順で、1つ前の検証OKとされた端子の検証OKと取り消して(ステップS46)、ステップS43へ移行する。これにより、優先順位の順で、さらに1つ前に検証OKとされた端子について経路の再算出が行われる。
【0040】
一方、検証OKとされた端子がない場合(ステップS43否定)、経路判定部16は、マクロに配線の引き出し不可能なパターンがある判定し(ステップS47)、処理を終了する。すなわち、どのように各端子の経路を変えても配線の引き出しが不可能な端子がある場合、マクロの全端子で配線が引き出し不可能であるため、処理を終了する。マクロに配線の引き出し不可能なパターンがある判定された場合には、マクロの実装設計に戻り、マクロの再設計が行われる。
【0041】
次に、優先順位決定処理の流れを説明する。図8は、優先順位決定処理の手順を示すフローチャートである。
【0042】
図8に示すように、減少割合算出部14は、検証配置パターンについて、マクロの各端子毎に、他の端子の引き出し配線の影響により引き出し配線を配置可能な使用可能なチャネル数が減少する減少割合を算出する(ステップS50)。そして、減少割合算出部14は、減少割合が所定の閾値以上の端子がある場合、チャネル数が減少する端子の組み合わせを特定し、特定した各端子の使用可能チャネルの数を比較して最も低い値に更新する(ステップS51)。減少割合算出部14は、使用可能チャネルの数の少ない順に端子順をソートする(ステップS52)。減少割合算出部14は、ソートした使用可能チャネルの数の少ない順を優先順位と決定し(ステップS53)、処理を終了する。このように優先順位を使用可能チャネルの数の少ない順とすることにより、配線引き出し領域の厳しい端子から検証が行われるため、短時間でマクロ設計の不具合を検証することができる。また、影響の大きい端子の組み合わせについて使用可能チャネルの数を同じ値として経路の計算順を近くすることによって、経路の計算をやり直す際のバックトラック処理を効率的に行うことができる。
【0043】
上述してきたように、本実施例に係るレイアウト設計装置10は、内部にマクロを含んだ多層回路の階層レイアウトの設計データ11aを記憶部11に記憶する。また、レイアウト設計装置10は、記憶部11に記憶された設計データ11aに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出する。また、レイアウト設計装置10は、算出したチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出する。そして、レイアウト設計装置10は、マクロの全ての端子について引き出し経路を算出できたか否かを判定する。このように、使用可能なチャネル数の少ない端子から配線を引き出すための経路の算出を行うことにより、配線を引き出す自由度の少ない端子から順に経路を算出できるため、全ての端子について引き出し経路を算出が行いやすくなる。そして、マクロの全ての端子について引き出し経路を算出できたか否かを判定することにより、設計されたマクロの全端子で配線が引き出し可能かを判定することができる。
【0044】
また、本実施例に係るレイアウト設計装置10は、マクロの全ての端子について引き出し経路を算出できたと判定された場合に、算出されたマクロの全ての端子の引き出し経路に関する引き出し経路情報11dを記憶部11に格納する。そして、レイアウト設計装置10は、記憶部11に記憶された引き出し経路情報11dに基づいて、マクロの各端子の引き出し配線を設計する。このように、マクロの全ての端子について引き出し経路に関する引き出し経路情報11dを記憶することにより、マクロ間の配線設計を行う際のマクロの各端子の引き出し配線を容易に設計することができる。
【0045】
また、本実施例に係るレイアウト設計装置10は、マクロの各端子毎に、他の端子の引き出し配線の影響により所定の配線層まで配線を引き出すために使用可能なチャネル数が減少する減少割合を算出する。そして、レイアウト設計装置10は、算出された減少割合が所定の閾値よりも大きい端子とチャネル数の減少に影響を与える端子の経路を続けて算出する。このように、減少割合が所定の閾値よりも大きい端子とチャネル数の減少に影響を与える端子について経路を続けて算出することにより、経路の計算の効率的に行うことができる。
【0046】
また、本実施例に係るレイアウト設計装置10は、経路を算出できない端子が存在する場合、算出済みの経路以外の新たな経路が算出されるまで、チャネル数の少ない順で当該経路を算出できない端子から1つずつ前の端子の経路の算出に戻る。そして、レイアウト設計装置10は、経路を再算出することを繰り返す。これにより、何れの端子で経路が算出できない場合でも、経路を算出済みの端子の経路を変えて、経路が算出できない端子について経路の算出を網羅的に行うことができる。
【0047】
また、本実施例に係るレイアウト設計装置10は、マクロの配置位置に応じた配線チャネルの配置パターンを特定し、全ての配置パターンでマクロの全ての端子について引き出し経路を算出できたか否かを判定する。これにより、マクロの配置位置によらずマクロの全ての端子から配線が引き出せることを確認できる。
【0048】
また、本実施例に係るレイアウト設計装置10は、マクロの設計段階でマクロの全ての端子について引き出し経路を算出できたか否かを判定する。これにより、マクロの設計段階でマクロの全ての端子から配線が引き出せることを確認できるため、マクロ間の配線設計でマクロの引き出し経路の有無を検証する場合と比較して、設計作業の手戻り少なく抑えることができる。
【実施例2】
【0049】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0050】
例えば、上記の実施例1では、マクロの全ての端子について経路を計算した場合について説明したが、開示の装置はこれに限定されない。例えば、端子の配線チャネル数が閾値以上あるものについては、引き出し配線の自由度が高く、配線を引き出せるため、経路の計算対象から除外してもよい。これにより、経路の計算時間を短縮できる。経路の計算対象から除外する閾値は、例えば、マクロ内に包含された配線チャネルの50%以上のチャネル数とする。この閾値は、外部から調整可能としてもよい。
【0051】
また、上記の実施例1では、配線グリッドおよび配置グリッドの間隔を一定として、配置パターンを特定する場合について説明したが、開示の装置はこれに限定されない。例えば、配線グリッドおよび配置グリッドの間隔を一定ではない場合、以下の配置パターン特定処理を行うことにより、配置パターンを特定する。
【0052】
図9は、配置パターン特定処理の手順を示すフローチャートである。
【0053】
図9に示すように、配置パターン特定部12は、設計条件とされた間隔で配置グリッドおよび配線グリッドを仮想的に配置し、マクロを配置可能な範囲の縦横一方の端部に配置する(ステップS60)。配置パターン特定部12は、現在のマクロを配置位置で配線グリッドの新たな配置パターンが出現したか否かを判定する(ステップS61)。新たな配置パターンが出現した場合(ステップS61肯定)、配置パターン特定部12は、マクロ内の配線グリッドの配置パターンを記憶する(ステップS62)。また、配置パターン特定部12は、配置可能な範囲内のマクロの配置位置を記憶する(ステップS63)。一方、新たな配置パターンが出現しない場合(ステップS61否定)、配置パターン特定部12は、ステップS64へ移行する。配置パターン特定部12は、現在のマクロの配置位置がマクロを配置可能な範囲の横方向の他端に到達したか否か判定する(ステップS64)。横方向の他端に到達していない場合(ステップS64否定)、配置パターン特定部12は、横方向にマクロを1配置グリッド分シフトし(ステップS65)、ステップS61へ移行する。一方、横方向の他端に到達した場合(ステップS64肯定)、配置パターン特定部12は、現在のマクロの配置位置がマクロを配置可能な範囲の縦方向の他端に到達したか否か判定する(ステップS66)。縦方向の他端に到達していない場合(ステップS66否定)、配置パターン特定部12は、縦方向にマクロを1配置グリッド分シフトする(ステップS67)。そして、配置パターン特定部12は、マクロを横方向の一端に配置して(ステップS68)、ステップS61へ移行する。一方、縦方向の他端に到達した場合(ステップS66肯定)、配置パターン特定部12は、処理を終了する。
【0054】
この配置パターン特定処理により、配線グリッドおよび配置グリッドの間隔が一定でない場合でも、配置パターンを特定できる。
【0055】
また、各種の負荷や使用状況などに応じて、実施例1において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【0056】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す配置パターン特定部12やチャネル数算出部13、減少割合算出部14、経路算出部15および経路判定部16は適宜統合されてもよい。
【0057】
[レイアウト設計プログラム]
また、上記の実施例で説明したレイアウト設計装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図10を用いて、上記の実施例で説明したレイアウト設計装置と同様の機能を有するレイアウト設計プログラムを実行するコンピュータの一例を説明する。図10は、レイアウト設計プログラムを実行するコンピュータを示す図である。
【0058】
図10に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
【0059】
ROM320には、実施例1に示す配置パターン特定部12、チャネル数算出部13、減少割合算出部14、経路算出部15、経路判定部16、格納部17および配線設計部18と同様の機能を発揮するレイアウト設計プログラム320aが予め記憶される。なお、レイアウト設計プログラム320aについては、適宜分離しても良い。
【0060】
そして、CPU310が、レイアウト設計プログラム320aをROM320から読み出して実行する。
【0061】
そして、HDD330には、設計データ、設計条件データ、配置パターン情報、および引き出し経路情報が設けられる。設計データ、設計条件データ、配置パターン情報、および引き出し経路情報のそれぞれは、図1に示した、設計データ11a、設計条件データ11b、配置パターン情報11c、および引き出し経路情報11dに対応する。
【0062】
そして、CPU310は、設計データ、設計条件データ、配置パターン情報、および引き出し経路情報を読み出してRAM340に格納する。CPU310は、RAM340に格納された設計データ、設計条件データ、配置パターン情報、および引き出し経路情報を用いて、レイアウト設計プログラム320aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0063】
なお、上記したレイアウト設計プログラム320aについては、必ずしも最初からHDD330に記憶させておく必要はない。
【0064】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0065】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0066】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【0067】
(付記1)階層レイアウトの設計を行うレイアウト設計装置であって、
内部にマクロを含んだ多層回路の階層レイアウトの設計データを記憶する記憶部と、
前記記憶部に記憶された設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出するチャネル数算出部と、
前記チャネル数算出部により算出したチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出する経路算出部と、
前記マクロの全ての端子について前記経路算出部により引き出し経路を算出できたか否かを判定する経路判定部と
を有することを特徴とするレイアウト設計装置。
【0068】
(付記2)前記経路判定部により、前記マクロの全ての端子について前記経路算出部により引き出し経路を算出できたと判定された場合に、前記経路算出部により算出された前記マクロの全ての端子の引き出し経路に関する情報を前記記憶部に格納する格納部と、
前記記憶部に記憶された情報に基づいて、前記マクロの各端子の引き出し配線を設計する配線設計部と
をさらに有することを特徴とする付記1記載のレイアウト設計装置。
【0069】
(付記3)前記マクロの端子毎に、他の端子からの引き出し配線の影響により前記所定の配線層まで配線を引き出すために使用可能なチャネル数が減少する減少割合を算出する減少割合算出部をさらに有し、
前記経路算出部は、前記減少割合算出部により算出された減少割合が所定の閾値よりも大きい端子と、当該減少割合が所定の閾値よりも大きい端子のチャネル数の減少に影響を与える端子とからの経路を続けて算出する
ことを特徴とする付記1または付記2記載のレイアウト設計装置。
【0070】
(付記4)前記経路算出部は、経路を算出できない端子が存在する場合、算出済みの経路以外の新たな経路が算出されるまで、当該経路を算出できない端子から1つずつ前の端子の経路の算出に戻り、経路を再算出する
ことを特徴とする付記1〜3の何れか1つに記載のレイアウト設計装置。
【0071】
(付記5)階層レイアウトの設計を行うレイアウト設計方法であって、
コンピュータが、
記憶部に記憶された、内部にマクロを含んだ多層回路の階層レイアウトの設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出し、
算出されたチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出し、
前記マクロの全ての端子について引き出し経路を算出できたか否かを判定する
各処理を実行することを特徴とするレイアウト設計方法。
【0072】
(付記6)コンピュータが、
前記マクロの全ての端子について引き出し経路を算出できたと判定された場合に、算出された前記マクロの全ての端子の引き出し経路に関する情報を前記記憶部に格納し、
前記記憶部に記憶された情報に基づいて、前記マクロの各端子の引き出し配線の設計を行う
各処理をさらに実行することを特徴とする付記5記載のレイアウト設計方法。
【0073】
(付記7)コンピュータが、
前記マクロの各端子毎に、他の端子からの引き出し配線の影響により前記所定の配線層まで配線を引き出すために使用可能なチャネル数が減少する減少割合を算出する処理をさらに実行し、
前記経路を算出する処理は、減少割合が所定の閾値よりも大きい端子と、当該減少割合が所定の閾値よりも大きい端子のチャネル数の減少に影響を与える端子とからの経路を続けて算出する
ことを特徴とする付記5または付記6記載のレイアウト設計方法。
【0074】
(付記8)前記経路を算出する処理は、経路を算出できない端子が存在する場合、算出済みの経路以外の新たな経路が算出されるまで、当該経路を算出できない端子から1つずつ前の端子の経路の算出に戻り、経路を再算出する
ことを特徴とする付記5〜7の何れか1つに記載のレイアウト設計方法。
【0075】
(付記9)階層レイアウトの設計を行うレイアウト設計プログラムであって、
コンピュータに、
記憶部に記憶された、内部にマクロを含んだ多層回路の階層レイアウトの設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出し、
算出されたチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出し、
前記マクロの全ての端子について引き出し経路を算出できたか否かを判定する
各処理を実行させることを特徴とするレイアウト設計プログラム。
【0076】
(付記10)コンピュータに、
前記マクロの全ての端子について引き出し経路を算出できたと判定された場合に、算出された前記マクロの全ての端子の引き出し経路に関する情報を前記記憶部に格納し、
前記記憶部に記憶された情報に基づいて、前記マクロの各端子の引き出し配線の設計を行う
各処理をさらに実行させることを特徴とする付記9記載のレイアウト設計プログラム。
【0077】
(付記11)コンピュータに、
前記マクロの各端子毎に、他の端子からの引き出し配線の影響により前記所定の配線層まで配線を引き出すために使用可能なチャネル数が減少する減少割合を算出する処理をさらに実行させ、
前記経路を算出する処理は、減少割合が所定の閾値よりも大きい端子と、当該減少割合が所定の閾値よりも大きい端子のチャネル数の減少に影響を与える端子とからの経路を続けて算出する
ことを特徴とする付記9または付記10記載のレイアウト設計プログラム。
【0078】
(付記12)前記経路を算出する処理は、経路を算出できない端子が存在する場合、算出済みの経路以外の新たな経路が算出されるまで、当該経路を算出できない端子から1つずつ前の端子の経路の算出に戻り、経路を再算出する
ことを特徴とする付記9〜11の何れか1つに記載のレイアウト設計プログラム。
【符号の説明】
【0079】
10 レイアウト設計装置
11 記憶部
11a 設計データ
11b 設計条件データ
11c 配置パターン情報
11d 引き出し経路情報
12 配置パターン特定部
13 チャネル数算出部
14 減少割合算出部
15 経路算出部
16 経路判定部
17 格納部
18 配線設計部

【特許請求の範囲】
【請求項1】
階層レイアウトの設計を行うレイアウト設計装置であって、
内部にマクロを含んだ多層回路の階層レイアウトの設計データを記憶する記憶部と、
前記記憶部に記憶された設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出するチャネル数算出部と、
前記チャネル数算出部により算出したチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出する経路算出部と、
前記マクロの全ての端子について前記経路算出部により引き出し経路を算出できたか否かを判定する経路判定部と
を有することを特徴とするレイアウト設計装置。
【請求項2】
前記経路判定部により、前記マクロの全ての端子について前記経路算出部により引き出し経路を算出できたと判定された場合に、前記経路算出部により算出された前記マクロの全ての端子の引き出し経路に関する情報を前記記憶部に格納する格納部と、
前記記憶部に記憶された情報に基づいて、前記マクロの各端子の引き出し配線を設計する配線設計部と
をさらに有することを特徴とする請求項1記載のレイアウト設計装置。
【請求項3】
前記マクロの端子毎に、他の端子からの引き出し配線の影響により前記所定の配線層まで配線を引き出すために使用可能なチャネル数が減少する減少割合を算出する減少割合算出部をさらに有し、
前記経路算出部は、前記減少割合算出部により算出された減少割合が所定の閾値よりも大きい端子と、当該減少割合が所定の閾値よりも大きい端子のチャネル数の減少に影響を与える端子とからの経路とを続けて算出する
ことを特徴とする請求項1または請求項2記載のレイアウト設計装置。
【請求項4】
前記経路算出部は、経路を算出できない端子が存在する場合、算出済みの経路以外の新たな経路が算出されるまで、当該経路を算出できない端子から1つずつ前の端子の経路の算出に戻り、経路を再算出する
ことを特徴とする請求項1〜3の何れか1つに記載のレイアウト設計装置。
【請求項5】
階層レイアウトの設計を行うレイアウト設計方法であって、
コンピュータが、
記憶部に記憶された、内部にマクロを含んだ多層回路の階層レイアウトの設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出し、
算出されたチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出し、
前記マクロの全ての端子について引き出し経路を算出できたか否かを判定する
各処理を実行することを特徴とするレイアウト設計方法。
【請求項6】
階層レイアウトの設計を行うレイアウト設計プログラムであって、
コンピュータに、
記憶部に記憶された、内部にマクロを含んだ多層回路の階層レイアウトの設計データに基づいて、マクロの各端子から所定の配線層まで配線を引き出すために使用可能なチャネル数を端子毎に算出し、
算出されたチャネル数の少ない端子から順に、端子から所定の配線層まで配線を引き出すための経路を算出し、
前記マクロの全ての端子について引き出し経路を算出できたか否かを判定する
各処理を実行させることを特徴とするレイアウト設計プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−37451(P2013−37451A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−171382(P2011−171382)
【出願日】平成23年8月4日(2011.8.4)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】