0
Xilinx FPGA入門 回路データ・バイナリを転送
ターゲットFPGAボード Basys 3に回路を実装
FPGAへの回路データ書き込み
 
 | 
|---|
| 
図1 FPGAのバイナリ・データはSRAMにロードされるため,電源OFFとともに消失する.解決するためには,外部フラッシュ・メモリを使用してバイナリを保存し,電源投入時に自動的にロードする.画像クリックで動画を見る.または記事を読む.[提供・著]森岡 澄夫 詳細:[VOD/KIT]Xilinx製FPGAで始めるHDL回路設計入門  | 
FPGAのプログラムは,回路データをバイナリ・ファイルに変換し,ターゲットボードに転送することで実行されます.Xilinx製のFPGAを使用する場合,以下の手順でバイナリを書き込みます.
- ボードのJ4にmicro USBケーブルを挿し,PCと接続.
 - J2はUSB側にジャンパを挿し,USB給電を有効にする.
 - 電源スイッチを入れる.
 - VivadoのOpen Hardware Managerを開く.
 - Open targetをクリックし,Auto Connectを選択.
 - FPGAデバイスが認識されたら,Program deviceをクリック.
 - .bitファイルの場所を指定し,Programを実行.
 
この方法でバイナリを転送すれば,FPGA内部のSRAMにデータが書き込まれ,動作を開始します.しかし,電源を切るとこのデータは消えてしまいます.
電源を切ってもバイナリを保持する方法
FPGAのSRAMに書き込まれたバイナリは,電源がオフになると失われます.回避するには,バイナリを外部フラッシュ・メモリに書き込みます.
- .bitファイルに加えて,.binファイルを生成する設定を行う.
 - VivadoのOpen Implemented Designを開き,Generate Bitstreamを右クリック.
 - BitStream Settingsを選択し,-bin_fileオプションを有効にする.
 - 青字のConfigure additional bitstream settingsをクリックし,Enable Bitstream CompressionをTRUEに設定.
 - ConfigurationのSPI ConfigurationでBus widthを4に設定.
 
この設定を適用すると,フラッシュ・メモリに書き込むための.binファイルが生成されます.
フラッシュ・メモリへのバイナリ転送
フラッシュ・メモリにバイナリを保存すれば,電源を入れたときに自動的にFPGAへ転送されます.
- Generate Bitstreamをクリックし,.binファイルを作成.
 - ボードをPCに接続し,Open Target → Add Configuration Memory Deviceを選択.
 - 使用するボードに応じたメモリデバイス(例:Macronix製 mx25l3233f-spi-x1_x2_x4)を選択.
 - Spansion製のメモリを使用する場合は,s25fl032p-spi-x1_x2_x4を選択.
 - Program Configuration Memory Deviceを選択し,.binファイルの場所を指定して書き込む.
 
これで,電源を入れ直してもFPGAが自動的にバイナリをロードし,動作を開始します.
キーワード
FPGAは,内部に論理回路を実装するための再構成可能なデバイスであり,設定情報(バイナリ・データ)は通常SRAMに保存される.
FPGAのSRAMコンフィグレーションの特徴
FPGAはSRAM型のコンフィグレーション・メモリをもち,電源を切ると内容が消えてしまう.そのため,通常のマイクロコントローラのフラッシュ・メモリとは異なり,起動時に外部メモリやPCから設定データをロードする必要がある.
フラッシュ・メモリを使用した永続的なコンフィグレーション
FPGAの設定を保持するためには,外部フラッシュ・メモリにバイナリを書き込み,電源投入時に自動的に読み込むようにする.この方法を採用すると,PCとの接続が不要になり,独立した組み込みシステムとして利用できる.
SPIフラッシュとコンフィグレーション設定
FPGAは,SPIフラッシュ・メモリを使用してコンフィグレーションを保持することができる.バス幅(Bus width)を4に設定することで,より高速なデータ転送が可能になり,起動時間を短縮できます.〈著:ZEPマガジン〉
著者紹介
- NTT,IBM,Sony,NECの各研究所において高性能回路IPやハイレベル・シンセシスの研究,およびプレイステーションなどの製品用SoC開発に従事した後,現職にて民間宇宙ロケットの飛行制御コンピュータの研究開発に従事.FPGAや高位合成を活用している
 
著書
- [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編&実践編】,ZEPエンジニアリング株式会社.
 - [VOD/KIT]Xilinx製FPGAで始めるHDL回路設計入門,ZEPエンジニアリング株式会社.
 - [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編】,ZEPエンジニアリング株式会社.
 - [VOD/KIT]Zynqで初めてのFPGA×Linux I/O搭載カスタムSoC製作,ZEPエンジニアリング株式会社.
 - [VOD/KIT]Tiny FPGA実習!高校生から始めるHDLプログラミング,ZEPエンジニアリング株式会社.
 - [VOD/Pi KIT]カメラ×ラズパイで一緒に!初めての画像処理プログラミング,ZEPエンジニアリング株式会社.
 - スパコンでも破れない!高セキュリティ・マイコン・プログラミング,ZEPエンジニアリング株式会社.
 - [YouTube]宇宙軌道ロケット 成功の方程式
 - [YouTube]宇宙ロケットの電子回路開発
 - FPGA/Zynqで作るカスタム・コンピュータ・チップ,ZEPエンジニアリング株式会社.
 - Lチカ入門!ソフトウェア屋のためのHDL事はじめ,ZEPエンジニアリング株式会社.
 - USBカメラの動画キャプチャ&描画用 Pythonプログラム,ZEPエンジニアリング株式会社.
 - ライブラリ完備!組立式ラズパイI/O増設ボード MCC DAQ HATSファミリ誕生,ZEPエンジニアリング株式会社.
 
参考文献
- [VOD/KIT] 実習キットで一緒に作る!オープンソースCPU RISC-V入門,ZEPエンジニアリング株式会社.
 - [VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門,ZEPエンジニアリング株式会社.