はじめに
インテル® FPGA のコンフィグレーション ROM としてインテル® FPGA シリアル・コンフィグレーション・デバイス(EPCS、EPCQ、EPCQ-L)シリーズが用意されていますが、これらは EOL となり、128Mbits 以下の容量は EPCQ-A、256Mbits 以上の容量は汎用の QSPI Flash を使用する必要があります。
インテル® FPGA シリアル・コンフィグレーション・デバイスにプログラムを行う場合は、インテル® Quartus® Prime 開発ソフトウェア(以後 Quartus® Prime)を使用することができます。
また、256Mbits 以上の汎用の QSPI Flash をプログラムする場合、Micron の場合は、v17.1 以上のインテル® Quartus® Prime で対応しています。
(quartus.ini ファイルに、pgm_allow_mt25q=on を追加する必要があります)
一方で、汎用のプログラミング・ライターを使用する場合は注意が必要です。
EPCS、EPCQ、EPCQ-L、EPCQ-A の場合は、主要なプログラミング・ベンダーは POF ファイルをサポートしていますが、汎用の QSPI ROM へプログラミングを行う場合は、POF ファイルはサポートされていないため、バイナリーファイル形式の RPD ファイルを作成する必要があります。
そして、FPGA のコンフィグレーションを正常に完了させるためには、Big Endian 形式の RPD ファイルを作成する必要があります。
ここでは、インテル® Quartus® Prime Pro の Programming File Generator 機能を使って、Big Endian 形式の RPD ファイルの作成方法について記載します。
今回の説明の対象デバイスは、インテル® Stratix® 10 FPGA, Intel Agilex® 7 FPGA です。
(Programming File Generator 機能は、Cyclone® 10 LP と MAX® 10 にも対応しています)
Big Endian 形式の RPD ファイルの作成方法
インテル® Quartus® Prime の File メニューより、 Programming File Generator... を選択します。
画面が表示されたら、
Device Family : Stratix 10
Configuration mode : Active eria x4
に設定します。
次に、Output Files タブより、
Programmer Object Files (.pof) にチェックを入れ、
その下に更に表示される Raw Programming Data File (.rpd) にチェックを入れます。
更に、Raw Programming Data File (.rpd) をハイライト(クリック)すると、
右側の [Edit...] ボタンがアクティブになるため、[Edit...] ボタンをクリックし、
表示される RPD Properties 画面 の Bit swap: 設定を ON にします。
(この設定により、Big Endian 形式のファイルが生成されるようになります)
次に、Input Files タブを選択し、右側の [Add Bitstream..] ボタンをクリックして、
該当の sof ファイルを選択します。(選択したファイルが画面に表示されます)
次に、Configuration Device タブを選択し、右側の [Add Device...] ボタンをクリックして、
使用する QSPI Flash を選択します。(図は、Micron 社の MT25QU01G を選択した場合の例です)
画面に、選択した QSPI Flash が表示されるため、その QSPI Flash 名をハイライト(クリック)すると、
右側の [Add Partition...] ボタンが有効になるため、このボタンをクリックします。
ここで、再度 sof ファイルを指定します。
Input file : が none になっているので、"Bitstream_1(xxxx.sof)" を選択し、OK ボタンをクリックします。
画面に選択したファイルが表示されます。
これで一通りの設定が完了です。
Generate ボタンをクリックしファイルを生成します。
エラーなく終了すると、 Successfully generated output file(s). ダイアログボックスが開き、ファイルが生成されます。
これで、3rd Party のプログラマーを使用して、汎用の QSPI Flash にコンフィグレーションデータ(.RPD)を書き込むためのファイルを作成することができます。