この記事では、SoC FPGA(Arm 内蔵デバイス)を搭載した、インテル純正開発キット向けのリファレンス・デザインの入手&生成方法について紹介します。
はじめに
SoC FPGA 搭載の Altera®(Intel®)純正開発キット向けには、GHRD、GSRD と呼ばれるリファレンス・デザインが提供されてきました。従来、これらのリファレンス環境は SoC FPGA エンベデッド開発スイート(SoC EDS)に付属していましたが、現在では SoC EDS のパッケージ提供が無くなり、Web から個別にダウンロードしていただく形に移行しています。
- GHRD(Golden Hardware Reference Design): Quartus® デザイン例(FPGA H/W)
- GSRD(Golden System Reference Design): Linux ブートイメージ(HPS S/W)
この記事では、GHRD のダウンロードからプロジェクト生成、コンパイルまでの手順を紹介します。
公式手順は以下のリンク先をご確認ください。GSRD と GHRD 両方のビルド方法が載っています。
参考: Golden System Reference Design (GSRD) User Manuals | Documentation | RocketBoards.org: 旧バージョンを含めた GSRD のリンク集です(最新は v20.1 を参照)
以下は、デバイスファミリー別の最新版リンクです。
- Agilex SoC GSRD | Documentation | RocketBoards.org
- Stratix 10 SoC GSRD | Documentation | RocketBoards.org
- Arria 10 SoC GSRD | Documentation | RocketBoards.org
- Cyclone V SoC GSRD | Documentation | RocketBoards.org
1.GHRD の公開リポジトリー
最新の GHRD は altera-opensource/ghrd-socfpga(github.com)に公開されています。
【図 1】に、ページのイメージを掲載しますが、github.org 上で管理されていますので、更新履歴の確認、使い方の説明(READMD.md)の参照、ダウンロード等が Web ブラウザーからでも行えます。
【図 1】 GHRD 公開リポジトリーのイメージ
2.事前準備
ここから、GHRD をダウンロードしてコンパイルする手順を記載しますが、事前に以下の要件を満たした環境を用意してください。
- Quartus® Prime 開発ソフトウェア
- ビルド対象ファミリーに対応したエディション
- ツールバージョンは GHRD の README.md に記載のバージョンを推奨
- Quartus® Prime 開発ソフトウェアへのパスが通ったターミナル環境
- Nios II Command Shell もしくは SoC Embedded Command Shell を使用すれば Quartus® Prime のインストール・ディレクトリーへのパスは設定済み
- make コマンドを使用するため、make がインストールされていること
ヒント:
Nios II Command Shell を使用する場合は、セットアップ時に make のインストールも個別に行う必要があります。以下のコマンドを実行することで make もインストールされます。
sudo apt update
sudo apt upgrade
sudo apt install build-essential
3.デザイン・プロジェクトの入手(ダウンロード)
GHRD デザイン・プロジェクトは公開リポジトリー altera-opensource/ghrd-socfpga(github.com)から git コマンドにて取得可能です。git の使い方に慣れた方は git コマンドにて対応ください。
以下に、Web ブラウザー経由でダウンロードする方法を2通り記載します。いずれかの方法でプロジェクトをダウンロードしてください。ダウンロードが完了したらアーカイブを作業用ディレクトリに展開(解凍)してください。
方法1.リポジトリー Top 画面の Code メニューからダウンロード
【図 2】 リポジトリー Top 画面の Code メニューからダウンロードする場合の例
方法2.リポジトリーのタグ一覧からダウンロード
【図 3】 リポジトリーのタグ一覧からダウンロードする場合の例
4.デザイン生成
以降は、Nios II Command Shell など、Quartus® Prime 開発ソフトウェアへのパスが通ったターミナル環境にて作業します。
4-1.ターミナル起動 ~ GHRD プロジェクトへ移動
ターミナル上で GHRD プロジェクト(ghrd-socpfga)の Top ディレクリーへ移動し内容を確認します。以下の 5 種類のフォルダーが表示されていれば期待通りです。
- cv_soc_devkit_ghrd: Cyclone® V SX SoC Development Kit 用
- a10_soc_devkit_ghrd_std: Arria® 10 SX SoC Development Kit 用(Standard Edition)
- a10_soc_devkit_ghrd_pro: Arria® 10 SX SoC Development Kit 用(Pro Edition)
- s10_soc_devkit_ghrd: Stratix® 10 SX SoC Development Kits 用
- agilex_soc_devkit_ghrd: Agilex™ F-Series Transceiver-SoC Development Kit 用
【図 4】 GHRD プロジェクト(ghrd-socpfga)の Top ディレクリー
4-2.ターゲットとするデバイスファミリーの選択
ターゲットとするデバイスファミリーの名前が付いたサブ・ディレクトリーへ移動します。
【図 5】は、Agilex™ 用(agilex_soc_devkit_ghrd)をターゲットとした場合の実行例となります。
【図 5】 ターゲットとするデバイスファミリーの選択
4-3.オプション項目の確認および選択
デバイスファミリー別ディレクトリーの README.md に、ビルド手順およびオプション項目に関する説明があります。オプションを変更する場合は Makefile を編集するか、もしくは、次の手順で make generate_from_tcl を実行する際に、引数としてオプションの指定を行ってください。
ヒント:
標準の GHRD を生成する場合にはオプション項目の指定は不要です。
【図 6】は、README.md のビルド手順とオプション項目の説明箇所の抜粋です。
【図 6】 README.md のビルド手順とオプション項目の説明
4-4.デザイン生成(make generate_from_tcl)の実行
ターミナル上で make generate_from_tcl を実行します。この操作によりデバイスファミリー別ディレクトリーの下に、Quartus® Prime のデザイン・プロジェクト一式が生成されます。
通常は以下のコマンドにてデザインを生成します:
make generate_from_tcl
オプション項目を指定する場合は、続けてオプション指定を記述します:
make generate_from_tcl [ オプション指定 (例:BOOTS_FIRST="fpga" など) ]
【図 7】は、オプション項目の BOARD_TYPE と BOOTS_FIRST を指定した場合の実行例です。
【図 7】 オプション項目に BOARD_TYPE と BOOTS_FIRST を指定した場合の実行例
5.デザインの確認&コンパイル
デザインのコンパイルも make コマンドにて実行可能です。ターミナル上で make sof もしくは make all を入力することで GHRD のフルコンパイルが実行され、.sof ファイルが生成されます。
make sof もしくは make all
Quartus® Prime 開発ソフトウェア上でデザインを確認したい場合には、ターミナル上で quartus コマンドを実行し、ghrd_*.qpf(Quartus Project File)を開いてください。
【図 8】 Quartus® Prime 開発ソフトウェア上でデザインを確認する場合
まとめ
GHRD の公開方法が github.org に移行したことにより、ツールリリースのタイミング以外でも随時デザインのアップデートが実施できる状態となり、より新しいデザインを早期に入手することが可能となっています。リファレンス・デザインをベースに設計を開始する際には、公開リポジトリーの更新状況をご確認いただくことをお勧めします。
また、標準の GHRD 以外にも、オプション項目で対応されているデザイン例が複数ありますので、デバイスファミリー毎のオプション項目についても併せてご確認ください。