(57)【要約】【課題】電子回路シミュレーションにて、ネットリストより速度を向上させつつ、精度の劣化を防ぐ。【解決手段】ネットリストデータ及び複数の機能記述モデルデータをブロック毎に読込み上記ブロックに関する種類分ほど全体回路データをシミュレーション実行のためのトップ回路イメージデータにコンパイルして夫々出力する手段と、シミュレーションを実行する手段と、シミュレーションターゲットとして上記複数のコンパイル済みトップ回路イメージのデータを切り替える記述が含まれるシミュレーション制御データを読み込みその記述に従い複数のコンパイル済みトップ回路イメージデータをシミュレーションターゲットとして切り替え、又その切り替えの都度途中結果データをシミュレーションを実行する手段に引き渡す手段とを含む装置を提供する。【選択図】図１
2008071251.tif 000002
【特許請求の範囲】
【請求項１】
回路データのうち、一部のブロックについて、ネットリストデータ、及び、精度若しくは動作速度の異なる複数の機能記述モデルデータを有する電子回路シミュレーション装置であって、
上記ネットリストデータ及び複数の機能記述モデルデータをブロック毎に全て読込み、上記ブロックに関する種類分ほど、全体回路データをシミュレーション実行のためのトップ回路イメージデータにコンパイルして夫々出力する手段と、
シミュレーションを実行する手段と、
シミュレーションの内容に合わせてシミュレーションのターゲットとして上記複数のコンパイル済みトップ回路イメージデータを切り替える記述が施されているシミュレーション制御データを読み込み、その切り替える記述に従って、上記複数のコンパイル済みトップ回路イメージデータをシミュレーションのターゲットとして切り替え、又、その切り替えの都度シミュレーションで得られた途中結果データを上記のシミュレーションを実行する手段に引き渡す手段と
を含むことを特徴とする電子回路シミュレーション装置。
【請求項２】
回路データのうち、一部のブロックについて、ネットリストデータ、及び、精度若しくは動作速度の異なる複数の機能記述モデルデータを有する電子回路シミュレーション装置において、
上記ネットリストデータ及び複数の機能記述モデルデータをブロック毎に全て読込み、上記ブロックに関する種類分ほど、全体回路データをシミュレーション実行のためのトップ回路イメージデータにコンパイルして夫々出力する手段と、
シミュレーションを実行する手段と、
シミュレーションの内容に合わせてシミュレーションのターゲットとして上記複数のコンパイル済みトップ回路イメージデータを切り替える記述が施されているシミュレーション制御データを読み込み、その切り替える記述に従って、上記複数のコンパイル済みトップ回路イメージデータをシミュレーションのターゲットとして切り替え、又、その切り替えの都度シミュレーションで得られた途中結果データを上記のシミュレーションを実行する手段に引き渡す手段と
を実行させることを特徴とする電子回路シミュレーションのためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ設計その他電子回路設計におけるシミュレーション装置に関する。
【背景技術】
【０００２】
大規模な電子回路のアナログ動作をシミュレーションする場合、実行時間が膨大となる。そのため、従来から、機能記述モデルを一部回路ブロックに適用し、全体のシミュレーション時間を削減するという手法が用いられてきた。
【０００３】
この手法を用いることにより、記述の抽象度次第では有効にシミュレーション時間の削減を行うことができる。但しその反面、シミュレーション精度を犠牲にしなければならないことがある。シミュレーションの精度を確保するには、通常のネットリストを用いるか、若しくは機能記述モデルの抽象度を下げて精密な電流の計算を施す必要がある。
【０００４】
後者を選択するとしても、高速化のメリットが薄れてしまうことが多く、更には機能記述モデルの作成及び記述精度の検証に時間が取られることになる。つまり、シミュレーション工数の削減という目的について本末転倒の結果を招くことがある。
【０００５】
特許文献１に記載の回路シミュレーション方法は、機能記述モデルを用いて初期電圧の概算を行い、それを通常のネットリストでのシミュレーションに用いて、収束性向上およびそれに伴う解析時間の若干の向上を狙っているものである。精度面では問題ないものの、解析時間が長くかかる問題を根本的に解決するシミュレーション方法ではない。
【特許文献１】特開２００４−１３８１８公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明では、電子回路設計におけるシミュレーションにおいて、高抽象度な機能記述の特性を生かしつつ、つまり、通常のネットリストよりも大幅にシミュレーション速度を向上させつつ、精度の劣化を防ぐことを目的とする。即ち、シミュレーションでの回路の動作の遷移に従って動作の抽象化・精度の必要性が変化することに注目して、機能記述モデルを最適に活用するシミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項１に記載の電子回路シミュレーション装置は、
回路データのうち、一部のブロックについて、ネットリストデータ、及び、精度若しくは動作速度の異なる複数の機能記述モデルデータを有する電子回路シミュレーション装置であって、
上記ネットリストデータ及び複数の機能記述モデルデータをブロック毎に全て読込み、上記ブロックに関する種類分ほど、全体回路データをシミュレーション実行のためのトップ回路イメージデータにコンパイルして夫々出力する手段と、
シミュレーションを実行する手段と、
シミュレーションの内容に合わせてシミュレーションのターゲットとして上記複数のコンパイル済みトップ回路イメージデータを切り替える記述が施されているシミュレーション制御データを読み込み、その切り替える記述に従って、上記複数のコンパイル済みトップ回路イメージデータをシミュレーションのターゲットとして切り替え、又、その切り替えの都度シミュレーションで得られた途中結果データを上記のシミュレーションを実行する手段に引き渡す手段と
を含むことを特徴とする。
【０００８】
本発明に係る請求項２に記載のプログラムは、
回路データのうち、一部のブロックについて、ネットリストデータ、及び、精度若しくは動作速度の異なる複数の機能記述モデルデータを有する電子回路シミュレーション装置において、
上記ネットリストデータ及び複数の機能記述モデルデータをブロック毎に全て読込み、上記ブロックに関する種類分ほど、全体回路データをシミュレーション実行のためのトップ回路イメージデータにコンパイルして夫々出力する手段と、
シミュレーションを実行する手段と、
シミュレーションの内容に合わせてシミュレーションのターゲットとして上記複数のコンパイル済みトップ回路イメージデータを切り替える記述が施されているシミュレーション制御データを読み込み、その切り替える記述に従って、上記複数のコンパイル済みトップ回路イメージデータをシミュレーションのターゲットとして切り替え、又、その切り替えの都度シミュレーションで得られた途中結果データを上記のシミュレーションを実行する手段に引き渡す手段と
を実行させることを特徴とする。
【発明の効果】
【０００９】
本発明を利用することにより、精度が必要な時期には高精度モデルまたはネットリスによる電子回路シミュレーションを行い、精度が必要でない時期には高速度の機能記述モデルによる電子回路シミュレーションを行うことが可能となり、精度を落とさずにシミュレーション速度を向上させることができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明に係る好適な実施形態を説明する。
【００１１】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る電子回路シミュレーション手段２のブロック図である。図２は、本発明の第１の実施形態に係る電子回路シミュレーション装置２のシミュレーション動作のフローチャートである。
【００１２】
第１の実施形態に係る電子回路シミュレーション装置は、電子回路設計におけるＣＡＤシステム等を搭載した電子計算機に含まれる。本発明を実現するシミュレーション装置に係るプログラムは、電子計算機に付属する磁気ディスクに格納されており、システムユーザの要求に応じてメモリに搭載され、外部から入力される制御コマンドや入力装置からの動作指示に従い図１に示されるコンパイル手段（４）、シミュレーション制御手段（６）、及びシミュレーション実行手段（８）等として稼動し、所定の情報（図７〜図９参照）を表示装置（ディスプレイ）に表示する。
【００１３】
図１に示されるトップ回路データ（Ａ）、サブサーキットデータ（Ｂ−（１））、サブサーキットデータ（Ｂ−（２））、コンパイル済みトップ回路イメージデータ（Ｄ−（１））、コンパイル済みトップ回路イメージデータ（Ｄ−（１））、途中結果データ（Ｅ）、及びシミュレーション結果データ（Ｆ）等のデータも、磁気ディスクに保持され、本発明を実現するシステムに係るソフトウエアの要求に応じて、メモリに搭載され、若しくはメモリにて変更され、再び磁気ディスクに保持される。
【００１４】
図１及び図２に基づいて、本発明の第１の実施形態に係る電子回路シミュレーション装置の構成と動作例を説明する。まず、図２・工程Ｓ０２に示すように、コンパイル手段（図１・符号４）が、シミュレーション制御データ（図１・Ｃ）を読み込む。
【００１５】
なお、シミュレーション制御データ（Ｃ）は、電子回路における一つのシミュレーションを制御するためのデータであり、シミュレーション上のテスト内容に合わせてシミュレーションのターゲットとして（以下に説明する）コンパイル済みトップ回路イメージデータを切り替える記述が施されている。
【００１６】
次に、図２・工程Ｓ０４に示すように、コンパイル手段（４）が、シミュレーション制御データ（Ｃ）に指定された組み合わせにより、トップ回路データ（図１・Ａ）と複数のサブサーキットデータ（図１・Ｂ−（１），Ｂ−（２），・・・）の夫々とを組み合わせてコンパイルを行い、複数のコンパイル済みトップ回路イメージデータ（図１・Ｄ−（１），Ｄ−（２），・・・）を出力する。
【００１７】
ここで、トップ回路データ（Ａ）はトップ回路に係るデータであり、サブサーキットデータ（Ｂ−（１），Ｂ−（２），・・・）はトップ回路と階層構造をなすサブサーキット（即ち、ブロック）に係るデータである。トップ回路データは、ネットリストデータで構成される。サブサーキットデータは、ネットリストデータ、若しくは、機能記述モデルデータで構成される。
【００１８】
図２・工程Ｓ０２及びＳ０４での動作例は、次のようなものである。図２・工程Ｓ０２で読み込まれるシミュレーション制御情報データ（Ｃ）の例を図６に、図２・工程Ｓ０４で読み込まれるトップ回路データ（Ａ）の例を図３に、サブサーキットデータ（Ｂ−（１））の例を図４に、サブサーキットデータ（Ｂ−（２））の例を図５に示す。
【００１９】
トップ回路データ（Ａ）の例である図３の内容は、中身の定義されていないＥＲＲＡＭＰ（誤差増幅器）を含むネットリストであり、このデータは“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”というファイル名であるとする。サブサーキットデータ（Ｂ−（１））の例である図４の内容は、ＥＲＲＡＭＰをトランジスタのネットリストで定義したものであり、このデータは“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”というファイル名であるとする。サブサーキットデータ（Ｂ−（２））の例である図５の内容は、ＥＲＲＡＭＰを抽象度の高い機能記述モデルで定義したものであり、このデータは“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”というファイル名であるとする。
【００２０】
シミュレーション制御情報データ（Ｃ）の例である図６の内容は、トップ回路データに“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”を用い、０〜１０μs(μ秒）では“．ＩＮＣＬＵＤＥ  Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”の一文を“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”に付加した回路データでシミュレーションを行い、１０μs(μ秒）〜１００μs(μ秒）では“．ＩＮＣＬＵＤＥ  Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”の一文を“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”に付加してシミュレーションを行うことを示している。
【００２１】
つまり、図２・工程Ｓ０４での動作として、“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”をトップ回路データとし“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”をＥＲＲＡＭＰ部分として各回路データをコンパイルし、コンパイル済みトップ回路イメージデータ（Ｄ−（１））が作成され、また“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”をトップ回路データとし、“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”をＥＲＲＡＭＰ部分として各回路データをコンパイルし、コンパイル済みトップ回路イメージデータ（Ｄ−（２））が作成されることになる。
【００２２】
次に、図２・工程Ｓ０６に示すように、シミュレーション制御手段（図１・符号６）が、シミュレーション制御データ（Ｃ）に従って、シミュレーション実行手段（図１・符号８）にコンパイル済みトップ回路イメージデータ（Ｄ−（１），Ｄ−（２），・・・）でのシミュレーションを行わせる。図２・工程Ｓ０６における当初の動作を図６の内容を基に説明すると、０〜１０μs(μ秒）では、“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”の組み合わせによるコンパイル済みトップ回路イメージデータ（Ｄ−（１））でシミュレーション制御手段（６）がシミュレーション実行手段（８）にシミュレーションを実施させる。
【００２３】
次に、図２・工程Ｓ０８に示すように、シミュレーション実行手段（８）がシミュレーション制御データ（Ｃ）で指定された時点でシミュレーションを停止する。図６に示す例では、１０μs(μ秒）で一旦、“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”の組み合わせによるシミュレーションを停止する。このとき、図２・工程Ｓ１０に示すように、シミュレーション制御データ（Ｃ）で指定された全時間区分のシミュレーションが終了していれば工程Ｓ１４に分岐し、終了していなければ工程Ｓ１２に分岐する。図６に示す例では、この後１０μs(μ秒）〜１００μs(μ秒）の時間区分が続いているため、工程Ｓ１２に分岐することになる。
【００２４】
上記のようにシミュレーションが終了していない場合、図２・工程Ｓ１２に示すように、シミュレーション実行手段（８）が途中結果データ（Ｅ）を出力し、工程Ｓ０６に戻る。このとき、出力した途中結果データが次の初期条件として引き受けられてシミュレーションが開始（継続）される。図６に示す例では、１０μs(μ秒）〜１００μs(μ秒）の間、シミュレーション制御手段（６）がシミュレーションのターゲットとして“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”の組み合わせによるコンパイル済みトップ回路イメージデータ（Ｄ−（２））に切り替え、シミュレーション実行手段（８）にシミュレーションを実施させる。その際、開始時点である１０μs(μ秒）にて、０〜１０μs(μ秒）でのシミュレーションの途中結果データ（Ｅ）をシミュレーション実行手段（８）が読込むよう、シミュレーション制御データ（Ｃ）から指示される。
【００２５】
シミュレーションの終了時点を迎えた場合、図２・工程Ｓ１４に示すように、シミュレーション実行手段（８）がシミュレーション結果データ（Ｆ）を出力してシミュレーションを終了する。図６に示す例では、１０μs(μ秒）〜１００μs(μ秒）のシミュレーションが終了した後、この状態となり、終了する。
【００２６】
［シミュレーションの結果の例］
ここで、まず、“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”のみで（即ち、コンパイル済みトップ回路イメージデータ（Ｄ−（１））のみで）シミュレーションを行った結果の例を、図７に示す。この場合、“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”はネットリストであるから、正確なシミュレーション結果が出力される。しかし、シミュレーション実行速度は遅い。
【００２７】
また、“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”のみで（即ち、コンパイル済みトップ回路イメージデータ（Ｄ−（２））のみで）シミュレーションを行った結果の例を、図８に示す。この場合、“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”は抽象度の高い機能記述であるから、シミュレーション速度は速い。しかし、１０μs(μ秒）以前の過渡領域（過渡期間）の部分で正確なシミュレーション結果が出ていない。
【００２８】
本発明の第１の実施形態に係るシミュレーション装置を利用すれば、“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”を用いて１０μs(μ秒）までシミュレーションを行い、その後“Ａ＿Ｃｉｒｃｕｉｔ．ｃｉｒ”と“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”に切り替えてシミュレーションをすることになる。このシミュレーション結果の例を図９に示す。この場合、０〜１０μs(μ秒）におけるシミュレーションには精度が必要であるため、ネットリストである“Ｂ１＿Ｃｉｒｃｕｉｔ．ｃｉｒ”を用い、１０μs(μ秒）以降におけるシミュレーションには高精度が必要ではないため、抽象度の高い機能記述である“Ｂ２＿Ｃｉｒｃｕｉｔ．ｖａ”を用いている。即ち、全体的に高精度であり、シミュレーション速度も速い。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１の実施形態に係る電子回路シミュレーション装置のブロック図である。
【図２】本発明の第１の実施形態に係る電子回路シミュレーション装置のシミュレーション動作のフローチャートである。
【図３】トップ回路データの例である。
【図４】ネットリストのサブサーキットデータの例である。
【図５】機能記述モデルのサブサーキットデータの例である。
【図６】シミュレーション制御情報データの例である。
【図７】ネットリストのみのコンパイル済みトップ回路イメージデータのよるシミュレーションの結果の例である。
【図８】機能記述モデルのみのコンパイル済みトップ回路イメージデータのよるシミュレーションの結果の例である。
【図９】本発明の第１の実施形態に係るシミュレーション装置を利用したシミュレーションの結果の例である。
【符号の説明】
【００３０】
２・・・電子回路シミュレーション装置、４・・・コンパイル手段、６・・・シミュレーション制御手段、８・・・シミュレーション実行手段。
【図１】
2008071251.tif 000003
【図２】
2008071251.tif 000004
【図３】
2008071251.tif 000005
【図４】
2008071251.tif 000006
【図５】
2008071251.tif 000007
【図６】
2008071251.tif 000008
【図７】
2008071251.tif 000009
【図８】
2008071251.tif 000010
【図９】
2008071251.tif 000011