外部メモリー・インターフェイス・インテル® Stratix® 10 FPGA IPユーザーガイド

ID 683741
日付 9/30/2019
Public
ドキュメント目次

3.6. インテル® Stratix® 10 EMIF IPでのユーザーによって要求されるリセット

次の表は、 インテル® Stratix® 10 EMIF IPにおいてユーザーが要求するリセットのメカニズムに関する情報をまとめています。
表 9.  
  説明
リセットに関連する信号

local_reset_req (入力)

local_reset_done (出力)

ユーザーロジックはいつリセットを要求できるか

local_reset_reqは、local_reset_doneがHighになっている場合にのみ有効です。

デバイスの電源投入後に最初のキャリブレーションが完了すると、キャリブレーションが成功したかどうかにかかわらず、local_reset_done信号はHighに遷移します。

ユーザーが要求するリセットは必要要件か

ユーザーが要求するリセットはオプションです。I/O SSMは、デバイスの電源投入シーケンスの一部としてメモリー・インターフェイスが既知の状態から開始することを自動的に保証します。ユーザーが要求するリセットは、デバイスの電源投入シーケンス後にユーザーロジックがメモリー・インターフェイスを明示的にリセットする必要がある場合にのみ必要です。

ユーザーが要求したリセットは実際にいつ発生するか

リセット要求は、I/O SSMによって処理されます。I/O SSMが同じI/O列内の複数のインターフェイスからリセット要求を受信した場合、個々のインターフェイスのリセットシーケンスをシリアル化する必要があります。要求を発行した後にリセットシーケンスがいつ開始されるかについての仮定は避ける必要があります。

タイミング要件とトリガーメカニズム

リセット要求は、local_reset_req信号をLowからHighに遷移させ、信号をHighの状態で最低2 EMIFコア・クロック・サイクル間維持した後、信号をHighからLowに遷移させることで送信されます。local_reset_reqは、満たすべきセットアップまたはホールドのタイミングがないという点で非同期ですが、2 EMIFコア・クロック・サイクルの最小パルス幅要件を満たす必要があります。

外部メモリー・インターフェイスをリセット状態に維持できる期間について

外部メモリー・インターフェイスを無期限にリセットに維持することはできません。local_reset_reqを連続的にHighにアサートした場合でも、リセット要求は完全な0->1->0パルスで完了するため効果はありません。

初期キャリブレーションの延期

初期のキャリブレーションを省略することはできません。local_reset_done信号は、初期のキャリブレーションが完了した後にのみHighに駆動されます。

外部メモリー・インターフェイス内のスコープのリセット

EMIFをパワーアップ状態に戻すために必要な回路のみがリセットされます。リセットシーケンスから除外されるのは、IOSSM、IOPLL、DLL、およびCPAです。

I/O列内のスコープのリセット

local_reset_reqは、各インターフェイスのリセットです。

ユーザーが要求するリセットの開始方法

ステップ1: 前提条件

local_reset_reqをアサートする前に、ユーザーロジックはlocal_reset_done信号がHighになっていることを確認する必要があります。

デバイスの電源投入シーケンスの一部として、インターフェイス・キャリブレーション・シーケンスが完了すると、キャリブレーションが成功したかどうかにかかわらず、local_reset_done信号は自動的にHighに遷移します。

注: 同じコアクロックを共有するインターフェイスのグループをターゲットにしている場合、ユーザーロジックはすべてのインターフェイスのlocal_reset_done信号がHighになっていることを確認する必要があります。

ステップ2: リセット要求

前提条件が満たされた後、ユーザーロジックはlocal_cal_req信号をLowからHighに駆動し、Lowに再度戻す (パルス1を送信する) ことでリセット要求を送信することができます。

  • LowからHighおよびHighからLowへの遷移は非同期で発生させることができます。すなわち、クロックエッジに対して発生する必要はありません。ただし、パルスは最低2 EMIFコア・クロック・サイクルの最小パルス幅を満たしている必要があります。例えば、emif_usr_clkの周期が4 nsの場合、local_reset_reqパルスは少なくとも8 ns (emif_usr_clkの2周期) 持続する必要があります。
  • リセット要求は、HighからLowへ遷移した後にのみ完了したとみなされます。EMIF IPは、local_reset_reqが単にHighに維持されている場合はリセットシーケンスを開始しません。
  • local_reset_reqへの追加パルスは、リセットシーケンスが完了するまで無視されます。

オプション: local_reset_doneのディアサートとアサートの検出

必要な場合は、local_reset_done信号の状態を監視し、リセットシーケンスの状態を明示的に検出できます。

  • EMIF IPはリセット要求を受信すると、local_reset_done信号をディアサートします。電源投入時の初期のキャリブレーション後、local_reset_doneはユーザーが要求するリセットに応じてのみアサート解除されます。実際のタイミングは現在のI/O SSMの状態に依存しますが、local_reset_doneがLowに遷移すると、リセットシーケンスは間近に迫っています。EMIFリセットシーケンスの一部として、コアリセット信号 (emif_usr_reset_n afi_reset_n) はLowに駆動されます。コアリセット信号によるレジスター・リセットを、local_reset_doneのサンプリングに使用しないでください。
  • リセットシーケンスが完了すると、local_reset_doneは再度Highに駆動されます。Highに駆動されているlocal_reset_doneは、リセットシーケンスの完了および、新しいリセット要求の受け入れ準備ができていることを示します。ただし、キャリブレーションが成功したことや、ハード・メモリー・コントローラーが要求を受け入れる準備ができていることを意味するものではありません。これに関しては、ユーザーロジックはafi_cal_successafi_cal_failamm_readyなどの信号を確認する必要があります。