テストベンチの作成方法、テストベンチ作成装置
【課題】アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法等を提供すること。
【解決手段】ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップS100と、テスト仕様指定情報を指定するステップS200と、回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップS300と、テスト仕様指定情報の時系列情報に、状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップS400と、テスト仕様指定情報に登録された電圧、電流まで過渡状態時間をかけて変化させるスティミュラス最適化テストベンチを生成するステップS500と、を有する。
【解決手段】ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップS100と、テスト仕様指定情報を指定するステップS200と、回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップS300と、テスト仕様指定情報の時系列情報に、状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップS400と、テスト仕様指定情報に登録された電圧、電流まで過渡状態時間をかけて変化させるスティミュラス最適化テストベンチを生成するステップS500と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アナログ回路の動作をシミュレータで検証する際に用いられるテストベンチの作成方法及びテストベンチ作成装置に関する。
【背景技術】
【0002】
アナログ回路の動作を回路シミュレータで検証する際、検証に用いるテストベンチを作成することが多いが、回路シミュレータの普及初期には少なからず作成工数が多いことが問題となっていた。作成工数が多くなる理由として以下の1〜4が挙げられる。
【0003】
第1の理由として、テストベンチ作成には、素子や電圧源の組合せ毎にそれぞれ回路図を作成する必要があったこと。
【0004】
第2の理由としては、アナログ回路の特性を様々な入力条件で見る必要性から、時系列での過渡応答特性解析だけでなく、入力条件をスイープ(掃引)させてのDC解析や、周波数をスイープさせてのAC解析など、必要なテストベンチの数が多いこと。
【0005】
第3の理由としては、過渡応答特性を見る場合に、入力スティミュラスの波形作成に手間がかかり、その上、入力スティミュラスが実際に正しい(所望の入力信号になっているか)かどうかはシミュレーションをしなければ分からなかったこと。
【0006】
第4の理由としては、過渡応答特性を見る場合に、入力スティミュラスのタイミング決定に手間がかかり、実際に正しい入力タイミングか否かはシミュレーションをしなければ分からなかったこと。
【0007】
上記第1〜第3の理由については、アナログ機能記述言語の普及と、市販の回路図作成ソフトウェアがアナログ機能記述言語を扱えるようになったことで改善されてきた。すなわち、テストベンチ中の素子の回路図の代わりにアナログ機能記述のシンボルを接続することで、アナログ機能記述のプログラム要素を用いて、テストベンチ作成の効率を大きく改善できるようになった(例えば、特許文献1参照。)。
【0008】
特許文献1には、アナログ機能記述ブロックをテストベンチの中に盛り込み、アナログ機能記述ブロックのプログラム要素を活用して、複数のテスト回路の要素を1つのアナログ機能記述ブロックの中に実現し、機能の切替を自動で行うテスト回路作成方法が開示されている。これにより、第1と第2の理由を解決することができる。
【0009】
また、第3の理由に示す問題についても、一般的なアナログ機能記述システムのプログラム要素を用いて、例えば複雑な周期性の入力スティミュラス等の作成が容易になったことで改善されている。また、入力スティミュラスの波形を調整する技術も提案されている(例えば、特許文献2参照。)。特許文献2には、アナログ機能記述システムには言及せずに、いくつかのパラメータを持つ波形のテンプレートを用意しておいて、入力スティミュラスを容易に得ることができるシミュレーション用電源入力装置が開示されている。なお、入力スティミュラスの調整は、アナログ機能記述システムを用いてもある程度実現可能である。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上記第4の理由に示す問題については、これまでアナログ機能記述システムを用いても解決されていなかった。回路の構造だけでなく複数の遷移状態(例えば、本願の図1)を持つような複雑な回路においては、状態に応じて外部からの入力スティミュラスを設定する記述が必要である。
【0011】
このため、図1に示すような状態遷移の動作確認を行う場合、例えばアナログ機能記述システムのプログラム要素を用いて、図15に示すような記述を行っていた。図15は、従来のアナログ機能記述システムのプログラム要素に設定するプログラムの一部を抜粋したものである。
【0012】
図15の「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)」)、1usecの立ち下がり時間で(「iload_falltime=1u;」)、小さな負荷電流(「iload_mode=0;」)に切替るスイッチが入る動作を記述する。
【0013】
このような記述を複数繰り返すことで、長い時間経過後又は複数の状態遷移後の入力スティミュラスの実現も可能となる。しかし、留意点として、例えば図15に示している「2msec」の数値や「2.3msec」の数値、すなわち負荷電流の切り替えのタイミングは、他の入力スティミュラスとの相関で決定されるものではなく、実際に状態が遷移したタイミングと同期していなければならない。図1を例に説明すると、「Low Load Mode → High Load Mode」の段落がスタートするのは(4)の遷移が完了した後、「High Load Mode → Low Load Mode」の段落がスタートするのは(5)の遷移が完了した後、である。このため、予め、回路状態の遷移時間を推定して、アナログ機能記述システムのプログラム要素に実数値を記述しなければならなかった。
【0014】
ところが、回路組上げ後に最初に検証を行う場合など、全体の動作実力の見積もりがつけにくいため、実際にどのようなタイミングで動作が遷移していくのかはシミュレーションをしてみないとわからない。
【0015】
実際にシミュレーションを行ってみると、入力スティミュラスが意図しない不適切な状態下のタイミングで発生し、無意味なテストベンチとなっていることが、しばしばシミュレーション後に判明することになった。
このような事例は、開発の初期段階だけでなく、特性向上のために回路改定を行った場合などでも同様に生じ、何度でも起こり得るものであり、特に1回の回路のシミュレーション時間が長い場合に、その非効率性が顕著になってきているという問題がある。
【0016】
本発明は、上記課題に鑑み、アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法及びテストベンチ作成装置を提供することを目的とする。
【課題を解決するための手段】
【0017】
上記課題に鑑み、本発明は、複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチの作成方法において、 回路仕様指定手段が、ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップと、テスト仕様指定手段が、状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間、の仕様を規定するテスト仕様指定情報、を指定するステップと、状態検出テストベンチ生成手段が、前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップと、状態判定テストベンチ生成手段が、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップと、スティミュラス最適化テストベンチ生成手段が、前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するステップと、を有することを特徴とする。
【0018】
状態検出テストベンチが検出した状態がテスト仕様と一致する場合に、テスト仕様指定情報に登録された電圧又は電流と前記過渡状態時間を出力するので、シミュレーション中の回路の状態をテストベンチを通して知ることが可能となり、さらに回路状態と入力スティミュラスの発生タイミングの同期が取れ、常に最適なタイミングで入力スティミュラスを生成できる。
【発明の効果】
【0019】
アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法及びテストベンチ作成装置を提供することができる。
【図面の簡単な説明】
【0020】
【図1】アナログ回路の状態遷移を模式的に示す状態遷移図の一例である。
【図2】アナログ回路テストシステムの概略構成図の一例である。
【図3】テストベンチ作成装置の機能ブロック図の一例である。
【図4】テストベンチ作成装置がテストベンチを生成する手順を示すフローチャート図の一例である。
【図5】回路仕様情報の一例を示す図である。
【図6】テスト仕様情報の一例を示す図である。
【図7】テスト仕様情報から得られた入力スティミュラスの電流値と時間の関係を示す図の一例である。
【図8】回路仕様情報に基づき生成される、状態検出テストベンチのイメージ図の一例である。
【図9】状態検出テストベンチのコードの一例を示す図である。
【図10】状態判定テストベンチのイメージ図の一例である。
【図11】具体的な状態判定テストベンチのコードの一例を示す図である。
【図12】スティミュラス最適化テストベンチのイメージ図の一例である。
【図13】スティミュラス最適化テストベンチのコードの一例を示す図である。
【図14】3つのテストベンチの接続を模式的に示す図の一例である。
【図15】従来のアナログ機能記述システムのプログラム要素に設定するプログラムの一部を示す図である。
【発明を実施するための形態】
【0021】
以下、本発明を実施するための形態を、図面を参照しながら説明する。
図1は、アナログ回路の状態遷移を模式的に示す状態遷移図の一例を示す。アナログ回路が搭載される装置(例えば、画像形成装置、プリンタ、ファクシミリ、その他、コンピュータ)の仕様により、アナログ回路は図示する状態遷移を経る。このため、アナログ回路の遷移応答特性は、図1の状態遷移図に基づき検証される。図1では、楕円がアナログ回路の各状態を表し、矢印線で結ばれた楕円は、矢印線の元の楕円から矢印線の先の楕円に状態が遷移することを意味する。また、矢印線の近くの記述は、状態が遷移するための条件を示す。本実施形態では、図1の(1)〜(6)で示した状態遷移について説明する。
【0022】
図1の(1)〜(6)の遷移順でアナログ回路が動作するか否かを検証するテストベンチを作成する際、例えば「(5)→(6)」の遷移を起こすテストベンチを作るためには、一旦、LowLoadModeの状態で安定してから(5)の遷移を起こす入力スティミュラス(負荷電流 小→大)を入力し、さらに(5)の遷移後、HighLoadModeの状態で安定してから(6)の遷移を起こす入力スティミュラス(負荷電流 大→小)を入力する必要がある。
【0023】
なお、入力スティミュラスとは、解析対象(アナログ回路)の各出力(駆動)ピンに注入する信号をいうが、本実施形態では、仕様に適合した態様で状態を遷移させる入力信号をいうものとする。また、上記の2.3msecや2.0msecは、入力スティミュラスの発生タイミングを指定するが、本実施形態では入力スティミュラスの発生タイミングが、正しい状態遷移が生じたタイミングに同期する。
【0024】
従来は、入力スティミュラス(負荷電流変化)の入力タイミングを所定の手法で算出した予測値で与えていた。しかし、例えば、実際にシミュレーションを実行中、予測値に反して(5)の遷移において、LowLoadMode状態での安定に時間を要した結果、HighLoadMode に遷移したがHighLoadModeで安定しないまま(6)の遷移を起こす入力スティミュラス(負荷電流 大→小)が入力されることも生じていた。この場合、所望のシミュレーションを実行できず、入力スティミュラスの入力タイミングを補正して再度シミュレーションを行う必要があった。
【0025】
本実施形態のアナログ回路テスト方法によれば、正しい状態遷移であることを検証し、かつ、回路状態と入力スティミュラスの発生タイミングの同期を取ることで、従来手法での欠点を補うことができる。
【0026】
図2(a)は、アナログ回路テストシステムの概略構成図の一例を示す。アナログ回路テストシステムは、テストベンチ作成装置100とアナログ回路シミュレータ200とを有する。テストベンチ作成装置100とアナログ回路シミュレータ200はPC(パーソナルコンピュータ)やワークステーション等のコンピュータである。図2では説明のため、テストベンチ作成装置100とアナログ回路シミュレータ200を別々に示したが、1つのコンピュータにテストベンチ作成装置100とアナログ回路シミュレータ200を実装してもよい。テストベンチ作成装置100とアナログ回路シミュレータ200は、ネットワーク、又は、専用線を介して接続されている。
【0027】
テストベンチ作成装置100は、試験対象であるアナログ回路へ入力される、入力スティミュラスを生成するためのテストベンチを作成する。アナログ回路シミュレータ200は、試験対象のアナログ回路をハードウェア記述言語等で記述することで、アナログ回路のモデルを生成している。このモデルにテストベンチ作成装置100が作成したテストベンチを供給してアナログ回路を検証する(シミュレーションする)。
【0028】
図2(b)は、テストベンチ作成装置100のハードウェア構成図の一例を示す。テストベンチ作成装置100は、CPU101、RAM102、ROM103、記憶媒体装着部104、通信装置105、入力装置106、表示制御部107及びHDD(Hard Disk Drive)108を有する。CPU101は、OS(Operating System)やプログラム110をHDD108から読み出して実行することで種々の機能を提供すると共に、テストベンチ作成装置100が行う処理を統括的に制御する。
【0029】
RAM102はCPU101がプログラム110を実行する際に必要なデータを一時保管する作業メモリ(主記憶メモリ)になり、ROM103はBIOS(Basic Input Output System)やOSを起動するためのプログラム、設定ファイルが記憶されている。
【0030】
記憶媒体装着部104は記憶媒体111が着脱可能に構成されており、記憶媒体111に記録されたプログラム110やデータを読み込み、HDD108にインストールする際と、記憶媒体111にデータを書き込む際に使用される。なお、記憶媒体111は、CDやDVDの光記録媒体やSDカードなどフラッシュメモリを実装した不揮発性のメモリであればよい。
【0031】
通信装置105は、インターネットなどのネットワーク13に接続するためのインターフェイスであり、TCP/IPより下層のプロトコル(物理層、データリンク層)にしたがいクライアント11と通信する。
【0032】
入力装置106は、キーボードやマウス、タッチパッド等であり、テストベンチ作成装置100のユーザの様々な操作指示を受け付ける。表示制御部107は、プログラム110が指示する画面情報に基づき所定の解像度や色数等で液晶などのディスプレイ109に描画する。
【0033】
HDD108は、SSD(Flash Solid State Drive)等の不揮発メモリでもよく、プログラム110が記憶されている。プログラム110は、記憶媒体111に記憶して配布されたり、ネットワークを介して接続された不図示のコンピュータからダウンロードされ、HDD108にインストールされる。
【0034】
図3は、テストベンチ作成装置100の機能ブロック図の一例を示す。テストベンチ作成装置100は、回路仕様指定手段11、テスト仕様指定手段12、状態検出テストベンチ生成手段13、状態判定テストベンチ生成手段14及びスティミュラス最適化テストベンチ生成手段15を有する。各機能ブロックは、CPU101がプログラムを実行すること、又は、CPU101がハードウェアと協働してプログラム実行することで実現される。
【0035】
また、テストベンチ作成装置100は、状態検出テストベンチ16、状態判定テストベンチ17及びスティミュラス最適化テストベンチ18(3つを区別しない場合、単にテストベンチという場合がある)を記憶する記憶手段を有する。この記憶手段は、具体的にはHDD108やRAM102である。
【0036】
以下、図3の各機能ブロックの作用について図4のフローチャート図に基づき説明する。図4は、テストベンチ作成装置100がテストベンチを生成する手順を示すフローチャート図の一例である。図4のフローチャート図は、例えば、ユーザがテストベンチ作成装置100にテストベンチの作成を指示するとスタートする。
【0037】
<S100>
まず、回路仕様指定手段11が、回路仕様情報21を読み込み、RAM102に格納する。回路仕様情報21は、テストベンチ作成装置100のHDD108等に予め記憶されている。または、所定のサーバからダウンロードしてもよいし、ユーザが入力装置から入力してもよい。本実施形態では回路仕様情報21は1つだけとするが、回路仕様情報21は複数あってもよく、複数ある場合は、回路仕様指定手段11がユーザが指示した回路仕様情報21、または、順番に全ての回路仕様情報21をRAM102に格納する。
【0038】
なお、記憶先のRAM102は一例でありHDD108に記憶したままでもよい。以下、回路仕様情報21やテスト仕様情報22の記憶手段は、RAM102、HDD108、その他の記憶手段を問わないものとする。
【0039】
回路仕様情報21とは、回路動作上の全状態(例えば、図1の全状態)、各状態毎の回路内部ノード(端子)の電圧又は電流の組み合わせ対応テーブル、その他、アナログ回路全体への入力電圧の閾値や動作周波数などの情報を意味している。
【0040】
図5(a)は、回路仕様指定手段11が読み込む、回路仕様情報21の一例を示す図である。回路仕様情報21は、回路動作上の全状態と、各状態における回路内部ノードの電圧(H/L)の組み合わせ対応テーブルである。図5(a)では、全状態のうち状態名「Initial」「Standby」「DCDCenabl」「SoftStart」「LowLoadMode」「HighLoadModel」「100%Duty」「LimitDetect」「Latch」の各状態に対応する、回路内部ノードの電圧(H/L)の組み合わせ対応テーブルを示す。Node1〜Node9が、回路内部ノードを示す。Node1〜Node9の状態は回路の動作によって定まる。
【0041】
図5(a)では、「L」,「H」,「CLK」,「*」は電圧状態を示すマクロであり、「L」は入力閾値より低い電圧(例えば0V)、「H」は入力閾値より高い電圧(例えば3.3V)、「CLK」はクロック周波数でLとHに変化する電圧,「*」は状態を問わないこと、をそれぞれ意味する。
【0042】
図5(a)によれば、例えば状態名「LowLoadMode」での回路内部ノード(Node1〜Node9)の状態は、それぞれ、{L,L,L,L,H,L,L,CLK,L}であり、逆に回路内部ノード(Node1〜Node9)の状態がそれぞれ{L,L,L,L,H,L,L,CLK,L}であった場合、アナログ回路の状態は「LowLoadMode」であることを意味する。なお、回路内部ノードの数は、H、L、CLKにより各状態を指定できる数だけあればよく、状態と同じ数あれば十分である。
【0043】
図5(b)は回路仕様情報21の補足情報の一例を示す。補足情報には、入力電圧の閾値やクロック周波数の情報等が登録されている。回路仕様指定手段11は、必要に応じて補足情報を読み出し、回路内部ノードの電圧の組み合わせ対応テーブルを解釈する。図5(b)では、入力電圧の閾値Vthが「1.5V」、クロック周波数fが「1.5MHz」である。したがって、「1.5V」より低い入力電圧は「L」、「1.5V」以上の入力電圧は「H」と判断される。
【0044】
<S200>
次に、テスト仕様指定手段12がテスト仕様情報22を読み込み、RAM102等に格納する。テスト仕様情報22は、テストベンチ作成装置100のHDD108等に予め記憶されている。または、所定のサーバからダウンロードしてもよいし、ユーザが入力装置から入力してもよい。本実施形態ではテスト仕様情報22は1つだけとするが、テスト仕様情報22は1つのアナログ回路について複数あってもよい。
【0045】
本実施形態のテスト仕様情報22とは、回路機能を1つのテストで検証する際の、回路の状態遷移情報と、その遷移を起こす外部信号の情報を意味する。簡単に言えば、テスト仕様情報22は正しい状態遷移の順番とタイミングを指定する。
【0046】
図6は、テスト仕様情報22の一例を示す図である。テスト仕様情報22の最下段の行に、図1の(1)〜(6)の状態遷移の遷移順に対応して、各状態の状態名が左から右へ時系列に記述されている。最下段において状態名のないマスは、状態から状態に遷移する際に過渡状態があることを示す。図6では状態数は7個である。過渡状態に登録されている「Vin、CE、ILoad」の値が、「遷移を起こす外部信号の情報」であり、入力スティミュラスになる。
【0047】
また、最上段の行「Slew Time」は入力スティミュラスの値に到達するまでの過渡状態時間を、「Max Time」は各状態を維持する最大時間を、それぞれ示す。例えば「LowLoadMode」の状態に着目すると、「500u秒」以上「LowLoadMode」状態が続いた場合、「HighLoadMode」に遷移しえない回路不具合があるというテストが可能となる。
【0048】
「Vin(V)」は状態を遷移させる入力電圧値(電源電圧)を示す。「ILoad」は状態を遷移させる電流値(回路への負荷電流)を示す。また、CEは"Chip Enable"の略で回路をアクティブにするために必要な電圧を示す。例えば、「Initial」の前の状態は、Vinが印可されず回路として動作していない状態であり、Vinが一定以上に印可されると回路は「Initial」状態となる。また、CEが印可されないと回路はアクティブにならず、CEが印可されて初めてアクティブになりその結果「Standby」状態になる。
【0049】
また、入力スティミュラスは回路の状態と対応づけられているので、テスト仕様情報22は入力スティミュラスの入力タイミングも同時に示している。例えば「ILoad」を例にとると、図6のテスト仕様情報22から入力スティミュラスの1つである電流値(ILoad)が時間と共にどのように変化するかを示すことができる。なお、「Vin(V)」「CE(V)」「ILoad」の空白のマスは、その前のマスの値を引き継ぐ。
【0050】
図7は、テスト仕様情報22から得られた入力スティミュラスの電流値と時間の関係を示す図の一例である。図6では、「Initial」状態から「LowLoadMode」まで「ILoad」は「1m〔A〕」、(5)の状態遷移では「300m〔A〕」、(6)の状態遷移では「1m〔A〕」、である。また、(5)の状態遷移では、「1m〔A〕」から「300m〔A〕」まで電流値を増大するのに「1usec」必要となる。同様に(6)の状態遷移では、「300m〔A〕」から「1m〔A〕」まで電流値を減少させるのに「1usec」必要となる。
【0051】
したがって、図7においても、「LowLoadMode」から「HighLoadMode」に遷移する過渡状態で「ILoad」は「1m〔A〕」から「300m〔A〕」に上昇し始め、「HighLoadMode」から「LowLoadMode」に遷移する過渡状態で「ILoad」は「300m〔A〕」から「1m〔A〕」に低下し始めている。
【0052】
<S300>
次に、状態検出テストベンチ生成手段13が、RAM102に記憶されている回路仕様情報21を用いて、シミュレーション中の回路状態を検出する状態検出テストベンチ16を生成する。
【0053】
図8は、図5に示した回路仕様情報21に基づき生成される、状態検出テストベンチ16のイメージ図の一例である。図5の回路仕様情報21では9つのNode1〜Node9があるので、アナログ回路のイメージ図においても、状態判定に必要な回路内部ノード(Node1〜Node9)の数を9つとした。状態検出テストベンチ16は回路内部ノードに対応した9つの入力端子を有することになる。状態検出テストベンチ16は、シミュレータ等から入力端子に入力された信号の組み合わせから、検出した回路状態を数値化して1つの出力端子から出力する形式となっている。この数値化された数値が図5、図6の「Initial」から「Latch」までの各状態に対応する。
【0054】
より詳細に抜粋の生成コードを用いて説明する。図9は、状態検出テストベンチ16のコードの一例を示す図である。図9の{aの記述}が回路仕様情報21における全状態のそれぞれを状態数値により定義する。回路状態検出テストベンチ16の出力端子から出力される数値が「0」の場合は「Undefined」を、「1」の場合は状態「Initial」を…、「9」の場合は状態「Latch」を、それぞれ意味する。状態検出テストベンチ生成手段13は、回路仕様情報21の各状態を時系列順に数値に対応づけることで{aの記述}を生成する。
【0055】
また、{bの記述}は、状態検出テストベンチ16の9つの入力端子に入力される信号の値を格納する、9つの入力状態変数を定義したものである。{bの記述}により、9つの整数型の変数「logic_node1〜logic_node9」が確保される。変数を確保することで、シミュレーション中の回路状態を検出することが可能になる。状態検出テストベンチ生成手段13は、回路仕様情報21の「node1〜node9」に重複しない変数名を対応づけることで{bの記述}を生成する。
【0056】
なお、回路内部ノードの状態判定については、図5のマクロに示したように、変数「logic_node1〜logic_node9」の値と、図5の「L」,「H」,「CLK」,「*」を1行ずつ比較するためのコードを状態検出テストベンチ16に記述することで実現する。このため、状態検出テストベンチ生成手段13は、変数「logic_node1〜logic_node9」に与えられた入力信号と、「L」,「H」,「CLK」,「*」を比較するコード、「logic_node1〜logic_node9」の各比較結果から、図5の回路仕様情報21に一致する回路状態を決定し、状態数値「State」を出力するコード等を生成する。なお、状態検出テストベンチ生成手段13は、生成したコードをHDD108に記憶する。
【0057】
<S400>
次に、状態判定テストベンチ生成手段14は、RAM102に保持されている回路仕様情報21とテスト仕様情報22を用いて、シミュレーション中の回路状態がテスト仕様通りか否かを判定する状態判定テストベンチ17を生成する。
【0058】
図10は、状態判定テストベンチ17のイメージ図の一例を示す。本実施形態では、状態判定テストベンチ17が、図8に示す状態検出テストベンチ16が出力する状態数値「State」を入力として受け付け、状態数値「State」が図6に示すテスト仕様情報22に一致する場合は、状態遷移の番号「StateCount」を返す(出力する)構成としている。なお、状態遷移の番号「StateCount」は、遷移順に状態遷移に付与された整数である。
【0059】
図11は、具体的な状態判定テストベンチ17のコードの一例を示す。図9に示した状態検出テストベンチ16と同様、{aの記述}により、図5に示した回路仕様情報21の全状態に対し数値定義が行われる形でコードが生成されている。
【0060】
また、図11の{bの記述}は、状態遷移定義を表す。すなわち、図6に示すテスト仕様情報22の状態遷移情報(1)〜(6)は、図11の{bの記述}のように、状態遷移の数分の配列に数値として定義{1,2,3,4,5,6,5}される。配列に順に格納された数値が遷移することが、図1、6の(1)〜(6)の状態遷移情報に対応する。すなわち、配列において「1→2」の遷移が図1、6の(1)の状態遷移(Initial→Standby)、「2→3」の遷移が図1、6の(2)の状態遷移(Standby→DCDCenable)、「3→4」の遷移が図1、6の(3)の状態遷移(DCDCenable→SoftStart)、「4→5」の遷移が図1、6の(4)の状態遷移(SoftStart→LowLoadMode)、「5→6」の遷移が図1、6の(5)の状態遷移(LowLoadMode→HighLoadMode)、「6→5」の遷移が図1、6の(6)の状態遷移(HighLoadMode→LowLoadMode)に対応する。
【0061】
また、数値定義{1,2,3,4,5,6,5}の配列の番号は、変数としての状態遷移の番号「StateCount」に格納される。配列の番号は「0」から始まるので、状態遷移の番号「StateCount」には「0,1,2,3,4,5,6」が格納される。例えば、状態判定テストベンチが動作し、例えば正常に状態数値「State」が「6」になると(HighLoadMode)、状態遷移の番号「StateCount」には「5」が格納される。さらに、その後、状態が遷移して状態数値「State」が「5」になると(LowLoadMode)、状態遷移の番号「StateCount」には「6」が格納される。
【0062】
状態判定テストベンチ生成手段14は、図6のテスト仕様情報22の最下段の「State」に基づき、各状態遷移に対応づけて配列を定義し、配列に順番に数値{1,2,3,4,5,6,5}を定義するコードを記述する。この数値定義が{bの記述}に相当する。
【0063】
また、図11の{cの記述}は、状態保持Max時間定義である。{cの記述}により、図6のテスト仕様情報22の「Max Time」を格納する配列が定義され、配列に各状態の各「Max Time」が記憶される。状態判定テストベンチ生成手段14は、図6のテスト仕様情報22の最下段の「State」に基づき、状態の数の分の配列を生成するコード、遷移順に順番に「Max Time」を配列に定義するコードを生成する。図6の「Max Time」が空欄の「State」に対応する配列には「0」が格納される。
【0064】
ついで、状態判定テストベンチ17に入力された状態数値「State」が図6に示すテスト仕様情報22に一致するかどうかの処理について説明する。この処理には、
I.状態遷移が正しく行われているか否か、
II.状態保持が「Max Time」を越えていないか、
という2つの判定項目がある。
【0065】
Iの判定項目は、図11の{dの記述}により判定される。{dの記述}に先立って、変数stateに、状態検出テストベンチ16から状態数値「State」が設定される({fの記述})。変数state_countをゼロに初期化しておき、「state=(入力信号からの取り込み);」により変数stateに、状態検出テストベンチ16から状態数値「State」が設定される。
【0066】
次いで、{dの記述}により、入力された状態数値「State」が図11の{bの記述}で定義された状態遷移の配列データと異なる場合(「state!=state_flow[state_count]」)、エラーメッセージが出力され($strobe;)、シミュレーションが終了される($finish;)。{fの記述}と{dの記述}は、変数名だけで記述できるので、{fの記述}の変数名を例えば自動的に生成したり予め与えておけば、状態判定テストベンチ生成手段14は、{bの記述}から変数名を取得することで、{fの記述}と{dの記述}のコードを出力できる。
【0067】
次に、IIの判定項目は、図11の{eの記述}により判定される。{eの記述}による処理「状態保持MAX時間判定処理」は、状態遷移が生じた場合(「state!=oldstate」)に行われる。図11には{eの処理}の具体的なコードは記載していないが、時間イベントを扱う関数を用いて、各状態で定義されている図11の{cの記述}の時間の経過後に状態が変化しているかどうかを判定するコードが記載される。また、図11の{cの記述}の時間の経過後に状態が変化していない場合、エラーメッセージの出力と共にシミュレーションを終了するコードが記載される。
【0068】
状態判定テストベンチ生成手段14は、図11の{cの記述}で定義した配列データを読み出すコード、時間イベントを扱う関数を用いて読み出した時間の経過後に状態が変化しているかどうかを判定するコード、状態が変化していない場合にエラーメッセージの出力と共にシミュレーションを終了するコード、を生成する。
【0069】
なお、{gの記述}は、変数state_countを状態遷移の番号「StateCount」として出力処理を定義する。
【0070】
以上の{a〜gの記述(コード)}が状態判定テストベンチ17である。状態判定テストベンチ生成手段14は、状態判定テストベンチ17をHDD108に記憶する。
【0071】
状態判定テストベンチ17によれば、シミュレーションの実行中に、アナログ回路の状態、状態遷移の順番や保持時間が、テスト仕様に従っているか否かを検証することができる。状態遷移がテスト仕様に従っている場合には、次述のステップS500で、状態遷移のタイミングと、入力スティミュラスの発生タイミングの同期が取れることになる。また、テスト仕様と異なるシミュレーション結果となった場合には、ただちにシミュレーションを終了するため、同様に余分な検証工数を削減できる効果がある。
【0072】
<S500>
次に、スティミュラス最適化テストベンチ生成手段15が、RAM102に記憶されているテスト仕様情報22を用いて、シミュレーション実行中の状態遷移に一致した、アナログ回路への入力スティミュラスを発生するスティミュラス最適化テストベンチ18を生成する。
【0073】
図12は、スティミュラス最適化テストベンチ18のイメージ図の一例を示す。スティミュラス最適化テストベンチ18は、図5に示した回路仕様情報21と図6に示したテスト仕様情報22から生成される。本実施形態では、スティミュラス最適化テストベンチ18への入力として図10に示した状態判定テストベンチ17が出力する状態遷移の番号「state_count」を受け付ける。そして、スティミュラス最適化テストベンチ生成手段15は、図6に示したテスト仕様情報22の各状態遷移の仕様に沿うよう、アナログ回路への入力スティミュラスを出力する。すなわち、図6の「state」が「state_count」により定まれば、入力スティミュラス「Vin」、「CE」、「ILoad」、及び、過渡状態時間「Slew Time」も決定する。入力スティミュラス「Vin」、「CE」、「ILoad」と過渡状態時間「Slew Time」により、アナログ回路シミュレータ200は、過渡応答特性を検証できる。
【0074】
図13は、具体的なスティミュラス最適化テストベンチ18のコードの一例を示す。図13の{aの記述}は、状態遷移とスティミュラス発生の定義を、{bの記述}は状態遷移とスティミュラス入力値の定義を、{cの記述}は状態遷移とスティミュラス入力スルー時間(過渡状態時間)の定義を、それぞれ意味する。{a〜cの記述}は、7つの要素を有する配列を定義している。各要素が各状態に1対1に対応する。
【0075】
図13の{aの記述}は、「1」が記憶された要素に対応する状態は状態遷移の際に入力スティミュラスが必要なこと(過渡状態を経ること)を示す。図6のテスト仕様情報を参照すると、状態「Initial」は「Standby」状態に遷移する際、「Vin=3.6V」の過渡状態を経るので、{aの記述}の配列「Vin_in」の最初の要素が「1」となる。同様に、状態「Standby」は「DCDC enabl」状態に遷移する際、「CE=3.6V」の過渡状態を経るので、{aの記述}の配列「CE_in」の2番目の要素が「1」となる。同様に、状態「LowLoadMode」は「HighLoadMode」状態に遷移する際、「ILoad=300mA」の過渡状態を経るので、{aの記述}の配列「ILoad_in」の5番目の要素が「1」となる。同様に、状態「HighLoadMode」は「LowLoadMode」状態に遷移する際、「ILoad=1mA」の過渡状態を経るので、{aの記述}の配列「ILoad_in」の6番目の要素が「1」となる。
【0076】
図13の{bの記述}は、{aの記述}で「1」がある要素に対応して過渡状態の入力スティミュラス(電圧値、電流値)を格納する配列を記述する。したがって、{bの記述}の配列「Vin_val」の1番目の要素が「3.6」に、配列「CE_val」の2番目の要素が「3.6」に、配列「ILoad_val」の5番目の要素が「300m」に6番目の要素が「1m」に、それぞれなっている。
【0077】
図13の{cの記述}は、{aの記述}で「1」がある要素に対応して過渡時間情報(Slew Time)を格納する配列を記述する。したがって、{cの記述}の配列「Vin_slew」の1番目の要素に「1u」が、配列「CE_slew」の2番目の要素に「1u」が、配列「ILoad_slew」の5番目の要素と6番目の要素に「1u」が、それぞれ格納されている。
【0078】
スティミュラス最適化テストベンチ生成手段15は、図6のテスト仕様情報22に基づき、図13の{a〜cの記述}のコードを生成する。図13の{aの記述}で「1」を記述すべき配列の要素は、図6で入力スティミュラスが登録されている過渡状態の手前の状態である。{aの記述}で「1」を記述すべき配列の要素が定まれば、スティミュラス最適化テストベンチ生成手段15は{bの記述}{cの記述}を図6のテスト仕様情報から記述できる。
【0079】
スティミュラス最適化テストベンチ18には、状態遷移の番号「StateCount」が入力されるので、状態遷移の番号に基づき、プログラムが{bの記述}{cの記述}から要素を読み出せば、入力スティミュラス及び過渡時間情報が得られる。
【0080】
このため、スティミュラス最適化テストベンチ生成手段15は、状態遷移の番号「StateCount」に指定される、{aの記述}の各配列の要素に「1」が格納されているか否かを判定するコード、「1」が格納されている場合、{bの記述}{cの記述}の対応する各要素からVin、CE、ILoad及びSlewTimeを読み出すコード、を生成する。図13とこのコードがスティミュラス最適化テストベンチ18である。スティミュラス最適化テストベンチ生成手段15は、スティミュラス最適化テストベンチ18をHDD108に記憶する。
【0081】
ステップS400で、入力スティミュラスのタイミングが正しいことが確認された上で、ステップS500でテスト仕様指定情報22に従った入力スティミュラスを出力するので、回路状態と入力スティミュラスの発生タイミングの同期を取ることができる。したがって、実際に正しい入力タイミングで過渡応答特性を検証できる。
【0082】
〔アナログ回路シミュレータ200〕
アナログ回路シミュレータ200は、3つのテストベンチ「状態検出テストベンチ16、状態判定テストベンチ17、及び、スティミュラス最適化テストベンチ18」、を接続してアナログ回路を検証する(シミュレーションする)。
【0083】
図14は、3つのテストベンチの接続を模式的に示す図の一例である。アナログ回路シミュレータ200が、回路内部ノード「Node1〜9」の電圧を検出して信号を入力すると、状態検出テストベンチ16が状態数値「State」を出力し、状態判定テストベンチ17はこの状態数値「State」に基づき状態遷移の番号「StateCount」を出力し、スティミュラス最適化テストベンチ18は状態遷移の番号「StateCount」からアナログ回路に入力する入力スティミュラス「Vin、CE、ILoad」を出力する。また、この入力スティミュラスを出力する際、スティミュラス最適化テストベンチ18は、状態遷移の番号「StateCount」から「Slew Time」を決定する。
【0084】
これにより、アナログ回路シミュレータ200は、SlewTimeの時間をかけて、入力スティミュラス「Vin、CE、ILoad」の値まで変化させながら入力スティミュラスをアナログ回路に入力することができる。
【0085】
以上のように本実施形態によれば、シミュレーションの実行中に、アナログ回路の状態を状態判定テストベンチ16を通して特定することが可能となり、さらに、状態判定テストベンチ17により状態遷移がテスト仕様に従っているか(順番、保持時間)否かを検証することができる。状態遷移がテスト仕様に従っている場合には、状態遷移のタイミングと、入力スティミュラスの発生タイミングの同期が取れることになる。このため、入力スティミュラスのタイミングが正しいことが確認された上で、状態の過渡応答特性を検証できる。したがって、常に最適なシミュレーションポイント(タイミング)でアナログ回路に入力スティミュラスを発生させるテストベンチを生成することが可能となる。すなわち、複雑な状態遷移を経るアナログ回路であっても、入力スティミュラスが意図しない不適切な状態やタイミングで発生することを防止できる。
【0086】
スティミュラス最適化テストベンチ18が出力する入力スティミュラスは、常に最適なシミュレーションポイントで発生するので、ILoadの切り替えのタイミングを、予め決めておく必要がなく、入力タイミングのマージンの取りすぎやテストベンチの入力タイミング不具合に伴うシミュレーションのやり直しが発生せず、検証工数が削減できる効果がある。また、テスト仕様と異なるシミュレーション結果となった場合には、ただちにシミュレーションを終了するため、同様に余分な検証工数を削減できる効果がある。
【符号の説明】
【0087】
11 回路仕様指定手段
12 テスト仕様指定手段
13 状態検出テストベンチ生成手段
14 状態判定テストベンチ生成手段
15 スティミュラス最適化テストベンチ生成手段
16 状態検出テストベンチ
17 状態判定テストベンチ
18 スティミュラス最適化テストベンチ
21 回路仕様情報
22 テスト仕様情報
100 テストベンチ作成装置
200 アナログ回路シミュレータ
【先行技術文献】
【特許文献】
【0088】
【特許文献1】特開2005‐122497号公報
【特許文献2】特開平05−142300号公報
【技術分野】
【0001】
本発明は、アナログ回路の動作をシミュレータで検証する際に用いられるテストベンチの作成方法及びテストベンチ作成装置に関する。
【背景技術】
【0002】
アナログ回路の動作を回路シミュレータで検証する際、検証に用いるテストベンチを作成することが多いが、回路シミュレータの普及初期には少なからず作成工数が多いことが問題となっていた。作成工数が多くなる理由として以下の1〜4が挙げられる。
【0003】
第1の理由として、テストベンチ作成には、素子や電圧源の組合せ毎にそれぞれ回路図を作成する必要があったこと。
【0004】
第2の理由としては、アナログ回路の特性を様々な入力条件で見る必要性から、時系列での過渡応答特性解析だけでなく、入力条件をスイープ(掃引)させてのDC解析や、周波数をスイープさせてのAC解析など、必要なテストベンチの数が多いこと。
【0005】
第3の理由としては、過渡応答特性を見る場合に、入力スティミュラスの波形作成に手間がかかり、その上、入力スティミュラスが実際に正しい(所望の入力信号になっているか)かどうかはシミュレーションをしなければ分からなかったこと。
【0006】
第4の理由としては、過渡応答特性を見る場合に、入力スティミュラスのタイミング決定に手間がかかり、実際に正しい入力タイミングか否かはシミュレーションをしなければ分からなかったこと。
【0007】
上記第1〜第3の理由については、アナログ機能記述言語の普及と、市販の回路図作成ソフトウェアがアナログ機能記述言語を扱えるようになったことで改善されてきた。すなわち、テストベンチ中の素子の回路図の代わりにアナログ機能記述のシンボルを接続することで、アナログ機能記述のプログラム要素を用いて、テストベンチ作成の効率を大きく改善できるようになった(例えば、特許文献1参照。)。
【0008】
特許文献1には、アナログ機能記述ブロックをテストベンチの中に盛り込み、アナログ機能記述ブロックのプログラム要素を活用して、複数のテスト回路の要素を1つのアナログ機能記述ブロックの中に実現し、機能の切替を自動で行うテスト回路作成方法が開示されている。これにより、第1と第2の理由を解決することができる。
【0009】
また、第3の理由に示す問題についても、一般的なアナログ機能記述システムのプログラム要素を用いて、例えば複雑な周期性の入力スティミュラス等の作成が容易になったことで改善されている。また、入力スティミュラスの波形を調整する技術も提案されている(例えば、特許文献2参照。)。特許文献2には、アナログ機能記述システムには言及せずに、いくつかのパラメータを持つ波形のテンプレートを用意しておいて、入力スティミュラスを容易に得ることができるシミュレーション用電源入力装置が開示されている。なお、入力スティミュラスの調整は、アナログ機能記述システムを用いてもある程度実現可能である。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上記第4の理由に示す問題については、これまでアナログ機能記述システムを用いても解決されていなかった。回路の構造だけでなく複数の遷移状態(例えば、本願の図1)を持つような複雑な回路においては、状態に応じて外部からの入力スティミュラスを設定する記述が必要である。
【0011】
このため、図1に示すような状態遷移の動作確認を行う場合、例えばアナログ機能記述システムのプログラム要素を用いて、図15に示すような記述を行っていた。図15は、従来のアナログ機能記述システムのプログラム要素に設定するプログラムの一部を抜粋したものである。
【0012】
図15の「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)」)、1usecの立ち下がり時間で(「iload_falltime=1u;」)、小さな負荷電流(「iload_mode=0;」)に切替るスイッチが入る動作を記述する。
【0013】
このような記述を複数繰り返すことで、長い時間経過後又は複数の状態遷移後の入力スティミュラスの実現も可能となる。しかし、留意点として、例えば図15に示している「2msec」の数値や「2.3msec」の数値、すなわち負荷電流の切り替えのタイミングは、他の入力スティミュラスとの相関で決定されるものではなく、実際に状態が遷移したタイミングと同期していなければならない。図1を例に説明すると、「Low Load Mode → High Load Mode」の段落がスタートするのは(4)の遷移が完了した後、「High Load Mode → Low Load Mode」の段落がスタートするのは(5)の遷移が完了した後、である。このため、予め、回路状態の遷移時間を推定して、アナログ機能記述システムのプログラム要素に実数値を記述しなければならなかった。
【0014】
ところが、回路組上げ後に最初に検証を行う場合など、全体の動作実力の見積もりがつけにくいため、実際にどのようなタイミングで動作が遷移していくのかはシミュレーションをしてみないとわからない。
【0015】
実際にシミュレーションを行ってみると、入力スティミュラスが意図しない不適切な状態下のタイミングで発生し、無意味なテストベンチとなっていることが、しばしばシミュレーション後に判明することになった。
このような事例は、開発の初期段階だけでなく、特性向上のために回路改定を行った場合などでも同様に生じ、何度でも起こり得るものであり、特に1回の回路のシミュレーション時間が長い場合に、その非効率性が顕著になってきているという問題がある。
【0016】
本発明は、上記課題に鑑み、アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法及びテストベンチ作成装置を提供することを目的とする。
【課題を解決するための手段】
【0017】
上記課題に鑑み、本発明は、複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチの作成方法において、 回路仕様指定手段が、ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップと、テスト仕様指定手段が、状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間、の仕様を規定するテスト仕様指定情報、を指定するステップと、状態検出テストベンチ生成手段が、前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップと、状態判定テストベンチ生成手段が、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップと、スティミュラス最適化テストベンチ生成手段が、前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するステップと、を有することを特徴とする。
【0018】
状態検出テストベンチが検出した状態がテスト仕様と一致する場合に、テスト仕様指定情報に登録された電圧又は電流と前記過渡状態時間を出力するので、シミュレーション中の回路の状態をテストベンチを通して知ることが可能となり、さらに回路状態と入力スティミュラスの発生タイミングの同期が取れ、常に最適なタイミングで入力スティミュラスを生成できる。
【発明の効果】
【0019】
アナログ回路の入力スティミュラスの発生タイミングを回路の状態に同期して決定することができるテストベンチの作成方法及びテストベンチ作成装置を提供することができる。
【図面の簡単な説明】
【0020】
【図1】アナログ回路の状態遷移を模式的に示す状態遷移図の一例である。
【図2】アナログ回路テストシステムの概略構成図の一例である。
【図3】テストベンチ作成装置の機能ブロック図の一例である。
【図4】テストベンチ作成装置がテストベンチを生成する手順を示すフローチャート図の一例である。
【図5】回路仕様情報の一例を示す図である。
【図6】テスト仕様情報の一例を示す図である。
【図7】テスト仕様情報から得られた入力スティミュラスの電流値と時間の関係を示す図の一例である。
【図8】回路仕様情報に基づき生成される、状態検出テストベンチのイメージ図の一例である。
【図9】状態検出テストベンチのコードの一例を示す図である。
【図10】状態判定テストベンチのイメージ図の一例である。
【図11】具体的な状態判定テストベンチのコードの一例を示す図である。
【図12】スティミュラス最適化テストベンチのイメージ図の一例である。
【図13】スティミュラス最適化テストベンチのコードの一例を示す図である。
【図14】3つのテストベンチの接続を模式的に示す図の一例である。
【図15】従来のアナログ機能記述システムのプログラム要素に設定するプログラムの一部を示す図である。
【発明を実施するための形態】
【0021】
以下、本発明を実施するための形態を、図面を参照しながら説明する。
図1は、アナログ回路の状態遷移を模式的に示す状態遷移図の一例を示す。アナログ回路が搭載される装置(例えば、画像形成装置、プリンタ、ファクシミリ、その他、コンピュータ)の仕様により、アナログ回路は図示する状態遷移を経る。このため、アナログ回路の遷移応答特性は、図1の状態遷移図に基づき検証される。図1では、楕円がアナログ回路の各状態を表し、矢印線で結ばれた楕円は、矢印線の元の楕円から矢印線の先の楕円に状態が遷移することを意味する。また、矢印線の近くの記述は、状態が遷移するための条件を示す。本実施形態では、図1の(1)〜(6)で示した状態遷移について説明する。
【0022】
図1の(1)〜(6)の遷移順でアナログ回路が動作するか否かを検証するテストベンチを作成する際、例えば「(5)→(6)」の遷移を起こすテストベンチを作るためには、一旦、LowLoadModeの状態で安定してから(5)の遷移を起こす入力スティミュラス(負荷電流 小→大)を入力し、さらに(5)の遷移後、HighLoadModeの状態で安定してから(6)の遷移を起こす入力スティミュラス(負荷電流 大→小)を入力する必要がある。
【0023】
なお、入力スティミュラスとは、解析対象(アナログ回路)の各出力(駆動)ピンに注入する信号をいうが、本実施形態では、仕様に適合した態様で状態を遷移させる入力信号をいうものとする。また、上記の2.3msecや2.0msecは、入力スティミュラスの発生タイミングを指定するが、本実施形態では入力スティミュラスの発生タイミングが、正しい状態遷移が生じたタイミングに同期する。
【0024】
従来は、入力スティミュラス(負荷電流変化)の入力タイミングを所定の手法で算出した予測値で与えていた。しかし、例えば、実際にシミュレーションを実行中、予測値に反して(5)の遷移において、LowLoadMode状態での安定に時間を要した結果、HighLoadMode に遷移したがHighLoadModeで安定しないまま(6)の遷移を起こす入力スティミュラス(負荷電流 大→小)が入力されることも生じていた。この場合、所望のシミュレーションを実行できず、入力スティミュラスの入力タイミングを補正して再度シミュレーションを行う必要があった。
【0025】
本実施形態のアナログ回路テスト方法によれば、正しい状態遷移であることを検証し、かつ、回路状態と入力スティミュラスの発生タイミングの同期を取ることで、従来手法での欠点を補うことができる。
【0026】
図2(a)は、アナログ回路テストシステムの概略構成図の一例を示す。アナログ回路テストシステムは、テストベンチ作成装置100とアナログ回路シミュレータ200とを有する。テストベンチ作成装置100とアナログ回路シミュレータ200はPC(パーソナルコンピュータ)やワークステーション等のコンピュータである。図2では説明のため、テストベンチ作成装置100とアナログ回路シミュレータ200を別々に示したが、1つのコンピュータにテストベンチ作成装置100とアナログ回路シミュレータ200を実装してもよい。テストベンチ作成装置100とアナログ回路シミュレータ200は、ネットワーク、又は、専用線を介して接続されている。
【0027】
テストベンチ作成装置100は、試験対象であるアナログ回路へ入力される、入力スティミュラスを生成するためのテストベンチを作成する。アナログ回路シミュレータ200は、試験対象のアナログ回路をハードウェア記述言語等で記述することで、アナログ回路のモデルを生成している。このモデルにテストベンチ作成装置100が作成したテストベンチを供給してアナログ回路を検証する(シミュレーションする)。
【0028】
図2(b)は、テストベンチ作成装置100のハードウェア構成図の一例を示す。テストベンチ作成装置100は、CPU101、RAM102、ROM103、記憶媒体装着部104、通信装置105、入力装置106、表示制御部107及びHDD(Hard Disk Drive)108を有する。CPU101は、OS(Operating System)やプログラム110をHDD108から読み出して実行することで種々の機能を提供すると共に、テストベンチ作成装置100が行う処理を統括的に制御する。
【0029】
RAM102はCPU101がプログラム110を実行する際に必要なデータを一時保管する作業メモリ(主記憶メモリ)になり、ROM103はBIOS(Basic Input Output System)やOSを起動するためのプログラム、設定ファイルが記憶されている。
【0030】
記憶媒体装着部104は記憶媒体111が着脱可能に構成されており、記憶媒体111に記録されたプログラム110やデータを読み込み、HDD108にインストールする際と、記憶媒体111にデータを書き込む際に使用される。なお、記憶媒体111は、CDやDVDの光記録媒体やSDカードなどフラッシュメモリを実装した不揮発性のメモリであればよい。
【0031】
通信装置105は、インターネットなどのネットワーク13に接続するためのインターフェイスであり、TCP/IPより下層のプロトコル(物理層、データリンク層)にしたがいクライアント11と通信する。
【0032】
入力装置106は、キーボードやマウス、タッチパッド等であり、テストベンチ作成装置100のユーザの様々な操作指示を受け付ける。表示制御部107は、プログラム110が指示する画面情報に基づき所定の解像度や色数等で液晶などのディスプレイ109に描画する。
【0033】
HDD108は、SSD(Flash Solid State Drive)等の不揮発メモリでもよく、プログラム110が記憶されている。プログラム110は、記憶媒体111に記憶して配布されたり、ネットワークを介して接続された不図示のコンピュータからダウンロードされ、HDD108にインストールされる。
【0034】
図3は、テストベンチ作成装置100の機能ブロック図の一例を示す。テストベンチ作成装置100は、回路仕様指定手段11、テスト仕様指定手段12、状態検出テストベンチ生成手段13、状態判定テストベンチ生成手段14及びスティミュラス最適化テストベンチ生成手段15を有する。各機能ブロックは、CPU101がプログラムを実行すること、又は、CPU101がハードウェアと協働してプログラム実行することで実現される。
【0035】
また、テストベンチ作成装置100は、状態検出テストベンチ16、状態判定テストベンチ17及びスティミュラス最適化テストベンチ18(3つを区別しない場合、単にテストベンチという場合がある)を記憶する記憶手段を有する。この記憶手段は、具体的にはHDD108やRAM102である。
【0036】
以下、図3の各機能ブロックの作用について図4のフローチャート図に基づき説明する。図4は、テストベンチ作成装置100がテストベンチを生成する手順を示すフローチャート図の一例である。図4のフローチャート図は、例えば、ユーザがテストベンチ作成装置100にテストベンチの作成を指示するとスタートする。
【0037】
<S100>
まず、回路仕様指定手段11が、回路仕様情報21を読み込み、RAM102に格納する。回路仕様情報21は、テストベンチ作成装置100のHDD108等に予め記憶されている。または、所定のサーバからダウンロードしてもよいし、ユーザが入力装置から入力してもよい。本実施形態では回路仕様情報21は1つだけとするが、回路仕様情報21は複数あってもよく、複数ある場合は、回路仕様指定手段11がユーザが指示した回路仕様情報21、または、順番に全ての回路仕様情報21をRAM102に格納する。
【0038】
なお、記憶先のRAM102は一例でありHDD108に記憶したままでもよい。以下、回路仕様情報21やテスト仕様情報22の記憶手段は、RAM102、HDD108、その他の記憶手段を問わないものとする。
【0039】
回路仕様情報21とは、回路動作上の全状態(例えば、図1の全状態)、各状態毎の回路内部ノード(端子)の電圧又は電流の組み合わせ対応テーブル、その他、アナログ回路全体への入力電圧の閾値や動作周波数などの情報を意味している。
【0040】
図5(a)は、回路仕様指定手段11が読み込む、回路仕様情報21の一例を示す図である。回路仕様情報21は、回路動作上の全状態と、各状態における回路内部ノードの電圧(H/L)の組み合わせ対応テーブルである。図5(a)では、全状態のうち状態名「Initial」「Standby」「DCDCenabl」「SoftStart」「LowLoadMode」「HighLoadModel」「100%Duty」「LimitDetect」「Latch」の各状態に対応する、回路内部ノードの電圧(H/L)の組み合わせ対応テーブルを示す。Node1〜Node9が、回路内部ノードを示す。Node1〜Node9の状態は回路の動作によって定まる。
【0041】
図5(a)では、「L」,「H」,「CLK」,「*」は電圧状態を示すマクロであり、「L」は入力閾値より低い電圧(例えば0V)、「H」は入力閾値より高い電圧(例えば3.3V)、「CLK」はクロック周波数でLとHに変化する電圧,「*」は状態を問わないこと、をそれぞれ意味する。
【0042】
図5(a)によれば、例えば状態名「LowLoadMode」での回路内部ノード(Node1〜Node9)の状態は、それぞれ、{L,L,L,L,H,L,L,CLK,L}であり、逆に回路内部ノード(Node1〜Node9)の状態がそれぞれ{L,L,L,L,H,L,L,CLK,L}であった場合、アナログ回路の状態は「LowLoadMode」であることを意味する。なお、回路内部ノードの数は、H、L、CLKにより各状態を指定できる数だけあればよく、状態と同じ数あれば十分である。
【0043】
図5(b)は回路仕様情報21の補足情報の一例を示す。補足情報には、入力電圧の閾値やクロック周波数の情報等が登録されている。回路仕様指定手段11は、必要に応じて補足情報を読み出し、回路内部ノードの電圧の組み合わせ対応テーブルを解釈する。図5(b)では、入力電圧の閾値Vthが「1.5V」、クロック周波数fが「1.5MHz」である。したがって、「1.5V」より低い入力電圧は「L」、「1.5V」以上の入力電圧は「H」と判断される。
【0044】
<S200>
次に、テスト仕様指定手段12がテスト仕様情報22を読み込み、RAM102等に格納する。テスト仕様情報22は、テストベンチ作成装置100のHDD108等に予め記憶されている。または、所定のサーバからダウンロードしてもよいし、ユーザが入力装置から入力してもよい。本実施形態ではテスト仕様情報22は1つだけとするが、テスト仕様情報22は1つのアナログ回路について複数あってもよい。
【0045】
本実施形態のテスト仕様情報22とは、回路機能を1つのテストで検証する際の、回路の状態遷移情報と、その遷移を起こす外部信号の情報を意味する。簡単に言えば、テスト仕様情報22は正しい状態遷移の順番とタイミングを指定する。
【0046】
図6は、テスト仕様情報22の一例を示す図である。テスト仕様情報22の最下段の行に、図1の(1)〜(6)の状態遷移の遷移順に対応して、各状態の状態名が左から右へ時系列に記述されている。最下段において状態名のないマスは、状態から状態に遷移する際に過渡状態があることを示す。図6では状態数は7個である。過渡状態に登録されている「Vin、CE、ILoad」の値が、「遷移を起こす外部信号の情報」であり、入力スティミュラスになる。
【0047】
また、最上段の行「Slew Time」は入力スティミュラスの値に到達するまでの過渡状態時間を、「Max Time」は各状態を維持する最大時間を、それぞれ示す。例えば「LowLoadMode」の状態に着目すると、「500u秒」以上「LowLoadMode」状態が続いた場合、「HighLoadMode」に遷移しえない回路不具合があるというテストが可能となる。
【0048】
「Vin(V)」は状態を遷移させる入力電圧値(電源電圧)を示す。「ILoad」は状態を遷移させる電流値(回路への負荷電流)を示す。また、CEは"Chip Enable"の略で回路をアクティブにするために必要な電圧を示す。例えば、「Initial」の前の状態は、Vinが印可されず回路として動作していない状態であり、Vinが一定以上に印可されると回路は「Initial」状態となる。また、CEが印可されないと回路はアクティブにならず、CEが印可されて初めてアクティブになりその結果「Standby」状態になる。
【0049】
また、入力スティミュラスは回路の状態と対応づけられているので、テスト仕様情報22は入力スティミュラスの入力タイミングも同時に示している。例えば「ILoad」を例にとると、図6のテスト仕様情報22から入力スティミュラスの1つである電流値(ILoad)が時間と共にどのように変化するかを示すことができる。なお、「Vin(V)」「CE(V)」「ILoad」の空白のマスは、その前のマスの値を引き継ぐ。
【0050】
図7は、テスト仕様情報22から得られた入力スティミュラスの電流値と時間の関係を示す図の一例である。図6では、「Initial」状態から「LowLoadMode」まで「ILoad」は「1m〔A〕」、(5)の状態遷移では「300m〔A〕」、(6)の状態遷移では「1m〔A〕」、である。また、(5)の状態遷移では、「1m〔A〕」から「300m〔A〕」まで電流値を増大するのに「1usec」必要となる。同様に(6)の状態遷移では、「300m〔A〕」から「1m〔A〕」まで電流値を減少させるのに「1usec」必要となる。
【0051】
したがって、図7においても、「LowLoadMode」から「HighLoadMode」に遷移する過渡状態で「ILoad」は「1m〔A〕」から「300m〔A〕」に上昇し始め、「HighLoadMode」から「LowLoadMode」に遷移する過渡状態で「ILoad」は「300m〔A〕」から「1m〔A〕」に低下し始めている。
【0052】
<S300>
次に、状態検出テストベンチ生成手段13が、RAM102に記憶されている回路仕様情報21を用いて、シミュレーション中の回路状態を検出する状態検出テストベンチ16を生成する。
【0053】
図8は、図5に示した回路仕様情報21に基づき生成される、状態検出テストベンチ16のイメージ図の一例である。図5の回路仕様情報21では9つのNode1〜Node9があるので、アナログ回路のイメージ図においても、状態判定に必要な回路内部ノード(Node1〜Node9)の数を9つとした。状態検出テストベンチ16は回路内部ノードに対応した9つの入力端子を有することになる。状態検出テストベンチ16は、シミュレータ等から入力端子に入力された信号の組み合わせから、検出した回路状態を数値化して1つの出力端子から出力する形式となっている。この数値化された数値が図5、図6の「Initial」から「Latch」までの各状態に対応する。
【0054】
より詳細に抜粋の生成コードを用いて説明する。図9は、状態検出テストベンチ16のコードの一例を示す図である。図9の{aの記述}が回路仕様情報21における全状態のそれぞれを状態数値により定義する。回路状態検出テストベンチ16の出力端子から出力される数値が「0」の場合は「Undefined」を、「1」の場合は状態「Initial」を…、「9」の場合は状態「Latch」を、それぞれ意味する。状態検出テストベンチ生成手段13は、回路仕様情報21の各状態を時系列順に数値に対応づけることで{aの記述}を生成する。
【0055】
また、{bの記述}は、状態検出テストベンチ16の9つの入力端子に入力される信号の値を格納する、9つの入力状態変数を定義したものである。{bの記述}により、9つの整数型の変数「logic_node1〜logic_node9」が確保される。変数を確保することで、シミュレーション中の回路状態を検出することが可能になる。状態検出テストベンチ生成手段13は、回路仕様情報21の「node1〜node9」に重複しない変数名を対応づけることで{bの記述}を生成する。
【0056】
なお、回路内部ノードの状態判定については、図5のマクロに示したように、変数「logic_node1〜logic_node9」の値と、図5の「L」,「H」,「CLK」,「*」を1行ずつ比較するためのコードを状態検出テストベンチ16に記述することで実現する。このため、状態検出テストベンチ生成手段13は、変数「logic_node1〜logic_node9」に与えられた入力信号と、「L」,「H」,「CLK」,「*」を比較するコード、「logic_node1〜logic_node9」の各比較結果から、図5の回路仕様情報21に一致する回路状態を決定し、状態数値「State」を出力するコード等を生成する。なお、状態検出テストベンチ生成手段13は、生成したコードをHDD108に記憶する。
【0057】
<S400>
次に、状態判定テストベンチ生成手段14は、RAM102に保持されている回路仕様情報21とテスト仕様情報22を用いて、シミュレーション中の回路状態がテスト仕様通りか否かを判定する状態判定テストベンチ17を生成する。
【0058】
図10は、状態判定テストベンチ17のイメージ図の一例を示す。本実施形態では、状態判定テストベンチ17が、図8に示す状態検出テストベンチ16が出力する状態数値「State」を入力として受け付け、状態数値「State」が図6に示すテスト仕様情報22に一致する場合は、状態遷移の番号「StateCount」を返す(出力する)構成としている。なお、状態遷移の番号「StateCount」は、遷移順に状態遷移に付与された整数である。
【0059】
図11は、具体的な状態判定テストベンチ17のコードの一例を示す。図9に示した状態検出テストベンチ16と同様、{aの記述}により、図5に示した回路仕様情報21の全状態に対し数値定義が行われる形でコードが生成されている。
【0060】
また、図11の{bの記述}は、状態遷移定義を表す。すなわち、図6に示すテスト仕様情報22の状態遷移情報(1)〜(6)は、図11の{bの記述}のように、状態遷移の数分の配列に数値として定義{1,2,3,4,5,6,5}される。配列に順に格納された数値が遷移することが、図1、6の(1)〜(6)の状態遷移情報に対応する。すなわち、配列において「1→2」の遷移が図1、6の(1)の状態遷移(Initial→Standby)、「2→3」の遷移が図1、6の(2)の状態遷移(Standby→DCDCenable)、「3→4」の遷移が図1、6の(3)の状態遷移(DCDCenable→SoftStart)、「4→5」の遷移が図1、6の(4)の状態遷移(SoftStart→LowLoadMode)、「5→6」の遷移が図1、6の(5)の状態遷移(LowLoadMode→HighLoadMode)、「6→5」の遷移が図1、6の(6)の状態遷移(HighLoadMode→LowLoadMode)に対応する。
【0061】
また、数値定義{1,2,3,4,5,6,5}の配列の番号は、変数としての状態遷移の番号「StateCount」に格納される。配列の番号は「0」から始まるので、状態遷移の番号「StateCount」には「0,1,2,3,4,5,6」が格納される。例えば、状態判定テストベンチが動作し、例えば正常に状態数値「State」が「6」になると(HighLoadMode)、状態遷移の番号「StateCount」には「5」が格納される。さらに、その後、状態が遷移して状態数値「State」が「5」になると(LowLoadMode)、状態遷移の番号「StateCount」には「6」が格納される。
【0062】
状態判定テストベンチ生成手段14は、図6のテスト仕様情報22の最下段の「State」に基づき、各状態遷移に対応づけて配列を定義し、配列に順番に数値{1,2,3,4,5,6,5}を定義するコードを記述する。この数値定義が{bの記述}に相当する。
【0063】
また、図11の{cの記述}は、状態保持Max時間定義である。{cの記述}により、図6のテスト仕様情報22の「Max Time」を格納する配列が定義され、配列に各状態の各「Max Time」が記憶される。状態判定テストベンチ生成手段14は、図6のテスト仕様情報22の最下段の「State」に基づき、状態の数の分の配列を生成するコード、遷移順に順番に「Max Time」を配列に定義するコードを生成する。図6の「Max Time」が空欄の「State」に対応する配列には「0」が格納される。
【0064】
ついで、状態判定テストベンチ17に入力された状態数値「State」が図6に示すテスト仕様情報22に一致するかどうかの処理について説明する。この処理には、
I.状態遷移が正しく行われているか否か、
II.状態保持が「Max Time」を越えていないか、
という2つの判定項目がある。
【0065】
Iの判定項目は、図11の{dの記述}により判定される。{dの記述}に先立って、変数stateに、状態検出テストベンチ16から状態数値「State」が設定される({fの記述})。変数state_countをゼロに初期化しておき、「state=(入力信号からの取り込み);」により変数stateに、状態検出テストベンチ16から状態数値「State」が設定される。
【0066】
次いで、{dの記述}により、入力された状態数値「State」が図11の{bの記述}で定義された状態遷移の配列データと異なる場合(「state!=state_flow[state_count]」)、エラーメッセージが出力され($strobe;)、シミュレーションが終了される($finish;)。{fの記述}と{dの記述}は、変数名だけで記述できるので、{fの記述}の変数名を例えば自動的に生成したり予め与えておけば、状態判定テストベンチ生成手段14は、{bの記述}から変数名を取得することで、{fの記述}と{dの記述}のコードを出力できる。
【0067】
次に、IIの判定項目は、図11の{eの記述}により判定される。{eの記述}による処理「状態保持MAX時間判定処理」は、状態遷移が生じた場合(「state!=oldstate」)に行われる。図11には{eの処理}の具体的なコードは記載していないが、時間イベントを扱う関数を用いて、各状態で定義されている図11の{cの記述}の時間の経過後に状態が変化しているかどうかを判定するコードが記載される。また、図11の{cの記述}の時間の経過後に状態が変化していない場合、エラーメッセージの出力と共にシミュレーションを終了するコードが記載される。
【0068】
状態判定テストベンチ生成手段14は、図11の{cの記述}で定義した配列データを読み出すコード、時間イベントを扱う関数を用いて読み出した時間の経過後に状態が変化しているかどうかを判定するコード、状態が変化していない場合にエラーメッセージの出力と共にシミュレーションを終了するコード、を生成する。
【0069】
なお、{gの記述}は、変数state_countを状態遷移の番号「StateCount」として出力処理を定義する。
【0070】
以上の{a〜gの記述(コード)}が状態判定テストベンチ17である。状態判定テストベンチ生成手段14は、状態判定テストベンチ17をHDD108に記憶する。
【0071】
状態判定テストベンチ17によれば、シミュレーションの実行中に、アナログ回路の状態、状態遷移の順番や保持時間が、テスト仕様に従っているか否かを検証することができる。状態遷移がテスト仕様に従っている場合には、次述のステップS500で、状態遷移のタイミングと、入力スティミュラスの発生タイミングの同期が取れることになる。また、テスト仕様と異なるシミュレーション結果となった場合には、ただちにシミュレーションを終了するため、同様に余分な検証工数を削減できる効果がある。
【0072】
<S500>
次に、スティミュラス最適化テストベンチ生成手段15が、RAM102に記憶されているテスト仕様情報22を用いて、シミュレーション実行中の状態遷移に一致した、アナログ回路への入力スティミュラスを発生するスティミュラス最適化テストベンチ18を生成する。
【0073】
図12は、スティミュラス最適化テストベンチ18のイメージ図の一例を示す。スティミュラス最適化テストベンチ18は、図5に示した回路仕様情報21と図6に示したテスト仕様情報22から生成される。本実施形態では、スティミュラス最適化テストベンチ18への入力として図10に示した状態判定テストベンチ17が出力する状態遷移の番号「state_count」を受け付ける。そして、スティミュラス最適化テストベンチ生成手段15は、図6に示したテスト仕様情報22の各状態遷移の仕様に沿うよう、アナログ回路への入力スティミュラスを出力する。すなわち、図6の「state」が「state_count」により定まれば、入力スティミュラス「Vin」、「CE」、「ILoad」、及び、過渡状態時間「Slew Time」も決定する。入力スティミュラス「Vin」、「CE」、「ILoad」と過渡状態時間「Slew Time」により、アナログ回路シミュレータ200は、過渡応答特性を検証できる。
【0074】
図13は、具体的なスティミュラス最適化テストベンチ18のコードの一例を示す。図13の{aの記述}は、状態遷移とスティミュラス発生の定義を、{bの記述}は状態遷移とスティミュラス入力値の定義を、{cの記述}は状態遷移とスティミュラス入力スルー時間(過渡状態時間)の定義を、それぞれ意味する。{a〜cの記述}は、7つの要素を有する配列を定義している。各要素が各状態に1対1に対応する。
【0075】
図13の{aの記述}は、「1」が記憶された要素に対応する状態は状態遷移の際に入力スティミュラスが必要なこと(過渡状態を経ること)を示す。図6のテスト仕様情報を参照すると、状態「Initial」は「Standby」状態に遷移する際、「Vin=3.6V」の過渡状態を経るので、{aの記述}の配列「Vin_in」の最初の要素が「1」となる。同様に、状態「Standby」は「DCDC enabl」状態に遷移する際、「CE=3.6V」の過渡状態を経るので、{aの記述}の配列「CE_in」の2番目の要素が「1」となる。同様に、状態「LowLoadMode」は「HighLoadMode」状態に遷移する際、「ILoad=300mA」の過渡状態を経るので、{aの記述}の配列「ILoad_in」の5番目の要素が「1」となる。同様に、状態「HighLoadMode」は「LowLoadMode」状態に遷移する際、「ILoad=1mA」の過渡状態を経るので、{aの記述}の配列「ILoad_in」の6番目の要素が「1」となる。
【0076】
図13の{bの記述}は、{aの記述}で「1」がある要素に対応して過渡状態の入力スティミュラス(電圧値、電流値)を格納する配列を記述する。したがって、{bの記述}の配列「Vin_val」の1番目の要素が「3.6」に、配列「CE_val」の2番目の要素が「3.6」に、配列「ILoad_val」の5番目の要素が「300m」に6番目の要素が「1m」に、それぞれなっている。
【0077】
図13の{cの記述}は、{aの記述}で「1」がある要素に対応して過渡時間情報(Slew Time)を格納する配列を記述する。したがって、{cの記述}の配列「Vin_slew」の1番目の要素に「1u」が、配列「CE_slew」の2番目の要素に「1u」が、配列「ILoad_slew」の5番目の要素と6番目の要素に「1u」が、それぞれ格納されている。
【0078】
スティミュラス最適化テストベンチ生成手段15は、図6のテスト仕様情報22に基づき、図13の{a〜cの記述}のコードを生成する。図13の{aの記述}で「1」を記述すべき配列の要素は、図6で入力スティミュラスが登録されている過渡状態の手前の状態である。{aの記述}で「1」を記述すべき配列の要素が定まれば、スティミュラス最適化テストベンチ生成手段15は{bの記述}{cの記述}を図6のテスト仕様情報から記述できる。
【0079】
スティミュラス最適化テストベンチ18には、状態遷移の番号「StateCount」が入力されるので、状態遷移の番号に基づき、プログラムが{bの記述}{cの記述}から要素を読み出せば、入力スティミュラス及び過渡時間情報が得られる。
【0080】
このため、スティミュラス最適化テストベンチ生成手段15は、状態遷移の番号「StateCount」に指定される、{aの記述}の各配列の要素に「1」が格納されているか否かを判定するコード、「1」が格納されている場合、{bの記述}{cの記述}の対応する各要素からVin、CE、ILoad及びSlewTimeを読み出すコード、を生成する。図13とこのコードがスティミュラス最適化テストベンチ18である。スティミュラス最適化テストベンチ生成手段15は、スティミュラス最適化テストベンチ18をHDD108に記憶する。
【0081】
ステップS400で、入力スティミュラスのタイミングが正しいことが確認された上で、ステップS500でテスト仕様指定情報22に従った入力スティミュラスを出力するので、回路状態と入力スティミュラスの発生タイミングの同期を取ることができる。したがって、実際に正しい入力タイミングで過渡応答特性を検証できる。
【0082】
〔アナログ回路シミュレータ200〕
アナログ回路シミュレータ200は、3つのテストベンチ「状態検出テストベンチ16、状態判定テストベンチ17、及び、スティミュラス最適化テストベンチ18」、を接続してアナログ回路を検証する(シミュレーションする)。
【0083】
図14は、3つのテストベンチの接続を模式的に示す図の一例である。アナログ回路シミュレータ200が、回路内部ノード「Node1〜9」の電圧を検出して信号を入力すると、状態検出テストベンチ16が状態数値「State」を出力し、状態判定テストベンチ17はこの状態数値「State」に基づき状態遷移の番号「StateCount」を出力し、スティミュラス最適化テストベンチ18は状態遷移の番号「StateCount」からアナログ回路に入力する入力スティミュラス「Vin、CE、ILoad」を出力する。また、この入力スティミュラスを出力する際、スティミュラス最適化テストベンチ18は、状態遷移の番号「StateCount」から「Slew Time」を決定する。
【0084】
これにより、アナログ回路シミュレータ200は、SlewTimeの時間をかけて、入力スティミュラス「Vin、CE、ILoad」の値まで変化させながら入力スティミュラスをアナログ回路に入力することができる。
【0085】
以上のように本実施形態によれば、シミュレーションの実行中に、アナログ回路の状態を状態判定テストベンチ16を通して特定することが可能となり、さらに、状態判定テストベンチ17により状態遷移がテスト仕様に従っているか(順番、保持時間)否かを検証することができる。状態遷移がテスト仕様に従っている場合には、状態遷移のタイミングと、入力スティミュラスの発生タイミングの同期が取れることになる。このため、入力スティミュラスのタイミングが正しいことが確認された上で、状態の過渡応答特性を検証できる。したがって、常に最適なシミュレーションポイント(タイミング)でアナログ回路に入力スティミュラスを発生させるテストベンチを生成することが可能となる。すなわち、複雑な状態遷移を経るアナログ回路であっても、入力スティミュラスが意図しない不適切な状態やタイミングで発生することを防止できる。
【0086】
スティミュラス最適化テストベンチ18が出力する入力スティミュラスは、常に最適なシミュレーションポイントで発生するので、ILoadの切り替えのタイミングを、予め決めておく必要がなく、入力タイミングのマージンの取りすぎやテストベンチの入力タイミング不具合に伴うシミュレーションのやり直しが発生せず、検証工数が削減できる効果がある。また、テスト仕様と異なるシミュレーション結果となった場合には、ただちにシミュレーションを終了するため、同様に余分な検証工数を削減できる効果がある。
【符号の説明】
【0087】
11 回路仕様指定手段
12 テスト仕様指定手段
13 状態検出テストベンチ生成手段
14 状態判定テストベンチ生成手段
15 スティミュラス最適化テストベンチ生成手段
16 状態検出テストベンチ
17 状態判定テストベンチ
18 スティミュラス最適化テストベンチ
21 回路仕様情報
22 テスト仕様情報
100 テストベンチ作成装置
200 アナログ回路シミュレータ
【先行技術文献】
【特許文献】
【0088】
【特許文献1】特開2005‐122497号公報
【特許文献2】特開平05−142300号公報
【特許請求の範囲】
【請求項1】
複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチの作成方法において、
回路仕様指定手段が、ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップと、
テスト仕様指定手段が、状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間、の仕様を規定するテスト仕様指定情報、を指定するステップと、
状態検出テストベンチ生成手段が、前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップと、
状態判定テストベンチ生成手段が、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップと、
スティミュラス最適化テストベンチ生成手段が、前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するステップと、
を有することを特徴とするテストベンチの作成方法。
【請求項2】
前記状態判定テストベンチ生成手段は、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致しない場合、シミュレーションを中断する状態判定テストベンチを生成する、
ことを特徴とする請求項1記載のテストベンチの作成方法。
【請求項3】
前記テスト仕様指定情報には、状態毎の最大保持可能時間が登録されており、
前記状態判定テストベンチ生成手段は、前記状態検出テストベンチが状態遷移を検出してから、前記テスト仕様指定情報の前記最大保持可能時間を超えて遷移後の状態を保持するか否かを判定する状態判定テストベンチを生成する、
ことを特徴とする請求項1又は2記載のテストベンチの作成方法。
【請求項4】
前記状態判定テストベンチ生成手段は、前記最大保持可能時間を超えて遷移後の状態を保持したと判定した場合、シミュレーションを中断する状態判定テストベンチを生成する、
ことを特徴とする請求項3記載のテストベンチの作成方法。
【請求項5】
複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチを作成するテストベンチ作成装置において、
ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報を指定する回路仕様指定手段と、
状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間の仕様、を規定するテスト仕様指定情報、を指定するテスト仕様指定手段と、
前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成する状態検出テストベンチ生成手段と、
前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成する状態判定テストベンチ生成手段と、
前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するスティミュラス最適化テストベンチ生成手段と、
を有することを特徴とするテストベンチ作成装置。
【請求項1】
複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチの作成方法において、
回路仕様指定手段が、ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報、を指定するステップと、
テスト仕様指定手段が、状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間、の仕様を規定するテスト仕様指定情報、を指定するステップと、
状態検出テストベンチ生成手段が、前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成するステップと、
状態判定テストベンチ生成手段が、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成するステップと、
スティミュラス最適化テストベンチ生成手段が、前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するステップと、
を有することを特徴とするテストベンチの作成方法。
【請求項2】
前記状態判定テストベンチ生成手段は、前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致しない場合、シミュレーションを中断する状態判定テストベンチを生成する、
ことを特徴とする請求項1記載のテストベンチの作成方法。
【請求項3】
前記テスト仕様指定情報には、状態毎の最大保持可能時間が登録されており、
前記状態判定テストベンチ生成手段は、前記状態検出テストベンチが状態遷移を検出してから、前記テスト仕様指定情報の前記最大保持可能時間を超えて遷移後の状態を保持するか否かを判定する状態判定テストベンチを生成する、
ことを特徴とする請求項1又は2記載のテストベンチの作成方法。
【請求項4】
前記状態判定テストベンチ生成手段は、前記最大保持可能時間を超えて遷移後の状態を保持したと判定した場合、シミュレーションを中断する状態判定テストベンチを生成する、
ことを特徴とする請求項3記載のテストベンチの作成方法。
【請求項5】
複数の状態を遷移するアナログ回路のシミュレータに提供されるテストベンチを作成するテストベンチ作成装置において、
ノード電圧とアナログ回路の状態の関係を規定する回路仕様情報を指定する回路仕様指定手段と、
状態遷移の時系列情報、状態を遷移させる電圧、電流、及び、遷移に必要な過渡状態時間の仕様、を規定するテスト仕様指定情報、を指定するテスト仕様指定手段と、
前記回路仕様指定手段が指定した前記回路仕様情報に基づき、ノード電圧からシミュレーション実行中の状態を検出する状態検出テストベンチを生成する状態検出テストベンチ生成手段と、
前記テスト仕様指定手段が指定した前記テスト仕様指定情報の前記時系列情報に、前記状態検出テストベンチが検出した状態が一致する場合に、シミュレーション実行中の状態遷移を特定する特定情報を出力する状態判定テストベンチ、を生成する状態判定テストベンチ生成手段と、
前記状態判定テストベンチにより得られた前記特定情報に応じて、前記テスト仕様指定手段が指定した前記テスト仕様指定情報に登録された電圧又は電流まで前記過渡状態時間をかけて変化させる、スティミュラス最適化テストベンチ、を生成するスティミュラス最適化テストベンチ生成手段と、
を有することを特徴とするテストベンチ作成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−43978(P2011−43978A)
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願番号】特願2009−191462(P2009−191462)
【出願日】平成21年8月20日(2009.8.20)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願日】平成21年8月20日(2009.8.20)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]