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

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

1.8.3. フラッシュレジスターを書き込むためのフラッシュ操作

フラッシュレジスターの書き込みには、次のフラッシュ操作が使用されます。

  • 拡張揮発性コンフィギュレーションレジスターを書き込む
  • ライト・ステータスレジスター
  • ライト・ステータスレジスター
  • 書き込みコントロール・レジスター
注: これらの操作を開始する前に、書き込みイネーブル操作を実行する必要があります。

次のレジスターは、レジスターのステータスを書き込むために使用されます。

  • フラッシュコマンド設定レジスター
  • フラッシュコマンド制御lレジスター
  • フラッシュコマンド書き込みデータ0レジスター

フラッシュのセクターを保護するためにステータスレジスターの書き込み操作を実行します

proc write_status_register {} {
グローバルmpflash_cmd_settingflash_cmd_write_data_0 flash_cmd_ctrl
master_write_32 $mp $flash_cmd_setting 0x00001001
master_write_32 $ mp $ flash_cmd_write_data_0 0x0000007c
master_write_32 $mp $flash_cmd_ctrl 0x1
}

バースト・リード動作を実行するには、以下の手順に従います。

  1. グローバル変数を定義します。
  2. フラッシュコマンド設定レジスターに書き込むことにより、ステータスレジスターの書き込み動作をカスタマイズします。
    1. セットビット [7:0] このレジスターの 01 01hは、書き込みステータスレジスター操作の操作コードです。
    2. セットビット [10:8]0 この操作はアドレスバイトを伝送しないためです。
    3. セットビット 110 ビットで宣言されたバイト数として [15:12] フラッシュデバイスへの書き込みデータです。
    4. セットビット [15:12]1 1バイト(8ビット)のデータをステータスレジスターに書き込むためです。
  3. セクター保護を設定するデータをフラッシュコマンドwritedata0レジスターに書き込みます。
    1. 少し 6 とビット [4:2] ステータスレジスターのはブロック保護ビットとビットです 5 トップ/ボトムビットです。この例では、メモリーアレイの下部からすべてのセクターを保護する必要があります。詳細については、それぞれのフラッシュデータシートを参照してください。
  4. 書く 1 噛む 0 フラッシュコマンド制御レジスターを使用して、セクター保護動作の書き込みステータスレジスターを開始します。