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

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

1.8. SLD_NODE 検出と列挙

カスタムJTAG コントローラーを使用して、ランタイム時にデザインからすべての仮想JTAG IP コア・インスタンスを列挙するために必要なトランザクションを検出できます。 すべてのSLD ノードとその中に含まれる仮想JTAG レジスターは、以下の表に示す2 つの命令レジスター値USER0USER1 の対象となります。
表 10.  USER0 とUSER1 命令値

命令

バイナリーパターン

USER0

00 0000 1100

USER1

00 0000 1110

USER1 命令は、sld_hub またはSLD ノードの仮想IR を対象としています。つまり、USER1 命令がデバイスに発行されると、後続のDR スキャンは、DR スキャン内に含まれるアドレスフィールドに基づいて、特定の仮想IR チェーンをターゲットにします。以下の表は、USER1 命令のDR ターゲット、仮想IR がどのように解釈されるかを示しています。

以下の表のVIR_VALUE は、ターゲットSLD ノードの仮想IR 値です。このフィールドの幅はm ビット長であり、m はデザイン内のすべてのSLD ノードの最大VIR の長さです。VIR の長さがm ビット未満のすべてのSLD ノードは、VIR_VALUE に長さm までのゼロを充填する必要があります。

表 11.  USER1 DR

m + n – 1

m

m – 1

0

ADDR [(n – 1)..0]

VIR_VALUE [(m – 1)..0]

ADDR ビットは、仮想IR シフトがターゲットとするアクティブSLD ノードに信号を送信するためのアドレス値として機能します。ADDR の長さはn ビットです。n ビットは、以下に示すように、デザイン内のすべてのSLD ノードをエンコードするのに十分な長さでなければなりません。

n = CEIL(log2(Number of SLD_nodes +1))

以下に示すように、アドレスマップのSLD ハブは常に0 です。

ADDR[(n -1)..0] = 0

デザイン内のSLD インスタンスの検出と列挙には、USER1 DR(m およびn)の寸法を決定するためのsld_hub の問い合わせと、各SLD インスタンス、具体的には仮想JTAG IP コア・インスタンスと、USER1 DR のADDR ビットに含まれるアドレス値との関連付けが必要とされます。

検出と列挙のプロセスは、次の手順からなります。

  1. HUB_INFO 命令でSLD ハブに問い合わせます。
  2. 32 ビットのHUB IP コンフィグレーション・レジスターをシフトアウトして、デザイン内のSLD ノードの数とUSER1 DR の寸法を決定します。
  3. デザイン内の各SLD ノードの32 ビットSLD_NODE_INFO レジスターをシフトアウトすることによって、仮想JTAG インスタンス・インデックスをADDR 値に関連付けます。