HPS コンポーネントのシミュレーション

29. HPS コンポーネントのシミュレー
ション
November 2012
cv_54030-1.1
cv_54030-1.1
HPS シミュレーション・サポート
この項では、ハード・プロセッサ・システム(HPS)コンポーネントのシミュレー
ション・サポートについて説明します。HPS シミュレーション・モデルは、以下を
含む HPS および FPGA ファブリックの間のインタフェースをサポートしています。
■
HPS および FPGA ファブリックの間のほとんどのインタフェース用の BFM(Bus
Functional Model)
■
HPS SDRAM メモリ用のシミュレーション・モデル
HPS のシミュレーション・サポートには、ARM® Cortex™-A9 MPCore プロセッサなど、
HPS に実装されているモジュールが含まれていません。
Qsys システム統合ツールで HPS コンポーネントをインスタンス化する場合、シミュ
レーション・サポート・ファイルを指定します。特定の HPS-FPGA インタフェースを
イネーブルしていると、生成プロセス中に Qsys は関連するモデルを提供します。シ
ミュレーション・フローについて詳しくは、29–10 ページの「シミュレーション・フ
ロー」を参照してください。
f コンポーネントのインスタンス化の一般的な情報については、Cyclone® V デバイス・
ハンドブック Volume 3 の Instantiating the HPS Component の章を参照してください。
HPS のシミュレーション・サポートは、HPS コンポーネントに接続しているユー
ザー自身の FPGA ソフト・ロジックまたは IP の開発および検証を可能にします。
このシミュレーション・モデルは、以下のインタフェースをサポートしています。
■
クロック・インタフェースおよびリセット・インタフェース
■
FPGA-to-HPS Advanced Microcontroller Bus Architecture(AMBA®)Advanced eXtensible
Interface(AXI™)スレーブ・インタフェース
■
HPS-to-FPGA AXI マスタ・インタフェース
■
軽量 HPS-to-FPGA AXI マスタ・インタフェース
■
FPGA-to-HPS SDRAM インタフェース
■
マイクロプロセッサ・ユニット(MPU)汎用 I/O インタフェース
■
MPU スタンバイおよびイベント・インタフェース
■
割り込みインタフェース
■
ダイレクト・メモリ・アクセス(DMA)コントローラのペリフェラル・リクエス
ト・インタフェース
■
Debug Advanced Peripheral Bus(APB™)インタフェース
© 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
ISO
9001:2008
Registered
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Subscribe
29‒2
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
■
システム・トレース・マクロセル(STM)ハードウェア・イベント
■
FPGA クロス・トリガ・インタフェース
■
FPGA トレース・ポート・インタフェース
29–2 ページの 図 29–1 に、BFM を持っている HPS を示します。
図 29‒1. HPS の BFM のブロック図
Hard Processor System
AXI Protocol Master
IP Components
AXI HPS Master BFM
AXI Protocol Slave
IP Components
AXI HPS Slave BFM
Qsys
Interconnect
SDRAM Memory Model
Interrupt Sink BFM
Avalon-MM
IP Components
Conduit BFM
HPS の BFM は、この項の残りの部分で詳しく説明しているように、Altera® BFM アプ
リケーション・プログラミング・インタフェース(API)からの標準的なファンク
ション・コールを使用します。
f BFM API について詳しくは、Avalon Verification IP Suite User Guide および Mentor
Verification IP Altera Edition User Guide を参照してください。
HPS シミュレーションは、Verilog HDL または SystemVerilog のシミュレーション環境
のみをサポートしています。
クロック・インタフェースおよびリセット・インタフェース
f クロック・インタフェースおよびリセット・インタフェースの一般的な情報につい
ては、Cyclone V デバイス・ハンドブック Volume 3 の HPS Component Interfaces の章の
「Memory-Mapped Interfaces」を参照してください。
クロック・インタフェース
Qsys は、HPS コンポーネントからの各クロック出力インタフェース用にクロック・
ソース BFM を生成します。HPS-to-FPGA ユーザー・クロックでは、Qsys の HPS コン
ポーネントをインスタンス化するときに、HPS Clocks ページの User clock frequency
field で BFM クロック・レートを指定します。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
29‒3
HPS-to-FPGA トレース・ポート・インタフェース・ユニットは、FPGA に対して
h2f_tpiu_clock という名前のクロック出力を生成します。シミュレーションでは、
クロック・ソース BFM もこのクロック出力の動作を表します。
表 29–1 に、BFM インスタンス名と共にすべての HPS クロック出力インタフェースを
示します。
表 29‒1. HPS クロック出力インタフェースのシミュレーション・モデル
インタフェース名
BFM インスタンス名
h2f_user0_clock
h2f_user0_clock
h2f_user1_clock
h2f_user1_clock
h2f_user2_clock
h2f_user2_clock
h2f_tpiu_clock
h2f_tpiu_clock
アルテラのクロック・ソース BFM のアプリケーション・プログラミング・インタ
フェース(API)は、表 29–1 に示されているすべての BFM に準じています。Verilog
インタフェースは、異なるインスタンス名を渡して同じ API を使用します。
Qsys は、FPGA-to-HPS クロック入力インタフェース用の BFM を生成しません。
リセット・インタフェース
HPS リセット・リクエスト・インタフェースおよびハンドシェイク・インタフェー
スは、シミュレーション用のアルテラのコンジット BFM に接続されます。表 29–2
に、各インタフェース名を示します。表 29–2 に示されている API を使用すること
で、リセット・リクエスト・インタフェースの状態の変化をモニタすること、また
はインタフェースを設定することができます。
表 29‒2. HPS リセット入力インタフェースのシミュレーション・モデル
インタフェース名
BFM インスタンス名
API ファンクション名
f2h_cold_reset_req
f2h_cold_reset_req
get_f2h_cold_rst_req_n()
f2h_debug_reset_req
f2h_debug_reset_req
get_f2h_dbg_rst_req_n()
f2h_warm_reset_req
f2h_warm_reset_req
get_f2h_warm_rst_req_n()
h2f_warm_reset_handshake
h2f_warm_reset_handshake
set_h2f_pending_rst_req_n()
get_f2h_pending_rst_ack_n()
表 29–3 に、BFM インスタンス名と共にすべての HPS リセット出力インタフェースを
示します。アルテラのリセット・ソース BFM のアプリケーション・プログラミン
グ・インタフェースは、表 29–3 に示されているすべての BFM に準じています。
表 29‒3. HPS リセット出力インタフェースのシミュレーション・モデル
インタフェース名
2012 年 11 月
BFM インスタンス名
h2f_reset
h2f_reset
h2f_cold_reset
h2f_cold_reset
h2f_debug_apb_reset
h2f_debug_apb_reset
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒4
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
HPS リセット出力インタフェースはリセット・ソース BFM に接続されます。Qsys
は、表 29–4 に示すように BFM をコンフィギュレーションします。
表 29‒4. HPS リセット出力インタフェース用のリセット・ソース BFM のコンフィギュレーション
BFM 値 (1)
パラメータ
Assert reset high
Off
Cycles of initial reset 0
意味
このパラメータはオフで、BFM からのアクティブ Low リセット信号を指
定します。
このパラメータは 0 で、BFM がリセット信号を自動的にアサートしないよ
うに指定します。
表 29–4 の注:
(1) HPS シミュレーション用にコンフィギュレーションされているものとしてインスタンス化される BFM のパラメータ値です。
FPGA-to-HPS AXI スレーブ・インタフェース
FPGA-to-HPS AXI スレーブ・インタフェースの f2h_axi_slave は、シミュレーション
用の Mentor Graphics AXI スレーブ BFM に接続されます。Qsys は、表 29–5 に示すよう
に BFM をコンフィギュレーションします。BFM クロック入力は f2h_axi_clock ク
ロックに接続されます。
表 29‒5. FPGA-to-HPS AXI スレーブ BFM のコンフィギュレーション
パラメータ
値
AXI Address Width
32
AXI Read Data Width
32、64、128
AXI Write Data Width
32、64、128
AXI ID Width
8
BFM API を使用することで AXI スレーブ BFM を制御してモニタします。
f 詳しくは、Mentor Verification IP Altera Edition User Guide を参照してください。FPGA-toHPS AXI スレーブ・インタフェースの一般的な情報については、Cyclone V デバイス・
ハンドブック Volume 3 の HPS Component Interfaces の章の「Memory-Mapped Interfaces」
を参照してください。
HPS-to-FPGA AXI マスタ・インタフェース
HPS-to-FPGA AXI マスタ・インタフェースの h2f_axi_master は、シミュレーション
用の Mentor Graphics AXI マスタ BFM に接続されます。Qsys は、表 29–6 に示すように
BFM をコンフィギュレーションします。BFM クロック入力は h2f_axi_clock クロッ
クに接続されます。
表 29‒6. HPS-to-FPGA AXI マスタ BFM のコンフィギュレーション
パラメータ
AXI Address Width
値
30
AXI Read and Write Data Width
32、64、128
AXI ID Width
12
BFM API を使用することで AXI マスタ BFM を制御してモニタします。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
29‒5
f 詳しくは、Mentor Verification IP Altera Edition User Guide を参照してください。HPS-toFPGA AXI マスタ・インタフェースの一般的な情報については、Cyclone V デバイス・
ハンドブック Volume 3 の HPS Component Interfaces の章の「Memory-Mapped Interfaces」
を参照してください。
軽量 HPS-to-FPGA AXI マスタ・インタフェース
軽量 HPS-to-FPGA AXI マスタ・インタフェースの h2f_lw_axi_master は、シミュレー
ション用の Mentor Graphics AXI マスタ BFM に接続されます。Qsys は、表 29–7 に示す
ように BFM をコンフィギュレーションします。BFM クロック入力は
h2f_lw_axi_clock クロックに接続されます。
表 29‒7. 軽量 HPS-to-FPGA AXI マスタ BFM のコンフィギュレーション
パラメータ
値
AXI Address Width
21
AXI Read and Write Data Width
32
AXI ID Width
12
BFM API を使用することで AXI マスタ BFM を制御してモニタします。
f 詳しくは、Mentor Verification IP Altera Edition User Guide を参照してください。軽量 HPSto-FPGA AXI マスタ・インタフェースの一般的な情報については、Cyclone V デバイ
ス・ハンドブック Volume 3 の HPS Component Interfaces の章の「Memory-Mapped
Interfaces」を参照してください。
FPGA-to-HPS SDRAM インタフェース
HPS コンポーネントには、FPGA-to-HPS SDRAM インタフェースのすべてが接続され
るメモリ・インタフェース・シミュレーション・モデルが含まれています。このモ
デルは HPS 実装に基づいており、インタフェースの真の帯域幅およびレイテンシを
反映して、サイクル・レベルの精度を提供します。しかし、このモデルには HPS ソ
フトウェアによって提供される詳細なコンフィギュレーションがありません。その
ため、モデルは、異なる優先度または重量を使用しているときに実際のハードウェ
ア上での競合で発生することのあるポート間のスケジューリングを反映しません。
f 詳しくは、外部メモリ・インタフェース・ハンドブック Volume 3 の Functional
Description—Hard Memory Interface の章の「EMI-Related HPS Features in SoC Devices」を
参照してください。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒6
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
HPS-to-FPGA MPU 汎用 I/O インタフェース
HPS-to-FPGA MPU 汎用 I/O インタフェースは、シミュレーション用のアルテラのコン
ジット BFM に接続されます。表 29–8 に、シミュレーションの各タイプでの API ファ
ンクション名と共に各インタフェース名を示します。表 29–8 に示されている API を
使用することで、インタフェースの状態の変化をモニタすること、またはインタ
フェースを設定することができます。
表 29‒8. HPS-to-FPGA MPU 汎用 I/O インタフェースのシミュレーション・モデル
インタ
フェース名
h2f_mpu_gp
BFM インス
タンス名
RTL シミュレーションの API
ファンクション名
フィッティング後のシ
ミュレーションの API
ファンクション名
set_h2f_mpu_gp_out()
set_gp_out()
get_h2f_mpu_gp_in()
get_gp_in()
h2f_mpu_gp
HPS-to-FPGA MPU イベント・インタフェース
HPS-to-FPGA MPU イベント・インタフェースは、シミュレーション用のアルテラのコ
ンジット BFM に接続されます。表 29–9 に、シミュレーションの各タイプでの API
ファンクション名と共に各インタフェース名を示します。表 29–9 に示されている
API を使用することで、インタフェースの状態の変化をモニタすること、またはイン
タフェースを設定することができます。
表 29‒9. HPS-to-FPGA MPU イベント・インタフェースのシミュレーション・モデル
インタフェース名
h2f_mpu_events
BFM インスタ
ンス名
RTL シミュレーションの
API ファンクション名 (1)
フィッティング後
のシミュレーショ
ンの API ファンク
ション名
get_h2f_mpu_eventi()
get_eventi()
set_h2f_mpu_evento()
set_evento()
h2f_mpu_events
set_h2f_mpu_standbywfe() set_standbywfe()
set_h2f_mpu_standbywfi() set_standbywfi()
表 29–9 の注:
(1) コンジットの get_*() および set_*() の API ファンクションの使用方法は、一般的な Avalon コン
ジット BFM と同じです。
FPGA-to-HPS 割り込みインタフェース
FPGA-to-HPS 割り込みインタフェースは、シミュレーション用のアルテラの Avalon 割
り込みシンク BFM に接続されます。表 29–10 に、各インタフェース名を示します。
表 29‒10. FPGA-to-HPS 割り込みインタフェースのシミュレーション・モデル
インタフェース名
BFM インスタンス名
f2h_irq0
f2h_irq0
f2h_irq1
f2h_irq1
アルテラの Avalon 割り込みシンク BFM API は、表 29–3 に示されているすべての BFM
に準じています。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
29‒7
HPS-to-FPGA デバッグ APB インタフェース
HPS-to-FPGA デバッグ APB インタフェースは、シミュレーション用のアルテラのコン
ジット BFM に接続されます。表 29–11 に、シミュレーションの各タイプでの API
ファンクション名と共に各インタフェース名を示します。表 29–11 に示されている
API ファンクションを使用することで、インタフェースの状態の変化をモニタするこ
と、またはインタフェースを設定することができます。
表 29‒11. HPS-to-FPGA デバッグ APB インタフェースのシミュレーション・モデル
インタフェース名
RTL シミュレーションの API ファ
ンクション名
BFM 名
h2f_debug_apb
h2f_debug_apb
フィッティング後のシミュ
レーションの API ファンク
ション名
set_h2f_dbg_apb_PADDR()
set_PADDR()
set_h2f_dbg_apb_PADDR_31()
set_PADDR_31()
set_h2f_dbg_apb_PENABLE()
set_PENABLE()
get_h2f_dbg_apb_PRDATA()
get_PRDATA()
get_h2f_dbg_apb_PREADY()
get_PREADY()
set_h2f_dbg_apb_PSEL()
set_PSEL()
get_h2f_dbg_apb_PSLVERR()
get_PSLVERR()
set_h2f_dbg_apb_PWDATA()
set_PWDATA()
set_h2f_dbg_apb_PWRITE()
set_PWRITE()
get_PCLKEN()
h2f_debug_apb_side h2f_debug_apb_ get_h2f_dbg_apb_PCLKEN()
band
sideband
get_h2f_dbg_apb_DBG_APB_DISABLE() get_DBG_APB_DISABLE()
FPGA-to-HPS システム・トレース・マクロセル(STM)ハードウェ
ア・イベント・インタフェース
FPGA-to-HPS STM ハードウェア・イベント・インタフェースは、シミュレーション用
のアルテラのコンジット BFM に接続されます。表 29–12 に、シミュレーションの各
タイプでの API ファンクション名と共に各インタフェース名を示します。表 29–12
に示されている API ファンクションを使用することで、インタフェースの状態の変
化をモニタすること、またはインタフェースを設定することができます。
表 29‒12. FPGA-to-HPS STM ハードウェア・イベント・インタフェースのシミュレーション・モデル
インタフェース名
f2h_stm_hw_events
2012 年 11 月
BFM 名
f2h_stm_hw_events
Altera Corporation
RTL シミュレーションの API
ファンクション名
get_f2h_stm_hwevents()
フィッティング後のシミュ
レーションの API ファンク
ション名
get_stm_events()
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒8
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
HPS-to-FPGA クロス・トリガ・インタフェース
HPS-to-FPGA クロス・トリガ・インタフェースは、シミュレーション用のアルテラの
コンジット BFM に接続されます。表 29–13 に、シミュレーションの各タイプでの
API ファンクション名と共に各インタフェース名を示します。表 29–13 に示されてい
る API ファンクションを使用することで、インタフェースの状態の変化をモニタす
ること、またはインタフェースを設定することができます。
表 29‒13. HPS-to-FPGA クロス・トリガ・インタフェースのシミュレーション・モデル
インタ
フェース名
h2f_cti
RTL シミュレーションの API
ファンクション名
BFM 名
フィッティング後のシミュレー
ションの API ファンクション名
get_h2f_cti_trig_in()
get_trig_in()
set_h2f_cti_trig_in_ack()
set_trig_inack()
set_h2f_cti_trig_out()
set_trig_out()
get_h2f_cti_trig_out_ack()
get_trig_outack()
set_h2f_cti_asicctl()
set_asicctl()
get_h2f_cti_fpga_clk_en()
get_clk_en()
h2f_cti
HPS-to-FPGA トレース・ポート・インタフェース
HPS-to-FPGA トレース・ポート・インタフェースは、シミュレーション用のアルテラ
のコンジット BFM に接続されます。表 29–14 に、シミュレーションのタイプごとの
API ファンクション名と共に各インタフェース名を示します。表 29–14 に示されてい
る API ファンクションを使用することで、インタフェースの状態の変化をモニタす
ること、またはインタフェースを設定することができます。
表 29‒14. HPS-to-FPGA トレース・ポート・インタフェースのシミュレーション・モデ
ル
インタ
フェース名
BFM 名
h2f_tpiu
h2f_tpiu
RTL シミュレーションの
API ファンクション名
フィッティング後のシミュレー
ションの API ファンクション名
get_h2f_tpiu_clk_ctl()
get_traceclk_ctl()
set_h2f_tpiu_data()
set_trace_data()
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
HPS シミュレーション・サポート
29‒9
FPGA-to-HPS DMA ハンドシェイク・インタフェース
FPGA-to-HPS DMA ハンドシェイク・インタフェースは、シミュレーション用のアルテ
ラのコンジット BFM に接続されます。表 29–15 に、シミュレーションのタイプごと
の API ファンクション名と共に各インタフェース名を示します。表 29–15 に示され
ている API ファンクションを使用することで、インタフェースの状態の変化をモニ
タすること、またはインタフェースを設定することができます。
表 29‒15. FPGA-to-HPS DMA ハンドシェイク・インタフェースのシミュレーション・モ
デル
インタフェー
ス名
BFM インス
タンス名
f2h_dma_req0 f2h_dma_req0
f2h_dma_req1 f2h_dma_req1
f2h_dma_req2 f2h_dma_req2
f2h_dma_req3 f2h_dma_req3
f2h_dma_req4 f2h_dma_req4
f2h_dma_req5 f2h_dma_req5
f2h_dma_req6 f2h_dma_req6
f2h_dma_req7 f2h_dma_req7
RTL シミュレーションの API
ファンクション名 (1)
フィッティング後のシ
ミュレーションの API
ファンクション名
get_f2h_dma_req0_req()
get_channel0_req()
get_f2h_dma_req0_single()
get_channel0_single()
set_f2h_dma_req0_ack()
set_channel0_xx_ack()
get_f2h_dma_req1_req()
get_channel1_req()
get_f2h_dma_req1_single()
get_channel1_single()
set_f2h_dma_req1_ack()
set_channel1_xx_ack()
get_f2h_dma_req2_req()
get_channel2_req()
get_f2h_dma_req2_single()
get_channel2_single()
set_f2h_dma_req2_ack()
set_channel2_xx_ack()
get_f2h_dma_req3_req()
get_channel3_req()
get_f2h_dma_req3_single()
get_channel3_single()
set_f2h_dma_req3_ack()
set_channel3_xx_ack()
get_f2h_dma_req4_req()
get_channel4_req()
get_f2h_dma_req4_single()
get_channel4_single()
set_f2h_dma_req4_ack()
set_channel4_xx_ack()
get_f2h_dma_req5_req()
get_channel5_req()
get_f2h_dma_req5_single()
get_channel5_single()
set_f2h_dma_req5_ack()
set_channel5_xx_ack()
get_f2h_dma_req6_req()
get_channel6_req()
get_f2h_dma_req6_single()
get_channel6_single()
set_f2h_dma_req6_ack()
set_channel6_xx_ack()
get_f2h_dma_req7_req()
get_channel7_req()
get_f2h_dma_req7_single()
get_channel7_single()
set_f2h_dma_req7_ack()
set_channel7_xx_ack()
表 29–15 の注:
(1) コンジットの get_*() および set_*() の API ファンクションの使用方法は、一般的な Avalon コン
ジット BFM と同じです。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒10
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
シミュレーション・フロー
この項では、HPS ベースのデザイン用のシミュレーション・フローについて説明し
ます。
アルテラは、機能レジスタ転送レベル(RTL)のシミュレーション・フローおよびポ
スト・フィッタ・ゲート・レベルのシミュレーション・フローの両方を提供してい
ます。シミュレーション・フローの大まかなステップは以下の通りです。
1. HPS コンポーネントをインスタンス化します —29–10 ページの「Qsys での HPS
シミュレーション・モデルの指定」を参照してください。
2. シミュレーション・モデルを含むシステムを Qsys で生成します —29–13 ページ
の「Qsys での HPS シミュレーション・モデルの生成」を参照してください。
3. シミュレーションを実行します — 以下の項のどちらかを参照してください。
■
29–13 ページの「HPS RTL シミュレーションの実行」
■
29–14 ページの「HPS フィッティング後のシミュレーションの実行」
f シミュレーションの一般的な情報については、Quartus II ハンドブック Volume 3 の
Simulating Altera Designs の章を参照してください。
Qsys での HPS シミュレーション・モデルの指定
以下のステップは、シミュレーション用に HPS コンポーネントを設定する方法を示
しています。
1. Qsys Component Library から HPS コンポーネントを追加します。
2. アプリケーションのニーズに基づいて、HPS-FPGA インタフェースを選択 / 解除す
ることでコンポーネントをコンフィギュレーションします。
3. HPS インタフェースをシステム内の適切なコンポーネントに接続します。例え
ば、FPGA-to-HPS AXI スレーブ・インタフェースは、システムのほかのコンポーネ
ントの AXI マスタ・インタフェースに接続します。
ユーザーが独自のコンポーネントを作成している場合、コンジット・インタ
フェースに正しい役割名、入力 / 出力、および幅があることを確認します。
表 29–16 に、すべての HPS コンジット・インタフェース用の役割名、入力 / 出
力、および幅を示します。
f デザインに HPS コンポーネントを追加することの一般的な情報については、Cyclone V
デバイス・ハンドブック Volume 3 の Instantiating the HPS Component の章を参照してく
ださい。
表 29‒16. HPS コンジット・インタフェース(その1)
役割名
入力 / 出力
幅
h2f_warm_reset_handshake
h2f_pending_rst_req_n
出力
1
f2h_pending_rst_ack_n
入力
1
h2f_mpu_gp
gp_in
32
入力
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
29‒11
表 29‒16. HPS コンジット・インタフェース(その2)
役割名
gp_out
入力 / 出力
幅
出力
32
h2f_mpu_events
eventi
入力
1
evento
出力
1
standbywfe
出力
2
standbywfi
出力
2
f2h_dma_req0
req0_req
入力
1
req0_single
入力
1
req0_ack
出力
1
f2h_dma_req1
req1_req
入力
1
req1_single
入力
1
req1_ack
出力
1
f2h_dma_req2
req2_req
入力
1
req2_single
入力
1
req2_ack
出力
1
f2h_dma_req3
req3_req
入力
1
req3_single
入力
1
req3_ack
出力
1
f2h_dma_req4
req4_req
入力
1
req4_single
入力
1
req4_ack
出力
1
f2h_dma_req5
req5_req
入力
1
req5_single
入力
1
req5_ack
出力
1
f2h_dma_req6
req6_req
入力
1
req6_single
入力
1
req6_ack
出力
1
f2h_dma_req7
2012 年 11 月
req7_req
入力
1
req7_single
入力
1
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒12
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
表 29‒16. HPS コンジット・インタフェース(その3)
役割名
req7_ack
入力 / 出力
幅
出力
1
h2f_debug_apb
paddr
入力
18
paddr_31
入力
1
penable
入力
1
prdata
出力
32
pready
出力
1
psel
入力
1
pslverr
出力
1
pwdata
入力
32
pwrite
入力
1
h2f_debug_apb_sideband
pclken
出力
1
dbg_apb_disable
出力
1
f2h_stm_hw_events
stm_hwevents
28
出力
h2f_cti
trig_in
出力
8
trig_in_ack
入力
8
trig_out
入力
8
trig_out_ack
出力
8
asicctl
入力
8
fpga_clk_en
出力
1
h2f_tpiu
clk_ctl
出力
1
data
入力
32
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
29‒13
Qsys での HPS シミュレーション・モデルの生成
以下のステップは、シミュレーション・モデルを生成する方法を示しています。
1. Qsys の Generation ページに移動します。
2. RTL シミュレーションの場合、以下のステップを実行します。
a. Create simulation model を Verilog に設定します。
b. Generate をクリックします。
1
HPS シミュレーションは、VHDL シミュレーション環境をサポートしていま
せん。
フィッティング後のシミュレーションの場合、以下のステップを実行します。
a. Create HDL design files for synthesis オプションをオンにします。
b. Create block symbol file (.bsf) オプションをオンにします。
c. Generate をクリックします。
f HPS コンポーネントを生成することの一般的な情報については、Cyclone V デバイス・
ハンドブック Volume 3 の Instantiating the HPS Component の章を参照してください。
Qsys シミュレーションについて詳しくは、Quartus II ハンドブック Volume 1 の
Creating a System with Qsys の章の「Simulating a Qsys System」を参照してください。
HPS RTL シミュレーションの実行
Qsys は、シミュレーション・プロセスを完全に実行する上で使用するいくつものシ
ミュレータのスクリプトを生成します。表 29–17 に、各種ベンダのシミュレーショ
ン・ツール、スクリプト名およびスクリプト・ディレクトリを示します。
表 29‒17. 各種シミュレータ用の Qsys 生成のスクリプト
シミュレータ
スクリプト名
ディレクトリ
Mentor Graphics Modelsim®
Altera Edition
msim_setup.tcl
<project directory>/<Qsys design name>/simulation/mentor
Cadence NC-Sim
ncsim_setup.sh
<project directory>/<Qsys design name>/simulation/cadence
Synopsys VCS
vcs_setup.sh
<project directory>/<Qsys design name>/simulation/synopsys/vcs
Synopsys VCS-MX
vcsmx_setup.sh
<project directory>/<Qsys design name>/simulation/synopsys/vcsmx
f シミュレーションのステップについて詳しくは、Mentor Verification IP Altera Edition User
Guide、および Avalon Verification IP Suite User Guide の Qsys Tutorial の章を参照してくだ
さい。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒14
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
HPS フィッティング後のシミュレーションの実行
この章では、HPS フィッティング後のシミュレーションを実行する方法について説
明します。Qsys での生成が完了した後、以下のステップを実行します。
1. 以下のステップを実行して、Qsys 生成の合成ファイル・セットを Quartus II プロ
ジェクトに追加します。
a. Quartus II ソフトウェアの Assignments メニューの Settings をクリックします。
b. Settings -<your Qsys system name> ダイアログ・ボックスの Files タブで、
<your project directory>/<your Qsys system name>/synthesis/ に移動し、
<your Qsys system name>.qip を選択します。
c. OK をクリックします。
2. 必要に応じて、HPS コンポーネントが Quartus II プロジェクトのトップ・レベル・
エンティティとして含まれている Qsys システムをインスタンス化できます。
3. Processing メニューの Start Compilation をクリックしてデザインをコンパイルしま
す。
4. 必要に応じて、以下のステップを実行して EDA Netlist Writer 設定を変更します。
a. Assignment メニューの Settings をクリックします。
b. Simulation タブの EDA Tool Settings タブで、以下の EDA Netlist Writer 設定を指
定できます。
■
Tool name— シミュレーション・ツールの名前
■
Format for output netlist
■
Output directory
c. OK をクリックします。
EDA Netlist Writer 設定について詳しくは、Quartus II ヘルプの Simulation Page
(Settings Dialog Box) を参照してください。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
29‒15
5. フィッティング後のシミュレーション・モデルを Quartus II EDA Netlist Writer で生
成するには、Start メニューで Processing を選択して Start EDA Netlist Writer をク
リックします。
6. シミュレーション・ツールのシミュレーション・ファイルで必要なものをコンパ
イルします。表 29–18 に、必要なライブラリおよびファイルを示します。
7. シミュレーションを開始します。
表 29‒18. フィッティング後のシミュレーション・ファイル(その1)
ディレクトリ (1)
ライブラリ
ファイル
verbosity_pkg.sv
Altera Verification IP
Library
<Avalon Verification IP>/lib/
avalon_mm_pkg.sv
avalon_utilities_pkg.sv
Avalon Clock Source BFM
<Avalon Verification IP>/altera_avalon_clock_source/
altera_avalon_clock_source.sv
Avalon Reset Source BFM
<Avalon Verification IP>/altera_avalon_reset_source/
altera_avalon_reset_source.sv
Avalon MM Slave BFM
<Avalon Verification IP>/altera_avalon_mm_slave_bfm/ altera_avalon_mm_slave_bfm.sv
Avalon Interrupt Sink BFM
<Avalon Verification IP>/altera_avalon_interrupt_sink/
altera_avalon_interrupt_sink.sv
Mentor AXI Verification IP
Library
<AXI Verification IP>/common/
questa_mvc_svapi.svh
mgc_common_axi.sv
Mentor AXI3 BFM
<AXI Verification IP>/axi3/bfm/
mgc_axi_master.sv
mgc_axi_slave.sv
HPS Post-Fit Simulation
Library
<HPS Post-fit Sim>/
All the files in the directory
altera_primitives.v
220model.v
sgate.v
altera_mf.v
Device Simulation
Library (2)
<Device Sim Lib>/
altera_lnsim.sv
cyclonev_atoms.v
arriav_atoms.v
mentor/cyclonev_atoms_ncrypt.v
mentor/arriav_atoms_ncrypt.v
表 29–18 の注:
(1) <ACDS install> = Altera Complete Design Suite インストール・パス
<Avalon Verification IP> = <ACDS install>/ip/altera/sopc_builder_ip/verification
<AXI Verification IP> = <ACDS install>/ip/altera/mentor_vip_ae
<HPS Post-fit Sim> = <ACDS install>/ip/altera/hps/postfitter_simulation
<Device Sim Lib> = <ACDS install>/quartus/eda/sim_lib
(2) Modelsim-Altera ではデバイス・シミュレーション・ライブラリは必要ありません。
(3) Verilog HDL および VHDL の混在デザインでは、混在言語シミュレーションが必要です。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒16
第 29 章: HPS コンポーネントのシミュレーション
シミュレーション・フロー
表 29‒18. フィッティング後のシミュレーション・ファイル(その2)
ディレクトリ (1)
ライブラリ
EDA Netlist Writer
Generated Post-Fit
Simulation Model
<User project directory>/
ファイル
*.vo
*.vho
(3)
*.v
User testbench files
<User project directory>/
*.sv
*.vhd (3)
表 29–18 の注:
(1) <ACDS install> = Altera Complete Design Suite インストール・パス
<Avalon Verification IP> = <ACDS install>/ip/altera/sopc_builder_ip/verification
<AXI Verification IP> = <ACDS install>/ip/altera/mentor_vip_ae
<HPS Post-fit Sim> = <ACDS install>/ip/altera/hps/postfitter_simulation
<Device Sim Lib> = <ACDS install>/quartus/eda/sim_lib
(2) Modelsim-Altera ではデバイス・シミュレーション・ライブラリは必要ありません。
(3) Verilog HDL および VHDL の混在デザインでは、混在言語シミュレーションが必要です。
フィッティング後のシミュレーションでは、特別な階層のテスト・プログラムにあ
る BFM API を呼び出す必要があります。階層フォーマットは次の通りです。
<DUT>.\<HPS>|fpga_interfaces|<interface><space>.<BFM>.<API function>
ここで、
■
<DUT> は、HPS コンポーネントで構成されているテストベンチでインスタンス化
したテスト対象となっているデザインのインスタンス名です。
■
<HPS> は、Qsys システムで使用する HPS コンポーネントのインスタンス名です。
■
<interface> は、
特別な FPGA-to-HPS インタフェースまたは HPS-to-FPGA インタフェー
スのインスタンス名です。この名前は、<project directory>/<Qsys design
name>/synthesis/submodules の fpga_interfaces.sv ファイルにあります。
■
<space>— インタフェースのインスタンス名の後に 1 文字分のスペースを挿入する
必要があります。
■
<BFM> は BFM インスタンス名です。使用しているインタフェース・タイプに関連
する SystemVerilog ファイルを <ACDS install>/ip/altera/hps/postfitter_simulation で識
別します。SystemVerilog ファイルには BFM インスタンス名が含まれています。
例えば、軽量 HPS-to-FPGA マスタ・インタフェース階層のパスは以下のように形成
されていることがあります。
top.dut.\my_hps_component|fpga_interface|hps2fpga_light_weight .h2f_lw_axi_master
「hps2fpga_light_weight」の後にスペースがあることに注意してください。スペースを
含む「hps2fpga_light_weight 」のインスタンス名が Quartus® II ソフトウェア生成の
フィッティング後のシミュレーション・モデルで使用される名前であるため、この
スペースを省略してしまうとシミュレーションが失敗します。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 29 章: HPS コンポーネントのシミュレーション
改訂履歴
29‒17
改訂履歴
表 29–19 に、本資料の改訂履歴を示します。
表 29‒19. 改訂履歴
バー
ジョン
日付
2012 年 11 月
1.1
変更内容
■
デバッグ APB インタフェース、STM ハードウェア・イベント・インタフェース、
FPGA クロス・トリガ・インタフェース、FPGA トレース・ポート・インタ
フェースの追加。
■
フィッティング後のシミュレーションのサポートの追加。
■
いくつかの API ファンクション名の更新。
■
DMA ペリフェラル・クロックの削除。
2012 年 6 月
1.0
初版。
2012 年 5 月
0.1
暫定的な草案。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
29‒18
第 29 章: HPS コンポーネントのシミュレーション
改訂履歴
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation