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

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

13.7.2.2. アクセスプロトコル

オンチップ・デバッグ・ポートは、 Avalon® -MMスレーブ・インターフェイスを介してキャリブレーション・データへのアクセスを提供します。 シーケンサーにコマンドを送信するには、ユーザーロジックがシーケンサー・メモリーのコマンドスペースにコマンドコードを送信します。各グループのキャリブレーションが完了後、シーケンサーは新しいコマンドのコマンドスペースをポーリングします。また、全体のキャリブレーションの完了後にも継続して行います。

ユーザーロジックからシーケンサーにコマンドを送信する通信プロトコルは、以下に示すデータ構造のマルチステップ・ハンドシェイク、およびそれに続く図に示されているアルゴリズムを使用します。

typedef struct_debug_data_struct {
...
// Command interaction
alt_u32 requested_command;
alt_u32 command_status;
alt_u32 command_parameters[COMMAND_PARAM_WORDS];...
}

コマンドをシーケンサーに送信するには、ユーザーロジックはまず、command_statusワードのTCLDBG_TX_STATUS_CMD_READYの値をポーリングする必要があります。これは、シーケンサーがコマンドを受け入れる準備ができていることを示します。シーケンサーのコマンド受け入れ準備が完了後、ユーザーロジックはコマンド・パラメーターをcommand_parametersに書き込み、その後コマンドコードをrequested_commandに書き込む必要があります。

シーケンサーはコマンドコードを検出し、command_statusTCLDBG_TX_STATUS_CMD_EXEに置き換え、コマンドを処理していることを示します。シーケンサーがコマンドの実行を完了すると、command_statusTCLDBG_TX_STATUS_RESPONSE_READYに設定し、コマンドの結果が読み出し可能であることを示します。要求されたコマンドを不正であるとして拒否した場合、シーケンサーはcommand_statusTCLDBG_TX_STATUS_ILLEGAL_CMDに設定します。

ユーザーロジックは、TCLDBG_CMD_RESPONSE_ACKrequested_commandに書き込むことでコマンドの完了を確認します。シーケンサーは、command_statusSTATUS_CMD_READYに戻すことで応答します。不正なコマンドを受信した場合、CMD_RESPONSE_ACKを使用してクリアーする必要があります。

図 120. デバッグ・アルゴリズムのフローチャート