« 書籍と雑誌の紹介 | トップページ | 夏限定!MITOUJTAG Light版を発売します »

2009.08.04

コンフィグROMのCFピンをバウンダリスキャンで操作すると・・

XILINXのコンフィグROM、「XCF**P」や「XCF**S」シリーズにはCFというピンがあって、普通はFPGAのPROGとつなぐことになっています。この端子をLレベルにすると、FPGAのPROGがLレベルになってリセットがかかり、再コンフィギュレーションができるようになるというためのものです。

この端子は、バウンダリスキャンで操作することができます。ためしにやってみました。次の波形は、Virtex-5の評価ボード(XCF32P & XC5VLX50FG676の構成)において、コンフィグROMのCFピンをおよそ2秒周期で、H/L操作したものです。

Xcfp_cf

CFピンがH/Lすると、Virtex-5のPROGピン(これはバウンダリスキャンでは見えない)が操作されます。
PROGがLになると、Virtex-5はINITをLにしてリセット状態になります。INITは、コンフィグROMのOE/RESETにつながるので、コンフィグROMのOE/RESETもそれにつられてH/Lします。
PROGがHになると、Virtex-5はCCLKを出力してコンフィグを開始します。そのときのコンフィギュレーションクロック(Virtex-5のJ10番ピン、ROMの12番ピン)がバウンダリスキャンで見えています。

ところが、XILINXから提供されている最新のBSDLファイルでは、このCFピンの操作が禁止されてしまいました。
具体的にいうと、現在XILINXからリリースされているBSDLファイル(Revision 1.4)では、CFピンは入力専用ピンとして定義されてしまっています。ひとつ前のBSDLファイル(Revision 1.3)では、CFピンは入出力可能ピンとして定義されていました。しかも、「CFから出力したいなら、BSDLファイルを書き換えろ」と書かれています。普通の人ならBSDLファイルを書き換えるなんて勇気のいることはしたくありません。
どうやら、XILINXとしては、CFピンをあまり操作させたくないように思われます。
しかし、実際のデバイスは入出力可能となっているようですので操作できます。

BSDLファイル中のコメントによると、
「Virtex, Virtex-E, Virtex-4, Spartan-II, Spartan-IIEは、PROGピンがLになると、JTAGのTAPもリセットされてしまいます。」とあります。

というわけで、Virtex-4の評価ボード(XCF08P & XC4VFX12_FF668)で再実験。
まず、FPGAが空っぽの状態で端子の状態を見ます。
すべてのIO端子が、入力状態で落ち着いています。真ん中に2個ある出力端子は、CCLKとDONEです。
Xcfp_cf_v4_1


ここで、おもむろXCF08PのCF端子をLにしてみます。FPGAのPROGもつられてLになるはずです。
すると、FPGAの全端子がHレベルになって、JTAGチェーンにエラーが・・!
PROGをLにしている間、Virtex-4のJTAG機能は全てリセットされてしまうようです。
Xcfp_cf_v4_2


再びCFをHに戻しても、Virtex-4のJTAGは元に戻りません。バウンダリスキャンで取得した端子の状態は、正しい状態を表していません。再度SAMPLEインストラクションを発行しないと、正しい状態に戻らないようです。
Xcfp_cf_v4_3


というわけで、わかったことは、
Virtex, Virtex-E, Virtex-4, Spartan-II, Spartan-IIEを使ったシステムでは、
コンフィグROMのCFピンをバウンダリスキャンで操作するのは避けたほうが良いということです。Spartan-3ANやVirtex-5では問題ありません。

今回はかなりマニアックな内容でしたが、FPGAって奥が深いですね。

|

« 書籍と雑誌の紹介 | トップページ | 夏限定!MITOUJTAG Light版を発売します »

コメント

コメントを書く



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




« 書籍と雑誌の紹介 | トップページ | 夏限定!MITOUJTAG Light版を発売します »