JP2010128582A - シミュレーションシステム - Google Patents

シミュレーションシステム Download PDF

Info

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
Application number
JP2008299847A
Other languages
English (en)
Inventor
Shizuka Anzai
静香 安西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2008299847A priority Critical patent/JP2010128582A/ja
Publication of JP2010128582A publication Critical patent/JP2010128582A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】シミュレーションシステムにおいて、シミュレーション時間を低減し、開発期間短縮、開発効率の向上を実現する。
【解決手段】トランザクションレベルで記述されたモジュールのシミュレーションシステムにおいて、機能モジュールにおいて、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行い(ステップS205)、バスモジュールにおいて、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うようにするようにする。
【選択図】 図2

Description

本発明は、システムLSI等の設計に係るシミュレーションシステムに関する。
プロセス技術の進歩によりLSIの集積度が増大し、これまでボードで実現していたシステムをシステムLSIとして1チップ上に搭載することが可能となった。チップ上に搭載する機能モジュールも多様化し、回路規模が増大している。
これに伴い、システムLSIを効率的に設計する手法として、従来のVerilog−HDLやVHDLといったハードウェア記述言語を使用した設計から、SystemCやSpecCといったシステム記述言語による設計が普及してきた。
システム記述言語による設計支援ツールとしては、Synopsys社のCoCentricや、CoWare社のConvergenSCが知られている。このような設計支援ツールでは、システム記述言語により記述したモジュールを、ブロック図入力画面で入力し、システムLSIの設計を行うことが可能になっている。
システムLSIの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行い、システムLSIの機能や性能を確認できる。システムシュミレーションを行えば、実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避することができる。システム記述言語によるモジュール記述には、記述の抽象度により以下の3種類の記述レベルが一般に知られている。
<トランザクションレベル(TL)>
TLは、モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。が、イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。また、システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
ARM社による定義では、さらに細かく分類されておりPV(プログラマーズビュー)、PVT(プログラマーズビュー+タイミング)、CL(サイクルレベル)が相当する。
<バスサイクルアキュレート(BCA)>
BCAは、モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力及び出力部で正確にシミュレートすることができる。
ARM社による定義では、CC(サイクルコーラブル)が相当する。
<レジスタトランスファレベル(RTL)>
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つであり、これらもハードウェアと関連したものである。
特開2004−70559号公報
しかしながら、従来の技術では、メモリに格納されている再構成を行うために必要な設計データをリードする、というきまりきった動作が必要であり、時間がかかってしまうという問題があった。
また、高抽象度のトランザクションレベルモデリングでモデルを記述していてもリードによるアドレストランザクション、データトランザクションの発行のイベントを削減できないため、時間がかかるという問題があった。
本発明は係る実情に鑑みて、シミュレーション時間を低減し、開発期間短縮、開発効率の向上を実現することを目的とする。
本発明のシミュレーションシステムは、トランザクションレベルで記述されたモジュールのシミュレーションシステムであって、リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行うリコンフィグレーション処理が可能な機能モジュールと、前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うバスモジュールとを有することを特徴とする。
本発明によれば、リコンフィグレーション処理のためのアドレストランザクション及びデータトランザクションのイベントを削減できるため、シミュレーション時間が低減し、開発期間短縮、開発効率の向上につながる。
以下、本発明の第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 スタブモジュール

Claims (5)

  1. トランザクションレベルで記述されたモジュールのシミュレーションシステムであって、
    リコンフィグレーション時に必要なリコンフィグレーションデータの転送を行うかわりに、リコンフィグレーションに要するバスの帯域確保要求を行うリコンフィグレーション処理が可能な機能モジュールと、
    前記リコンフィグレーション処理が可能な機能モジュールから帯域確保要求を受け取って、バス帯域確保を行うバスモジュールとを有することを特徴とするシミュレーションシステム。
  2. 前記リコンフィグレーション処理が可能な機能モジュールは、当該リコンフィグレーション処理を省略し、リコンフィグレーションデータをメモリから取得する機能を有することを特徴とする請求項1に記載のシミュレーションシステム。
  3. 前記リコンフィグレーション処理が可能な機能モジュールは、リコンフィグレーション処理を省略した際、リコンフィグレーション処理の開始からリコンフィグレーション処理まで、実際の処理を行わない機能を有することを特徴とする請求項1に記載のシミュレーションシステム。
  4. システム内には存在しないバスマスタが起動するモジュールであるスタブモジュールと、
    システムに存在するバスマスタとスタブモジュールを含めてアービトレーションが可能なアービタとを有することを特徴とする請求項1に記載のシミュレーションシステム。
  5. 前記帯域確保の要求を受けたとき、スタブモジュールの起動を行い、リコンフィグレーション処理が停止中にスタブモジュールを含めたアービトレーションを行い、バス帯域を確保することを特徴とする請求項1に記載のシミュレーションシステム。
JP2008299847A 2008-11-25 2008-11-25 シミュレーションシステム Pending JP2010128582A (ja)

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)

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