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

ID 683419
日付 11/27/2019
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

1.7.6. プログラムフラッシュ

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

  • Operating protocols setting
  • Control register
  • Write instruction

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

proc page_program { } {
global mp operating_protocols_setting control_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 $mp 0x00001000 0x1234abcd
 }

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

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

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

proc fourbyte_quad_input_fast_program { } {
global mp operating_protocols_setting control_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 $mp 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. 34hは4バイトのクワッド入力高速プログラムのオペレーションコードであるため、ライト・オペレーション・コード[7:0]34に設定します。
    2. 70hはリード・フラグ・ステータス・レジスターの動作コードであるため、ポーリング動作コード[15:8]70に設定します。 ライト動作が完了すると、 インテル® FPGA IPコアは Avalon® -MMインターフェイスの待機要求を解放します。 フラッシュにフラグステータスレジスターを読み込むには、リード・ステータス・レジスター(05h)を使用できます。
  5. レジスターを設定した後、メモリーをアドレスにプログラムし始めることができます。
    1. この例では、1234abcdhがメモリーアドレス0x00002000に書き込まれます。