説明

回路モデル生成装置

【課題】 本発明の課題は、素子データを含むアナログ回路モデルを生成することを目的とする。
【解決手段】 上記課題は、回路図データとレイアウトデータとを格納する記憶領域と、前記レイアウトデータから寄生素子に係る素子データを抽出する抽出手段と、前記回路図データに前記素子データを含む回路モデルをハードウェア記述言語によって生成する回路モデル生成手段とを有する回路モデル生成装置により達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、素子データを含むアナログ回路モデルを生成することに関する。
【背景技術】
【0002】
大規模回路の全体検証時において、トランジスタレベルで記述されたアナログ回路をHDL(ハードウェア記述言語)やアナログHDLでモデル化し、シミュレーションを高速に行う手法が広く一般に行われている。従来より、仕様書又は回路図からアナログ回路のモデルを作成するのが一般的であった。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−163455号公報
【特許文献2】特開2007−58592号公報
【特許文献3】特開平5−149997号公報
【特許文献4】特開平9−114871号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
半導体集積回路の微細化、高機能化により精度が高い検証が要求される場面が増えてきている。しかしながら、従来より行われてきた仕様書又は回路図から作成したアナログ回路のモデルでは、回路特性及び遅延情報等が含まれていないため、精度が不十分であった。
【課題を解決するための手段】
【0005】
開示の技術は、回路図データとレイアウトデータとを格納する記憶領域と、前記レイアウトデータから寄生素子に係る素子データを抽出する抽出手段と、前記回路図データに前記素子データを含む回路モデルをハードウェア記述言語によって生成する回路モデル生成手段とを有する回路モデル生成装置のように構成される。
【0006】
また、上記課題を解決するための手段として、コンピュータに上記回路モデル生成装置として機能させるためのプログラム、そのプログラムを記録した記録媒体、及び回路モデル生成方法とすることもできる。
【発明の効果】
【0007】
開示の技術では、回路特性及び遅延情報等を含む回路モデルを自動的に生成することができる。
【図面の簡単な説明】
【0008】
【図1】本実施例に係るアナログ回路モデルを生成するための基本機能構成を示す図である。
【図2】回路モデル生成装置のハードウェア構成を示す図である。
【図3】回路モデル生成装置の機能構成例を示す図である。
【図4】素子モデルのHDL記述例を示す図である。
【図5】インバータ回路を適用した場合の実施例について説明するための図である。
【図6】ノード追加部によるノードの置き換え処理を説明するためのフローチャート図である。
【図7】インバータ回路を適用した場合のノードの置き換え処理を説明するための図である。
【図8】回路モデル生成装置の機能構成の他の例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態を図面に基づいて説明する。図1は、本実施例に係るアナログ回路モデルを生成するための基本機能構成を示す図である。図1において、回路モデル生成装置100は、素子データ抽出部30と、アナログ回路モデル生成部31とを有する。レイアウトデータ21と、ベースモデル22と、素子データ24と、アナログ回路モデル27とが記憶領域に格納される。
【0010】
素子データ抽出部30は、素子の接続情報、寄生容量、配線抵抗などを含むレイアウトデータ21を読み込んで、LSI(半導体集積回路)の寄生素子に係る素子データ24を抽出する処理部である。抽出された素子データ24は、回路モデル生成装置100の記憶領域に格納される。
【0011】
アナログ回路モデル生成部31は、素子データ抽出部30によって抽出された素子データ24と、ベースモデル22とを結合して、アナログ回路モジュールをHDL(ハードウェア記述言語)で表現することによって、素子データを含むアナログ回路モデルを生成する処理部である。アナログ回路モジュールをハードウェア記述言語で記述したモデルをAHDLモデルとも言う。
【0012】
レイアウトデータ21は、回路図に基づいて作成され、LSIに構成される各アナログ回路モジュール内の各素子の配置に係る素子配置データを有する。レイアウトデータ21は、アナログ回路モジュールの寄生素子に関する素子データ24を抽出するために使用される。
【0013】
ベースモデル22は、LSIの回路図データから作成され、LSIに構成されるアナログ回路モジュール毎に動作をハードウェア記述言語で表したモデルである。
【0014】
回路モデル生成装置100として機能するためのハードウェア構成について、図2で説明する。図2は、回路モデル生成装置のハードウェア構成を示す図である。図2において、回路モデル生成装置100は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し、バスBに接続される。
【0015】
CPU11は、メモリユニット12に格納されたプログラムに従って、回路モデル生成装置100を制御する。メモリユニット12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
【0016】
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、ユーザが回路モデル生成装置100が処理を行なうための必要な各種情報を入力するために用いられる。
【0017】
通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
【0018】
回路モデル生成装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって回路モデル生成装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本実施例に係る処理を実現するプログラムは、通信ユニット16によってネットワークを介してダウンロードし、記憶装置17にインストールするようにしても良い。また、USB対応の回路モデル生成装置100であれば、USB接続可能な外部記憶装置からインストールするようにしても良い。更に、SDカード等のフラッシュメモリ対応の回路モデル生成装置100であれば、そのようなメモリカードからインストールするようにしても良い。
【0019】
上述した図1に示す基本機能構成に基づく、図2に示すハードウェア構成を有する回路モデル生成装置100における実施例について以下に詳述する。
【0020】
図3は、回路モデル生成装置の機能構成例を示す図である。図3中、図1と同様の構成部には同一符号を付し、その説明を省略する。図3において、回路モデル生成装置100は、レイアウト情報抽出部40と、ノード追加部41と、素子データ結合部42とを有する。CPU11が、対応するプログラムを実行することによってこれら処理部40から42として機能する。
【0021】
図3に示す機能構成例では、図1の素子データ抽出部30が、レイアウト情報抽出部40に相当し、図1のアナログ回路モデル生成部31が、ノード追加部41と素子データ結合部42とで構成される実施例を示している。
【0022】
回路図データ20と、レイアウトデータ21と、ベースモデル22と、ノード追加済ベースモデル25と、素子モデル26と、アナログ回路モデル27とが記憶領域に格納される。記憶領域とは、メモリユニット12又は/及び記憶装置17の一部又は全部である。以下、図3を参照し、機能構成及び処理手順について説明する。
【0023】
処理手順(1)において、抵抗値、容量値などの素子パラメータをインスタンス時に指定できるように、アナログの素子モデルをHDLで作成した素子モデル26を記憶領域に格納しておく。
【0024】
処理手順(2)において、回路図データ20からノードが一致するレイアウトデータ21とベースモデル22とを作成し、記憶領域に格納する。
【0025】
処理手順(3)において、レイアウト情報抽出部40は、回路データ20に基づいて作成されたレイアウトデータ21からベースモデル22と同一のノードを持つレイアウト情報を取得しベースモデル22とを比較することによって、寄生素子を抽出し、抽出された寄生素子によって追加されるノードに係るノード追加情報23と、抽出された寄生素子に係る素子データ24とを記憶領域に出力する。
【0026】
ノード追加情報23には、追加ノード名、ノードの追加位置などの情報を含む。素子データ24は、レイアウト情報で得られる配置配線情報から抽出した配線遅延、寄生容量などの各値を素子パラメータとし、各値を持つ素子で表した場合にそれら各素子の両端のノード名などの接続情報を含む。
【0027】
処理手順(4)において、ノード追加部41は、記憶領域に出力されたノード追加情報23を用いて、ベースモデル22にノード情報を追加したノード追加済ベースモデル25を記憶領域に出力する。
【0028】
処理手順(5)において、素子データ結合部42は、予め用意した素子モデル26を用いて、記憶領域に出力された素子データ23に基づいて、素子パラメータを指定したインスタンスを作成し、そのインスタンスを指定するHDLの記述をノード追加済ベースモデル25に挿入することによって、各素子を表すインスタンスとベースモデルとを結合させる。
【0029】
処理手順(6)において、素子データ結合部42によって、素子のインスタンスとベースモデルとが結合されたアナログ回路モデル27が、記憶領域に出力する。
【0030】
図4は、素子モデルのHDL記述例を示す図である。図4(A)では、抵抗素子をHDLで記述することによってモデル化した例を示し、図4(B)では、容量素子をHDLで記述することによってモデル化した例を示している。
【0031】
抵抗素子と容量素子の寄生素子毎にモデルを作成し、素子モデル26として記憶領域に格納しておく。
【0032】
次に、インバータ回路を、図3に示す機能構成及び処理手順によってモデル化されるアナログ回路として適用した場合の実施例について詳述する。図5は、インバータ回路を適用した場合の実施例について説明するための図である。
【0033】
図5において、レイアウト情報抽出部40は、回路図データ20に含まれるインバータ回路のINV回路図データ4と、インバータ回路のレイアウトデータであるINVレイアウトデータ5とから、寄生素子の抵抗値及び容量値を抽出した寄生素子抽出データ6を得る。
【0034】
寄生素子抽出データ6は、INVレイアウトデータ5を参照することによりレイアウトに寄生する抵抗値及び容量値を抽出し、INV回路図データ4に対して、抽出した抵抗値及び容量値をINV回路図データ4に付加することによって、寄生素子の抵抗値及び容量値を含めてインバータ回路を表現した回路図である。この例における寄生素子抽出データ6では、抵抗値Rp1、Rp2、及びRp3が抽出され、また、容量値Cp1、Cp2、及びCp3が抽出されたことを示している。また、寄生素子抽出データ6では、抽出された寄生素子が接続されるノードN1、N2、及びN3が示される。
【0035】
そして、レイアウト情報抽出部40は、寄生素子抽出データ6と、インバータ回路のベースモデルであるINVベースモデル7をベースモデル22から読み出して、追加すべきノードに係るノード追加情報23と、抽出された寄生素子に係る素子データ24とを作成し記憶領域に格納する。
【0036】
ノード追加部41は、ノード追加情報23を参照して、INVベースモデル7に対して、追加ノードのノード名8aを追加して追加ノードを宣言し、機能記述部8d内においてノード記述部分を追加ノードのノード名8b及び8cで置き換えて、ノード追加済INVベースモデル8として記憶領域に出力する。
【0037】
この例において、寄生素子抽出データ6で示されるように、入力IN側に複数のノードN1及びN2が抽出された場合、MOSトランジスタに最も近いノードN2が、機能記述部8d内で入力INと置き換える追加ノードとなる。
【0038】
また、この例では出力OUT側にはノードN3が一つであるが、複数のノードが抽出された場合、MOSトランジスタに最も近い出力OUT側のノードが、機能記述部8d内で出力OUTと置き換える追加ノードとなる。
【0039】
このように、寄生素子の抽出によって複数のノードが追加される場合、既存ノードが追加ノードによって分割される、と言う。上述した例では、入力IN及び出力OUTが既存ノードに相当し、寄生素子の抽出によって、入力INが追加ノードN1及びN2で分割され、出力OUTが追加ノードN3で分割される。
【0040】
素子データ結合部42は、素子データ24を参照することによって、抵抗値Rp1、Rp2、及びRp3を素子パラメータとして指定して、各抵抗値に関して素子モデル26の抵抗素子をINVベースモデル7内にインスタンスする。また、同様に、素子データ結合部42は、容量値Cp1、Cp2、及びCp3を素子パラメータとして指定して、各容量値に関して素子モデル26の容量素子をINVベースモデル7内にインスタンスする。このようにして、インバータ回路のレイアウトに寄生する素子に関し、その抵抗値及び容量値を含むINV回路モデル9が記憶領域に出力される。
【0041】
INV回路モデル9において、抵抗インスタンス9aは、抵抗値Rp1、Rp2、及びRp3の各々を素子パラメータとして指定したインスタンスであり、容量インスタンス9bは、容量値Rp1、Rp2、及びRp3の各々を素子パラメータとして指定したインスタンスである。
【0042】
ノード追加部41によって行われるベースモデルの機能記述部内のノードの置き換え処理について図6及び図7で説明する。図6は、ノード追加部によるノードの置き換え処理を説明するためのフローチャート図である。図7は、インバータ回路を適用した場合のノードの置き換え処理を説明するための図である。図6において、図7を参照し、インバータ回路の場合を例示しつつノードの置き換え処理について説明する。
【0043】
ノード追加部41は、回路図データ20と寄生素子抽出データ6とをテキスト記述に夫々変換する(ステップS21)。
【0044】
図7の例において、INV回路図データ4は、テキスト記述4aに変換され記憶領域に格納される。また、寄生素子抽出データ6は、テキスト記述6aに変換され記憶領域に格納される。変換されたテキスト記述4aとテキスト記述6aとは、ノード名に対応させて接続情報とその値とを含む同じ記述方法に従って記述される。
【0045】
INV回路図データ4では、MOSトランジスタM1及びM2夫々に関して、例えば、
「M1 VDD IN OUT VDD pmos」
「M2 OUT IN GND GND nmos」
のように記述され記憶領域に出力される。
【0046】
寄生素子抽出データ6においても、MOSトランジスタM1及びM2の夫々に関して、同じ記述方法に従って記述されるが、寄生素子の抽出によってノードが追加されることにより、
「M1 VDD N2 N3 VDD pmos」
「M2 N3 N2 GND GND nmos」
のように記述される。寄生素子抽出データ6に関しては、更に、抽出された抵抗R1、R2、及びR3の夫々について、接続情報と対応する抵抗値Rp1、Rp2、及びRp3とが記述され、また、抽出された容量C1、C2、及びC3の夫々について、接続情報と対応する容量値Cp1、Cp2、及びCp3とが記述されて記憶領域に出力される。
【0047】
テキスト記述への変換後、ノード追加部41は、ベースモデル22の機能記述部内にあるノードをチェックする(ステップS22)。図7の例において、ノード追加部41は、INVベースモデル7の機能記述部8d内にノード名8b及び8c(「IN」及び「OUT」)を検出する。
【0048】
そして、ノード追加部41は、回路図データ22のテキスト記述において、ベースモデル22の機能記述部内にあるノードを特定する(ステップS23)。図7の例において、ノード追加部41は、INV回路図データ4のテキスト記述4aにおいて、INVベースモデル7の機能記述部8d内に検出したノード名8b及び8c(「IN」及び「OUT」)を特定する。この例では、ノード名「IN」及び「OUT」共にテキスト記述4aのMOSトランジスタM1及びM2の夫々の記述内に存在している。
【0049】
続けて、ノード追加部41は、寄生素子抽出データ6のテキスト記述において、ステップS23で特定したノードが追加ノードに置き換わっているか否かを判断する(ステップS24)。図7の例において、ノード追加部41は、寄生素子抽出データ6のテキスト記述6aから、INV回路図データ4のテキスト記述4aのMOSトランジスタM1及びM2の夫々の記述内の「IN」及び「OUT」に相当する部分のノード名を取得して、対応するノード名毎に比較する。比較することによって、ノード追加部41は、「IN」及び「OUT」に相当する部分のノード名は「N2」及び「N3」であることが分かり、追加ノードで置き換わっていると判断する。
【0050】
ノード追加部41は、追加ノードへの置き換えが在ったか否かを判断する(ステップS25)。置き換えが無かった場合、この処理を終了する。置き換えが在った場合、ノード追加部41は、ベースモデル22の機能記述部内にあるステップS23で特定したノードを、ステップS24で判断した追加ノードで置き換える(ステップS26)。図7の例において、INVベースモデル7の機能記述部8d内のノード名8bと8cについて、記述「IN」と「OUT」を、対応する追加ノード名の「N2」と「N3」へと夫々に置き換える。このようにして、INVベースモデル7に対して追加ノード名に置き換えたノード追加済INVベースモデル8が記憶領域に出力される。
【0051】
LSIのレイアウトデータ21の全てから寄生素子を抽出すると大きな処理負荷が掛かるため、精度が重要な機能のレイアウト範囲をユーザが予め指定し、その範囲の寄生素子のみを抽出してアナログ回路モデルに追加するようにした機能構成を、図8に示す。図8は、回路モデル生成装置の機能構成の他の例を示す図である。図8中、図3と同様の構成部には同一符号を付し、その説明を省略する。図8に示す機能構成では、範囲指定部45が追加されている点において、図3の機能構成とは異なっている。
【0052】
範囲指定部45は、寄生素子を抽出する範囲をユーザによって指定可能な範囲指定画面を表示ユニット13に表示して、ユーザによって指定された範囲情報8sを取得してレイアウト情報抽出部40へ通知する。ユーザによる範囲指定は、例えば、セル名が設定されることによって行われる。レイアウト情報抽出部40は、範囲情報8sで指定される各セル名のレイアウトデータ21を用いて、上述した処理を行う。
【0053】
従って、ユーザによって指定されたセル毎にノード追加情報23及び素子データ24が記憶領域に出力され、ノード追加部41及び素子データ結合部42での処理によって指定されたセルに関して素子データを含むアナログ回路モデル27が出力される。
【0054】
上述したように、本実施例によれば、最終的なLSIの設計成果物であるレイアウトデータ21からアナログ回路モデル27を生成するため、配線遅延や寄生容量等を含む詳細なモデルを作成することができる。従って、より精度の高いシミュレーションを可能とし、検証の信頼性を向上させることができる。
【0055】
また、ベースモデル22を用意しておくことによって、アナログ回路モデル27を自動で生成することができるため、人為的なミスが介入する余地がなく、アナログ回路モデル27の作成工数を大幅に削減可能となる。
【0056】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0057】
4 INV回路図データ
5 INVレイアウトデータ
6 寄生素子抽出データ
7 INVベースモデル
8 ノード追加済INVベースモデル
9 INV回路モデル
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
20 回路図データ
21 レイアウトデータ
22 ベースモデル
24 素子データ
25 ノード追加済ベースモデル
26 素子モデル
26a 抵抗素子モデル
26b 容量素子モデル
27 アナログ回路モデル
30 素子データ抽出部
31 アナログ回路モデル生成部
40 レイアウト情報抽出部
41 ノード追加部
42 素子データ結合部
100 回路モデル生成装置

【特許請求の範囲】
【請求項1】
回路図データとレイアウトデータとを格納する記憶領域と、
前記レイアウトデータから寄生素子に係る素子データを抽出する抽出手段と、
前記回路図データに前記素子データを含む回路モデルをハードウェア記述言語によって生成することを特徴とする回路モデル生成手段と
を有する回路モデル生成装置。
【請求項2】
前記抽出手段は、前記記憶領域に格納された前記回路図データに基づいて回路モジュールの動作を前記ハードウェア記述言語で作成したベースモデルを用いて、前記レイアウトデータから該ベースモデルと同一のノードを持つレイアウト情報を取得して、該レイアウト情報から前記寄生素子に係る素子データを抽出することによって、該寄生素子によって追加されるノードに係るノード追加情報と、該素子データとを該記憶領域に出力し、
前記回路モデル生成手段は、
前記ノード追加情報に基づいて、前記ハードウェア記述言語によって、前記追加されるノードを前記ベースモデルに追加するノード追加手段と、
前記素子データに基づいて、前記ハードウェア記述言語によって、前記寄生素子の動作を表す素子モデルと前記ベースモデルとを結合させる素子データ結合手段と
を有することを特徴とする請求項1記載の回路モデル生成装置。
【請求項3】
前記ノード追加手段は、
前記ハードウェア記述言語によって、前記ベースモデル内に前記追加されるノードを宣言することによって該ノードを追加する追加手段と、
前記回路モジュールの動作に係る機能記述部内の既存ノード名を該追加されるノードのノード名で置き換える置き換え手段と
を有することを特徴とする請求項2記載の回路モデル生成装置。
【請求項4】
前記素子データは、前記寄生素子の抵抗値又は容量値を示す素子パラメータと、該寄生素子が挿入された両端のノード名とを含み、
前記素子データ結合手段は、
前記ハードウェア記述言語によって、前記素子パラメータと前記両端のノード名とで前記素子モデルを前記ベースモデル内にインスタンスすることを特徴とする請求項2又は3記載の回路モデル生成装置。
【請求項5】
前記抽出手段に前記素子データを抽出させる範囲を、ユーザに指定させる範囲指定手段を有することを特徴とする請求項1乃至4のいずれか一項記載の回路モデル生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−8858(P2012−8858A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−145100(P2010−145100)
【出願日】平成22年6月25日(2010.6.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】