Product Information

製品情報|組込用途のお客様

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ステップとやや複雑です。

  1. JTAGを使い”.bit”のビットストリームをコンフィグ
    ・ビットストリームは JTAG SPI Flash Loader のIPが入ったもの
    ・IPはJTAG-SPIのブリッジ機能、コンフィグしてFPGAでブリッジ機能が動作する状態にする
  2. JTAGからFPGAへ”.hex”を転送、FPGAはSPIインタフェースを操作して書き込み
    ・ビットストリームはユーザーデザインで、フラッシュへ書き込みたいイメージ
  3. 以上で書き込み完了、後は再起動またはリコンフィグでフラッシュから読み込んで起動

書き込み手順(Efinity Programmer)

  1. ボードとJTAGを接続
  2. ボードの電源を入れる
  3. Efinity Programmerを起動
  4. 書き込み設定を行い”Start Program”で書き込み
    Programming Mode を “SPI Active using JTAG Bridge” に設定
  5. 以上で書き込みは終了です

書き込み手順(コマンドライン)

  1. ボードとJTAGを接続
  2. ボードの電源を入れる
  3. コマンドプロンプトを起動して、Efinityの環境変数を読み込み
  4. JTAGで .bit をコンフィグ
  5. 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製品に関するお問い合わせや技術的なサポートはこちらまで

デバイスご購入や開発についてのご相談なども受け付けています。

EFINIX FPGAに関する資料は下記リンクより ダウンロード いただけます。
(※ダウンロード にあたっては Web会員登録 が必要になります)

Efinix FPGAを使用した実践レポートです。

© Copyright サンマックス・テクノロジーズ株式会社|
SanMax Technologies Inc.