XILINX Spartan3ANを
パラレル・ポート経由で
JTAGコンフィギュレーションするための回路

(2009.09.13)



目 次

■イントロ
■何が問題か? ... パラレル・ケーブルV/Wが使えない理由
■部品の選定 ... 自作のために
■パラレル・ポート−JTAG インターフェース回路
■デバイスのコンフィギュレーション方法
■動作確認環境
■最後に


■イントロ
 XILINX社のCPLD/FPGAを簡単にコンフィギュレーションする方法として,パソコンのパラレル・ポートを使用したJTAGコンフィギュレーションがあります.
 そのためのケーブルとして,パラレル・ケーブルV(販売終了)とかパラレル・ケーブルW(販売中)があります.
 しかし,最近のデバイスのコンフィギュレーションにはこれらのケーブルは使用できず.USB接続のプラットフォーム ケーブル USB IIを使用しなければならなくなりました.
 ところが,プラットフォーム ケーブル USB IIは結構高額であるため,学生の一斉教育用に大量購入するのは困難な状態です.

 今回,Spartan3AN(FlashROM内臓で電源ON時に即起動させられる優れもの?)を使用するため,パラレル・ポート経由でコンフィギュレーションできる回路を検討し,正常に書き込みができることを確認しましたので,ここで紹介します.

■何が問題か? ... パラレル・ケーブルV/Wが使えない理由
 パラレル・ケーブルV/Wを使っていても,JTAG端子経由でコンフィギュレーションするわけなので,ロジック的(ツール的=iMPACT)な問題ではなく,電気的な問題であろうということは容易に想像がつきました.
 いろいろ調べていたところ,ヒューマン・データ社の製品でSpartan3ANのブレッド・ボードXCM-303の紹介サイトに「JTAG Buffer回路で、安定したダウンロードを実現」とのうたい文句がありました(Spartan3ANの使い勝手を試してみようと早速購入しました ... が実はまだ使っていません).

 同製品も回路図が公開されているので,眺めて見ると,JTAG回路に74LVC2G17なる部品が入っていました.74LVC2G17はシュミット・トリガ・バッファが2個入った6ピンのICです.74LVCファミリ(Low Voltage CMOS)は3.3V系の高速ロジックICで,入力が5Vトレラントになっています.

 ということで,パソコンのパラレル・ポートの信号を3.3V系へレベル変換するとともに,シュミット・トリガによって波形整形すれば 問題が解決できるのではないかという結論に至りました.

■部品の選定 ... 自作のために
 74LVC2G17はサイズが3mm程度の小さな部品で,今回の場合2個使用する必要があります.そこで,もっと素人にも使いやすい部品はないか探していたところ,東芝のTC74VHC9541(データ・シート)を見つけました.

 TC74VHC9541はロジック機能としては74xx541に似ており,場合によってリプレース可能なデバイスです.74VHCシリーズはCMOSの入力端子の保護回路として一般的な電源側へ向かうダイオードがない構造になっており(別の方法で保護しているようです),低電圧ロジックへのレベル変換に使えます.また,TC74VHC9541はシュミット・トリガ・バッファが8個入っています.さらに,ロジックの反転ができる端子もあります(今回は反転せずに使用).
 パッケージはDIP,TSSOP,VSSOPがあるようですが,DIPタイプは入手経路が見つからず,今回はTSSOP(0.65mmピッチのフラットパック)を使用しました.
 RSコンポーネンツから入手可能(単価76円,5個単位)です.

■パラレル・ポート−JTAG インターフェース回路
 こちらに実際の回路図を示します.パソコンとの接続部はパラレル・ケーブルVをベースに構成してあります.
 他のJTAGケーブルとも接続できるように,ジャンパで切り替えるようになっています.

■デバイスのコンフィギュレーション方法
 XILINX社のマニュアル(Spartan-3 ジェネレーション コンフィギュレーション ガイド)に解説がありますが,いまいちよくわからないところがあります.
 実際に動作させた際の端子設定を記載しておきます.使用したツールはISE WebPACK 10.1です.

 
FPGAのみコンフィギュレーションする(SRAMのみにダウン・ロード)
  ・M[2:0] = 101 に設定 (JTAGの場合この端子にかかわらずコンフィギュレーションできるようですが)
  ・iMPACTを起動し諸設定の後,デバイスのアイコンを右クリックし,
   Program FPGA Onlyを選択

 コンフィギュレーションに要する時間は数秒程度です(デバイスはXC3S50AN).

 
内臓FlashROMへの書込み後に内部マスタSPIモードでFPGAをコンフィギュレーションする
  ・M[2:0] = 011 に設定
  ・VS[2:0] = 111 または 101 に設定
  ・iMPACTを起動し諸設定の後,デバイスのアイコンを右クリックし,
   Program flash and Load FPGA ... を選択

 コンフィギュレーションに要する時間は20秒程度です(デバイスはXC3S50AN).
 こちらで内臓FlashROMにコンフィギュレーション情報を書き込むと,次に電源を投入した際,即座にコンフィギュレーションが行われ,機能を始めます.
 なお,モード・ピンはM[2:0]は 011 に設定しておき,バリアント・セレクトVS[2:0]は 111 または 101 に設定しておきます.

■動作確認環境
 本回路は,手作り試作回路とプリント基板化した回路で動作確認をしています.ホスト・パソコンはHP社のデスク・トップ・タイプと富士通のデスク・トップ・タイプです.プリンタ・ケーブルは結構長め(2台のパソコンから切換え器を経由して接続)でも正常に動作しました.

■最後に
 意外と簡単にパラレル・ポート経由で最新デバイスのコンフィギュレーションができることがわかりました.

 Spartan3ANはコンフィギュレーション情報を保持しておくためのFlashROMを内臓しており,CPLD感覚で使えるデバイスです.パッケージ・バリエーションが少ないので,今後増えることを期待します(回路規模の大きなフラット・パック品が欲しいですね).


 例によって,ここで紹介した回路を使って作成した回路が正常に動作しなくても当サイトの管理者は一切関知しません.なお,このサイトは自動的に消滅しませんが,予告なしに消滅する可能性があります.