このコンテンツのポイント!
- Altera社の Quad-Serial コンフィギュレーション・デバイス(EPCQ デバイス)がサポートする ×1 モードで、EPCS デバイスしかサポートしていない FPGA が正常にコンフィギュレーションされるか?を検証
- EPCS デバイスと EPCQ デバイスの比較やプログラミング・ファイルの生成方法を解説
1. はじめに
FPGA は電源投入後、外部記憶メモリより回路情報を転送する "コンフィギュレーション" と呼ばれている動作が行われます。
アルテラでは、以前よりシリアル・コンフィギュレーション・デバイス(以降、EPCS デバイス)をリリースしており、EPCS デバイスを使用したアクティブ・シリアル(以降、AS)モードにより、もっとも簡単な回路構成でコンフィギュレーションさせることが可能です。しかし、最近の FPGA ではデバイス規模の増加に伴い、EPCS デバイスでは容量不足となるケースやコンフィギュレーション時間の増加により、装置の起動時間が遅くなるなどシステム的に問題となるケース場合があります。
アルテラでは、上記のような問題に対応できる新しいコンフィギュレーション・デバイスである Quad-Serial コンフィギュレーション・デバイス(以降、EPCQ デバイス)をリリースしました。
EPCQ デバイスの特徴としては、
- AS コンフィギュレーションにおいて、×4/×1 をサポート
- 低コスト、少ないピン数の不揮発性メモリ
- 2.7-3.6V の動作電圧をサポート
- 100,000 回以上の消去または再書き込みが可能
- ライト・プロテクション機能をサポート
などがあります。
詳細については、下記データシートや弊社の関連サイトをご覧ください。
■ Quad-Serial Configuration (EPCQ) データシート
https://www.altera.com/en_US/pdfs/literature/hb/cfg/cfg_cf52012.pdf
■ EPCQ(Quad-Serial コンフィギュレーション・デバイス)
http://www.elsena.co.jp/elspear/altera/device/configuration/epcq/
この特徴の中に、"AS コンフィギュレーション ×1 に対応" とあります。EPCQ デバイスがリリースされた後に登場された FPGA(Stratix® V デバイス、Arria® V デバイス、Cyclone® V デバイスなど)であれば動作することに問題はありませんが、それ以前にリリースされた FPGA に関しては ×1 で動作するかに不安があるかと思います。
本記事では、EPCS デバイスが実装された基板を用いてコンフィギュレーション・デバイスを EPCS デバイスから EPCQ デバイスへ換装し、EPCQ ×1 で動作検証を行っていきます。また、その時の注意点も併せて紹介していきます。
本資料を参考にしていただく事で、EPCQ デバイスを使用する上での不安が解消されれば幸いです。
2. EPCQ デバイスの特徴
2-1. EPCS デバイスと EPCQ デバイスのラインナップ

EPCS16 の 8ピン SOIC までは EPCQ16 の 8ピン SOIC が対応し、EPCS64 以上の容量には同じ容量の EPCQ デバイスが同じパッケージで用意されております。また、EPCS デバイスにはライナップされていない 32Mbit 品や最大 512Mbit までがラインナップされていますので、今まで以上に選択肢が増えています。
2-2. ピンの説明

16ピンの SOIC のシンボル内に EPCS デバイスでは (1) と記載されたピンがあり、EPCQ デバイスでは黄枠で示されたピンがあります。それぞれのピン説明は同じコメント "You can leave these pins floating or you can connect them to to Vcc or GND" が記載されているため、ピン処理は同じ方法で問題ありません。
EPCS デバイスと EPCQ デバイス ×1 では、DATA が DATA1に、ASDI が DATA0 とピン名が変わっていますので、FPGA との接続時にはご注意ください。
2-3. Quartus II 開発ソフトウェアのサポート
EPCQ デバイスを ×1 で使用する場合は、Quartus® II 開発ソフトウェアの設定で ×1 仕様の設定を行い、プログラミング・ファイルを生成します。
EPCQ デバイスの型式により、Quartus II 開発ソフトウェアがサポートしているバージョンが異なりますので、プログラミング・ファイルの生成時にはご注意ください。

2-4. その他
EPCS デバイスと EPCQ デバイスの内部レジスタ・マップやアクセス・タイミング等の詳細な情報を確認される場合は、デバイス毎に準備されているデータシートをご参照ください。
EPCS : https://www.altera.com/en_US/pdfs/literature/hb/cfg/cyc_c51014.pdf
EPCQ : https://www.altera.com/en_US/pdfs/literature/hb/cfg/cfg_cf52012.pdf
本ページに掲載した情報は、下記の資料より抽出した内容となります。
EPCS 情報 : Jan 2012 Serial Configuration (EPCS) Devices Datasheet
EPCQ 情報 : 2014.01.10 Quad-Serial Configuration (EPCQ) Devices Datasheet
資料の更新に伴い、掲載内容と変更される可能性がありますので、必ず上記 URL にある最新のデータシートをご参照ください。
3. Cyclone III デバイスへのコンフィギュレーション検証
Cyclone III デバイスの検証には、株式会社アルティマ製評価検証用ボード Sapphire を使用しました。外観はこのような形状の白い基板になります。

本ボードには、EPCS64 の SOIC 16ピンが実装(図8 青枠部分)されております。今回は EPCQ256 の同パッケージに換装して検証を行います。実装されている FPGA は EP3C25F324C8NES です。

3-1. コンフィギュレーション・デバイスの換装
実装されている EPCS64 を取り外し、EPCQ256 を実装します。

EPCQ256 は新品かつ未プログラミングなのでコンフィギュレーションできないはずですが、念の為電源投入してコンフィギュレーションができない事を確認しました。
3-2. プログラミング・ファイルの生成
プログラミング・ファイルの変換の際に使用したのは、Quartus II 開発ソフトウェア v13.0SP1 です。変換元となる SOF ファイルは、Quartus II 開発ソフトウェア v7.2 で生成されたものを使用しました。
プログラミング・ファイルとして、以下の仕様のファイルを生成します。
- POF ファイル / JIC ファイル
- Compression(非圧縮 / 圧縮)のチェック有 / 無
- Disable EPCS ID Check のチェック有 / 無
SOF ファイルを POF ファイルや JIC ファイルに変換する場合、Quartus II 開発ソフトウェアの "Convert Programming Files" 機能を使用します。設定箇所については、下記をご参照ください。

Convert Programming Files 機能の使い方については、『Quartus II はじめてガイド - Convert Programming File の使い方』をご参照ください。
3-3. EPCQ デバイスへのプログラミング
EPCQ デバイスへのプログラミングには、Quartus II 開発ソフトウェア v13.0SP1 の Programmer を使用しました。
本ボードには、JTAG ヘッダとコンフィギュレーション・デバイスへ直接プログラム可能な 10pin ヘッダが実装されています。今回は、2種類の方法でプログラミングを行いました。
- コンフィギュレーション・デバイスへ POF ファイルをプログラミング。 その際は、コンフィギュレーション・デバイスへ直接プログラムが可能な 10pin ヘッダを使用。
- コンフィギュレーション・デバイスへ JIC ファイルをプログラミング。 その際は、JTAG ヘッダを使用して FPGA 経由でプログラミング。
3-4. 検証結果
上記 5-2 で生成したそれぞれの仕様のプログラミング・ファイルをプログラムして、動作確認した結果を示します。

3-5. まとめ
今回は EPCQ256 の AS ×1 で、Cyclone III デバイスがコンフィギュレーションできるのか? の検証を紹介しました。
結果としては、EPCS デバイスの SOIC 16ピン用に配線された基板において、Convert Programming Files 機能と "Disable EPCS ID check" の有効化設定を行って生成されたプログラミング・ファイルを用いることで、EPCQ256 デバイスと Cyclone III デバイスの組み合わせでコンフィギュレーションが可能であることが確認できました。