SPI インターフェイスは 4 つの信号で構成され、これらを使用して SPI バス プロトコル互換の全二重シリアル ポートを実装します。このインターフェイスは、エラー分類機能を有効にした場合のみ存在します。この機能を実装するには、外部ストレージが必要です。システム レベル サンプル デザインでは、SPI バス マスターに機能が固定された SPI フラッシュ マスター ヘルパー ブロックを使用して外部 SPI フラッシュ デバイスからデータをフェッチします。 表: 外部ストレージの要件 に、サポートされる各 FPGA で必要な SPI フラッシュの容量を示します。
デバイス |
エラー分類に必要なストレージ容量 (Mb) |
|
---|---|---|
UltraScale |
XCKU035 |
128 |
XCKU040 |
128 |
|
XCKU060 |
256 |
|
XCKU085 |
512 |
|
XCKU115 |
512 |
|
XCVU065 |
256 |
|
XCVU080 |
256 |
|
XCVU095 |
256 |
|
XCVU125 |
512 |
|
XCVU160 |
1,024 |
|
XCVU190 |
1,024 |
|
XCVU440 (1) |
1,024 |
|
UltraScale+ |
XCKU3P |
128 |
XCKU5P |
128 |
|
XCKU9P |
256 |
|
XCKU11P |
256 |
|
XCKU13P |
256 |
|
XCKU15P |
256 |
|
XCVU3P |
256 |
|
XCVU5P |
512 |
|
XCVU7P |
512 |
|
XCVU9P |
512 |
|
XCVU11P |
1024 |
|
XCVU13P |
1024 |
|
XCVU27P |
1024 |
|
XCVU29P |
1024 |
|
XCVU31P |
256 |
|
XCVU33P |
256 |
|
XCVU35P |
512 |
|
XCVU37P |
1024 |
|
XCZU2 |
32 |
|
XCZU3 |
32 |
|
XCZU4 |
64 |
|
XCZU5 |
64 |
|
XCZU6 |
256 |
|
XCZU7 |
256 |
|
XCZU9 |
256 |
|
XCZU11 |
256 |
|
XCZU15 |
256 |
|
XCZU17 |
256 |
|
XCZU19 |
256 |
|
UltraScale+
|
XCZU21DR |
256 |
XCZU25DR |
256 |
|
XCZU27DR |
256 |
|
XCZU28DR |
256 |
|
XCZU29DR |
256 |
|
注記: 1. XCVU440 では、1 回のコマンドでダイ境界をまたいでシームレスに読み出しが可能な SPI フラッシュ メモリ デバイス (MT25Q など) を使用する必要があります。 |
SPI フラッシュ マスター ヘルパー ブロックは高速読み出しコマンド ( 0x0B ) を使用します。また、何種類かある SPI フラッシュ ファミリの 1 つをサポートするように設定できます。デフォルトでサポートされるファミリは、 表: 外部ストレージの要件 に示した外部ストレージの要件によって異なります。システム レベル サンプル デザインの SPI フラッシュ マスター ヘルパー ブロックには、SPI フラッシュ デバイスに送信するコマンド シーケンスを制御するためのパラメーターが 3 つあります。
• B_ISSUE_WREN – デバイスの動作を変更するコマンドの前に書き込みイネーブル コマンド (0x06) を発行する必要があるかどうかを示します。通常は「0」に設定し、N25Q および MT25Q デバイスの場合のみ「1」に設定します。
• B_ISSUE_WVCR – 高速読み出しダミー サイクル数を明示的に 8 サイクルに設定するために揮発性コンフィギュレーション レジスタへの書き込みコマンド (0x81) を発行する必要があるかどうかを示します。SPI フラッシュ マスター ヘルパー ブロック内部のステート マシンはバイト指向のため、高速読み出しダミー サイクル数を 8 に設定する必要があります。揮発性コンフィギュレーションレ ジ ス タのデータは上書きされます (0x8B)。通常は「0」に設定し、N25Q および MT25Q デバイスの場合のみ「1」に設定します。
• B_ISSUE_EN4B – 4 バイト アドレス指定モードに明示的に移行するために 4 バイト アドレス指定イネーブル コマンド (0xB7) を発行する必要があるかどうかを示します。 128Mb を超えるデバイスでは「1」に設定します。
ストレージ要件が 128Mb 以下の場合、SPI フラッシュ マスター ヘルパー ブロックはデフォルトで M25P デバイスをサポートします (B_ISSUE_WREN = 0、B_ISSUE_WVCR = 0、B_ISSUE_EN4B = 0)。これらのデバイスは 4 バイト アドレス指定モードには対応しません。
ストレージ要件が 128Mb を超える場合、SPI フラッシュ マスター ヘルパー ブロックはデフォルトでより大容量の N25Q および MT25Q デバイスをサポートします (B_ISSUE_WREN = 1、B_ISSUE_WVCR = 1、B_ISSUE_EN4B = 1)。これらのデバイスは 4 バイト アドレス指定モードに対応します。
これ以外に、ストレージ要件が 128Mb 以下の場合は小容量の N25Q デバイス (B_ISSUE_WREN = 1、B_ISSUE_WVCR = 1、B_ISSUE_EN4B = 0)、ストレージ要件が 128Mb を超える場合は大容量の MX25 デバイス (B_ISSUE_WREN = 0、B_ISSUE_WVCR = 0、B_ISSUE_EN4B = 1) もサポートされます。
注記: SPI フラッシュ マスター ヘルパー ブロックのインプリメンテーションがサポートする SPI フラッシュ読み出しコマンドは、1 つの SPI フラッシュ デバイスに対する SPI モード 0 (CPOL = 0、CPHA = 0) の高速読み出しのみです。
この図 に、FPGA と SPI フラッシュ デバイスの接続を示します。「LT」はレベル変換器を表しています。一般的な SPI フラッシュ デバイスは 3.3V I/O を使用しますが、FPGA または I/O バンク電圧によってはこの電圧を利用できないことがあるため、レベル変換器が必要です。
SPI バスの性能を最大化するには、伝搬遅延の小さいレベル変換器を使用する必要があります。SPI バスの性能がシステム レベル サンプル デザイン全体の最大動作周波数に影響することがあります。
注記: スイッチング動作、システム レベル要件、および SPI バス タイミング バジェット例については、 SPI バス タイミング バジェット を参照してください。
エラー分類機能を使用する場合、コントローラーは外部に格納したデータにアクセスする必要があります。このデータは、 write_bitstream によって FPGA のプログラミング ファイルと同時に作成されます。
FPGA デザインを変更して新しいプログラミングフ ァイルを作成する際は、コントローラーが使用する外部データ ファイルも更新する必要があります。ハードウェア デザインを新しいプログラミング ファイルで更新する際に、外部に格納するデータも更新する必要があります。
重要: データの整合性が失われると、不正確な値の分類レポートが出力され、誤った軽減措置が実行されることがあります。 プログラミング ファイルと外部データ ファイルが常に同期するような更新方法を採用することを推奨します。