はじめに
Terasic社が販売する「FPGA Cloud Connectivity (FCC) Kit」は、FPGAを搭載したエッジデバイスをクラウドに接続するための、Microsoft Azureの認証を受けた開発キットです。
FCCキットは大きく分けて2つのパーツで構成されています。
- Intel Cyclone V SoC FPGAをベースにした人気のDE10-Nanoキット。
- Wi-FiとBluetoothの無線通信機能に加え、環境光、温度・湿度センサー、加速度計、ジャイロスコープなどの各種センサーを搭載したRFSボード。
この製品は、海外のTerasic社に直接注文するか、日本国内の代理店に注文することができます。
注:Terasic社のウェブサイトでは、標準バージョンよりも安いBluetooth機能を持たないWifiバージョンが提供されています。
FPGA初心者の私は、今回Terasicから購入して使ってみしたので、チュートリアルに沿って環境作りとデモプロジェクトの実践を紹介したいと思います。
FCCキットの内容
- クイックスタートガイド
- DE10-ナノボード
- RFSドーターカード
- 40ピンIDCからボックスヘッダーケーブル
- タイプAからミニBへのUSBケーブルx1
- タイプAからマイクロBへのUSBケーブルx1
- 電源DCアダプター(5V)
- microSDカード(装着済み)
- 4つのシリコンフットスタンド
DE-10 Nanoキット
まずはコアパーツである「DE10-Nano」キットをご紹介します。
以下の手順は、オンラインガイドに沿って実行されます。
詳細はガイドをご参照ください。
組み立てとセットアップ
届いたパッケージには、MicroSDカードがカードソケット(基板の下側)に挿入され、6ピンのDIPスイッチが正しく設定されています。
電源ケーブル(DC 5V)を差し込んでボードの電源を入れるだけです。
ボードは、LEDの点滅で示されるブートシーケンスで起動します。
PCとの接続
本機をPCに接続するには、2つの方法があります。
- Ethernet over USB
- シリアル接続
この記事では、USB OTGポートにMicro-B USBケーブルを使用して、Ethernet over USBを選択します。
USBケーブルをPC(ここではWindows 10 20H2)に接続すると、ファイルエクスプローラーに新しいデバイス「DE10-Nano」が表示され、その中にSDカードの内容が含まれていることが確認できます。
先に進む前に、Ethernet over USBを有効にするためのドライバーを手動でインストールする必要があります。
- 「デバイスマネージャー」を開き、未知のデバイス 「RNDIS」が確認する。
- デバイスを右クリックして 「Update driver」を選択する。
- 「Browser my computer for drivers」を選択し、"Next」をクリックする。
- ドライバーファイルが入っている「DE10-Nano\Drivers」フォルダを選択し、「次へ」をクリックする。
しかし、ドライバーのインストール時にエラーが出てしまう。。。
ドライバーインストールのトラブルシューティング
インターネットで少し調べてみたところ(リンク)、原因はWindows10にデフォルトで搭載されている「ドライバー署名の強制」によるものでした。
ドライバをインストールするためには、一時的に「ドライバ署名の強制を無効にする」を設定する必要があります。
- 「設定」→「更新とセキュリティ」→「回復」をクリックする。
- 「PCの起動をカスタマイズする」→「今すぐ再起動」をクリックする。
- 「トラブルシューティング」→「詳細オプション」→「スタートアップの設定」を選択する。
- キーボードの「7」または「F7」を押して、「ドライバ署名の強制を無効にする」を設定する。
- PCを再起動した後、再度ドライバーをインストールする(Windowsのセキュリティ警告がポップアップしてもインストールを続行する)。
- ドライバーが正常にインストールされます。
注)「ドライバ署名の強制を無効にする」の設定は、次回のシステム再起動時に解除されます。
これで、PCのウェブブラウザにIPアドレスhttp://192.168.7.1 を入力して、ボードがホストするウェブサイトにアクセスすることができます。いくつかの学習教材や楽しいデモが提供されています。
さらに、これらの3つの方法でボードのデスクトップに接続し、より多くのデモアプリケーションを試すことができます。
- Virtual Network Computing (VNC)
- Secure Shell (SSH)
- HDMI
- USB OTGポート経由でのマウス/キーボードの接続
チュートリアルのプロジェクト
オンラインガイドには、初心者の方が最初の印象をつかみやすいように、いくつかのチュートリアルのプロジェクトが用意されています。
- Explore GPIO Example Application
- Explore FFT Example Application
- On-board Accelerometer Tutorial
- Debug 'Hello World'
- My First FPGA
ここでは、FPGA上で点滅するLEDプログラムを作成する方法を示すFPGAデモを例に挙げています。
詳細はオンラインガイドを参照してください。
ソフトウェア
Intel® Quartus® Prime Software Suite Lite Edition
インテル Cyclone V デバイスには、FPGAのデザインソフトウェアを無料でご利用いただけます。最新バージョン(21.1)のLite版を選択してダウンロードしてください。
インストールファイルは大きいので、すべてのファイルをダウンロードするのではなく、必要なファイルだけをダウンロードすることをお勧めします。
- Quartus Prime (Nios II EDSを含む) - 1.6GB
- Cyclone Vデバイスサポート - 1.3GB
手順
詳細な手順は、チュートリアルに記載せれています。
- インテル Quartus ソフトウェアでプロジェクトの作成
- HDLファイルの作成
- Verilogモジュールの作成
- PINアサインの選択
- SDCファイルの作成
- Verilogコードのコンパイル
- FPGAのプログラム
- 点滅するLEDを確認する
その結果、右端のLED-0が、コードによって設計された1秒間に3回点滅していることがわかります。
もちろん、Verilogコードを修正して、ボード上のより多くのLEDを制御することで、より多くの実験を行うことができます。
RFSボード
さて、いよいよRFSのボードを見てみましょう。
RFSボードは、GPIOインターフェースを介してDE10-Nanoボードに接続されています。
FCCキットのCD-ROMには、RFSのマニュアルといくつかのデモプログラムが収録されています(ダウンロード)。
RFSボードにはIoTデバイスとして多くのセンサーが搭載されているので、Microsoft Azureサーバーに接続することで、取得したIoTデータを活用するプロジェクトを開発することができます。
DE10-Nanoをベースにした開発環境の構築方法を、4つのステップで紹介する日本語のチュートリアルを掲載しています。
- FPGA クラウド・コネクティビティー・キット・チュートリアル・モジュール 1 Azure* IoT Edge ランタイムをインストールする
- FPGA クラウド・コネクティビティー・キット・チュートリアル・モジュール 2 Visual Studio Code を使用して Azure* コンテナーベースのアプリケーションを構築する
- FPGA クラウド・コネクティビティー・キット・チュートリアル・モジュール 3 センサーデータを収集し、Azure* Container Registry (ACR) に保存する IoT Edge モジュールを構築する
- FPGA クラウド・コネクティビティー・キット・チュートリアル・モジュール 4 コンテナ・アプリケーションを使用して Azure* Cloud から FPGA をリコンフィグレーションする
それを使ってAzureに接続したいですが、そこまではできていません。次回続きを書こうと思います。
ご興味のある方はぜひお試しください。
Notices & Disclaimers
Intel technologies may require enabled hardware, software or service activation.
No product or component can be absolutely secure.
Your costs and results may vary.
© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.
The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.