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

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

1.8.6. フラッシュのプログラミング

次のレジスターは、プログラムフラッシュを実行するために使用されます。

  • 動作プロトコル設定
  • コントロール・レジスター
  • 書き込み命令

ページプログラムの実行(拡張モード)

proc page_program {} {
グローバルmpoperationing_protocols_settingcontrol_register write_instr
master_write_32 $ mp $operating_protocols_setting 0x00000000
master_write_32 $ mp $ control_register 0x00000001
master_write_32 $ mp $ write_instr 0x00007002
master_write_32  C27  0x00001000 0x1234abcd
}

拡張モードのページプログラムを実行するには、次の手順に従います。

  1. グローバル変数を定義します。
  2. 動作プロトコル設定レジスターに書き込んで、プログラム動作の転送モードを設定します。この例では、読み取りの転送モードは(1-1-1)です。
    1. 命令転送モードを設定する [1:0]0、書き込みアドレス転送モード [5:4]0、転送モードでデータを書き込む [9:8]0
  3. 制御レジスターに書き込み、書き込み操作のバイトアドレッシング・モードを選択します。
    1. この例では、3バイトのアドレッシング・モードを使用しています。セットビット 80
  4. プログラムの動作をカスタマイズするには、書き込み命令レジスターに書き込みます。
    1. 書き込み操作コードを設定する [7:0]02 02hはページプログラムのオペコードです。
    2. ポーリング操作コードを設定する [15:8]70 70hは、読み取りフラグ・ステータス・レジスターのオペコードです。書き込み操作が完了すると、IPコアはの待機要求を解放します。 Avalon® メモリーマップド・インターフェイス。読み取りフラグ・ステータス・レジスターがないフラッシュの場合は、読み取りステータスレジスター(05h)を使用できます。
  5. レジスターを設定した後、アドレスへのメモリーのプログラムを開始できます。
    1. この例では、1234abcdhがメモリーアドレスに書き込まれます 0x00001000

4バイトのクアッド入力高速プログラムを実行します(クアッドSPIモード)

proc fourbyte_quad_input_fast_program {} {
グローバルmpoperationing_protocols_settingcontrol_register write_instr
master_write_32 $ mp $operating_protocols_setting 0x00000222
master_write_32 $ mp $ control_register 0x00000101
master_write_32 $ mp $ write_instr 0x00007034
master_write_32  C27  0x00002000 0xabcd1234
}

4バイトのクワッド入力高速プログラムを実行するには、次の手順に従います。

  1. グローバル変数を定義します。
  2. 動作プロトコル設定レジスターに書き込んで、プログラム動作の転送モードを設定します。この例では、4バイトのクワッド入力高速プログラムの転送モードは(4-4-4)です。
    1. 命令転送モードを設定する [1:0]2、書き込みアドレス転送モード [5:4]2、転送モードでデータを書き込む [9:8]2
  3. 制御レジスターに書き込み、書き込み操作のバイトアドレッシング・モードを選択します。
    1. この例では、4バイトのアドレッシング・モードを使用しています。セットビット 81
  4. プログラムの動作をカスタマイズするには、書き込み命令レジスターに書き込みます。
    1. 書き込み操作コードを設定する [7:0]34 34hは、4バイトのクワッド入力高速プログラムのオペコードです。
    2. ポーリング操作コードを設定する [15:8]70 70hは、読み取りフラグ・ステータス・レジスターのオペコードです。書き込み操作が完了すると、IPコアはの待機要求を解放します。 Avalon® メモリーマップド・インターフェイス。読み取りフラグ・ステータス・レジスターがないフラッシュの場合は、読み取りステータスレジスター(05h)を使用できます。
  5. レジスターを設定した後、アドレスへのメモリーのプログラムを開始できます。
    1. この例では、1234abcdhがメモリーアドレスに書き込まれます 0x00002000