はじめに

ホストによる QSPI フラッシュのプログラム ホストによる QSPI フラッシュのプログラム (XAPP1372)

Document ID
XAPP1372
Release Date
2022-06-29
Revision
1.0 日本語

QSPI コントローラーは、 Vivado® Control, Interfaces, and Processing System (CIPS) IP にインスタンシエートされる PMC の内部にあるハード モジュールです。QSPI コントローラーは、PMC の機能ブロック図の PMC I/O ペリフェラル内にあります。ここには、QSPI コントローラー以外にも OSPI コントローラー、SD/eMMC コントローラー、I2C コントローラー、GPIO コントローラーなどがあります。次ページの図に示すように、PMC には NoC インターコネクトが接続されており、これを使用して PL は QSPI コントローラーにアクセスします。

図 1. PMC の機能ブロック図

QSPI コントローラーには Versal デバイス内部でアクセスできるほか、ホストからも Versal デバイスの PCIe インターフェイスを介して Versal デバイスの NoC にアクセスできます。したがって、完全なアクセス パスは次のようになります。

ホスト: PCIe RC > Versal デバイス: PCIe EP (XDMA) > NoC > PMC 内の QSPI コントローラー > QSPI フラッシュ

次の図に、システム アーキテクチャを示します。

図 2. システム アーキテクチャ

この図に示すように、このデザインには 3 つのデータパスがあります。

ホストから QSPI コントローラーへのアクセス (青色のパス)
このパスは、QSPI コントローラーのレジスタ読み出し/書き込みに使用します。このため、読み出しと書き込みの 2 つの方向があります。

フラッシュ ID の読み出しとフラッシュの消去/書き込みは、いずれもこのデータパスを使用して実行されます。フラッシュ ID の読み出しでは、ホストが QSPI コントローラーのレジスタに対して複数の書き込みと読み出しを連続して発行し、QSPI フラッシュ ID を取得します。

QSPI フラッシュの消去または書き込みでは、読み出しと書き込みを組み合わせて実行します。消去と書き込みの主な違いは、書き込み内容にあります。QSPI フラッシュへの書き込みでは QSPI フラッシュに特定のデータを書き込みますが、QSPI フラッシュの消去では、QSPI フラッシュにすべてゼロを書き込みます。

QSPI コントローラーによる DMA 読み出し (水色のパス)
ホストが青色のパスを経由して QSPI コントローラーに対して DMA 読み出しシーケンスを発行したら、QSPI コントローラーは DMA データ長が定義されたサイズに達するまで水色のパスを経由してブロック RAM へデータを送信します。
ホストによるブロック RAM 内の QSPI フラッシュ データのリードバック (紫色のパス)
QSPI フラッシュのベリファイでは、これら 3 つのパスすべてを使用します。まず、青色のパスを経由して QSPI コマンドを送信します。次に、QSPI コントローラーが DMA を使用し、水色のパスを経由してデータをブロック RAM へ送信します。最後に、ホストが紫色のパスを経由してブロック RAM のデータをフェッチし、ローカル メモリのデータと比較 (コンペア) します。

このアプリケーション ノートに付随するリファレンス デザインには、ホスト ソフトウェア デザインと Versal ACAP ハードウェア デザインが含まれます (リファレンス デザイン 参照)。このリファレンス デザインは、x86 ホストと ザイリンクス VCK190 評価ボードの環境で動作が検証されています。ザイリンクス VCK190 評価ボードには Versal デバイス XCVC1902 が使用されています。