インテル® FPGA IPの汎用シリアル・フラッシュ・インターフェイスのユーザーガイド

ID 683419
日付 4/10/2023
Public
ドキュメント目次

1.6.1. コントロール・ステータス・レジスターのバイトイネーブル

コントロール・ ステータス・ レジスター (CSR) インターフェイス機能のバイトイネーブルにより、書き込み対象の特定のバイトのみを選択しながら、汎用シリアル フラッシュ インターフェイス Generic Serial Flash Interface0x0から0xDまでのすべての CSR に書き込むことができます。

avl_csr_byteenable ポートはこの機能のサポートを提供します。

  • 通常のCSRの場合(書き込みデータレジスターを除くすべてのCSR、 0xA0xB)、CSRは、特定のbyteenableが有効になっていない場合に値を保持し、有効なバイトにのみ新しい値を書き込みます。
  • writedata CSR(0xA0xB)書き込みデータをターゲットフラッシュに保存します。 IPは、対応するデータで有効なバイトのみを書き込み、無効なバイトの古い値を保持しません。
    • IPは、有効なすべての有効なバイトの書き込みデータを、最初のデータとして指定された開始アドレスでフラッシュに書き込みます。
    • レジスターのデータバイト数を[15:12] フラッシュコマンド設定レジスター(0x7)でビット単位で正しく設定してください。書き込みデータ0と書き込みデータ1の両方をフラッシュに書き込む場合は、CSRバイトイネーブルビットがいくつ設定されているかに関係なく、データバイト数を8に書き込む必要があります。 IPは、有効なバイトを最初のデータとして書き込みデータ0の開始アドレスに書き込み、次に書き込みデータ0の残りのバイトをFFとして埋めます。 IPは書き込みデータ1についても同じことを行います。1つの書き込みデータ0または書き込みデータ1をフラッシュに書き込む場合は、データのバイト数をと同じに設定する必要があります。 avl_csr_byteeanable バイト。つまり、2バイトを有効にすると avl_csr_byteenable (4'b0110)、送信されるデータバイト数も2バイトです。 IPは、有効なデータのみをフラッシュ・コマンド・アドレス・レジスター(0x9)で指定したアドレスに直接書き込みます。

Use byteenable for CSRをオプションにオンにすると、Generic Serial Flash Interface Generic Serial Flash Interfaceのパラメーター・エディターでCSRインターフェイス機能のバイトイネーブルを有効にします。

次の手順は、CSRを使用してフラッシュにデータを書き込むプログラミング・フローです(Macronix*フラッシュ):
  1. データを書き込む予定のアドレスを書き込みます。フラッシュ・コマンド・アドレス・レジスター(0x9)にアドレスを書き込みます。たとえば、 0x2001の書き込み。
  2. Write the writedata in the flash command write data 0 register (0xA) or flash command write data 1 register (0xB) using avl_csr_byteenable to select the desired bytes only. For example, the CSR byteenable of 4’b0110) for write data 0 is 44332211 and write data 1 is 88776655.
  3. Start the setup of the write operation opcode in the IP by writing to flash command setting register (0x7) with ‘write enable’ opcode (h06) and then set the control bit to 1 in flash control register (0x8).
  4. Next, write the write status register opcode (h01) in the same register (0x7). Set the data type as 'write' and write the number of data bytes as 8. For example, both write data 0 and write data 1 have 2 bytes enabled. You must write all the bytes (that is, 8 bytes) even if the intended total bytes to be written is 4.

    The resulting write operation will write 77663322 (4 bytes) into the flash address 0x2001.

表 6.  フラッシュメモリーへのデータ書き込みのためのCSRバイトイネーブルの視覚化
書き込みデータのCSR対応バイト
CSR byteenable for write data 1 and 0 0 1 1 0
Write data 0 44 33 9 22 9 11
Write data 1 88 77 9 66 9 55
フラッシュメモリーへの書き込み
Flash address 0x2007 0x2006 0x2005 0x2004
Write data 1 FF 77 9 66 9 FF
Flash address 0x2003 0x2002 0x2001 0x2000
Write data 0 FF 33 9 22 9 FF
9 フラッシュに書き込まれた新しいデータ。