« ブロックRAM活用!! JTAGロジアナ新機能 | トップページ | Interface9月号 JTAGによるCPUデバッグ機能の詳細 »

2005.07.21

バウンダリスキャンセルとピンの状態

いままで、ALTERAのCPLDやCoolRunnerにEXTESTを行って、端子の状態をグラフィカルな操作で変更しようとしても、正しく反映されないことがあった。

この現象は、コンフィギュレーション前では正しくEXTESTできるのに、コンフィギュレーションした後ではうまくいかなかった。
しかも、これらのデバイスでは、JTAGをEXTESTモードにしてもクロックを認識し、内部ロジックは動いている。

どうやら、これらのデバイスでは、バウンダリスキャンレジスタの出力セルの構造が、他のデバイス(XILINX FPGAやXC9500シリーズCPLDなど)と、細かい点で異なるようだ。

現在改良中のMITOUJTAGでは、ピンのグラフィックを右クリックすると、その内部構造を図示するようにしている。この絵を即座に見るとわかるように、EXTESTモードでピンが出力状態でありながら、入力セルと出力の値が一致していない。

ピンの構造
クリックで拡大

ALTEAR CPLDやCoolRunnerでは、EXTESTモード時に、出力セルの値は内部ロジックが出力しようとしている値になっているようだ。実はこれは正しい。
一方、XILINX FPGA等では、EXTEST時の出力セルから読み出される値は、バウンダリスキャンで入力された値になっている。Spartan3やVirtex2の場合、これも正しい。

何が正しいかは、BSDLファイル中に記述されているBC_1とかBC_2という記述がその情報を少し与えてくれているのであるが、それに記述された情報と、実際のデバイスの動作は必ずしも一致していない。
しかも、CPLDやFPGAのようなPLDでは、コンフィギュレーション前後でJTAGバウンダリスキャンのふるまいが変わってもおかしくない。バウンダリスキャンセルの順序が入力→出力→制御か、といった順序にも関係があるかもしれない。
IEEE1149.1の規格書と、各デバイスのBSDLファイルと、データシートに記された内部構造を見ているが、未だにはっきりしないデバイスがいくつかある。

|

« ブロックRAM活用!! JTAGロジアナ新機能 | トップページ | Interface9月号 JTAGによるCPUデバッグ機能の詳細 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« ブロックRAM活用!! JTAGロジアナ新機能 | トップページ | Interface9月号 JTAGによるCPUデバッグ機能の詳細 »