LoginSignup
2
3

More than 3 years have passed since last update.

MicroBlazeのSDKプロジェクトをSPI Flashに保存する方法

Last updated at Posted at 2019-06-24

概要

BitstreamとMicroBlazeのソフトウェアを外部SPI Flashに書き込んで、
FPGAの電源を入れれば自動的にコンフィギュレーションされるように設定します。
SDKプロジェクトをSPIに書き込む方法はいくつかありますが、恐らくこの方法が一番簡単です。

環境

  • Vivado 2018.3
  • 使用するボード: Digilent Cmod A7-35T (なんでもいいです)

1. Vivadoプロジェクトの用意

SPI Flashに書き込みたいVivadoプロジェクトを用意。
今回は、以前GPIO割り込みをMicroBlazeで実装したプロジェクトを使って説明をしていきます。(SPIとかIICコアが追加されていますが、無視して大丈夫です。)
予め一度Generate Bitstreamを実行しておく。
001.png

2. SPI Flashを使う設定

Open Implementation Designをクリックし、IMPLEMENTED DESIGN画面を開く
(これを開かないと一部の設定画面が開けない)
002.png

PROJECT MANAGERのSettingsをクリック
003.png

-bin_fileにチェックを入れて、Flashに書き込むためのbinファイルを生成する設定に変更
Configure additional bitstream settings.をクリック
004.png

GeneralタブのEnable Bitstream CompressionTRUEに変更し、生成されるBitstreamを圧縮
005.png

ConfigurationタブのConfiguration Rate (MHz)33に設定 (速すぎる場合は値を小さくしてもよい)
006.png

Configuration ModesタブでSPI Flashとの接続方法を選択
今回使用するボードではMaster SPIx4で接続されている。
ボードに合わせた設定にする。
007.png

OKを押して設定を保存

3. 書き込むSDKプロジェクトの選択

GPIO割り込みプロジェクトではSDKプロジェクトも作成し、
<Vivadoプロジェクトルート>/<Vivadoプロジェクト名>.sdk/<SDKプロジェクト名>/Debug/<SDKプロジェクト名>.elf
にelfファイルが生成されている。

VivadoのTools -> Assosiate ELF Files...を選択し、Design Sources側のmicroblaze_0に、Add Filesで実行したいSDKプロジェクトのelfファイルを追加
008.png
0085.png
009.png

Generate Bitstreamを実行
このとき、圧縮されたBitstreamとelfファイルがひとつにまとめられたbinファイルが
<Vivadoプロジェクトルート>/<Vivadoプロジェクト名>.runs/impl_1/<トップモジュール名>.bin
に生成されている。

4. Flashの書き込み

FPGAボードをPCに接続し、Open Hardware ManageでFPGAボードと接続
FPGAデバイス名で右クリックし、Add Configuration Memory Device...をクリック
010.png
FPGAボードに搭載されているSPI Flashの型番を検索し、OKをクリック
今回使用するボードでは「n25q32-3.3v-spi-x1_x2_x4」が搭載されていた。
011.png

SPI Flash名で右クリックし、Program Configuration Memory Deviceをクリック
012.png

Configuration fileに生成したbinファイルを選択しOKで書き込む
書き込みが完了したらFPGAボードを切断

5. 実行テスト

FPGAボードとUSBでつなぎ、GPIO Interruptのテストプログラムが動作していることが確認できた
image.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3