コンフィギュレーション メモリのマスク - 3.1 日本語

UltraScale Architecture Soft Error Mitigation Controller v3.1 LogiCORE IP 製品ガイド (PG187)

Document ID
PG187
Release Date
2019-05-22
Version
3.1 日本語

デザインによっては、動作中にコンフィギュレーション メモリの一部のビット値が変化することがあります。よくあるのは、分散 RAM やシフト レジスタなどの LUTRAM 機能を実装するようにロジック スライス リソースを設定した場合です。また、ダイナミック リコンフィギュレーション ポートを持つその他のタイプのリソースがデザインの動作中に更新される場合にもこのような状況が発生します。

エラーの誤検出を防ぐには、これらリソースに関連するメモリ ビットはマスクしておき、CRC および ECC 計算から除外しておく必要があります。ザイリンクスの FPGA デバイスには、このようなエラー誤検出を防ぐためにコンフィギュレーション メモリのマスク機能が実装されています。マスクを有効にするかどうかは、グローバル制御信号の GLUTMASK_B で選択します。コントローラーはコンフィギュレーション メモリのマスクを常に有効にします。

UltraScale デバイスはリソース レベルで細粒度のマスクをインプリメントしています。つまり、個々のリソースをダイナミック動作に設定すると、そのリソースのコンフィギュレーション メモリ ビットがマスクされます。無関係なメモリ ビットには影響せず、必要なメモリ ビットのみがマスクされます。マスクしたビットは、コントローラーによる監視を受けません。

マスクしたリソースに関係するコンフィギュレーション メモリ ビットを読み出すと、定数値 (論理 1 または論理 0) が返されます。これにより、エラーの誤検出を防ぎます。マスクされたリソースに関係するコンフィギュレーション メモリ ビットへの書き込みは破棄されます。これにより、ダイナミック ステート エレメントの内容を古いデータで上書きするのを防ぎます。ただしその副作用として、マスクしたリソースにエラーを挿入してもエラーが検出されません。

LUTRAM 機能など多くの場合には、ユーザー デザインでこれらのビットに対するデータ保護を実装してソフト エラーを軽減できます。または、ユーザー デザインを変更してコンフィギュレーション メモリのマスクを必要とするような機能を使用しないようにする方法もあります。