(57)【要約】【課題】外部記憶装置へのアクセス動作モードが変わるような場合でも、テストシナリオの作業を省力化でき、テストベンチ作成の効率化が実現できるテストベンチを提供する。【解決手段】複数の外部記憶装置内のデータを主記憶装置上の単一の連続領域にデータ転送させる機能を検証するに際し、テストシナリオ１０２は、第１のデータ保持バッファ１０６に対して連続したデータを一括設定し、主記憶装置モデル１０５に書き込まれるデータの期待値を第２のデータ保持バッファ１０７に生成させ、ＣＰＵモデル１０３を制御して第１のデータ保持バッファ１０６に設定したデータを外部記憶装置モデル１０４に読み出させて検証対象回路のモデル５０に入力させるとともに検証対象回路のモデル５０から主記憶装置モデル１０５に対してデータを送出させ、第２のデータ保持バッファ１０７に保持している期待値との比較をさせる。【選択図】        図２
2006259871.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部記憶装置内のデータを主記憶装置上の単一の連続領域にデータ転送させる機能を制御する検証対象回路のモデルに対する各種のシミュレーションを行うテストベンチにおいて、
前記検証対象回路のモデルに接続される複数の前記外部記憶装置をモデル化した外部記憶装置モデルと、
前記検証対象回路のモデルに接続される前記主記憶装置をモデル化した主記憶装置モデルと、
前記検証対象回路のモデルへのレジスタ設定や前記外部記憶装置モデルや前記主記憶装置モデルへの動作機能設定を行い、前記検証対象回路のモデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、
前記検証対象回路のモデルにバス接続される仮想的なＣＰＵであるＣＰＵモデルと、
前記外部記憶装置モデルに接続される第１のデータ保持バッファと、
前記主記憶装置モデルに接続される第２のデータ保持バッファと、
を備えており、
前記テストシナリオは、前記第１のデータ保持バッファに対して連続したデータを一括設定し、前記主記憶装置モデルに書き込まれるデータの期待値を前記第２のデータ保持バッファに生成させ、前記ＣＰＵモデルを制御して前記第１のデータ保持バッファに設定したデータを前記外部記憶装置モデルに読み出させて前記検証対象回路のモデルに入力させるとともに前記検証対象回路のモデルから前記主記憶装置モデルに対してデータを送出させ、前記第２のデータ保持バッファに保持している期待値との比較をさせる、
ことを特徴とするテストベンチ。
【請求項２】
主記憶装置上の単一の連続領域のデータを複数の外部記憶装置にデータ転送させる機能を制御する検証対象回路のモデルに対する各種のシミュレーションを行うテストベンチにおいて、
前記検証対象回路のモデルに接続される複数の前記外部記憶装置をモデル化した外部記憶装置モデルと、
前記検証対象回路のモデルに接続される前記主記憶装置をモデル化した主記憶装置モデルと、
前記検証対象回路のモデルへのレジスタ設定や前記外部記憶装置モデルや前記主記憶装置モデルへの動作機能設定を行い、前記検証対象回路のモデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、
前記検証対象回路のモデルにバス接続される仮想的なＣＰＵであるＣＰＵモデルと、
前記外部記憶装置モデルに接続される第１のデータ保持バッファと、
前記主記憶装置モデルに接続される第２のデータ保持バッファと、
を備えており、
前記テストシナリオは、前記第２のデータ保持バッファに対して連続したデータを一括設定し、前記外部記憶装置モデルに書き込まれるデータの期待値を前記第１のデータ保持バッファに生成させ、前記ＣＰＵモデルを制御して前記第２のデータ保持バッファに設定したデータを前記主記憶装置モデルに読み出させて前記検証対象回路のモデルに入力させるとともに前記検証対象回路のモデルから前記外部記憶装置モデルに対してデータを送出させ、前記第１のデータ保持バッファに保持している期待値との比較をさせる、
ことを特徴とするテストベンチ。
【請求項３】
同一データを複数の前記外部記憶装置に対して書き込むミラーリングの場合、前記テストシナリオは、前記外部記憶装置モデルに接続される前記第１のデータ保持バッファに対して前記外部記憶装置モデルに書き込まれるデータの期待値のミラーリングを実行させる、
ことを特徴とする請求項２記載のテストベンチ。
【請求項４】
前記各外部記憶装置が前記主記憶装置上の分離した領域に対して独立にデータ転送する動作モードの場合には、前記テストシナリオは、前記各外部記憶装置モデル用に個々にバッファ制御可能である、
ことを特徴とする請求項１記載のテストベンチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＤＬモデルをテストするためのテストベンチに関する。
【背景技術】
【０００２】
近年、ＡＳＩＣ（Application Specified IC）等のＬＳＩ（Large Scale Integration：大規模集積回路）の設計手法は、その回路規模の増大に伴い、回路図による設計から抽象度の高いＨＤＬ（ハードウェア記述言語）によるディジタル回路設計へと移ってきている。このＨＤＬにより設計される回路図は、きわめて膨大であり、動作がきわめて複雑になる。そのため、ＨＤＬにより設計された回路は、ＨＤＬで記述された他のモジュールと合わせてシミュレーション等を行うＨＤＬシミュレータを用いることにより、機能検証作業を行うことが必要となっている。
【０００３】
より詳細には、ＨＤＬシミュレータは工程の全ての局面で使用されるものであり、各レベルでのシミュレーション結果に基本的な差がないことを確認するものである。このようなＨＤＬシミュレータは、検証の対象とするＨＤＬモデル（ＬＳＩ）に対して、それをテストするためのテストベンチと呼ぶ新たなＨＤＬ記述を追加する。テストベンチは、テスト・スティミュラス（テスト・ベクター）を含み、これをテストの対象とするＨＤＬモデル（ＬＳＩ）に与え、シミュレーションを自動実行させるような手順をＨＤＬで記述するものである。すなわち、図６に示すような、テストベンチ・モジュールを最上位とする１つのモデルが完成することになる。これをコンパイル、リンクしてコンピュータ上の実行モジュールを作成し、シミュレータ・コントロール・パネル上で実行をコントロールしながら波形を観察することにより、機能検証を行う。
【０００４】
例えば、特許文献１には、ＣＡＤを用いて設計した回路の機能検証を行う回路の機能検証システムが提案されている。
【０００５】
【特許文献１】特開２００２−２３００７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、外部記憶装置（ハードディスク装置など）と主記憶装置（メモリ）間のデータ転送を制御するＬＳＩにおいては、外部記憶装置へのアクセス速度を高速化するため、複数の装置をあたかも一つの装置のように連続したデータを複数の記憶装置に持たせる場合がある。また、データの保護のためには、複数記憶装置に同一のデータを持たせる場合もある（ミラーリング）。さらに、複数の外部記憶装置がメモリ上の別の空間との間で独立にデータ転送をする場合もある。
【０００７】
これらの機能を併せ持つＬＳＩをテストするためのテストベンチとしては、図７に示すような構成が考えられる。図７に示すＨＤＬシミュレータ２００は、ＨＤＬにより設計されたモデルである検証対象回路２１０に対するＨＤＬシミュレータ機能を発揮するものである。図７に示すように、ＨＤＬシミュレータ２００のテストベンチ２０１は、テストシナリオ２０２と、ＣＰＵモデル２０３と、ＨＤＤ（Hard Disk Drive）モデル２０４と、メモリモデル２０５と、入力／期待値バッファ２０６と、入力／期待値バッファ２０７とを具備している。ＨＤＤモデル２０４は、検証対象回路２１０に接続されるＨＤＤ装置（図示せず）をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＨＤＤ装置）である。このＨＤＤモデル２０４は、複数のＨＤＤ装置を想定したものであり、ＨＤＤモデル２０４ａ〜２０４ｄが設けられている。また、入力／期待値バッファ２０６も、ＨＤＤモデル２０４ａ〜２０４ｄに対応して、入力／期待値バッファ２０６ａ〜２０６ｄに分離されている。さらに、メモリモデル２０５に接続される入力／期待値バッファ２０７も、ＨＤＤモデル２０４ａ〜２０４ｄに対応して、入力／期待値バッファ２０７ａ〜２０７ｄに分離されている。
【０００８】
しかしながら、図７に示すような構成のテストベンチ２０１では、動作モードが異なるときの期待値の作成手順が煩雑になってしまうという問題がある。
【０００９】
本発明は、上記に鑑みてなされたものであって、外部記憶装置へのアクセス動作モードが変わるような場合でも、テストシナリオの作業を省力化でき、テストベンチ作成の効率化が実現できるテストベンチを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明のテストベンチは、複数の外部記憶装置内のデータを主記憶装置上の単一の連続領域にデータ転送させる機能を制御する検証対象回路のモデルに対する各種のシミュレーションを行うテストベンチにおいて、前記検証対象回路のモデルに接続される複数の前記外部記憶装置をモデル化した外部記憶装置モデルと、前記検証対象回路のモデルに接続される前記主記憶装置をモデル化した主記憶装置モデルと、前記検証対象回路のモデルへのレジスタ設定や前記外部記憶装置モデルや前記主記憶装置モデルへの動作機能設定を行い、前記検証対象回路のモデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、前記検証対象回路のモデルにバス接続される仮想的なＣＰＵであるＣＰＵモデルと、前記外部記憶装置モデルに接続される第１のデータ保持バッファと、前記主記憶装置モデルに接続される第２のデータ保持バッファと、を備えており、前記テストシナリオは、前記第１のデータ保持バッファに対して連続したデータを一括設定し、前記主記憶装置モデルに書き込まれるデータの期待値を前記第２のデータ保持バッファに生成させ、前記ＣＰＵモデルを制御して前記第１のデータ保持バッファに設定したデータを前記外部記憶装置モデルに読み出させて前記検証対象回路のモデルに入力させるとともに前記検証対象回路のモデルから前記主記憶装置モデルに対してデータを送出させ、前記第２のデータ保持バッファに保持している期待値との比較をさせる。
【００１１】
また、請求項２にかかる発明のテストベンチは、主記憶装置上の単一の連続領域のデータを複数の外部記憶装置にデータ転送させる機能を制御する検証対象回路のモデルに対する各種のシミュレーションを行うテストベンチにおいて、前記検証対象回路のモデルに接続される複数の前記外部記憶装置をモデル化した外部記憶装置モデルと、前記検証対象回路のモデルに接続される前記主記憶装置をモデル化した主記憶装置モデルと、前記検証対象回路のモデルへのレジスタ設定や前記外部記憶装置モデルや前記主記憶装置モデルへの動作機能設定を行い、前記検証対象回路のモデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、前記検証対象回路のモデルにバス接続される仮想的なＣＰＵであるＣＰＵモデルと、前記外部記憶装置モデルに接続される第１のデータ保持バッファと、前記主記憶装置モデルに接続される第２のデータ保持バッファと、を備えており、前記テストシナリオは、前記第２のデータ保持バッファに対して連続したデータを一括設定し、前記外部記憶装置モデルに書き込まれるデータの期待値を前記第１のデータ保持バッファに生成させ、前記ＣＰＵモデルを制御して前記第２のデータ保持バッファに設定したデータを前記主記憶装置モデルに読み出させて前記検証対象回路のモデルに入力させるとともに前記検証対象回路のモデルから前記外部記憶装置モデルに対してデータを送出させ、前記第１のデータ保持バッファに保持している期待値との比較をさせる。
【００１２】
また、請求項３にかかる発明は、請求項２記載のテストベンチにおいて、同一データを複数の前記外部記憶装置に対して書き込むミラーリングの場合、前記テストシナリオは、前記外部記憶装置モデルに接続される前記第１のデータ保持バッファに対して前記外部記憶装置モデルに書き込まれるデータの期待値のミラーリングを実行させる。
【００１３】
また、請求項４にかかる発明は、請求項１記載のテストベンチにおいて、前記各外部記憶装置が前記主記憶装置上の分離した領域に対して独立にデータ転送する動作モードの場合には、前記テストシナリオは、前記各外部記憶装置モデル用に個々にバッファ制御可能である。
【発明の効果】
【００１４】
請求項１にかかる発明によれば、テストシナリオが外部記憶装置モデルの数に応じたデータ（あるいは期待値）の生成をする作業が省力化でき、テストベンチ作成の効率化が実現できる。
【００１５】
また、請求項２にかかる発明によれば、テストシナリオが外部記憶装置モデルの数に応じたデータ（あるいは期待値）の生成をする作業が省力化でき、テストベンチ作成の効率化が実現できる。
【００１６】
また、請求項３にかかる発明によれば、複数台の外部記憶装置モデルがミラーリング動作をする際に、テストシナリオがミラーリングデータを用意する手間を省力化でき、テストベンチ作成の効率化が実現できる。
【００１７】
また、請求項４にかかる発明によれば、各外部記憶装置モデルが独立して動作するモードの場合には、テストシナリオが各外部記憶装置モデル用のデータを個別に制御ができるので、柔軟性の高い検証が可能である。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照して、この発明にかかるテストベンチの最良な実施の形態を詳細に説明する。
【００１９】
［第１の実施の形態］
本発明の第１の実施の形態を図１ないし図３に基づいて説明する。
【００２０】
図１は、本発明の第１の実施の形態にかかるテストベンチを実現する機能検証装置１のハードウェア構成を示すブロック図である。図１に示すように、機能検証装置１は、例えばパーソナルコンピュータやワークステーションであり、コンピュータの主要部であって各部を集中的に制御するＣＰＵ（Central Processing Unit）２を備えている。このＣＰＵ２には、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read Only Memory）３と、各種データを書換え可能に記憶するＲＡＭ（Random Access Memory）４とがバス５で接続されている。
【００２１】
さらにバス５には、各種のプログラム等を格納するＨＤＤ（Hard Disk Drive）６と、配布されたプログラムであるコンピュータソフトウェアを読み取るための機構としてＣＤ（Compact Disc）−ＲＯＭ７を読み取るＣＤ−ＲＯＭドライブ８と、機能検証装置１とネットワーク９との通信を司る通信制御装置１０と、機能検証時の各種操作指示を行うキーボードやマウスなどの入力装置１１と、機能検証時のシミュレーション結果等を表示するＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）などの表示装置１２とが、図示しないＩ／Ｏを介して接続されている。
【００２２】
ＲＡＭ４は、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ２の作業エリアとして機能してバッファ等の役割を果たす。
【００２３】
図１に示すＣＤ−ＲＯＭ７は、この発明の記憶媒体を実施するものであり、ＯＳ（Operating System）や各種のプログラムが記憶されている。ＣＰＵ２は、ＣＤ−ＲＯＭ７に記憶されているプログラムをＣＤ−ＲＯＭドライブ８で読み取り、ＨＤＤ６にインストールする。
【００２４】
なお、記憶媒体としては、ＣＤ−ＲＯＭ７のみならず、ＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブル・ディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置１０を介してインターネットなどのネットワーク９からプログラムをダウンロードし、ＨＤＤ６にインストールするようにしてもよい。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のＯＳ（Operating System）上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００２５】
このシステム全体の動作を制御するＣＰＵ２は、このシステムの主記憶として使用されるＨＤＤ６上にロードされたプログラムに基づいて各種処理を実行する。
【００２６】
次に、機能検証装置１のＨＤＤ６にインストールされている各種のプログラムがＣＰＵ２に実行させる機能のうち、本実施の形態の機能検証装置１が備える特長的な機能について説明する。ここでは、ＨＤＬシミュレータプログラムがＣＰＵ２に実行させるＨＤＬシミュレータ機能について説明する。ＨＤＬシミュレータ機能は、概略的には、ＨＤＬ（ハードウェア記述言語）により設計されたモデルに対してシミュレーションを行うものである。
【００２７】
図２は、ＨＤＬシミュレータ１００のテストベンチ１０１と検証対象回路のモデル５０との関連構成を概略的に示す機能ブロック図である。ＨＤＬシミュレータ１００は、ＨＤＬにより設計されたモデルである検証対象回路のモデル５０に対するＨＤＬシミュレータ機能を発揮するものである。図２に示すように、ＨＤＬシミュレータ１００のテストベンチ１０１は、テストシナリオ１０２と、ＣＰＵモデル１０３と、外部記憶装置モデルであるＨＤＤ（Hard Disk Drive）モデル１０４と、主記憶装置モデルであるメモリモデル１０５と、第１のデータ保持バッファである入力／期待値バッファ１０６と、第２のデータ保持バッファである入力／期待値バッファ１０７とを具備している。このようなテストベンチ１０１は、検証対象回路のモデル５０を検証するために、Verilog、VHDL、C/C++、Ｅ言語、Vera等の言語を用いてコーディングされたものである。
【００２８】
ＣＰＵモデル１０３は、検証対象回路のモデル５０に接続されるＣＰＵ（図示せず）をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＣＰＵ）である。
【００２９】
ＨＤＤモデル１０４は、検証対象回路のモデル５０に接続されるＨＤＤ装置（図示せず）をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＨＤＤ装置）であり、入力／期待値バッファ１０６が接続されている。本実施の形態においては、複数のＨＤＤ装置を想定したものであり、ＨＤＤモデル１０４ａ〜１０４ｄが設けられている。
【００３０】
メモリモデル１０５は、検証対象回路のモデル５０に接続されるメモリ（図示せず）をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なメモリ）であり、入力／期待値バッファ１０７が接続されている。
【００３１】
テストシナリオ１０２は、検証対象回路のモデル５０に種々の動作をさせるためのプログラムであり、ＣＰＵモデル１０３を経由して検証対象回路のモデル５０へのレジスタ設定やＨＤＤモデル１０４やメモリモデル１０５への動作機能設定等を行う。検証対象回路のモデル５０にはレジスタ（ＡＳＩＣの種々動作を司る機能）が内蔵されており、このレジスタに対するテストシナリオ１０２からのアクセス又は指示によって、検証対象回路のモデル５０が所望の動作を実行するのである。
【００３２】
次に、本実施の形態のテストシナリオ１０２からのアクセス又は指示による検証対象回路のモデル５０の動作について説明する。
【００３３】
まず、複数のＨＤＤ装置からの読み出しデータがＲＡＭ上に連続に書かれる場合のシミュレーションについて説明する。
【００３４】
テストシナリオ１０２は、ＨＤＤモデル１０４に接続された入力／期待値バッファ１０６に対して連続したデータを配置する。データ生成は、入力／期待値バッファ１０６そのものがインクリメントデータを自動生成する場合もあり、また外部ファイルから供給することも可能である。
【００３５】
図３は、ＨＤＤモデル１０４に接続される入力／期待値バッファ１０６内のデータイメージを示す模式図である。図３に示すように、１６ｂｉｔ区切り毎に各ＨＤＤモデル１０４ａ〜１０４ｄ用のデータが交互に配置されている。同一のＨＤＤモデルのアクセスは上から順に行なわれる。ＨＤＤモデルの数は可変であり、入力／期待値バッファ１０６で動的にバッファ内の配置をＨＤＤの数に合わせて変えることが可能である。
【００３６】
次に、テストシナリオ１０２は、メモリモデル１０５に接続された入力／期待値バッファ１０７に対してメモリモデル１０５に書き込まれるデータの期待値を生成する。これは、ＨＤＤモデル１０４に接続された入力／期待値バッファ１０６のデータの中身を複製することにより実現する。なお、入力／期待値バッファ１０６，１０７間のデータコピー機能は、バッファ自体が有している。
【００３７】
続いて、テストシナリオ１０２は、ＣＰＵモデル１０３を介して検証対象回路のモデル５０のＨＤＤ制御機能の制御を行い、データ転送を開始させる。検証対象回路のモデル５０は、ＨＤＤモデル１０４に対してデータリードアクセスを行い、各ＨＤＤモデル１０４ａ〜１０４ｄは接続された単一の入力／期待値バッファ１０６から自分のモデルに対応したデータを取得し、検証対象回路のモデル５０に与える。なお、ＨＤＤモデル１０４が自身のチャネル番号を引数として入力／期待値バッファ１０６にデータ取得要求を行なうことで、入力／期待値バッファ１０６がチャネル番号に応じたデータを自身のデータバッファから抜き出して返す。
【００３８】
検証対象回路のモデル５０は、各ＨＤＤモデル１０４ａ〜１０４ｄから読み出したデータを連結し、メモリモデル１０５へのライトアクセスを行なう。
【００３９】
ライトデータを受け取ったメモリモデル１０５は、接続された入力／期待値バッファ１０７に対し、アドレス、データおよび書き込みマスクを引数として、期待値照合要求を行なう。メモリモデル１０５に接続された入力／期待値バッファ１０７は、期待値照合し、エラーの場合はメッセージを表示してシミュレーションを停止し、ユーザにデバッグを促す。
【００４０】
次に、ＲＡＭ上の連続データが複数のＨＤＤ装置に書き込まれる場合のシミュレーションについて説明する。
【００４１】
テストシナリオ１０２は、メモリモデル１０５に接続された入力／期待値バッファ１０７に対して連続したデータを配置する。データ生成は入力／期待値バッファ１０７そのものがインクリメントデータを自動生成する場合もあり、また外部ファイルから供給することも可能である。
【００４２】
次に、テストシナリオ１０２は、ＨＤＤモデル１０４に接続された入力／期待値バッファ１０６に対して各ＨＤＤモデル１０４ａ〜１０４ｄに書き込まれるデータの期待値を生成する。これは、メモリモデル１０５に接続された入力／期待値バッファ１０７のデータの中身を複製することにより実現する。入力／期待値バッファ１０６，１０７間のデータコピー機能は、バッファ自体が有している。
【００４３】
続いて、テストシナリオ１０２は、ＣＰＵモデル１０３を介して検証対象回路のモデル５０のＨＤＤ制御機能の制御を行ない、データ転送を開始させる。検証対象回路のモデル５０は、メモリモデル１０５に対してリードアクセスを行ない、メモリモデル１０５は接続された入力／期待値バッファ１０７からアドレスに応じたデータを取得し、検証対象回路のモデル５０に与える。
【００４４】
検証対象回路のモデル５０は、メモリモデル１０５から受け取ったデータを各ＨＤＤ１０４ａ〜１０４ｄ用に分離し、各ＨＤＤモデル１０４ａ〜１０４ｄに対してライトアクセスする。
【００４５】
ライトデータを受け取った各ＨＤＤモデル１０４ａ〜１０４ｄは、接続された入力／期待値バッファ１０６に対して期待値照合要求を行なう。この入力／期待値バッファ１０６は、対応するＨＤＤのチャネルに応じた期待値を自身のデータバッファから抜き出し、要求のあったデータと照合し、一致しなければエラーメッセージを表示してシミュレーションを停止し、ユーザにデバッグを促す。
【００４６】
このように本実施の形態によれば、テストシナリオ１０２がＨＤＤモデル１０４（１０４ａ〜１０４ｄ）の数に応じたデータ（あるいは期待値）の生成をする作業が省力化でき、テストベンチ作成の効率化が実現できる。
【００４７】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図４に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。本実施の形態は、ＲＡＭ上の連続データが複数のＨＤＤ装置にミラーリングされる場合のシミュレーションについて説明するものである。
【００４８】
本実施の形態のテストシナリオ１０２からのアクセス又は指示による検証対象回路のモデル５０の動作について説明する。
【００４９】
テストシナリオ１０２は、メモリモデル１０５に接続された入力／期待値バッファ１０７に対して連続したデータを配置する。データ生成は、入力／期待値バッファ１０７そのものがインクリメントデータを自動生成する場合もあり、また外部ファイルから供給することも可能である。
【００５０】
次に、テストシナリオ１０２は、ＨＤＤモデル１０４に接続された入力／期待値バッファ１０６に対して各ＨＤＤモデル１０４ａ〜１０４ｄに書き込まれるデータの期待値を生成する。これは、メモリモデル１０５に接続された入力／期待値バッファ１０７のデータの中身を複製することにより実現する。入力／期待値バッファ１０６，１０７間のデータコピーはバッファ自体が有している。
【００５１】
ここで、ミラーリングの場合は、テストシナリオ１０２がＨＤＤモデル１０４用の入力／期待値バッファ１０６に対してミラーリングの指定を行うことで、入力／期待値バッファ１０６のアクセスモードが変わる。
【００５２】
続いて、テストシナリオ１０２は、ＣＰＵモデル１０３を介して検証対象回路のモデル５０のＨＤＤ制御機能の制御を行ない、データ転送を開始させる。検証対象回路のモデル５０は、メモリモデル１０５に対してリードアクセスを行ない、メモリモデル１０５は接続された入力／期待値バッファ１０７からアドレスに応じたデータを取得し、検証対象回路のモデル５０に与える。
【００５３】
検証対象回路のモデル５０は、メモリモデル１０５から受け取ったデータを各ＨＤＤ用に分離し、各ＨＤＤモデル１０４ａ〜１０４ｄに対してライトアクセスする。
【００５４】
ライトデータを受け取った各ＨＤＤモデル１０４ａ〜１０４ｄは、接続された入力／期待値バッファ１０６に対して期待値照合要求を行なう。この入力／期待値バッファ１０６は、対応するＨＤＤのチャネルに応じた期待値を自身のデータバッファから抜き出し、要求のあったデータと照合し、一致しなければエラーメッセージを表示してシミュレーションを停止し、ユーザにデバッグを促す。データの抜き出しの際、ミラーリングの指定があった場合は、偶数チャネルの場合はひとつ小さいチャネルに置き換えて期待値を抜き出すことでミラーリングの検証ができる。例えば、図４に示すように、「ＨＤＤモデル２」は「ＨＤＤモデル１」とミラーリングされる場合は、「ＨＤＤモデル２」の期待値は「ＨＤＤモデル１」と同一である。
【００５５】
なお、偶数チャネルの期待値データをひとつ小さいチャネルの期待値からコピーし、アクセスは各チャネルに応じてそのままアクセスするという方法も可能である。
【００５６】
このように本実施の形態によれば、複数台のＨＤＤモデル１０４ａ〜１０４ｄがミラーリング動作をする際に、テストシナリオ１０２がミラーリングデータを用意する手間を省力化でき、テストベンチ作成の効率化が実現できる。
【００５７】
［第３の実施の形態］
次に、本発明の第３の実施の形態を図５に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。本実施の形態は、複数のＨＤＤ装置が独立に動作する場合のシミュレーションについて説明するものである。
【００５８】
図５は、本発明の第３の実施の形態にかかるＨＤＬシミュレータ１００のテストベンチ１０１と検証対象回路のモデル５０との関連構成を概略的に示す機能ブロック図である。本実施の形態のテストベンチ１０１が第１の実施の形態のテストベンチ１０１と異なる点は、メモリモデル１０５に接続される入力／期待値バッファ１０７が、ＨＤＤモデル１０４ａ〜１０４ｄに対応して分離されている点である。すなわち、本実施の形態においては、入力／期待値バッファ１０７ａ〜１０７ｄが設けられている。
【００５９】
次に、本実施の形態のテストシナリオ１０２からのアクセス又は指示による検証対象回路のモデル５０の動作について説明する。
【００６０】
テストシナリオ１０２は、ＨＤＤモデル１０４に接続された入力／期待値バッファ１０６に対して、入力データもしくは期待値を設定したいチャネル数を指定してデータの生成を行なう。
【００６１】
メモリモデル１０５側は、各ＨＤＤモデル１０４ａ〜１０４ｄからの転送に応じたバッファを用意し、ＨＤＤからメモリへの転送の場合は対応するチャネルのＨＤＤ側のバッファの内容を複製して期待値を作り、メモリからＨＤＤへの転送の場合はメモリ側のバッファにデータを生成し、対応するＨＤＤ側のバッファにデータを複製して期待値を作る。
【００６２】
検証対象回路のモデル５０の制御は、各ＨＤＤが独立して動作するモードにする以外は上述した実施の形態と同じであるため、その説明は省略する。
【００６３】
このケースでは、各ＨＤＤモデル１０４ａ〜１０４ｄのインタフェースがリード・ライト独立に発生し、メモリモデル１０５からのリードアクセスの場合はメモリモデル１０５側の入力／期待値バッファ１０７ａ〜１０７ｄからデータが抜かれて検証対象回路のモデル５０に渡され、ＨＤＤモデル１０４側の入力／期待値バッファ１０６で期待値照合が行なわれる。メモリモデル１０５へのライトアクセスの場合は、ＨＤＤモデル１０４側の入力／期待値バッファ１０６からデータが抜かれて検証対象回路のモデル５０に渡され、メモリモデル１０５側の入力／期待値バッファ１０７ａ〜１０７ｄで期待値照合が行なわれる。これら動作が、各ＨＤＤチャネル毎に独立して実行される。
【００６４】
このように本実施の形態によれば、各ＨＤＤモデル１０４ａ〜１０４ｄが独立して動作するモードの場合には、テストシナリオ１０２が各モデル用のデータを個別に制御ができるので、柔軟性の高い検証が可能である。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施の形態にかかるテストベンチを実現する機能検証装置のハードウェア構成を示すブロック図である。
【図２】ＨＤＬシミュレータのテストベンチと検証対象回路との関連構成を概略的に示す機能ブロック図である。
【図３】ＨＤＤモデルに接続される入力／期待値バッファ内のデータイメージを示す模式図である。
【図４】本発明の第２の実施の形態にかかるテストベンチのＨＤＤモデルに接続される入力／期待値バッファ内のデータイメージを示す模式図である。
【図５】本発明の第３の実施の形態にかかるＨＤＬシミュレータのテストベンチと検証対象回路との関連構成を概略的に示す機能ブロック図である。
【図６】ＨＤＬシミュレータの構成を概略的に示す模式図である。
【図７】テストベンチと検証対象回路との関連構成を概略的に示す機能ブロック図である。
【符号の説明】
【００６６】
５０      検証対象回路のモデル
１０１    テストベンチ
１０２    テストシナリオ
１０３    ＣＰＵモデル
１０４    外部記憶装置モデル
１０５    主記憶装置モデル
１０６    第１のデータ保持バッファ
１０７    第２のデータ保持バッファ
【図１】
2006259871.tif 000003
【図２】
2006259871.tif 000004
【図３】
2006259871.tif 000005
【図４】
2006259871.tif 000006
【図５】
2006259871.tif 000007
【図６】
2006259871.tif 000008
【図７】
2006259871.tif 000009