(57)【要約】【課題】システムＬＳＩに含まれるプロセッサモジュールを検証する。【解決手段】システムＬＳＩ検証装置１０は、検証対象であるプロセッサモジュールの設計の記述データが記憶された回路記述記憶部１５と、記述データと検証環境の仕様が記述された検証環境仕様ファイルに従って、検証用タスクファイルを生成して検証環境を生成する検証環境生成部１７と、検証用タスクを起動するための環境コマンド関数を含むテストプログラムが記憶されたテストプログラム記憶部１８と、テストプログラムに従って論理シミュレーションを実行する論理シミュレーション部１９を備える。【選択図】図１
2007310565.tif 000002
【特許請求の範囲】
【請求項１】
システムＬＳＩに含まれるプロセッサモジュールを検証するシステムＬＳＩ検証装置であって、
検証対象である前記プロセッサモジュールの設計の記述データが記憶された回路記述記憶部と、
前記記述データと検証環境の仕様が記述された検証環境仕様ファイルに従って、検証用タスクファイルを生成する検証用タスク生成部と、
検証用タスクを起動するための環境コマンド関数を含むテストプログラムが記憶されたテストプログラム記憶部と、
前記テストプログラムに従って論理シミュレーションを実行する論理シミュレーション部
を備えることを特徴とするシステムＬＳＩ検証装置。
【請求項２】
前記検証用タスクをコマンドとして起動するために定めた予約アドレスが記録された検証予約領域定義ファイルを出力する検証予約アドレス生成部を更に備え、
前記論理シミュレーション部は、前記検証予約領域定義ファイルに記述されたコマンドに相当する予約アドレスに書き込みが発生すると、前記検証用タスクに通知してアクションを開始させる
ことを特徴とする請求項１に記載のシステムＬＳＩ検証装置。
【請求項３】
前記検証用タスク生成部は、検証に用いられるタスクが記憶された検証タスクライブラリから、前記検証環境仕様ファイルに従って検証に必要な検証用タスクが選択され、選択された検証用タスクの前記検証用タスクファイルを生成する
ことを特徴とする請求項１に記載のシステムＬＳＩ検証装置。
【請求項４】
前記テストプログラムに用いられる前記環境コマンド関数が記憶されたテストプログラム向けライブラリから、前記検証環境仕様ファイルに従って前記テストプログラムに必要な前記環境コマンド関数が選択され、前記環境コマンド関数ファイルと前記テストプログラムを生成する環境コマンド関数生成部
を更に備えることを特徴とする請求項１に記載のシステムＬＳＩ検証装置。
【請求項５】
システムＬＳＩに含まれるプロセッサモジュールを検証するシステムＬＳＩ検証プログラムであって、
回路記述記憶部に記憶された検証対象である前記プロセッサモジュールの設計の記述データと、検証環境の仕様が記述された検証環境仕様ファイルに従って、検証用タスクファイルを生成する検証用タスク生成ステップと、
検証用タスクを起動するための環境コマンド関数を含むテストプログラムに従って論理シミュレーションを実行する論理シミュレーションステップ
をコンピュータに実行させることを特徴とするシステムＬＳＩ検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムＬＳＩに含まれるプロセッサモジュールを検証するシステムＬＳＩ検証装置及びシステムＬＳＩ検証プログラムに関する。
【背景技術】
【０００２】
昨今のデジタル機器の発達に伴い、各デジタル機器に要求される機能を実現するシステムＬＳＩ（Large Scale Integration）が求められている。一方、各デジタル機器の機能が多様化するのに伴い、システムＬＳＩに求められる機能も多様化している。これに対応するべく、共通のプロセッサ・コアをベースに、処理に応じてカスタマイズされた拡張機能を持つマルチプロセッサ構成が採用されることがある。
【０００３】
この拡張機能は、命令やメモリ構成等が選択可能なコンフィグラブル・プロセッサにより実現されている場合がある。又、このコンフィグラブル・プロセッサの提供者は、コンフィグレーションを指定して、論理合成可能なハードウェア記述を出力するシステムを提供している。このようなプロセッサ及びシステムによれば、オプション命令やメモリサイズを指定することによって、アプリケーションに最適な構成のプロセッサを短期間で開発することができる。
【０００４】
一方、システムＬＳＩにおいて命令セット等を変更した場合、コンパイラやシミュレータ等のソフトウェア開発ツールも変更しなければならない。このため、コンフィグレーションを指定することにより、新たなハードウェア記述とともに、新たなハードウェアに対応するソフトウェア開発ツールを生成しなければならない。
【０００５】
このようなマルチプロセッサ構成を持つシステムＬＳＩを効率よく開発するために、特許文献１に記載されるシステムＬＳＩ開発環境生成方法がある。この特許文献１に記載の方法によって、プロセッサの命令動作が記述されたコンフィグレーション指定ファイルが入力されると、ＲＴＬ（Register Transfer Language）、コンパイラ、アセンブラ、シミュレータ、検証ベクトル、デバッガが自動的に構築される。
【特許文献１】特開２００３−３２３４６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１に記載の方法では、システムＬＳＩのプロセッサモジュール内プロセッサコアの単位で検証することができるが、システムＬＳＩに複数含まれるプロセッサモジュールの単位で機能を検証することができない問題点がある。
【０００７】
このため、アプリケーション別のシステムＬＳＩ開発毎に、プロセッサモジュール検証環境を生成する必要がある。従ってハードウェア及びファームウェアの設計仕様変更が発生すると、検証環境及びテストプログラムの変更に時間を要してしまう問題がある。
【０００８】
更に、一つのシステムＬＳＩに含まれる複数のプロセッサモジュール間で、検証環境が異なる部分があると、検証環境の変更や管理が更に煩雑になってしまう問題がある。
【０００９】
そこで、検証の精度を上げ、かつ検証に係る期間やコストを低減するために、検証環境やテストプログラムの効率よい再利用方法が求められている。
【００１０】
一方、ハードウェア開発はアーキテクチャの階層に従って設計が進むため、その機能検証は、回路規模又は機能毎に数段階に分けて、或いはハードウェアの開発に平行して行われる。これらのハードウェアの検証を行うためのテストプログラムをコンパイルして、ＲＴＬシミュレーションを行う機能を含む検証環境は、それぞれの検証ステップとは独立した方法で行われる。従って、テストプログラムがＣ言語などの高級言語で記述されても、テストプログラムを独自の検証環境に適するように変更を加える必要がある。これにより、テストプログラムは複雑化し、又、プログラムの数が増えるに従ってテストプログラムの変更に係るコストが膨大なものになってしまう問題がある。
【００１１】
そこで本発明の目的は、システムＬＳＩのプロセッサモジュールを容易に検証することのできるシステムＬＳＩ検証装置及びシステムＬＳＩ検証プログラムを提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の第１の特徴は、システムＬＳＩに含まれるプロセッサモジュールを検証するシステムＬＳＩ検証装置に関する。即ち本発明の第１の特徴に係るシステムＬＳＩ検証装置は、検証対象である前記プロセッサモジュールの設計の記述データが記憶された回路記述記憶部と、前記記述データと検証環境の仕様が記述された検証環境仕様ファイルに従って、検証用タスクファイルを生成する検証用タスク生成部と、検証用タスクを起動するための環境コマンド関数を含むテストプログラムが記憶されたテストプログラム記憶部と、前記テストプログラムに従って論理シミュレーションを実行する論理シミュレーション部を備える。
【００１３】
本発明の第２の特徴は、システムＬＳＩに含まれるプロセッサモジュールを検証するシステムＬＳＩ検証プログラムに関する。即ち本発明の第２の特徴に係るシステムＬＳＩ検証装置は、回路記述記憶部に記憶された検証対象である前記プロセッサモジュールの設計の記述データと、検証環境の仕様が記述された検証環境仕様ファイルに従って、検証用タスクファイルを生成する検証用タスク生成ステップと、検証用タスクを起動するための環境コマンド関数を含むテストプログラムに従って論理シミュレーションを実行する論理シミュレーションステップをコンピュータに実行させる。
【発明の効果】
【００１４】
本発明によれば、システムＬＳＩのプロセッサモジュールを容易に検証することのできるシステムＬＳＩ検証装置及びシステムＬＳＩ検証プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００１６】
（最良の実施の形態）
本発明の最良の実施の形態に係るシステムＬＳＩ検証装置１０は、システムＬＳＩに含まれるプロセッサモジュールを検証する装置である。システムＬＳＩ検証装置１０は、図１に示すように、入力部１１及び出力部１２に接続されている。入力部１１は、キーボード、マウスなどである。入力部１１は、ユーザの操作によってシステムＬＳＩ検証装置１０に情報を入力する。出力部１２は、ディスプレイなどである。出力部１２に、システムＬＳＩ検証装置１０の処理結果等が表示される。
【００１７】
システムＬＳＩ検証装置１０は、入出力インターフェース部１３、制御部１４、回路記述記憶部１５、設定ファイル記憶部１６、検証環境生成部１７、テストプログラム記憶部１８、論理シミュレーション部１９を備える。
【００１８】
入出力インターフェース部１３は、入力部１１から入力されたデータを制御部１４に入力するとともに、制御部１４から入力されたデータを出力部１２に出力する。制御部１４は、システムＬＳＩ検証装置１０に備えられた入出力インターフェース部１３、回路記述記憶部１５、設定ファイル記憶部１６、検証環境生成部１７、テストプログラム記憶部１８、論理シミュレーション部１９の各部の操作を制御する。
【００１９】
回路記述記憶部１５には、検証対象であるプロセッサモジュールの設計の記述データが記憶されている。プロセッサモジュールの設計の記述データとは、具体的には、例えばＲＴＬ（Register Transfer Language）である。
【００２０】
設定ファイル記憶部１６には、検証環境生成部１７によって検証環境が生成されるときに参照されるファイルが記憶される。具体的には、設定ファイル記憶部１６には、図２に示すように検証環境仕様ファイル２０、グローバルメモリマップファイル２１、ローカルメモリマップファイル２２、制御バスアドレスマップファイル２３が記憶される。検証環境仕様ファイル２０、ローカルメモリマップファイル２２及び制御バスアドレスマップファイル２３は、検証対象となるプロセッサモジュール毎に用意される。一方、グローバルメモリマップファイル２１は、検証対象となるプロセッサモジュールが含まれるシステムＬＳＩ毎に用意される。更に、設定ファイル記憶部１６には、プロセッサモジュールのコンフィグレーションファイルを入力としてシステムＬＳＩ開発環境で生成された機会命令関数ヘッダファイルなどが含まれても良い。
【００２１】
検証環境生成部１７は、検証環境を作成するための情報が入力部１１から入力されると、検証対象のプロセッサモジュールと検証仕様に応じた検証環境を作成する。この検証環境には、図２に示すように検証用タスクファイル３２、検証予約領域定義ファイル３０及び３１、環境コマンド関数ファイル３３が含まれる。この検証環境は、テストプログラム記憶部１８に記憶されても良い。
【００２２】
テストプログラム記憶部１８には、複数のテストプログラムとそれらのテストプログラムから呼び出される関数や定義が格納される。このテストプログラムには、検証用タスクを起動するための環境コマンド関数を呼び出すためのインターフェースが設けられている。テストプログラムは、例えばファームウェアと同様のＣ言語で記述される。テストプログラム記憶部１８には、検証環境生成部１７によって出力された検証用タスクファイル３２、検証予約領域定義ファイル３０及び３１、環境コマンド関数ファイル３３などが記憶されても良い。
【００２３】
論理シミュレーション部１９は、テストプログラム記憶部１８に記憶されたテストプログラムに従って論理シミュレーションを実行する。更に論理シミュレーション部１９は、後述する検証予約領域定義ファイル３０に記述されたコマンドに相当する予約アドレスに書き込みが発生すると、検証用タスクに通知してアクションを開始させる。この予約アドレスは、例えば、検証対象となるシステムＬＳＩの外部メモリのアドレスである。
【００２４】
次に、図２を参照して図１に示した設定ファイル記憶部１６及び検証環境生成部１７を詳述する。
【００２５】
検証環境仕様ファイル２０は、（１）検証予約領域をプロセッサモジュールの外部メモリから割り当てるか、その他の領域とするかの指示、（２）プロセッサモジュールの外部インターフェースに接続する検証モデルの選択、（３）プロセッサコア内部のモニタや各種バスのモニタを設置するかの選択等の記述が含まれる。ここで、検証モデルとは、グローバルバスモデル、プロセッサモジュールの外部信号入出力モデルなどである。
【００２６】
グローバルメモリマップファイル２１は、システムＬＳＩに割り当てられたメモリのメモリマップが記述されたファイルである。具体的には、グローバルメモリマップファイル２１には、図３の様なデータが記述されている。
【００２７】
ローカルメモリマップファイル２２は、検証対象となるプロセッサモジュールに割り当てられたメモリのメモリマップが記述されたファイルである。具体的には、ローカルメモリマップファイル２２には、図４の様なデータが記述されている。
【００２８】
制御バスアドレスマップファイル２３は、検証対象となるプロセッサモジュールの制御バスに割り当てられた制御バスのアドレスマップが記述されたファイルである。具体的には、制御バスアドレスマップファイル２３には、図５の様なデータが記述されている。
【００２９】
検証環境生成部１７は、検証タスクライブラリ２４、テストプログラム向けライブラリ２５、検証予約アドレス生成部２６、検証用タスク生成部２７、環境コマンド関数生成部２８を備えている。
【００３０】
検証タスクライブラリ２４には、検証に用いられる検証用タスクが記憶されている。検証用タスクは、例えば、クロック信号、リセット信号、デバック用信号などのプロセッサモジュールの入出力信号に接続されるタスク、プロセッサモジュールのハードウェアエンジンの外部とのインターフェースに接続される外部信号入出力制御タスク、プロセッサコア内部に接続されるモニタタスクなどが含まれる。更に、ＲＴＬの機能検証とテストプログラムのデバッグ用に、プロセッサモジュールの制御バスに接続される制御バスモニタタスク、プロセッサモジュールのブリッジに接続されるブリッジモニタタスクなどが含まれても良い。又、検証タスクライブラリ２４には、仮アドレスが設定された検証用タスクのテンプレートが記憶されていても良い。
【００３１】
テストプログラム向けライブラリ２５には、テストプログラムに用いられる環境コマンド関数が記憶されている。
【００３２】
検証予約アドレス生成部２６は、検証用タスクをコマンドとして起動するために定めた予約アドレスが記録された検証予約領域定義ファイル３０及び３１を出力する。検証予約アドレス生成部２６は、回路記述データ、グローバルメモリマップファイル２１、ローカルメモリマップファイル２２及び制御バスアドレスマップファイル２３に基づいて、検証予約領域定義ファイルを出力する。検証予約アドレス生成部２６は、検証用タスクが参照可能な検証言語で記述された検証予約領域定義ファイル３０と、テストプログラムが参照可能な検証予約領域定義ファイル３１を出力する。
【００３３】
検証予約領域定義ファイル３０は、図６に示すように、システムＬＳＩに含まれる複数のプロセッサモジュールに共通する前記検証用タスクをコマンドとして起動するために定めた予約アドレスと、検証対象のプロセッサモジュールに特有の検証用タスクをコマンドとして起動するために定めた予約アドレスとが個別に記載されている。図６に示した例では、複数のプロセッサモジュールに共通の検証タスクや、検証対象のプロセッサモジュールに固有の検証用タスクとして、そのほかのモジュールからの割り込み信号をアサートするタスクを検証環境として用意することが、検証環境仕様ファイル２０において示されている場合の検証予約領域定義ファイルである。検証対象のプロセッサモジュールに固有な予約アドレスは、検証対象毎に置換される。又、検証予約定義ファイル３０及び３１は、プロセッサモジュールの外部に接続されるＳＤＲＡＭなどのメモリモデルの特定の予約領域にマップされる。この予約領域には、検証予約定義以外の目的には使用されないように制御される。
【００３４】
プロセッサモジュールに共通なコマンドとしては、テストプログラムの終了、終了ステータス出力、メモリ出力、プロセッサモジュールの外部信号入出力の各処理が挙げられる。一方検証対象のプロセッサモジュールに固有なコマンドとしては、モジュール外部からの割り込み検証機能、ハードウェアエンジン別の外部インターフェース検証機能などが挙げられる。このようにマルチプロセッサ構造のシステムＬＳＩを検証する場合に、プロセッサモジュール全てに共通する部分と、検証対象のプロセッサモジュールに固有な部分とを個別に管理することで、環境の保守を容易にすることができる。
【００３５】
図６では検証用タスクが参照する検証予約領域定義ファイル３０について記載したが、テストプログラムが参照する検証予約領域定義ファイル３１についても同様に、各プロセッサモジュールに共通する予約アドレスと、検証対象のプロセッサモジュールに特有の検証用タスクとが個別に記載されている。
【００３６】
又、検証予約領域定義ファイル３０及び３１において、タスク又は環境コマンド関数の機能別に、そのパラメータや関数の処理結果が格納されるメモリのポインタやステータスが記述されている。更に、検証予約領域定義ファイル３０及び３１においてバージョン管理アドレスやプロセッサモジュールのＩＤを管理するアドレスなどが設定されることにより、その後の設計仕様変更においてテンプレートやライブラリの変更と組み合わせて容易に対応することができる。更に、検証予約領域定義ファイル３０及び３１において、一つの関数に関するアドレス定義のまとまり毎に追加用アドレスが設定されることが好ましい。これにより、初期値を設定して、関数の仕様追加時に機能切り替えフラグやパラメータの追加に容易に対応することができる。又、旧バージョンの関数を利用した既存のテストプログラムを修正することなく、新たな仕様の関数を使用したテストプログラムを追加することができる。
【００３７】
検証用タスク生成部２７は、検証環境仕様ファイル２０及び検証タスクライブラリ２４に従って、検証用タスクファイル３２を生成する。この検証用タスクファイル３２は、検証用言語で記述されたソースファイルとヘッダファイルが含まれる。検証環境仕様ファイル２０に従って検証に必要な検証用タスクが選択される。又、検証タスクライブラリ２４に、仮アドレスが設定された検証用タスクのテンプレートが記憶されている場合、検証環境仕様ファイル２０に従って検証に必要な検証用タスクのテンプレートが選択され、選択された検証用タスクのテンプレートの仮アドレスを、検証予約領域定義ファイル３０に記憶された予約アドレスに置換して、検証用タスクファイル３２を生成する。検証用タスクファイル３２は、論理シミュレーション部１９によって検証用タスクとして実行される。
【００３８】
環境コマンド関数生成部２８は、検証環境仕様ファイル２０及びテストプログラム向けライブラリ２５に従って、テストプログラム向けライブラリ２５からテストプログラムに必要な環境コマンド関数が選択され、環境コマンド関数ファイル３３を生成する。例えば、環境コマンド関数ファイル３３は、テストプログラム用言語で記載されたヘッダファイル及びプログラムソースである。この環境コマンド関数ファイル３３を参照することにより、テストプログラムから呼び出し可能な機能や項目を把握することができる。
【００３９】
次に図７を参照して本発明の最良の実施の形態に係るシステムＬＳＩ検証装置１０の検証用タスクの処理を説明する。
【００４０】
まずステップＳ１０１において、検証予約領域定義ファイル３０及び３１で定義された予約アドレスのメモリを初期化する。
【００４１】
次に、ステップＳ１０２においてクロックを１サイクル進め、ステップＳ１０３において予約アドレスのメモリから環境コマンドを読み出す。ステップＳ１０４において環境コマンドが有効でないと判定される場合、ステップＳ１０２に戻る。一方、ステップＳ１０４において環境コマンドは有効であると判定される場合、ステップＳ１０５に進む。
【００４２】
ステップＳ１０５において、環境コマンドにパラメータがあると判定される場合、ステップＳ１０６において予約アドレスのメモリからパラメータを読み出し、ステップＳ１０７に進む。一方ステップＳ１０５において環境コマンドにパラメータがないと判定される場合、ステップＳ１０７に進む。
【００４３】
ステップＳ１０７において、環境コマンドによる処理を実施する。次にステップＳ１０８において、この環境コマンドは論理シミュレーションを続行する種類であるか否かが判定される。論理シミュレーションを続行する種類であると判定される場合、ステップＳ１０９において予約アドレスのメモリに環境コマンドを無効とする値を書き込み、ステップＳ１０２に進む。ステップＳ１０８において論理シミュレーションを続行する種類でないと判定される場合、検証用タスクは処理を終了する。
【００４４】
次に図８を参照して、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置１０のテストプログラムが呼び出す環境コマンド関数の処理を説明する。
【００４５】
まず、ステップＳ２０１において環境コマンドにパラメータがあるか否かが判定される。ステップＳ２０１において、環境コマンドにパラメータがあると判定される場合、ステップＳ２０２において、予約アドレスのメモリへパラメータが書き込まれ、ステップＳ２０３に進む。一方ステップＳ２０１においてパラメータがないと判定される場合、ステップＳ２０３に進む。
【００４６】
ステップＳ２０３において、予約アドレスのメモリにコマンドが書き込まれる。更に、ステップＳ２０４において環境コマンドは戻り値を持つ種類であるか否かが判定される。戻り値を持つ種類であると判定される場合、ステップＳ２０５において予約アドレスのメモリからデータを読み出し、戻り値として返し、環境コマンド関数の処理を終了する。一方戻り値を持つ種類でないと判定される場合、そのまま環境コマンド関数の処理を終了する。
【００４７】
次に図９を参照して、システムＬＳＩを説明する。本発明の最良の実施の形態に係るシステムＬＳＩ検証装置１０は、図９に示すシステムＬＳＩ１１０に含まれるプロセッサモジュールを検証する。ここでシステムＬＳＩ１１０に含まれる複数のプロセッサモジュールはマルチプロセッサモジュール階層と呼ばれる。システムＬＳＩ１１０に含まれる各プロセッサモジュールはプロセッサモジュール階層と呼ばれる。
【００４８】
図９に示すシステムＬＳＩ１１０は、第１のプロセッサモジュール１００ａ乃至第５のプロセッサモジュール１００ｅを備えており、グローバルバスによって相互に接続されている。ここでは、システムＬＳＩ１１０が５つのプロセッサモジュールを備えている場合について図示しているが、システムＬＳＩ１１０は任意の数のプロセッサモジュールを備えても良い。又、システムＬＳＩ１１０は、外部装置とのインターフェースとなる各種インターフェース回路１０１や、外部のＳＤＲＡＭ１２０と接続されるＳＤＲＡＭコントローラ１０２を備えていても良い。
【００４９】
図１０を参照して検証対象となる第１のプロセッサモジュール１００ａを説明する。第１のプロセッサモジュールは、プロセッサコア２０１、機能拡張部２１０、ＤＭＡコントローラ２２０、ブリッジ２３０を備える。
【００５０】
プロセッサコア２０１は、コンフィグレーションによってその構成が選択される。プロセッサコア２０１は、ベースプロセッサコア２０２、命令ＲＡＭ及び命令キャッシュ２０３、データＲＡＭ及びデータキャッシュ２０４、バスインターフェースユニット２０５などのモジュールを備えている。
【００５１】
機能拡張部２１０は、複数種類のハードウェア拡張に対応可能であって、機能拡張毎に、例えばハードウェアエンジン２１１ａ乃至２１１ｃ及び、ハードウェアエンジン２１１ａ乃至２１１ｃがアクセスするローカルメモリ２１２ａ乃至２１２ｃを備えている。
【００５２】
ＤＭＡコントローラ２２０は、ローカルバス２４４に接続されるローカルメモリ２１２ａ乃至２１２ｃとプロセッサコア２０１内の例えばデータRAMとの間のデータ転送や、プロセッサモジュール１００ａの内部メモリと外部メモリとの間のブリッジ２３０を介したデータ転送を実行する。
【００５３】
制御バス２４１は、プロセッサコア２０１と、ハードウェアエンジン２１１ａ乃至２１１ｃ及びＤＭＡコントローラ２２０の制御レジスタを接続する。外部入出力インターフェース２４２は、プロセッサコア２０１と外部装置を接続する。外部入出力インターフェース２４３は、機能拡張部２１０のハードウェアエンジンと外部装置を接続する。ローカルバス２４４は、プロセッサコア２０１、ローカルメモリ２１２ａ乃至２１２ｃ、ＤＭＡコントローラ２２０を接続する。ブリッジ２３０は、システムＬＳＩ検証装置１０の検証環境のグローバルバスモデル及びブリッジモニタタスクに接続されるブリッジである。外部入出力インターフェース２４５は、ブリッジ２３０とグローバルバスモデルを接続する。
【００５４】
次に図１１を参照して、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の検証環境を説明する。
【００５５】
検証対象である第１のプロセッサモジュール１０１ａは、システムＬＳＩ検証装置１０のインターフェース介して検証される。インターフェースは、グローバルバスモデル、メモリモデル３００、検証予約領域定義ファイルを介して、シミュレータに接続される。
【００５６】
メモリモデル３００は外部のＳＤＲＡＭ１２０に相当するシミュレーション用モデルであり、予約領域１００と、プログラムやデータが格納される領域を備えている。メモリモデル３００の予約領域１００は、検証予約領域定義ファイル３０及び３１によって定義される。検証予約領域定義ファイルには、検証言語で記述される検証用タスクによって参照される検証言語用の検証予約領域定義ファイル３０と、テストプログラムによって参照されるテストプログラム言語用の検証予約領域定義ファイル３１とを備える。
【００５７】
テストプログラムは、機械命令関数、システムＬＳＩのプロセッサモジュールに共通の環境コマンド関数、検証対象である第１のプロセッサモジュール１０１ａに固有の環境コマンド関数及びテストプログラム言語用の検証予約領域定義ファイル３１とに従って作成される。
【００５８】
シミュレータは、検証用のタスクやモニタ、各種タスクやモニタの制御部、論理シミュレータの各部を備える。検証用のタスクとしては、プロセッサモジュールに共通の検証用タスク、検証対象である第１のプロセッサモジュールに固有の検証用タスクが挙げられる。プロセッサモジュールに共通の検証用タスクは、テストプログラム終了制御タスク、各種メモリ処理タスク、外部インターフェース制御タスクなどがある。プロセッサモジュールに固有の検証タスクとしては、各種外部割り込み制御タスク、ハードウェアエンジンの外部信号入出力制御タスクなどが挙げられる。プロセッサモジュール共通のモニタとしては、コア内部モニタ、制御バスモニタ、ローカルバスモニタなどが挙げられる。
【００５９】
本発明の最良の実施の形態に係るシステムＬＳＩ検証装置によれば、システムＬＳＩに含まれるプロセッサモジュール単位に検証予約領域を定義することができる。更に、システムＬＳＩに含まれるプロセッサモジュールに共通の予約アドレスと、検証対象のプロセッサモジュールに特有の予約アドレスをそれぞれ別管理にする。従って、テストプログラムの仕様変更に伴う改変の容易性や他のモジュールへの移植性を向上させることができる。
【００６０】
又、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置によれば、テストプログラムからタスク機能を起動するアドレスへ直接アクセスせず、環境コマンド関数を介して検証用タスクを制御する形式をとる。検証予約領域定義ファイルは、テストプログラムと検証用タスクの双方からアクセスされるわけで、各々の言語用に用意される。このように、環境コマンド関数を使用した管理にすることによって、テストプログラムの仕様変更に伴う改変の容易性や他のモジュールへの移植性を向上させることができる。
【００６１】
（変形例）
本発明の最良の実施の形態の変形例を説明する。本発明の最良の実施の形態においては、予約領域をシステムＬＳＩ１１０の外部に備えている場合について説明したが、この予約領域は、プロセッサモジュール内のアドレス空間に設けられても良い。
【００６２】
予約領域は、検証対象のプロセッサモジュールのプロセッサコア２０１内のメモリ空間のうち、命令ＲＡＭやデータＲＡＭなどがマップされていないアドレスにある未定義領域である。プロセッサコア２０１内のメモリ空間の未定義領域は、具体的には、図１０に示す第１のプロセッサモジュール１００ａの検証用メモリモデルである予約領域３０１である。
【００６３】
又、予約領域は、プロセッサモジュール１００ａにあるハードウェアエンジンやＤＭＡコントローラなどのモジュールの制御レジスタがマップされていない制御バス空間の未定義領域でも良い。制御バス空間の未定義領域は、具体的には、図１０に示す検証用制御レジスタである予約領域３０２である。この未定義領域を用いて、テストプログラムから検証用制御レジスタへアクセスが行われても良い。又、必要な検証予約領域のサイズだけ制御レジスタを持つハードウェアエンジンのダミーを設定して、検証終了後にダミーの回路を削除しても良い。
【００６４】
このように、本発明の最良の実施の形態の変形例においては、未定義領域を検証のための予約アドレスとすることで、ＳＤＲＡＭなどの外部メモリモデルのアドレス空間に検証のために必要な情報を格納する必要がなく、テストプログラムやデータを自由に配置することができる。
【００６５】
又、未定義領域へのアクセスは、プロセッサモジュールの仕様によってはエラー処理が行われる場合もある。従って、未定義領域のうち、プロセッサモジュール動作未定義の領域を使用すると良い。又、検証予約領域を、未定義領域３０１及び３０２と、それらと比較して大きなメモリ空間を有する外部メモリモデルとの組み合わせで設定されても良い。
【００６６】
（その他の実施の形態）
上記のように、本発明の最良の実施の形態とその変形例１によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
【００６７】
例えば、環境コマンド関数を作成せずに、ローカルなメモリアクセスを行う機械命令関数や制御バスにある制御レジスタアクセスを行う機械命令関数を、テストプログラムで直接使用しても良い。この場合、テストプログラムの仕様変更に伴う改変の容易性や他のモジュールへの移植性が劣るが、改変や移植が伴わない検証対象には有効である。
【００６８】
又、同じ機能を持つ予約アドレスを、マルチプロセッサモジュール階層やシステムＬＳＩ全体といった複数の階層のＲＴＬシミュレーションを行う検証環境やエミュレータの実行環境で同じ値を取るように、プロセッサモジュール階層の検証用タスクやモデルの動作が設定されても良い。この場合、テストプログラムを修正せずに、異なる検証環境やエミュレータで実行することが可能となり、検証の効率化を図ることができる。
【００６９】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７０】
【図１】図１は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の構成図である。
【図２】図２は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の検証環境生成部を詳細に説明する図である。
【図３】図３は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置のグローバルメモリマップファイルのデータの一例である。
【図４】図４は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置のローカルメモリマップファイルのデータの一例である。
【図５】図５は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の制御バスアドレスマップファイルのデータの一例である。
【図６】図６は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の検証予約領域定義ファイルのデータの一例である。
【図７】図７は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の検証用タスクの処理の一例を説明するフローチャートである。
【図８】図８は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の環境コマンド関数の処理の一例を説明するフローチャートである。
【図９】図９は、本発明の最良の実施の形態に係るシステムＬＳＩの検証装置の検証対象であるプロセッサモジュールを含むシステムＬＳＩを説明する図である。
【図１０】図１０は、本発明の最良の実施の形態に係るシステムＬＳＩの検証装置の検証対象であるプロセッサモジュールを説明する図である。
【図１１】図１１は、本発明の最良の実施の形態に係るシステムＬＳＩ検証装置の検証環境の概略を説明する図である。
【符号の説明】
【００７１】
１０  システムＬＳＩ検証装置
１１  入力部
１２  出力部
１３  入出力インターフェース部
１４  制御部
１５  回路記述記憶部
１６  設定ファイル記憶部
１７  検証環境生成部
１８  テストプログラム記憶部
１９  論理シミュレーション部
２０  検証環境仕様ファイル
２１  グローバルメモリマップファイル
２２  ローカルメモリマップファイル
２３  制御バスアドレスマップファイル
２４  検証タスクライブラリ
２５  テストプログラム向けライブラリ
２６  検証予約アドレス生成部
２７  検証用タスク生成部
２８  環境コマンド関数生成部
３０  検証予約領域定義ファイル（検証言語用）
３１  検証予約領域定義ファイル（テストプログラム言語用）
３２  検証用タスクファイル（検証言語用ソースとヘッダ）
３３  環境コマンド関数ファイル（テストプログラム言語用ソースとヘッダ）
１００、３０１、３０２  予約領域
１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅ  プロセッサモジュール
１０１  各種インターフェース回路
１０２  ＳＤＲＡＭコントローラ
１０５  プロセッサモジュール階層
１１０  システムＬＳＩ
１２０  ＳＤＲＡＭ
２０１  プロセッサコア
２０２  ベース・プロセッサ・コア
２０３  命令ＲＡＭ、命令キャッシュ
２０４  データＲＡＭ、データキャッシュ
２０５  バスインターフェースユニット
２１１  ハードウェアエンジン
２１２  ローカルメモリ
２２０  ＤＭＡコントローラ
２３０  ブリッジ
２４１  制御バス
２４２、２４３、２４５  外部入出力インターフェース
２４４  ローカルバス
３００  メモリモデル
【図１】
2007310565.tif 000003
【図２】
2007310565.tif 000004
【図３】
2007310565.tif 000005
【図４】
2007310565.tif 000006
【図５】
2007310565.tif 000007
【図６】
2007310565.tif 000008
【図７】
2007310565.tif 000009
【図８】
2007310565.tif 000010
【図９】
2007310565.tif 000011
【図１０】
2007310565.tif 000012
【図１１】
2007310565.tif 000013