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

ID 683419
日付 11/27/2019
Public

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

ドキュメント目次

1.7.5. フラッシュからメモリーを読み取る

リード・メモリーの実行には、次のレジスターが使用されます。

  • Operating protocols setting register
  • Control register
  • Read instruction register

Perform the Read Memory (Extended Mode)

proc read { } {
global mp operating_protocols_setting control_register read_instr
master_write_32 $mp $operating_protocols_setting 0x00000000
master_write_32 $mp $control_register 0x00000001
master_write_32 $mp $read_instr 0x00000003
master_read_32 $mp 0x0100000 0x1
}

拡張モードのリード・メモリーを実行するには、次の手順を実行します。

  1. グローバル変数を定義します。 
  2. 動作プロトコル設定レジスターに書き込み、メモリー読み出し動作の転送モードを設定します。この例では、読み取りの転送モードは(1-1-1)です。
    1. 命令転送モード[1:0]0に設定し 、リ―ドアドレス転送モード[13:12]0に設定し、読み出しデータ転送モード[17:16]0に設定します。
  3. 制御レジスターに書き込み、リード・メモリー動作のバイトアドレッシング・モードを選択します。
    1. この例では、3バイトのアドレス指定モードを使用しています。ビット80に設定します 。
  4. 読み取り命令レジスターに書き込み、リード・メモリー動作をカスタマイズします。
    1. 03hは読み取り用の動作コードであるため、リード動作コード[7:0]03に設定します。
    2. リード動作にはダミーサイクルが含まれないため、ダミーサイクル[12:8]0に設定します。
  5. レジスターを設定した後、アドレスのメモリー内容の読み取りを実行できます。
    1. この例では、1ワードのデータがアドレス0x01000000から読み取られます。

デュアル出力高速読み出しの実行(デュアルSPIモード)

proc dual_output_fast_read { } {
global mp operating_protocols_setting control_register read_instr
master_write_32 $mp $operating_protocols_setting 0x00011001
master_write_32 $mp $control_register 0x00000101
master_write_32 $mp $read_instr 0x00000A3B
master_read_32 $mp 0x00000100 0x1
}

デュアル出力高速読み取りモードを実行するには、次の手順を実行します。

  1. グローバル変数を定義します。
  2. 動作プロトコル設定レジスターに書き込み、メモリー読み出し動作の転送モードを設定します。この例では、読み取りの転送モードは(2-2-2)です。
    1. 命令転送モード[1:0]1に 、アドレス転送モード[13:12]1に 、データ転送モード[17:16]1に設定します。
  3. 制御レジスターに書き込み、リード・メモリー動作のバイトアドレッシング・モードを選択します。
    1. この例では、4バイトのアドレス指定モードを使用しています。ビット81に設定します。
  4. 読み取り命令レジスターに書き込み、リード・メモリー動作をカスタマイズします。
    1. 3Bhはデュアル出力高速読み取りの動作コードであるため、リード動作コード[7:0]3Bに設定します。
    2. デュアル出力高速リード動作には10ダミーサイクルが含まれるため、ダミーサイクル[12:8]Aに設定します。
  5. レジスターを設定した後、アドレスのデュアル出力高速リード・メモリーコンテンツを実行できます。
    1. この例では、メモリーの内容はアドレス0x00000100から読み取られます。