開発環境はVivadoにほぼ移行したのに,未だにFlashへの書き込みはiMPACT(LabToolだけインストール)を使っているのが嫌になったので,すべてVivado上から行うための方法について調べた(覚え書).
参考としたのは,UG908 Vivado Design Suite ユーザーガイド プログラムおよびデバッグ *1.
Bitstream Settingsで
-bin_file
をONにする(書き込みできるのはbin/mcsでbitはできない)Generate Bitstreramを行う
Open Targetして,Add Configureate Memory Deviceを選択(Program Deviceをクリックしないと選択できない.書き込む必要はない.もしくはターゲットデバイスで右クリックする)
Flashを選択する.今回のターゲットはBASYS3なのでSpansionのS25FL32を選択.
Configuration fileにbinファイルを選択して,OK
書き込みが正常に終了すれば完了
Flashが追加されている
ボード上のMODEがQSPIになっていることを確認して,PROGボタンを押す. もしくは,FPGAデバイスを右クリックしてBoot frome Configuration Deviceをクリック.
SDKを使った場合のプログラム込みのbin/mcsファイルの生成(download.bit
を変換)
あらかじめSDKで,Program FPGA(ELF file to Initialize in Block RAMはbootloopから実行したいelfファイルに変更しておく)を行いソフトウェア込みのbitファイルを生成して,動作を確認しておく.
Tclコンソールで下記コマンドを実行(SpansionのS25FL32の場合の設定.-interface
と-size
はFlashに合わせる).
write_cfgmem -format mcs -interface SPIx1 -size 4 -loadbit "up 0 project_1.sdk/design_1_wrapper_hw_platform_0/download.bit" -file download.mcs
-size
は,MbitではなくMByteなので8で割った値を指定する.
Creating config memory files... Creating bitstream load up from address 0x00000000 Loading bitfile project_1.sdk/design_1_wrapper_hw_platform_0/download.bit Writing file ./download.mcs =================================== Configuration Memory information =================================== Format MCS Size 4M Start Address 0x00000000 End Address 0x003FFFFF Addr1 Addr2 Date File(s) 00000000 0021728B Apr 26 14:57:41 2015 project_1.sdk/design_1_wrapper_hw_platform_0/download.bit
あとは,できたmcsファイルを先ほどと同じようにVivado上で書き込んでFlashから起動すればMicroblazeのコードが実行される.Bitstream Settingsで-bin_file
を指定しないで,このコマンドでbitファイルを変換して指定することもできる.