モノリシックおよび UltraScale+ SSI デバイス - 3.1 日本語

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

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

この図 に、モニター インターフェイスの送信プロトコルを示します。1 バイトのデータを送信する場合、コントローラーはまず monitor_txfull 信号をサンプリングして送信バッファーに 1 バイトのデータを格納できる空きがあるかを調べます。 monitor_txfull が Low の場合、コントローラーは monitor_txdata[7:0] にデータを与えし、 monitor_txwrite を 1 クロック サイクルだけアサートして 1 バイトのデータを送信します。

図 H-1: モニター インターフェイスの送信プロトコル

X-Ref Target - Figure H-1

mon-tx.jpg

コントローラーは、 monitor_txdata[7:0] に一連のデータを与え、 monitor_txwrite を複数サイクル続けてアサートすることでバースト書き込みを実行できます。ただしコントローラーは monitor_txfull を監視することにより、送信バッファー オーバーランを防いでいます。

データ受信側のペリフェラルは、バッファーの空きを正しく追跡して monitor_txfull で報告します。 ペリフェラルは、 monitor_txwrite = High をサンプリングした次のサイクルで、データの書き込みによってバッファーが完全にフルである場合は monitor_txfull をアサートする必要があります。

また、ペリフェラルはコントローラーからの monitor_txwrite への応答としてのみ monitor_txfull をアサートする必要があります。ペリフェラル内部のイベントに基づいて monitor_txfull をアサートすることはできません。これは、コントローラーが書き込みを実行する何サイクルか前に monitor_txfull をサンプリングすることがあるためです。

ペリフェラルが monitor_txfull をアサートしている間、コントローラーは送信待ちのデータがある場合でも動作を停止します。これにより、コントローラーのエラー軽減パフォーマンスが低下します。たとえばエラー訂正が発生してコントローラーがエラーを正しく訂正 (または処理) した場合、コントローラーはステータス レポートを送信します。 ペリフェラルがこのメッセージを完全に受信するまでコントローラーは動作を停止し、監視ステートに戻ることができません。 したがって、カスタム ペリフェラルを設計する際はバッファー深さとデータ消費レートのバランスを考慮する必要があります。

この図 に、モニター インターフェイスの受信プロトコルを示します。 1 バイトのデータを受信する場合、コントローラーはまず monitor_rxempty 信号をサンプリングして受信バッファーに 1 バイトのデータが格納されているかを調べます。 monitor_rxempty が Low の場合、コントローラーは monitor_rxdata[7:0] から 1 バイトのデータを受信し、 monitor_rxread を 1 クロック サイクルだけアサートして受信完了を通知します。

図 H-2: モニター インターフェイスの受信プロトコル

X-Ref Target - Figure H-2

mon-rx.jpg

コントローラーは、 monitor_rxdata[7:0] からデータ シーケンスを取得し、 monitor_rxread を複数サイクル続けてアサートすることでバースト読み出しを実行できます。ただしコントローラーは monitor_rxempty を監視することにより、受信バッファー アンダーランを防いでいます。

データ送信側のペリフェラルは、バッファーのステータスを正しく追跡して monitor_rxempty で報告します。ペリフェラルは、 monitor_rxread = High をサンプリングした次のサイクルで、バッファーが空の場合は monitor_rxempty をアサートする必要があります。

また、ペリフェラルはコントローラーからの monitor_rxread への応答としてのみ monitor_rxempty をアサートする必要があります。ペリフェラル内部のイベントに基づいて monitor_rxempty をアサートすることはできません。これは、コントローラーが読み出しを実行する何サイクルか前に monitor_rxempty をサンプリングすることがあるためです。

モニター インターフェイスで送受信するデータのフォーマットは、バイト ストリーム ASCII コードです。各 ASCII コードは、1 バイトのデータで表されます。トランザクションはすべて 1 バイトずつ実行されます。

たとえば、エラー挿入コマンド N C0000007A4 を送信する場合、ペリフェラルは monitor_rxempty を Low に駆動してデータの準備ができていることを通知した後、ASCII コードを N ( x4E )、スペース ( x20 )、C ( x43) 、(中略)、4 ( x34 ) の順にモニター RX インターフェイスに送信します。 この図 に、このトランザクションを示します。

図 H-3: モニター RX インターフェイスを使用してペリフェラルからエラー挿入コマンドを送信

X-Ref Target - Figure H-3

sem-ctrl-send-err-inj-mon-rx.png

コマンドを受信すると、コントローラーはモニター TX インターフェイスを使用してコマンドを送り返します (エコー バック)。このエコー バックにより、コントローラーがコマンドを受信し、次のコマンドを受信可能な状態であることがペリフェラルに通知されます。このことは、 monitor_txfull が Low になることによっても示されます。 この図 に、このトランザクションを示します。

図 H-4: SEM Controller がペリフェラルからエラー挿入コマンドを正しく受信した場合

X-Ref Target - Figure H-4

sem-ctrl-rec-err-inj-frm-perip.png

注記: コントローラーがペリフェラルから受信したデータまたはコマンドが正しくないか無効な場合、コマンドはペリフェラルへエコー バックされません。