(57)【要約】【課題】  アルゴリズムを実装したＬＳＩなどの回路の検証について、ヒューマンエラーの発生を防止し、生産性を向上させることができるようにする。【解決手段】  ＣＰＵインタフェースモデル５、データ入力インタフェースモデル３、データ出力インタフェースモデル４は、それぞれ回路２のＣＰＵインターフェース、データ入力インターフェース、データ出力インターフェースにそれぞれ対応したバスファンクションモデルである。入力データバッファ６は、ＣＰＵインタフェースモデル５により回路２に入力するデータをバッファリングする。データ出力インタフェースモデル４は、前記回路２から出力されたデータを期待値データバッファ７にバッファリングされている、その出力データについての期待値と比較する。【選択図】    図１
2005276153.tif 000002
【特許請求の範囲】
【請求項１】
対象となる回路のＣＰＵインターフェースに対応したバスファンクションモデルであるＣＰＵインタフェースモデルと、
前記ＣＰＵインタフェースモデルにより前記回路に入力するデータをバッファリングする第１のバッファと、
前記回路のデータ入力インターフェースに対応したバスファンクションモデルであり、前記第１のバッファがバッファリングしているデータを前記回路に入力するデータ入力インタフェースモデルと、
第２のバッファと、
前記回路のデータ出力インターフェースに対応したバスファンクションモデルであり、前記回路から出力されたデータを前記第２のバッファにバッファリングされている前記データについての期待値と比較するデータ出力インタフェースモデルと、
を備えているテストベンチシステム。
【請求項２】
前記第２のバッファの記憶しているデータを所定のファイルに読み書きして当該ファイルから前記第２のバッファに前記期待値を記録する手段を、さらに備えている請求項１に記載のテストベンチシステム。
【請求項３】
前記第１のバッファに記憶されているデータを用いて所定のアルゴリズムの実行により前記期待値を生成する手段と、
前記生成した期待値を前記第２のバッファに出力する手段と、
をさらに備えている請求項１に記載のテストベンチシステム。
【請求項４】
前記期待値を生成する手段を複数段接続している、請求項３に記載のテストベンチシステム。
【請求項５】
前記第１及び第２のバッファへのアクセスを条件に応じて切り替えるバッファ切替手段を、さらに備えている請求項１に記載のテストベンチシステム。
【請求項６】
前記バッファ切替手段は、前記切り替えの条件がアクセスアドレスである、請求項５に記載のテストベンチシステム。
【請求項７】
前記バッファ切替手段は、前記切り替えの条件が前記第１及び第２のバッファへのリード・ライトアクセス区分である、請求項５に記載のテストベンチシステム。
【請求項８】
前記バッファ切替手段は、前記第１及び第２のバッファへのアクセスが順次アクセスであり、動的に前記第１及び第２のバッファの接続、取り外しができる、請求項５に記載のテストベンチシステム。
【請求項９】
対象となる回路のＣＰＵインターフェースに対応したバスファンクションモデルであるＣＰＵインタフェースモデルを実現する手段と、
前記ＣＰＵインタフェースモデルにより前記回路に入力するデータをバッファリングする第１のバッファを所定の記憶装置に実現する手段と、
前記回路のデータ入力インターフェースに対応したバスファンクションモデルであり、前記第１のバッファがバッファリングしているデータを前記回路に入力するデータ入力インタフェースモデルを実現する手段と、
第２のバッファを所定の記憶装置に実現する手段と、
前記回路のデータ出力インターフェースに対応したバスファンクションモデルであり、前記回路から出力されたデータを前記第２のバッファにバッファリングされている前記データについての期待値と比較するデータ出力インタフェースモデルを実現する手段と、
をコンピュータに実行させるコンピュータに読み取り可能なプログラム。
【請求項１０】
前記第２のバッファの記憶しているデータを所定のファイルに読み書きして当該ファイルから前記第２のバッファに前記期待値を記録する手段を、さらにコンピュータに実行させる請求項９に記載のプログラム。
【請求項１１】
前記第１のバッファに記憶されているデータを用いて所定のアルゴリズムの実行により前記期待値を生成する手段と、
前記生成した期待値を前記第２のバッファに出力する手段と、
をさらにコンピュータに実行させる請求項９に記載のプログラム。
【請求項１２】
前記第１及び第２のバッファへのアクセスを条件に応じて切り替えるバッファ切替手段を、さらにコンピュータに実行させる請求項９に記載のプログラム。
【請求項１３】
前記バッファ切替手段は、前記切り替えの条件がアクセスアドレスである、請求項１２に記載のプログラム。
【請求項１４】
前記バッファ切替手段は、前記切り替えの条件が前記第１及び第２のバッファへのリード・ライトアクセス区分である、請求項１２に記載のテストベンチシステム。
【請求項１５】
前記バッファ切替手段は、前記第１及び第２のバッファへのアクセスが順次アクセスであり、動的に前記第１及び第２のバッファの接続、取り外しができる、請求項１２に記載のプログラム。
【請求項１６】
請求項９〜１５のいずれかの一に記載のプログラムを記憶している、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、さまざまな回路のテストベンチシステム、テストベンチシステムを実現するプログラム、及び、このプログラムを記憶した記憶媒体に関する。
【背景技術】
【０００２】
設計対象回路のテストベンチシステムについては、特許文献１に開示の技術が知られている。
【０００３】
【特許文献１】特開２００２−２３００７３公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
JPEG等による画像の符号化、復号化を行なう回路や、画像処理回路の製造工程では、Ｃ言語ベースで記述されたアルゴリズムを期待値として動作の検証を行なう。
【０００５】
しかしながら、近年、ＬＳＩの高集積化に伴い、ひとつのＬＳＩに搭載するアルゴリズムの数が増大し、且つ、データ経路分岐が多くなるために、機能検証の工数が増大している。そこで、このようなアルゴリズムを実装したＬＳＩの検証を容易にして、回路の生産性を向上したい。
【０００６】
これに対し、特許文献１に開示の技術では、検証の対象となる回路が出力したデータをファイルに出力して視認することを想定しているため、目視検証によるヒューマンエラーの発生を否定できず、よって検証精度が低く、生産性が不十分であるという不具合がある。
【０００７】
本発明の目的は、特にアルゴリズムを実装したＬＳＩなどの回路の検証について、ヒューマンエラーの発生を防止し、生産性を向上させることができるようにすることである。
【０００８】
別の課題について説明する。ＡＳＩＣ（Application Specified IC）などの回路を検証対象とするテストベンチシステムの各構成要素は、部品化、再利用することで新規のテストベンチの構築を容易にすることができる。検証対象となる回路に接続するバスファンクションモデルに着目すると、このバスファンクションモデルは検証対象となる回路にデータを入力し、また、検証対象となる回路から出力されたデータを予め用意している期待値と比較する機能を備えている。この入力するデータや期待値データは状況により変動する要素なので、これらのデータをバッファリングするバッファは独立した部品として定義する。
【０００９】
このバッファは、データの読み出し及び出力されたデータの期待値との比較のためのアプリケーションインタフェース（例えば、READやCHECK）を備え、読み出しインターフェースにおいてアドレスを引数にすることで該当するアドレスのデータが読み出せ、期待値比較インターフェースにおいてアドレスと検証対象の回路から出力されたデータを引数にすることで期待値との比較がおこなわれる。
【００１０】
ここで検証対象の回路が複数のデータチャネルを持ち、且つ、ＰＣＩバス等の単一のインターフェースを介してデータ転送をおこなう場合、バスファンクションモデルはデータチャネル毎の複数のバッファに対してアクセスを切り替えなくてはならなくなる。
【００１１】
本発明の別の目的は、複数のバッファをバスファンクションモデルからはあたかも一つのバッファであるように見せかけ、バスファンクションモデルからのアクセスに対して実際にアクセスするバッファを切り替えることで、バスファンクションモデルの再利用性を向上することである。
【課題を解決するための手段】
【００１２】
本発明は、対象となる回路のＣＰＵインターフェースに対応したバスファンクションモデルであるＣＰＵインタフェースモデルと、前記ＣＰＵインタフェースモデルにより前記回路に入力するデータをバッファリングする第１のバッファと、前記回路のデータ入力インターフェースに対応したバスファンクションモデルであり、前記第１のバッファがバッファリングしているデータを前記回路に入力するデータ入力インタフェースモデルと、第２のバッファと、前記回路のデータ出力インターフェースに対応したバスファンクションモデルであり、当該出力されたデータを前記第２のバッファにバッファリングされている前記データについての期待値と比較するデータ出力インタフェースモデルと、を備えているテストベンチシステムである。
【００１３】
別の面から見た本発明は、対象となる回路のＣＰＵインターフェースに対応したバスファンクションモデルであるＣＰＵインタフェースモデルを実現する手段と、前記ＣＰＵインタフェースモデルにより前記回路に入力するデータをバッファリングする第１のバッファを実現する手段と、前記回路のデータ入力インターフェースに対応したバスファンクションモデルであり、前記第１のバッファがバッファリングしているデータを前記回路に入力するデータ入力インタフェースモデルを実現する手段と、第２のバッファを実現する手段と、前記回路のデータ出力インターフェースに対応したバスファンクションモデルであり、当該出力されたデータを前記第２のバッファにバッファリングされている前記データについての期待値と比較するデータ出力インタフェースモデルを実現する手段と、をコンピュータに実行させるコンピュータに読み取り可能なプログラムである。
【発明の効果】
【００１４】
本発明によれば、回路から得られたデータと、第２のバッファにバッファリングされている当該データの期待値とをデータ出力インタフェースモデルで自動的に比較するので、従来のように目視検証によるヒューマンエラーが発生せず、よって検証精度の向上、生産性の向上を図ることができる。
【発明を実施するための最良の形態】
【００１５】
本発明を実施するための最良の一形態について説明する。
【００１６】
図１は、本実施の形態のテストベンチシステム１の機能ブロック図である。
【００１７】
テストベンチシステム１が実行するテストベンチの対象となる回路２は、データ入力・データ出力インターフェース、及び回路２の内部レジスタへのアクセス用のＣＰＵインターフェースを備えている。テストベンチシステム１は、これらのインターフェースに対応したバスファンクションモデルを備えている。すなわち、データ入力インターフェースに対応したバスファンクションモデルであるデータ入力インタフェースモデル３、データ出力インターフェースに対応したバスファンクションモデルであるデータ出力インタフェースモデル４、ＣＰＵインターフェースに対応したバスファンクションモデルであるＣＰＵインタフェースモデル５である。
【００１８】
データ入力インタフェースモデル３は、回路２とのプロトコルの実行・応答・監視を行い、第１のバッファとなる入力データバッファ６からデータを読み出し、回路２に入力する機能を備えている。
【００１９】
データ出力インタフェースモデル４は、回路２とのプロトコルの実行・応答・監視をおこない、回路２が出力するデータを捕捉し、期待値データバッファの内容と期待値比較する役割を持つ。
【００２０】
ＣＰＵインタフェースモデル５は、所定のテストシナリオ８の指示により回路２とのプロトコルの実行・応答・監視をおこない、回路２内の内部レジスタの読み書きアクセスをおこなう。
【００２１】
ここで、テストシナリオ８は、上述のようにＣＰＵインタフェースモデル５に対してレジスタアクセスを実行させる他に、データ入力インタフェースモデル３、データ出力インタフェースモデル４が回路２に対してバスマスタ（自らプロトコルを実行する）の役割を持つ場合は、これらのインタフェースモデルに対して所定のタイミングでプロトコルの実行を指示する。
【００２２】
入力データバッファ６、及び第２のバッファとなる期待値データバッファ７は、それぞれデータを格納する領域を備え、また、外部のデータファイル９からデータを供給する手段、外部のデータファイル９に入力データバッファ６、期待値データバッファ７のバッファリングしている内容を保存する手段を有している。これらの手段は、テストシナリオ８からの指示により実行可能である。
【００２３】
また、入力データバッファ６及び期待値データバッファ７は、内部データにアクセスする手段を持ち、アドレスを指定してアクセスするアドレス型アクセス手段及びアドレスを指定せず各バッファ６，７の先頭からアクセスするＦＩＦＯ（First In First Out）型アクセス手段を有する。これらの手段は、データ入力インタフェースモデル３、データ出力インタフェースモデル４が利用する。
【００２４】
入力データバッファ６及び期待値データバッファ７のサイズや、前述のアドレス型アクセスの場合の開始アドレスは、テストシナリオ８によって設定される。入力データバッファ６及び期待値データバッファ７は、データアクセスをカウントし、データアクセスのオーバーラン、同一アドレスの多重アクセス（アドレス型アクセスの場合のみ）を随時レポートすると共に、テスト終了後、未アクセス部分があればこれをレポートする。
【００２５】
このようなテストベンチシステム１は、回路２と共にＨＤＬ（ハードウェア記述言語）シミュレータに入力され、シミュレーションが実行される。テストベンチシステム１では、回路２への入力データ及び期待値データがデータファイル９で供給され、このシミュレーションの際に自動的に期待値検証を実行する。
【００２６】
次に、テストベンチシステム１が実行する処理を、ＲＧＢからＣＭＹＫへ色変換する回路２のテストベンチを行なう場合を例として説明する。
【００２７】
図２は、この場合のテストベンチシステム１の機能ブロック図である。データ入力インタフェースモデル３はマスタとして動作し、３チャネルある入力データバッファ６（それぞれＲ，Ｇ，Ｂの各色に対応している）からデータを読み出し、設計対象回路（ＲＧＢ-ＣＭＹＫ変換器）２に入力する。
【００２８】
データ出力インタフェースモデル４は、スレイブとしてＲＧＢ−ＣＭＹＫ変換器２の出力に応答し、出力データを４チャネルある期待値データバッファ７（それぞれＣ，Ｍ，Ｙ，Ｋの各色に対応している）により期待値検証をおこなう。
【００２９】
図３は、ＲＧＢ-ＣＭＹＫ変換器２が持つデータインタフェースのマスタ（入力データバッファ）６側から見たタイミング図の例である。frameはページ有効期間、lstartはライン開始パルスを示し、共にマスタ６側が出力する。マスタ６は、データ出力が準備できたらtxrdyをアサートしdataにデータを出力する。txrdyアサート中にスレイブ側からのrxrdy信号がアサートされたら転送が成立する。データインタフェースはアドレスを持たないＦＩＦＯ型である。
【００３０】
図４は、この場合のテストベンチの実行シーケンスを示す通信シーケンス図である。まず、テストシナリオ８は、各入力データバッファ６のサイズ設定をおこなった後、入力ファイルの読み込みを指示する（１）。期待値データバッファ７についても同様にサイズ設定し、あらかじめ作成した期待値ファイルの読み込みを指示する（２）。
【００３１】
続いて、テストシナリオ８は、回路２であるＲＧＢ-ＣＭＹＫ変換器の内部レジスタにパラメータ（画像サイズ、変換パラメータなど）を設定するために、ＣＰＵインタフェースモデル５に回路２の内部レジスタへの書き込みを指示する（３）。ＣＰＵインタフェースモデル５は、所定のプロトコルによりＲＧＢ-ＣＭＹＫ変換器２の内部レジスタに設定をおこなう（４）。
【００３２】
そして、テストシナリオ８は、データ入力インタフェースモデル３に対して転送開始指示をおこない（５）、画像データの転送が開始する。
【００３３】
データ入力インタフェースモデル３は、入力データバッファ６からトランザクション最小単位のデータを読み出し（６）、ＲＧＢ-ＣＭＹＫ変換器２に対して入力する（７）。以後、所定サイズ分、これを繰り返す。
【００３４】
一方、データ出力インタフェースモデル４側では、ＲＧＢ-ＣＭＹＫ変換器２がマスタ６となって出力してくるデータをとらえ（８）、期待値データバッファ７に対して期待値比較を指示する（９）。これをＲＧＢ-ＣＭＹＫ変換器２がデータを出力する限り繰り返す。
【００３５】
なお、各データバッファ６又は７へのアクセス中、アクセスするデータが無くなった場合（オーバーラン）、データバッファ６又は７は、インターフェース３又は４にエラーをレポートし、シミュレーションを停止する。
【００３６】
データ出力インタフェースモデル４は、ＲＧＢ-ＣＭＹＫ変換器２から最後のデータを受け取った後、テストシナリオ８に処理の終了を通知する（１０）。テストシナリオ８では、この終了通知を受けて、入力データバッファ６、期待値データバッファ７に対して未アクセスチェックをおこない（１１）（１２）、まだアクセスされていないデータが残っていれば、バッファがエラーを通知してシミュレーションを停止する。
【００３７】
次に、テストベンチシステム１の別の実施の形態について説明する。
【００３８】
図５は、このテストベンチシステム１の機能ブロック図である。以下の説明において、前述のテストベンチシステム１と同様の構成要素などについては、同一の符号を用い、詳細な説明は省略する。
【００３９】
このテストベンチシステム１が前述の例と相違するのは、入力データバッファ６からデータを読み出し、アルゴリズムの実行により期待値を生成して期待値データバッファ７に出力する期待値生成部１０を備えていることである。よって、本例では期待値データバッファ７とデータファイル９との間のデータ交換は不要である。このアルゴリズムは、回路２の回路設計の前工程で作成したＣ言語系アルゴリズムを利用する。
【００４０】
このテストベンチシステム１では、回路２への入力データから期待値が自動生成されるので、前述の例のように外部のデータファイルに期待値を用意する必要がなくなる。
【００４１】
このテストベンチシステム１の具体的な例として、ＰＣＩ入力インターフェースを備え、JPEGデコードをおこなう回路２のテストベンチについて説明する。図６は、この場合のテストベンチシステム１の機能ブロック図である。図６において、データ入力インタフェースモデル３は、ＰＣＩのスレイブとして動作し、入力データバッファ６は１チャネル（JPEG入力）である。データ出力インタフェースモデル４は、前述の例と同様なスレイブモデルとして動作する。期待値データバッファ７は、JPEG復号後のＲＧＢの各色に対応した３チャネルである（但し、グレイスケールの場合は１チャネルのみ使用する）。
【００４２】
期待値生成部１０は、JPEG復号アルゴリズムが搭載され、入力データバッファ６からデータを読み出し、期待値データバッファ７に復号後のＲ，Ｇ，Ｂの各データ（もしくはグレイスケールのデータ）を書き込む。
【００４３】
また、入力データバッファ６は、ＰＣＩのアドレス型アクセスに対応する。
【００４４】
図７は、このテストベンチシステム１が実行する処理の通信シーケンス図である。図７において図４と同一符号の処理は、前述の図４の場合と同様であるため、詳細な説明は省略する。図７の処理が図４の処理と異なるのは、（１）の処理の後に期待値生成部１０に期待値の生成を指示し（１３）、その生成した期待値を入力データバッファ６に読み出し（１４）、期待値データバッファ７に書き込むことである（１５）。これに伴い、前述の（２）の処理は行われない。
【００４５】
また、データ入力インタフェースモデル３はＰＣＩスレイブとして動作するため、テストシナリオ８はデータ入力インタフェースモデル３に転送開始を指示しない。本例では設計対象回路（JPEG復号器）２の内部レジスタに転送開始制御レジスタを持ち、当該レジスタにより転送が開始することを想定している。
【００４６】
さらに、本例ではデータ入力に関してアドレス型アクセスのため、入力データバッファ６ではアクセスアドレスの重複もチェックしている。アドレスの重複時には、随時、ユーザインタフェースにレポートしてシミュレーションを停止する。
【００４７】
テストベンチシステム１のさらに別の実施の形態について説明する。
【００４８】
図８は、このテストベンチシステム１の機能ブロック図である。以下の説明において、前述の図５のテストベンチシステム１と同様の構成要素などについては、同一の符号を用い、詳細な説明は省略する。
【００４９】
このテストベンチシステム１が前述の図５の例と相違するのは、前述の期待値生成部１０を複数、この例では２つ用意し（期待値生成部１０ａ，１０ｂ）、画像処理アルゴリズムの連続動作を実行した期待値を生成することと、複数の回路２、この例では２つ回路２（回路２ａ，２ｂ）を対象とすることである。
【００５０】
本実施の形態における回路２は、図１などを参照して説明した実施の形態におけるＲＧＢ-ＣＭＹＫ変換器（回路２ｂ）の前段に、図５を参照して説明したJPEG復号器（回路２ａ）を接続する構成をとる。テストベンチシステム１は、JPEG復号に対応した期待値生成部１０ａとＲＧＢ-ＣＭＹＫ変換に対応した期待値生成部１０ｂとを備えている。
【００５１】
図９に示すように、期待値生成部１０ａは、入力データバッファ６を入力として、後段に期待値生成部１０ｂが接続されている。そして、期待値生成部１０ｂは、期待値データバッファ７に接続される。期待値生成部１０ａでは仮出力バッファ１０ａ１を作成することができる。
【００５２】
図１０は、接続された期待値生成部１０ａ，１０ｂが実行する処理のフローチャートである。
【００５３】
まず、テストシナリオ８は、接続された期待値生成部１０ａ，１０ｂの最後段の期待値生成部１０ｂに対して期待値の生成実行を指示する。すると、図１０の処理が開始する。まず、前段の期待値生成部１０ａが仮出力バッファ１０ａ１を作成する（ステップＳ１）。次に、期待値生成部１０ａは、そのアルゴリズム（この例ではJPEG復号）を実行する（ステップＳ２）。ここでは、入力データバッファ６からデータを読み出し、演算結果は仮出力バッファ１０ａ１に出力する。
【００５４】
そして、後段の期待値生成部１０ｂは、そのアルゴリズム（この例では、ＲＧＢ−ＣＭＹＫ変換）を実行する（ステップＳ３）。ここでは、前段の期待値生成部１０ａの仮出力バッファ１０ａ１からデータを読み込んで実行し、その演算結果は期待値データバッファ７に出力する。最後に、不要になった前段の期待値生成部１０ａの仮出力バッファ１０ａ１を消去して（ステップＳ４）、一連の処理を終了する。このようにして、入力データバッファ６と期待値データバッファ７との間に期待値生成部１０ａ，１０ｂを接続して期待値を生成することができる。この期待値を用いて行なう処理については、図１、図５の実施の形態と同様である。
【００５５】
最後に、前述の各実施の形態のテストベンチシステム１のハードウェア構成例について説明する。
【００５６】
図１１は、テストベンチシステム１の電気的な接続のブロック図である。図１１に示すように、テストベンチシステム１は、ワークステーションなどのコンピュータにより実現され、このコンピュータは、各種演算を行ない、画像処理装置の各部を集中的に制御するＣＰＵ２１１と、各種のＲＯＭ、ＲＡＭからなるメモリ２１２とが、バス２１３で接続されている。
【００５７】
バス２１３には、所定のインターフェースを介して、ハードディスクなどの磁気記憶装置２１４と、キーボード、マウスなどの入力装置２１５と、表示装置２１６とが接続され、また、ネットワーク２０１と通信を行なう所定の通信インターフェース２１９が接続されている。なお、記憶媒体２１７としては、ＣＤ，ＤＶＤなどの光ディスク、光磁気ディスク、フレキシブルディスクなどの各種メディアを用いることができる。また、記憶媒体読取装置２１８は、具体的には記憶媒体２１７の種類に応じて光ディスク装置、光磁気ディスク装置、フレキシブルディスク装置などが用いられる。
【００５８】
テストベンチシステム１は、この発明の記憶媒体を実施する記憶媒体２１７から、この発明のプログラムを実施するプログラム２２０を読み取って、磁気記憶装置２１４にインストールすることにより、動作可能な状態となる。これらのプログラム２０はインターネットなどのネットワーク２０１等を介してダウンロードしてインストールするようにしてもよい。なお、プログラム２２０は、所定のＯＳ上で動作するものであってもよい。
【００５９】
そして、バス２１３には、所定のインターフェース２２１を介して、回路２と接続される。そして、プログラム２２０に基づいてＣＰＵ２１１が実行する処理により、ＣＰＵインタフェースモデル３、データ入力インタフェースモデル４、データ出力インタフェースモデル５、期待値生成部１０（あるいは、期待値生成部１０ａ，１０ｂ）が構築され、入力バッファ６、期待値バッファ７がメモリ２１２のＲＡＭなどの記憶装置に用意され、前述した各種の処理が実行される。
【００６０】
別の実施の形態について説明する。
【００６１】
図１２は、本実施の形態のテストベンチシステム１０１の構成の説明図である。本実施の形態のテストベンチシステム１０１の検証対象となる回路１０２はＡＳＩＣで、カラー複写機、カラープリンタなどに搭載されて、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロ）、Ｋ（ブラック）の各色の画像データについて所定の処理を行なう回路である。回路１０２は、この所定の処理を実行するＣＭＹＫデータ処理部１０３と、ＣＭＹＫデータ処理部１０３と後述のＰＣＩバス１０５とをインターフェースするＰＣＩコントローラ１０４とを備えている。カラー複写機、カラープリンタなどの実機では、この回路１０２と接続されるＰＣＩバス１０５の向こうにメモリコントローラが存在し、このメモリコントローラを介してＣＭＹＫ各色の画像データの各プレーンにアクセスする。
【００６２】
このテストベンチシステム１０１上では、ＰＣＩバス１０５にバスファンクションモデル１０６を接続し、回路１０２のＰＣＩバス１０５へのアクセスに対して、バスファンクションモデル１０６がバッファ１１１，１１２へのアクセスをおこない応答する。
【００６３】
バスファンクションモデル１０６は、ＰＣＩバスに対応したバスファンクションモデルであり、データ入力インターフェースに対応したバスファンクションモデルであるデータ入力インタフェースモデル、データ出力インターフェースに対応したバスファンクションモデルであるデータ出力インタフェースモデル、ＣＰＵインターフェースに対応したバスファンクションモデルであるＣＰＵインタフェースモデルなどの機能を備えている。
【００６４】
データ入力インタフェースモデルは、回路１０２とのプロトコルの実行・応答・監視を行い、入力データバッファ１１１からデータを読み出し、回路１０２に入力する機能を備えている。
【００６５】
データ出力インタフェースモデルは、回路１０２とのプロトコルの実行・応答・監視をおこない、回路１０２が出力するデータを捕捉し、期待値データバッファ１１２の内容と期待値比較する役割を持つ。
【００６６】
ＣＰＵインタフェースモデルは、所定のテストシナリオの指示により回路１０２とのプロトコルの実行・応答・監視をおこなう。
【００６７】
入力データバッファ１１１（第１のバッファ）は、データ入力インタフェースモデルが読み出す入力データをバッファリングする。
【００６８】
期待値バッファ１１２（第２のバッファ）は、データ出力インタフェースモデルが回路１０２の出力するデータと比較するのに用いる期待値をバッファリングする。
【００６９】
このように、バスファンクションモデル１０６、入力データバッファ１１１、期待値バッファ１１２の基本機能は、前述の実施の形態のテストベンチシステム１と同様であり、入力データバッファ１１１、期待値バッファ１１２への入力データ、期待値の入力はデータファイル（図示せず）から行なうこと、テストベンチはテストシナリオ（図示せず）に基づいて行なうことなども前述の実施の形態のテストベンチシステム１と同様である。
【００７０】
入力データバッファ１１１、期待値バッファ１１２は、いずれもＣＭＹＫ４色の各画像データに対応して、ＣＭＹＫ４色に対応した入力データ、期待値をそれぞれバッファリングするために、それぞれ４つのバッファ１１１ａ〜１１１ｄ，１１２ａ〜１１２ｄを備えている。このように、このシステムでは、入力データも出力データもＣＭＹＫ４色に対応しているので、入力データバッファ１１１、期待値バッファ１１２へのデータアクセスは、ＰＣＩバス経由で入出力各４チャネルのデータアクセスになる。
【００７１】
バッファ切替部１０７（バッファ切替手段）は、入力データバッファ１１１、期待値バッファ１１２と同一のインターフェースを備え、入力データバッファ１１１、期待値バッファ１１２と接続し、これらの入力データバッファ１１１、期待値バッファ１１２へのアクセスを条件に応じて切り替える。具体的には、バッファ切替部１０７は、アクセスアドレスに応じて各バッファ１１１ａ〜１１１ｄ，１１２ａ〜１１２ｄへのアクセスに振り分ける。すなわち、バッファ１１１ａ〜１１１ｄ，１１２ａ〜１１２ｄの切り替えの条件がアクセスアドレスである。
【００７２】
このように、テストベンチシステム１０１では、前述したバッファ切替部１０７の機能によりバッファ切替部１０７がバスファンクションモデル１０６からは単一のバッファとして見えることにより、バスファンクションモデル１０６が複数のバッファ、すなわち、入力データバッファ１１１、期待値バッファ１１２を意識することなく、そのバッファリングしているデータにアクセスできるため、テストベンチ部品としてのバスファクションモデル１０６の再利用性が向上する。
【００７３】
この場合に、テストベンチシステム１０１では、バッファ切替部１０７が保持する各バッファ１１１ａ〜１１１ｄ，１１２ａ〜１１２ｄの切り替え条件がアドレスであるので、使用するアドレス範囲が重複しないデータチャネル群について、入力データバッファ１１１、期待値バッファ１１２を意識することなく、そのバッファリングしているデータにアクセスして、テストベンチ部品としてのバスファクションモデル１０６の再利用性がさらに向上する。
【００７４】
別の実施の形態について説明する。
【００７５】
図１３は、本実施の形態のテストベンチシステム１０１の構成の説明図である。なお、図１３において図１２と同一符号の要素は、図１２を参照して説明した実施の形態と同様であるため、適宜、詳細な説明は省略する。本実施の形態における検証対象となる回路１０２は、カラー複写機などに搭載されるＡＳＩＣで、Ｒ（レッド），Ｇ（グリーン），Ｂ（ブルー）の画像データをJPEG方式で圧縮符号化処理して符号データの出力をおこなう回路である。回路１０２は、このような機能を実現するため、ＲＧＢ−JPEG変換部１２１を備えている。回路１０２は、図１２の実施の形態と同様、単一のＰＣＩバス１０５を介してアクセスされる。
【００７６】
テストベンチではＲＧＢの入力画像データの各プレーン及びJPEG圧縮後の符号データの期待値を、それぞれ入力データバッファ１１１、期待値バッファ１１２に持たせる。すなわち、入力データバッファ１１１は、バッファ１１１ａ〜１１１ｃから構成されてそれぞれＲ，Ｇ，Ｂの画像データをバッファリングし、期待値バッファ１１２はバッファ１１２ａから構成されてJPEG圧縮後の符号データの期待値をバッファリングする。すなわち、入力データバッファ１１１、期待値バッファ１１２へのデータアクセスは、ＰＣＩバス１０５経由で入力３チャネル出力１チャネルとなる。
【００７７】
ここでJPEG圧縮後の符号データ出力のアドレス範囲について、実機のカラー複写機などではあり得ないことではあるが、一部はＲＧＢ画像データの入力との重複を許している。このようにアドレス範囲の制約を敢えて外すことで、より広いアドレス範囲の検証を容易に行なえるようにできる。
【００７８】
回路１０２のＰＣＩバス１０５経由のデータアクセスは、一部はJPEG圧縮後の符号データ出力アドレスと、ＲＧＢの画像データの入力アドレスが重複することになるが、入力と出力の違いによりバッファへのアクセスも異なる（入力データの読み出しと期待値の比較）ので、使用するバッファ１１１ａ〜１１１ｃ，１１２ａが正しく判別される。
【００７９】
このように、入力データバッファ１１１、期待値バッファ１１２の切替えの条件がデータチャネルのリード・ライトアクセス区分であるので、例えチャネル間でアドレスが重複しても、リード・ライト区分が異なれば入力データバッファ１１１、期待値バッファ１１２は区別されてアクセスされる。アドレス範囲の重複を許すことで、よりアドレス制約の少ない柔軟な検証ができる。
【００８０】
別の実施の形態について説明する。
【００８１】
図１４は、本実施の形態のテストベンチシステム１０１の構成の説明図である。なお、図１４において図１２と同一符号の要素は、図１２を参照して説明した実施の形態と同様であるため、適宜、詳細な説明は省略する。本実施の形態における検証対象となる回路１０２は、複写機などに搭載されるＡＳＩＣで、複写機に搭載のスキャナで読み取った原稿の画像データを入力データ（スキャナ入力）とし、複写機に搭載のプロッタに出力する出力データ（プロッタ出力）をそれぞれ単一のＰＣＩバス１０５経由で転送する回路である。プロッタ出力はプロッタ出力部１３１が行い、スキャナ入力はスキャナ入力部１３２で行う。このスキャナ入力とプロッタ出力は独立に動作する。そして、プロッタ出力が入力データとなり、スキャナ入力が期待値と比較されるデータとなる。入力データバッファ１１１、期待値データバッファ１１２は、それぞれ複数のバッファ１１１ａ，１１１ｂ，…，１１２ａ，１１２ｂ，…で構成されている。
【００８２】
テストベンチでは、まず、スキャナ入力（期待値）とプロッタ出力（入力データ）の原稿画像一面分をひとつずつのバッファァ１１１ａ，１１１ｂ，…，１１２ａ，１１２ｂ，…に持たせておく。そして、回路１０２を動作させることでスキャナ入力およびプロッタ出力がそれぞれ進行する。
【００８３】
テストシナリオはデータ転送の進捗をバスファンクションモデル１０６の動作や回路１０２の内部レジスタ経由等で把握し、スキャナ入力もしくはプロッタ出力の次の原稿画像一面分を転送させたい場合は、バッファ切替部１０７に対して新規のバッファ（バッファ１１１ａ，１１１ｂ，…，１１２ａ，１１２ｂ，…）を追加する。バッファ切替部１０７は現在のバッファアクセスが終了すると直ちに新規に追加されたバッファにアクセスする。
このような動的なバッファの追加は、例えば、ランダムな検証でスキャナ入力とプロッタ出力間のタイミング関係のカバレッジを得るために繰り返しデータ転送する際に使用する。このようなケースでは、あらかじめ画像データの面数を決められないからである。このように、ＰＣＩバス１０５経由での画像データの入出力は独立スケジューリングで行なう。
【００８４】
この実施の形態では、バッファ１１１ａ，１１１ｂ，…，１１２ａ，１１２ｂ，…の切り替え条件がアクセス順であるので、現在アクセス中のバッファでない限り、動的なバッファの接続、取り外しができることにより、より柔軟で複雑なデータ転送動作の検証ができる。
【００８５】
なお、図１２〜図１４のテストベンチシステム１０１のハードウェア構成も前述の図１１と同様である。回路１０２は、ＰＣＩバス１０５を介してＣＰＵ２１１と接続されている。そして、プログラム２２０に基づいてＣＰＵ２１１が実行する処理により、バスファンクションモデル１０６、バッファ切替部１０７が構築され、入力バッファ１１１、期待値バッファ１１２がメモリ２１２のＲＡＭなどの記憶装置に用意され、前述した各種の処理が実行される。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施の形態であるテストベンチシステムの機能ブロック図である。
【図２】図１のテストベンチシステムの動作を説明する機能ブロック図である。
【図３】の動作を説明するタイミングチャートである。
【図４】図１のテストベンチシステムが実行する処理を説明する通信シーケンス図である。
【図５】本発明の別の実施の形態であるテストベンチシステムの機能ブロック図である。
【図６】図５のテストベンチシステムの動作を説明する機能ブロック図である。
【図７】図５のテストベンチシステムが実行する処理を説明する通信シーケンス図である。
【図８】本発明の別の実施の形態であるテストベンチシステムの機能ブロック図である。
【図９】図９のテストベンチシステムの動作を説明する機能ブロック図である。
【図１０】図９のテストベンチシステムの動作を説明するフローチャートである。
【図１１】前記各テストベンチシステムの電気的な接続のブロック図である。
【図１２】本発明の別の実施の形態であるテストベンチシステムの機能ブロック図である。
【図１３】本発明の別の実施の形態であるテストベンチシステムの機能ブロック図である。
【図１４】本発明の別の実施の形態であるテストベンチシステムの機能ブロック図である。
【符号の説明】
【００８７】
１  テストベンチシステム
２  回路
３  データ入力インタフェースモデル
４  データ出力インタフェースモデル
５  ＣＰＵインタフェースモデル
６  第１のバッファ
７  第２のバッファ
２１７  記憶媒体
２２０  プログラム
１０２  回路
１０７  バッファ切替手段
１１１  第１のバッファ
１１２  第２のバッファ
【図１】
2005276153.tif 000003
【図２】
2005276153.tif 000004
【図３】
2005276153.tif 000005
【図４】
2005276153.tif 000006
【図５】
2005276153.tif 000007
【図６】
2005276153.tif 000008
【図７】
2005276153.tif 000009
【図８】
2005276153.tif 000010
【図９】
2005276153.tif 000011
【図１０】
2005276153.tif 000012
【図１１】
2005276153.tif 000013
【図１２】
2005276153.tif 000014
【図１３】
2005276153.tif 000015
【図１４】
2005276153.tif 000016