JP2010128582A - シミュレーションシステム - Google Patents
シミュレーションシステム Download PDFInfo
- Publication number
- JP2010128582A JP2010128582A JP2008299847A JP2008299847A JP2010128582A JP 2010128582 A JP2010128582 A JP 2010128582A JP 2008299847 A JP2008299847 A JP 2008299847A JP 2008299847 A JP2008299847 A JP 2008299847A JP 2010128582 A JP2010128582 A JP 2010128582A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- reconfiguration
- module
- data
- simulation system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】シミュレーションシステムにおいて、シミュレーション時間を低減し、開発期間短縮、開発効率の向上を実現する。
【解決手段】トランザクションレベルで記述されたモジュールのシミュレーションシステムにおいて、機能モジュールにおいて、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行い(ステップS205)、バスモジュールにおいて、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うようにするようにする。
【選択図】 図2
【解決手段】トランザクションレベルで記述されたモジュールのシミュレーションシステムにおいて、機能モジュールにおいて、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行い(ステップS205)、バスモジュールにおいて、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うようにするようにする。
【選択図】 図2
Description
本発明は、システムLSI等の設計に係るシミュレーションシステムに関する。
プロセス技術の進歩によりLSIの集積度が増大し、これまでボードで実現していたシステムをシステムLSIとして1チップ上に搭載することが可能となった。チップ上に搭載する機能モジュールも多様化し、回路規模が増大している。
これに伴い、システムLSIを効率的に設計する手法として、従来のVerilog−HDLやVHDLといったハードウェア記述言語を使用した設計から、SystemCやSpecCといったシステム記述言語による設計が普及してきた。
システム記述言語による設計支援ツールとしては、Synopsys社のCoCentricや、CoWare社のConvergenSCが知られている。このような設計支援ツールでは、システム記述言語により記述したモジュールを、ブロック図入力画面で入力し、システムLSIの設計を行うことが可能になっている。
システムLSIの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行い、システムLSIの機能や性能を確認できる。システムシュミレーションを行えば、実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避することができる。システム記述言語によるモジュール記述には、記述の抽象度により以下の3種類の記述レベルが一般に知られている。
<トランザクションレベル(TL)>
TLは、モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。が、イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。また、システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
TLは、モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。が、イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。また、システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
ARM社による定義では、さらに細かく分類されておりPV(プログラマーズビュー)、PVT(プログラマーズビュー+タイミング)、CL(サイクルレベル)が相当する。
<バスサイクルアキュレート(BCA)>
BCAは、モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力及び出力部で正確にシミュレートすることができる。
BCAは、モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力及び出力部で正確にシミュレートすることができる。
ARM社による定義では、CC(サイクルコーラブル)が相当する。
<レジスタトランスファレベル(RTL)>
RTLは、レジスタファイル間の同期転送を捉えて、回路を記述する抽象度レベルである。動作クロックに対し、正確に機能動作をシミュレートすることができ精度が非常に高い。が、1クロックごとに機能をシミュレートするため、シミュレーション速度は非常に遅い。
RTLは、レジスタファイル間の同期転送を捉えて、回路を記述する抽象度レベルである。動作クロックに対し、正確に機能動作をシミュレートすることができ精度が非常に高い。が、1クロックごとに機能をシミュレートするため、シミュレーション速度は非常に遅い。
ARM社による定義ではRT(RTLイベントドリブン)が相当する。
一般に、抽象度が高いほど、シミュレーション速度は速く、抽象度が低いほどシミュレーション精度は高くなる。システムのシミュレーションを行うためのシミュレーションモデルは、トランザクションレベルにより記述される。
トランザクションレベルによるシミュレーションモデルとして、ARM社により公開されているAMBAバスモデルが広く知られている。なお、AMBAバスモデルの詳細は、「AMBA AHB Cycle Level Interface(AHB CLI) Specification,2003年7月15日公開」に記述されている。
図4にAHB CLIで定義されているバストランザクションを示す。これらのトランザクションメソッドは、AMBA AHBバスプロトコルで規定されたハードウェア信号に対応させることができる。図5には、各メソッドと信号の対応を示す。アトリビュート及びメソッド自身が、少なくとも1つのハードウェア信号に対応している。これらのメソッドを使用し、バスの動作をシミュレーションすることが可能である。以下、図6、図7を使用し、バスの動作シミュレーション方法を説明する。
時刻T1において、バスマスタ1(Master1)がバスへのリクエスト要求を行う。このときバスマスタ1は、図7に示すrequest()メソッドを呼び出し、バスに対し発行する。これは、HBUSREQ_M1信号のアサートに相当する。
また、バスはアービタに対し、アービトレーションを開始させる(arbitrate())。また、バスからマスターに対し、response()[OKAY,READY]メソッドが発行される。これは、HREADYおよびHRESP信号に相当する。
時刻T2においては、マスター2(Master2)がバスへのリクエスト要求を行う(request())これは、HBUSREQ_M2信号のアサートに相当する。
同時に、バスからマスター1に対し、グラントが与えられる(arbitrate()[grant M1])。これは、HGRANT_M1のアサートに相当する。
時刻T3においては、マスター1はグラントを検知(has_grant()[TRUE])し、バスへのリクエストを取り下げる(end_request())。これは、HBUSREQ_M1信号のデアサートに相当する。
また、トランザクションを開始する(set_protection()、init_transaction())。これらは、HPROTO、HTRANS、HADDR、HBURST、HWRITE、HSIZEといった信号に相当する。
同時にバスはアドレスデコードを行い、スレーブに対しトランザクションを発行する(write()[address A1]、control_info[NONSEQ,INCR4])。
時刻T4からT7では、マスター1は、バスに対しデータを送る(set_data())。これは、HWDATA信号に相当する。バスは、スレーブに対しマスターからのデータを送付する(set_data())。
なお、時刻T6では、バスはマスター2に対しグラントを与える(arbitrate()[grant M2])。そして、時刻T7でマスター2は、グラントを検知しバスアクセスを開始する。
このように、各トランザクションメソッドは、ハードウェア信号の挙動と同じ機能を有しており、メソッド及びアトリビュートはハードウェア信号にマッピングできるものであることがわかる。
AHB CLIでは、トランザクションメソッドの他に、バスのコンフィギュレーションを変更するためのメソッドが用意されている。このメソッドにより、バスのアドレス幅、データ幅、アドレスマップを変更することが可能である。
図8にバスコンフィギュレーションメソッドを示す。シミュレータがシステムモデルを読み出すエラボレーション時に実行されるメソッドと、シミュレーション実行時に使用することができるメソッドに分けられる。
シミュレーション実行を行いながら、バスのコンフィギュレーションを変更するメソッドは、デコーダのinitialize_map()と、アービタのpriority()、set_default_master()である。
これらは、実際のハードウェアの動作に関係しており、initialize_map()はremap信号に、priority()、set_dafulat_maste()はアービタ内のレジスタアクセス信号に相当する。
また、AHB CLIには、検証目的で使用するメソッドが用意されている。ハードウェアの検証に一般的に使用されているバックドア機能に対応するメソッドである。バスのプロトコルとは無関係に、指定したアドレスのデータを直接読書きすることが可能である。
図9にこれらのメソッドを示す。マスターが使用する引数はアドレス、データへのポインタ、転送サイズの3つであり、ハードウェアと関連したものである。スレーブが使用する引数は、マスターID、アドレス、データへのポインタ、転送サイズの4つであり、これらもハードウェアと関連したものである。
しかしながら、従来の技術では、メモリに格納されている再構成を行うために必要な設計データをリードする、というきまりきった動作が必要であり、時間がかかってしまうという問題があった。
また、高抽象度のトランザクションレベルモデリングでモデルを記述していてもリードによるアドレストランザクション、データトランザクションの発行のイベントを削減できないため、時間がかかるという問題があった。
本発明は係る実情に鑑みて、シミュレーション時間を低減し、開発期間短縮、開発効率の向上を実現することを目的とする。
本発明のシミュレーションシステムは、トランザクションレベルで記述されたモジュールのシミュレーションシステムであって、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行うリコンフィグレーション処理が可能な機能モジュールと、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うバスモジュールとを有することを特徴とする。
本発明によれば、リコンフィグレーション処理のためのアドレストランザクション及びデータトランザクションのイベントを削減できるため、シミュレーション時間が低減し、開発期間短縮、開発効率の向上につながる。
以下、本発明の第1の実施の形態を図面を用いて説明する。図1は、本発明の実施の形態に係るシステムの構成例である。当該システムは、トランザクションレベルで記述されたモジュールにおけるシミュレーションシステムを含む。
図1において、101はCPUである。102はDMACである。DMAC102は、CPU101に代わってI/Oインターフェース部106からメモリ105へのプリントデータやスキャンデータのデータ転送を行う。
103は画像処理モジュール(動的再構成画像処理)1である。画像処理モジュール1は、動的にリコンフィグレーション処理が可能な機能を持つモジュールである。本実施の形態では、画像処理モジュール1は、プログラムが処理するデータに対して符号化処理を行う機能を有するものとし、データの種類によって符号化処理Aと符号化処理Bを行うとする。
また、画像処理モジュール1は、符号化処理の変更は、符号化処理Aを行うモジュールと符号化処理Bを行うモジュールにリコンフィグレーションすることで実現する。リコンフィグレーション時に必要なリコンフィグレーションデータはメモリ105から画像処理モジュール1がリードするものとする。
104は画像処理モジュール2である。本実施の形態では、画像処理モジュール2は、圧縮処理機能を有するものとする。
105はメモリモジュール(メモリ)である。メモリ105は、CPU101及びDMAC102がI/Oインターフェース部106を通じて入出力するデータ及び、画像処理モジュール1(103)及び画像処理モジュール2(104)の処理するデータを格納する。また、画像処理モジュール1のリコンフィグレーションデータを格納する。
106はI/Oインターフェース部である。
本実施の形態のシミュレーションの流れは、CPU101が起動され、I/Oインターフェース部106を通してデータをメモリ105に格納し、画像処理モジュール1(103)により符号化処理Aがなされる。
その後、データをメモリ105に格納し、画像処理モジュール2によって圧縮処理され、データをメモリ105に格納し、画像処理モジュール1(103)のコンフィグレーション後、画像処理モジュール1(103)により符号化処理Bがなされる。
その後、データをメモリ105に格納し、画像処理DMAC102がI/Oインターフェース部106を通じて外部にデータを出力するものとする。
また、画像処理モジュール1(103)のリコンフィグレーションと画像処理モジュール2(104)の圧縮処理は並列動作を行うとする。
図2は、本発明の実施の形態に係るフローチャートである。以下、図2のフローチャートにそって本実施の形態に係る動作の流れを説明する。
まず、上述したフローのシミュレーションが開始される(ステップS201)。最初に取得したデータに対して画像処理モジュール1(103)が符号化処理Aを実行する。さらに画像処理モジュール2(104)によって圧縮処理が実行されている間、次の符号化処理Bの実行のために、画像処理モジュール1(103)がリコンフィグレーションを開始する(ステップS202)。
画像処理モジュール1(103)は、メモリに格納されたリコンフィグレーションデータをリードすることは行わずに、バスモデルへの帯域確保を要求する。要求方法は、バスモデルに帯域確保用のAPIを作成したり、帯域確保要求のイベントをバスモジュールに通知したりすることが考えられる。本実施の形態では、帯域確保要求イベントをバスモジュールに通知するとする。なお、ここで説明した処理は、本発明でいう機能モジュールの一処理例に対応する。
また、イベント通知の方法は、トランザクションモデリングをサポートする言語であるSystemC等でサポートされている公知技術を用いる(ステップS203)。画像処理モジュール1は、リコンフィグレーションデータのリードに対して設計者によって予め見積もられた時間停止する。時間の停止にはwait関数を使用する(ステップS204)。
次に、ステップS203で帯域確保要求イベントを受け取った後、バスモデルは、実際には行われない(省略される)リコンフィグレーションデータのリードトランザクション発行の変わりに、対応するバス帯域の制限を行う(ステップS205)。
ここで、バス帯域制限の方法に関して図3を用いて説明する。図3は本実施の形態に係るバスモデルの構成図である。
図3において、バスモデル301は、バスマスタの要求をアービトレーションするためのアービタ302を保持している。本実施の形態では、アービトレーション対象のバスマスタは、CPU101、DMAC102、画像処理モジュール1(103)、画像処理モジュール2(104)である。各バスマスタに接続する303で示すバススレーブポートS0〜S3をレジスタSLVREG304に書き込み登録する。バススレーブポート間のアービトレーションはラウンドロビン方式で行うものとする。
アービタ302は、システム内に存在するバスマスタに接続されるバススレーブポート以外に、外部に接続しない内部スレーブポートE0(305)をすくなくともひとつ有している。
内部スレーブポートE0(305)は、バスモデルが有するスタブモジュール306へと接続される。バスモデルは、バス帯域確保要求イベントを受け取ったら、スタブモジュール306を起動する。
スタブモジュール306は起動すると、停止中のためにアービトレーション要求を行なわない画像処理モジュール1の代わりに、バスモデルにリクエストトランザクションを発行し、メモリからのデータリード要求を行う。スタブモジュール306はバス使用権をアービタから与えられたあと、ラウンドロビンの規定にしたがってバス使用権を失うまでwaitする。
以上の方法により、メモリに対するリードイベントは発生しない状態で、画像処理モジュール1のリコンフィグレーションデータのリードのバス帯域を制限する。さらに、指定された時間後、つまりリコンフィグレーションデータのリードが終了する時刻までシミュレーション時間が進んだら(ステップS206)、画像処理モジュール1はバスモデルに対してバス帯域確保解除イベントを通知する(ステップS207)。
バスモデルは、バス帯域確保解除イベントを受けた後、スタブモジュール306を終了してバス帯域制限を解除する(ステップS208)。
画像処理モジュール1(103)は、バックドアでメモリに格納されているリコンフィグレーションデータを読み出し、リコンフィグレーションを行う(ステップS209)。
リコンフィグレーション後、画像処理モジュール1(103)は、画像処理モジュール2(104)によって処理されたデータに符号化処理Bを行う。そして、メモリに格納し、データはDMAC102によって外部へ転送され、シミュレーションは終了する(ステップS210)。
101 CPU
102 DMAC
103 画像処理モジュール(動的再構成画像処理)1
104 画像処理モジュール2
105 メモリモジュール
106 I/Oインターフェース部
301 バスモデル
302 アービタ
303 バススレーブポート
304 レジスタSLVREG
305 内部スレーブポートE0
306 スタブモジュール
102 DMAC
103 画像処理モジュール(動的再構成画像処理)1
104 画像処理モジュール2
105 メモリモジュール
106 I/Oインターフェース部
301 バスモデル
302 アービタ
303 バススレーブポート
304 レジスタSLVREG
305 内部スレーブポートE0
306 スタブモジュール
Claims (5)
- トランザクションレベルで記述されたモジュールのシミュレーションシステムであって、
リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行うリコンフィグレーション処理が可能な機能モジュールと、
前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うバスモジュールとを有することを特徴とするシミュレーションシステム。 - 前記リコンフィグレーション処理が可能な機能モジュールは、当該リコンフィグレーション処理を省略し、リコンフィグレーションデータをメモリから取得する機能を有することを特徴とする請求項1に記載のシミュレーションシステム。
- 前記リコンフィグレーション処理が可能な機能モジュールは、リコンフィグレーション処理を省略した際、リコンフィグレーション処理の開始からリコンフィグレーション処理まで、実際の処理を行わない機能を有することを特徴とする請求項1に記載のシミュレーションシステム。
- システム内には存在しないバスマスタが起動するモジュールであるスタブモジュールと、
システムに存在するバスマスタとスタブモジュールを含めてアービトレーションが可能なアービタとを有することを特徴とする請求項1に記載のシミュレーションシステム。 - 前記帯域確保の要求を受けたとき、スタブモジュールの起動を行い、リコンフィグレーション処理が停止中にスタブモジュールを含めたアービトレーションを行い、バス帯域を確保することを特徴とする請求項1に記載のシミュレーションシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008299847A JP2010128582A (ja) | 2008-11-25 | 2008-11-25 | シミュレーションシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008299847A JP2010128582A (ja) | 2008-11-25 | 2008-11-25 | シミュレーションシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010128582A true JP2010128582A (ja) | 2010-06-10 |
Family
ID=42328957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008299847A Pending JP2010128582A (ja) | 2008-11-25 | 2008-11-25 | シミュレーションシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010128582A (ja) |
-
2008
- 2008-11-25 JP JP2008299847A patent/JP2010128582A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107346351B (zh) | 用于基于源代码中定义的硬件要求来设计fpga的方法和系统 | |
Pasricha et al. | Extending the transaction level modeling approach for fast communication architecture exploration | |
US7778815B2 (en) | Method for the fast exploration of bus-based communication architectures at the cycle-count-accurate-at-transaction-boundaries (CCATB) abstraction | |
US7062587B2 (en) | Unidirectional bus architecture for SoC applications | |
Pasricha et al. | Fast exploration of bus-based on-chip communication architectures | |
US8793628B1 (en) | Method and apparatus of maintaining coherency in the memory subsystem of an electronic system modeled in dual abstractions | |
US8943449B1 (en) | Method and apparatus of enabling direct memory access into a target system memory modeled in dual abstractions while ensuring coherency | |
US7212961B2 (en) | Interface for rapid prototyping system | |
US8489376B2 (en) | Controller and fabric performance testing | |
Ma et al. | Design and implementation of APB bridge based on AMBA 4.0 | |
US7865345B2 (en) | Simulation apparatus and method | |
Pasricha et al. | Fast exploration of bus-based communication architectures at the CCATB abstraction | |
US20130054854A1 (en) | Full Bus Transaction Level Modeling Approach for Fast and Accurate Contention Analysis | |
Kim et al. | Fast and accurate transaction level modeling of an extended AMBA2. 0 bus architecture | |
US20050071145A1 (en) | Simulation apparatus, simulation program, and recording medium | |
JP2007058431A (ja) | シミュレーションモデル、及びシミュレーション方法 | |
JP2010128582A (ja) | シミュレーションシステム | |
Choi et al. | Model checking of S3C2400X industrial embedded SOC product | |
Sarekokku et al. | Design and Implementation of APB Bridge based on AMBA AXI 4.0 | |
JP2004310568A (ja) | シミュレータ装置、シミュレーション方法および性能解析方法 | |
Hautala | Performance analysis of system-level bus in a modem system-on-chip | |
JP2006221474A (ja) | シミュレーション装置及びその履歴情報記録方法 | |
JP2006079370A (ja) | シミュレーション装置及びシミュレーション方法 | |
Wang et al. | The art of portable and reusable UVM shared system memory model verification methodology across multiple verification platforms | |
Um et al. | A systematic IP and bus subsystem modeling for platform-based system design |