AN 539: インテル® FPGAデバイスにおけるCRCを使用したエラー検出および回復のテスト方法

ID 683075
日付 8/09/2019
Public
ドキュメント目次

1.3.1.3. ユーザーロジックを使用したエラー検出ブロックへのアクセス

<device>_crcblock WYSIWYGコンポーネントを使用し、ユーザーロジックからエラー検出回路へのインターフェイスを確立します。<device>_crcblockプリミティブ・アトムには、アトムに組み込まなければならない入力および出力ポートが含まれています。ロジックアレイにアクセスするには、<device>_crcblock WYSIWYGアトムをデザインに挿入します。

EMRで提供される情報を使用してソフトエラーを検出することはできません。代わりに、ソフトエラーの影響を受けないCRC_ERROR出力信号で提供される情報を使用します。

図 8. ユーザーロジックでのエラー検出のブロック図次の図は、デザインでイネーブルする必要のあるエラー検出機能およびWYSIWYGアトムを示しています。
注: インテル® Quartus® Prime開発ソフトウェア・バージョン8.0 SP1またはそれ以前のバージョンでは、デザインに <device>_crcblock WYSIWYGアトムを含める場合、 インテル® Quartus® Prime開発ソフトウェアのDevice & Pin Optionsダイアログボックスでエラー検出CRC機能をイネーブルする必要があります。

<device>_crcblock WYSIWYGアトムをイネーブルするには、各デバイスに応じてアトムの名前を付けます。例えば、 Stratix® IIIデバイスのWYSIWYGアトムにはstratixiii_crcblock Arria® IIデバイスのWYSIWYGアトムにはarriaii_crcblockと命名します。

表 4.  CRCブロックの入力および出力ポート次の表に、WYSIWYGアトムに組み込む必要のある入力および出力ポートを示します。
ポート 入力/出力 定義
<crcblock_name> 入力 CRCブロックに対する一意の識別子で、Verilog HDL、VHDL、Altera Hardware Description Language (AHDL) などの特定の記述言語の正当な識別子名を表します。このフィールドは必須です。
.clk(<clock source>) 入力 このセルのクロック入力を指定します。このセルの動作はすべてこのクロックの立ち上がりエッジに対して発生します。セルへのデータのロードまたはセルからのデータのロードにかかわらず、動作は常に立ち上がりエッジで生じます。このポートは必須です。
.shiftnld (<shiftnld source>) 入力
  • エラー検出ブロックへの入力です。
  • shiftnld=1の場合、ユーザー・シフト・レジスターはclkポートの各立ち上がりエッジでデータをregoutポートにシフトします。
  • shiftnld=0の場合、ユーザー・シフト・レジスターはユーザー・アップデート・レジスターの内容をパラレルロードします。このポートは必須です。
  • この入力は、ユーザー・アップデート・レジスターのクロックイネーブルを2サイクルのEDCLK後にディアサートするようトリガーします。ED_SHIFTNLD信号をLowに駆動した後、ED_CLK信号をクロックする前に少なくとも2サイクルのEDCLK間待機します。
.crcerror (<crcerror out destination>) 出力
  • clkポートではなくデバイスの内部オシレーター (100-MHzまたは80-MHz内部オシレーター) に同期しているセルの出力です。SRAMビットが反転し、内部のCRC計算であらかじめ計算されている値と異なる値が示されたことをエラー検出ブロックが検出した場合、この出力は自動的にHighにアサートされます。
  • この信号は、出力ピンまたは双方向ピンに接続します。この出力信号を出力ピンに接続する場合、CRC_ERRORピンのみがモニタリング可能となります (コアロジックはこの出力にアクセスできません)。コアロジックがエラー検出ロジックの読み出しにCRC_ERROR信号を使用する場合、この信号はBIDIRピンに接続します。信号は、VCCに接続された出力イネーブルポート (oe) を有するBIDIRピンを供給することで、コアに間接的に供給されます。
  • CRC_ERRORピンにルーティングされる信号は、コアにもルーティングされます。
.regout(<output destination>) 出力
  • clkポートに同期するユーザー・シフト・レジスターの出力で、コアロジックによって読み出されます。
  • これは各サイクルで1ビットシフトし、LSB-firstの形式に従います。

Stratix® IIIデバイスにおけるWYSIWYGアトムの入力ポートと出力ポートの例

次の例は、 Stratix® IIIデバイスにおけるWYSIWYGアトムの入力ポートと出力ポートを表しています。
stratixiii_crcblock <crcblock_name>
             (
             .clk(<clock source>),
             .shiftnld(<shiftnld source>),
             .crcerror(<crcerror out destination>),
             .regout(<output destination>)
             );
             defparam crc_wysiwyg_atom.oscillator_divider = 2
注: crc_wysiwyg_atom.oscillator_dividerパラメーターは、<device>_crcblock WYSIWYGアトムのエラー検出周波数のクロック分周器を表しています。