仮想JTAG(altera_virtual_jtag)IP コアのユーザーガイド

ID 683705
日付 10/31/2016
Public
ドキュメント目次

1.3.4. 仮想JTAG IP コアのデザインフロー

仮想JTAG IP コアのデザインには、以下のプロセスが含まれます。
  • 所望の命令レジスター長で仮想JTAG IP コアをコンフィグレーションし、IP コアをインスタンス化する
  • アプリケーションとのインタフェースのためのグルーロジックを構築する
  • ランタイム時に仮想JTAG インスタンスと通信する

仮想JTAG IP コアには、JTAG のデータパスと制御信号に加えて、VIR が含まれています。命令レジスターのサイズは、パラメーター・エディターで設定します。仮想JTAG IP コア上の命令レジスターポートは、VIR のパラレル出力です。virtual_state_uir 信号がアサートされた後、このポートから更新されたVIR 情報をリードすることができます。

IP コアをインスタンス化した後、アプリケーションとインターフェイスするVDR チェーンを作成する必要があります。これを実行するには、仮想命令出力を使用して、どのVDR チェーンがアクティブなデータパスであるかを判断してから、以下を作成します。

  • VIR のためのデコードロジック
  • 各VIR がマップするVDR チェーン
  • VDR チェーンとアプリケーション・ロジック間のインターフェイス・ロジック

グルーロジックは、IP コアからデコードされたワンホット出力を使用して、シフトするタイミングとVDR の更新タイミングを決定します。アプリケーション・ロジックは、非シフト仮想JTAG 状態のいずれの状態中に、VDR チェーンとインタフェースします。

例えば、アプリケーション・ロジックは、virtual_state_uir 信号がアサートされた後に、JTAG ポートからシフトインされた更新値をパラレルにリードすることができます。JTAG ポートからシフトアウトする値をロードするなら、virtual_state_cdr 信号がアサートされた時にする必要があります。最後に、TDO に情報をクロックアウトするためにシフトレジスターを有効にするなら、virtual_state_sdr のアサーション中にする必要があります。

TDI-to-TDO の接続を維持することは重要です。TDI-to-TDO データパスの接続を維持するために、可能なすべての命令コードがアクティブなレジスターチェーンにマッピングされていることを確認する必要があります。アルテラは、マッピングされていないすべてのIR 値のアクティブレジスターとしてバイパスレジスターを含めることを推奨します。

TCK(アルテラ・プログラミング・ケーブルを使用する場合、最大10 MHz のクロック)は、SLD インフラストラクチャー全体のクロックを提供します。メタステーブルの問題を回避するために、JTAG クロックドメインと残りのアプリケーション・ロジックとの間の適切なクロックドメイン・クロッシング向けのベスト・プラクティスに従ってください。デコードされた仮想JTAG 状態信号は、VIR およびVDR チェーンにおける安定した出力を決定するのに役立ちます。

デザインをコンパイルしてデバイスにダウンロードした後、quartus_stp 実行可能ファイルのTcl コマンドとアルテラのプログラミング・ケーブル(例えば、USB‑Blaster™、MasterBlaster™、またはByteBlaster™ II ケーブル)を使用してVIR およびVDR チェーンに直接シフト操作を実行できます。quartus_stp 実行可能ファイルは、Quartus II ソフトウェアで使用可能なすべてのオンチップデバッグ機能用のTcl コマンドを含むコマンドライン実行可能ファイルです。

以下の図は、仮想JTAG IP コアの1 つのインスタンスを含むデザインのコンポーネントを示しています。赤で示された仮想JTAG チェーンのTDI-to-TDO データパスは、DR レジスターのバンクで構成されています。アプリケーション・ロジックへの入力は、VDR チェーンのパラレル出力です。デコードされた状態信号は、VDR 出力が準備されている時のシフト・トランザクションおよび信号の開始と停止を知らせるために使用されます。

IR_out ポート(図で示せず)は、FPGA コアロジックからVIR をパラレルにロードするために使用できるオプションの入力ポートです。

図 9. 単一の仮想JTAG インスタンス化によるデザインのブロック図