説明

回路シミュレーション方法および回路シミュレーション装置

【課題】寄生素子を考慮した半導体集積回路の回路シミュレーションにおいて、精度を落とさずにシミュレーション時間を短縮する。
【解決手段】半導体集積回路のレイアウトデータ110から寄生素子を含むネットリスト130を作成する寄生素子抽出部120と、寄生の影響を考慮する必要の無い回路ブロック情報を格納したデータベース部150と、データベース部150内に登録された回路ブロックが、対象としている半導体集積回路に存在するか否か判定する回路判定部160と、同じ回路ブロックが存在すると判定された時に、レイアウトデータ110から抽出したネットリスト130の中で、同じ回路ブロックと判断された部分のネットリストをネットリスト置換部180によって、寄生素子を含まない回路ブロックのネットリスト130Zに置換することで不要な寄生素子を削除しネットリストを簡素化して、回路シミュレータ190で回路シミュレーションを実施する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回路シミュレーション技術に関し、例えば、寄生素子を考慮した半導体集積回路のSPICE(Simulation Program with Integrated Circuit Emphasis)などの回路シミュレーションに適用して有効な技術に関する。
【背景技術】
【0002】
半導体集積回路の開発過程では、CAD(Computer Aided Design)を用いた半導体集積回路の設計、及びSPICE(Simulation Program with Integrated Circuit Emphasis)に代表される回路シミュレータを用いた回路動作の確認を行う。
【0003】
半導体集積回路の製造プロセス技術の進歩に伴い、隣接して配置される配線間の間隔および配線の幅が狭まって、配線間容量や配線抵抗が増大する傾向にある。この影響を考慮するため図1で示すように、レイアウトを行った後にそのレイアウトから配線抵抗や配線容量(以下、寄生素子と略記する)を抽出し、回路図に反映して回路シミュレーションを実施する。これをバックアノテーションと呼ぶ。
【0004】
近年、半導体集積回路が大規模化するに伴い寄生素子が増大しており、半導体集積回路の全デバイスを対象としてバックアノテーションを行なうと、シミュレーションに費やす実行時間が多大になり、また収束しにくくなるなど、現実的な時間での実行が困難になっている。
【0005】
上記技術的課題を解決するため、ある判定結果に基づいて考慮する寄生素子を選定することで、シミュレートする回路規模を小さくし、シミュレーション時間を短縮する方法が種々提案されている。
【0006】
例えば、特許文献1では、シミュレーションを実施し、電位の変化したノード(アクティブノード)を抽出するPre−layoutシミュレーションを実行する工程と、レイアウトパターンデータに対して従来と同様の方法に従いレイアウトパターン検証を行なう工程と、Pre−layoutシミュレーション時に抽出されたアクティブノード情報に基づいて、レイアウトパターンデータより寄生素子が抽出され、レイアウトパターンデータのすべてのデバイスと抽出された寄生素子情報を含んだ寄生素子付ネットリストが生成される工程と、生成されたネットリストに基づいてPost−layoutシミュレーション(バックアノテーション)が実行される工程と、を実行するバックアノテーション方法が開示されている。
【0007】
この特許文献1の場合、電位の変化したノードに関係する寄生素子だけを抽出することで、回路規模を小さくし、シミュレーション時間を短縮しようとしている。
特許文献2では、半導体集積回路のレイアウトデータから寄生素子を含むネットリストを作成する素子抽出部と、ネットリストで規定される回路から配線間容量が接続するノードを抽出し、当該ノードの入力インピーダンスを算出する入力インピーダンス計算部と、当該入力インピーダンス値を用いて配線間容量が回路特性に与える影響を規定する指標値を求めると共に、当該指標値に基づいてネットリストから配線間容量を削除すべきか否かを判定する配線間容量要否判定部と、当該判定結果に基づいてネットリストから配線間容量を削除して、回路解析対象のネットリストを作成する配線間容量削除部とで構成されるレイアウト検出装置が開示されている。
【0008】
この特許文献2の場合、入力インピーダンス値によって考慮する配線間容量を選定することで、回路規模を小さくし、シミュレーション時間を短縮しようとしている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2002−41595号公報
【特許文献2】特開2004−78428号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述の特許文献1および特許文献2の技術は、ある判定結果に基づいて考慮する寄生素子を選定することでシミュレートする規模を減らし、シミュレーション時間を短縮しようとしている。
【0011】
すなわち、特許文献1では、電位の変化したノード(アクティブノード)情報に基づいて考慮する寄生素子を限定しており、特許文献2では、配線容量が接続するノードの入力インピーダンス値から考慮する配線容量を限定している。
【0012】
しかしながら、近年、さらなる半導体集積回路の大規模化に伴い、上記対策を行ったとしても抽出される寄生素子の数が増加傾向にあるため、依然としてシミュレーションに費やす時間が多大になっている現状がある。
【0013】
本発明の目的は、寄生素子を考慮した半導体集積回路のシミュレーションにおいて、シミュレーションの精度を落とさずにシミュレーション時間を短縮する技術を提供することにある。
【課題を解決するための手段】
【0014】
本発明の第1の観点は、寄生素子の影響を考慮する必要の無い第1回路ブロックに関する少なくとも第1ネットリストを含む特性情報を準備するステップと、
半導体集積回路のレイアウトデータから前記寄生素子を含む第2ネットリストを作成する寄生素子抽出ステップと、
前記第1ネットリストの前記第1回路ブロックと同じトポロジーを持つ第2回路ブロックのネットリストが、前記第2ネットリストに存在するか否かを判定する回路判定ステップと、
前記第2回路ブロックのネットリストが前記第2ネットリストに存在すると判定された時に、前記第2ネットリストの中の前記第2回路ブロックのネットリストの部分を、前記第1回路ブロックの前記第1ネットリストに置換して第3ネットリストを得るネットリスト置換ステップと、
前記第3ネットリストに対して回路シミュレーションを実行するシミュレーション実行ステップと、
を含む回路シミュレーション方法を提供する。
【0015】
本発明の第2の観点は、寄生素子の影響を考慮する必要の無い第1回路ブロックに関する少なくとも第1ネットリストを含む特性情報を格納したデータベース部と、
半導体集積回路のレイアウトデータから前記寄生素子を含む第2ネットリストを作成する寄生素子抽出部と、
前記第1ネットリストの前記第1回路ブロックと同じトポロジーを持つ第2回路ブロックのネットリストが、前記第2ネットリストに存在するか否かを判定する回路判定部と、
前記第2回路ブロックのネットリストが前記第2ネットリストに存在すると判定された時に、前記レイアウトデータから抽出された前記第2ネットリストの中の前記第2回路ブロックのネットリストの部分を、前記第1回路ブロックの前記第1ネットリストに置換して第3ネットリストを得るネットリスト置換部と、
前記第3ネットリストに対して回路シミュレーションを実行するシミュレーション実行部と、
を含む回路シミュレーション装置を提供する。
【発明の効果】
【0016】
本発明によれば、寄生素子を考慮した半導体集積回路のシミュレーションにおいて、シミュレーション精度を落とさずにシミュレーション時間を短縮する技術を提供することができる。
【図面の簡単な説明】
【0017】
【図1】一般的なバックアノテーションを説明する概念図である。
【図2】本発明における一実施の形態である回路シミュレーション方法を実施する回路シミュレーション装置の構成および作用の一例を示すブロック図である。
【図3】本発明の一実施の形態である回路シミュレーション方法および回路シミュレーション装置を実施するための情報処理装置の構成例を示す概念図である。
【図4A】本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路の一部分を簡略化して例示した回路図である。
【図4B】本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路のネットリストを一部分簡略化して例示した概念図である。
【図5】本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路のレイアウトの一例を示す平面図である。
【図6】半導体集積回路のレイアウトデータから抽出した寄生素子を含むネットリストの一例を示す概念図である。
【図7】図6に例示される寄生素子を含むネットリストに対応した回路図である。
【図8】回路シミュレーションの対象となる半導体集積回路のネットリストと、寄生素子を含むネットリストとのシンボル名の対応関係を示す素子情報データの概念図である。
【図9】本発明の一実施の形態である回路シミュレーション方法および回路シミュレーション装置で用いられるデータベース部の構成例を示す概念図である。
【図10】データベース部に登録されたネットリストに対応した回路ブロックの例を示す概念図である。
【図11A】データベース部に登録されたネットリストの構成例を示す概念図である。
【図11B】データベース部に登録されたパラメータテーブルの構成例を示す概念図である。
【図11C】データベース部に登録された接続素子情報テーブルの構成例を示す概念図である。
【図12A】本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路の他の例を簡略化して例示した回路図である。
【図12B】図12Aの半導体集積回路の他の例に対応したネットリストを示す概念図である。
【図13A】本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路の他の例を簡略化して例示した回路図である。
【図13B】図13Aの半導体集積回路の他の例に対応したネットリストを示す概念図である。
【図14】本発明の一実施の形態である回路シミュレーション装置で生成される置換回路ブロック素子データの構成例を示す概念図である。
【図15】本発明の一実施の形態である回路シミュレーション装置で回路シミュレーションされる置換後のネットリストの概念図である。
【図16】本発明の他の実施の形態である回路シミュレーション方法および回路シミュレーション装置で用いられるデータベース部の構成例を示す概念図である。
【図17A】本発明の他の実施の形態である回路シミュレーション方法および回路シミュレーション装置で用いられる置換対象のビヘイビアモデルを例示した概念図である。
【図17B】図17Aの置換対象のビヘイビアモデルに対応するネットリストを例示した概念図である。
【図18A】本発明の他の実施の形態である回路シミュレーション装置で回路シミュレーションされる半導体集積回路を一部簡略化した回路図である。
【図18B】図18Aの回路図に対応したネットリストの一例を示す概念図である。
【図19】図18Aの半導体集積回路のレイアウトデータから生成される寄生素子を含むネットリストの一例を示す概念図である。
【図20】図19のネットリストに対応した回路ブロックの回路図である。
【図21】冗長な寄生素子を除外したネットリストに対応するビヘイビアモデルの一例を示す概念図である。
【発明を実施するための形態】
【0018】
本実施の形態の第1態様は、寄生素子を考慮した半導体集積回路のシミュレーションにおいて、精度を落とさずにシミュレーション時間を短縮することのできる寄生素子抽出技術であって、半導体集積回路のレイアウトデータから寄生素子を含むネットリストを作成する寄生素子抽出部と、寄生の影響を考慮する必要の無い回路ブロック情報を格納したデータベース部と、データベース部に規定されている回路ブロックと同じトポロジーを持つ回路ブロックのネットリストが、半導体集積回路の回路データのネットリストに存在するかを判定する回路判定部と、同じ回路ブロックのネットリストが存在すると判定された時に、レイアウトデータから抽出した寄生素子を含むネットリストの中で、同じトポロジーの回路ブロックのネットリストと判断された部分を、寄生素子を含まない回路ブロックのネットリストに置換するネットリスト置換部とを備える寄生素子抽出技術を例示する。
【0019】
本実施の形態の第2態様は、前記ネットリスト置換部において、前記回路判定部で同じ回路ブロックのネットリストが存在すると判定された時に、レイアウトデータから抽出した寄生素子を含むネットリストの中で、同じ回路ブロックのネットリストと判断された部分を、寄生素子を含まない回路ブロックのビヘイビアモデルに置換する寄生素子抽出技術を例示する。
【0020】
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
(実施の形態1)
図2は、本発明における一実施の形態である回路シミュレーション方法を実施する回路シミュレーション装置の構成および作用の一例を示すブロック図である。
【0021】
図3は、本発明の一実施の形態である回路シミュレーション方法および回路シミュレーション装置を実施するための情報処理装置の構成例を示す概念図である。
図3に例示されるように、本実施の形態の情報処理装置10は、データ記憶装置11、CPU12、メモリ13、入力装置14、出力装置15で構成され、これらがバス16によって互いに接続されている。
【0022】
本実施の形態の後述の回路シミュレーション装置100は、コンピュータプログラムで記述された制御プログラム17を情報処理装置10において実行することで実現される。
すなわち、この制御プログラム17は、ハードディスク装置等のデータ記憶装置11に保存され、保存された制御プログラム17は、CPU12で実行されることにより、後述の寄生素子抽出部120、回路判定部160、寄生素子抽出部120、ネットリスト置換部180、回路シミュレータ190の機能を実現する。
【0023】
メモリ13は、この制御プログラム17やプログラム実行時のパラメータ、演算結果などを一時的に記憶する。入力装置14は、キーボードやマウスといった、設計者の操作をCPU12に伝えるものである。
【0024】
出力装置15は、CPU12における制御プログラム17の実行後のデータである後述の解析結果200等を画面上に表示するディスプレイや、印刷するプリンタ等である。
図4Aは、本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路の一部分を簡略化して例示した回路図である。
【0025】
図4Bは、本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路のネットリストを一部分簡略化して例示した概念図である。
図5は、本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路のレイアウトの一例を示す平面図である。
【0026】
図6は、半導体集積回路のレイアウトデータから抽出した寄生素子を含むネットリストの一例を示す概念図である。
以下に具体的な実施の形態として、図4Aに示す半導体集積回路H10および図5に示す前記半導体集積回路H10に対応したレイアウトに、本実施の形態の回路シミュレーション装置100を適用した場合を説明する。
【0027】
図4Aに例示されるように、半導体集積回路H10は、例えば、相互に接続された複数の回路ブロックH11〜H15からなる。
尚、回路図中の素子には、M1等のシンボル名と呼ばれる各素子個別に持つ名前、及びソース(S)、ゲート(G)、ドレイン(D)など各端子名が付加される。
【0028】
また端子間を結ぶ配線をネットと呼び、各ネットにはネット名(例えば、net1a)と呼ばれる情報が付加される。更に各素子にはpmos、nmosなどの回路シミュレーションに用いるシミュレーションモデル名やゲート幅w,ゲート長l,並列接続数m(w=4um(マイクロメートル)、l=2um,m=1)などのデバイスのパラメータ情報が付加される。
【0029】
図2のレイアウトデータ110は、半導体集積回路の解析対象回路情報140を構成する回路図データ141およびネットリスト142のうち、回路図データ141に対応するレイアウトデータである。
【0030】
レイアウトデータ110に対して、寄生素子抽出部120で回路素子と寄生素子を抽出して、寄生素子を含むネットリスト130(第2ネットリスト)を生成する。
また、回路図データ141のネットリスト142上の各素子に1対1で対応する寄生素子を含むネットリスト130上の素子情報をまとめた素子情報データ130aを生成する。
【0031】
具体的に説明すると、図5に示すレイアウトデータ110から、図4Aに示す回路素子に加えて配線部の寄生抵抗および配線間の寄生容量を抽出し、図6に示すネットリスト130と呼ばれる回路接続情報を生成する。
【0032】
ネットリスト130には、回路図中のシンボル名131、ネット名132、シミュレーションのモデル名133、パラメータ情報134が記述される。素子の種類によってデータの内容や要素が異なる。
【0033】
たとえば、P型MOSFETの場合は、モデル名133にはpmosが格納され、ネット名132には端子D・端子G・端子Sに接続しているネット名であるnet3a・net2a・net1aが順番に格納され、パラメータ情報134にはゲート幅w,ゲート長l,並列接続数mの値が格納される。
【0034】
図7は、図6に例示される寄生素子を含むネットリストに対応した回路図である。
図8は、回路シミュレーションの対象となる半導体集積回路のネットリストと、寄生素子を含むネットリストとのシンボル名の対応関係を示す素子情報データの概念図である。
【0035】
図6に示すネットリスト130を、回路図で表現すると図7になる。
図7において、図4Aから追加されたデバイスR2z,R3zが寄生抵抗、C1zが寄生容量である。
【0036】
また、寄生素子抽出部120は、図4Bに示す回路図データのネットリスト上の素子(シンボル名:…、M1a、M2a、M3a、R1a、…)に1対1で対応する寄生素子を含むネットリスト130上の素子(シンボル名:…、M1z、M2z、M3z、R1z、…)に関する情報をまとめた素子情報データ130aを、図8に示すように生成する。
【0037】
図9は、本発明の一実施の形態である回路シミュレーション方法および回路シミュレーション装置で用いられるデータベース部の構成例を示す概念図である。
図10は、データベース部に登録されたネットリストに対応した回路ブロックの例を示す概念図である。
【0038】
図11Aは、データベース部に登録されたネットリストの構成例を示す概念図である。
図11Bは、データベース部に登録されたパラメータテーブルの構成例を示す概念図である。
【0039】
図11Cは、データベース部に登録された接続素子情報テーブルの構成例を示す概念図である。
図9に示すように、データベース部150は、解析対象回路情報140で定義される半導体集積回路の使用条件(電源電圧、利用周波数、接続負荷など)では、回路特性上寄生素子の影響を考慮する必要の無いと判断できる回路ブロックについて、回路ブロックのネットリスト151(第1ネットリスト)と、ネットリストの情報から作成した回路構成素子のパラメータ情報をまとめたパラメータテーブル152、および回路構成素子の端子が接続している素子情報をまとめた接続素子情報テーブル153を、対象の回路ブロックごとに格納している。
【0040】
具体的に説明すると、寄生素子の影響を考慮する必要ない回路ブロックとして、図10に示す回路ブロックA(第1回路ブロック)があるとする。
データベース部150には、図11Aに示す回路ブロックAのネットリスト151と、図11Bに示す回路構成素子のパラメータ情報をまとめたパラメータテーブル152と、図11Cに示す回路構成素子の端子が接続している素子情報をまとめた接続素子情報テーブル153を格納している。
【0041】
図11Aに例示されるネットリスト151のデータ構成は、上述のネットリスト130と同様である。
図11Bに例示されるように、パラメータテーブル152は、シンボル名152a(シンボル名131)とシミュレーションモデル名152b(モデル名133)の組合せに対してパラメータ情報152c(パラメータ情報134)を対応付けて格納している。
【0042】
図11Cに例示されるように、接続素子情報テーブル153には、シンボル名153a(シンボル名131)と接続素子情報153bが対応付けて格納されている。
次に回路判定部160では、回路図データ141の回路ブロックに、データベース部150に規定されている回路ブロックと同じトポロジーを持つ回路ブロックが存在するかをチェックし、結果を置換回路ブロック素子データ170に保存する。
【0043】
具体的に説明すると、回路判定部160では、データベース部150に規定されている回路ブロックAの回路素子について1つ選び、その素子のパラメータ情報と接続端子情報を取得する。
【0044】
たとえば回路ブロックAのシンボル名153aとしてM1が選ばれたとし、M1のシミュレーションモデル名152bと、パラメータ情報152c(pmos,w=4um,l=2um,m=1)と、接続素子情報153b([D]:nmos[D],Resistance[R1])を取得する。
【0045】
なお、上述のM1に関する接続素子情報153b([D]:nmos[D],Resistance[R1])は、M1のD端子が、nmosのD端子とResistanceのR1端子に接続されること、を意味している。
【0046】
次にM1と同じシミュレーションモデル名とパラメータ情報と接続素子情報を持つ素子が、半導体集積回路の回路図データのネットリストに存在するかチェックを行い、存在する場合は、その素子情報を置換回路ブロック素子データに保存する。
【0047】
具体的に説明すると、図4Aに示す半導体集積回路の回路ブロックH11(第2回路ブロック)の場合、その図4Bに例示されるネットリスト142においてまずシミュレーションモデル名142cがpmosである素子を選定し、M1aが抽出される。図4Bのネットリスト142内に他にシミュレーションモデル名142cがpmosである素子があれば、それらも抽出される。
【0048】
次にその抽出された素子の中でパラメータ情報142dがw=4um,l=2um,m=1である素子を抽出する。さらにD端子のネット名142b(ネット名132の先頭の要素:M1aの場合はnet3a)を取得し、そのネット名142bがD端子のネット名132となっているnmosが存在し、またR1端子のネット名132となっているResistanceが存在する素子を抽出する。
【0049】
図4Bに例示されるネットリスト142ではシンボル名142aのM1aが上記に該当し、M1aを置換回路ブロック素子データ170に保存する。
図12Aは、本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路の他の例を簡略化して例示した回路図である。
【0050】
図12Bは図12Aの半導体集積回路の他の例に対応したネットリストを示す概念図である。
図13Aは、本発明の一実施の形態における回路シミュレーションの対象となる半導体集積回路のさらに他の例を簡略化して例示した回路図である。
【0051】
図13Bは、図13Aの半導体集積回路の他の例に対応したネットリストを示す概念図である。
図14は、本発明の一実施の形態である回路シミュレーション装置で生成される置換回路ブロック素子データの構成例を示す概念図である。
【0052】
図15は、本発明の一実施の形態である回路シミュレーション装置で回路シミュレーションされる置換後のネットリストの概念図である。
例えば図12Aに示すような回路ブロックH21〜H25からなる半導体集積回路H20の回路ブロックH21の場合は、その図12Bに例示されるネットリスト142においてシミュレーションモデル名142cがpmosのM1bが抽出されるが、そのパラメータ情報142dがw=6um,l=2um,m=1で回路ブロックAのネットリスト151のM1とは異なるため、M1bは置換回路ブロック素子データ170に保存されない。
【0053】
また、図13Aに示すような回路ブロックH31〜H35からなる半導体集積回路H30の回路ブロックH31の場合は、その図13Bに例示されるネットリスト142において、シンボル名142aのM1cはシミュレーションモデル名142cとパラメータ情報142dは回路ブロックAのネットリスト151のM1と同じであるが、M1cのD端子のネット名142bのnet3cがR1端子のネット名となっているResistanceが存在しないため、M1cは置換回路ブロック素子データ170に保存されない。
【0054】
続いて回路ブロックAのM1に接続されている素子について、上記と同様にシミュレーションモデル名151cとパラメータ情報151dと接続素子情報153bを取得し、同じ情報を持っているかのチェックを行い、存在する場合は、その素子情報を追加して保存する。
【0055】
具体的に説明すると、データベース部150に規定されている回路ブロックAのM1に接続しているnmosであるM2と、resistanceであるR1に対して順番に、シミュレーションモデル名151cとパラメータ情報151dと接続素子情報153bを取得し、回路図データ141である図4Aに示す半導体集積回路のM1aに接続しているnmosであるM2aと、resistanceであるR1aに対して同じシミュレーションモデル名142cとパラメータ情報142dと接続素子情報153bを持っているかチェック行う。
【0056】
この結果、存在していた場合は先ほど保存したM1aに追加してM2aとR1aを置換回路ブロック素子データ170に保存する。仮に存在しなかった場合は、M1aをデータベースから削除し、回路ブロックAに対する判定を終了する。
【0057】
次に上記と同じことを繰り返し、さきほどチェックしたM2とR1に接続している素子についてシミュレーションモデル名151cとパラメータ情報151dと接続素子情報153bを取得し、回路図データ141(ネットリスト142)が同じ情報をもっているかチェックを行う。
【0058】
このとき、すでにチェックを実施し置換回路ブロック素子データ170に保存されている素子(M1a,M2a,R1a)についてはチェックを行わない。
これを繰り返すことで、最終的に、解析対象回路情報140のネットリスト142に、データベース部150に登録された回路ブロックと同じトポロジーの回路ブロックが存在すれば、置換回路ブロック素子データ170として保存されることになる。
【0059】
今回の場合は図14に示すように、M1a,M2a,M3a,R1aが置換回路ブロック素子データ170として保存される。
置換回路ブロック素子データ170では、回路ブロック名171と、置換回路ブロック素子名172が対応付けて格納されている。
【0060】
データベース部150に複数の回路ブロックが登録されている場合は、上記チェックを回路ブロックごとに実行する。
ネットリスト置換部180では、置換回路ブロック素子データ170にデータが保存されていた場合、寄生素子を含むネットリスト130の中の同じ回路ブロックと判定された部分を寄生を含まないデータベース部150内に規定されている該当のネットリスト151に置換する。
【0061】
具体的に説明すると、置換回路ブロック素子データ170には上記結果から図4Bに示すネットリスト142の中で、データベース部150に規定されている回路ブロックと同じトポロジーを持つ回路ブロックの素子情報(M1a,M2a,M3a,R1a)が保存されている。
【0062】
寄生素子抽出部120がネットリスト130から生成した図8に示す素子情報データ130aの対応表を使用し、図6に示す寄生素子を含むネットリスト130の中で、(M1a,M2a,M3a,R1a)に対応する素子(M1z,M2z,M3z,R1z)を抽出する。
【0063】
さらに、それら素子のネット名132を図6のネットリスト130から抽出しM1z:(net3z,net2z,net1z)、M2z:(net4z,net5z,net6z)、M3z:(net10z,net9z,net11z)、R1z:(net7z,net8z)を取得する。
【0064】
図6に示す寄生素子を含むネットリスト130の中で上記ネット名を1つずつ検索し、そのネット名を持つシンボル名131で寄生素子のモデル名であるp_resやp_capをモデル名133として持つものを抽出する。
【0065】
具体的に説明すると、まずM1zのnet3zについてネットリスト130内を検索し、net3zを持つR2zが検索され、さらにそのモデル名133を取得した結果、寄生素子のモデル名133であるp_resであることから、R2zを抽出する。
【0066】
続いてM1zのその他のネット名132や、M2zなどのその他の素子のネット名132についても、同様に行う。
その結果、図6に示すネットリスト130の場合、寄生素子(R2z,R3z,C1z)を抽出する。
【0067】
次に上記で抽出した素子(M1z,M2z,M3z,R1z,R2z,R3z,C1z)を寄生を含むネットリスト130から削除し、データベース部150に保存している回路ブロックAの図11Aに例示されるネットリスト151を追記する。
【0068】
このとき、回路ブロックAから外の回路ブロックに繋がるネットについては、ネット名151bを置換して、回路の接続情報に矛盾がないように修正する。
具体的に説明すると、図11Aで外の回路ブロックに接続するネット名(net1,net2,net4,net5,net7,net8)については、まずネット名151bを1つずつ取得し(例:net1)、そのネット名151bを持つシンボル名151aと接続端子名をネットリスト151と接続素子情報テーブル153から取得(例:シンボル名 M1、接続素子名 S)する。
【0069】
次に図6の寄生を含むネットリスト130の中でそのシンボルに対応するシンボル(M1z)を抽出し、さらに上記で抽出した接続端子名(S)のネット名(net1z)を取得する。その他のネットについても同様に対応するネット名を取得する。
【0070】
これによって図11Aのネットリスト151で外の回路ブロックに接続するネット名(net1,net2,net4,net5,net7,net8)について、図7でそれらに対応するネット名(net1z,net2z,net5z,net6z,net10z,net11z)を取得し、それぞれ変換する。
【0071】
以上を実施した結果、寄生素子を含むネットリスト130は図15に示すネットリスト130Z(第3ネットリスト)のように内容が変更される。図8に示した寄生素子抽出部120で作成したネットリスト130と比較すると、寄生素子が削除されたネットリスト130Zになっていることがわかる。
【0072】
つまり、ネットリスト置換部180では、寄生素子を含むネットリスト130から、データベース部150で規定されている回路ブロック情報を元に、必要のないと考えられる回路ブロックに対して寄生素子を削除したネットリスト130Zに編集されており、ネットリスト130Zの規模がネットリスト130よりも小さくなっている。
【0073】
そして、回路シミュレータ190は、このネットリスト130Zを入力して回路シミュレーションを実行し、解析結果200を出力する。
このとき、ネットリスト130Zの規模がネットリスト130よりもはるかに小さいため、シミュレーション時間は大幅に短縮されるとともに、解析結果200の精度が低下することもない。
【0074】
すなわち、回路シミュレータ190では、不要(冗長)な寄生素子を含まない小規模のネットリスト130Zを用いてシミュレーションを行うことにより、寄生素子を含むネットリスト130を使用してシミュレーションした解析結果に対し、解析結果200の精度を落とさずにシミュレーション時間を短縮できる。
【0075】
(実施の形態2)
図16は、本発明の他の実施の形態である回路シミュレーション方法および回路シミュレーション装置で用いられるデータベース部の構成例を示す概念図である。
【0076】
図17Aは、本発明の他の実施の形態である回路シミュレーション方法および回路シミュレーション装置で用いられる置換対象のビヘイビアモデルを例示した概念図である。
図17Bは、図17Aの置換対象のビヘイビアモデルに対応するネットリストを例示した概念図である。
【0077】
図18Aは、本発明の他の実施の形態である回路シミュレーション装置で回路シミュレーションされる半導体集積回路を一部簡略化した回路図である。
図18Bは、図18Aの回路図に対応したネットリストの一例を示す概念図である。
【0078】
図19は、図18Aの半導体集積回路のレイアウトデータから生成される寄生素子を含むネットリストの一例を示す概念図である。
図20は、図19のネットリストに対応した回路ブロックの回路図である。
【0079】
図21は、冗長な寄生素子を除外したネットリストに対応するビヘイビアモデルの一例を示す概念図である。
この実施の形態2では、回路シミュレータ190が、例えば、Verilog−AMS等のアナログ回路の動作を記述する言語におけるビヘイビアモデルによってネットリストを記述して回路シミュレーションを実行する場合に適用した例を示す。
【0080】
すなわち、この実施の形態2では、寄生素子を考慮した半導体集積回路のシミュレーションにおいて、上述の図2に例示したデータベース部150の代わりに、図16に例示されるデータベース部150Aを用いる。
【0081】
この図16に例示されるデータベース部150Aには、これまでの設計経験から回路特性上寄生素子の影響を考慮する必要の無いと判断できる回路ブロックB(第1回路ブロック)について、該当回路ブロックのネットリスト151と、回路構成素子のパラメータ情報をまとめたパラメータテーブル152と、回路構成素子の端子が接続している素子情報をまとめた接続素子情報テーブル153の他に、さらに回路ブロックBのネットリスト151をVerilog−AMSなどの言語仕様に準拠したビヘイビアモデル154に置換した情報が格納されている。
【0082】
Verilog−AMSは、図17Aに示すようにアナログ回路の動作を記述する言語である。トランジスタレベルで作成されたネットリスト151をVerilog−AMSを使用した言語記述のビヘイビアモデル154で表現することによって、より高速にシミュレートできる。
【0083】
レイアウトデータ110からの寄生素子を含んだネットリスト130の抽出から、解析対象回路情報140の回路図データ141(ネットリスト142)の回路ブロックの中で、データベース部150に規定されている回路ブロックBと同じトポロジーを持つ回路ブロックが存在するかをチェックする回路判定部160と、その出力結果である置換回路ブロック素子データ170の保存までの動作は、上述の実施の形態1と同じである。
【0084】
そして、この実施の形態2の場合、置換回路ブロック素子データ170としてデータが存在する場合に、ネットリスト置換部180において寄生素子を含むネットリスト130の中の、回路ブロックBと同じ回路ブロックと判定された部分を、寄生を含まない回路ブロックBのビヘイビアモデルに置換する。
【0085】
図18Aに示すような複数の回路ブロックH41〜H45からなる半導体集積回路H40の一つの回路ブロックH41(第2回路ブロック)において寄生素子を抽出した図19のネットリスト130(第2ネットリスト)およびそれを回路図にした図20を使用して具体的に説明する。
【0086】
置換回路ブロック素子データ170には図18Bに示すネットリスト142の中で、データベース部150に規定されている図17Aに示す回路ブロックBと同じトポロジーを持つ回路ブロックの素子情報(M1a,M2a)が保存されている。
【0087】
ネットリスト130で生成した対応表を使用し、図19に示す寄生素子を含むネットリスト130の中で、(M1a,M2a)に対応する素子(M1z,M2z)を抽出する。
さらに、それら素子のネット名132を図19のネットリスト130から抽出し、M1z:(outz,inz,vddz)、M2z:(net1z,inz,gndz)を取得する。
【0088】
図19に示す寄生素子を含むネットリスト130の中で上記ネット名132を1つずつ検索し、そのネット名132を持つシンボルで寄生素子のモデル名133であるp_resやp_capをモデル名133として持つものを抽出する。
【0089】
具体的に説明すると、まずM1zのoutzについて図19のネットリスト130内を検索し、outzを持つR1zが検索され、さらに、そのモデル名133を取得した結果、寄生素子のモデル名133であるp_resであることから、R1zを抽出する。
【0090】
続いてM1zのその他のネット名や、M2zなどのその他の素子のネット名についても、同様に行う。
その結果、図19に示すネットリスト130の場合、寄生素子(R1z)を抽出する。
【0091】
次に上記で抽出した素子(M1z,M2z,R1z)を、寄生を含むネットリスト130から削除し、データベース部150に登録している回路ブロックBのビヘイビアモデル154の図17Bに例示されるネットリスト151を追記する。
【0092】
このとき、回路ブロックBから外の回路ブロックに繋がるネットについては、ネット名151bを置換して、回路の接続情報に矛盾がないように修正する。
具体的に説明すると、図17Aで外の回路ブロックに接続するネット(vdd,in,out,gnd)については、まずネット名151bを1つずつ取得し(例:vdd)、そのネット名151bを持つシンボル名151aと接続端子名をネットリスト151から取得(例:シンボル名 M1、接続素子名 S)する。
【0093】
次に寄生素子を含むネットリスト130の中でそのシンボル名131に対応するシンボル(M1z)を抽出し、さらに上記で抽出した接続端子名(S)のネット名(vddz)を取得する。その他のネット名についても同様に対応するネットを取得する。
【0094】
これによって図17Aで外の回路ブロックに接続するネット(vdd,in,out,gnd)について、図19のネットリスト130でそれらに対応するネット名132(vddz,inz,outz,gndz)を取得し、それぞれ変換する。
【0095】
以上を実施した結果、寄生素子を含むネットリスト130(ビヘイビアモデル130M)は、図21に示すビヘイビアモデル130MZのように内容が変更される。
図19に示したネットリスト130(ビヘイビアモデル130M)と比較すると、寄生素子が削除されたビヘイビアモデル130MZのネットリストになっていることがわかる。
【0096】
そして、このビヘイビアモデル130MZのネットリストに対して回路シミュレータ190は、回路シミュレーションを実行し、解析結果200を出力する。
この場合、ビヘイビアモデル130MZは、冗長な寄生素子の情報を含まないので、回路シミュレータ190における回路シミュレーションが高速化されるとともに、解析結果200の精度が低下することもない。
【0097】
すなわち、本実施の形態2の場合には、回路シミュレータ190においてビヘイビアモデル用いてネットリストを記述して回路シミュレーションを行う場合において、寄生素子を含むネットリスト130を使用して回路シミュレーションした解析結果に比較して、解析結果200の精度を落とさずにシミュレーション時間を短縮できる効果がある。
【0098】
以上説明したように、本発明の各実施の形態によれば、半導体集積回路のレイアウトデータから抽出した寄生素子を含むネットリストに、寄生素子の影響を考慮する必要の無い回路ブロックが存在した場合に、寄生素子を含むネットリストを、寄生を含まない回路ブロックのネットリストに置換することで、不要な寄生素子を削除しネットリストを簡素化してシミュレーション時間を短縮することが可能である。
【0099】
また半導体集積回路のレイアウトデータから抽出した寄生素子を含むネットリストに、寄生素子の影響を考慮する必要の無い回路ブロックが存在した場合に、寄生素子を含むネットリストを、寄生素子を含まない回路ブロックのビヘイビアモデルに置換することで、さらにシミュレーション時間を短縮することが可能である。
【0100】
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【0101】
10 情報処理装置
11 データ記憶装置
12 CPU
13 メモリ
14 入力装置
15 出力装置
16 バス
17 制御プログラム
100 回路シミュレーション装置
110 レイアウトデータ
120 寄生素子抽出部
130 ネットリスト
130Z ネットリスト
130M ビヘイビアモデル
130MZ ビヘイビアモデル
130a 素子情報データ
131 シンボル名
132 ネット名
133 モデル名
134 パラメータ情報
140 解析対象回路情報
141 回路図データ
142 ネットリスト
142a シンボル名
142b ネット名
142c シミュレーションモデル名
142d パラメータ情報
150 データベース部
150A データベース部
151 ネットリスト
151a シンボル名
151b ネット名
151c シミュレーションモデル名
151d パラメータ情報
152 パラメータテーブル
152a シンボル名
152b シミュレーションモデル名
152c パラメータ情報
153 接続素子情報テーブル
153a シンボル名
153b 接続素子情報
154 ビヘイビアモデル
160 回路判定部
170 置換回路ブロック素子データ
171 回路ブロック名
172 置換回路ブロック素子名
180 ネットリスト置換部
190 回路シミュレータ
200 解析結果
H10 半導体集積回路
H11〜H15 回路ブロック
H20 半導体集積回路
H21〜H25 回路ブロック
H30 半導体集積回路
H31〜H35 回路ブロック
H40 半導体集積回路
H41〜H45 回路ブロック

【特許請求の範囲】
【請求項1】
寄生素子の影響を考慮する必要の無い第1回路ブロックに関する少なくとも第1ネットリストを含む特性情報を準備するステップと、
半導体集積回路のレイアウトデータから前記寄生素子を含む第2ネットリストを作成する寄生素子抽出ステップと、
前記第1ネットリストの前記第1回路ブロックと同じトポロジーを持つ第2回路ブロックのネットリストが、前記第2ネットリストに存在するか否かを判定する回路判定ステップと、
前記第2回路ブロックのネットリストが前記第2ネットリストに存在すると判定された時に、前記第2ネットリストの中の前記第2回路ブロックのネットリストの部分を、前記第1回路ブロックの前記第1ネットリストに置換して第3ネットリストを得るネットリスト置換ステップと、
前記第3ネットリストに対して回路シミュレーションを実行するシミュレーション実行ステップと、
を含むことを特徴とする回路シミュレーション方法。
【請求項2】
請求項1記載の回路シミュレーション方法において、
前記シミュレーション実行ステップでは、回路の入出力特性をプログラム言語で記述したビヘイビアモデルを用いて前記回路シミュレーションを実行する場合、
前記ネットリスト置換ステップでは、前記第2ネットリストの中の前記第2回路ブロックのネットリストの部分を、前記第1回路ブロックの前記第1ネットリストに対応したビヘイビアモデルに置換することを特徴とする回路シミュレーション方法。
【請求項3】
請求項1記載の回路シミュレーション方法において、
前記特性情報として、さらに、個々の前記第1回路ブロックの回路構成素子のパラメータ情報が格納されたパラメータテーブル、および前記回路構成素子の端子が接続している素子情報が格納された接続素子情報テーブルを準備することを特徴とする回路シミュレーション方法。
【請求項4】
寄生素子の影響を考慮する必要の無い第1回路ブロックに関する少なくとも第1ネットリストを含む特性情報を格納したデータベース部と、
半導体集積回路のレイアウトデータから前記寄生素子を含む第2ネットリストを作成する寄生素子抽出部と、
前記第1ネットリストの前記第1回路ブロックと同じトポロジーを持つ第2回路ブロックのネットリストが、前記第2ネットリストに存在するか否かを判定する回路判定部と、
前記第2回路ブロックのネットリストが前記第2ネットリストに存在すると判定された時に、前記レイアウトデータから抽出された前記第2ネットリストの中の前記第2回路ブロックのネットリストの部分を、前記第1回路ブロックの前記第1ネットリストに置換して第3ネットリストを得るネットリスト置換部と、
前記第3ネットリストに対して回路シミュレーションを実行するシミュレーション実行部と、
を含むことを特徴とする回路シミュレーション装置。
【請求項5】
請求項4記載の回路シミュレーション装置において、
前記シミュレーション実行部では、回路の入出力特性をプログラム言語で記述したビヘイビアモデルを用いて前記回路シミュレーションを実行する場合、
前記ネットリスト置換部では、前記第2ネットリストの中の前記第2回路ブロックのネットリストの部分を、前記第1回路ブロックの前記第1ネットリストに対応したビヘイビアモデルに置換することを特徴とする回路シミュレーション装置。
【請求項6】
請求項4記載の回路シミュレーション装置において、
前記特性情報は、さらに、個々の前記第1回路ブロックの回路構成素子のパラメータ情報が格納されたパラメータテーブル、および前記回路構成素子の端子が接続している素子情報が格納された接続素子情報テーブルを含むことを特徴とする回路シミュレーション装置。

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図11C】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18A】
image rotate

【図18B】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図1】
image rotate

【図5】
image rotate


【公開番号】特開2012−221389(P2012−221389A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−88823(P2011−88823)
【出願日】平成23年4月13日(2011.4.13)
【出願人】(000005234)富士電機株式会社 (3,146)
【Fターム(参考)】