(57)【要約】【課題】シミュレーションシステムにおいて、シミュレーション時間を低減し、開発期間短縮、開発効率の向上を実現する。【解決手段】トランザクションレベルで記述されたモジュールのシミュレーションシステムにおいて、機能モジュールにおいて、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行い（ステップＳ２０５）、バスモジュールにおいて、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うようにするようにする。【選択図】  図２
2010128582.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションレベルで記述されたモジュールのシミュレーションシステムであって、
リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行うリコンフィグレーション処理が可能な機能モジュールと、
前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うバスモジュールとを有することを特徴とするシミュレーションシステム。
【請求項２】
前記リコンフィグレーション処理が可能な機能モジュールは、当該リコンフィグレーション処理を省略し、リコンフィグレーションデータをメモリから取得する機能を有することを特徴とする請求項１に記載のシミュレーションシステム。
【請求項３】
前記リコンフィグレーション処理が可能な機能モジュールは、リコンフィグレーション処理を省略した際、リコンフィグレーション処理の開始からリコンフィグレーション処理まで、実際の処理を行わない機能を有することを特徴とする請求項１に記載のシミュレーションシステム。
【請求項４】
システム内には存在しないバスマスタが起動するモジュールであるスタブモジュールと、
システムに存在するバスマスタとスタブモジュールを含めてアービトレーションが可能なアービタとを有することを特徴とする請求項１に記載のシミュレーションシステム。
【請求項５】
前記帯域確保の要求を受けたとき、スタブモジュールの起動を行い、リコンフィグレーション処理が停止中にスタブモジュールを含めたアービトレーションを行い、バス帯域を確保することを特徴とする請求項１に記載のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムＬＳＩ等の設計に係るシミュレーションシステムに関する。
【背景技術】
【０００２】
プロセス技術の進歩によりＬＳＩの集積度が増大し、これまでボードで実現していたシステムをシステムＬＳＩとして１チップ上に搭載することが可能となった。チップ上に搭載する機能モジュールも多様化し、回路規模が増大している。
【０００３】
これに伴い、システムＬＳＩを効率的に設計する手法として、従来のＶｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬといったハードウェア記述言語を使用した設計から、ＳｙｓｔｅｍＣやＳｐｅｃＣといったシステム記述言語による設計が普及してきた。
【０００４】
システム記述言語による設計支援ツールとしては、Ｓｙｎｏｐｓｙｓ社のＣｏＣｅｎｔｒｉｃや、ＣｏＷａｒｅ社のＣｏｎｖｅｒｇｅｎＳＣが知られている。このような設計支援ツールでは、システム記述言語により記述したモジュールを、ブロック図入力画面で入力し、システムＬＳＩの設計を行うことが可能になっている。
【０００５】
システムＬＳＩの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行い、システムＬＳＩの機能や性能を確認できる。システムシュミレーションを行えば、実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避することができる。システム記述言語によるモジュール記述には、記述の抽象度により以下の３種類の記述レベルが一般に知られている。
【０００６】
＜トランザクションレベル（ＴＬ）＞
ＴＬは、モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。が、イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。また、システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
【０００７】
ＡＲＭ社による定義では、さらに細かく分類されておりＰＶ（プログラマーズビュー）、ＰＶＴ（プログラマーズビュー＋タイミング）、ＣＬ（サイクルレベル）が相当する。
【０００８】
＜バスサイクルアキュレート（ＢＣＡ）＞
ＢＣＡは、モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力及び出力部で正確にシミュレートすることができる。
【０００９】
ＡＲＭ社による定義では、ＣＣ（サイクルコーラブル）が相当する。
【００１０】
＜レジスタトランスファレベル（ＲＴＬ）＞
ＲＴＬは、レジスタファイル間の同期転送を捉えて、回路を記述する抽象度レベルである。動作クロックに対し、正確に機能動作をシミュレートすることができ精度が非常に高い。が、１クロックごとに機能をシミュレートするため、シミュレーション速度は非常に遅い。
【００１１】
ＡＲＭ社による定義ではＲＴ（ＲＴＬイベントドリブン）が相当する。
【００１２】
一般に、抽象度が高いほど、シミュレーション速度は速く、抽象度が低いほどシミュレーション精度は高くなる。システムのシミュレーションを行うためのシミュレーションモデルは、トランザクションレベルにより記述される。
【００１３】
トランザクションレベルによるシミュレーションモデルとして、ＡＲＭ社により公開されているＡＭＢＡバスモデルが広く知られている。なお、ＡＭＢＡバスモデルの詳細は、「ＡＭＢＡ ＡＨＢ Ｃｙｃｌｅ Ｌｅｖｅｌ Ｉｎｔｅｒｆａｃｅ（ＡＨＢ ＣＬＩ） Ｓｐｅｃｉｆｉｃａｔｉｏｎ,２００３年７月１５日公開」に記述されている。
【００１４】
図４にＡＨＢ ＣＬＩで定義されているバストランザクションを示す。これらのトランザクションメソッドは、ＡＭＢＡ ＡＨＢバスプロトコルで規定されたハードウェア信号に対応させることができる。図５には、各メソッドと信号の対応を示す。アトリビュート及びメソッド自身が、少なくとも１つのハードウェア信号に対応している。これらのメソッドを使用し、バスの動作をシミュレーションすることが可能である。以下、図６、図７を使用し、バスの動作シミュレーション方法を説明する。
【００１５】
時刻Ｔ１において、バスマスタ１（Ｍａｓｔｅｒ１）がバスへのリクエスト要求を行う。このときバスマスタ１は、図７に示すｒｅｑｕｅｓｔ（）メソッドを呼び出し、バスに対し発行する。これは、ＨＢＵＳＲＥＱ＿Ｍ１信号のアサートに相当する。
【００１６】
また、バスはアービタに対し、アービトレーションを開始させる（ａｒｂｉｔｒａｔｅ（））。また、バスからマスターに対し、ｒｅｓｐｏｎｓｅ()［ＯＫＡＹ，ＲＥＡＤＹ]メソッドが発行される。これは、ＨＲＥＡＤＹおよびＨＲＥＳＰ信号に相当する。
【００１７】
時刻Ｔ２においては、マスター２（Ｍａｓｔｅｒ２）がバスへのリクエスト要求を行う（ｒｅｑｕｅｓｔ()）これは、ＨＢＵＳＲＥＱ＿Ｍ２信号のアサートに相当する。
【００１８】
同時に、バスからマスター１に対し、グラントが与えられる（ａｒｂｉｔｒａｔｅ()［ｇｒａｎｔ Ｍ１］）。これは、ＨＧＲＡＮＴ＿Ｍ１のアサートに相当する。
【００１９】
時刻Ｔ３においては、マスター１はグラントを検知（ｈａｓ＿ｇｒａｎｔ()［ＴＲＵＥ］）し、バスへのリクエストを取り下げる（ｅｎｄ＿ｒｅｑｕｅｓｔ()）。これは、ＨＢＵＳＲＥＱ＿Ｍ１信号のデアサートに相当する。
【００２０】
また、トランザクションを開始する（ｓｅｔ＿ｐｒｏｔｅｃｔｉｏｎ（）、ｉｎｉｔ＿ｔｒａｎｓａｃｔｉｏｎ())。これらは、ＨＰＲＯＴＯ、ＨＴＲＡＮＳ、ＨＡＤＤＲ、ＨＢＵＲＳＴ、ＨＷＲＩＴＥ、ＨＳＩＺＥといった信号に相当する。
【００２１】
同時にバスはアドレスデコードを行い、スレーブに対しトランザクションを発行する(ｗｒｉｔｅ()［ａｄｄｒｅｓｓ Ａ１］、ｃｏｎｔｒｏｌ＿ｉｎｆｏ［ＮＯＮＳＥＱ，ＩＮＣＲ４］)。
【００２２】
時刻Ｔ４からＴ７では、マスター１は、バスに対しデータを送る（ｓｅｔ＿ｄａｔａ（））。これは、ＨＷＤＡＴＡ信号に相当する。バスは、スレーブに対しマスターからのデータを送付する（ｓｅｔ＿ｄａｔａ()）。
【００２３】
なお、時刻Ｔ６では、バスはマスター２に対しグラントを与える（ａｒｂｉｔｒａｔｅ()［ｇｒａｎｔ Ｍ２］）。そして、時刻Ｔ７でマスター２は、グラントを検知しバスアクセスを開始する。
【００２４】
このように、各トランザクションメソッドは、ハードウェア信号の挙動と同じ機能を有しており、メソッド及びアトリビュートはハードウェア信号にマッピングできるものであることがわかる。
【００２５】
ＡＨＢ ＣＬＩでは、トランザクションメソッドの他に、バスのコンフィギュレーションを変更するためのメソッドが用意されている。このメソッドにより、バスのアドレス幅、データ幅、アドレスマップを変更することが可能である。
【００２６】
図８にバスコンフィギュレーションメソッドを示す。シミュレータがシステムモデルを読み出すエラボレーション時に実行されるメソッドと、シミュレーション実行時に使用することができるメソッドに分けられる。
【００２７】
シミュレーション実行を行いながら、バスのコンフィギュレーションを変更するメソッドは、デコーダのｉｎｉｔｉａｌｉｚｅ＿ｍａｐ()と、アービタのｐｒｉｏｒｉｔｙ()、ｓｅｔ＿ｄｅｆａｕｌｔ＿ｍａｓｔｅｒ()である。
【００２８】
これらは、実際のハードウェアの動作に関係しており、ｉｎｉｔｉａｌｉｚｅ＿ｍａｐ()はｒｅｍａｐ信号に、ｐｒｉｏｒｉｔｙ()、ｓｅｔ＿ｄａｆｕｌａｔ＿ｍａｓｔｅ()はアービタ内のレジスタアクセス信号に相当する。
【００２９】
また、ＡＨＢ ＣＬＩには、検証目的で使用するメソッドが用意されている。ハードウェアの検証に一般的に使用されているバックドア機能に対応するメソッドである。バスのプロトコルとは無関係に、指定したアドレスのデータを直接読書きすることが可能である。
【００３０】
図９にこれらのメソッドを示す。マスターが使用する引数はアドレス、データへのポインタ、転送サイズの３つであり、ハードウェアと関連したものである。スレーブが使用する引数は、マスターＩＤ、アドレス、データへのポインタ、転送サイズの４つであり、これらもハードウェアと関連したものである。
【００３１】
【特許文献１】特開２００４−７０５５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００３２】
しかしながら、従来の技術では、メモリに格納されている再構成を行うために必要な設計データをリードする、というきまりきった動作が必要であり、時間がかかってしまうという問題があった。
【００３３】
また、高抽象度のトランザクションレベルモデリングでモデルを記述していてもリードによるアドレストランザクション、データトランザクションの発行のイベントを削減できないため、時間がかかるという問題があった。
【００３４】
本発明は係る実情に鑑みて、シミュレーション時間を低減し、開発期間短縮、開発効率の向上を実現することを目的とする。
【課題を解決するための手段】
【００３５】
本発明のシミュレーションシステムは、トランザクションレベルで記述されたモジュールのシミュレーションシステムであって、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行うリコンフィグレーション処理が可能な機能モジュールと、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うバスモジュールとを有することを特徴とする。
【発明の効果】
【００３６】
本発明によれば、リコンフィグレーション処理のためのアドレストランザクション及びデータトランザクションのイベントを削減できるため、シミュレーション時間が低減し、開発期間短縮、開発効率の向上につながる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の第１の実施の形態を図面を用いて説明する。図１は、本発明の実施の形態に係るシステムの構成例である。当該システムは、トランザクションレベルで記述されたモジュールにおけるシミュレーションシステムを含む。
【００３８】
図１において、１０１はＣＰＵである。１０２はＤＭＡＣである。ＤＭＡＣ１０２は、ＣＰＵ１０１に代わってＩ／Ｏインターフェース部１０６からメモリ１０５へのプリントデータやスキャンデータのデータ転送を行う。
【００３９】
１０３は画像処理モジュール（動的再構成画像処理）１である。画像処理モジュール１は、動的にリコンフィグレーション処理が可能な機能を持つモジュールである。本実施の形態では、画像処理モジュール１は、プログラムが処理するデータに対して符号化処理を行う機能を有するものとし、データの種類によって符号化処理Ａと符号化処理Ｂを行うとする。
【００４０】
また、画像処理モジュール１は、符号化処理の変更は、符号化処理Ａを行うモジュールと符号化処理Ｂを行うモジュールにリコンフィグレーションすることで実現する。リコンフィグレーション時に必要なリコンフィグレーションデータはメモリ１０５から画像処理モジュール１がリードするものとする。
【００４１】
１０４は画像処理モジュール２である。本実施の形態では、画像処理モジュール２は、圧縮処理機能を有するものとする。
【００４２】
１０５はメモリモジュール（メモリ）である。メモリ１０５は、ＣＰＵ１０１及びＤＭＡＣ１０２がＩ／Ｏインターフェース部１０６を通じて入出力するデータ及び、画像処理モジュール１（１０３）及び画像処理モジュール２（１０４）の処理するデータを格納する。また、画像処理モジュール１のリコンフィグレーションデータを格納する。
【００４３】
１０６はＩ／Ｏインターフェース部である。
【００４４】
本実施の形態のシミュレーションの流れは、ＣＰＵ１０１が起動され、Ｉ／Ｏインターフェース部１０６を通してデータをメモリ１０５に格納し、画像処理モジュール１（１０３）により符号化処理Ａがなされる。
【００４５】
その後、データをメモリ１０５に格納し、画像処理モジュール２によって圧縮処理され、データをメモリ１０５に格納し、画像処理モジュール１（１０３）のコンフィグレーション後、画像処理モジュール１（１０３）により符号化処理Ｂがなされる。
【００４６】
その後、データをメモリ１０５に格納し、画像処理ＤＭＡＣ１０２がＩ／Ｏインターフェース部１０６を通じて外部にデータを出力するものとする。
【００４７】
また、画像処理モジュール１（１０３）のリコンフィグレーションと画像処理モジュール２（１０４）の圧縮処理は並列動作を行うとする。
【００４８】
図２は、本発明の実施の形態に係るフローチャートである。以下、図２のフローチャートにそって本実施の形態に係る動作の流れを説明する。
【００４９】
まず、上述したフローのシミュレーションが開始される（ステップＳ２０１）。最初に取得したデータに対して画像処理モジュール１（１０３）が符号化処理Ａを実行する。さらに画像処理モジュール２（１０４）によって圧縮処理が実行されている間、次の符号化処理Ｂの実行のために、画像処理モジュール１（１０３）がリコンフィグレーションを開始する（ステップＳ２０２）。
【００５０】
画像処理モジュール１（１０３）は、メモリに格納されたリコンフィグレーションデータをリードすることは行わずに、バスモデルへの帯域確保を要求する。要求方法は、バスモデルに帯域確保用のＡＰＩを作成したり、帯域確保要求のイベントをバスモジュールに通知したりすることが考えられる。本実施の形態では、帯域確保要求イベントをバスモジュールに通知するとする。なお、ここで説明した処理は、本発明でいう機能モジュールの一処理例に対応する。
【００５１】
また、イベント通知の方法は、トランザクションモデリングをサポートする言語であるＳｙｓｔｅｍＣ等でサポートされている公知技術を用いる（ステップＳ２０３）。画像処理モジュール１は、リコンフィグレーションデータのリードに対して設計者によって予め見積もられた時間停止する。時間の停止にはｗａｉｔ関数を使用する（ステップＳ２０４）。
【００５２】
次に、ステップＳ２０３で帯域確保要求イベントを受け取った後、バスモデルは、実際には行われない（省略される）リコンフィグレーションデータのリードトランザクション発行の変わりに、対応するバス帯域の制限を行う（ステップＳ２０５）。
【００５３】
ここで、バス帯域制限の方法に関して図３を用いて説明する。図３は本実施の形態に係るバスモデルの構成図である。
【００５４】
図３において、バスモデル３０１は、バスマスタの要求をアービトレーションするためのアービタ３０２を保持している。本実施の形態では、アービトレーション対象のバスマスタは、ＣＰＵ１０１、ＤＭＡＣ１０２、画像処理モジュール１（１０３）、画像処理モジュール２（１０４）である。各バスマスタに接続する３０３で示すバススレーブポートＳ０〜Ｓ３をレジスタＳＬＶＲＥＧ３０４に書き込み登録する。バススレーブポート間のアービトレーションはラウンドロビン方式で行うものとする。
【００５５】
アービタ３０２は、システム内に存在するバスマスタに接続されるバススレーブポート以外に、外部に接続しない内部スレーブポートＥ０（３０５）をすくなくともひとつ有している。
【００５６】
内部スレーブポートＥ０（３０５）は、バスモデルが有するスタブモジュール３０６へと接続される。バスモデルは、バス帯域確保要求イベントを受け取ったら、スタブモジュール３０６を起動する。
【００５７】
スタブモジュール３０６は起動すると、停止中のためにアービトレーション要求を行なわない画像処理モジュール１の代わりに、バスモデルにリクエストトランザクションを発行し、メモリからのデータリード要求を行う。スタブモジュール３０６はバス使用権をアービタから与えられたあと、ラウンドロビンの規定にしたがってバス使用権を失うまでｗａｉｔする。
【００５８】
以上の方法により、メモリに対するリードイベントは発生しない状態で、画像処理モジュール１のリコンフィグレーションデータのリードのバス帯域を制限する。さらに、指定された時間後、つまりリコンフィグレーションデータのリードが終了する時刻までシミュレーション時間が進んだら（ステップＳ２０６）、画像処理モジュール１はバスモデルに対してバス帯域確保解除イベントを通知する（ステップＳ２０７）。
【００５９】
バスモデルは、バス帯域確保解除イベントを受けた後、スタブモジュール３０６を終了してバス帯域制限を解除する（ステップＳ２０８）。
【００６０】
画像処理モジュール１（１０３）は、バックドアでメモリに格納されているリコンフィグレーションデータを読み出し、リコンフィグレーションを行う（ステップＳ２０９）。
【００６１】
リコンフィグレーション後、画像処理モジュール１（１０３）は、画像処理モジュール２（１０４）によって処理されたデータに符号化処理Ｂを行う。そして、メモリに格納し、データはＤＭＡＣ１０２によって外部へ転送され、シミュレーションは終了する（ステップＳ２１０）。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態に係るシステムを表す図である。
【図２】本発明の実施の形態に係るシステムの動作を説明するフローチャートである。
【図３】本発明の実施の形態に係るバスモデルを表す図である。
【図４】従来のトランザクションメッソド例を示す図である。
【図５】従来のトランザクションメッソド及びアトリビュートとハードウェアの対応を示す図である。
【図６】従来のトランザクションメソッドと信号波形の対応を示す図である。
【図７】従来のトランザクションメソッドを用いたシミュレーションを説明する図である。
【図８】従来のハードウェアコンフィギュレーションメソッドを表す図である。
【図９】従来の検証メソッドを示す図である。
【符号の説明】
【００６３】
１０１  ＣＰＵ
１０２  ＤＭＡＣ
１０３  画像処理モジュール（動的再構成画像処理）１
１０４  画像処理モジュール２
１０５  メモリモジュール
１０６  I／Ｏインターフェース部
３０１  バスモデル
３０２  アービタ
３０３  バススレーブポート
３０４  レジスタＳＬＶＲＥＧ
３０５  内部スレーブポートＥ０
３０６  スタブモジュール
【図１】
2010128582.tif 000003
【図２】
2010128582.tif 000004
【図３】
2010128582.tif 000005
【図４】
2010128582.tif 000006
【図５】
2010128582.tif 000007
【図６】
2010128582.tif 000008
【図７】
2010128582.tif 000009
【図８】
2010128582.tif 000010
【図９】
2010128582.tif 000011