(57)【要約】【課題】テストベンチの生産性や再利用性を向上させるとともに、複数のデータパスの存在するＡＳＩＣにおける同時動作の検証を行えること。【解決手段】ＡＳＩＣ５を検証するために、Ｖｅｒｉｌｏｇ等の言語を用いてコーディングされたテストベンチにおいて、ＡＳＩＣ５に種々のテスト動作を実行させるための指示を出すソフトウェア化されたテストシナリオ１と、ＡＳＩＣ５にバス接続されたＣＰＵを含むバス接続体のソフトウェア化されたバスモデル３，４と、を備え、テストシナリオ１とバスモデル３、４とは、別個のファイル又は関数として作成すること。また、検証するためのＡＳＩＣ内に複数パスが存在する場合に、個別のパス毎に検証するために、テストシナリオを個別の関数にグループ分けすること。【選択図】図１
2005093929.tif 000002
【特許請求の範囲】
【請求項１】
ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、又はＶｅｒａの言語を用いてコーディングされたテストベンチにおいて、
前記ＡＳＩＣに種々のテスト動作を実行させるための指示を出すソフトウェア化されたテストシナリオと、
前記ＡＳＩＣにバス接続されたＣＰＵを含むバス接続体のソフトウェア化されたバスモデルと、を備え、
前記テストシナリオと前記バスモデルとは、別個のファイル又は関数として作成されたものである
ことを特徴とするテストベンチ。
【請求項２】
請求項１において、前記バスモデルと前記テストシナリオとの間の通信は、パラメータ又はフラグで行うことを特徴とするテストベンチ。
【請求項３】
ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、又はＶｅｒａの言語を用いてコーディングされたテストベンチにおいて、
前記ＡＳＩＣに種々のテスト動作を実行させるための指示を出すソフトウェア化されたテストシナリオと、
前記ＡＳＩＣにバス接続されたＣＰＵを含むバス接続体のソフトウェア化されたバスモデルと、を備え、
前記検証するためのＡＳＩＣ内に複数パスが存在する場合に、個別のパス毎に検証するために、テストシナリオを個別の関数にグループ分けする
ことを特徴とするテストベンチ。
【請求項４】
請求項３において、
前記テストシナリオは、前記グループ分けしたグループ単位で平行プロセスによって実行し、前記グループを同時に実行動作させるようにすることを特徴とするテストベンチ。
【請求項５】
請求項３又は４において、
前記バスモデルは、前記グループの同時実行指示に対応して、アービトレーション機能を備えて前記ＡＳＩＣに対処することを特徴とするテストベンチ。
【請求項６】
請求項１ないし５のいずれか１つの請求項に記載されたテストベンチで検証されたＡＳＩＣ。
【請求項７】
請求項６に記載されたＡＳＩＣを搭載した画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ等の言語を用いてコーディングされたテストベンチにおける生産性又は再利用性の向上技術に関する。
【背景技術】
【０００２】
ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｅｄ  Ｉ．Ｃ．）やプリント基板等の論理回路を検証するための従来技術として、オペレータがシミュレーション時のテストパターン修正前後のシミュレーション結果を比較して検証する検証システムが提案されている（例えば、特許文献１を参照）。
【０００３】
また、複数の機能ブロックを組み込んだ半導体集積装置の検証についての従来技術として（例えば、特許文献２を参照）、テスト用プログラムであるテストベンチを用い、テスト用ブロックを機能ブロックに並置させてコンピュータシミュレーションすることが提案されている。
【特許文献１】特開平０６−０９６１５３号公報
【特許文献２】特開２００２−８３０１０
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の開示技術は、論理回路の検証を対象としてはいるが、修正前テストパターンと修正後テストパターンを用いて検証するものであり、Ｖｅｒｉｌｏｇ等の言語で作成したテストベンチを用いてＡＳＩＣを検証するものとは、テストベンチのパターン作成について異なるものである。
【０００５】
また、特許文献２は、テスト用ブロックが機能ブロックに入出力される信号をチェックし、正常の場合、半導体集積回路装置全体としての動作をテストベンチによってチェックして、正常であるか否かを判断するものであり、テスト用プルグラムによってＩＰそれ自体の動作検証を行って短時間で効率良く検証しようとするものであって、テスト用プログラム自体のの生産性や再利用性を図るものではない。
【０００６】
本発明の目的は、検証対象のＡＳＩＣにバス接続されるバスモデルと各種設定を行うテストシナリオを別物として取り扱うことで、テストベンチの生産性や再利用性を向上させるとともに、複数のデータパスの存在するＡＳＩＣにおける同時動作の検証を行えるテストベンチを提供することにある。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、本発明は次のような構成を採用する。  
ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、又はＶｅｒａの言語を用いてコーディングされたテストベンチにおいて、前記ＡＳＩＣに種々のテスト動作を実行させるための指示を出すソフトウェア化されたテストシナリオと、前記ＡＳＩＣにバス接続されたＣＰＵを含むバス接続体のソフトウェア化されたバスモデルと、を備え、前記テストシナリオと前記バスモデルとは、別個のファイル又は関数として作成されたものであるテストベンチ。
【０００８】
また、前記テストベンチにおいて、前記バスモデルと前記テストシナリオとの間の通信は、パラメータ又はフラグで行うテストベンチ。
【０００９】
また、ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、又はＶｅｒａの言語を用いてコーディングされたテストベンチにおいて、前記ＡＳＩＣに種々のテスト動作を実行させるための指示を出すソフトウェア化されたテストシナリオと、前記ＡＳＩＣにバス接続されたＣＰＵを含むバス接続体のソフトウェア化されたバスモデルと、を備え、前記検証するためのＡＳＩＣ内に複数パスが存在する場合に、個別のパス毎に検証するために、テストシナリオを個別の関数にグループ分けするテストベンチ。
【００１０】
また、前記テストベンチにおいて、前記テストシナリオは、前記グループ分けしたグループ単位で平行プロセスによって実行し、前記グループを同時に実行動作させるようにするテストベンチ。
【発明の効果】
【００１１】
本発明によれば、ＡＳＩＣの様々なモードやバスモデルの様々なモードにて検証したい場合、テストシナリオの多少の変更で容易に検証することができる。
【００１２】
また、ＡＳＩＣの複数のデータパスに対するテストシナリオをグルーピングし、これを平行プロセスにて実行して同時に動作させることによって検証精度を向上させることができる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態に係るＡＳＩＣを検証するテストベンチについて、図面を参照しながら以下詳細に説明する。図１は本発明の実施形態に係るテストベンチと検証対象ＡＳＩＣとの関連構成を示す概略図であり、図２は複数データパスの存在するＡＳＩＣの構成例を示す図である。図３は本実施形態に係るテストベンチで同時検証を実行する場合におけるテストシナリオのグルーピングを示す図であり、図４はＶｅｒｉｌｏｇの言語を用いたテストベンチでの同時検証の実行プロセスを示す図である。図５は本実施形態に関するテストシナリオの各グループから同一のバスモデルに対する実行要求例を示す図である。
【００１４】
図面において、１はテストシナリオ、２は共有パラメータ又はフラグ、３はバスモデル、４はＣＰＵモデル、５は検証対象ＡＳＩＣ、１０は検証対象ＡＳＩＣ、１１は圧縮伸張器、１２は回転器、１３はＨＤＤコントローラ、１４はメモリアービタ、１５はメモリ制御部、１６はＤＭＡコントローラ、１７はＣＰＵＩ／Ｆコントローラ、２０はＣＰＵ、２１はＨＤＤ（ハードディスクドライブ）、２２はメモリシステム、３０はＣＰＵモデル、３１はＨＤＤモデル、３２はメモリモデル、をそれぞれ表す。
【００１５】
図１において、テストベンチは、テストシナリオ１と、共有パラメータ又はフラグ２と、バスモデル３と、ＣＰＵモデル４と、から構成される。ここで、検証対象ＡＳＩＣ５の詳細構成例は図２に示す通りであり、ＡＳＩＣ５には、ＣＰＵ２０、ＨＤＤ（ハードディスクドライブ）２１、メモリシステム２２がバスを通して接続されている。図１で、ＣＰＵモデル４は、図２のＣＰＵ２０をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＣＰＵ）であり、ＣＰＵモデル４もバス接続されたもの（ＨＤＤやメモリシステム等もＡＳＩＣにバス接続されたもの）の内の１つである。図１でバスモデル３は、ＡＳＩＣ１０にバス接続された、例えばＨＤＤをソフトウェアでモデル化したものである（図１のバスモデル３は図２のメモリシステム２２をソフトウェアで書いた仮想メモリシステムであっても良い）。テストシナリオ１は検証対象ＡＳＩＣ１０に種々の動作をさせるためのプログラムである。このようなテストベンチは、ＡＳＩＣを検証するために、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、Ｃ／Ｃ＋＋、Ｅ言語、Ｖｅｒａ等の言語を用いてコーディングされたものである。
【００１６】
本発明の実施形態に係るテストベンチの特徴は、ＡＳＩＣ５のＩ／Ｆ系バスに応答又はアクセスするためのバスモデル３と、ＣＰＵモデル４を経由してＡＳＩＣ５へのレジスタ設定やバスモデル３への機能設定等を行うテストシナリオ１と、ＣＰＵモデルと、をファイルとして別物（それぞれ独立したファイル又は関数）として取り扱い、テストシナリオとバスモデルとをファイル分離したことに伴って、テストシナリオ１とバスモデル３間の通信は共有パラメータやフラグ２等を用いて行うことにある。
【００１７】
ここで、ＡＳＩＣ５にはレジスタ（ＡＳＩＣの種々動作を司る機能）が内蔵されていて、このレジスタへテストシナリオからのアクセス又は指示によってＡＳＩＣが所望の動作を実行するのである。また、フラグは二値の信号で動作させるものであり、共有パラメータは多値信号で動作させるものである（例えば、３秒後にエラー信号を応答せよというような動作指示）。なお、テストシナリオ１とバスモデル３間に特に通信が必要なければ、共有パラメータやフラグ２はなくてもよい。テストシナリオ１とＣＰＵモデル４との間には、テストシナリオからのリード、ライトの指示しかないので、特に、共有パラメータ又はフラグを介在させていない。
【００１８】
図１に示すような構成を採用することによって、バスモデルを生成する際のソフトウェアによるモデル化と、ＡＳＩＣへのテストシナリオを生成する際のソフトウェアによるモデル化と、ＣＰＵモデル化と、共有パラメータ又はフラグ設定と、を別個のものとして並行同時的に取り扱ってプログラミングを行うことができ、テストベンチを作成する上でその生産性を向上することができる。従来は、ＡＳＩＣを検証するためのテストベンチとして、個々別々にモデル化（テストシナリオも含めて）を行うのではなくて、一括したテストベンチとしてテストプログラミングを作成していたので、プログラミング作成に際して、同時並行して他の要素のプログラミングを行うことができず、プログラミング作成途中で変更があった場合には最初のプログラミングからやり直すことも有り得た。
【００１９】
また、検証対象のＡＳＩＣが異なる構成のものであっても、検証のプログラミングは共通する部分が多数存するので、バスモデルやテストシナリオを多少のソフトウェア変更で済ませることができて、テストベンチの再利用性を高めることができる。
【００２０】
このように、テストシナリオ１とバスモデル３とを別物として取り扱うということは、それぞれのファイルが分離していること又はそれぞれが別々の関数であるということである。
【００２１】
図２において、データパスが複数存在するＡＳＩＣの構成例を示しているが、図示のＡＳＩＣ１０は、ＨＤＤ２１からの送受信を行うためのパス、回転器１２によりメモリシステム２２に保持されたデータの回転を行うパス、圧縮伸張器１１によりメモリシステム２２に保持されたデータの圧縮伸張を行うパス、の３つのパスを有し、これらは各々同時に動作可能であり、メモリアービタ１４によって、メモリシステム２２へのアクセスはアービトレーションされている。ここで、各データパスに対して各々の動作を検証するだけでは、複数要求を受けてアービトレーションする機能であるメモリアービタ１４が検証されているとは言えない。
【００２２】
図２において、検証対象のＡＳＩＣ１０は、画像形成装置における画像処理回路であって良く、回転器１２はメモリシステム２２に一旦記憶された画像を９０度、１８０度又は２７０度回転させる機能を奏するものであり、圧縮伸張器１１はメモリシステム２２の画像を取り出して信号圧縮又は伸張の機能を奏するものである。
【００２３】
次に、上述したメモリアービタ１４の検証について、図３に本発明の特徴である同時動作検証を行うためのテストシナリオ１のグルーピングを示す。Ｇ１（グループ１）はＨＤＤコントローラ１３及びそれに関わるデータパスを検証するためのテストシナリオであり、Ｇ１の中には、受信テスト、送信テスト、異常トランザクション確認テストがシリアルに実行される。
【００２４】
また、Ｇ２（グループ２）は回転器１２及びそれに関わるデータパスを検証するためのテストシナリオであり、Ｇ２の中には、９０度回転テスト、１８０度回転テスト、２７０度回転テストがシリアルに実行される。さらに、Ｇ３（グループ３）は圧縮伸張器１１及びそれに関わるデータパスを検証するためのテストシナリオであり、Ｇ３の中には、圧縮テスト、伸張テストがシリアルに実行される。Ｖｅｒｉｌｏｇ言語で言うと、上記のグループＧ１、Ｇ２、Ｇ３をそれぞれｔａｓｋ関数とする。
【００２５】
図４に本発明の実施形態に関する同時動作検証を行うための具体的手段の一例を示す。各グループＧＩ、Ｇ２、Ｇ３は各々の関数とし、Ｖｅｒｉｌｏｇ言語であれば、Ｇ１のｔａｓｋ、Ｇ２のｔａｓｋ、Ｇ３のｔａｓｋをｆｏｒｋ〜ｊｏｉｎでくくり、Ｇ１、Ｇ２、Ｇ３を平行プロセスにて実行する。即ち、図３に示したグルーピングされた関数ＧＩ、Ｇ２、Ｇ３をＶｅｒｉｌｏｇ言語で同時実行させるためのコマンドが図４に示すｆｏｒｋ，ｊｏｉｎである。
【００２６】
図５に各テストシナリオグループからの同じバスモデル（ＣＰＵモデルもＡＳＩＣにバス接続されたバスモデルの１種）に対する実行要求例を示す。各々のテストシナリオにはＡＳＩＣ１０へのレジスタアクセスがあり、ＣＰＵモデル３０を介してレジスタアクセスが実行される。
【００２７】
例えば、グループＧ１であれば、ＨＤＤコントローラ１３へのモード等の設定、ＤＭＡコントローラへの設定等があり、ＣＰＵモデルへレジスタアクセス実行の要求を発行する。また、グループＧ２であれば、回転器１２へのモード等の設定、ＤＭＡコントローラへの設定等があり、ＣＰＵモデルへレジスタアクセス実行の要求を発行する。さらに、グループＧ３であれば、圧縮伸張器１１へのモード等の設定、ＤＭＡコントローラへの設定等があり、ＣＰＵモデル３０へレジスタアクセス実行の要求を発行する。
【００２８】
ＣＰＵモデル３０は、各グループからの要求に対するアービトレーション機能を持ち、ラウンドロビンであれば、レジスタアクセスが順に実行され、各データパスの同時動作が実現され、レジスタアクセス関数呼び出しによる関数の省略を防ぐ。即ち、図４に示すＶｅｒｉｌｏｇ言語のｆｏｒｋ，ｊｏｉｎのコマンドでＧ１，Ｇ２，Ｇ３の同時実行が指示された場合に、ＡＳＩＣで同時実行できるようにＣＰＵモデル３０にアービトレーション機能を持たせる。
【００２９】
以上説明したように、本発明の実施形態によれば、テストベンチをＡＳＩＣのＩ／Ｆに接続されるバスモデルとレジスタ設定やバスモデル機能設定等を行うテストシナリオにファイル分割や関数等で分離して別物として扱っておき、また、テストシナリオとバスモデル間の通信はグローバルパラメータやフラグ等で行い、ＡＳＩＣの様々なモードやバスモデルの様々なモードにて検証したい場合、テストシナリオに対して、レジスタ設定値及びバスモデルへのパラメータを変更するだけで、容易に検証を実行可能とすることができる。
【００３０】
また、データパスが複数存在するＡＳＩＣに対して、且つ、そのデータパスが同時動作も有り得る場合、それぞれのデータパスに対するテストシナリオをグルーピングしておき、これを平行プロセスにて実行し、同時に動作させることによって検証精度を向上させることができる。
【００３１】
また、各テストシナリオが同じバスモデルの関数を実行させるように呼びかけられたとき、バスモデルがアービトレーション機能を搭載しており、関数重複呼び出しによる実行省略の発生させることはなく、同時動作の検証を実現することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るテストベンチと検証対象ＡＳＩＣとの関連構成を示す概略図である。
【図２】複数データパスの存在するＡＳＩＣの構成例を示す図である。
【図３】本実施形態に係るテストベンチで同時検証を実行する場合におけるテストシナリオのグルーピングを示す図であり、
【図４】Ｖｅｒｉｌｏｇの言語を用いたテストベンチでの同時検証の実行プロセスを示す図である。
【図５】本実施形態に関するテストシナリオの各グループから同一のバスモデルに対する実行要求例を示す図である。
【符号の説明】
【００３３】
１  テストシナリオ
２  共有パラメータ又はフラグ
３  バスモデル
４  ＣＰＵモデル
５  検証対象ＡＳＩＣ
１０  検証対象ＡＳＩＣ
１１  圧縮伸張器
１２  回転器
１３  ＨＤＤコントローラ
１４  メモリアービタ
１５  メモリ制御部
１６  ＤＭＡコントローラ
１７  ＣＰＵＩ／Ｆコントローラ
２０  ＣＰＵ
２１  ＨＤＤ（ハードディスクドライブ）
２２  メモリシステム
３０  ＣＰＵモデル
３１  ＨＤＤモデル
３２  メモリモデル
【図１】
2005093929.tif 000003
【図２】
2005093929.tif 000004
【図３】
2005093929.tif 000005
【図４】
2005093929.tif 000006
【図５】
2005093929.tif 000007
【手続補正書】
【提出日】平成16年3月17日(2004.3.17)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
ここで、ＡＳＩＣ５にはレジスタ（ＡＳＩＣの種々動作を司る機能）が内蔵されていて、このレジスタへテストシナリオからのアクセス又は指示によってＡＳＩＣが所望の動作を実行するのである。また、フラグは二値の信号で動作させるものであり、共有パラメータは多値信号で動作させるものである（例えば、３度目の応答に異常なトランザクションで応答せよというような動作指示）。なお、テストシナリオ１とバスモデル３間に特に通信が必要なければ、共有パラメータやフラグ２はなくてもよい。テストシナリオ１とＣＰＵモデル４との間には、テストシナリオからのリード、ライトの指示しかないので、特に、共有パラメータ又はフラグを介在させていない。