説明

半導体装置の自動配置配線プログラム、自動配置配線装置及び自動配置配線方法

【課題】従来の方法では、アナログ・デジタル混載LSIのレイアウトの処理時間及び面積効率が悪化する問題があった。
【解決手段】本発明の自動配置配線プログラムは、回路設計情報からモジュールを抽出する第1処理(S10)と、モジュールに含まれる回路の属性を示すモジュール属性を設定する第2処理(S11)と、面積値を一定として縦横の寸法が異なる複数のモジュール形状候補を生成する第3処理(S12)と、上位モジュールの形状に適合するモジュール形状候補に対して回路素子を配置してレイアウトパターンを生成する第4処理(S13)と、を有し、第3処理(S13)では、第1回路属性のモジュールに対しては、行の高さ又は列の幅を縦横の寸法の変化単位とする複数のモジュール形状候補を生成し、第2回路属性のモジュールに対しては、縦横の寸法が連続的に変化する複数のモジュール形状候補を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体装置の半導体装置の自動配置配線プログラム、自動配置配線装置及び自動配置配線方法に関し、特に、アナログ回路とデジタル回路とが混載された半導体装置の半導体装置の自動配置配線プログラム、自動配置配線装置及び自動配置配線方法に関する。
【背景技術】
【0002】
近年、アナログ回路とデジタル回路とを混載した半導体装置の採用が増えている。このような半導体装置を設計では、デジタル回路については、自動配置配線ツールの普及により設計時間の短縮及びレイアウトの面積効率の向上が進んでいる。しかし、アナログ回路については、自動配置配線ツールの開発が進んでおらず設計時間が多くかかる問題がある。また、アナログ回路については、自動配置配線ツールの開発の遅れによりレイアウトの面積効率が悪化する問題がある。アナログ回路を含む半導体装置の設計方法の例は例えば特許文献1〜3に開示されている。
【0003】
また、特許文献1では、回路素子毎に素子特性情報を参照して、素子毎に素子の面積を予測する。これにより、特許文献1では、アナログ回路の面積又はアナログ・デジタル混載集積回路において回路ブロックの面積を高精度で、かつ自動的に予測することが可能な半導体装置のレイアウト設計方法が開示されている。
【0004】
また、特許文献2では、モジュールの複数の図形データ及び位置関係制約等の制約に基づき、制約を満たすように図形データのレイアウトを算出し、算出したレイアウト中から評価基準をよりよく満たすレイアウトを選択する。これにより、特許文献2では、レイアウトのデッドスペースを削減する。
【0005】
特許文献3では、階層構造を有する回路図データにおいて、上位階層のモジュールのレイアウト形状から下位階層のモジュールのレイアウト形状を決定する。また、特許文献3では、下位階層のモジュールのレイアウト形状を決定する際に、上位階層のレイアウト形状中に収まる複数の形状候補を生成し、当該複数の形状候補から下位階層のモジュールのレイアウト形状を選択する。これにより、特許文献3にアナログ回路を含む半導体装置の設計時間の短縮とレイアウトの面積効率の向上とを実現する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−338980号公報
【特許文献2】特開2005−267291号公報
【特許文献3】特開2008−299686号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1〜3に記載の技術では、モジュール内にアナログ回路を含むモジュールと、デジタル回路を含むモジュールとが混載され、回路が階層構造を有するレイアウトについては設計時間と面積効率とを改善することができない問題がある。
【課題を解決するための手段】
【0008】
本発明にかかる自動配置配線プログラム、自動配置配線装置及び自動配置配線方法の一態様は、モジュール内の回路の属性を示すモジュール属性に応じて、モジュールの形状の計算方法及び選択方法を適切に設定する。
【発明の効果】
【0009】
本発明にかかる自動配置配線プログラム、自動配置配線装置及び自動配置配線方法によれば、アナログ回路を含むモジュールと、デジタル回路を含むモジュールが階層構造を持った回路図データについてのレイアウトデータの設計時間及び面積効率を向上させることができる。
【図面の簡単な説明】
【0010】
【図1】実施の形態1かかる自動配置配線プログラムを実行する装置のブロック図である。
【図2】実施の形態1かかるセル種別定義ファイルの一例を示す図である。
【図3】実施の形態1かかる自動配置配線プログラムの実行手順を示すフローチャートである。
【図4】実施の形態1かかる自動配置配線プログラムのモジュール属性解析処理の手順を示すフローチャートである。
【図5】実施の形態1かかる自動配置配線プログラムのモジュール属性解析処理により解析されたモジュール属性について説明するための図である。
【図6】実施の形態1かかる自動配置配線プログラムにおいて、デジタル回路の属性を示すデジタルモジュールに対するモジュール形状解析処理を行う場合の手順を示すフローチャートである。
【図7】実施の形態1かかるモジュール形状解析処理おいて生成される複数のモジュール形状候補を示す概略図である。
【図8】実施の形態1かかるモジュール形状解析処理おいて選択されるモジュール形状候補の選択基準を示す概略図である。
【図9】実施の形態1かかるモジュール形状解析処理おいて選択された複数のモジュール形状候補を示す概略図である。
【図10】実施の形態1かかる自動配置配線プログラムにおいて、アナログ回路の属性を示すアナログモジュールに対するモジュール形状解析処理を行う場合の手順を示すフローチャートである。
【図11】実施の形態1かかるモジュール形状解析処理おいて選択されるモジュール形状候補の選択基準を示す概略図である。
【図12】実施の形態1かかる自動配置配線プログラムにより生成される半導体装置のレイアウトの概略図である。
【図13】アナログモジュールに対するモジュール形状候補の生成方法のみを適用した自動配置配線プログラムにより生成される半導体装置のレイアウトの概略図である。
【図14】実施の形態1かかる自動配置配線装置のブロック図である。
【図15】実施の形態2かかる自動配置配線プログラムのレイアウト処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【0011】
実施の形態1
以下、本発明の実施の形態について図面を参照して説明する。実施の形態1にかかる自動配置配線プログラムは、演算部と記憶部とを有する装置(例えば、コンピュータ)により実行される。この装置は、実施の形態1にかかる自動配置配線プログラムを実行することで自動配置配線装置として機能する。そこで、実施の形態1にかかる自動配置配線装置について説明する。図1に実施の形態1にかかる自動配置配線装置のブロック図を示す。
【0012】
図1に示すように、実施の形態1にかかる自動配置配線装置は、演算部1、表示部2、操作入力部3、記憶部10〜15を有する。なお、図1では、データの入出力関係を明示するために複数の記憶部を示したが、これらの記憶部は、1つの記憶部として構成されていても良い。
【0013】
記憶部10には、実施の形態1にかかる自動配置配線プログラムが格納されている。記憶部11には、面積制御ファイルが格納されている。この面積制御ファイルは、モジュールの面積の上限値を定義する面積制限情報及びモジュールの大きさの最大値及び最小値を定義する寸法制限情報を含む。この面積制限情報と寸法制限情報は、初期状態では、例えば、各モジュールの最上位階層の寸法などが定められている。記憶部12には、回路図データが格納される。回路図データには、モジュール毎に階層化された回路図と、その階層化された各回路図内のデバイス(又はモジュール)に対する配置制約なども含まれる。
【0014】
記憶部13には、セル種別定義ファイルが格納される。このセル種別定義ファイルは、回路素子がアナログ回路としての属性を有するものであるのか、デジタル回路としての属性を有するものであるかを定義する記述を含む。このセル種別定義ファイルの一例を図2に示す。図2に示すように、セル種別定義ファイルには、回路素子の種類毎に、対応する属性情報が記載される。例えば、PMOSトランジスタ及びNMOSトランジスタに対してはデバイス種別としてfetが定義され、PNPトランジスタ及びNPNトランジスタに対してはデバイス種別としてbjtが定義され、ポリ抵抗に対してはデバイス種別としてresistorが定義され、MOS容量に対してはデバイス種別としてcapacitorが定義され、NAND回路に対してはデバイス種別としてstandard_cellが定義される。
【0015】
記憶部14は、記憶部12に格納された回路図データに基づき生成されたレイアウトパターンが格納される。記憶部15には、基準を満たさないレイアウトデータが生成された場合に、処理のエラー内容を示すエラーレポートが格納される。
【0016】
演算部1は、記憶部10から自動配置配線プログラムを読み出して、実行する。そして、自動配置配線プログラムを実行することで演算部1は、自動配置配線装置としての機能を実現する。表示部2は、自動配置配線プログラムを利用するためのインタフェースを表示する。操作入力部3は、自動配置配線プログラムの利用者が自動配置配線プログラムに対する操作を与えるためのインタフェースである。
【0017】
続いて、実施の形態1にかかる自動配置配線プログラムの実行手順について説明する。そこで、図3に実施の形態1にかかる自動配置配線プログラムの実行手順を示すフローチャートを示す。
【0018】
図3に示すように、実施の形態1にかかる自動配置配線プログラムは、まず、第1処理としてモジュールPcell生成処理を行う(ステップS10)。モジュールPcell生成処理では、回路設計情報(例えば、回路図データ)から回路の配置単位を示すモジュールPcellを抽出する。このモジュールPcellは、レイアウト寸法が可変(言い換えれば複数のレイアウト寸法の選択肢を備えた)セル(又はモジュール)である。例えば、回路図においてMOSトランジスタ(セル)のゲート幅やゲート長が定義された場合、当該MOSトランジスタの実際のレイアウト寸法は、複数の選択肢を持つことが可能である。これは、例えばゲートを所謂フィン構造にすることなどで、レイアウトのアスペクト比はある程度自由に変更することができるからである。これにより、MOSトランジスタ等の組合せによって構成されるモジュールのレイアウト寸法もある程度自由に変更できる。
【0019】
続いて、実施の形態1にかかる自動配置配線プログラムは、第2処理としてモジュール属性解析処理を行う(ステップS11)。モジュール属性解析処理では、モジュールPcell毎に、モジュールPcellに含まれる回路の属性を示すモジュール属性を設定する。より具体的には、モジュール属性解析処理では、セル種別定義ファイルに基づきモジュールPcellに含まれる回路素子のデバイス種別を判別し、デバイス種別毎の数に応じてモジュール内の回路の属性を示すモジュール属性を設定する。モジュール属性解析処理のより詳細な動作については後述する。
【0020】
続いて、実施の形態1にかかる自動配置配線プログラムは、第3処理としてモジュール形状解析処理を行う(ステップS12)。モジュール形状解析処理では、モジュール毎に、面積値を一定として縦横の寸法が異なる複数のモジュール形状候補を生成する。ここで、モジュール形状解析処理においては、モジュールPcellに対して設定された面積値を利用する。例えば、初期状態においては、最上位階層のモジュールPcellの面積値として面積制御ファイルにより与えられた面積値を利用する。また、初期状態においては、下位階層のモジュールPcellの面積値は、上位階層のモジュールPcell中の位置及び下位階層のモジュールPcell中の回路素子の数により決定される面積値を利用する。
【0021】
また、モジュール形状解析処理では、モジュール内に配置される回路素子が、大きさが予め決められ、マトリクス状に配置される特徴を有することを示す第1回路属性のモジュールに対しては、行の高さ又は列の幅を縦横の寸法の変化単位とする複数のモジュール形状候補を生成する。また、モジュール形状解析処理では、モジュール内に配置される前記回路素子が、大きさ及び配置が任意に設定される特徴を有することを示す第2回路属性のモジュールに対しては、縦横の寸法が連続的に変化する複数のモジュール形状候補を生成する。
【0022】
続いて、実施の形態1にかかる自動配置配線プログラムでは、第4処理としてレイアウト処理を行う(ステップS13)。レイアウト処理では、複数のモジュール形状候補から処理対象のモジュールの上位階層に位置する上位モジュールの形状に適合するモジュール形状候補を探索し、探索したモジュール形状候補に対してモジュールの回路素子を配置してレイアウトパターンを生成する。レイアウト処理は、上記動作を実現するために、配置条件設定処理(ステップS13a)と、自動配置配線処理(ステップS13b)とを有する。
【0023】
配置条件設定処理は、第4処理として行われる処理であって、自動配置配線処理の前処理として行われる。配置条件設定処理では、モジュールの回路素子の配置に制限を与える配置制約条件をモジュール属性に応じて設定する。例えば、配置条件設定処理では、モジュール属性がデジタル回路属性の回路素子を主に含む第1回路属性(例えば、デジタルモジュール)である場合、デジタルモジュール用の配置制約条件をモジュールに対して与える。また、配置条件設定処理では、モジュール属性がアナログ回路属性の回路素子を主に含む第2回路属性(例えば、アナログモジュール)である場合、アナログモジュール用の配置制約条件をモジュールに対して与える。
【0024】
自動配置配線処理は、第4処理における主な処理を行う。自動配置配線処理では、配置条件設定処理で設定された制約条件を遵守しながら、回路素子をモジュール形状候補内に配置する。ここで、自動配置配線処理では、回路素子がモジュール形状候補内に配置できない場合、モジュール形状候補の領域を超えた領域に回路素子を配置する。
【0025】
続いて、実施の形態1にかかる自動配置配線プログラムは、第5処理としてモジュール面積解析処理を行う(ステップS14及びステップS15)。モジュール面積解析処理では、レイアウト処理(ステップS13)において回路素子の配置が完了したモジュールに、モジュール形状候補で指定される領域内に収まらないレイアウトとなる違反モジュールが存在するか否か判断する。より具体的には、ステップS14の処理として、レイアウト処理(ステップS13)において回路素子の配置が完了したモジュールの面積を計算する。次いで、ステップS15の処理として、ステップS14で算出したレイアウト済みのモジュールの面積を用いて、レイアウト済みモジュールが、モジュール形状候補で指定される領域内に収まらないレイアウトとなる違反モジュールが存在するか否か判断する。ステップS15において、違反モジュールがないと判断された場合は、レイアウト処理(ステップS13)で生成されたレイアウト情報をレイアウトパターンデータとして出力する。
【0026】
一方、実施の形態1にかかる自動配置配線プログラムは、ステップS15の判断処理において、違反モジュールがあると判断された場合、ステップS16の第7処理を実行する。第7処理は、ループ条件判定処理である。ループ条件判定処理では、モジュール面積解析処理における判断結果と、ループ処理回数とに基づきループ処理を継続するか否かを判断する。より具体的には、ループ条件判定処理では、全てのモジュールが対応するモジュール形状候補の形状内で回路素子の配置配線処理を完了するまでモジュールPcell生成処理(ステップS10、第1処理)からレイアウト処理(ステップS13、第4処理)を制限回数に達するまで繰り返す。そして、ループ条件判定処理では、制限回数の処理においても全てのモジュールが対応するモジュール形状候補の形状内で回路素子の配置を完了できなかった場合、エラー内容を示すエラーレポートを生成し、記憶部15に格納する。なお、実施の形態1にかかる自動配置配線プログラムは、ループ条件判定処理においてループ回数が制限回数よりも小さいと判断された場合、面積制御ファイル更新処理(ステップS17)を行う。
【0027】
面積制御ファイル更新処理は、第6処理として行われるものである。面積制御ファイル更新処理では、違反モジュールの面積が違反モジュールに対応するモジュール形状候補の面積を超えている場合、モジュール形状解析処理S12で用いた面積値をより大きな値で更新する。ここで、面積制御ファイル更新処理では、デジタルモジュールに対しては、行の高さ単位で面積値を更新し、アナログモジュールに対しては、任意の面積変化幅及び任意の寸法変化幅で面積値を更新する。また、面積制御ファイル更新処理では、更新した面積値により面積制御ファイル中の面積値の設定を上書きする。このとき、面積制御ファイル中に、更新対象のモジュールに関する設定値がない場合、更新対象のモジュールの面積値を新たに追加する。
【0028】
ここで、ステップS11のモジュール属性解析処理の詳細について説明する。図4に実施の形態1かかる自動配置配線プログラムのモジュール属性解析処理の手順を示すフローチャートを示す。
【0029】
図4に示すように、モジュール属性解析処理では、回路図データを読み込み、モジュール毎にデザイン内の回路素子名(セル名)を抽出する(ステップS20)。
【0030】
次いで、抽出したセル名とセル種別定義ファイルとに基づき、デザイン内のセルをデバイス種別に分類し、デバイス種別毎にデバイス数をカウントする(ステップS21)。
【0031】
続いて、モジュール毎に各デバイス種別のデバイス数を参照して、モジュール毎にモジュール属性を決定する。より具体的には、モジュール内のセルのデバイス種別がstandard_cellのみである場合、当該モジュールのモジュール属性をデジタルモジュールに設定する(ステップS22、S23)。また、モジュール内のセルのデバイス種別がfet、bjt、resistor、capacitorのみである場合、当該モジュールのモジュール属性をアナログモジュールに設定する(ステップS24、S25)。また、fet、bjt、resistor、capacitor及びstandard_cellが混在している否かを判断する(ステップS26)。このステップS26において、fet、bjt、resistor、capacitor及びstandard_cellが混在していると判断された場合、ステップS28の処理に進む。一方、ステップS26において、fet、bjt、resistor、capacitor及びstandard_cellが混在した状態でない、つまり、当該モジュールの下位階層に属する他のモジュールが存在していると判断された場合、当該モジュールのモジュール属性を第3回路属性(例えば、ブロックモジュール)に設定する(ステップS27)。なお、ブロックモジュールは、自モジュール内に自モジュールよりも下位階層の他のモジュールを含むモジュールに対して設定されるモジュール属性である。
【0032】
ステップS28では、アナログ回路として利用されるfet、bjt、resistor、capacitorと、デジタル回路として利用されるstandard_cellとの数の大小を比較する。そして、fet、bjt、resistor及びcapacitorの数がstandard_cellの数よりも少ない場合、当該モジュールのモジュール属性をデジタルモジュールに設定する。一方、fet、bjt、resistor及びcapacitorの数がstandard_cellの数よりも多い場合、当該モジュールのモジュール属性をアナログモジュールに設定する。
【0033】
図4に示したモジュール属性解析処理により解析された各モジュールのモジュール属性について説明するための図を図5に示す。図5に示すように、ステップS11のモジュール属性解析処理を行うことで、階層構造を有する回路図データにおいて、自モジュールの下位階層に他のモジュールを有するモジュールについては、ブロックモジュールのモジュール属性が設定される。また、最下位階層に属するモジュールのモジュール属性は、アナログモジュールとデジタルモジュールとのいずれかに分類される。
【0034】
図5に示す例では、全体回路図を示す回路図データは、ブロックAからブロックCを有する。そして、ブロックAについては、下位階層にブロックD、Eを有することに基づきブロックモジュールが設定される。ブロックBについては、下位階層に他のモジュールを有さず、かつ、デジタル回路を有することにより、デジタルモジュールが設定される。ブロックCについては、下位階層に他のモジュールを有さず、かつ、アナログ回路を有することにより、アナログモジュールが設定される。ブロックDについては、下位階層に他のモジュールを有さず、かつ、デジタル回路を有することにより、デジタルモジュールが設定される。ブロックEについては、下位階層にブロックF、Gを有することに基づきブロックモジュールが設定される。ブロックFについては、下位階層に他のモジュールを有さず、かつ、アナログ回路を有することにより、アナログモジュールが設定される。ブロックGについては、下位階層に他のモジュールを有さず、かつ、アナログ回路を有することにより、アナログモジュールが設定される。
【0035】
続いて、ステップS12のモジュール形状解析処理について詳細に説明する。実施の形態1にかかる自動配置配線プログラムでは、デジタルモジュールに対するモジュール形状候補の生成方法と、アナログモジュールに対するモジュール形状候補の生成方法が異なる。そこで、以下の説明では、デジタルモジュールに対するモジュール形状候補の生成方法と、アナログモジュールに対するモジュール形状候補の生成方法と、を分けて説明する。
【0036】
まず、デジタルモジュールに対するモジュール形状候補の生成方法について説明する。図6に、実施の形態1かかる自動配置配線プログラムにおいて、デジタル回路の属性を示すデジタルモジュールに対するモジュール形状解析処理を行う場合の手順を示すフローチャートを示す。
【0037】
図6に示すように、デジタルモジュールに対するモジュール形状解析処理では、モジュール面積を一定として、モジュールの縦横の寸法が異なる複数のモジュール形状候補を生成する(ステップS31)。このとき、ステップS31では、モジュール面積をモジュール面積データ18に基づき決定する。このモジュール面積データ18は、面積制御ファイルに含まれるデータである。なお、モジュール面積は、初期状態ではモジュール内の回路規模等に基づいて算出される。ただし、このモジュール面積データ18の値は、図3のステップS17の面積制御ファイル更新処理において更新されることがある。また、ステップS31では、レイアウトデータ17に基づき処理対象のモジュールが上位階層のモジュール中で取り得る高さ及び幅の最大値と最小値とを算出し、複数のモジュール形状候補から取り得ない高さと幅のモジュール形状候補を除外する。
【0038】
続いて、実施の形態1にかかる自動配置配線プログラムでは、回路図データからモジュールを構成するためのセルの配置行の段数の候補(例えば、Row段数候補)を抽出する(ステップS32)。モジュールを構成するために必要な回路素子数は既知の値であるため、この回路素子数を含み得るRow段数の候補の数は所定数に限定される。
【0039】
続いて、実施の形態1にかかる自動配置配線プログラムでは、ステップS32で抽出されたRow段数候補毎にモジュールの最小幅及び最大幅を算出する(ステップS33)。つまり、実施の形態1にかかる自動配置配線プログラムでは、デジタルモジュールについては、Rowの高さを変化単位とすることでモジュール形状候補の数をさらに削減する。なお、ステップS32においてモジュールを構成するためのセルの配置列の数の候補(例えば、Column数候補)を抽出し、ステップS33においてColumn数候補に基づきモジュール形状候補の数を削減することも可能である。つまり、列の幅の大きさを変化単位としてモジュール形状候補の数を削減することも可能である。
【0040】
続いて、実施の形態1にかかる自動配置配線プログラムは、全てのRow段数候補について検証を行ったかを確認する(ステップS34)。ステップS34において、未検証のRow段数候補があった場合、再度ステップS32の処理を行う。一方、全てのRow段数候補について検証を行ったと判断された場合、ステップS33で選択された複数のモジュール形状候補を選択肢とすることを定義したモジュール形状制約を生成し(ステップS35)、モジュール形状制約を記述したモジュール形状制約ファイル19を生成する。
【0041】
ここで、ステップS31のモジュール形状候補の生成手順についてより詳細に説明する。まず、図7に面積値を一定として縦横の寸法を可変したモジュール形状候補の概略図を示す。図7に示すように、単に面積値を一定とした場合、縦横の寸法が異なるモジュール形状候補は無数に生成できる。そして、この無数のモジュール形状候補から、処理対象モジュールが取り得る幅の最小値Wmin1及び最大値Wmax1を満たさないモジュール形状候補を選択肢から除外する。図7に示す例では、点線で示すモジュール形状候補が除隊対象のモジュール形状候補である。
【0042】
続いて、図8にモジュールを構成し得る回路素子を含むモジュール形状候補の概略図を示す。図8に示すように、デジタルモジュールでは、回路素子がマトリクス状に配置されため、行の高さTrowは一定の値になる。そして、実施の形態1にかかる自動配置配線プログラムでは、行の高さTrowを変化単位として縦の寸法が変化するモジュール形状候補をレイアウトに用いるモジュール形状候補として選択する。図8に示す例では、点線で記載したモジュール形状候補については、回路素子が配置される位置がモジュール形状候補の外の領域にはみ出す、又は、変化単位が行の高さTrowにならないため、これは選択肢から除外する。そして、ステップS33では、モジュール形状候補の最小幅Wmin2及びモジュール形状候補の最大幅Wmax2を算出する。
【0043】
続いて、図9に、選択されたモジュール形状候補の概略図を示す。図9に示すように、選択されたモジュール形状候補は、図7に示したモジュール形状候補に比べて数が格段に少なくなる。
【0044】
次に、アナログモジュールに対するモジュール形状解析処理について説明する。図10に、実施の形態1かかる自動配置配線プログラムにおいて、アナログ回路の属性を示すアナログモジュールに対するモジュール形状解析処理を行う場合の手順を示すフローチャートを示す。
【0045】
図10に示すように、アナログモジュールに対するモジュール形状解析処理では、モジュール面積を一定として、モジュールの縦横の寸法が連続的に変化する複数のモジュール形状候補を生成する(ステップS41)。このとき、ステップS41では、モジュール面積をモジュール面積データ18に基づき決定する。このモジュール面積データ18は、面積制御ファイルに含まれるデータである。なお、モジュール面積は、初期状態ではモジュール内の回路規模等に基づいて算出される。ただし、このモジュール面積データ18の値は、図3のステップS17の面積制御ファイル更新処理において更新されることがある。また、ステップS41では、レイアウトデータ17に基づき処理対象のモジュールが上位階層のモジュール中で取り得る高さ及び幅の最大値と最小値とを算出し、複数のモジュール形状候補から取り得ない高さと幅のモジュール形状候補を除外する。つまり、ステップS41の処理は、ステップS31の処理と実施的に同じ処理である。
【0046】
続いて、実施の形態1にかかる自動配置配線プログラムでは、回路図データからモジュール形状を決定する形状決定要素を抽出する(ステップS42)。ステップS42における形状決定要素は、回路図データ内に含まれる配置制約に該当する。この配置制約は、例えば各種レイアウト属性(制約)のように、レイアウト自動生成ツールが一般的に備えているものである。一例としては、例えば、デバイスの配置方向などを規定するデバイスジェネレーション制約や、差動デバイスなどの対称配置を規定するマッチング制約や、複数デバイスのグループ配置を規定するグリッドフォーム制約や、デバイスの相対配置を規定するセルプラン制約など様々なものが挙げられる。
【0047】
続いて、実施の形態1にかかる自動配置配線プログラムでは、ステップS42で抽出された形状決定要素毎にモジュールの最小幅及び最大幅を算出する(ステップS43)。つまり、実施の形態1にかかる自動配置配線プログラムでは、アナログモジュールについては、形状決定要素を配置できないモジュール形状候補をモジュール形状候補の選択肢から除外することでモジュール形状候補の数をさらに削減する。
【0048】
続いて、実施の形態1にかかる自動配置配線プログラムは、全ての形状決定要素について検証を行ったかを確認する(ステップS44)。ステップS44において、未検証の形状決定要素があった場合、再度ステップS42の処理を行う。一方、全ての形状決定要素について検証を行ったと判断された場合、ステップS43で選択された複数のモジュール形状候補を選択肢とすることを定義したモジュール形状制約を生成し(ステップS45)、モジュール形状制約を記述したモジュール形状制約ファイル19を生成する。
【0049】
ここで、図11にモジュール中の形状決定要素を配置し得るモジュール形状候補の概略図を示す。図11に示す例では、5個のデバイスM1〜M5をある一方向に整列配置するような配置制約が与えられた場合のモジュール形状候補の選択例である。この場合、この制約を満たすためにはモジュールの一方の辺に最小幅Wmin、他方の辺に最小幅Hminを最低でも確保する必要がある。したがって、各辺がこれらを下回る選択肢は現実解として実現しないため選択肢から除外することができる。図11に示す例では、選択肢を4ケースに限定することができる。そして、ステップS43では、モジュール形状候補の最小幅Wmin3及びモジュール形状候補の最大幅Wmax3を算出する。
【0050】
上記説明より、実施の形態1にかかる自動配置配線プログラムは、上位階層のモジュールのレイアウト、回路図データ及びモジュール面積データに基づきモジュール形状候補の数を削減することで、上位階層のレイアウトパターンに適合したモジュール形状の探索にかかる時間を削減することができる。
【0051】
また、実施の形態1にかかる自動配置配線プログラムでは、デジタル回路を主に含むデジタルモジュールについては、マトリクス状に配置される回路素子の行の高さ、又は、列の幅を変化単位として縦横の寸法が異なる複数のモジュール形状候補を生成する。また、実施の形態1にかかる自動配置配線プログラムでは、アナログ回路を主に含むアナログモジュールについては、連続的に縦横の寸法が変化する複数のモジュール形状候補を生成する。つまり、モジュール内に配置される回路の属性に応じてモジュール形状候補を選択する。このようにモジュール形状候補を生成することで、デジタルモジュールを配置可能なモジュール形状候補の数をアナログモジュールのモジュール形状候補の数よりも削減することができるため、デジタルモジュールの形状の収束を早めることができる。
【0052】
また、実施の形態1にかかる自動配置配線プログラムでは、図3のステップS17の面積制御ファイルの更新処理においても、モジュール属性を考慮した面積値の更新を行う。これにより、実施の形態1にかかる自動配置配線プログラムでは、デジタルモジュールについて、更新後のモジュール面積を超えてレイアウト処理がなされる可能性を小さくすることができる。つまり、実施の形態1にかかる自動配置配線プログラムによれば、レイアウトにかかる時間を短縮することができる。
【0053】
また、実施の形態1にかかる自動配置配線プログラムでは、モジュール属性を考慮してモジュール形状候補を選択することで、レイアウトの面積効率を高めることができる。デジタルモジュールに対してもアナログモジュールと同じモジュール形状候補の生成方法を適用した場合、モジュールの寸法が行の高さの単位又は列の幅の単位と関係なく設定されるため、無駄な領域が生じる可能性がある。そこで、一例として、実施の形態1にかかる自動配置配線プログラムを用いて生成した半導体装置のレイアウトパターンを図12に示し、アナログモジュールに対するモジュール形状候補の生成方法のみを適用して生成した半導体装置1のレイアウトパターンを図13に示す。なお、図12、図13に示す例は、いずれも図5に示した階層構造と同じ階層構造を有する回路図についてのレイアウトである。図12に示すように、実施の形態1にかかる半導体装置では、デッドスペースを生じることなく密に回路が配される。一方、図13に示す例では、ブロックBにおいてセルの行の高さとモジュール形状の不適合が生じることで、デッドスペースが生じている。つまり、実施の形態1にかかる自動配置配線プログラムによれば、モジュール内の回路の配置特性をモジュール属性として分類することでレイアウトの面積効率を高めることができる。また、デッドスペースが生じてしまった場合、チップ面積が大きくなるが、実施の形態1にかかる自動配置配線プログラムでは、デッドスペースを削減してチップ面積を小さくできる効果もある。
【0054】
なお、上記実施の形態では、自動配置配線プログラムによりレイアウトを行う方法について説明したが、自動配置配線プログラムにより実現される機能を有するハードウェアによって上記レイアウト方法を実行することも可能である。そこで、実施の形態1にかかる自動配置配線装置のブロック図を図14に示す。
【0055】
図14に示すように、実施の形態1にかかる自動配置配線装置は、第1処理部(例えば、モジュールPcell生成部20)、第2処理部(例えば、モジュール属性解析部21)、第3処理部(例えば、モジュール形状解析部22)、第4処理部(例えば、レイアウト処理部23)、第5処理部(例えば、モジュール面積解析部24)、第7処理部(例えば、ループ条件判定部25)、第6処理部(例えば、面積制御ファイル更新処理部26)を有する。
【0056】
モジュールPcell生成部20は、ステップS10のモジュールPcell生成処理を実行する。モジュール属性解析部21は、ステップS11のモジュール属性解析処理を実行する。モジュール形状解析部22は、ステップS12のモジュール形状候補解析処理を実行する。レイアウト処理部23は、ステップS13のレイアウト処理を実行する。また、レイアウト処理部23は、配置条件設定部23a及び自動配置配線処理部23bを有する。配置条件設定部23aは、ステップS13aの配置条件設定処理を行う。自動配置配線処理部23bは、ステップS13bの自動配置配線処理を行う。モジュール面積解析部24は、ステップS14のモジュール面積解析処理と、ステップS15の判断処理を行う。ループ条件判定部25は、ステップS16のループ条件判定処理を行う。面積制御ファイル更新処理部26は、ステップS17の面積制御ファイル更新処理を行う。
【0057】
実施の形態2
実施の形態2にかかる自動配置配線プログラムは、実施の形態1にかかる自動配置配線プログラムに、モジュール属性に応じて自動配置配線ツールを使い分ける機能を追加するものである。実施の形態2にかかる自動配置配線プログラムでは、図3のレイアウト処理(ステップS13)において、モジュール属性に応じた自動配置配線ツールの選択処理を追加する。そこで、実施の形態2にかかる自動配置配線プログラムにおけるレイアウト処理の動作を示すフローチャートを図15に示す。
【0058】
図15に示すように、実施の形態2にかかる自動配置配線プログラムでは、ステップS13aの配置条件設定処理として、ステップS51〜S54の処理を行う。ステップS51の処理では、モジュール属性記述ファイルに記述されたモジュール毎のモジュール属性に基づき処理対象のモジュールがどのような属性を有しているかを判断する。
【0059】
そして、ステップS51において、モジュール属性がアナログモジュールであると判断された場合、当該モジュールに対しては、アナログ用制約条件を設定する(ステップS52)。このアナログ用制約条件としては、例えば、デバイスの配置方向などを規定するデバイスジェネレーション制約や、差動デバイスなどの対称配置を規定するマッチング制約や、複数デバイスのグループ配置を規定するグリッドフォーム制約や、デバイスの相対配置を規定するセルプラン制約など様々なものが挙げられる。
【0060】
また、ステップS51において、モジュール属性がブロックモジュールであると判断された場合、当該モジュールに対しては、ブロックモジュール用制約条件を設定する(ステップS53)。なお、ブロックモジュールは、自モジュール内に自モジュールよりも下位階層の他のモジュールを含むモジュールに対して設定されるモジュール属性である。また、ブロックモジュール用制約条件としては、例えば、下位階層モジュールの端子配置制約条件、ブロック間配線の配置制約条件等が挙げられる。
【0061】
また、ステップS51において、モジュール属性がデジタルモジュールであると判断された場合、当該モジュールに対しては、デジタル用制約条件を設定する(ステップS54)。このデジタル用制約条件としては、例えば、モジュール形状候補の生成で用いたRow段数の値が挙げられる。
【0062】
そして、実施の形態2にかかる自動配置配線プログラムでは、ステップS13bの自動配置配線処理において、実際の自動配置配線処理を行う前に、第9処理(例えば、自動配置配線ツールの選択処理)を行う。図15に示す例では、ステップS61〜S69において、自動配置配線ツールの選択を行い、ステップS70で自動配置配線処理を実行する。
【0063】
より具体的には、アナログモジュールに対しては、ステップS61において制約条件の記述、或いは、利用者の選択処理に応じて利用ツールを選択する。そして、ステップS61において選択されたツールを自動配置配線処理に利用するツールとして設定する(ステップS62、S63)。このステップS62、S63で設定される自動配置配線ツールは、アナログ回路の自動配置配線を得意とするツールである。
【0064】
ブロックモジュールに対しては、ステップS64において制約条件の記述、或いは、利用者の選択処理に応じて利用ツールを選択する。そして、ステップS64において選択されたツールを自動配置配線処理に利用するツールとして設定する(ステップS65、S66)。このステップS65、S66で設定される自動配置配線ツールは、ブロック間の自動配置配線処理を得意とする自動配置配線ツールである。なお、ブロックモジュールに対しては、ブロック間の自動配置配線ツールがない場合は、このようなツール選択処理を行わないとすることもできる。
【0065】
デジタルモジュールに対しては、ステップS67において制約条件の記述、或いは、利用者の選択処理に応じて利用ツールを選択する。そして、ステップS67において選択されたツールを自動配置配線処理に利用するツールとして設定する(ステップS68、S69)。このステップS68、S69で設定される自動配置配線ツールは、デジタル回路の自動配置配線を得意とするツールである。
【0066】
上記説明より、実施の形態2にかかる自動配置配線プログラムでは、モジュール属性に応じて回路素子の配置配線処理を行うツールを選択し、選択したツールを用いてモジュール毎に回路素子の配置配線処理を行う。このような選択処理により、アナログ回路、デジタル回路、ブロック間配置をそれぞれ得意とするツールによりそれぞれの回路に対する自動配置配線が可能になる。また、回路の配置特性に応じたツールを利用することで、処理時間の短縮及び面積効率の向上を実現することができる。
【0067】
例えば、デジタル回路は、通常アナログ回路よりも回路素子数が多くなる。そのため、デジタル回路に対して、アナログ回路用の自動配置配線ツールを利用した場合、デジタル回路の回路素子の1つ1つをアナログ回路として配置するため、レイアウトに莫大な時間を要する。近年の半導体装置では、アナログ回路を制御するための制御ロジック回路が大きくなる傾向があるため、デジタル回路に対してデジタル回路用の自動配置配線ツールを利用するメリットは大きい。
【0068】
また、アナログ回路は、良好な回路特性を得るために回路素子の配置に制約が多い、しかし、デジタル回路用自動配置配線ツールでは、このような配置制約を扱うことを苦手とするものが多いため、デジタル回路用自動配置配線ツールを利用した場合、アナログ回路を適切にレイアウトできない場合がある。このような場合は、修正工程において、設計者が手作業でレイアウトを修正する必要があり、工程に要する時間が多く必要になる問題がある。このようなことからも、アナログ回路に対してはアナログ回路用の自動配置配線ツールを利用することのメリットは大きい。
【0069】
また、アナログ回路用に設計された自動配置配線ツールを利用した場合、デジタル回路の配置制約条件をツールで処理することが難しく、レイアウト面積が、大きくなる傾向がある。逆に、デジタル回路用に設計された自動配置配線ツールを利用した場合、アナログ回路の配置制約条件をツールで処理することが難しく、レイアウト面積が、大きくなる傾向がある。このようなことからも、モジュール属性に応じて利用する自動配置配線ツールを使い分けることのメリットは大きい。
【0070】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0071】
1 演算部
2 表示部
3 操作入力部
10〜15 記憶部
17〜19、30 ファイル
20 モジュールPcell生成部
21 モジュール属性解析部
22 モジュール形状解析部
23 レイアウト処理部
23a 配置条件設定部
23b 自動配置配線処理部
24 モジュール面積解析部
25 ループ条件判定部
26 面積制御ファイル更新処理部

【特許請求の範囲】
【請求項1】
演算部で実行され、記憶部から読み出した回路設計情報を用いて前記回路設計情報に対応したレイアウトパターンを生成する自動配置配線プログラムであって、
前記自動配置配線プログラムは、
前記回路設計情報から回路の配置単位を示すモジュールを抽出する第1処理と、
前記モジュール毎に、前記モジュールに含まれる回路の属性を示すモジュール属性を設定する第2処理と、
前記モジュール毎に、面積値を一定として縦横の寸法が異なる複数のモジュール形状候補を生成する第3処理と、
前記複数のモジュール形状候補から処理対象の前記モジュールの上位階層に位置する上位モジュールの形状に適合するモジュール形状候補を探索し、探索したモジュール形状候補に対して前記モジュールの回路素子を配置して前記レイアウトパターンを生成する第4処理と、を有し、
前記第3処理では、
前記モジュール内に配置される前記回路素子が、大きさが予め決められ、マトリクス状に配置される特徴を有することを示す第1回路属性の前記モジュールに対しては、行の高さ又は列の幅を前記縦横の寸法の変化単位とする前記複数のモジュール形状候補を生成し、
前記モジュール内に配置される前記回路素子が、大きさ及び配置が任意に設定される特徴を有することを示す第2回路属性の前記モジュールに対しては、前記縦横の寸法が連続的に変化する前記複数のモジュール形状候補を生成する自動配置配線プログラム。
【請求項2】
前記第4処理において前記回路素子の配置が完了したモジュールに、前記モジュール形状候補で指定される領域内に収まらないレイアウトとなる違反モジュールが存在するか否か判断する第5処理と、
前記違反モジュールの面積が前記違反モジュールに対応するモジュール形状候補の面積を超えている場合、前記第3処理で用いた前記面積値をより大きな値で更新する第6処理と、を有し、
前記第6処理は、
前記第1回路属性を示す前記モジュールに対しては、行の高さ単位で前記面積値を更新し、
前記第2回路属性を示す前記モジュールに対しては、任意の面積変化幅及び任意の寸法変化幅で前記面積値を更新する請求項1に記載の自動配置配線プログラム。
【請求項3】
前記第5処理において、全ての前記モジュールが対応するモジュール形状候補の前記面積値内で前記回路素子の配置配線処理を完了するまで前記第1処理から前記第4処理を制限回数に達するまで繰り返し、前記制限回数の処理においても全ての前記モジュールが前記対応する基準値を満たさない場合、エラー内容を示すエラーレポートを生成する第7処理を有する請求項2に記載の自動配置配線プログラム。
【請求項4】
前記第4処理は、前記モジュールの前記回路素子の配置に制限を与える配置制約条件を前記モジュール属性に応じて設定する第8処理を含む請求項1乃至3のいずれか1項に記載の自動配置配線プログラム。
【請求項5】
前記第4処理は、前記モジュール属性に応じて前記回路素子の配置配線処理を行うツールを選択し、選択したツールを用いて前記モジュール毎に前記回路素子の前記配置配線処理を行う第9処理を含む請求項4に記載の自動配置配線プログラム。
【請求項6】
前記モジュール属性には、前記上位モジュールに対して設定される第3回路属性が含まれ、
前記第9の処理は、前記モジュールが前記第3回路属性を示す場合、前記モジュール間の配線処理を行うツールを選択する請求項5に記載の自動配置配線プログラム。
【請求項7】
前記第1回路属性は、前記モジュール内に配置される回路がデジタル回路を主に含むことを示す属性であり、
前記第2回路属性は、前記モジュール内に配置される回路がアナログ回路を主に含むことを示す属性である請求項1乃至6のいずれか1項に記載の自動配置配線プログラム。
【請求項8】
回路設計情報から回路の配置単位を示すモジュールを抽出する第1処理部と、
前記モジュール毎に、前記モジュールに含まれる回路の属性を示すモジュール属性を設定する第2処理部と、
前記モジュール毎に、面積値を一定として縦横の寸法が異なる複数のモジュール形状候補を生成する第3処理部と、
前記複数のモジュール形状候補から処理対象の前記モジュールの上位階層に位置する上位モジュールの形状に適合するモジュール形状候補を探索し、探索したモジュール形状候補に対して前記モジュールの回路素子を配置してレイアウトパターンを生成する第4処理部と、を有し、
前記第3処理部では、
前記モジュール内に配置される前記回路素子が、大きさが予め決められ、マトリクス状に配置される特徴を有することを示す第1回路属性の前記モジュールに対しては、行の高さ又は列の幅を縦横の寸法の変化単位とする前記複数のモジュール形状候補を生成し、
前記モジュール内に配置される前記回路素子が、大きさ及び配置が任意に設定される特徴を有することを示す第2回路属性の前記モジュールに対しては、前記縦横の寸法が連続的に変化する前記複数のモジュール形状候補を生成する自動配置配線装置。
【請求項9】
演算部で実行されるプログラムを用いて回路設計情報に対応したレイアウトパターンを生成する自動配置配線方法であって、
前記回路設計情報から回路の配置単位を示すモジュールを抽出する第1ステップと、
前記モジュール毎に、前記モジュールに含まれる回路の属性を示すモジュール属性を設定する第2ステップと、
前記モジュール毎に、面積値を一定として縦横の寸法が異なる複数のモジュール形状候補を生成する第3ステップと、
前記複数のモジュール形状候補から処理対象の前記モジュールの上位階層に位置する上位モジュールの形状に適合するモジュール形状候補を探索し、探索したモジュール形状候補に対して前記モジュールの回路素子を配置して前記レイアウトパターンを生成する第4ステップと、を有し、
前記第3ステップでは、
前記モジュール内に配置される前記回路素子が、大きさが予め決められ、マトリクス状に配置される特徴を有することを示す第1回路属性の前記モジュールに対しては、行の高さ又は列の幅を縦横の寸法の変化単位とする前記複数のモジュール形状候補を生成し、
前記モジュール内に配置される前記回路素子が、大きさ及び配置が任意に設定される特徴を有することを示す第2回路属性の前記モジュールに対しては、前記縦横の寸法が連続的に変化する前記複数のモジュール形状候補を生成する自動配置配線方法。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−84211(P2013−84211A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−225055(P2011−225055)
【出願日】平成23年10月12日(2011.10.12)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】