Sand Pro® アタッチメント · が Toro® Quick Attach System™ (QAS)。アクセサリの交換 が簡単で速く、スタッフの誰もがものの数秒でマスターでき
Atlas-SoC / DE10-Nano ボード版) · この資料の内容は 2020 年 6...
Transcript of Atlas-SoC / DE10-Nano ボード版) · この資料の内容は 2020 年 6...
ALTIMA Company, MACNICA, Inc
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1
2020 年 6 月 Rev.2
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 2/106 ALTIMA Company, MACNICA, Inc.
目次
目次 ........................................................................................................................................................................2
本書をお読みになる前に.......................................................................................................................................4
概要 ....................................................................................................................................................................5
使用環境 ................................................................................................................................................... 6
ボードの設定 ......................................................................................................................................................7
ボードレイアウト ........................................................................................................................................ 7
電源およびケーブルの接続 ..................................................................................................................... 7
SW10 の設定 ............................................................................................................................................ 7
演習 1: ハードウェア演習 ...............................................................................................................................8
ステップ 1 : ハードウェア演習デザイン・プロジェクトのオープン ......................................................... 9
ステップ 2 : HPS コンポーネントの追加 ............................................................................................. 15
ステップ 3 : HPS ペリフェラルの設定 (MAC、UART、I2C、SDIO、USB) ............................................. 21
ステップ 4 : HPS クロックの設定 ......................................................................................................... 26
ステップ 5 : SDRAM の設定 ................................................................................................................ 28
ステップ 6 : HPS のクロックとエクスポート信号の設定 ..................................................................... 34
ステップ 7 : HPS コンポーネントと他のコンポーネントの接続 .......................................................... 36
ステップ 8 : リセットの接続とベースアドレスの割り当て.................................................................... 38
ステップ 9 : Platform Designer システムの確認 ................................................................................ 39
ステップ 10 : Platform Designer システムの生成 ...................................................................... 41
ステップ 11 : ピン・アサインメントの設定と Quartus® Prime プロジェクトのコンパイル ........... 45
ステップ 12 : 出力ファイルの確認 .............................................................................................. 49
演習 2: ソフトウェア演習(1) Preloader の生成 ....................................................................................... 50
ステップ 1 : Embedded Command Shell の起動 ................................................................................ 51
ステップ 2 : bsp-editor (Preloader Generator) の起動 .................................................................... 52
ステップ 3 : プロジェクトの作成と設定 ............................................................................................... 52
ステップ 4 : Preloader のビルド .......................................................................................................... 56
演習 3: ソフトウェア演習(2) ベアメタル・アプリケーション ........................................................................ 57
FPGA デザインのダウンロード ............................................................................................................... 58
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 3/106 ALTIMA Company, MACNICA, Inc.
Hello World サンプル・アプリケーションの実行 .................................................................................... 61
LED Blink サンプル・アプリケーションの実行 ........................................................................................ 70
演習 2 で作成した Preloader による初期化 (オプション演習) ........................................................ 77
システム・ヘッダーファイルによるアドレスの解決 (オプション演習) .................................................. 79
演習 4: Linux アプリケーション演習 (オプション演習) ............................................................................. 82
microSD カードの準備 ............................................................................................................................ 82
Linux 起動とログイン .............................................................................................................................. 84
Linux での IP アドレスとパスワードの設定 .......................................................................................... 86
ホスト PC 側のネットワーク設定 ........................................................................................................... 87
DS-5™ の起動と Linux サンプル・アプリケーションのインポートおよびビルド ................................... 90
リモート・システム・エクスプローラー (RSE) の設定 ............................................................................ 95
Linux アプリケーションの実行・デバッグ ............................................................................................... 99
今後の参考資料について ............................................................................................................................ 105
改版履歴 ........................................................................................................................................................... 106
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 4/106 ALTIMA Company, MACNICA, Inc.
本書をお読みになる前に
この資料の内容は 2020 年 6 月現在のものです。
この資料で紹介しているソフトウェアやハードウェア、操作手順などは、指定バージョンやデバイス等以外でも
共通のものもありますが、一部については共通にならないものもありますので、ご注意ください。
文書中の記号
ℹ Note 補足情報などを記載しています。
Point 重要なポイントを記載しています。
参考 理解を深めるため、参考となる資料やサイトを紹介しています。
⚠ 注記 この資料の中では具体的には触れませんが、必要となる知識や情報を記載しています。
禁止 注意点や、してはいけないことを記載しています。
文中の表記
下線 クリックする事で、資料中の別の章や、外部のサイトにジャンプします。
太字斜体 画面の操作をする際の、メニューやウィンドウなどに表示されている文字を示しています。
xxxxxxx 入力するコマンド文字列を示しています。
網掛け 使用するツールを示しています。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 5/106 ALTIMA Company, MACNICA, Inc.
概要
この演習では、Cyclone® V SoC FPGA 評価キット 「DE0-Nano-SoC Kit / Atlas-SoC Kit」 (以下、Atlas-SoC ボード)、
または 「DE10-Nano Kit」 (以下、DE10-Nano ボード) を使用して、Cyclone® V SoC のハードウェア、ソフトウェア
それぞれの開発方法について解説します。
この演習を実行することにより、インテル® SoC FPGA の開発環境である インテル® Quartus® Prime 開発ソフト
ウェアやシステム構成ツールである Platform Designer (旧: Qsys システム統合ツール)、およびソフトウェア開
発環境である インテル® SoC FPGA エンベデッド開発スイート (以下、SoC EDS) の基本的な操作を学ぶことがで
きます。
演習は、以下の 4 つで構成されています。
演習 1: ハードウェア演習
演習 2: ソフトウェア演習 (1)
演習 3: ソフトウェア演習 (2)
演習 4: Linux アプリケーション演習 (オプション演習)
演習 1 では、Quartus® Prime を使用して Arm® プロセッサーを含むハードウェアを構成し、簡易的な SoC システムを設計します。
演習 2 では、SoC EDS ツールを使用して 28nm 世代のブートローダーである Preloader の生成を行います。
演習 3 では、Arm® Development Studio 5 Intel® SoC FPGA Edition (以下、DS-5™) を利用したソフトウェア開発
およびベアメタル・アプリケーションのデバッグを実施します。
演習 4 では、SD カードイメージを使用し、SoC デバイス上で Linux を動作させ、その上でアプリケーションを DS-5™ を使用して実行・デバッグします。
ℹ Note:
演習 4 は、弊社開催の 「SoC スタートアップ・トライアル・セミナー」 では、時間の都合上実施しないオプ
ション演習となります。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 6/106 ALTIMA Company, MACNICA, Inc.
使用環境
この演習では、以下のソフトウェアを使用します。
インテル® Quartus® Prime Standard Edition v18.1 (Lite Edition でも可能)
また Device データとして Cyclone® V を登録しておく必要があります。 ダウンロードとインストール方法については以下のサイトをご参照ください。
インテル® Quartus® Prime 開発ソフトウェアおよび ModelSim® - Intel® FPGA Edition のダウンロード方法
インテル® Quartus® Prime 開発ソフトウェアおよび ModelSim® - Intel® FPGA Edition のインストール方法
インテル® SoC FPGA エンベデッド開発スイート Standard Edition v18.1 (以下、SoC EDS)
インストール方法に関しては以下のサイトをご参照下さい。 インテル® SoC FPGA エンベデッド・デベロップメント・スイート(SoC EDS)のインストール方法
演習データ ( SoC-Trial_Seminer_Lab_data_atlas_de10nano_v18.1_r1.exe )
演習データの .exe ファイルをダブルクリックすると、デフォルトでは次の場所に展開されます:
C:¥lab¥soc_lab¥cv_soc_lab
本資料では演習データを上記の場所に展開したものとして説明しています。
ホスト PC の OS : Windows® 10 Enterprise
この演習では、 Windows® 10 Enterprise を使用して動作の確認を行っております。
⚠ 注記:
ホスト PC の OS が Windows® 10 の場合、 Preloader の生成でエラーが発生する場合が確認さ
れております。
【エラー内容】
この問題は、SOC EDS ツールを使用してプリローダーを生成するときに発生します。 新しい HPS および BSP 設定ファイルを作成した後、make コマンドが失敗します。 tar zxf /cygdrive/c/intelFPGA/18.1/embedded/host_tools/altera/preloader/uboot-socfpga.tar.gz
tar: Error opening archive: Failed to open '/cygdrive/c/intelFPGA/18.1/embedded/host_tools/altera/preloader/uboot-socfpga.tar.gz'
make: *** [uboot-socfpga/.untar] Error 1
もしご使用の OS が Windows® 10 でエラーが発生する場合は、以下の参考情報サイトで説明さ
れている対策が必要となりますのでご注意ください。
【参考情報サイト】
参考: アルティマ技術サポート 「Windows® 10 における Preloader のビルドエラー」
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 7/106 ALTIMA Company, MACNICA, Inc.
ボードの設定
このセクションでは、演習 1、2、3 を実施するために必要なボードのセットアップに関して解説します。
ボードレイアウト
本演習で使用する Atlas-SoC ボードのレイアウト図を以下に示します。
DE10-Nano ボードも基本的には同じです。
電源およびケーブルの接続
AC アダプターの接続や各種ケーブルは以下の通り接続してください。
電源(AC アダプター)を DC 入力 (J14) に接続します。
Mini USB ケーブルで作業用 PC とオンボード USB-Blaster™ II コネクター (J13) を接続します。
SW10 の設定
SW10 (MSEL 設定スイッチ) が以下の通り設定されていることを確認します。 この設定により、FPGA は FPPx32 モードとなります。
表 2-1. SW10 の設定
ボード・リファレンス 信号名 設定
SW10. 1 MSEL0 ON (“0”)
SW10. 2 MSEL1 OFF (“1”)
SW10. 3 MSEL2 ON (“0”)
SW10. 4 MSEL3 OFF (“1”)
SW10. 5 MSEL4 ON (“0”)
SW10. 6 N/A N/A 図 2-2. ジャンパーの設定
図 2-1. Atlas-SoC ボードレイアウト図
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 8/106 ALTIMA Company, MACNICA, Inc.
演習 1: ハードウェア演習
このセクションでは、Quartus® Prime および Platform Designer を使用し、以下に示す Arm® プロセッサーを
含むハードウェアの設計を行います。
インテル® SoC FPGA では Cyclone® V に限らず、Quartus® Prime に含まれている Platform Designer というツ
ールを使用してシステムを構成します。 この Platform Designer では Hard Processor System (以下、HPS) のブ
ロックをはじめ、FPGA 側に実装することのできるコンポーネント群が用意されており、所望のコンポーネントの
みを実装することでリソースの最適化を図ることができます。また作成したシステムはペリフェラルが対応してい
れば、簡単に他のデバイスに移植できますので、それ自体も設計資産として活用していただくことが可能です。
本演習では演習時間を短縮するため、あらかじめ Platform Designer システム内にいくつかのコンポーネント
とクロックソース・コンポーネントが実装してあります。このため、 HPS ブロック (太枠で囲われた青色のブロッ
ク) の追加と既存コンポーネントの接続を実施します。演習内容は以下の通りです。
演習内容:
HPS コンポーネントを既存の Platform Designer システムへ追加
HPS インターフェイスと他のパラメーターの設定
既存コンポーネントと HPS との接続
Platform Designer システムの生成
図 3-1. 演習 1 で設計する SoC システムのブロック図
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 9/106 ALTIMA Company, MACNICA, Inc.
ステップ 1 : ハードウェア演習デザイン・プロジェクトのオープン
演習を進めるにあたり、本演習マニュアルの各ステップに記載されている全ての説明をよく読み慎重に作業を
進めてください。
本資料では作業ディレクトリーを C:¥lab¥soc_lab フォルダーとして説明をします。作業フォルダーを変更された
場合は設定した環境に合わせて読み直してください。
では、はじめましょう。
____ 1. インストールされている Quartus® Prime 18.1 Standard Edition (Lite Edition でも可能) 開発ソフトウェア内の、
Quartus® Prime を起動します。デフォルトのままであれば下記にあります。
Windows スタート ⇒ Intel FPGA 18.1.0.625 Standard Edition / Lite Edition ⇒ Quartus (Quartus Prime 18.1)
または
Windows のスタートメニューから起動
デスクトップ・アイコンから起動
図 3-2. Quartus® Prime の起動
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 10/106 ALTIMA Company, MACNICA, Inc.
____ 2. Quartus® Prime メニューバーから、File ⇒ Open Project を選択し、C:¥lab¥soc_lab¥cv_soc_lab にある soc_system.qpf を選択します。この qpf ファイルは Quartus® Prime でのプロジェクト・ファイルとなっています。
____ 3. ボードの選択を行います。図を参考に、使用するボードを設定してください。
DE0-Nano-SoC / Atlas-SoC ボードの場合 : atlas を選択 DE10-Nano ボードの場合 : DE10-Nano を選択
この設定を行うことにより、今回使用するボードに合わせ、あらかじめ設定済みのピンの配置や使用するデバイ
スなどの情報を使用することができるようになります。
図 3-4. 使用ボードの選択
図 3-3. Quartus® Prime プロジェクトのオープン
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 11/106 ALTIMA Company, MACNICA, Inc.
____ 4. Quartus® Prime の Tools ⇒ Platform Designer を起動します。 または、ツールバーにある Platform Designer のアイコン をクリックし、Platform Designer を起動します。
____ 5. soc_system.qsys ファイルを開きます。
図 3-5. Platform Designer の起動
図 3-6. Platform Designer ファイルのオープン
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 12/106 ALTIMA Company, MACNICA, Inc.
まずは簡単に Platform Designer の使い方について説明します。
Platform Designer では主に IP Catalog と System Contents、そして Message Window の 3 つの画面がありま
す。
IP Catalog には Platform Designer で使用できるコンポーネントがラインナップされています。この中から実装
したいコンポーネントを System Contents に追加します。そして System Contents 内のコンポーネント同士を接続
し、システムを作成します。
HPS と呼ばれるチップ内のハードマクロ化された部分に関してもソフト・コンポーネントとして IP Catalog 上に
ラインナップされており、このコンポーネントを Platform Designer システムに実装することで SoC デバイスの HPS 側が使用できるようになります。
図 3-7. Platform Designer 画面
IP Catalog
System Contents
Message Window
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 13/106 ALTIMA Company, MACNICA, Inc.
オープンした Platform Designer システムは以下のコンポーネント (白色) が実装済みとなっています。この
システムに対して HPS ブロック (青色) の追加と設定、そして実装済みコンポーネントの接続を行います。
実装済みのコンポーネント (白色):
クロックソース
オンチップ・メモリー
LED / Button 制御用 PIO ペリフェラル
DIP スイッチ PIO
ボタン PIO
LED PIO
演習で追加するコンポーネント (青色):
HPS
Platform Designer では各 IP ごとに設定画面が用意されており、System Contents 内のコンポーネントをダブ
ルクリックすると、そのコンポーネントの設定画面を開くことができます。
図 3-8. 設計する Platform Designer システム
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 14/106 ALTIMA Company, MACNICA, Inc.
____ 6. Clock Source コンポーネント (clk_0) をダブルクリックして、Clock Frequency は開発ボード上の発振器と一致さ
せるため、50 MHz に設定されていることを確認してください。
____ 7. Clock frequency is known がチェックされていることを確認してください。
____ 8. Parameters タブの [閉じる] (× マーク) をクリックし、Parameters タブを閉じます。
Platform Designer の各コンポーネントの設定は Parameters タブを閉じても Platform Designer を閉じない限り
保持されます。
図 3-9. Clock Source の確認
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 15/106 ALTIMA Company, MACNICA, Inc.
ステップ 2 : HPS コンポーネントの追加
HPS は、Dual-core Arm® Cortex™-A9 MPCore™ プロセッサーと様々なペリフェラルから構成されています。また、
以下に示す通り、インテル® SoC FPGA には、大きく分けて HPS 部と FPGA 部の 2 つのブロックから構成されま
す。
このステップでは、Platform Designer システムに HPS ブロックの追加と設定を行います。この Platform Designer システム上の HPS ブロックにおいて、HPS 部の設定を行うことができます。
HPS を設定するために使用する GUI には複数のタブ (FPGA interfaces、Peripheral Pins、HPS Clocks、SDRAM) が用意されており、それぞれについて設定を行います。
次ページより、 Platform Designer システムに HPS ブロックを追加および各種設定を行います。
図 3-10. Platform Designer システムに追加する HPS ブロック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 16/106 ALTIMA Company, MACNICA, Inc.
____ 1. IP Catalog タブの下の 検索ボックスに、 processor と入力します。
____ 2. Arria V/Cyclone V Hard Processor System をダブルクリックします。
このコンポーネントが HPS コンポーネントを設定するブロックです。これから設定する HPS コンポーネントのダ
イアログボックスが表示されます。このウィンドウは初回のみ別ウィンドウとして起動します。 [Finish] ボタンをク
リック後、2 回目以降に再表示させる場合には、System Contents タブから HPS コンポーネントをダブルクリック
してください。
FPGA Interfaces タブではデバイス内部で接続される HPS と FPGA 間の信号の使用有無を設定することができ
ます。設定次第で HPS 側のステータスを FPGA に通知したり、FPGA 側から HPS 側を制御したりすることがで
きます。
図 3-11. IP Catalog の検索ボックス
図 3-12. HPS のペリフェラルと FPGA との内部バス
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 17/106 ALTIMA Company, MACNICA, Inc.
____ 3. FPGA Interfaces タブをクリックして、デフォルトで有効になっている Enable MPU standby and event signals のチ
ェックを外して無効にします。
ℹ Note:
これは、マイクロ・プロセッサーがスタンバイモードであるか、CPU がウェイクアップ可能かを示す内部信号
です。恒久的に有効にするためこの入力信号を論理 High に接続する、もしくはプロセッサーのイベントとし
て接続することもできます。
____ 4. Enable HLGPI Interface のチェックが外れて無効 (デフォルト) になっていることを確認します。
ℹ Note:
これは、SDRAM インターフェイスで未使用のピン (14bit) を入力専用の汎用ピンとして使用する際のオプ
ションです。この演習では、この信号は必要ありません。
図 3-13. FPGA Interface タブの設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 18/106 ALTIMA Company, MACNICA, Inc.
次に HPS と FPGA 間のブリッジの設定を行います。
HPS と FPGA 間にはそれぞれがマスター、スレーブになるポートがあります。ポート数としては HPS から FPGA へ 2 系統、FPGA から HPS へ 1 系統です。 HPS から FPGA への 2 系統ポートはそれぞれ HPS-to-FPGA interface、Lightweight HPS-to-FPGA interface です。 FPGA から HPS への1系統のポートは FPGA-to-HPS です。 すべてのポートについて、アクセスするパスに応じたバス幅の設定やポートの使用有無を設定することができま
す。
Arm® プロセッサー や HPS 側の Master からアクセスする場合は、 「ブリッジのアドレス + FPGA 側のコンポーネントのオフセットアドレス」 のアドレスを指定することでアクセスす
ることができます。ブリッジのアドレスは下記の図のように
HPS-to-FPGA interface が 0xC000_0000
Lightweight HPS-to-FPGA interface が 0xFF20_0000
と決まっています。
参考: HPS - FPGA 間のインターフェイスに関しては、マクニカ・ホームページ技術情報にも資料がございますので、 併せてご参照ください。
SoC はじめてガイド - HPS-FPGA 間のアクセス方法
次ページより設定を行います。
図 3-14. HPS と FPGA の内部バスと Arm から見たアドレスマップ
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 19/106 ALTIMA Company, MACNICA, Inc.
____ 5. AXI Bridges セクションにて、FPGA-to-HPS interface width を Unused、 HPS-to-FPGA interface width を 64-bit、Lightweight HPS-to-FPGA interface width を 32-bit に設定してください。
ℹ Note: FPGA-to-HPS interfaces を有効にすると、FPGA 内のマスターが HPS のペリフェラルにアクセスすることがで
きます。この演習では使用しません。
HPS-to-FPGA interface を有効にすると、HPS がマスターとなり FPGA のペリフェラルにアクセスすることがで
きます。HPS-to-FPGA interfaces は、32 / 64 / 128 bit 幅を選択できますが、この演習では中間の 64bit 幅を
使用します。
____ 6. FPGA interface ページを下にスクロールすると、FPGA-to-HPS SDRAM interface、Resets および DMA Peripheral Request セクションなどさらに多くのオプションがあります。
____ 7. FPGA to HPS SDRAM Interface が表示されるまで FPGA interface ウィンドウをスクロールします。
____ 8. f2h_sdram0 インターフェイスをクリックし、 ボタンをクリックして、インターフェイスを削除します。
こちらは FPGA から HPS 側の SDRAM へダイレクトにアクセスできる広帯域ポートです。インターコネクトと ACP (アクセラレーター・コヒーレンシー・ポート) を介さないので高速にアクセスできます。その反面、データの
コヒーレンシーはユーザーがとる必要があります。
今回は使用しませんのでポートを削除します。
図 3-15. AXI Bridges の設定
図 3-16. FPGA-to-HPS SDRAM インターフェイスの設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 20/106 ALTIMA Company, MACNICA, Inc.
____ 9. Resets セクションまでスクロールダウンします。
____ 10. Resets セクションでは、 HPS リセットのためのすべてのオプションが無効になっていることを確認します。
____ 11. DMA Peripheral Request セクションでは、Enabled 列の下のすべての行が No と表示されていることを確認しま
す。
ℹ Note: DMA peripheral request を有効にすると、HPS 側の DMA コントローラーの Peripheral Request 信号を FPGA ファブリック側へ接続可能になります。 Peripheral Request 信号を利用した DMA 転送を行う場合を除き、通常は No をセットします。
____ 12. Interrupts セクションの、Enable FPGA-to-HPS interrupts オプションが無効になっていることを確認します。 今回は FPGA に実装したコンポーネントから Arm® プロセッサーに対して割り込みは使用しません。
Resets / DMA / Interrupts の設定は以下の通りです (デフォルトから変更はありません):
図 3-17. Resets / DMA / Interrupts の設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 21/106 ALTIMA Company, MACNICA, Inc.
ステップ 3 : HPS ペリフェラルの設定 (MAC、UART、I2C、SDIO、USB)
Peripheral Pins タブは HPS 内部にハードコーデットされている HPS ペリフェラルを有効にするタブです。
HPS のピンの多くは最大 4 つのペリフェラルで共有されています。しかしながら使用できるのは 1 つのペリ
フェラルのみです。そのため、有効にするペリフェラル同士でピンが競合しないように、ピンの割り当てを指定す
る必要があります。ピンの割り当ては最大 3 通りのパラメーター (HPS I/O Set 0 ~ 3) から選択することができま
す。
図 3-18. HPS I/O のピン・マルチプレクサー
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 22/106 ALTIMA Company, MACNICA, Inc.
____ 1. Peripheral Pins タブを選択します。
____ 2. Ethernet Media Access Controller の EMAC1 pin を HPS I/O Set 0 に設定します。
____ 3. Ethernet Media Access Controller の EMAC1 mode を RGMII に設定します。
____ 4. SD/MMC Controller の SDIO pin を HPS I/O Set 0 に設定します。
____ 5. SD/MMC Controller の SDIO mode を 4-bit Data に設定します。
____ 6. USB Controllers の USB1 pin を HPS I/O Set 0 に設定します。
____ 7. USB Controllers の USB1 PHY interface mode を SDR with PHY clock output mode に設定します。
____ 8. SPI Controllers の SPIM1 pin を HPS I/O Set 0 に設定します。
____ 9. SPI Controllers の SPIM1 mode を Single Slave Select に設定します。
____ 10. UART Controllers の UART0 pin を HPS I/O Set 0 に設定します。
____ 11. UART Controllers の UART0 mode を No Flow Control に設定します。
____ 12. I2C Controllers の I2C0 pin を HPS I/O Set 0 に設定します。
____ 13. I2C Controllers の I2C0 mode を I2C に設定します。
____ 14. I2C Controllers の I2C1 pin を HPS I/O Set 0 に設定します。
____ 15. I2C Controllers の I2C1 mode を I2C に設定します。
設定後のパラメーターは次ページを参照してください。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 23/106 ALTIMA Company, MACNICA, Inc.
図 3-19. HPS ペリフェラルの設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 24/106 ALTIMA Company, MACNICA, Inc.
Peripherals Mux Table セクションでは設定したピンの配置を確認することができます。
1 つのピンには 1 つの役割しか与えることはできません。そのため、 HPS の複数ペリフェラルが同じピンを
使用したり、同じピンに HPS ペリフェラルと GPIO の役割を与えたりすることはできません。そのため、この
Peripherals Mux Table セクションで、各ピンの用途を確認してください。
左側の列はピン名を示しており、そのピンが使用されている場合は太字になります。ペリフェラルのピンとして
使用していないピンは HPS の GPIO ピンとして使用可能です。その場合はピンごとの各 GPIO のボタンを押す
ことで有効になります。
ピンに対して競合が起きている場合は Message Window に Error が表示され、またそのピンの欄が赤くハイ
ライトされますので、どのピンが競合を起こしているのかをリアルタイムに知ることができます。
では実際に使用していないピンを GPIO ピンに設定してみましょう。
____ 16. Peripherals Mux Table セクションで GPIO09 をクリックすることにより、GPIO09 を有効にします。
Point: 反応に時間がかかる場合がありますので、何度も押さないように注意してください。
Point: もしクリックできなかった場合は、HPS component ダイアログボックスの右下にある [Finish] を選択、 または Parameters タブの “x” をクリックして HPS component ダイアログボックスを一旦閉じた後、 再度 hps_0 コンポーネントをダブルクリックしてパラメーター・ウィンドウを開き作業を続けてください。
図 3-21. GPIO 設定時にクリックできなかった場合の対応方法
図 3-20. HPS GPIO09 の設定
または
hps_0 コンポーネントをダブルクリック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 25/106 ALTIMA Company, MACNICA, Inc.
____ 17. 同様に GPIO35、 GPIO40、 GPIO53、 GPIO54、 GPIO61 を有効にします。
____ 18. 設定後、下図のように2つのエラー以外に、エラーが出ていないことを確認してください (この2つのエラーは後
で解決します)。
図 3-23. ピン競合エラーが無いときの表示例
例えば、図 3-24 のようなエラーが出ている場合、SPIS0 と UART0 のピンの競合が起きていますので、設定に
誤りがないか確認し、修正を行ってください。
この例では、本来使用しない SPIS0 を使用することとなっているため、エラーになっています。設定を Unused とすると、エラーが消えます。
図 3-24. ピン競合エラーがあるときの表示例
図 3-22. HPS GPIO の設定
SPIS0 と UART0 が競合するというエラーが発生
使用しない SPIS0 を誤って設定したため・・・
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 26/106 ALTIMA Company, MACNICA, Inc.
ステップ 4 : HPS クロックの設定
HPS Clocks タブでは、Clock ソースと周波数が設定されます。これらのパラメーターは、すべて Clock Manager Component で管理されます。
このタブで設定されたパラメーターは、ブートローダー (Preloader ソフトウェア) の生成時に使用されます。 Preloader は 「演習 2: ソフトウェア演習(1) Preloader の生成」 で生成します。
____ 1. HPS Clocks タブを選択します。
____ 2. Input Clocks タブを選択します。
____ 3. EOSC1 / EOSC2 clock frequency が 25MHz に設定されていることを確認します。また、すべての FPGA-to-HPS PLL Reference clocks が無効になっていることを確認します。 EOSC1 は HPS 側の専用ピンで HPS の MPU の
クロックを生成するために必要なクロックソースです。今回使用している Atlas-SoC ボードや DE10-Nano ボード
では、25MHz が入っているためこのように設定しています。
図 3-25. HPS to FPGA Clock の設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 27/106 ALTIMA Company, MACNICA, Inc.
____ 4. Output Clocks タブを選択します。
____ 5. 下図のように設定されていることを確認します (デフォルトから変更はありません)。こちらのタブでは HPS の各
ペリフェラルの動作周波数を設定することができます。設定した値に応じて PLL の設定値が自動計算されます。
図 3-26. HPS to FPGA Clock の設定
DE10-Nano の場合は、800.0 MHz
DE10-Nano の場合は、200.0 MHz
DE10-Nano の場合は、100.0 MHz
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 28/106 ALTIMA Company, MACNICA, Inc.
ステップ 5 : SDRAM の設定
SDRAM タブには、HPS 側の SDRAM コントローラーおよび接続する DDR に関するパラメーターを設定するオ
プションがあります。 SDRAM タブの内部には SDRAM 構成のためさらに 4 つのタブ (PHY Settings、Memory Parameters、Memory Timing、Board Settings) があります。
____ 1. Arria V/Cyclone V Hard Processor System ウィンドウの下部の [Finish] をクリックします。
この操作により、 HPS コンポーネントが Platform Designer システムに追加されます(次の手順で Presets ウィ
ンドウを表示するために必要な操作です)。
図 3-27. Parameters ウィンドウ表示の準備
____ 2. System Contents ウィンドウの HPS コンポーネントをダブルクリックして再度 HPS のオプション設定を Parameters ウィンドウ内に表示させます。 これは、次の手順で Preset ウィンドウを表示するために必要な操作です。
図 3-28. HPS パラメーター設定ウィンドウを再表示
System Contents ウィンドウに追加された hps コンポーネントをダブルクリックすると・・・
再度 HPS Parameters 設定ウィンドウが表示される
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 29/106 ALTIMA Company, MACNICA, Inc.
____ 3. Parameters ウィンドウの SDRAM タブをクリックします。
今回はあらかじめ用意されている Atlas-SoC ボード に載っている SDRAM の Preset を使用します。 Presets ウィンドウが表示されていることを確認します。
ℹ Note:
Preset ウィンドウが表示されていない場合は、Platform Designer の View メニュー ⇒ Presets を選択し表
示させてください。
それでも表示されない場合は、Platform Designer の View メニュー ⇒ Reset to System Layout を選択後、
再度 Preset を選択してみてください。
____ 4. Presets ウィンドウの Atlas_HPS_SDRAM プリセットを選択します。
図 3-29. プリセットの選択
____ 5. をクリックすると、 Atlas_HPS_SDRAM が太字でハイライトされるはずです。この状態になっていれば
設定が正しく反映されています。
____ 6. SDRAM タブが表示されていない場合は、SDRAM タブをクリックします。
____ 7. PHY Settings タブをクリックし、下図の設定となっていることを確認します。
図 3-30. PHY Settings の確認
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 30/106 ALTIMA Company, MACNICA, Inc.
____ 8. Memory Parameters タブをクリックし、下図の設定となっていることを確認します。
図 3-31. Memory Parameters
____ 9. Memory Initialization Options セクションまでスクロールダウンし、 ODT Rtt nominal value に RZQ/6 が設定さ
れていることを確認します。
図 3-32. Memory Initialization Options
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 31/106 ALTIMA Company, MACNICA, Inc.
____ 10. Memory Timing タブをクリックし、下図の通りの設定となっていることを確認します。
図 3-33. Memory Timing
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 32/106 ALTIMA Company, MACNICA, Inc.
____ 11. Board Settings タブをクリックし、Setup and Hold Derating セクションおよび Channel Signal Integrity セクションで、
Use Altera’s default settings が選択されていることを確認します。
図 3-34. Board Settings (1)
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 33/106 ALTIMA Company, MACNICA, Inc.
____ 12. Board Skew セクションまでスクロールダウンし、ボードスキューが下図の通りであることを確認します。
図 3-35. Board Settings (2)
____ 13. Platform Designer の File メニュー ⇒ Save を選択し、ここまでの手順で指定した HPS のパラメーター設定内
容を保存します。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 34/106 ALTIMA Company, MACNICA, Inc.
ステップ 6 : HPS のクロックとエクスポート信号の設定
このステップでは、HPS の H2F ブリッジのクロックと LWH2F ブリッジのクロックの設定を行います。
ここで設定するクロックは、各ブリッジの FPGA 側のクロック (下図の h2f_axi_clk と h2f_lw_axi_clk) です。
HPS 側のクロックは 「3-4. ステップ 4 : HPS クロックの設定」 で設定した l3_main_clk や l4_mp_clk となり、
これから設定するクロックとは異なります。クロックの違いは、ブリッジ内で吸収されます。
また、 HPS のエクスポート信号の設定も行います。このエクスポート信号は Platform Designer 外部との通信に
使用されます。たとえば、 Platform Designer と FPGA の他のロジックとの接続やピンへの配置に使用されます。
図 3-36. HPS と FPGA 間のクロック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 35/106 ALTIMA Company, MACNICA, Inc.
____ 1. System Contents タブに移動します。
____ 2. Export 列に信号名を記述することで、 Platform Designer システムの外部に信号線を出すことができます。先ほ
ど追加した HPS コンポーネントの hps_io ポートが hps_io という信号名でエクスポートされていることを確認し
ます。
____ 3. 同様に HPS コンポーネントの memory ポートが memory という信号名でエクスポートされていることを確認し
ます。こちらは先ほど設定した HPS 側の SDRAM の IO です。
____ 4. HPS コンポーネントの h2f_resest をエクスポートします。 h2f_reset のExport 列をダブルクリックし、” h2f_reset” にリネームした後、 Enter キーを押してエクスポートします。
____ 5. HPS 上の Clock Input インターフェイス h2f_axi_clock の設定を行います。 h2f_axi_clock の横の Clock 列のプ
ルダウンメニューで clk_0 を選択し、 h2f_axi_clock に clk_0 を接続します。
____ 6. 同様に HPS 上の Clock Input インターフェイス h2f_lw_axi_clock の設定を行います。 h2f_lw_axi_clock の横
の Clock 列のプルダウンメニューで clk_0 を選択し、h2f_lw_axi_clock に clk_0 を接続します。
この時点で clk0 が接続されたので、図 3-23 において Message Window に出ていた2つのエラーメッセー
ジが無くなっているはずです。
図 3-37. クロックとエクスポート信号の設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 36/106 ALTIMA Company, MACNICA, Inc.
ステップ 7 : HPS コンポーネントと他のコンポーネントの接続
このステップでは、Platform Designer システムに追加した HPS コンポーネントと Platform Designer システム
に実装済みのコンポーネントを接続します。今回 FPGA 側は clk_0 (50MHz) で動作させるため、あらかじめ clk_0 が各コンポーネントに接続されています。
____ 1. onchip_memory2_0 コンポーネントの Clock Input インターフェイスが、 clk_0 に接続されていることを確認しま
す。
____ 2. led_pio コンポーネントの Clock Input インターフェイスが、 clk_0 に接続されていることを確認します。
____ 3. dipsw_pio コンポーネントの Clock Input インターフェイスが、 clk_0 に接続されていることを確認します。
____ 4. button_pio コンポーネントの Clock Input インターフェイスが、 clk_0 に接続されていることを確認します。
____ 5. onchip_memory2_0 の s1 を選択した後、右クリックをすることにより表示される接続サブメニューから hps_0.h2f_axi_master を選択します。 これにより HPS h2f_axi_master に、onchip_memory2_0 コンポーネント
の s1 インターフェイスが接続されます。この設定で Arm® プロセッサー から FPGA 側の onchip_memory へ
アクセスすることができます。
____ 6. 同様に button_pio の s1 を右クリックし、接続サブメニューから hps_0.h2f_lw_axi_master を選択します。これ
により HPS h2f_lw_axi_master に、 button_pio コンポーネントの s1 インターフェイスが接続されます。
接続先が h2f_lw_axi_master であることに注意してください。続く各 PIO コンポーネントも同様です。
____ 7. 同様に dipsw_pio の s1 を右クリックし、接続サブメニューから hps_0.h2f_lw_axi_master を選択します。これ
により HPS h2f_lw_axi_master に、 dipsw_pio コンポーネントの s1 インターフェイスが接続されます。
____ 8. 同様に led_pio の s1 を右クリックし、接続サブメニューから hps_0.h2f_lw_axi_master を選択します。これに
より HPS h2f_lw_axi_master に、 led_pio コンポーネントの s1 インターフェイスが接続されます。
図 3-38. コンポーネント間の接続
onchip_memory2_0 の s1 を選択し右クリック 表示された接続サブメニューから接続先を指定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 37/106 ALTIMA Company, MACNICA, Inc.
____ 9. HPS コンポーネントを選択し System Contents ウィンドウの左側にある、Platform Designer ツールバーの上下ボ
タンを 使用して、 HPS コンポーネントを clk_0 の下に移動してください。
設定完了後の Platform Designer システムは以下の通りです。
図 3-39. 設定完了後の Platform Designer システム
led_pio へのアクセスを考えてみます。
led_pio の右から 2 つ目の Base 列を見ると 0x0001_0040 と設定されています。これが led_pio の Platform Designer でのオフセットアドレスです。先の ____ 8. で設定したように led_pio にアクセスするマスターは HPS h2f_lw_axi_master です。Lightweight HPS-to-FPGA のブリッジのべースアドレスは 0xFF20_0000 でしたので、こ
の led_pio にアクセスする場合は以下の値になります。
ブリッジのベースアドレス(0xFF20_0000) + Platform Designer のオフセットアドレス (0x0001_0040) = 0xFF21_0040
ほかのコンポーネントも同様に考えることができ、dipsw_pio であれば 0xFF21_0080 です。
次に、onchip_memory へのアクセスを考えてみます。
HPS から FPGA に対してのもうひとつのパスである HPS h2f_axi_master ブリッジのベースアドレスは 0xC000_0000 でした。今回は HPS h2f_axi_master に接続した onchip_memory の Platform Designer のオフセ
ットアドレスが 0x0 なので、この場合はブリッジのベースアドレス (0xC000_0000) がそのまま onchip_memory にアクセスするベースアドレスとなります。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 38/106 ALTIMA Company, MACNICA, Inc.
ステップ 8 : リセットの接続とベースアドレスの割り当て
このステップでは、リセットの一括接続とベースアドレスの自動割り当てを行います。
____ 1. Platform Designer の System メニュー ⇒ Create Global Reset Network を選択し、デザインのすべてのリセット・
インターフェイスを一括で接続します。
____ 2. 重複アドレスが存在しないように、すべてのコンポーネントのためにベースアドレスを自動割り当てします。
System メニュー ⇒ Assign Base Addresses を選択します。
Assign Base Address を行っても、何も起こらなかったのではないでしょうか。
この演習では、事前に各ペリフェラルのベースアドレスを固定してあったため、自動的にアドレスがアサインされ
ませんでした。
図 3-41 に示すように、ベースアドレスの横にある鍵マーク を使用することにより、アドレス設定を固定でき
ます。クリックするごとに固定されるかどうかトグルします。アドレスを固定したい場合は、アドレス設定後に鍵マ
ークで固定してください。Platform Designer の Edit メニュー ⇒ Lock Base Address でも固定できます。
図 3-41. ベースアドレスの固定
図 3-40. リセットの一括接続とベースアドレスの自動割り当て
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 39/106 ALTIMA Company, MACNICA, Inc.
ステップ 9 : Platform Designer システムの確認
____ 1. 設計した Platform Designer システムが以下の 「表 3-1. 設計後の Platform Designer システムの接続状況」 の通りであることを確認します。「図 3-39. 設定完了後の Platform Designer システム」 も参考にしてください。
演習用の Quartus® Prime プロジェクトとの整合性を取るため、エクスポート信号が適切にエクスポートされてい
ること、および正しく命名されていることを確認してください。実際の設計においては任意の信号名を利用いただ
くことが可能です。また、コンポーネントの順序に規定はありません。
表 3-1. 設計後の Platform Designer システムの接続状況
コンポーネント ポート名 接続
clk_0
clk_in clk としてエクスポート
clk_in_reset reset としてエクスポート
clk すべてのコンポーネントに接続
clk_reset hps_0 を除く、すべてのコンポーネントに接続
led_pio external_connection led_pio_external_connection としてエクスポート
dipsw_pio external_connection dipsw_pio_external_connection としてエクスポート
button_pio external_connection button_pio_external_connection としてエクスポート
hps_0
h2f_axi_master onchip_memory2_0.s1 に接続
h2f_lw_axi_master
led_pio.s1 に接続
dipsw_pio.s1 に接続
button_pio.s1 に接続
____ 2. Platform Designer の View メニュー ⇒ Device Family を選択し、 Device Family が Cyclone V になっていること、 Device が Atlas-SoC ボードの場合は 5CSEMA4U23C6、 DE10-Nano ボードの場合は 5CSEBA6U23I7DK にな
っていることを確認します。
図 3-42. Device Family タブ
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 40/106 ALTIMA Company, MACNICA, Inc.
____ 3. Platform Designer の View メニュー ⇒ Interconnect Requirements を選択し、 Limit interconnect pipeline stages to を 1 に設定します。段数を増やすとタイミングに余裕がでますが、同時に FPGA のロジックも大きくなります。 Clock crossing adapter type が Handshake になっていることを確認します。
図 3-43. プロジェクト・パラメーターの設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 41/106 ALTIMA Company, MACNICA, Inc.
ステップ 10 : Platform Designer システムの生成
完成した Platform Designer システムを生成します。
____ 1. System Contents タブの Message ボックスに、残りのエラーがあるかどうかを確認します。エラーがある場合は、
続行する前にそれらを修正する必要があります。 青字で表示される Warning に関しては、今回は無視してください。
図 3-44. Message ウィンドウの表示
____ 2. File メニュー ⇒ Save を選択して、Platform Designer システムを保存します。 Save System Completed がポップ
アップされたら [Close] します。
図 3-45. Platform Designer システムの保存
____ 3. Generate メニュー ⇒ Generate HDL を選択します。
図 3-46. Platform Designer システムの生成
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 42/106 ALTIMA Company, MACNICA, Inc.
____ 4. Generation ウィンドウの設定を確認し、[Generate] を実行します。
図 3-47. Platform Designer システムの Generate 実行画面
____ 5. Platform Designer の Generate メニュー ⇒ Show Instantiation Template ではトップデザインにインスタンスす
る際に使用できるインスタンスの例が表示されます。 今回はインスタンス済みですので、特に作業は発生しませんが実際に使用する場合にはとても有効です。
図 3-48. Platform Designer システムのインスタンス例
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 43/106 ALTIMA Company, MACNICA, Inc.
____ 6. Platform Designer の生成が完了した後に、[Close] ボタンをクリックし、Platform Designer のシステム生成ダイア
ログボックスを閉じて Quartus® Prime に戻ります。
図 3-49. Platform Designer システムの生成完了
____ 7. Quartus® Prime の Project メニュー ⇒ Add/Remove Files in Project を選択します (Settings ダイアログボック
スが Files カテゴリーが選択された状態で表示されます)。
図 3-50. Add/Remove Files in Project を選択
____ 8. Settings ダイアログボックス内の File name フィールドの横にある ボタンを押し、Select File ウィンドウから soc_system/synthesis フォルダーを参照します。
図 3-51. Settings ダイアログボックス
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 44/106 ALTIMA Company, MACNICA, Inc.
____ 9. soc_system.qip ファイルを選択し、[開く (O)] をクリックします。この qip ファイルは Platform Designer で Generate したコンポーネントを紐づけているファイルです。 Generate したファイルをひとつずつ登録するので
はなく、こちらの qip ファイルの登録のみで、 Platform Designer システムをプロジェクトに追加することができま
す。
図 3-52. qip ファイルの指定
____ 10. ファイルが追加されたことを確認します。
図 3-53. qip ファイルの登録
____ 11. Settings ダイアログボックスを [OK] ボタンで閉じます。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 45/106 ALTIMA Company, MACNICA, Inc.
ステップ 11 : ピン・アサインメントの設定と Quartus® Prime プロジェクトのコンパイル
HPS 専用 IO に関しては、ピン配置が決まっているため基本的にピン・アサインメントはツールが自動で行い
ます。例外として、SDRAM インターフェイス は、ツールが生成したスクリプトを設計者が実行する必要がありま
す。スクリプトを実行するためには、まずネットリストを生成し、その後にスクリプトを実行します。
そのため、まずはネットリスト作成のための Analysis & Synthesis を実行後、スクリプトを実行し、再度 FPGA の
コンパイルを行います。
____ 1. Quartus® Prime の Processing メニュー ⇒ Start ⇒ Start Analysis & Synthesis を選択します。
(または、GUI 上の Start Analysis & Synthesis ボタン をクリックします)。
図 3-54. Start Analysis & Synthesis
____ 2. 終了後、エラーがないことを確認します。 があれば、エラーは出ていません。これでネットリストが作成さ
れました。
図 3-55. Start Analysis & Synthesis の正常終了確認
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 46/106 ALTIMA Company, MACNICA, Inc.
____ 3. Quartus® Prime の Tools メニュー ⇒ TCL scripts を選択します。
図 3-56. Tcl Scripts ウィンドウの起動
____ 4. soc_system ⇒ synthesis ⇒ submodules にある hps_sdram_p0_pin_assignments.tcl を選択し、[Run] ボタン
をクリックします (反映されるまで少し時間がかかります)。
この作業により SDRAM の IO Standard の設定や OCT の設定など HPS の SDRAM Controller タブで設定した
内容が反映されます。
図 3-57. Tcl Script の実行
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 47/106 ALTIMA Company, MACNICA, Inc.
____ 5. 完了したら [OK] ボタンをクリックします。
図 3-58. Tcl Script の完了
____ 6. Tcl Scripts ウィンドウを [Close] します。
図 3-59. Tcl Scripts ウィンドウの Close
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 48/106 ALTIMA Company, MACNICA, Inc.
____ 7. Quartus® Prime の Processing メニュー ⇒ Start Compilation を選択 (または、GUI 上の Start Compilation ボ
タン をクリック) し、FPGA のコンパイルを行います。このコンパイルで HW の動作イメージとなる .sof フ
ァイル、そして次のソフトウェア開発に引き渡すハンドオフ・ファイルを作成します。
図 3-60. Start Compilation の実行
____ 8. コンパイルの完了を確認します。
図 3-61. コンパイルの完了
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 49/106 ALTIMA Company, MACNICA, Inc.
ステップ 12 : 出力ファイルの確認
Quartus® Prime および Platform Designer で出力したファイルを確認します。
____ 1. Windows® OS のエクスプローラーを使用して、出力ファイルのフォルダー (下記) に移動します。
C:¥lab¥soc_lab¥cv_soc_lab¥output_files
____ 2. 上記フォルダーに .sof ファイルが出力されていることを確認します。 Atlas-SoC ボードの場合は atlas.sof、 DE10-Nano ボードの場合は DE10-Nano.sof が出力されている事を確認してください。 先ほど説明したように、この ファイルは FPGA の動作イメージファイルです。 このファイルは後の演習で Programmer というツールを使用してボード上の FPGA に書き込みます。
____ 3. Windows® OS のエクスプローラーを使用して、ハードウェア/ソフトウェアのハンドオフ・ディレクトリーに移動し
ます。
C:¥lab¥soc_lab¥cv_soc_lab¥hps_isw_handoff¥soc_system_hps_0
上記フォルダー以下にツールによって生成されたハードウェア・ソフトウェアのハンドオフ・ファイルがあります。
これらのファイルは Platform Designer の HPS コンポーネント画面で設定した各種データや HPS の SDRAM インターフェイスの情報などの各種ファイルが格納されており、Preloader という HPS 側の初期化に使用され
るファイルの生成に利用します。 これらのファイルを用いて後の演習で Preloader の作成を行います。
演習 1 ハードウェア演習のまとめ
このセクションでは、以下の作業を実施し、 Arm® プロセッサーを含むハードウェアを構成しました。
Platform Designer システムへの HPS コンポーネントの追加
HPS コンポーネントの設定
HPS コンポーネントと他のコンポーネントの接続
Platform Designer システムの生成
Quartus® Prime / Platform Designer が出力するファイルの確認
以上で 演習 1 は完了です。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 50/106 ALTIMA Company, MACNICA, Inc.
演習 2: ソフトウェア演習(1) Preloader の生成
このセクションでは、「演習 1: ハードウェア演習」 で作成したハンドオフ・ファイルを使用して Preloader を生
成します。
Preloader は U-boot second program loader (以後、u-boot spl) をベースにインテル® SoC FPGA 向けにカスタ
マイズが加えられたブートローダーです。 Preloader の役割は以下の通りです。
HPS ピン・マルチプレクスの設定
HPS IOCSR の設定
HPS PLL とクロックの設定
HPS ペリフェラルのリセット解除
SDRAM の初期化 (キャリブレーションなど)
SDRAM へ次ステージのブート・イメージの展開
上記の通り、Preloader は HPS ブロックの初期化と、U-boot や OS を SDRAM にロードする機能を提供しま
す。Preloader は Quartus® Prime / Platform Designer の設計時に自動生成されるハンドオフ・ファイルを用いるこ
とで自動生成されます。このため、ユーザー側で初期化用ソフトウェアの構築をすることなく Quartus® Prime / Platform Designer で設定した内容を HPS ブロックに反映することができます。先ほど確認した sof ファイルは FPGA 側の動作イメージでした。それに対して HPS 側の動作イメージがこの Preloader というファイルです。
FPGA 側、HPS 側でそれぞれ異なるファイルを使用して動作イメージを実行するという点にご注意ください。
では Preloader Generator というツールを使用し、 Preloader を作成する手順を行ってみましょう。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 51/106 ALTIMA Company, MACNICA, Inc.
ステップ 1 : Embedded Command Shell の起動
____ 1. SoC EDS に含まれている Embedded Command Shell 上より DS-5™ を起動します。 Embedded Command Shell は、Windows® のスタートメニュー、または SoC EDS のインストール・フォルダー以下
に格納されている起動用スクリプト Embedded_Command_Shell.bat をダブルクリックして起動します。
図 4-1. Embedded Command Shell の起動
または
ダブルクリックする
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 52/106 ALTIMA Company, MACNICA, Inc.
ステップ 2 : bsp-editor (Preloader Generator) の起動
____ 1. Embedded Command Shell から bsp-editor とタイプし、 bsp-editor (Preloader Generator) の GUI を起動
します。
$ bsp-editor
図 4-2. bsp-editor の起動
ステップ 3 : プロジェクトの作成と設定
____ 1. File メニュー ⇒ New HPS BSP を選択し、プロジェクトを新規作成します。
図 4-3. 新規プロジェクトの作成
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 53/106 ALTIMA Company, MACNICA, Inc.
____ 2. Preloader settings directory: にハンドオフ・ファイルを指定します。 を押して、フォルダーを指定します。
指定するフォルダーは、c:¥lab¥soc_lab¥cv_soc_lab¥hps_isw_handoff¥soc_system_hps_0 です。 別のプロジェクト・ディレクトリーを指定している場合は、プロジェクト・ディレクトリー以下の ¥hps_isw_handoff¥soc_system_hps_0 です。
図 4-4. ハンドオフ・ファイルの指定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 54/106 ALTIMA Company, MACNICA, Inc.
____ 3. Preloader のユーザーオプション (Common) を確認します。本演習ではデフォルトのままで結構です。
こちらでは Preloader がどこのソースに格納されているか、また次段のソフトウェアの格納番地など、様々な設
定を GUI で設定することができます。デフォルトでは SDMMC に格納されているものとして設定されており、本
演習ではこの設定で行います。
図 4-5. ユーザーオプションの確認
____ 4. Preloader のユーザーオプション (Advanced ⇒ spl ⇒ boot) を設定します。
「演習 3: ソフトウェア演習(2) ベアメタル・アプリケーション」 では、ベアメタル・アプリケーションを使用するた
め、WATCHDOG_ENABLE のチェックを外します。
(ベアメタル・アプリケーションでは WATCHDOG TIMER を使用できないというわけではありません。デバッグ初期
において、不用意に WATCHDOG TIMER によるリセットを発生させないために、ディセーブルにしておきます)。
図 4-6. Advanced 設定 (1)
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 55/106 ALTIMA Company, MACNICA, Inc.
____ 5. Preloader のユーザーオプション (Advanced ⇒ spl ⇒ debug) を設定します。
「演習 3: ソフトウェア演習(2) ベアメタル・アプリケーション」 では、DS-5™ のセミホスティング機能を使用する
ので、SEMIHOSTING のチェックボックスを ON にします。このセミホスティング機能を使用すると UART などの
コンソール入出力を DS-5™ のコンソールを用いて行うことができます。今回は DS-5™ でのデバッグを行うた
め、チェックを入れますが、スタンドアローン動作 (DS-5™ などを使用せず、製品化時のように自律動作する場
合) の場合にはこちらのチェックを外した Preloader を使用してください。
図 4-7. Advanced 設定 (2)
____ 6. [Generate] ボタンをクリックして、bsp プロジェクトを生成します。
生成完了を確認後、 [Exit] ボタンをクリックし BSP Editor を終了します。
図 4-8. bsp プロジェクトの生成
これにより Software フォルダー下の spl_bsp に設定したデータ用のソースファイルが生成されます。 このソースファイルと一緒に Makefile も自動生成されますので、こちらを使用して Preloader を作成します。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 56/106 ALTIMA Company, MACNICA, Inc.
ステップ 4 : Preloader のビルド
____ 1. Embedded Command Shell のカレント・ディレクトリーを bsp プロジェクト・ディレクトリーへ移動します。
$ cd "C:¥lab¥soc_lab¥cv_soc_lab¥software¥spl_bsp"
図 4-9. bsp プロジェクト・ディレクトリーへの移動
____ 2. make all コマンドを実行し Preloader を生成します。
$ make all
⚠ 注記:
ホスト PC の OS が Windows® 10 の場合、 Preloader の生成でエラーが発生する場合が確認されて
おります。 こちらをご確認ください。
この演習では、前のステップで C:¥lab¥soc_lab¥cv_soc_lab¥software¥spl_bsp ディレクトリーに生成された Makefile をテキストエディターで開き、 93 行目を見つけ以下の 太字 の行を追記します。
ifeq ($(HOSTOS),cygwin) UNTAR := $(SOCEDS_DEST_ROOT)/host_tools/cygwin/bin/tar zxf
図 4-10. Preloader の生成
____ 3. 実行後、エラーがなく終了したことを確認します。 エラーなく終了したことを確認後 ls コマンドにて preloader-mkpimage.bin が生成されていることを確認しま
す。このファイルは、BootROM にて参照される Preloader 用のヘッダ情報を付加したバイナリ・ファイルとなって
おり、SD カードや QSPI フラッシュ・メモリーへ書き込むファイルとなります。
以上で 演習 2 は完了です。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 57/106 ALTIMA Company, MACNICA, Inc.
演習 3: ソフトウェア演習(2) ベアメタル・アプリケーション
このセクションでは、DS-5™ を使用し、SoC EDS に付属の Hello World サンプル・アプリケーションおよび本演
習用に用意された LED Blink サンプル・アプリケーションを実行し、ソフトウェアの開発手法およびデバッグ手法
について解説します。
以下にサンプル・アプリケーションの概要を記述します。
Hello World サンプル・アプリケーションの概要
このサンプル・アプリケーションは、DS-5™ が持つセミホスティング機能を使用して、デバッガ・コンソール
に “Hello Tim” というメッセージを出力します。
この方法ではデバイスのペリフェラルは使用されず、すべての通信は JTAG を通じて行われます。
実行するアプリケーションは、64KB のオンチップ RAM にダウンロードされ実行が開始されます。このた
め、ボード上の SDRAM メモリーの設定を必要としません。
上記の理由から、インテル® SoC FPGA が実装されたすべてのボードで実行することが可能です。
LED Blink サンプル・アプリケーションの概要
このサンプル・アプリケーションでは、「演習 1: ハードウェア演習」 にて作成した FPGA デザインを用い、
Arm® プロセッサーから FPGA ファブリック側に実装された PIO ペリフェラルにアクセスし LED の点灯、
消灯を制御します。
このサンプル・アプリケーションはメイン・アプリケーションを実行する前に、Preloader と呼ばれる HPS ブロックの初期化ソフトウェアを実行し、SDRAM のキャリブレーション、クロックの設定、HPS-FPGA 間の
ブリッジの初期化等を行います。これにより、FPGA ファブリック側のペリフェラルにアクセスすることが可
能な状態でメイン・アプリケーションを実行します。また、メイン・アプリケーションは SDRAM にロードされ
実行を開始します。
⚠ 注記:
この演習を行う前に、Linux® (または他の OS) が、ボード上で実行されていないことを確認してくださ
い。OS は、ベアメタル・アプリケーションのダウンロードおよびデバッグ機能を妨げる可能性があり
ます (microSD カードが挿入されている場合は、外してください)。
このセクションでの説明、画面スナップショットおよびコマンドは、SoC EDS の Windows® バージョン
を使用して作成されたものですが、Linux ホスト PC 上でも同様の方法で実行することができます。
このセクションで示すパスは、デフォルトのインストール・パスを使用したと仮定します。標準以外の
場所が使用されている場合は、それに応じて調整してください。
ベアメタル・アプリケーションを DS-5™ でデバッグする場合、ライセンスが必要となります。ライセン
スは、MAC Address に紐づけられています。 紐づけられているネットワーク・インターフェイスを PC に認識させておいてください。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 58/106 ALTIMA Company, MACNICA, Inc.
FPGA デザインのダウンロード
ソフトウェアの演習を開始する前に、「3. 演習 1: ハードウェア演習」 で作成したハードウェア・デザイン (sof ファイル) を FPGA にダウンロードします。「2. ボードの設定」 のセクションを参照し、ボードのセットアップが完
了していることを再度確認してください。セットアップに問題がなければ、 J14 に AC アダプターを接続してくださ
い。
____ 1. Quartus® Prime の Tools メニュー ⇒ Programmer、または Programmer アイコン をクリックし、
Programmer を起動します。
____ 2. Programmer 内にある [Hardware Setup] ボタンをクリックし、Hardware Setup ウィンドウ内の Currently selected hardware のプルダウンリストから DE-SoC を選択し、ウィンドウを Close します。
図 5-1. Hardware Setup
____ 3. [Auto Detect] ボタンをクリックし、基板上の JTAG チェインに接続されている FPGA を検出します。
____ 4. Select Device ウィンドウから Atlas-SoC ボードの場合は 5CSEMA4 を、DE10-Nano ボードの場合は 5CSEBA6 を選択し、[OK] をクリックします。
図 5-2. デバイスの選択
Atlas-SoC ボードの場合は 5CSEMA4
DE10-Nano ボードの場合は 5CSEBA6
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 59/106 ALTIMA Company, MACNICA, Inc.
____ 5. 以下のダイアログボックスが表示された場合は、[Yes] を選択します。
図 5-3. ダイアログボックス
これにより、 JTAG Chain 上に SOCVHPS と 5CSMA4/5CSEBA6 が表示されます。SOCVHPS は HPS 側、
5CSMA4/5CSEBA6 は FPGA 側が認識されたことをそれぞれ示しています。
____ 6. ダウンロードするファイルを選択します。
Device 欄の 5CSEMA4/5CSEBA6 上で右クリックし、Change File をクリックします。 Select New Programming File ダイアログボックスで、c:¥lab¥soc_lab¥cv_soc_lab¥output_files をブラウズし Atlas-SoC ボードの場合は atlas.sof を、DE10-Nano ボードの場合は DE10-Nano.sof を選択します。
図 5-4. sof ファイルの選択
右クリック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 60/106 ALTIMA Company, MACNICA, Inc.
____ 7. Program/Configure にチェックを入れた後、 [Start] ボタンをクリックしてコンフィグレーションを行います。 右上の Progress パーが 100% になったら FPGA 側に動作イメージが書き込まれた状態となります。
図 5-5. sof のダウンロード
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 61/106 ALTIMA Company, MACNICA, Inc.
Hello World サンプル・アプリケーションの実行
続いて HPS 上でサンプル・アプリケーションを動作させてみましょう。 はじめに Eclipse を立ち上げます。
____ 1. SoC EDS に含まれている Embedded Command Shell 上より DS-5™ を起動します。 Embedded Command Shell は、Windows® のスタートメニュー、または SoC EDS のインストール・フォルダー以下
に格納されている起動用スクリプト Embedded_Command_Shell.bat をダブルクリックして起動します。
図 5-6. Embedded Command Shell の起動
____ 2. Embedded Command Shell 上で eclipse とタイプし、DS-5™ を起動します。このように Embedded Command Shell 上から起動することで、 Intel® SoC FPGA Edition 用の環境変数が設定されます。
$ eclipse
図 5-7. DS-5™ の起動と起動画面
または
ダブルクリックする
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 62/106 ALTIMA Company, MACNICA, Inc.
____ 3. Eclipse ツールを使用するワークスペース・フォルダーを設定します。
この演習では、「3. 演習 1: ハードウェア演習」 の作業フォルダーに workspace を作成します。
以下のパスを指定して [OK] をクリックします (フォルダーが存在しない場合は、自動的に作成されます)。
C:¥lab¥soc_lab¥cv_soc_lab¥workspace
図 5-8. DS-5™ のワークスペースの指定
____ 4. DS-5™ の Welcome 画面が表示されます。これは、ドキュメント、チュートリアルやビデオにアクセスするために
使用することができます。
[閉じる] (×マーク) をクリックします。
図 5-9. DS-5™ の Welcome 画面
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 63/106 ALTIMA Company, MACNICA, Inc.
続いて、Hello World サンプル・アプリケーションをインポートします。
Hello World サンプル・アプリケーションは SoC EDS に Software Example として入っています。
____ 5. 「ファイル」 メニュー ⇒ 「インポート」 を選択します。
図 5-10. 「インポート」 メニュー
____ 6. 「一般」 ⇒ 「既存プロジェクトをワークスペースへ」 を選択し、 [次へ (N)] をクリックします。
図 5-11. 既存プロジェクトのインポート
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 64/106 ALTIMA Company, MACNICA, Inc.
____ 7. アーカイブ・ファイルの選択(A): オプションを選択します。
[参照 (R)] ボタンより、サンプル・プロジェクトを指定します。
サンプル・プロジェクトは SoC EDS に含まれており、デフォルトでは以下のインストール・フォルダーにあります。
C:¥intelFPGA¥18.1¥embedded¥examples¥software¥Altera-SoCFPGA-HelloWorld-Baremetal-GNU.tar.gz
(<SoC EDS インストール・ディレクトリー>¥examples¥software¥Altera-SoCFPGA-HelloWorld-Baremetal-GNU.tar.gz をインポートしています)。
選択後、 [終了 (F)] ボタンをクリックします。
図 5-12. Hello World サンプル・アプリケーションの選択
この作業を実施すると、Eclipse 左側の プロジェクト・エクスプローラーにプロジェクトに含まれる各種ファイルが
表示されます。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 65/106 ALTIMA Company, MACNICA, Inc.
次に Hello World サンプル・アプリケーションをコンパイルします。
____ 8. プロジェクト・エクスプローラー・タブよりプロジェクトを選択しハイライトします。
____ 9. 「プロジェクト」 ⇒ 「プロジェクトのビルド」 を選択します。もしくは、プロジェクト・エクスプローラー上でプロジェ
クトを選択し、右クリック ⇒ 「プロジェクトのビルド」 を実行します。
図 5-13. Hello World プロジェクトのビルド
プロジェクトがコンパイルされ、上記の図に示すように、プロジェクト・エクスプローラーに hello.axf という
DS-5™ 上での実行可能バイナリが出力されます。
コンソール・ウィンドウ上には、実行可能バイナリを生成する際に実行されたコマンドが表示されています。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 66/106 ALTIMA Company, MACNICA, Inc.
最後に、先ほど生成した Hello World サンプル・アプリケーション (hello.axf) を実行します。
____ 10. 「実行」 メニュー ⇒ 「デバッグの構成」 を選択します。
図 5-14. デバッグの構成の選択
____ 11. デバッグ構成ウィンドウにある左側のパネルから、 DS-5 デバッガ ⇒ Altera-SoCFPGA-HelloWorld-Baremetal-Debug を選択します (表示されない場合は、DS-5™ デバッガの横にある (+) をクリックしてください)。 ターゲット接続は、インテル® FPGA ダウンロード・ケーブル (USB-Blaster™) を利用し、 Altera ⇒ Cyclone V SoC (Dual Core) ⇒ Bare Metal Debug ⇒ Debug Cortex-A9_0 となるように設定されていま
す。
____ 12. 接続セクションの右側にある [参照] ボタンを押下し、USB-Blaster™ 接続の選択画面を表示させます。
図 5-15. デバッグの構成
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 67/106 ALTIMA Company, MACNICA, Inc.
____ 13. 接続ブラウザ・ウィンドウで、目的の USB-Blaster™ (この例では DE-SoC on localhost) をハイライトして、[選択]
をクリックします。
図 5-16. デバッグ・ケーブルの選択
____ 14. デバッグ構成ウィンドウの右下にある [デバッグ (D)] ボタンをクリックします。
図 5-17. デバッグの実行
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 68/106 ALTIMA Company, MACNICA, Inc.
____ 15. Eclipse は、デバッグ パースペクティブに切り替えるかどうかを尋ねます。 [はい (Y)] をクリックしてそれを受
け入れてください。
図 5-18. パースペクティブスイッチの確認
Windows Defender ファイアウォールの警告が出た場合は、 [アクセスを許可する (A)] をクリックします。
図 5-19. セキュリティの警告
ℹ Note: ダウンロード時にエラーが発生した場合は、以下の確認を行ってください。
(1) DS-5™ のライセンスが紐づけられているネットワーク・インターフェイス (例えば USB-Ethernet Interface アダプター) が有効になっているか確認してください。
(2) 評価ボードの電源入切および PC の再起動で復旧しないか確認してください。評価ボードの電源を切
った場合は、再度 FPGA のデータをダウンロードすることを忘れないでください。
デバッガは起動スクリプトの指示に従いセミホスティング機能を有効にした後、JTAG を経由してアプリケーショ
ンをボードにダウンロードします。プログラム・カウンタ が main 関数に到達するとブレークされデバッグが開始
出来る状態となります。この段階では、DS-5™ のすべてのデバッグ機能を使用することができます (レジスタや
変数の表示と編集、逆アセンブリ・コードの参照、など)。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 69/106 ALTIMA Company, MACNICA, Inc.
____ 16. 緑色の Continue ボタン をクリック (または F8 キーを押して) アプリケーションを実行します。これによ
り、アプリケーション・コンソール に Hello Tim メッセージを表示します
図 5-20. Hello Tim の表示
____ 17. 接続の切断ボタン をクリックし CPU との接続を切断します。
____ 18. 画面右上のパースペクティブボタン をクリックし編集画面に戻ります。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 70/106 ALTIMA Company, MACNICA, Inc.
LED Blink サンプル・アプリケーションの実行
Hello World サンプル・アプリケーションと同様に事前に用意された LED Blink サンプル・アプリケーションを DS-5™ にインポートします。
____ 1. 「ファイル」 メニュー ⇒ 「インポート」 を選択します。
図 5-21. 「インポート」 メニュー
____ 2. 「一般」 ⇒ 「既存プロジェクトをワークスペースへ」 を選択し、 [次へ (N)] をクリックします。
図 5-22. 既存プロジェクトのインポート
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 71/106 ALTIMA Company, MACNICA, Inc.
____ 3. アーカイブ・ファイルの選択 (A) オプションを選択します。 [参照 (R)] ボタンより、以下のサンプル・プロジェクトを指定します。
C:¥lab¥soc_lab¥cv_soc_lab¥software_example¥Atlas-Blinking-LED-Baremetal-GNU.tar.gz
ℹ Note: これはツールのインストール・ディレクトリーではなく 演習データのディレクトリー以下である ことに注意し
てください。
選択後、 [終了 (F)] ボタンを押します。
図 5-23. LED Blink サンプル・アプリケーションの選択
この作業を実施すると、Eclipse 左側の プロジェクト・エクスプローラーにプロジェクトに含まれる各種ファイル
が表示されます。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 72/106 ALTIMA Company, MACNICA, Inc.
次に、LED Blink サンプル・アプリケーションをコンパイルします。
____ 4. プロジェクト・エクスプローラー タブより Atlas-Blinking-LED-Baremetal-GNU プロジェクトを選択しハイライトします。
____ 5. 「プロジェクト」 メニュー ⇒ 「プロジェクトのビルド」 を選択します。もしくは、プロジェクト・エクスプローラー上で
プロジェクトを選択し、 右クリック ⇒ 「プロジェクトのビルド」 を実行します。
図 5-24. LED Blink サンプル・アプリケーションのビルド
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 73/106 ALTIMA Company, MACNICA, Inc.
最後に、LED Blink サンプル・アプリケーションを実行します。
____ 6. 「実行」 メニュー ⇒ 「デバッグの構成」 を選択します。サンプル・プロジェクトには、Atlas-SoC ボード上で実行
するための事前設定を付属しています。
____ 7. デバッグ構成ウィンドウにある左側のパネルから、 DS-5 デバッガ ⇒ Atlas-Blinking-LED-Baremetal-Debug を選択します (表示されない場合は、DS-5™ デバッガ
の横にある (+) をクリックしてください)。
ターゲット接続は、USB-Blaster™ を利用し、 Altera ⇒ Cyclone V SoC (Dual Core) ⇒ Bare Metal Debug ⇒ Debug Cortex-A9_0 となるように既に設定されて
います。
図 5-25. LED Blink サンプル・アプリケーションのデバッグ構成
____ 8. 以下の確認ポップアップが出た場合は、 [はい] を選択してください。
図 5-26. 確認ポップアップ
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 74/106 ALTIMA Company, MACNICA, Inc.
____ 9. 接続セクションの右側にある [参照] ボタンを押下し、USB-Blaster™ 接続を選択します。
____ 10. 接続ブラウザ・ウィンドウで、目的の USB-Blaster™ (この例では DE-SoC on localhost) をハイライトして、
[選択] をクリックします。
図 5-27. デバッグ・ケーブルの選択
____ 11. デバッグ構成ウィンドウの右下にある [デバッグ (D)] ボタンをクリックします。
図 5-28. LED Blink サンプル・アプリケーションのデバッグ
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 75/106 ALTIMA Company, MACNICA, Inc.
____ 12. Eclipse は、デバッグ パースペクティブに切り替えるかどうかを尋ねます。 [はい (Y)] をクリックしてそれを受け
入れてください。
図 5-29. パースペクティブスイッチの確認
Windows Defender ファイアウォールの警告が出た場合は、 [アクセスを許可する (A)] をクリックします。
図 5-30. セキュリティの警告
ℹ Note:
ダウンロード時にエラーが発生した場合は、以下の確認を行ってください。
(1) DS-5™ のライセンスが紐づけられているネットワーク・インターフェイス (例えば USB-Ethernet Interface アダプター) が有効になっているか確認してください。
(2) 評価ボードの電源入切および PC の再起動で復旧しないか確認してください。評価ボードの電源を切
った場合は、再度 FPGA のデータをダウンロードすることを忘れないでください。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 76/106 ALTIMA Company, MACNICA, Inc.
____ 13. ブレークポイントを設定します。
atlas_main.c の 22 行目にブレークポイントを設定します。行数表示の左横のスペースをダブルクリックすること
で設定可能です。
図 5-31. ブレークポイントの設定
____ 14. 緑色の Continue ボタン をクリックして(または F8 キーを押して)アプリケーションを実行します。これに
より、アプリケーション・コンソール に Hello from Atlas. メッセージ が表示されます。
____ 15. もう 2 回、緑色の Continue ボタン をクリックして (または F8 キーを押して) アプリケーションを実行し
ます。これにより、アプリケーション・コンソール に LED [0] メッセージ が表示され、Atlas-SoC ボード上のユー
ザー LED ( LED [3:0] ) の点灯状態が変化することを確認します。
____ 16. さらに を押すごとに LED の状態が変化することを確認してください。
____ 17. 接続の切断ボタン をクリックし CPU との接続を切断します。
以上で 演習 3 は完了です。 お疲れ様でした。
次のページ以降にオプション演習があります。時間がある方は、こちらも実施してみてください。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 77/106 ALTIMA Company, MACNICA, Inc.
演習 2 で作成した Preloader による初期化 (オプション演習)
演習 3 では、前もって準備されていた Preloader を使用して HPS を初期化していました。
ここでは、「演習 2: ソフトウェア演習(1) Preloader の生成」 で作成した Preloader にて HPS の初期化を実
施します。
____ 1. 演習 2 で Preloader イメージが作成されていることを確認します。
Preloader は、C:¥lab¥soc_lab¥cv_soc_lab¥software¥spl_bsp¥uboot-socfpga¥spl ディレクトリーの下に、”u-boot-spl” という名で作成されているはずです。このファイルが生成されていることを確認してください。
もし、生成されていない場合は、再度 演習 2 を実施してください。
図 5-32. u-boot-spl ファイルの確認
ℹ Note:
ここで確認した ”u-boot-spl” ファイルは、 Arm® Executable and Linkable Format (ELF) ファイルです。 DS-5™ の初期化スクリプトにて読み出され、ユーザー・アプリケーション実行前に実行されています。
詳細は、「SoC はじめてガイド - DS-5 によるベアメタル・アプリケーション・デバッグ」 の 「カスタム・ボード
への対応方法」 をご参照ください。
参考: SoC はじめてガイド - DS-5 によるベアメタル・アプリケーション・デバッグ
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 78/106 ALTIMA Company, MACNICA, Inc.
____ 2. 演習 3 で使用した “u-boot-spl.axf” ファイルをリネームします。
C:¥lab¥soc_lab¥cv_soc_lab¥workspace¥Atlas-Blinking-LED-Baremetal-GNU に “u-boot-spl.axf” ファイルがありま
すので、このファイルを、”_u-boot-spl.axf” 等にリネームします。
____ 3. 演習 2 で作成した “u-boot-spl” をコピーします。
C:¥lab¥soc_lab¥cv_soc_lab¥software¥spl_bsp¥uboot-socfpga¥spl ディレクトリーの下にある、”u-boot-spl” ファイ
ルを、C:¥lab¥soc_lab¥cv_soc_lab¥workspace¥Atlas-Blinking-LED-Baremetal-GNU ディレクトリーにコピーします。
____ 4. コピーした “u-boot-spl” ファイルを “u-boot-spl.axf” という名前にリネームします。
ここまでの作業で、デバッグ時に使用する Preloader が変更されました。
実際に、動作するか確認していきます。
____ 5. LED Blink サンプル・アプリケーションを再度実行します。
73 ページの “____ 6. 「実行」 メニュー ⇒ 「デバッグの構成」 を選択します。サンプル・プロジェクトには、
Atlas-SoC ボード上で実行するための事前設定を付属しています。” から実行してください。
ℹ Note:
演習 2 で作成した Preloader はセミホスティング機能が有効となっているので、先程のデバッグ実行時と
異なり、DS-5™ の アプリケーション・コンソール (App Console) ウィンドウに Preloader のログが表示され
ることが確認できるはずです。
U-Boot SPL 2013.01.01 (Jan 16 2020 - 17:59:35) BOARD : Altera SOCFPGA Cyclone V Board CLOCK: EOSC1 clock 25000 KHz CLOCK: EOSC2 clock 25000 KHz CLOCK: F2S_SDR_REF clock 0 KHz CLOCK: F2S_PER_REF clock 0 KHz CLOCK: MPU clock 925 MHz CLOCK: DDR clock 400 MHz CLOCK: UART clock 100000 KHz CLOCK: MMC clock 50000 KHz CLOCK: QSPI clock 3613 KHz RESET: COLD SDRAM: Initializing MMR registers SDRAM: Calibrating PHY SEQ.C: Preparing to start memory calibration SEQ.C: CALIBRATION PASSED SDRAM: 1024 MiB
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 79/106 ALTIMA Company, MACNICA, Inc.
システム・ヘッダーファイルによるアドレスの解決 (オプション演習)
演習 3 の LED Blink サンプル・アプリケーションでは、ソースコード上で、LED PIO のアドレスを直接指定してい
ました。
図 5-33. 今までのアドレス指定方法
ここでは、 SoC EDS のシステム・ヘッダーファイル生成コマンド (sopc-create-header-files) を使用してシステム・
ヘッダーファイルを生成し使用してみましょう。
____ 1. Embedded Command Shell が起動していない場合は起動します。
____ 2. C:¥lab¥soc_lab¥cv_soc_lab に移動します。
$ cd "C:¥lab¥soc_lab¥cv_soc_lab"
図 5-34. ディレクトリーの移動
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 80/106 ALTIMA Company, MACNICA, Inc.
____ 3. Embedded Command Shell 上で、システム・ヘッダーファイル生成コマンド (sopc-create-header-files) を実行しま
す。
$ sopc-create-header-files soc_system.sopcinfo
図 5-35. システム・ヘッダーファイル生成コマンドの実行
5 つのファイルが生成されたことを確認します。
soc_system.h : Platform Designer 内のすべてのマスターに対するモジュール情報を定義
hps_0.h : HPS の各ブリッジ (H2F, LWH2F) に接続されているモジュール情報を定義
hps_0_bridges.h : HPS の各ブリッジ (F2H, H2F, LWH2F) に接続されているモジュール情報を定義
hps_0_arm_a9_0.h: hps_0_arm_a9_0 向けのモジュール情報を定義。各ブリッジのオフセットも付加されている
hps_0_arm_a9_1.h: hps_0_arm_a9_1 向けのモジュール情報を定義。各ブリッジのオフセットも付加されている
ここでは、 hps_0_arm_a9_0.h を使用します。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 81/106 ALTIMA Company, MACNICA, Inc.
____ 4. システム・ヘッダーファイルを LED Blink サンプル・アプリケーション・プロジェクトにコピーします。
ファイル名: hps_0_arm_a9_0.h
コピー元: C:¥lab¥soc_lab¥cv_soc_lab
コピー先: C:¥lab¥soc_lab¥cv_soc_lab¥workspace¥Atlas-Blinking-LED-Baremetal-GNU
____ 5. LED Blink サンプル・アプリケーションのソースコード atlas_main.c を変更します。
変更時に 「書き込み可能にしますか?」 というポップアップが表示される場合は 「はい」 を選択します。
記述追加:
#include "hps_0_arm_a9_0.h"
記述変更:
<変更前> #define LED_BASE_ADDR (0xFF210040) <変更後> #define LED_BASE_ADDR LED_PIO_BASE
以下の図では、比較しやすいように以前の LED_BASE_ADDR 記述をコメントアウトしてあります。
参考までに、”hps_0_arm_a9_0.h” の該当箇所も図示します。
図 5-36. ソースコードの変更箇所とシステム・ヘッダーファイルの該当箇所
____ 6. 変更した atlas_main.c をセーブして、 LED Blink サンプル・アプリケーションをビルドします。
____ 7. ビルド後、LED Blink サンプル・アプリケーションを実行し、演習 3 と同様の結果となることを確認します。
以上で 演習 3 (オプション) は完了です。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 82/106 ALTIMA Company, MACNICA, Inc.
演習 4: Linux アプリケーション演習 (オプション演習)
この演習では DS-5™ 上から Linux のアプリケーションのひとつとして用意されている Hello World を実行、
デバッグします。
ℹ Note:
この演習では、弊社がお貸し出しする 「SoC FPGA Seminar in a Box」 をご利用のお客様は、同梱されている microSD カードを使用します。 この microSD カードには Linux OS を起動するためのデザインが入っています。
SoC FPGA Seminar in a Box 以外でこの演習を実行されるお客様は、以下の 「6-1. microSD カードの準備」 の
手順により、ご自身で microSD カードをご用意ください。
microSD カードの準備
SoC FPGA Seminar in a Box に同梱されている microSD カードを使用する場合は、このセクションはとばして次
の 「6-2. Linux 起動とログイン」 に進んでください。 ご自身で microSD カードを書き込む場合は以下の手順
で行ってください。
____ 1. 下記のサイトから使用するボード向けの SD カード・イメージファイルをダウンロードします。 ダウンロードしたファイルは任意のフォルダーに解凍しておきます。 解凍したフォルダー内に .img イメージファ
イルがあることを確認します。
Atlas-SoC ボード向け SD カード・イメージファイル
DE10-Nano ボード向け SD カード・イメージファイル
____ 2. Windows をご使用の場合、 SD カード・イメージファイルの書き込みには汎用のソフトウェアを利用します。
ここでは Win32DiskImager を紹介します。 以下よりダウンロード可能です。
Win32DiskImager
____ 3. microSD カード (8GB 以上を推奨) を PC の SD カードスロットに挿入します (または USB カードリーダー/
ライターを使用します)。 microSD カードに割り当てられたドライブ (この例では、ドライブ E) を確認します。
図 6-1. microSD カードに割り当てられたドライブの確認
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 83/106 ALTIMA Company, MACNICA, Inc.
____ 4. あらかじめ PC にインストールしておいた Win32DiskImager を起動します。
① Device として PC に挿入した microSD カードのドライブが選択されていることを確認します。
② 先ほど解凍した SD カード・イメージファイルを選択して開きます。
③ [Write] ボタンをクリックして イメージファイルを書き込みます。
④ 書き込みが完了したら [OK] ボタンをクリックします。
⑤ [Exit] ボタンをクリックして Win32DiskImager を終了します。
図 6-2. Win32DiskImager
____ 5. PC から microSD カードを安全に取り外します。
⚠ 注記:
ホスト PC の OS が Windows® 10 の場合、 SD カードの書き込みの際に、カード内に FAT 以外のパーテ
ィション (ボリューム) が存在している場合は、以下の現象が発生することがあります。
カード挿入時に警告ウィンドウが表示される
SD カードイメージの書き込みに失敗する
これらの現象への対処方法については、以下の参考情報サイトの記事をご参照ください。
参考: アルティマ技術サポート 「Windows® 10 で SD カードイメージの書き込みに失敗する場合の対処法」
②
①
③ ⑤
④
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 84/106 ALTIMA Company, MACNICA, Inc.
Linux 起動とログイン
この演習では、以下のインターフェイスを使用します。
DE10-Nano ボードも基本的には同じです。
図 6-3. 本演習で使用するインターフェイス
____ 1. ボードの 5V DC ジャック (J14) に電源アダプターが接続されている場合は、一旦ケーブルを抜きます。
____ 2. ボードの UART USB コネクター (J4) へ USB Mini-B ケーブルを接続します。ケーブルの反対側のコネクターを PC の USB コネクターへ接続します。
____ 3. ボードの HPS Ethernet コネクター (J10) へ、イーサーネット・ケーブルを接続します。ケーブルの反対側のコネ
クターを PC のイーサーネット・コネクターへ接続します。
____ 4. ボード裏側の microSD カードスロット (J11) に microSD カードを挿入します。
____ 5. 電源アダプターケーブルをボードの 5V DC ジャック (J14) に接続し、ボードに電源を投入します。
(J14) (J4)
(J10)
(J11)
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 85/106 ALTIMA Company, MACNICA, Inc.
____ 6. Windows の 「デバイス マネージャー」 を開きます。 デバイスマネージャー の 「ポート (COM と LPT)」 を展
開してボードの UART が何番の COM ポートに接続されているかを確認します (この例では COM4)。 確認できたら デバイスマネージャー を閉じます。
図 6-4. COM ポートの確認
____ 7. あらかじめインストールしておいたターミナルソフトを起動して、シリアルポートの設定を行います。 先ほど確認
した COM ポートを選択して下図のように設定します (この例では COM4)。
図 6-5. シリアルポートの設定
____ 8. ボードの WARM リセットボタン (KEY3) を押します。ターミナルに起動メッセージが表示されます。
図 6-6. WARM リセットボタン (KEY3)
____ 9. Linux カーネルが起動したら、 root でログインします。
図 6-7. root でログイン
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 86/106 ALTIMA Company, MACNICA, Inc.
Linux での IP アドレスとパスワードの設定
____ 1. ターミナルから ifconfig コマンドで、ボードの IP アドレスを設定します (この例では 192.168.1.30 を設
定しています)。
# ifconfig eth0 192.168.1.30
____ 2. その後 ifconfig コマンドで設定内容を確認します。
# ifconfig eth0
____ 3. passwd コマンドで任意のパスワードを設定します。このパスワードは後でリモート・システムによるデバッグで
使用します。
# passwd
____ 4. 再度パスワードを入力します。
図 6-8. IP アドレスとパスワードの設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 87/106 ALTIMA Company, MACNICA, Inc.
ホスト PC 側のネットワーク設定
DS-5™ での リモート・システム・エクスプローラー(RSE)を使用した Linux アプリの実行・デバッグを行う上で、 ホスト PC 側のネットワーク設定を行います。
____ 1. まずホスト PC 側の IP アドレスを設定します。 「コントロール パネル」 から 「ネットワークと共有センター」 を
クリックし、左側の 「アダプターの設定の変更」 をクリックします。
図 6-9. アダプターの設定の変更
____ 2. 「イーサネット」 をダブルクリックします。
図 6-10. 「イーサネット」 をダブルクリック
検索窓に 「コントロール」 と入力
「コントロール パネル」 をクリック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 88/106 ALTIMA Company, MACNICA, Inc.
____ 3. [プロパティ] ボタンをクリックします。
____ 4. 「インターネット プロトコル バージョン 4 (TCP/IPv4)」 をダブルクリックします。
図 6-11. ローカル エリア接続のプロパティ
____ 5. 「次の IP アドレスを使う (S):」 にチェックを入れて 「IP アドレス」 と 「サブネット マスク」 を設定します (この例
では、 IP アドレスを 192.168.1.31、 サブネット マスクを 255.255.255.0 に設定しています)。
設定後、 [OK] をクリックします。
図 6-12. 「IP アドレス」 と 「サブネット マスク」 の設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 89/106 ALTIMA Company, MACNICA, Inc.
____ 6. ネットワークの接続を確認します。 ボードの Linux からホスト PC に対して ping を実行して接続を確認してみ
ます (この例では、PC の IP アドレスを 192.168.1.31 に設定しています)。
# ping 192.168.1.31
____ 7. Ctrl + C をキー入力して ping を停止します。
図 6-13. PC に対して ping を実行して接続を確認
____ 8. もし ping 応答が無い場合は Windows Defender ファイアウォール設定を確認します。 「パブリックネットワークの設定」 を確認し、Windows Defender ファイアウォールが “有効” に設定されている場
合は “無効” に設定して、再度 ping を実行して接続を確認してください。
図 6-14. Windows ファイアウォール設定
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 90/106 ALTIMA Company, MACNICA, Inc.
DS-5™ の起動と Linux サンプル・アプリケーションのインポートおよびビルド
____ 1. Windows® のスタートメニューまたは、SoC EDS のインストール・フォルダー ( intelFPGA¥<バージョン
>¥embedded) に格納されている起動用スクリプト Embedded_Command_Shell.bat をダブルクリックして、
Embedded Command Shell を起動します。
図 6-15. Embedded Command Shell を起動
____ 2. Embedded Command Shell から eclipse と入力して DS-5™ を起動します。
$ eclipse
図 6-16. Embedded Command Shell から eclipse と入力
または
ダブルクリックする
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 91/106 ALTIMA Company, MACNICA, Inc.
____ 3. Eclipse ツールを使用するワークスペース・フォルダーを設定します。 この演習では、「3. 演習 1: ハードウェア演習」 の作業フォルダーに workspace を作成します。 以下のパスを指定して [OK] をクリックします (フォルダーが存在しない場合は自動的に作成されます)。
C:¥lab¥soc_lab¥cv_soc_lab¥workspace
図 6-17. workspace の作成
____ 4. DS-5™ の Welcome 画面が表示された場合は、[閉じる] (×マーク) をクリックして閉じます。
図 6-18. DS-5™ の Welcome 画面
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 92/106 ALTIMA Company, MACNICA, Inc.
____ 5. DS-5™ のメニューから 「ファイル」 ⇒ 「インポート」 を選択します。
____ 6. 「一般」 ⇒ 「既存プロジェクトをワークスペースへ」 を選択し [次へ (N)] をクリックします。
図 6-19. 「ファイル」 ⇒ 「インポート」
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 93/106 ALTIMA Company, MACNICA, Inc.
____ 7. 「アーカイブ・ファイルの選択 (A):」 オプションを選択し、 [参照 (R)] ボタンよりサンプル・プロジェクトを指定し
ます。 サンプル・プロジェクトは SoC EDS に含まれており、デフォルトでは以下のインストール・フォルダーにあります。
C:¥intelFPGA¥18.1¥embedded¥examples¥software¥Altera-SoCFPGA-HelloWorld-Linux-GNU.tar.gz
(<SoC EDS インストール・ディレクトリー>¥examples¥software¥Altera-SoCFPGA-HelloWorld-Linux-GNU.tar.gz をイン
ポートしています)。
選択後、 [終了 (F)] ボタンをクリックします。
図 6-20. サンプル・プロジェクトのインポート
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 94/106 ALTIMA Company, MACNICA, Inc.
____ 8. Eclipse 左側のプロジェクト・エクスプローラーに Altera-SoCFPGA-HelloWorld-Linux-GNU プロジェクトが追加され、
Altera-SoCFPGA-HelloWorld-Linux-GNU をクリックして展開するとプロジェクトに含まれる各種ファイルが表示され
ます。
図 6-21. 追加された Altera-SoCFPGA-HelloWorld-Linux-GNU プロジェクト
____ 9. Altera-SoCFPGA-HelloWorld-Linux-GNU アプリケーションをビルドします。
プロジェクト・エクスプローラーより Altera-SoCFPGA-HelloWorld-Linux-GNU プロジェクトをハイライトし、 「プロジェクト」 ⇒ 「プロジェクトのビルド」 を選択します。または、プロジェクト・エクスプローラー上でプロジェク
トを選択し、右クリック ⇒ 「プロジェクトのビルド」 を実行します。
プロジェクト・エクスプローラーに新たに生成された hello 実行可能ファイルが出力されます。
図 6-22. プロジェクトのビルド
または
右クリック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 95/106 ALTIMA Company, MACNICA, Inc.
リモート・システム・エクスプローラー (RSE) の設定
DS-5™ では、リモート・システム・エクスプローラー (RSE) を使用する事で、Linux アプリケーション・プログラム
をターゲット上で実行・デバッグすることが可能です。
____ 1. 「ウィンドウ」 メニュー ⇒ 「Perspective」 ⇒ 「パースペクティブを開く」 ⇒ 「その他」 を選択します。
図 6-23. 「パースペクティブを開く」 ⇒ 「その他」 を選択
____ 2. 「リモート・システム・エクスプローラー」 を選択して [OK] をクリックします。
図 6-24. 「リモート・システム・エクスプローラー」 の選択
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 96/106 ALTIMA Company, MACNICA, Inc.
____ 3. リモート・システム・エクスプローラーのビューで ボタンまたは、空白部分を右クリックして 「新規接続」 を
選択します。
図 6-25. 「リモート・システム・エクスプローラー」 での新規接続
____ 4. リモート・システム・タイプの選択のビューで 「SSH のみ」 を選択し [次へ (N)] をクリックします。
図 6-26. 「SSH のみ」 を選択
____ 5. 「ホスト名:」 の欄には設定しておいたボードの IP アドレス (この例では 192.168.1.30) を入力し、「接続名:」 と 「記述/説明:」 には “Atlas SoC” または “DE10 Nano” と入力し 「ホスト名を検証」 にチェックを入れて
[終了 (F)] ボタンをクリックします。
図 6-27. 接続設定
または 空白部分を右クリック
ホスト名: 192.168.1.30
接続名: Atlas SoC または DE10 Nano
記述/説明: Atlas SoC または DE10 Nano
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 97/106 ALTIMA Company, MACNICA, Inc.
____ 6. リモート・システム・エクスプローラーのビューで、「Atlas SoC」 (または 「DE10 Nano」) ⇒ 「Sftp ファイル」 ⇒ 「ルート」 をクリックすると、ユーザー ID とパスワードを入力するウィンドウが表示されます。
____ 7. 「ユーザー ID:」 には “root”、 「Password」 には設定したパスワードを入力して [OK] をクリックします。
図 6-28. ユーザー ID とパスワードを入力
____ 8. 下図の警告が出た場合は [はい] をクリックします。
図 6-29. 警告表示
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 98/106 ALTIMA Company, MACNICA, Inc.
____ 9. 接続が成功すると、リモート・システム・エクスプローラーに現在のボード上のファイル群が表示されます。
図 6-30. リモート・システム・エクスプローラーに現在のボード上のファイル群が表示
____ 10. エラーが出て接続できない場合は、ホスト PC のプロキシ設定の問題が考えられます。この場合は 「コントロー
ル パネル」 ⇒ 「インターネット オプション」 をクリックし、「接続」 タブの 「LAN の設定」 をクリックします。
____ 11. “LAN にプロキシサーバーを使用する” にチェックが入っている場合は、このチェックを外して [OK] をクリックし
ます。
図 6-31. プロキシサーバーの設定
____ 12. 再度 Atlas SoC (または DE10 Nano) のルートへの接続を試みてください。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 99/106 ALTIMA Company, MACNICA, Inc.
Linux アプリケーションの実行・デバッグ
ここからは、デバッガ設定方法と実行・デバッグ方法について確認します。
____ 1. メニューバーの 「C/C++ パースペクティブ」 ボタン をクリックして C/C++ パースペクティブに戻ります。
____ 2. プロジェクト・エクスプローラー・タブより Altera-SoCFPGA-HelloWorld-Linux-GNU を右クリックして 「デバッグ」 ⇒ 「デバッグの構成」 を選択します。
図 6-32. 「デバッグ」 ⇒ 「デバッグの構成」 を選択
____ 3. 「DS-5 デバッガ」 を右クリックし 「新規」 を選択して、新しいデバッグ・コンフィグレーションを作成します。
図 6-33. 新しいデバッグ・コンフィグレーションを作成
右クリック
右クリック
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 100/106 ALTIMA Company, MACNICA, Inc.
____ 4. 「名前」 フィールドに “HelloWorld” と入力します。
____ 5. 「接続」 タブの 「ターゲットの選択」 フィールドにおいて、 Altera ⇒ Cyclone V SoC (Dual Core) ⇒ Linux Application Debug ⇒ Download and debug application を選択し
ます。
____ 6. 「接続」 フィールドでは、生成した RSE 接続 (この例では Atlas SoC) を選択し、その他はデフォルト値を使用し
ます。
図 6-34. デバッグ構成の設定 (1)
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 101/106 ALTIMA Company, MACNICA, Inc.
____ 7. 「ファイル」 タブの 「ダウンロードするホスト上のアプリケーション:」 に Hello World の実行体を設定します。 「ワークスペース」 ボタンを使用して hello を選択し [OK] をクリックします。
図 6-35. デバッグ構成の設定 (2)
____ 8. 「ターゲットダウンロードディレクトリ:」 と 「ターゲット作業ディレクトリ:」 には “/home/root” を設定します。
図 6-36. デバッグ構成の設定 (3)
____ 9. 「デバッガ」 タブで、実行制御フィールドは 「シンボルからデバッグします」 を選択し、シンボル名に “main” と
入力します。
図 6-37. デバッグ構成の設定 (4)
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 102/106 ALTIMA Company, MACNICA, Inc.
____ 10. [デバッグ] ボタン をクリックしてデバッグセッションを開始します。
____ 11. デバッグ パースペクティブへの切り替えのプロンプトが表示されたら 「はい」 を選択します。
図 6-38. パースペクティブ切り替えのプロンプト
____ 12. アプリケーションは、ロードされてから main 関数でブレークします。
図 6-39. main 関数でブレーク
____ 13. ソースコードの左余白をダブルクリックすると、赤い点 で示すようにデバッガがそこにブレークポイントを設定
します。
図 6-40. ブレークポイントの設定
____ 14. [続行] ボタン を押すと、アプリケーションが実行されてブレークポイントで停止します。
図 6-41. ブレークポイントで停止
____ 15. ソースコードの左余白に赤い点 で示されたブレークポイントをダブルクリックすると、ブレークポイント設定が
解除されます。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 103/106 ALTIMA Company, MACNICA, Inc.
____ 16. [ソース行のステップ実行] ボタン (または F5) を押すと、実行コードが 1 ライン進みます。
____ 17. 「レジスタ」 ビューは、ターゲット・レジスタの内容を表示します。また、書き込み可能なレジスタの値を変更でき
ます。
図 6-42. 「レジスタ」 ビュー
____ 18. 「変数」 ビューは、現在有効範囲にある変数の内容を表示します。また、現在有効範囲にある変数の値を変更
できます。
図 6-43. 「変数」 ビュー
____ 19. 「App Console」 (アプリケーション・コンソール) ビューは、 Arm C ライブラリーでのセミホスティングの実装によ
って提供されるコンソール I/O 機能を使用できます。アプリケーション内の print 文の内容が表示されます。
____ 20. [続行] ボタン を押すと、アプリケーションが続行され Hello SoC FPGA! と表示されます。
図 6-44. 「App Console」 (アプリケーション・コンソール) ビュー
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 104/106 ALTIMA Company, MACNICA, Inc.
____ 21. [エントリポイントからデバッグ] ボタン をクリックすると、アプリケーションの先頭 main に戻ってブレーク
します。
____ 22. 再度 [続行] ボタン を押すと、アプリケーションが先頭から実行され、 「App Console」 ビューに Hello SoC FPGA! と表示されます。
____ 23. [ターゲットから切断] ボタン をクリックしてデバッグセッションを終了します。
____ 24. [すべての接続の削除] ボタン をクリックしてデバッグセッションを削除します。
____ 25. メニューバーの [C/C++ パースペクティブ] ボタン をクリックすると C/C++ パースペクティブに戻ります。
おめでとうございます。 これで全ての演習が完了しました。
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 105/106 ALTIMA Company, MACNICA, Inc.
今後の参考資料について
本演習ではインテル® SoC FPGA の開発環境であるインテル® Quartus® Prime 開発ソフトウェアやシステム構成
ツールである Platform Designer システム統合ツール、およびソフトウェア開発環境である SoC EDS の基本的な
操作を学ぶことを中心に紹介しました。今後さらなる知識向上につなげたい場合はさまざまな情報源があります
のでこちらをご利用ください。
また同様の内容として 「SoC はじめてガイド」 をご参照いただくと、さらに理解が深まると思いますのでご利
用ください。
参考:
SoC はじめてガイド
インテル の SoC FPGA
SoC はじめてガイド - HPS-FPGA 間のアクセス方法
SoC はじめてガイド - Preloader Generator の使用方法
SoC はじめてガイド - DS-5 によるベアメタル・アプリケーション・デバッグ
SoC 関連情報
マクニカ・ホームページ技術情報: SoC 関連記事/ドキュメント
マクニカ・ホームページ技術情報: SoC 関連 FAQ
アルティマ技術サポート: SoC 関連記事/ドキュメント
アルティマ技術サポート: SoC 関連 FAQ
デバイスやツールについての説明
Intel FPGA and SoC
SoC デバイスで Linux を使用する上で参考となる各種ドキュメントやプロジェクト
RocketBoards.org
代理店からの各種情報サイト
マクニカ・ホームページ技術情報
アルティマ技術サポート
はじめての インテル® SoC FPGA 演習マニュアル (Atlas-SoC / DE10-Nano ボード版)
Ver.18.1 / Rev. 2 2020 年 6 月 106/106 ALTIMA Company, MACNICA, Inc.
免責およびご利用上の注意
弊社より資料を入手されましたお客様におかれましては、下記の使用上の注意を一読いただいた上でご使用ください。
1. 本資料は非売品です。許可無く転売することや無断複製することを禁じます。
2. 本資料は予告なく変更することがあります。
3. 本資料の作成には万全を期していますが、万一ご不明な点や誤り、記載漏れなどお気づきの点がありましたら、本資料を入手されました下記代理店までご一報いただければ幸いです。
株式会社マクニカ 半導体事業 お問い合わせフォーム
4. 本資料で取り扱っている回路、技術、プログラムに関して運用した結果の影響については、責任を負いかねますのであらかじめご了承ください。
5. 本資料は製品を利用する際の補助的な資料です。製品をご使用になる際は、各メーカ発行の英語版の資料もあわせてご利用ください。
改版履歴
Revision 年月 概要
1 2020 年 1 月 初版
2 2020 年 6 月 (5 ページ)
「インテル® SoC Embedded Development Suite」 を 「インテル® SoC FPGA エンベデッド開発スイート」 に変更
(6 ページ)
・ 「Quartus® Prime Standard Edition v18.1」 を 「インテル® Quartus® Prime Standard Edition v18.1」 に変更
・ 「SoC Embedded Development Suite v18.1」 を 「インテル® SoC FPGA エ
ンベデッド開発スイート Standard Edition v18.1」 に変更