(57)【要約】【課題】アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法等を提供すること。【解決手段】ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップＳ１００と、テスト仕様指定情報を指定するステップＳ２００と、回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップＳ３００と、テスト仕様指定情報の時系列情報に、状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップＳ４００と、テスト仕様指定情報に登録された電圧、電流まで過渡状態時間をかけて変化させるスティミュラス最適化テストベンチを生成するステップＳ５００と、を有する。【選択図】図３
2011043978.tif 000002
【特許請求の範囲】
【請求項１】
複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチの作成方法において、
回路仕様指定手段が、ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップと、
テスト仕様指定手段が、状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間、の仕様を規定するテスト仕様指定情報、を指定するステップと、
状態検出テストベンチ生成手段が、前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップと、
状態判定テストベンチ生成手段が、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップと、
スティミュラス最適化テストベンチ生成手段が、前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するステップと、
を有することを特徴とするテストベンチの作成方法。
【請求項２】
前記状態判定テストベンチ生成手段は、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致しない場合、シミュレーションを中断する状態判定テストベンチを生成する、
ことを特徴とする請求項１記載のテストベンチの作成方法。
【請求項３】
前記テスト仕様指定情報には、状態毎の最大保持可能時間が登録されており、
前記状態判定テストベンチ生成手段は、前記状態検出テストベンチが状態遷移を検出してから、前記テスト仕様指定情報の前記最大保持可能時間を超えて遷移後の状態を保持するか否かを判定する状態判定テストベンチを生成する、
ことを特徴とする請求項１又は２記載のテストベンチの作成方法。
【請求項４】
前記状態判定テストベンチ生成手段は、前記最大保持可能時間を超えて遷移後の状態を保持したと判定した場合、シミュレーションを中断する状態判定テストベンチを生成する、
ことを特徴とする請求項３記載のテストベンチの作成方法。
【請求項５】
複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチを作成するテストベンチ作成装置において、
ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報を指定する回路仕様指定手段と、
状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間の仕様、を規定するテスト仕様指定情報、を指定するテスト仕様指定手段と、
前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成する状態検出テストベンチ生成手段と、
前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成する状態判定テストベンチ生成手段と、
前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するスティミュラス最適化テストベンチ生成手段と、
を有することを特徴とするテストベンチ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アナログ回路の動作をシミュレータで検証する際に用いられるテストベンチの作成方法及びテストベンチ作成装置に関する。
【背景技術】
【０００２】
アナログ回路の動作を回路シミュレータで検証する際、検証に用いるテストベンチを作成することが多いが、回路シミュレータの普及初期には少なからず作成工数が多いことが問題となっていた。作成工数が多くなる理由として以下の１〜４が挙げられる。
【０００３】
第1の理由として、テストベンチ作成には、素子や電圧源の組合せ毎にそれぞれ回路図を作成する必要があったこと。
【０００４】
第2の理由としては、アナログ回路の特性を様々な入力条件で見る必要性から、時系列での過渡応答特性解析だけでなく、入力条件をスイープ（掃引）させてのＤＣ解析や、周波数をスイープさせてのＡＣ解析など、必要なテストベンチの数が多いこと。
【０００５】
第3の理由としては、過渡応答特性を見る場合に、入力スティミュラスの波形作成に手間がかかり、その上、入力スティミュラスが実際に正しい（所望の入力信号になっているか）かどうかはシミュレーションをしなければ分からなかったこと。
【０００６】
第4の理由としては、過渡応答特性を見る場合に、入力スティミュラスのタイミング決定に手間がかかり、実際に正しい入力タイミングか否かはシミュレーションをしなければ分からなかったこと。
【０００７】
上記第１〜第３の理由については、アナログ機能記述言語の普及と、市販の回路図作成ソフトウェアがアナログ機能記述言語を扱えるようになったことで改善されてきた。すなわち、テストベンチ中の素子の回路図の代わりにアナログ機能記述のシンボルを接続することで、アナログ機能記述のプログラム要素を用いて、テストベンチ作成の効率を大きく改善できるようになった（例えば、特許文献１参照。）。
【０００８】
特許文献１には、アナログ機能記述ブロックをテストベンチの中に盛り込み、アナログ機能記述ブロックのプログラム要素を活用して、複数のテスト回路の要素を１つのアナログ機能記述ブロックの中に実現し、機能の切替を自動で行うテスト回路作成方法が開示されている。これにより、第１と第２の理由を解決することができる。
【０００９】
また、第3の理由に示す問題についても、一般的なアナログ機能記述システムのプログラム要素を用いて、例えば複雑な周期性の入力スティミュラス等の作成が容易になったことで改善されている。また、入力スティミュラスの波形を調整する技術も提案されている（例えば、特許文献２参照。）。特許文献２には、アナログ機能記述システムには言及せずに、いくつかのパラメータを持つ波形のテンプレートを用意しておいて、入力スティミュラスを容易に得ることができるシミュレーション用電源入力装置が開示されている。なお、入力スティミュラスの調整は、アナログ機能記述システムを用いてもある程度実現可能である。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記第4の理由に示す問題については、これまでアナログ機能記述システムを用いても解決されていなかった。回路の構造だけでなく複数の遷移状態（例えば、本願の図１）を持つような複雑な回路においては、状態に応じて外部からの入力スティミュラスを設定する記述が必要である。
【００１１】
このため、図１に示すような状態遷移の動作確認を行う場合、例えばアナログ機能記述システムのプログラム要素を用いて、図１５に示すような記述を行っていた。図１５は、従来のアナログ機能記述システムのプログラム要素に設定するプログラムの一部を抜粋したものである。
【００１２】
図１５の「Low Load Mode →  High Load Mode」の段落は、シミュレーション中に2msecが経過したときに（timer(2m)）、1usecの立ち上がり時間(「iload_risetime=1u;」)で、大きな負荷電流(「iload_mode=1;」)に切替る動作を記述する。次に、「High Load Mode →  Low Load Mode」の段落は、スイッチが入り2.3msecが経過したときに（「timer(2.3m)」）、１usecの立ち下がり時間で(「iload_falltime=1u;」)、小さな負荷電流(「iload_mode=0;」)に切替るスイッチが入る動作を記述する。
【００１３】
このような記述を複数繰り返すことで、長い時間経過後又は複数の状態遷移後の入力スティミュラスの実現も可能となる。しかし、留意点として、例えば図１５に示している「2msec」の数値や「2.3msec」の数値、すなわち負荷電流の切り替えのタイミングは、他の入力スティミュラスとの相関で決定されるものではなく、実際に状態が遷移したタイミングと同期していなければならない。図１を例に説明すると、「Low Load Mode →  High Load Mode」の段落がスタートするのは（４）の遷移が完了した後、「High Load Mode →  Low Load Mode」の段落がスタートするのは（５）の遷移が完了した後、である。このため、予め、回路状態の遷移時間を推定して、アナログ機能記述システムのプログラム要素に実数値を記述しなければならなかった。
【００１４】
ところが、回路組上げ後に最初に検証を行う場合など、全体の動作実力の見積もりがつけにくいため、実際にどのようなタイミングで動作が遷移していくのかはシミュレーションをしてみないとわからない。
【００１５】
実際にシミュレーションを行ってみると、入力スティミュラスが意図しない不適切な状態下のタイミングで発生し、無意味なテストベンチとなっていることが、しばしばシミュレーション後に判明することになった。
このような事例は、開発の初期段階だけでなく、特性向上のために回路改定を行った場合などでも同様に生じ、何度でも起こり得るものであり、特に1回の回路のシミュレーション時間が長い場合に、その非効率性が顕著になってきているという問題がある。
【００１６】
本発明は、上記課題に鑑み、アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法及びテストベンチ作成装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記課題に鑑み、本発明は、複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチの作成方法において、 回路仕様指定手段が、ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップと、テスト仕様指定手段が、状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間、の仕様を規定するテスト仕様指定情報、を指定するステップと、状態検出テストベンチ生成手段が、前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップと、状態判定テストベンチ生成手段が、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップと、スティミュラス最適化テストベンチ生成手段が、前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するステップと、を有することを特徴とする。
【００１８】
状態検出テストベンチが検出した状態がテスト仕様と一致する場合に、テスト仕様指定情報に登録された電圧又は電流と前記過渡状態時間を出力するので、シミュレーション中の回路の状態をテストベンチを通して知ることが可能となり、さらに回路状態と入力スティミュラスの発生タイミングの同期が取れ、常に最適なタイミングで入力スティミュラスを生成できる。
【発明の効果】
【００１９】
アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法及びテストベンチ作成装置を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】アナログ回路の状態遷移を模式的に示す状態遷移図の一例である。
【図２】アナログ回路テストシステムの概略構成図の一例である。
【図３】テストベンチ作成装置の機能ブロック図の一例である。
【図４】テストベンチ作成装置がテストベンチを生成する手順を示すフローチャート図の一例である。
【図５】回路仕様情報の一例を示す図である。
【図６】テスト仕様情報の一例を示す図である。
【図７】テスト仕様情報から得られた入力スティミュラスの電流値と時間の関係を示す図の一例である。
【図８】回路仕様情報に基づき生成される、状態検出テストベンチのイメージ図の一例である。
【図９】状態検出テストベンチのコードの一例を示す図である。
【図１０】状態判定テストベンチのイメージ図の一例である。
【図１１】具体的な状態判定テストベンチのコードの一例を示す図である。
【図１２】スティミュラス最適化テストベンチのイメージ図の一例である。
【図１３】スティミュラス最適化テストベンチのコードの一例を示す図である。
【図１４】３つのテストベンチの接続を模式的に示す図の一例である。
【図１５】従来のアナログ機能記述システムのプログラム要素に設定するプログラムの一部を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明を実施するための形態を、図面を参照しながら説明する。
図１は、アナログ回路の状態遷移を模式的に示す状態遷移図の一例を示す。アナログ回路が搭載される装置（例えば、画像形成装置、プリンタ、ファクシミリ、その他、コンピュータ）の仕様により、アナログ回路は図示する状態遷移を経る。このため、アナログ回路の遷移応答特性は、図１の状態遷移図に基づき検証される。図１では、楕円がアナログ回路の各状態を表し、矢印線で結ばれた楕円は、矢印線の元の楕円から矢印線の先の楕円に状態が遷移することを意味する。また、矢印線の近くの記述は、状態が遷移するための条件を示す。本実施形態では、図１の（１）〜（６）で示した状態遷移について説明する。
【００２２】
図１の（１）〜（６）の遷移順でアナログ回路が動作するか否かを検証するテストベンチを作成する際、例えば「（５）→（６）」の遷移を起こすテストベンチを作るためには、一旦、LowLoadModeの状態で安定してから（５）の遷移を起こす入力スティミュラス（負荷電流  小→大）を入力し、さらに（５）の遷移後、HighLoadModeの状態で安定してから（６）の遷移を起こす入力スティミュラス（負荷電流  大→小）を入力する必要がある。
【００２３】
なお、入力スティミュラスとは、解析対象（アナログ回路）の各出力(駆動)ピンに注入する信号をいうが、本実施形態では、仕様に適合した態様で状態を遷移させる入力信号をいうものとする。また、上記の2.3msecや2.0msecは、入力スティミュラスの発生タイミングを指定するが、本実施形態では入力スティミュラスの発生タイミングが、正しい状態遷移が生じたタイミングに同期する。
【００２４】
従来は、入力スティミュラス（負荷電流変化）の入力タイミングを所定の手法で算出した予測値で与えていた。しかし、例えば、実際にシミュレーションを実行中、予測値に反して（５）の遷移において、LowLoadMode状態での安定に時間を要した結果、HighLoadMode に遷移したがHighLoadModeで安定しないまま（６）の遷移を起こす入力スティミュラス（負荷電流  大→小）が入力されることも生じていた。この場合、所望のシミュレーションを実行できず、入力スティミュラスの入力タイミングを補正して再度シミュレーションを行う必要があった。
【００２５】
本実施形態のアナログ回路テスト方法によれば、正しい状態遷移であることを検証し、かつ、回路状態と入力スティミュラスの発生タイミングの同期を取ることで、従来手法での欠点を補うことができる。
【００２６】
図２（ａ）は、アナログ回路テストシステムの概略構成図の一例を示す。アナログ回路テストシステムは、テストベンチ作成装置１００とアナログ回路シミュレータ２００とを有する。テストベンチ作成装置１００とアナログ回路シミュレータ２００はＰＣ（パーソナルコンピュータ）やワークステーション等のコンピュータである。図２では説明のため、テストベンチ作成装置１００とアナログ回路シミュレータ２００を別々に示したが、１つのコンピュータにテストベンチ作成装置１００とアナログ回路シミュレータ２００を実装してもよい。テストベンチ作成装置１００とアナログ回路シミュレータ２００は、ネットワーク、又は、専用線を介して接続されている。
【００２７】
テストベンチ作成装置１００は、試験対象であるアナログ回路へ入力される、入力スティミュラスを生成するためのテストベンチを作成する。アナログ回路シミュレータ２００は、試験対象のアナログ回路をハードウェア記述言語等で記述することで、アナログ回路のモデルを生成している。このモデルにテストベンチ作成装置１００が作成したテストベンチを供給してアナログ回路を検証する（シミュレーションする）。
【００２８】
図２（ｂ）は、テストベンチ作成装置１００のハードウェア構成図の一例を示す。テストベンチ作成装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、記憶媒体装着部１０４、通信装置１０５、入力装置１０６、表示制御部１０７及びＨＤＤ（Hard  Disk  Drive）１０８を有する。ＣＰＵ１０１は、ＯＳ（Operating  System）やプログラム１１０をＨＤＤ１０８から読み出して実行することで種々の機能を提供すると共に、テストベンチ作成装置１００が行う処理を統括的に制御する。
【００２９】
ＲＡＭ１０２はＣＰＵ１０１がプログラム１１０を実行する際に必要なデータを一時保管する作業メモリ（主記憶メモリ）になり、ＲＯＭ１０３はＢＩＯＳ（Basic Input Output System）やＯＳを起動するためのプログラム、設定ファイルが記憶されている。
【００３０】
記憶媒体装着部１０４は記憶媒体１１１が着脱可能に構成されており、記憶媒体１１１に記録されたプログラム１１０やデータを読み込み、ＨＤＤ１０８にインストールする際と、記憶媒体１１１にデータを書き込む際に使用される。なお、記憶媒体１１１は、ＣＤやＤＶＤの光記録媒体やＳＤカードなどフラッシュメモリを実装した不揮発性のメモリであればよい。
【００３１】
通信装置１０５は、インターネットなどのネットワーク１３に接続するためのインターフェイスであり、ＴＣＰ／ＩＰより下層のプロトコル（物理層、データリンク層）にしたがいクライアント１１と通信する。
【００３２】
入力装置１０６は、キーボードやマウス、タッチパッド等であり、テストベンチ作成装置１００のユーザの様々な操作指示を受け付ける。表示制御部１０７は、プログラム１１０が指示する画面情報に基づき所定の解像度や色数等で液晶などのディスプレイ１０９に描画する。
【００３３】
ＨＤＤ１０８は、ＳＳＤ（Flash Solid State Drive）等の不揮発メモリでもよく、プログラム１１０が記憶されている。プログラム１１０は、記憶媒体１１１に記憶して配布されたり、ネットワークを介して接続された不図示のコンピュータからダウンロードされ、ＨＤＤ１０８にインストールされる。
【００３４】
図３は、テストベンチ作成装置１００の機能ブロック図の一例を示す。テストベンチ作成装置１００は、回路仕様指定手段１１、テスト仕様指定手段１２、状態検出テストベンチ生成手段１３、状態判定テストベンチ生成手段１４及びスティミュラス最適化テストベンチ生成手段１５を有する。各機能ブロックは、ＣＰＵ１０１がプログラムを実行すること、又は、ＣＰＵ１０１がハードウェアと協働してプログラム実行することで実現される。
【００３５】
また、テストベンチ作成装置１００は、状態検出テストベンチ１６、状態判定テストベンチ１７及びスティミュラス最適化テストベンチ１８（３つを区別しない場合、単にテストベンチという場合がある）を記憶する記憶手段を有する。この記憶手段は、具体的にはＨＤＤ１０８やＲＡＭ１０２である。
【００３６】
以下、図３の各機能ブロックの作用について図４のフローチャート図に基づき説明する。図４は、テストベンチ作成装置１００がテストベンチを生成する手順を示すフローチャート図の一例である。図４のフローチャート図は、例えば、ユーザがテストベンチ作成装置１００にテストベンチの作成を指示するとスタートする。
【００３７】
＜Ｓ１００＞ 
まず、回路仕様指定手段１１が、回路仕様情報２１を読み込み、ＲＡＭ１０２に格納する。回路仕様情報２１は、テストベンチ作成装置１００のＨＤＤ１０８等に予め記憶されている。または、所定のサーバからダウンロードしてもよいし、ユーザが入力装置から入力してもよい。本実施形態では回路仕様情報２１は１つだけとするが、回路仕様情報２１は複数あってもよく、複数ある場合は、回路仕様指定手段１１がユーザが指示した回路仕様情報２１、または、順番に全ての回路仕様情報２１をＲＡＭ１０２に格納する。
【００３８】
なお、記憶先のＲＡＭ１０２は一例でありＨＤＤ１０８に記憶したままでもよい。以下、回路仕様情報２１やテスト仕様情報２２の記憶手段は、ＲＡＭ１０２、ＨＤＤ１０８、その他の記憶手段を問わないものとする。
【００３９】
回路仕様情報２１とは、回路動作上の全状態（例えば、図１の全状態）、各状態毎の回路内部ノード（端子）の電圧又は電流の組み合わせ対応テーブル、その他、アナログ回路全体への入力電圧の閾値や動作周波数などの情報を意味している。
【００４０】
図５（ａ）は、回路仕様指定手段１１が読み込む、回路仕様情報２１の一例を示す図である。回路仕様情報２１は、回路動作上の全状態と、各状態における回路内部ノードの電圧（Ｈ／Ｌ）の組み合わせ対応テーブルである。図５（ａ）では、全状態のうち状態名「Initial」「Standby」「DCDCenabl」「SoftStart」「LowLoadMode」「HighLoadModel」「１００％Duty」「LimitDetect」「Latch」の各状態に対応する、回路内部ノードの電圧（Ｈ／Ｌ）の組み合わせ対応テーブルを示す。Node1〜Node9が、回路内部ノードを示す。Node1〜Node9の状態は回路の動作によって定まる。
【００４１】
図５（ａ）では、「L」，「H」，「CLK」，「＊」は電圧状態を示すマクロであり、「L」は入力閾値より低い電圧（例えば０V）、「H」は入力閾値より高い電圧（例えば3.3V）、「CLK」はクロック周波数でLとHに変化する電圧，「＊」は状態を問わないこと、をそれぞれ意味する。
【００４２】
図５（ａ）によれば、例えば状態名「LowLoadMode」での回路内部ノード（Node1〜Node9）の状態は、それぞれ、｛L，L，L，L，H，L，L，CLK，L｝であり、逆に回路内部ノード（Node1〜Node9）の状態がそれぞれ｛L，L，L，L，H，L，L，CLK，L｝であった場合、アナログ回路の状態は「LowLoadMode」であることを意味する。なお、回路内部ノードの数は、Ｈ、Ｌ、ＣＬＫにより各状態を指定できる数だけあればよく、状態と同じ数あれば十分である。
【００４３】
図５（ｂ）は回路仕様情報２１の補足情報の一例を示す。補足情報には、入力電圧の閾値やクロック周波数の情報等が登録されている。回路仕様指定手段１１は、必要に応じて補足情報を読み出し、回路内部ノードの電圧の組み合わせ対応テーブルを解釈する。図５（ｂ）では、入力電圧の閾値Vthが「１．５V」、クロック周波数ｆが「１．５MHｚ」である。したがって、「１．５V」より低い入力電圧は「Ｌ」、「１．５V」以上の入力電圧は「Ｈ」と判断される。
【００４４】
＜Ｓ２００＞
次に、テスト仕様指定手段１２がテスト仕様情報２２を読み込み、ＲＡＭ１０２等に格納する。テスト仕様情報２２は、テストベンチ作成装置１００のＨＤＤ１０８等に予め記憶されている。または、所定のサーバからダウンロードしてもよいし、ユーザが入力装置から入力してもよい。本実施形態ではテスト仕様情報２２は１つだけとするが、テスト仕様情報２２は１つのアナログ回路について複数あってもよい。
【００４５】
本実施形態のテスト仕様情報２２とは、回路機能を１つのテストで検証する際の、回路の状態遷移情報と、その遷移を起こす外部信号の情報を意味する。簡単に言えば、テスト仕様情報２２は正しい状態遷移の順番とタイミングを指定する。
【００４６】
図６は、テスト仕様情報２２の一例を示す図である。テスト仕様情報２２の最下段の行に、図１の（１）〜（６）の状態遷移の遷移順に対応して、各状態の状態名が左から右へ時系列に記述されている。最下段において状態名のないマスは、状態から状態に遷移する際に過渡状態があることを示す。図６では状態数は７個である。過渡状態に登録されている「Vin、CE、ILoad」の値が、「遷移を起こす外部信号の情報」であり、入力スティミュラスになる。
【００４７】
また、最上段の行「Slew  Time」は入力スティミュラスの値に到達するまでの過渡状態時間を、「Max  Time」は各状態を維持する最大時間を、それぞれ示す。例えば「LowLoadMode」の状態に着目すると、「500u秒」以上「LowLoadMode」状態が続いた場合、「HighLoadMode」に遷移しえない回路不具合があるというテストが可能となる。
【００４８】
「Vin（V）」は状態を遷移させる入力電圧値（電源電圧）を示す。「ILoad」は状態を遷移させる電流値（回路への負荷電流）を示す。また、ＣＥは"Ｃｈｉｐ  Ｅｎａｂｌｅ"の略で回路をアクティブにするために必要な電圧を示す。例えば、「Initial」の前の状態は、Vinが印可されず回路として動作していない状態であり、Vinが一定以上に印可されると回路は「Initial」状態となる。また、ＣＥが印可されないと回路はアクティブにならず、ＣＥが印可されて初めてアクティブになりその結果「Standby」状態になる。
【００４９】
また、入力スティミュラスは回路の状態と対応づけられているので、テスト仕様情報２２は入力スティミュラスの入力タイミングも同時に示している。例えば「ILoad」を例にとると、図6のテスト仕様情報２２から入力スティミュラスの１つである電流値（ILoad）が時間と共にどのように変化するかを示すことができる。なお、「Vin（V）」「CE(V)」「ILoad」の空白のマスは、その前のマスの値を引き継ぐ。
【００５０】
図７は、テスト仕様情報２２から得られた入力スティミュラスの電流値と時間の関係を示す図の一例である。図６では、「Initial」状態から「LowLoadMode」まで「ILoad」は「１ｍ〔A〕」、（５）の状態遷移では「３００ｍ〔A〕」、（６）の状態遷移では「１ｍ〔A〕」、である。また、（５）の状態遷移では、「１ｍ〔A〕」から「３００ｍ〔A〕」まで電流値を増大するのに「１usec」必要となる。同様に（６）の状態遷移では、「３００ｍ〔A〕」から「１ｍ〔A〕」まで電流値を減少させるのに「１usec」必要となる。
【００５１】
したがって、図７においても、「LowLoadMode」から「HigｈLoadMode」に遷移する過渡状態で「ILoad」は「１ｍ〔A〕」から「３００ｍ〔A〕」に上昇し始め、「HighLoadMode」から「LowLoadMode」に遷移する過渡状態で「ILoad」は「３００ｍ〔A〕」から「１ｍ〔A〕」に低下し始めている。
【００５２】
＜Ｓ３００>
次に、状態検出テストベンチ生成手段１３が、ＲＡＭ１０２に記憶されている回路仕様情報２１を用いて、シミュレーション中の回路状態を検出する状態検出テストベンチ１６を生成する。
【００５３】
図８は、図５に示した回路仕様情報２１に基づき生成される、状態検出テストベンチ１６のイメージ図の一例である。図５の回路仕様情報２１では９つのNode１〜Node９があるので、アナログ回路のイメージ図においても、状態判定に必要な回路内部ノード（Node1〜Node9）の数を９つとした。状態検出テストベンチ１６は回路内部ノードに対応した９つの入力端子を有することになる。状態検出テストベンチ１６は、シミュレータ等から入力端子に入力された信号の組み合わせから、検出した回路状態を数値化して１つの出力端子から出力する形式となっている。この数値化された数値が図５、図６の「Initial」から「Latch」までの各状態に対応する。
【００５４】
より詳細に抜粋の生成コードを用いて説明する。図９は、状態検出テストベンチ１６のコードの一例を示す図である。図９の｛ａの記述｝が回路仕様情報２１における全状態のそれぞれを状態数値により定義する。回路状態検出テストベンチ１６の出力端子から出力される数値が「０」の場合は「Undefined」を、「１」の場合は状態「Initial」を…、「９」の場合は状態「Latch」を、それぞれ意味する。状態検出テストベンチ生成手段１３は、回路仕様情報２１の各状態を時系列順に数値に対応づけることで｛ａの記述｝を生成する。
【００５５】
また、｛ｂの記述｝は、状態検出テストベンチ１６の９つの入力端子に入力される信号の値を格納する、９つの入力状態変数を定義したものである。｛ｂの記述｝により、９つの整数型の変数「logic_node１〜logic_node９」が確保される。変数を確保することで、シミュレーション中の回路状態を検出することが可能になる。状態検出テストベンチ生成手段１３は、回路仕様情報２１の「node１〜node９」に重複しない変数名を対応づけることで｛ｂの記述｝を生成する。
【００５６】
なお、回路内部ノードの状態判定については、図５のマクロに示したように、変数「logic_node１〜logic_node９」の値と、図５の「L」，「H」，「CLK」，「＊」を１行ずつ比較するためのコードを状態検出テストベンチ１６に記述することで実現する。このため、状態検出テストベンチ生成手段１３は、変数「logic_node１〜logic_node９」に与えられた入力信号と、「L」，「H」，「CLK」，「＊」を比較するコード、「logic_node１〜logic_node９」の各比較結果から、図５の回路仕様情報２１に一致する回路状態を決定し、状態数値「State」を出力するコード等を生成する。なお、状態検出テストベンチ生成手段１３は、生成したコードをＨＤＤ１０８に記憶する。
【００５７】
＜Ｓ４００＞
次に、状態判定テストベンチ生成手段１４は、ＲＡＭ１０２に保持されている回路仕様情報２１とテスト仕様情報２２を用いて、シミュレーション中の回路状態がテスト仕様通りか否かを判定する状態判定テストベンチ１７を生成する。
【００５８】
図１０は、状態判定テストベンチ１７のイメージ図の一例を示す。本実施形態では、状態判定テストベンチ１７が、図８に示す状態検出テストベンチ１６が出力する状態数値「State」を入力として受け付け、状態数値「State」が図６に示すテスト仕様情報２２に一致する場合は、状態遷移の番号「StateCount」を返す（出力する）構成としている。なお、状態遷移の番号「StateCount」は、遷移順に状態遷移に付与された整数である。
【００５９】
図１１は、具体的な状態判定テストベンチ１７のコードの一例を示す。図９に示した状態検出テストベンチ１６と同様、｛ａの記述｝により、図５に示した回路仕様情報２１の全状態に対し数値定義が行われる形でコードが生成されている。
【００６０】
また、図１１の｛ｂの記述｝は、状態遷移定義を表す。すなわち、図６に示すテスト仕様情報２２の状態遷移情報（１）〜（６）は、図１１の｛ｂの記述｝のように、状態遷移の数分の配列に数値として定義｛１，２，３，４，５，６，５｝される。配列に順に格納された数値が遷移することが、図１、６の（１）〜（６）の状態遷移情報に対応する。すなわち、配列において「１→２」の遷移が図１、６の（１）の状態遷移（Initial→Standby）、「２→３」の遷移が図１、６の（２）の状態遷移（Standby→DCDCenable）、「３→４」の遷移が図１、６の（３）の状態遷移（DCDCenable→SoftStart）、「４→５」の遷移が図１、６の（４）の状態遷移（SoftStart→LowLoadMode）、「５→６」の遷移が図１、６の（５）の状態遷移（LowLoadMode→HighLoadMode）、「６→５」の遷移が図１、６の（６）の状態遷移（HighLoadMode→LowLoadMode）に対応する。
【００６１】
また、数値定義｛１，２，３，４，５，６，５｝の配列の番号は、変数としての状態遷移の番号「StateCount」に格納される。配列の番号は「０」から始まるので、状態遷移の番号「StateCount」には「０，１，２，３，４，５，６」が格納される。例えば、状態判定テストベンチが動作し、例えば正常に状態数値「State」が「６」になると（HighLoadMode）、状態遷移の番号「StateCount」には「５」が格納される。さらに、その後、状態が遷移して状態数値「State」が「５」になると（LowLoadMode）、状態遷移の番号「StateCount」には「６」が格納される。
【００６２】
状態判定テストベンチ生成手段１４は、図６のテスト仕様情報２２の最下段の「State」に基づき、各状態遷移に対応づけて配列を定義し、配列に順番に数値｛１，２，３，４，５，６，５｝を定義するコードを記述する。この数値定義が｛ｂの記述｝に相当する。
【００６３】
また、図１１の｛ｃの記述｝は、状態保持Max時間定義である。｛ｃの記述｝により、図６のテスト仕様情報２２の「Max  Time」を格納する配列が定義され、配列に各状態の各「Max  Time」が記憶される。状態判定テストベンチ生成手段１４は、図６のテスト仕様情報２２の最下段の「State」に基づき、状態の数の分の配列を生成するコード、遷移順に順番に「Max  Time」を配列に定義するコードを生成する。図６の「Max  Time」が空欄の「State」に対応する配列には「０」が格納される。
【００６４】
ついで、状態判定テストベンチ１７に入力された状態数値「State」が図６に示すテスト仕様情報２２に一致するかどうかの処理について説明する。この処理には、
Ｉ．状態遷移が正しく行われているか否か、
II．状態保持が「Max  Time」を越えていないか、
という２つの判定項目がある。
【００６５】
Iの判定項目は、図１１の｛ｄの記述｝により判定される。｛ｄの記述｝に先立って、変数stateに、状態検出テストベンチ１６から状態数値「State」が設定される（｛ｆの記述｝）。変数state_countをゼロに初期化しておき、「state＝（入力信号からの取り込み）；」により変数stateに、状態検出テストベンチ１６から状態数値「State」が設定される。
【００６６】
次いで、｛ｄの記述｝により、入力された状態数値「State」が図１１の｛ｂの記述｝で定義された状態遷移の配列データと異なる場合（「state！＝state_flow[state_count]」）、エラーメッセージが出力され（＄strobe；）、シミュレーションが終了される（＄finish；）。｛ｆの記述｝と｛ｄの記述｝は、変数名だけで記述できるので、｛ｆの記述｝の変数名を例えば自動的に生成したり予め与えておけば、状態判定テストベンチ生成手段１４は、｛ｂの記述｝から変数名を取得することで、｛ｆの記述｝と｛ｄの記述｝のコードを出力できる。
【００６７】
次に、IIの判定項目は、図１１の｛ｅの記述｝により判定される。｛ｅの記述｝による処理「状態保持MAX時間判定処理」は、状態遷移が生じた場合（「state！＝oldstate」）に行われる。図１１には｛ｅの処理｝の具体的なコードは記載していないが、時間イベントを扱う関数を用いて、各状態で定義されている図１１の｛ｃの記述｝の時間の経過後に状態が変化しているかどうかを判定するコードが記載される。また、図１１の｛ｃの記述｝の時間の経過後に状態が変化していない場合、エラーメッセージの出力と共にシミュレーションを終了するコードが記載される。
【００６８】
状態判定テストベンチ生成手段１４は、図１１の｛ｃの記述｝で定義した配列データを読み出すコード、時間イベントを扱う関数を用いて読み出した時間の経過後に状態が変化しているかどうかを判定するコード、状態が変化していない場合にエラーメッセージの出力と共にシミュレーションを終了するコード、を生成する。
【００６９】
なお、｛ｇの記述｝は、変数state_countを状態遷移の番号「StateCount」として出力処理を定義する。
【００７０】
以上の｛ａ〜ｇの記述（コード）｝が状態判定テストベンチ１７である。状態判定テストベンチ生成手段１４は、状態判定テストベンチ１７をＨＤＤ１０８に記憶する。
【００７１】
状態判定テストベンチ１７によれば、シミュレーションの実行中に、アナログ回路の状態、状態遷移の順番や保持時間が、テスト仕様に従っているか否かを検証することができる。状態遷移がテスト仕様に従っている場合には、次述のステップＳ５００で、状態遷移のタイミングと、入力スティミュラスの発生タイミングの同期が取れることになる。また、テスト仕様と異なるシミュレーション結果となった場合には、ただちにシミュレーションを終了するため、同様に余分な検証工数を削減できる効果がある。
【００７２】
＜Ｓ５００＞
次に、スティミュラス最適化テストベンチ生成手段１５が、ＲＡＭ１０２に記憶されているテスト仕様情報２２を用いて、シミュレーション実行中の状態遷移に一致した、アナログ回路への入力スティミュラスを発生するスティミュラス最適化テストベンチ１８を生成する。
【００７３】
図１２は、スティミュラス最適化テストベンチ１８のイメージ図の一例を示す。スティミュラス最適化テストベンチ１８は、図５に示した回路仕様情報２１と図６に示したテスト仕様情報２２から生成される。本実施形態では、スティミュラス最適化テストベンチ１８への入力として図１０に示した状態判定テストベンチ１７が出力する状態遷移の番号「state_count」を受け付ける。そして、スティミュラス最適化テストベンチ生成手段１５は、図６に示したテスト仕様情報２２の各状態遷移の仕様に沿うよう、アナログ回路への入力スティミュラスを出力する。すなわち、図６の「state」が「state_count」により定まれば、入力スティミュラス「Vin」、「CE」、「ILoad」、及び、過渡状態時間「Slew Time」も決定する。入力スティミュラス「Vin」、「CE」、「ILoad」と過渡状態時間「Slew Time」により、アナログ回路シミュレータ２００は、過渡応答特性を検証できる。
【００７４】
図１３は、具体的なスティミュラス最適化テストベンチ１８のコードの一例を示す。図１３の｛ａの記述｝は、状態遷移とスティミュラス発生の定義を、｛ｂの記述｝は状態遷移とスティミュラス入力値の定義を、｛ｃの記述｝は状態遷移とスティミュラス入力スルー時間（過渡状態時間）の定義を、それぞれ意味する。｛a〜ｃの記述｝は、７つの要素を有する配列を定義している。各要素が各状態に１対１に対応する。
【００７５】
図１３の｛ａの記述｝は、「１」が記憶された要素に対応する状態は状態遷移の際に入力スティミュラスが必要なこと（過渡状態を経ること）を示す。図６のテスト仕様情報を参照すると、状態「Initial」は「Standby」状態に遷移する際、「Vin＝３．６V」の過渡状態を経るので、｛ａの記述｝の配列「Vin_in」の最初の要素が「１」となる。同様に、状態「Standby」は「DCDC enabl」状態に遷移する際、「CE＝３．６V」の過渡状態を経るので、｛ａの記述｝の配列「CE_in」の２番目の要素が「１」となる。同様に、状態「LowLoadMode」は「HighLoadMode」状態に遷移する際、「ILoad＝３００ｍA」の過渡状態を経るので、｛ａの記述｝の配列「ILoad_in」の５番目の要素が「１」となる。同様に、状態「HighLoadMode」は「LowLoadMode」状態に遷移する際、「ILoad＝１ｍA」の過渡状態を経るので、｛ａの記述｝の配列「ILoad_in」の６番目の要素が「１」となる。
【００７６】
図１３の｛ｂの記述｝は、｛ａの記述｝で「１」がある要素に対応して過渡状態の入力スティミュラス（電圧値、電流値）を格納する配列を記述する。したがって、｛ｂの記述｝の配列「Vin_val」の１番目の要素が「3.6」に、配列「CE_val」の２番目の要素が「3.6」に、配列「ILoad_val」の５番目の要素が「３００ｍ」に6番目の要素が「１ｍ」に、それぞれなっている。
【００７７】
図１３の｛ｃの記述｝は、｛ａの記述｝で「１」がある要素に対応して過渡時間情報（Slew Time）を格納する配列を記述する。したがって、｛ｃの記述｝の配列「Vin_slew」の１番目の要素に「1u」が、配列「CE_slew」の２番目の要素に「1u」が、配列「ILoad_slew」の５番目の要素と6番目の要素に「１u」が、それぞれ格納されている。
【００７８】
スティミュラス最適化テストベンチ生成手段１５は、図６のテスト仕様情報２２に基づき、図１３の｛ａ〜ｃの記述｝のコードを生成する。図１３の｛ａの記述｝で「１」を記述すべき配列の要素は、図６で入力スティミュラスが登録されている過渡状態の手前の状態である。｛ａの記述｝で「１」を記述すべき配列の要素が定まれば、スティミュラス最適化テストベンチ生成手段１５は｛ｂの記述｝｛ｃの記述｝を図6のテスト仕様情報から記述できる。
【００７９】
スティミュラス最適化テストベンチ１８には、状態遷移の番号「StateCount」が入力されるので、状態遷移の番号に基づき、プログラムが｛ｂの記述｝｛ｃの記述｝から要素を読み出せば、入力スティミュラス及び過渡時間情報が得られる。
【００８０】
このため、スティミュラス最適化テストベンチ生成手段１５は、状態遷移の番号「StateCount」に指定される、｛ａの記述｝の各配列の要素に「１」が格納されているか否かを判定するコード、「１」が格納されている場合、｛ｂの記述｝｛ｃの記述｝の対応する各要素からVin、CE、ILoad及びSlewTimeを読み出すコード、を生成する。図１３とこのコードがスティミュラス最適化テストベンチ１８である。スティミュラス最適化テストベンチ生成手段１５は、スティミュラス最適化テストベンチ１８をHDD１０８に記憶する。
【００８１】
ステップＳ４００で、入力スティミュラスのタイミングが正しいことが確認された上で、ステップＳ５００でテスト仕様指定情報２２に従った入力スティミュラスを出力するので、回路状態と入力スティミュラスの発生タイミングの同期を取ることができる。したがって、実際に正しい入力タイミングで過渡応答特性を検証できる。
【００８２】
〔アナログ回路シミュレータ２００〕
アナログ回路シミュレータ２００は、３つのテストベンチ「状態検出テストベンチ１６、状態判定テストベンチ１７、及び、スティミュラス最適化テストベンチ１８」、を接続してアナログ回路を検証する（シミュレーションする）。
【００８３】
図１４は、３つのテストベンチの接続を模式的に示す図の一例である。アナログ回路シミュレータ２００が、回路内部ノード「Node１〜９」の電圧を検出して信号を入力すると、状態検出テストベンチ１６が状態数値「State」を出力し、状態判定テストベンチ１７はこの状態数値「State」に基づき状態遷移の番号「StateCount」を出力し、スティミュラス最適化テストベンチ１８は状態遷移の番号「StateCount」からアナログ回路に入力する入力スティミュラス「Vin、CE、ILoad」を出力する。また、この入力スティミュラスを出力する際、スティミュラス最適化テストベンチ１８は、状態遷移の番号「StateCount」から「Slew  Time」を決定する。
【００８４】
これにより、アナログ回路シミュレータ２００は、SlewTimeの時間をかけて、入力スティミュラス「Vin、CE、ILoad」の値まで変化させながら入力スティミュラスをアナログ回路に入力することができる。
【００８５】
以上のように本実施形態によれば、シミュレーションの実行中に、アナログ回路の状態を状態判定テストベンチ１６を通して特定することが可能となり、さらに、状態判定テストベンチ１７により状態遷移がテスト仕様に従っているか（順番、保持時間）否かを検証することができる。状態遷移がテスト仕様に従っている場合には、状態遷移のタイミングと、入力スティミュラスの発生タイミングの同期が取れることになる。このため、入力スティミュラスのタイミングが正しいことが確認された上で、状態の過渡応答特性を検証できる。したがって、常に最適なシミュレーションポイント（タイミング）でアナログ回路に入力スティミュラスを発生させるテストベンチを生成することが可能となる。すなわち、複雑な状態遷移を経るアナログ回路であっても、入力スティミュラスが意図しない不適切な状態やタイミングで発生することを防止できる。
【００８６】
スティミュラス最適化テストベンチ１８が出力する入力スティミュラスは、常に最適なシミュレーションポイントで発生するので、ILoadの切り替えのタイミングを、予め決めておく必要がなく、入力タイミングのマージンの取りすぎやテストベンチの入力タイミング不具合に伴うシミュレーションのやり直しが発生せず、検証工数が削減できる効果がある。また、テスト仕様と異なるシミュレーション結果となった場合には、ただちにシミュレーションを終了するため、同様に余分な検証工数を削減できる効果がある。
【符号の説明】
【００８７】
１１    回路仕様指定手段
１２    テスト仕様指定手段
１３    状態検出テストベンチ生成手段
１４    状態判定テストベンチ生成手段
１５    スティミュラス最適化テストベンチ生成手段
１６    状態検出テストベンチ
１７    状態判定テストベンチ
１８    スティミュラス最適化テストベンチ
２１    回路仕様情報
２２    テスト仕様情報
１００  テストベンチ作成装置
２００  アナログ回路シミュレータ
【先行技術文献】
【特許文献】
【００８８】
【特許文献１】特開２００５‐１２２４９７号公報
【特許文献２】特開平０５−１４２３００号公報
【図１】
2011043978.tif 000003
【図２】
2011043978.tif 000004
【図３】
2011043978.tif 000005
【図４】
2011043978.tif 000006
【図５】
2011043978.tif 000007
【図６】
2011043978.tif 000008
【図７】
2011043978.tif 000009
【図８】
2011043978.tif 000010
【図９】
2011043978.tif 000011
【図１０】
2011043978.tif 000012
【図１１】
2011043978.tif 000013
【図１２】
2011043978.tif 000014
【図１３】
2011043978.tif 000015
【図１４】
2011043978.tif 000016
【図１５】
2011043978.tif 000017