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