Virtex-5とVirtex-5LXT
平成24年2月10日
世の中ではVirtex-6だ、Virtex-7だと騒がれています。しかし、Virtex-6は3.3Vトレラントでないので使いにくいし、Virtex-7を使うには人柱になる覚悟が必要です。やはり、いまでも安心して使えるのはVirtex-5といえるでしょう。この節では、Virtex-5でJTAGを使う場合の事例を紹介します。
Virtex-5LXのバウンダリスキャン
AVNETのVirtex5 評価ボード「AES-XLX-V5LX-EVL50-G」を用いて、Virtex-5のバウンダリスキャンを行います。このボードは、Virtex5を中心に、ギガビットイーサ、DDR2メモリ、フラッシュROM、EZUSB FX2などが載っている豪華なものです。
写真1 AES-XLX-V5LX-EVL50-Gの外観
デバイスの自動認識を行うと、次の図のように、2つのデバイスが検出された旨が表示されます。
図2 コンフィグROMとVirtex-5が検出された
ここで「はい」を押して、BSDLファイルを選ぶと、バウンダリスキャンができるようになります。
Virtex-5に対してバウンダリスキャンを行うと、次の図のように、コンフィグROM(XCF32P)とFPGAの端子のH/L状態が可視化できます。676ピンの荘厳なデバイスがリアルタイムにワキワキと動いて見えます。
MITOUJTAGの特徴としては、コンフィグROMの端子の状態まで見えることです。普通は、コンフィグROMの端子の状態は、ChipScopeでは見ることができないので、ROMとFPGA間の配線に間違いがあると、発見するまでに相当苦労します。しかし、MITOUJTAGではその接続を簡単に調べることができます。
図3 Virtex-5のバウンダリスキャン結果
AES-XLX-V5LX-EVL50-GにPocket JTAG Cableをつなぐ場合の注意点
さて、AES-XLX-V5LX-EVL50-GにPocket JTAG Cableをつないでみると、微妙に不安定でした。
写真4 Virtex-5ボードにPocket JTAG Cableをつなぐ
その原因は、このボード上にあるEZUSB FX2のI/OがJTAGの信号線につながっていて、外部に接続したJTAGケーブルと信号がぶつかるためです。
ボードの回路図を見ると、EZUSB FX2のI/OとJTAGとの間には、集合抵抗が描かれていますが、Do Not Installとなっていて、実装されないことになっています。しかし、実物のボードでは実装されてしまっています。
図5 AES-XLX-V5LX-EVL50-Gの回路図より引用
回路図どおりになるように、このRP16を外してやると、外部のJTAGケーブルを安定して使用できるようになります。
Virtex-5への書き込み
MITOUJTAGとPocket JTAG Cableを使って、Virtex-5 LX50に書き込みを行った場合、
書き込み時間は約5秒でした
MGTAVCCは電源につながなければならない
Virtex-5にはLXTという高速シリアルトランシーバ内蔵のファミリがあります。このFPGAでバウンダリスキャンを行うには、若干の注意が必要です。高速シリアルトランシーバを使用しない場合でも、Virtex-5LXTの高速トランシーバ用の電源端子、MGTAVCCには電源を供給しなければならないからです。
高速シリアルトランシーバを使用しないからといって、MGTAVCCをGNDに接続したり、オープンにすると、なぜかバウンダリスキャンができなくなってしまいます。
この場合、JTAGのIDCODEは正常に取得できますが、バウンダリスキャンを行うと、すべての端子がLとして認識されてしまいます。MGTAVCCはバウンダリスキャン回路の電源にも使われているようなので、この端子は高速シリアルトランシーバを使用しない場合でも、絶対にGNDにつないではいけません。
そのほか、Virtex-5にはRSVDの端子があります。RSVDはGNDに接続しなければなりません。
Virtex-5回路設計上の注意点とまとめ
注意点
-
Virtex-5のTDO端子は、必ずVCCにプルアップしてください。330Ω程度で良いでしょう。
-
XILINXのTDO端子はオープンドレインになっていることが多く、プルアップしないと信号が出力されません。
-
Virtex-5LXTでは、MGTAVCCに必ず電源を供給してください。そうしないとバウンダリスキャンができません。
まとめ
MITOUJTAGを使うと、Virtex-5LX(やSX)などの端子を簡単な操作で見ることができます。
ぜひともJTAGを有効に活用できる回路設計にしてください。