EFINIX
FPGAプログラムの書き込み

はじめに
フラッシュへビットストリームを書き込む方法がいくつかあります。
ここでは特にEfinixの推奨である "SPI Active using JTAG Bridge" について紹介したいと思います。
- SPI Active
- SPIインタフェースを利用してボード上のSPIフラッシュへ直接書き込みます
- .hexのビットストリームを利用します
- 書き込みにはプログラミングケーブルが必要です
- SPI Active using JTAG Bridge
- JTAGインタフェースを利用してボード上のSPIフラッシュへFPGAを介して書き込みます
- .hex と .bit のビットストリームを利用します
- 書き込みにはJTAGに加え、FPGAはJTAGでSPIを操作するIPコアを利用する必要があります
SPI Active using JTAG Bridge
このモードはJTAGがFPGAを介してコマンドを送信、SPIフラッシュへ書き込みを行います。
"SPI Active"に比べると、SPIヘッダを使わないためボードのスペースを省略できるメリットがありますが、書き込み手順が2ステップとやや複雑です。
- JTAGを使い".bit"のビットストリームをコンフィグ
- ビットストリームは JTAG SPI Flash Loader のIPが入ったもの
- IPはJTAG-SPIのブリッジ機能、コンフィグしてFPGAでブリッジ機能が動作する状態にする
- JTAGからFPGAへ".hex"を転送、FPGAはSPIインタフェースを操作して書き込み
- ビットストリームはユーザーデザインで、フラッシュへ書き込みたいイメージ
- 以上で書き込み完了、後は再起動またはリコンフィグでフラッシュから読み込んで起動
書き込み手順(Efinity Programmer)
- ボードとJTAGを接続
- ボードの電源を入れる
- Efinity Programmerを起動
- 書き込み設定を行い"Start Program"で書き込み
- Programming Mode を "SPI Active using JTAG Bridge" に設定
- 以上で書き込みは終了です
書き込み手順(コマンドライン)
- ボードとJTAGを接続
- ボードの電源を入れる
- コマンドプロンプトを起動して、Efinityの環境変数を読み込み
- JTAGで
.bit
をコンフィグ - JTAGからSPIフラッシュへ
.hex
を書き込み
set MY_BITSTREAM="C:\Efinity\2022.1\project\tutorial\T20EvalBoard\outflow\counter.hex"
set JTAG_BITSTREAM="C:\Efinity\2022.2\project\work\t20flashloader\outflow\t20flashloader.bit"
cd C:\Efinity\2022.2
.\bin\setup.bat
%EFINITY_HOME%\bin\python3 %EFINITY_HOME%\pgm\bin\efx_pgm\ftdi_program.py %JTAG_BITSTREAM% -m jtag
%EFINITY_HOME%\bin\python3 %EFINITY_HOME%\pgm\bin\efx_pgm\ftdi_program.py %MY_BITSTREAM% -m jtag_bridge
書き込み速度の目安
T20BGA256開発キットで、各モードの書き込み速度を確認しました。
モード | 合計時間(s) |
---|---|
SPI Active | 54 |
SPI Active (quicker erase/write) | 7 |
JTAG Bridge (JTAG Clock 6MHz) | 38 |
JTAG Bridge (JTAG Clock 15Mhz) | 35 |
お問い合わせ
Efinix製品に関するお問い合わせはこちらまで
https://www.explorer-inc.co.jp/contact/efinixcontact.html
デバイスのご購入や開発についてのご相談なども受け付けています。
ご質問・ご相談などは
こちらから
お問い合わせください。