JTAG-HS2を使ってXilinxのFPGAにプログラムを書き込んでみました。
従来の純正のダウンロードケーブルより、小型で非常に使いやすいです。
JTAG-USBケーブルを使ったFPGAへの書き込み方法を分かりやすく紹介します。
XilinxをJTAG-USBケーブルで書き込み!JTAG-HS2を試してみた
XilinxのFPGA書き込み用のJTAG-USBケーブルのJTAG-HS2を購入しました。
Xilinx専用のダウンロードケーブルは高く「$200」以上します
しかしDiligentのJTAG-HS2ならば「$60」程度で購入可能です。
また6pin,14pinの両方のJTAGコネクタに対応可能なケーブルです。
古いJTAGコネクタから新しいコネクタまでどちらにも使用可能です。
実際にJTAG-HS2を使ったXilinxのFPGAの書き込み方法まで紹介します。
JTAG-HS2とは
JTAG-HS2とはXilinxのFPGAにプログラムを書き込むためのツールです。
Xilinxの評価ボードメーカとしても有名なDiligent製のケーブルとなります。
パソコンで書いたプログラムをUSB経由で簡単にFPGAに転送することが可能です。
実際にVerilogで書いたLチカのプログラムをFPGAに転送しています。(リンク先はこちら)
またIPを使った画像出力のプログラムも下記記事で書き込みました。(リンク先はこちら)
FPGAの評価ボードによっては不要
今回紹介するJTAG-HS2ケーブルは評価ボードによっては不要です。
例えばDiligent製のArty S7などはUSBからも直接書き込めるようになっています。
また筆者が使っているボードでも(特殊な手順が必要ですが)USB経由で書き込みが可能です。
筆者の評価ボードでの書き込み方法に関しては下記記事に記載しています。(リンク先はこちら)
FPGAの書き込み方法は各評価ボードで異なってきますので、詳細は説明書をご確認ください。
JTAG-HS3とJTAG-HS2の違い
「JTAG-HS2」と似たような仕様・型番で「JTAG-HS3」があります。値段も同じです。
一番のメリット・デメリットに関して簡単に紹介します。
他細かいこともありますが、詳細はDiligentの公式ページをご確認ください。(リンク先はこちら)
結論は「Zynq以外」の方はJTAG-HS2を購入しておけば問題ないと考えています。
筆者はXilinxののSpartan7を使っていますがJTAG-HS2で特に問題なく対応できています。
JTAG-HS3のメリット
「JTAG-HS3」の14ピンはZynqシリーズ特別なリセット端子用(PS_SRST_B)になっています。
ZynqシリーズのようなSOCが搭載しているFPGAでSOC側のコアのリセットに使えるようです。
JTAG-HS3のデメリット
「JTAG-HS3」14ピンヘッダコネクタ限定となり、6ピンコネクタに変更はできません。
※「JTAG-HS2」はコネクタで変更が可能です
JTAG-HS2のドライバはVivadoにインストール済
Xilinxの開発環境のVivadoをインストールすれば「JTAG-HS2」は自動で使用可能です。
PCにUSBを挿すだけで使用可能です
Vivado上での「JTAG-HS2」経由でのFPGA接続時のログは下記形となります。
3行目のhw_targetの箇所で今回の「Diligent」製のJTAG-HS2を使っていることが分かります。
1 2 3 4 5 6 7 8 |
connect_hw_server: Time (s): cpu = 00:00:01 ; elapsed = 00:00:09 . Memory (MB): peak = 1121.680 ; gain = 3.316 open_hw_target INFO: [Labtoolstcl 44-466] Opening hw_target localhost:3121/xilinx_tcf/Digilent/210249ADDBF6 open_hw_target: Time (s): cpu = 00:00:08 ; elapsed = 00:00:09 . Memory (MB): peak = 2440.941 ; gain = 1319.262 set_property PROGRAM.FILE {C:/Users/ioten/OneDrive/xillinx/HDMI_test/HDMI_test.runs/impl_1/HDMI_test_wrapper.bit} [get_hw_devices xc7s15_0] current_hw_device [get_hw_devices xc7s15_0] refresh_hw_device -update_hw_probes false [lindex [get_hw_devices xc7s15_0] 0] INFO: [Labtools 27-1435] Device xc7s15 (JTAG device index = 0) is not programmed (DONE status = 0). |
CPLDは書き込めない
「JTAG-HS2」ケーブルではCPLDは書き込めません。
9500のようなCPLDを書き込むにはXilinx純正のケーブルの「HW-USB-II-G」が必要になります。
JTAG-USBのICはDiligent専用
「JTAG-HS2」はカバーがされているので中身のICまでは分かりません。
但しICのプロダクトID・製造者を確認しました。
汎用のJTAG-USBのICではなく、Diligent専用のIC型番となっていました。
一応Linux(ラズパイ)で確認した接続時のログを貼り付けておきます。
1 2 3 4 5 6 |
[ 1.471631] usb 1-1.3: new high-speed USB device number 3 using xhci_hcd [ 1.606636] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6014, bcdDevice= 9.00 [ 1.606650] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1.606663] usb 1-1.3: Product: Digilent USB Device [ 1.606674] usb 1-1.3: Manufacturer: Digilent [ 1.606685] usb 1-1.3: SerialNumber: 210249ADDBF6 |
JTAG-HS2でFPGAに直接書き込む方法
FPGA評価ボードにJTAG-HS2を使ってプログラムを書き込みます。
JTAG-HS2を使う上での注意点ですがピン配置は確認しましょう。
実際に「筆者の評価ボード」と「JTAG-HS2」のピン配置が異なっていました。
必要に応じてジャンパーで接続して対応します。
市販の電子工作セットに入っているジャンパーでも通信できました
正しくケーブルを接続した後、評価ボードの電源を入れます。
その後「Open Target」を選択して「Auto Connect」を選びます。
「Auto Connect」に成功すると、Statusが「Connected」になります。
また接続先のFPGAも確認できます。
その後「Program Device」⇒「Program」を選べばFPGAに書き込まれます。
JTAG-HS2でFPGAに接続・書き込む様子は下記動画でも紹介しています。
プログラム書き込むまでの一連の流れが分かりますので是非ご覧ください。
JTAG-HS2の波形を解析してみました
JTAG-HS2でFPGA書き込み中のJTAG信号を別記事にて測定しています。
ロジックアナライザを使っていますので、信号解析まで実施しています。
JTAG-HS2が実際にどのような通信をしているのか確認できます。
是非一緒にご覧ください。(リンク先はこちら)
まとめ
今回はJTAG-HS2でFPGAに書き込む方法に関して紹介させていただきました。
記事をまとめますと下記になります。
JTAG-HS2があればXilinxのにFPGAに書き込み可能です。
Xilinx純正のダウンロードケーブル(HW-USB-II-G)よりも安くコンパクトで使いやすいです。
是非皆さまも試してみて下さい。
コメント
JTAG-HS2はXilinx製CPLDはプログラムは書き込めます。書き込みはXilinx WebPack 14.7を使っています。CPLDはXC9536XLでは確認しています。