SoC はじめてガイド - HPS-FPGA 間のアクセス方法(Arria® V SoC / Cyclone® V SoC 編)

Similar documents
SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

複数の Nios II を構成する際の注意事項

Nios II Flash Programmer ユーザ・ガイド

Quartus II はじめてガイド - Convert Programming File の使い方

PCI-Express ハード IP を使用した DMA の実現 for Cyclone V GT FPGA 開発キット(ソフトウェア編)

ModelSim-Altera - RTL シミュレーションの方法

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

Quartus Prime はじめてガイド - デバイス・プログラミングの方法

Nios II SBT Flash Programmer ユーザ・ガイド

Quartus Prime - プログラミング・ファイルの生成や変換(Convert Programming Files)

Quartus II クイック・スタートガイド

アルテラ USB-Blastre ドライバのインストール方法 for Windows OS

ModelSim-Altera Edition インストール & ライセンスセットアップ Linux ver.11

Nios II - Vectored Interrupt Controller の実装

オンチップ・メモリ クイック・ガイド for Cyclone III

Preloader Generator の使用方法

Quartus II はじめてガイド - プロジェクトの作成方法

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc

PCI-Express ハード IP を使用した DMA 転送の実現 for Cyclone V GT FPGA 開発キット(ハードウェア編)

Quartus II Web Edition インストール・ガイド

Quartus II クイック・スタート・ガイド

はじめての インテル SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

Quartus II はじめてガイド - プロジェクトの作成方法

インテル® SoC FPGA の QSPI ベアメタルアプリ・ブート (Cyclone V SoC / Arria V SoC 編)

HDL Designer Series SupportNet GUI HDL Designer Series HDL Desi

AN424 Modbus/TCP クイックスタートガイド CIE-H14

Quartus® Prime ガイド - Design Space Explorer II の使い方 Ver.16

AN5101 SA-Cy500S (Cyclone V SoC CPU BOARD) スタートガイド

Nios II 簡易チュートリアル

Nios II マイコン活用ガイド Nios II マイコンボード紹介 ステップ 1 AuCE C3 製品紹介 AuCE C3 は ソフトコア プロセッサ Nios II( アルテラ社 ) を搭載可能なマイコンボードです 弊社の基本ソフトウェアをインストールし FPGA 開発者のデザインと Nios

ご注意 1) 本書の内容 およびプログラムの一部 または全部を当社に無断で転載 複製することは禁止されております 2) 本書 およびプログラムに関して将来予告なしに変更することがあります 3) プログラムの機能向上のため 本書の内容と実際の画面 操作が異なってしまう可能性があります この場合には 実

Microsoft Word - dg_sataahciip_refdesign_jp.doc

Notes and Points for TMPR454 Flash memory

Nios II 簡易シミュレーション

Quartus II - デバイスの未使用ピンの状態とその処理

Silicon Labs 社 CP210x クイックスタートガイド 2015 年 6 月

Nios II カスタム・インストラクションによるキャスト(型変換)の高速化

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Microsoft Word - 03_PCIe特集_PCIe実現方法.doc

TFTP serverの実装

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

Quartus II はじめてガイド - EDA ツールの設定方法

PowerPoint Presentation

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

OS5.2_SSLVPN設定手順書

Microsoft Word - ModelAnalys操作マニュアル_

Quartus II はじめてガイド - デバイス・プログラミング方法

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

バーコードハンディターミナル BT-1000 シリーズセットアップガイド ( 第 1 版 ) CE ***

ポリシーマネージャ       Linux版                                 集中管理環境の新規構築

Microsoft Word - RefApp7インストールガイド.doc

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

Quartus II はじめてガイド - よく使用するロジック・オプション設定方法 (個別設定)

アカウント管理者 操作ドキュメント

スライド 1

Space-E/Draw インストールガイド 発行通知書

CONTEC DIOプロバイダ ユーザーズガイド

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

LEAP を使用して Cisco ワイヤレス クライアントを認証するための Funk RADIUS の設定

HLS はじめてガイド - 簡易チュートリアル

HULFT 技術サポートサイト お問い合わせ入力操作説明

完成版_セミナー発表資料110928

標準画面 手動操作 サンプル画面説明書

HP製コンピューターでのWindows® 7 XPモードの使用

Nios II マイコン活用ガイド マイコンの動作を確認しましょう AuCE C3 には 基本 CPU エンジン CPU0121C3880 と 対応する基本プログラムを書き込んで出荷しております 以下に AuCE C3 出荷時の状態を示します AuCE C3 FPGA Cyclone III 基本

Windows Server 2012/2012 R2 Active Directory環境へのドメイン移行の考え方

Quartus II はじめてガイド - プロジェクトの作成方法

はじめにお読みくださいfor HP Smart Zero Client v5.0

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

CLUSTERPRO MC StorageSaver for BootDisk 1.2 (for Windows) インストールガイド 2014(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

4-7.コネクト2.0_電話操作マニュアル(ZoiperFree)_v1.1.0

インテル® SoC FPGA の QSPI ベアメタルアプリ・ブート (インテル® Arria® 10 SoC 編)

EB-RL7023+SB/D2

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

MODBUS ユーザーズマニュアル 페이지 1 / 23

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

Microsoft® Windows® Server 2008/2008 R2 の Hyper-V 上でのHP ProLiant用ネットワークチーミングソフトウェア使用手順

Quartus II はじめてガイド ‐ Device and Pin Options 設定方法

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

Transcription:

ALTIMA Company, MACNICA, Inc. SoC はじめてガイド HPS-FPGA 間のアクセス方法 (Arria V SoC / Cyclone V SoC 編 ) Ver.17 2017 年 7 月 Rev.1 ELSENA,Inc.

SoC はじめてガイド HPS-FPGA 間のアクセス方法 (Arria V SoC / Cyclone V SoC 編 ) 目次 はじめに...3 HPS-FPGA 間のインタフェース...4 アドレス マップ...6 ハードウェアの設定...8 HPS コンポーネントの設定 (AXI Bridges / FPGA-to-HPS SDRAM Interface)... 8 4-1-1. FPGA-to-HPS インタフェース (F2H)... 9 4-1-2. HPS-to-FPGA インタフェース (H2F)... 10 4-1-3. Lightweight HPS-to-FPGA インタフェース (LWH2F)... 11 4-1-4. FPGA-to-HPS SDRAM インタフェース (F2S)... 12 4-1-5. F2S のポート数... 13 4-1-6. SDRAM コントローラの優先度... 14 他のコンポーネントとの接続... 15 インタフェースの初期化... 16 4-3-1. F2H, H2F, LWH2F の初期化... 16 4-3-2. F2S の初期化... 17 ソフトウェアからのアクセス... 18 アドレスの考え方... 18 システム ヘッダ ファイル... 20 参考情報... 21 改版履歴... 22 Ver.17 / Rev. 1 2017 年 7 月 2/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

はじめに この SoC はじめてガイド シリーズは インテル SoC FPGA を使用する初心者ユーザ向けの技術コンテンツです インテル SoC FPGA は ARM Cortex -A9 MPCore プロセッサと FPGA とがデバイス内でバス接続されています デバイス内で接続されているため プロセッサと FPGA 間の転送レート不足の解消や 基板上の実装面積の縮小が期待されます この資料では インテル Arria V SoC FPGA や Cyclone V SoC FPGA における Hard Processor System (HPS) と FPGA 間のアクセス方法を説明します なお この資料内では特に断りが無い場合 Arria SoC FPGA や Cyclone V SoC のことをインテル SoC FPGA と呼ぶことにします Ver.17 / Rev. 1 2017 年 7 月 3/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

HPS-FPGA 間のインタフェース インテル SoC FPGA の内部構造は 下図の通りです 図の上方の緑色部分が FPGA ファブリックで その下方の水色部分を含む破線部分内が HPS です インテル SoC FPGA には FPGA と HPS との間に 4 つのインタフェースがあります HPS 側がバス マスタとなって FPGA 側にアクセスするインタフェースとしては 最大 128bit 幅の高帯域な HPS-to-FPGA (H2F) インタフェースと 32bit 幅の Lightweight HPS-to-FPGA (LWH2F) インタフェースがあります H2F は HPS と FPGA 間の比較的大容量のデータを転送するインタフェースです LWH2F は 制御信号など比較的低速でのアクセスに適しています HPS からは これらのインタフェースは 後述するアドレス マップ上でメモリ マップト I/O としてアクセスできます FPGA 側がバス マスタとなって HPS 側にアクセスするインタフェースとしては 最大 128bit の FPGA-to-HPS (F2H) インタフェースがあります また FPGA 側から HPS 側にある SDRAM コントローラに直接アクセスするインタフェースとしては FPGA-to-SDRAM (F2S) があります 各インタフェースの概要を次ページの表に示します Ver.17 / Rev. 1 2017 年 7 月 4/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

名称 HPS to FPGA Bridge Lightweight HPS to FPGA Bridge FPGA to HPS Bridge FPGA to HPS SDRAM Interface 略称 H2F LWH2F F2H F2S 機能概要 FPGA がバス マ HPS がバス マス HPS がバス マスタ FPGA がバス マスタとなり HPS タとなり FPGA 側となり FPGA 側にアスタとなり HPS 側の SDRAM へにアクセスするインクセスするインタフェ側にアクセスする直接アクセスするタフェースースインタフェースインタフェース バス幅 32/64/128bit 32bit 32/64/128bit 32/64/128/256 bit 空間サイズ 960MB 2MB 4GB 4GB I/F タイプ AXI3 AXI3 AXI3 AXI3 / Avalon MM 最大ポート数 1 1 1 AXI3 :3 Avalon -MM:6 主な使用方法 FPGA 側とのデータ転送 ( 広帯域を必要とする大きなサイズのデータを扱う場合 ) FPGA 側のコントロール ステータス レジスタ (CSR) の読み書き (H2F のデータ トラフィックに影響されずに低遅延でアクセスしたい場合 ) HPS 側とのデータ転送および CSR 読み書き HPS 側の SDRAM に対する高速アクセス (HPS 内のメイン スイッチを介さずに SDRAM へアクセスしたい場合 ) インテル Qsys システム統合ツールがバス プロトコルの相互変換を行うためのインタコネクト回路を自動生成するため Avalon インタフェースのコンポーネントを I/F タイプが AXI3 の Bridge/Interface へ接続することも可能です このため 今までの設計資産を流用することが可能です Ver.17 / Rev. 1 2017 年 7 月 5/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

アドレス マップ ARM プロセッサから見た FPGA は メモリ マップト デバイスとしてアクセスすることができます アドレス マップは どこからアクセスをするか によって 以下の 3 種類の概念に分かれます ARM プロセッサからアクセスする場合に使用する MPU ビュー L3 インタコネクトに接続されたマスタから使用する L3 ビュー もしくは non-mpu ビュー (F2H に接続された FPGA 側のマスタ デバイスも L3(non-MPU) ビューの概念が適用されます ) F2S に接続されたマスタから使用する SDRAM ビュー 各ビューの概念を下図に示します Ver.17 / Rev. 1 2017 年 7 月 6/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

上図が 3 種類の各ビューに対するアドレス マップとなります MPU ビューと L3(non-MPU) ビューには H2F LWH2F アクセス用に固定の領域が割り当てられます HPS 側から H2F ブリッジを介して FPGA にアクセスする際は 0xC000_0000~ 番地にアクセスします HPS 側から LWH2F ブリッジを介して FPGA にアクセスする際は 0xFF20_0000~ 番地にアクセスします ARM プロセッサのソフトウェアから FPGA にアクセスする方法は 5 ソフトウェアからのアクセス をご参照ください L3 ビュー (non-mpu ビュー ) の 0x8000_0000~ にマッピングされているのは ACP (Accelerator Coherency Port) です このポートを介してアクセスをすると L3 に接続されたマスタからとプロセッサとの間でコヒーレントなアクセスを行うことができます ACP を介したアクセスは インテル FPGA の Web ページにあるテクニカル リファレンス マニュアル ( 使用するデバイス ファミリ (Arria V / Cyclone V) 用の Hard Processor System Technical Reference Manual) の ACP に関する記述をご参照ください Ver.17 / Rev. 1 2017 年 7 月 7/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

ハードウェアの設定 ハードウェアの設定は Qsys によって行います 設定は HPS コンポーネントの設定 HPS と他のコンポーネントとの接続 および インタフェースの初期化 の 3 つが必要です HPS コンポーネントの設定 (AXI Bridges / FPGA-to-HPS SDRAM Interface) HPS コンポーネントの設定を Qsys の GUI にて行います FPGA Interfaces タブの AXI Bridges( 下図赤枠 ) および FPGA-to-HPS SDRAM Interface( 下図青枠 ) が 該当のオプションとなります 次に AXI Bridges の設定では F2H, H2F, LWH2F の各インタフェースに対して データ バス幅および使用の有無を選択します そして FPGA-to-HPS SDRAM Interface の設定では F2S インタフェースで利用するポートを 0 個 ( 未使用 ) から条件により最大 6 個まで複数のポートを登録できます 各ポートには バスの種類 およびデータ バス幅を選択します F2S に登録可能なポート数の詳細は 4-1-5. F2S のポート数 をご参照ください Ver.17 / Rev. 1 2017 年 7 月 8/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-1-1. FPGA-to-HPS インタフェース (F2H) FPGA-to-HPS インタフェースは FPGA 内にあるバス マスタが HPS 内のペリフェラルやメモリにアクセスするために使用します 4GB のアドレス空間を有しています 32bit アドレスをサポートできないバス マスタは Qsys の IP カタログにある Address Span Extender( ウィンドウ ブリッジ ) を使用してアドレス拡張することにより 接続できます データ バス幅は 32bit / 64bit / 128bit から選択することが可能です Ver.17 / Rev. 1 2017 年 7 月 9/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-1-2. HPS-to-FPGA インタフェース (H2F) HPS-to-FPGA インタフェースは HPS 内にある ARM プロセッサや DMA コントローラ等のバス マスタが FPGA 内のペリフェラルにアクセスするために使用します 最大 128bit のデータ バス幅を選択できるため 大容量のデータ転送に適します 960MB(0xC000_0000 ~ 0xFBFF_FFFF) のアドレス空間を有しています 960MB より大きい空間にアクセスする場合 Qsys の IP カタログにある Address Span Extender( ウィンドウ ブリッジ ) を使用してアドレス拡張することにより アクセスできます データ バス幅は 32bit / 64bit / 128bit から選択することが可能です Ver.17 / Rev. 1 2017 年 7 月 10/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-1-3. Lightweight HPS-to-FPGA インタフェース (LWH2F) Lightweight HPS-to-FPGA インタフェースは HPS 内にある ARM プロセッサや DMA コントローラ等のバス マスタが FPGA 内のペリフェラルにアクセスするために使用します データ バス幅が 32bit 固定のため LED 等の各種レジスタ制御用や 状態の確認のためのレジスタアクセスに適します 2MB(0xFF20_0000 ~ 0xFF3F_FFFF) のアドレス空間を有しています 2MB 以上の空間にアクセスする場合 Qsys の IP カタログにある Address Span Extender( ウィンドウ ブリッジ ) を使用してアドレス拡張することにより アクセスできます データ バス幅は 32bit 幅のみとなります Ver.17 / Rev. 1 2017 年 7 月 11/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-1-4. FPGA-to-HPS SDRAM インタフェース (F2S) FPGA-to-HPS SDRAM インタフェース (F2S) は FPGA 内のバス マスタが HPS 内の L3 インタコネクトを介すことなく HPS 内の SDRAM にアクセスができるインタフェースです このポートは 最大 6 ポートまで持つことが可能です 4GB のアドレス空間を有します アドレス空間は 4GB 存在しますが メモリの実体がない空間へのアクセスは行わないでください インタフェースの種類は 4 種類選択できます AXI-3 Avalon-MM Bidirectional Avalon-MM Write-Only Avalon-MM Read-Only データ バス幅は 32bit / 64bit / 128bit /256bit から選択できます Ver.17 / Rev. 1 2017 年 7 月 12/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-1-5. F2S のポート数 FPGA-to-HPS SDRAM インタフェース (F2S) は 複数のポートを持てることは紹介しました ここでは ポート数の考え方について紹介します F2S は コマンド ポート (6 ポート ) 64bit read data ポート (4 ポート ) 64bit の write data ポート (4 ポート ) にて実装されます 以下の表に示す通り AXI バスの場合 コマンド ポートを 2 本 Avalon -MM バスの場合 コマンド ポートを 1 ポート使用します このため AXI バスの場合 最大 3 ポート Avalon -MM バスの場合 最大 6 ポート実装できます データ バス幅で考えると 256bit のバスは最大 1 ポート 128bit のバスは最大 2 ポート 64bit もしくは 32bit のバスの場合は最大 4 ポート実装できます Avalon -MM の read only ポートおよび write only ポートを組み合わせることにより 最大 6 ポート実装できることになります Ver.17 / Rev. 1 2017 年 7 月 13/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-1-6. SDRAM コントローラの優先度 HPS に実装されている SDRAM コントローラは 複数ポートからのアクセスを可能にするため アービトレーション ロジックを実装しています 重みづけのできるラウンド ロビン方式で実装されています 下表に示すコマンド ポート単位で重みづけできます 詳細は リファレンス マニュアルマニュアル ( 使用するデバイス ファミリ (Arria V / Cyclone V) 用の Hard Processor System Technical Reference Manual) の SDRAM Controller Subsystem の項をご参照ください Ver.17 / Rev. 1 2017 年 7 月 14/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

他のコンポーネントとの接続 HPS と他のコンポーネントとを接続するには Qsys の GUI 上での設定を行います HPS の各インタフェースは Qsys 上でポートとして見ることができます このポートと接続先のポートを結線することにより 接続できます HPS のインタフェースは AXI インタフェースですが Qsys が自動的に変換するため Avalon -MM インタフェースも AXI インタフェースもどちらも接続可能です Qsys 内のコンポーネントのアドレスも GUI にて設定可能です ここで設定したアドレスを元に ソフトウェアからアクセスを行います Ver.17 / Rev. 1 2017 年 7 月 15/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

インタフェースの初期化 HPS - FPGA 間のインタフェースを使用するためには HPS 内にあるレジスタを設定する必要があります 次の条件を満たす場合には Preloader と呼ばれるインテル提供のブートローダを使用することにより設定されるので ユーザはあまり気にする必要はありません Preloader 実行前に FPGA のコンフィギュレーションが完了している Preloader 実行中に FPGA のコンフィギュレーションを行う 4-3-1. F2H, H2F, LWH2F の初期化 HPS2FPGA (H2F) / LWHPS2FPGA (LWH2F) / FPGA2HPS (F2H) ブリッジを利用するには 2 ステップ必要です 1 ブリッジリセットの解除 0xFFD0_501C に 0x0 をライト (bit0: H2F / bit1: LWH2F / bit2: F2H の各ビットに 0:Reset 解除をセット ) 詳細は 以下を参照ください brgmodrst レジスタの詳細 : Arria V HPS Memory Map Cyclone V HPS Memory Map 2 L3 インタコネクトの設定 0xFF80_0000 に 0x18 をライト (bit3: H2F / bit4: LWH2F の各ビットに 1: Visible to L3 Master をセット ) 詳細は 以下をご参照ください remap レジスタの詳細 : Arria V HPS Memory Map Cyclone V HPS Memory Map 書き込む値は デザイン依存になりますので 各レジスタの詳細をご確認の上設定ください これらの初期化は 後程ご紹介する bridge_enable_handoff コマンドで設定することが可能です Ver.17 / Rev. 1 2017 年 7 月 16/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

4-3-2. F2S の初期化 Preloader により SDRAM の初期化が行われていない場合 Bridge へのアクセスができません また F2S の設定を変更する場合は SDRAM が Idle 状態である必要があります このため U-Boot に実装されている bridge_enable_handoff コマンドを実行することをお勧めします run bridge_enable_handoff このコマンドでは ブリッジのパラメータは Preloader からの情報を使用します run bridge_enable_handoff に関する詳細情報は Preloader/U-Boot のソース ツリーに含まれるドキュメントに記載がありますので こちらをご参照ください ファイル名 :uboot-socfpga/doc/readme.socfpga Ver.17 / Rev. 1 2017 年 7 月 17/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

ソフトウェアからのアクセス ARM Cortex -A9 MPCore プロセッサと FPGA とが デバイス内でバス接続されています ARM から FPGA 内部のペリフェラルは メモリ マップト I/O として見ることができます アドレスの考え方 メモリ マップより HPS-to-FPGA(H2F) インタフェースのベース アドレスは 0xC000_0000 Light Weight HPS-to FPGA (LWH2F) インタフェースのベース アドレスは 0xFF20_0000 であることが分かります ARM から見た FPGA コンポーネントのアドレスは 以下のように計算できます FPGA コンポーネントのアドレス = HPS-FPGA ブリッジのベース アドレス + Qsys 上のオフセット アドレス 例えば Qsys 上で LWH2F の 0x00020040 に接続された LED に対してアクセスするには 以下のアドレスにアクセスします ARM から PIO_LED にアクセスする際のアドレス = 0xFF20_0000(LWH2F base) + 0x0002_0040(Qsys 上のオフセット ) = 0xFF22_0040 Ver.17 / Rev. 1 2017 年 7 月 18/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

#include <stdio.h> #include "socal.h" #define LED_BASE_ADDR (0xFF220040) int main(int argc, char** argv) { int i; printf("hello from Sodia. n"); while(1) { for(i=0; i < 16; i++){ alt_write_word(led_base_addr,i); printf("led [%x] n",i); } } } return 0; Ver.17 / Rev. 1 2017 年 7 月 19/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

システム ヘッダ ファイル 先ほどの例では ソース コード上に LED_PIO のアドレスを定義し アクセスを行いました この方法では ハードウェアの情報が変更される毎に ソース コードの変更が必要になる場合があります インテル FPGA では ハードウェアの情報をソフトウェア担当者に引く次ぐための仕組みを提供しております その仕組みが システム ヘッダ ファイル生成ツールです SoC EDS 17.0 Command Shell 上で <qsys system>.sopcinfo ファイルのあるディレクトリまで移動して sopc-create-header-files コマンドを実行します $ sopc-create-header-files <qsys subsystem>.sopcinfo どのマスタから見るか という観点で いくつかヘッダ ファイルが生成されるので ご利用ください ヘッダ ファイルの例を 以下に示します Ver.17 / Rev. 1 2017 年 7 月 20/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

参考情報 この資料では Arria V SoC FPGA / Cyclone V SoC FPGA における HPS と FPGA 間のアクセス方法を紹介しました この資料を参考に インテル SoC FPGA をお使いいただければと思います インテル SoC FPGA には サンプル デザインも用意されているので 初めて SoC FPGA を使用される場合は開発キット等でサンプル デザインをベースに動かしてみると 理解への近道になると思います サンプル デザインは マクニカオンラインサービスや インテル FPGA のページ および RocketBoards.org で紹介されているので ぜひご覧ください マクニカオンラインサービス SoC 関連情報 マクニカオンラインサービス SoC 関連 FAQ HPS-to-FPGA Bridges Design Example SoC Design Examples RocketBoards.org Ver.17 / Rev. 1 2017 年 7 月 21/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.

改版履歴 Revision 年月概要 1 2017 年 7 月初版 免責およびご利用上の注意 弊社より資料を入手されましたお客様におかれましては 下記の使用上の注意を一読いただいた上でご使用ください 1. 本資料は非売品です 許可無く転売することや無断複製することを禁じます 2. 本資料は予告なく変更することがあります 3. 本資料の作成には万全を期していますが 万一ご不明な点や誤り 記載漏れなどお気づきの点がありましたら 本資料を入手されました下記代理店までご一報いただければ幸いです 株式会社マクニカアルティマカンパニー https://www.alt.macnica.co.jp/ 技術情報サイトアルティマ技術データベース http://www.altima.jp/members/ 株式会社エルセナ http://www.elsena.co.jp 技術情報サイト ETS https://www.elsena.co.jp/elspear/members/index.cfm 4. 本資料で取り扱っている回路 技術 プログラムに関して運用した結果の影響については 責任を負いかねますのであらかじめご了承ください 5. 本資料は製品を利用する際の補助的な資料です 製品をご使用になる際は 各メーカ発行の英語版の資料もあわせてご利用ください Ver.17 / Rev. 1 2017 年 7 月 22/22 ALTIMA Company, MACNICA, Inc. / ELSENA,Inc.