条件を指定して絞り込む

現在1118件がヒットしています。check

記事カテゴリ
製品カテゴリ
メーカー

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

皆さん、こんにちは。

FPGA を初めて使用する時に、コンフィギュレーションって何?と思った人はいませんか?

FPGA は電源投入後にコンフィギュレーションさせないと動作しません。この記事では、コンフィギュレーションの概要とスキームについて、FPGA 初心者の方にもイメージできるように解説しようと思います。

コンフィギュレーションとは?

簡単に言うと、SRAM ベースの FPGA にデザイン(設計)データをロードすることです。

FPGA は SRAM ベースのデバイスなので、電源投入しただけでは何も動きません。動作させるには、FPGA のデザイン・データを ROM から転送させる必要があります。これをコンフィギュレーションと呼びます。

電源投入後のコンフィギュレーションは、一般的には自動的に開始されます。

コンフィギュレーション ROM には FPGA のデザイン・データ(コンフィギュレーション・データ)を事前に書き込んでおく必要があります。これをプログラミングと呼んでいます。プログラミングについては、別の記事で一例を紹介しています。

FPGA 経由で EPCQ デバイスへプログラミング(JIC プログラミング)

Article header library 130277 pic01  2
図1 FPGA コンフィギュレーションのイメージ

コンフィギュレーションの種類(スキーム)

コンフィギュレーションの種類(スキーム)は、大きく分けて 3種類あります。

MSEL ピンというコンフィギュレーションのモードを決定するピンの状態を電源投入時に認識して、そのモードによるコンフィギュレーションがなされます。MSEL ピンの設定とコンフィギュレーションのモードとの関係は、FPGA ファミリによって異なるので、使用する FPGA のドキュメントを必ず確認してください。

Active モード


FPGA 自身がコンフィギュレーションの制御を行い、コンフィギュレーション ROM からのデザイン・データを受け取ります。

使用できるコンフィギュレーション ROM は、インテル純正のコンフィギュレーション・デバイス(EPCQ-A / EPCQ / EPCS)や一部のサード・パーティ製 Flash メモリです。

コンフィギュレーション・デバイス (インテル)

デザイン & デバッグ・ガイドラインも、参考にしてください。

アクティブ・シリアル・コンフィグレーション デザイン & デバッグ・ガイドライン

  • Active Serial (x1):データが 1本
  • Active Serial (x4):データが 4本
Article header library 130277 pic02  1
図2 Active モード

Passive モード

外部にコンフィギュレーションを制御するデバイスがあり、FPGA はコンフィギュレーション ROM からデザイン・データを受け取るのみです。

コンフィギュレーション・コントローラとしては、マイコンや Parallel Flash Loader (PFL) IP を実装した MAX® 10 / MAX® V / MAX® II などが考えられます。マイコンによる制御の場合は、ユーザが制御プログラムなどをすべて作成する必要があります。(無償の PFL IP による制御の方が、ユーザに負担が少なくオススメです。)

使用できるコンフィギュレーション ROM は、CFI / QSPI / NAND Flash メモリです。

  • Passive Serial (PS)
    • FPGA が受信するDATA 線が1本(シリアル)
  • Fast Passive Parallel (FPP)
    • FPGA が受信する DATA 線が複数本(8/16/32 本)
Article header library 130277 pic03  1
図3 Passive モード

なお、PFL IP を使用する場合、PFL がサポートしている Flash メモリがユーザ・ガイドに記載されています。詳しくは、ドキュメントをご覧ください。

Parallel Flash Loader (PFL) IP のユーザ・ガイド

JTAG モード

JTAGモードは、主にデバッグ時に使用するモードで、SOF ファイルを Quartus® Prime の Programmer から インテル® FPGA ダウンロード・ケーブル(USB-Blaster II など)を使用して FPGA の JTAG ポートから直接コンフィギュレーションさせます。

Article header library 130277 pic04  1
図4 JTAG モード

コンフィギュレーション ROM の容量の選び方

FPGA のデザイン・データは、使用する FPGA によって異なります。基本的には、FPGA のドキュメントに記載されている RBF ファイルのサイズより大きいものを選んでください。

なお、このコンフィギュレーション・データを圧縮してコンフィギュレーション ROM に格納することができます。その時の圧縮率は、コンフィギュレーション・データのビット・ストリームに依存するので、事前に圧縮率を知ることはできません。

Cyclone® 10 LP を例に説明します。

Cyclone® 10 LP のドキュメント(ハンドブック)

Cyclone® 10 LP は、下図のように 8種類の Density(ロジック規模)のデバイスが用意されており、それぞれの RBF サイズが示されています。基本的には、この RBF サイズを目安にコンフィギュレーション ROM に容量を選定します。(開発時には、最新の英語版のドキュメントで必ずご確認ください。)

Article header library 130277 pic05  1
図5 コンフィギュレーショ・データの目安(Cyclone 10 LP)

Quartus® Prime でのコンフィギュレーションの設定

Quartus® Prime でコンフィギュレーションの設定をしておけば、コンパイル時にプログラミング・データを自動で生成してくれます。

コンフィギュレーションの設定やプログラミング・データの変換については、こちらをご覧ください。

Quartus® Prime デバイス・オプションの設定方法
Quartus® Prime プログラミング・ファイルの生成や変換(Convert Programming Files)

Article header library 130277 pic06  1
図6 コンフィギュレーションの設定(Quartus® Prime)

おすすめ記事/資料はこちら

アクティブ・シリアル・コンフィグレーション デザイン & デバッグ・ガイドライン
Quartus® Prime デバイス・オプションの設定方法
Quartus® Prime プログラミング・ファイルの生成や変換(Convert Programming Files)
インテル®FPGA の開発フロー/FPGA トップページ

おすすめ FAQ はこちら

インテル® FPGA 関連の FAQ

おすすめセミナー/ワークショップはこちら

Quartus®Prime 入門編トライアル・コース <無料>
カスタムマイコン設計トライアル ~MAX® 10 FPGA を使った組込み設計を体感!~ <無料>