13. FPGA マネージャ

13. FPGA マネージャ
November 2012
av_54013-1.3
av_54013-1.3
ハード・プロセッサ・システム(HPS)内の FPGA マネージャは、システム・オン・
チップ(SoC)の FPGA デバイスでのシステムの FPGA の部分を管理し、監視します。
FPGA マネージャは、HPS からの FPGA ファブリックをコンフィギュレーションした
り、FPGA の状態を監視したり、FPGA ファブリックに(または FPGA から)信号をド
ライブやサンプルしたりすることができます。
FPGA マネージャの機能
FPGA マネージャは、次の機能と特長を提供します。
■
SoC デバイスの FPGA 部分のフル・コンフィギュレーションおよびパーシャル・リ
コンフィギュレーション
■
FPGA ファブリックに 32 本の汎用出力信号を駆動する
■
FPGA ファブリックからの 32 本の汎用入力信号を受信する
■
FPGA ファブリックから 2 ブート・ハンドシェーク入力信号を受信する(HPS が
FPGA からブーツするときにに使用される)
■
FPGA のコンフィギュレーションおよび電力状態を監視する
■
FPGA のステータスの変更に基づいて割り込みを生成する
■
FPGA をリセットする
© 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
ISO
9001:2008
Registered
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
2012 年 11 月
Subscribe
第 13 章 : FPGA マネージャ
FPGA マネージャのブロック図とシステム統合
13–2
FPGA マネージャのブロック図とシステム統合
図 13–1 に、FPGA マネージャのブロック図を示します。
図 13‒1. FPGA マネージャのブロック図
FPGA Manager
L3
Interconnect
MPU
Configuration
Slave
Interface
Data
Block
Control Block
DCLK
DATA[31:0]
nCONFIG
nSTATUS
CONF_DONE
INIT_DONE
CONFIG_IO Mode
MSEL
IRQ
Control
Block
L4 Master Peripheral Bus
FPGA Portion
Register
Slave
Interface
Monitor
Block
nCE
nCONFIG
nSTATUS
CONF_DONE
PR_REQUEST
nCONFIG
nSTATUS
CONF_DONE
INIT_DONE
CRC_ERROR
CVP_CONF_DONE
PR_READY
PR_ERROR
PR_DONE
FPGA Fabric
Fabric
I/O
Block
h2f_gp[31:0]
f2h_gp[31:0]
f2h_boot_from_fpga_on_failure
f2h_boot_from_fpga_ready
レジスタのスレーブ・インタフェースは、コントロールおよびステータス・レジス
タ(CSR)のアクセス用のレベル 4(L4)のマスタ・ペリフェラル・バスに接続しま
す。コンフィギュレーション・スレーブ・インタフェースは、SoC デバイスの FPGA
部分をコンフィギュレーションするときに、FPGA コントロール・ブロック(CB)へ
の FPGA コンフィギュレーション・イメージを書き込むためにレベル 3(L3)のマイ
クロプロセッサ・ユニット(MPU)サブシステムまたは他のマスタに相互に接続し
ます。
汎用 I/O とブート・ハンドシェーク入力インターフェースは FPGA ファブリックに接
続します。FPGA マネージャは、デバイスの FPGA 部分を監視および制御するために、
FPGA CB の信号に接続します。
DSP ブロックは以下の要素で構成されます。
■
コンフィギュレーション・スレーブ・インタフェース — データ・インタフェース
にコンフィギュレーション・イメージを受信と転送します。
■
レジスタ・スレーブ・インタフェース —FPGA マネージャで CSR をアクセスしま
す。
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
2012 年 11 月
Altera Corporation
第 13 章 : FPGA マネージャ
FPGA マネージャの機能説明
13–3
■
データ — コンフィギュレーション・スレーブ・インタフェースから FPGA コンフィ
ギュレーション・イメージを受け入れ、FPGA CB に送信します。
■
コントロール —FPGA CB をコントロールします。
■
監視 —FPGA CB のコンフィギュレーション信号を監視して、MPU のサブシステム
に割り込みを送信します。
■
ファブリック I/O—FPGA ファブリックに(または FPGA から)信号の読み出しと書
き込みをします。
FPGA マネージャの機能説明
FPGA マネージャのビルディング・ブロック
FPGA マネージャは、デバイスの FPGA 部分からの信号を監視するための次のブロッ
クがあります。
ファブリック I/O
ファブリック I/O ブロックは、HPS と FPGA ファブリックの間の単純な低レイテンシ
の通信を許可するように次のレジスタが含まれています。
■
General-purpose input register (gpi)
■
General-purpose output register (gpo)
■
Boot handshaking input register (misci)
これらのレジスタは、FPGA がユーザー・モードになっている場合のみ有効です。
FPGA がユーザー・モードにないときに、これらのレジスタから読み出すと未定義の
データを提供しています。
FPGA ファブリックからの 32 本の汎用入力信号は、レジスタのスレーブ・インタ
フェースを使用して gpi レジスタのリードで読み出されます。FPGA ファブリックに
32 本の汎用出力信号は、gpo レジスタへの書き込みから生成されます。FPGA マネー
ジャ・レジスタについて詳しくは、13–8 ページの「FPGA マネージャ・アドレス・
マップおよびレジスタ定義」を参照してください。
FPGA ファブリックからブート・ハンドシェーク入力信号は misci レジスタのリード
で読み出されます。f2h_boot_from_fpga_ready 信号は、ブート ROM が FPGA から
ブートしているときに、FPGA ファブリック内のロジックが HPS ツー FPGA ブリッジ
からのコンフィギュレーション・インタフェース要求を受け入れられるときにブー
ト ROM に示します。f2h_boot_from_fpga_on_failure 信号は 、ブート ROM コード
がプライマリ・ブート・フラッシュ・デバイスから起動するために失敗した場合の
フォールバックとして機能します。この場合、ブート ROM コードは、ブート・プロ
セスの次のステージとして、FPGA のメモリでホストされるブート・コードを使用す
ることを判断するために、これら 2 つのハンドシェイク信号をチェックします。
このブロックには割り込みのサポートはありません。
2012 年 11 月
Altera Corporation
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
第 13 章 : FPGA マネージャ
FPGA マネージャの機能説明
13–4
モニタ
モニタ・ブロックは、3 つの HPS GPIO インタフェースを備えている IP アドレスの別
のインスタンスであるシノプシスの Synopsys® DesignWare® GPIO IP (DW_apb_gpio)
のインスタンスです。モニタ・ブロックは、FPGA のコンフィギュレーション信号に
接続します。このブロックには、INIT_DONE、CRC_ERROR、および PR_DONE などの
FPGA のコンフィギュレーションに関連する重要な信号をモニタします。ソフトウェ
アは、レジスタ・スレーブ・インタフェースを介してモニタ・ブロックを構成し、
FPGA 信号をポーリングすること、または割り込みをすることができます。FPGA マ
ネージャ・レジスタ・アドレス・マップ内の mon アドレス・マップには、モニタ・
レジスタが内蔵されています。FPGA マネージャ・レジスタについて詳しくは、13–8
ページの「FPGA マネージャ・アドレス・マップおよびレジスタ定義」を参照してく
ださい。
FPGA マネージャが割り込み要因に応じて、モニタ信号のいずれかを治療するために
プログラムすることができます。モニタ・ブロックは割り込みソースの種類とは無関
係であり、常に MPU にアクティブ High レベル割り込みを駆動します。各割り込み
ソースは、次のタイプがあります。
■
アクティブ High レベル
■
アクティブ Low レベル
■
立ち上がりエッジ
■
立ち下がりエッジ
FPGA コンフィギュレーション
外部デバイスまたは HPS を使用して FPGA をコンフィギュレーションスすることが
できます。この項では、HPS を介して FPGA を構成することをカバーしています。
「Arria V デ
f 外部デバイスを使用する FPGA のコンフィグレーションについて詳しくは、
バイス・ハンドブック Volume 1」の「 Configuration, Design Security, and Remote System
Upgrades in Arria V Devices 」の章を参照してください。
FPGA CB は使用するコンフィギュレーション手法を決定するために、FPGA のモー
ド・セレクト(MSEL)ピンを使用しています。MSEL ピンは、コンフィギュレーショ
ン手法に適した値に固定する必要があります。表 13–1 に、FPGA が HPS によってコン
フィギュレーションされている場合、をサポートされる MSEL の値をリストします。
HPS のソフトウェアは、MSEL ピンを一致させるコントロール・レジスタ(ctrl)に
クロック・ツー・データのフィールド(cdratio)およびコンフィギュレーション・
データ幅ビット(cfgwdth)を設定します 。cdratio フィールドと cfgwdth ビット
は、コンフィギュレーションの開始前に設定する必要があります。
FPGA マネージャは、外部ロジック(例えば、MAX II デバイスまたはインテリジェン
ト・ホスト)がファースト・パッシブ・パラレル(FPP)モードで FPGA を構成する
方法と同様のモードを使用してデバイスの FPGA 部分のコンフィギュレーション・ロ
ジックに接続します。HPS を使用する FPGA のコンフィギュレーションは、次の項目
を含めて、FPP モードのすべての機能をサポートしています。
■
FPGA コンフィギュレーション
■
パーシャル FPGA リコンフィギュレーション
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
2012 年 11 月
Altera Corporation
第 13 章 : FPGA マネージャ
FPGA マネージャの機能説明
1
13–5
■
FPGA の I/O コンフィギュレーション、
そして FPGA の残りの PCI Express® (PCIe®) コ
ンフィギュレーション
■
外部自動 SEU(Single Event Upset)のスクラブ
■
圧縮復元
■
高度暗号化規格(AES)の暗号化
■
初期化フェーズ・クロックに使用される FPGA の DCLK クロック
FPGA マネージャは、32 ビットまたは 16 ビットのデータ幅をサポートしています。HPS
から FPGA ファブリックをコンフィギュレーションする場合、常に 32 ビットのデー
タ幅を設定することを推奨します。パーシャル・リコンフィギュレーションの場合、
16 ビットのデータ幅が唯一のオプションです。
表 13–1 には、HPS が FPGA をコンフィギュレーションするときにサポートされるコ
ンフィギュレーション手法とそれぞれの MSEL とコントロール・レジスタの設定値
をリストしています。
表 13‒1. HPS による FPGA コンフィギュレーションのためのコンフィギュレーション手法
コンフィ
ギュレー
ション・
モード
FPP ×16
FPP ×32
圧縮機能
デザイン・
セキュリ
ティ機能
ディセーブル
AES ディ
セーブル
ディセーブル
AES イネー
ブル
イネーブル
オプショ
ン (1)
ディセーブル
AES ディ
セーブル
ディセーブル
AES イネー
ブル
イネーブル
オプショ
ン (1)
POR 遅
延 (2)
MSEL[4..0] (3)
cfgwdt
h
cdrati
o
パーシャル・リ
コンフィギュ
レーションのサ
ポート
ファースト
00000
0
1
あり
スタンダー
ド
00100
0
1
なし
ファースト
00001
0
2
あり
スタンダー
ド
00101
0
2
なし
ファースト
00010
0
4
あり
スタンダー
ド
00110
0
4
なし
ファースト
01000
1
1
なし
スタンダー
ド
01100
1
1
なし
ファースト
01001
1
4
なし
スタンダー
ド
01101
1
4
なし
ファースト
01010
1
8
なし
スタンダー
ド
01110
1
8
なし
表 13‒1 の注 :
(1) この機能をイネーブルすること、またはディセーブルすることを選択できます。
(2) POR 遅延の詳細については、「Arria V デバイス・ハンドブック Volume 1 」の「Arria V のコンフィギュレーション・デザイン・
セキュリティおよびリモート・システム・アップグレード」の章を参照してください。
(3) FPGA は非 HPS のソースからコンフィギュレーションされているとき、他の MSEL 値が使用できます。詳細については、
「Arria V デバイス・ハンドブック Volume 1 」の「Arria V のコンフィギュレーション・デザイン・セキュリティおよびリモー
ト・システム・アップグレード」の章を参照してください。
2012 年 11 月
Altera Corporation
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
第 13 章 : FPGA マネージャ
FPGA マネージャの機能説明
13–6
SoC デバイスの FPGA 部分をコンフィギュレーションするには、次のフェーズで構成
されています。
1. パワーアップ・フェース
2. リセット・フェース
3. コンフィギュレーション・フェーズ
4. 初期化フェーズ
5. ユーザー・モード
パワーアップ・フェース
このフェーズでは、VCC がランプアップされますが、まだ正常なレベルに到達してい
ません。オンチップ電圧検出器が VCC が通常のレベルに達していると判断した場合、
このフェーズが完了します。
リセット・フェース
FPGA マネージャは、FPGA のコンフィギュレーション信号(nCONFIG )が Low にドラ
イブされるときに SoC デバイスの FPGA 部分をリセットします。HPS は ctrl レジス
タの nconfigpull ビットに 1 を書き込むことによって、FPGA をコンフィギュレー
ションします。このアクションは、以下のアクションをリセットして、実行するため
のデバイスの FPGA 部分を引き起こします。
1. FPGA のコンフィギュレーション RAM ビットをクリアします。
2. すべての FPGA のユーザー I/O ピンをトライ・ステートします。
3. nSTATUS ピンと CONF_DONE ピンを Low にプルダウンします。
4. コンフィギュレーション手法を決定するために、MSEL ピンの値を読み込む FPGA
CB を使用します。
ctrl レジスタの nconfigpull ビットは、FPGA が正常にリセット・フェーズに入った
ときに 0 に設定する必要があります。ビットを設定すると、リセット・フェーズやト
ランジションからコンフィギュレーション・フェーズに FPGA をリリースします。
1
FPGA がリセット・フェーズに入る前に、適切に ctrl レジスタの cdratio と cfgwdth
ビットを設定する必要があります。
コンフィギュレーション・フェーズ
HPS で FPGA をコンフィギュレーションするためには、ソフトウェアは ctrl レジス
タの axicfgen ビットを 1 に設定します。その後、ソフトウェアは、FPGA マネージャ
のモジュール・コンフィギュレーション・データ・アドレス・マップにライト・
データ・レジスタ(data)にデータを書き込むことにより、FPGA にコンフィギュ
レーション・データを送信します。ソフトウェアは、FPGA のコンフィギュレーショ
ンが正常に行われたかどうかを判断するために gpio_instatus レジスタの読み出し
で CONF_DONE ピンをポーリングします。コンフィギュレーションが成功した場合、
ソフトウェアは 0 に ctrl レジスタの axicfgen ビットを設定します。FPGA のユー
ザー I/O ピンは、この段階ではトライ・ステートのままになります。
「Arria V デバイス・
f HPS によるの FPGA のコンフィグレーションについて詳しくはは、
ハンドブック Volume 3」の「 Booting and Configuration」の付録を参照してください。
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
2012 年 11 月
Altera Corporation
第 13 章 : FPGA マネージャ
FPGA マネージャの機能説明
13–7
初期化フェーズに正常にコンフィギュレーション・フェーズを完了した後、FPGA が
遷移します。FPGA のコンフィギュレーションを遅延させるには、ctrl レジスタの
confdonepull ビットを 1 に設定します。
初期化フェーズ
このフェーズでは、FPGA がユーザー・モードに入るように準備します。デバイスの
FPGA 部分で内蔵オシレータが初期化フェーズのデフォルトのクロック・ソースで
す。代わりに、コンフィギュレーション・イメージはクロック・ソースとして
CLKUSR または DCLK ピンを指定することができます。FPGA がユーザー・モードに入っ
た後、代替クロック・ソースをコントロールします。
DCLK がクロック・ソースとして選択された場合、ソフトウェアは、FPGA に DCLK パル
スを駆動するための DCLK カウント(dclkcnt)はレジスタを使用します。dclkcnt
レジスタの cnt フィールドへの書き込みは、FPGA マネージャが DCLK のパルスの数
を指定して生成するためにトリガされます。DCLK のパルスの全てが送信されたとき、
DCLK ステータス(dclkstat)レジスタの dcntdone ビットが 1 に設定されます。ソフト
ウェアは、DCLK パルスのすべてが送信されたことを知るために dcntdone ビットを
ポーリングします。
1
dclkcnt レジスタへの別の書き込み前に、ソフトウェアは done 状態をクリアするため
に dcntdone ビットに 1 の値を書き込む必要があります。
FPGA のユーザー I/O ピンは、この段階でトライ・ステートのままになります。初期
化フェーズが完了すると、FPGA は、オプションの INIT_DONE ピンが解放され、外部
抵抗は High にピンをプルアップします。
ユーザー・モード
FPGA は初期化フェーズを終了した後にユーザー・モードに入ります。FPGA ユーザー
I/O ピンは、このフェーズでトライ・ステートされなくなります。そして FPGA でコ
ンフィギュレーションされたソフト・ロジックがアクティブになります。
FPGA は、nCONFIG ピンが Low に駆動されるまでユーザー・モードのままになりま
す。nCONFIG ピンが Low にドライブされている場合、FPGA はリセット・フェースを
再入力します。内蔵オシレータは、ユーザー・モードでディセーブルされますが、
nCONFIG ピンが Low に駆動されるとすぐにイネーブルされます。
f HPS で FPGA のコンフィグレーションについて詳しくは、「Arria V デバイス・ハンド
ブック Volume 3」の「 Booting and Configuration」の付録を参照してください。
「Arria V デバイス・ハン
f FPGA の一般的なコンフィギュレーションについて詳しくは、
ドブック Volume 1」の「 Configuration, Design Security, and Remote System Upgrades in
Arria V Devices 」の章を参照してください。
クロック
FPGA マネージャは、お互いに非同期である 2 つのクロック入力信号があります。ク
ロック・マネージャは、これらの 2 つのクロックを生成します。
2012 年 11 月
Altera Corporation
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
第 13 章 : FPGA マネージャ
FPGA マネージャ・アドレス・マップおよびレジスタ定義
13–8
■
cfg_clk— コンフィギュレーションのスレーブ・インタフェースのクロック入力、
さらに、FPGA のコンフィギュレーションのための DCLK 出力のリファレンス 。コ
ンフィギュレーションがアクティブであるとき、またはコンフィギュレーショ
ン・スレーブ・インタフェースはマスタの要求に応答する必要があるときのみク
ロック・マネージャでこのクロックをイネーブルします。
■
l4_mp_clk— レジスタのスレーブ・インタフェース・クロック。
「Arria V デバイス・ハンドブック Volume 3」
f クロック・マネージャについて詳しくは、
の「 Clock Manager」の章を参照してください。
リセット
FPGA マネージャは、1 つのリセット信号を持っています。リセット・マネージャは
コールドまたはウォーム・リセット時に、FPGA マネージャにこの信号をドライブし
ます。FPGA マネージャですべての分配されるリセット信号は、同時に非同期でア
サートされ、関連付けられたクロックに同期してディアサートされます。
f セット・マネージャについて詳しくは、「Arria V デバイス・ハンドブック Volume 3」
の「 Reset Manager」の章を参照してください。
FPGA マネージャ・アドレス・マップおよびレジスタ定義
f アドレス・マップとレジスタ定義は、このハンドブック・ボリュームに hps.html
ファイルで常駐されます。ファイルを開くためにリンクをクリックします。
モジュールの説明およびベース・アドレスのモジュール・インスタンスを表示する
には、以下のリンクをスクロールとクリックしてください。
■
fpgamgrregs
■
fpgamgrdata
次に、レジスタとフィールドの説明を表示するには、レジスタ名をスクロールとク
リックします。レジスタ・アドレスは、各モジュール・インスタンスのベース・アド
レスからの相対的なオフセットです。
f すべてのモジュールのベース・アドレスは、「Arria V デバイス・ハンドブック
Volume 3」の「 Introduction to the Hard Processor System」の章にリストされています。
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
2012 年 11 月
Altera Corporation
第 13 章 : FPGA マネージャ
改訂履歴
13–9
改訂履歴
表 13–2 に、本資料の改訂履歴を示します。年 11 月
表 13‒2. 改訂履歴
バー
ジョン
日付
2012 年 11 月
1.3
2012 年 6 月
1.2
2012 年 5 月
2012 年 1 月
2012 年 11 月
1.1
1.0
変更内容
マイナーな更新。
FPGA コンフィギュレーションの項を更新。
■
コンフィギュレーション手法の表を更新。
■
FPGA コンフィギュレーションの項を更新。
■
アドレス・マップとレジスタ定義の項を追加。
初版。
Altera Corporation
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
13–10
Arria V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファランス・マニュアル
第 13 章 : FPGA マネージャ
改訂履歴
2012 年 11 月
Altera Corporation