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

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

1.7.2.2. リファレンス・デザインアプリケーション・プログラム

図 6. リファレンス・デザインのアプリケーション・プログラムのフロー図
フロー図のシーケンスの説明:
  1. アプリケーション・プログラムは、FPGAに接続されているフラッシュデバイスを識別することから始まります。
    注: フラッシュデバイスは、このリファレンス・デザインのみを示すためのサンプルとして機能します。
  2. アプリケーション・プログラムはセクター保護を実行し、保護されたセクターを消去します。
    1. セクター保護を実行するには、アプリケーション・プログラムは次のとおりです。
      1. writeenableコマンドを実行します。
      2. ステータスレジスター書き込みコマンドを実行して、ブロックプロテクト(BP)ビットとトップ/ボトム(TB)ビットを設定します。
      3. ポーリングは、書き込み進行中(WIP)ビット(ステータスレジスターのビット0)を、0(準備完了)を返すまで書き込みます。
      4. ステータスレジスターの読み取りコマンドを実行して、セクター保護操作が成功したか失敗したかを確認します。
    2. セクター消去を実行するには、アプリケーション・プログラムは次のようにします。
      1. writeenableコマンドを実行します。
      2. セクター消去コマンドを実行します。
      3. ポーリングは、書き込み中(WIP)ビット(ステータスレジスターのビット0)を0(準備完了)を返すまで書き込みます。
      4. リード・ステータス・レジスターを実行して、消去操作が成功したか失敗したかを確認します。
  3. セクターが保護されているため、消去エラーが発生されます。アプリケーション・プログラムは、次の方法でエラービットをクリアします。
    • フラグ・ステータス・レジスター・コマンド(EPCQ-Lまたは Micron*)のクリア。
    • ステータスレジスターのコマンド(Cypress*)のクリア。
  4. アプリケーション・プログラムは、セクター保護を無効にします。
    1. writeenableコマンドを実行します。
    2. ライト・ステータ・スレジスター・コマンドを実行して、BPビットとTBビットをクリアします。
    3. WIPビット(ステータスレジスターのビット0)を0(準備完了)を返すまでポーリングします。
    4. ステータスレジスターの読み取りコマンドを実行して、BPビットとTBビットがクリアに成功したかどうかを確認します。
  5. アプリケーション・プログラムは、セクターが保護されていない場合にフラッシュデバイスプログラミングを実行します。アプリケーション・プログラムは:
    1. 空のメモリーがあるアドレスへの書き込みメモリーを実行します。
    2. 0(準備完了)を返すまでWIPビット(ステータスレジスターのビット0)をポーリングします。
    3. アドレスのリード・バック・メモリーを実行して、アドレスがプログラムされていることを確認します。
  6. 手順2を繰り返し、アドレスのメモリーを読み戻します。セクターが保護されているため、メモリーは消去されません。