SlideShare a Scribd company logo
Virtual JTAG
AWS EC2 F1について、みんなでワイワイ調べる会
2017/07/08
Virtual JTAG 解析班
通常のVivadoとハードウェアの接続
• USB - JTAGケーブルをFPGAのJTAGピンに接続
• Vivadoのhw_serverがJTAGアダプタを制御
• 主に2つの用途
• コンフィグレーション
• デバッグ
Vivado hw_server
JTAG
Adapter
FPGA
TCP/IP USB等 JTAG
EC2 F1でのJTAGの使用
• Virtual JTAGという仕組みで接続
• PCIe経由でやり取り
• デバッグ用途のみ
• コンフィグは別経路
Vivado hw_server
FPGA
Custom Logic
TCP/IP PCIe
Static Logic
(PCIe, Management)
BSCAN
接続の詳細
Vivado hw_server
FPGA
Custom Logic
TCP/IP
PCIe
Static Logic
BSCAN
xvc_server
(virtual JTAG server)
TCP/IP
ILA
BSCAN
cl_debug_bridge
Debug Bridge
Debug Hub
ILA
Other Logics
PCIe Core
AXI Lite
接続の詳細
Vivado hw_server
FPGA
Custom Logic
TCP/IP
PCIe
Static Logic
BSCAN
xvc_server
(virtual JTAG server)
TCP/IP
ILA
BSCAN
cl_debug_bridge
Debug Bridge
Debug Hub
ILA
Other Logics
PCIe Core
AXI Lite
xvc_server (virtual JTAG server)
• hw_serverの指示に従って、JTAG信号を操作
• プロトコルは公開されている
• XAPP1251
• 自分で実装すれば、任意の対象にVivadoからの
JTAG信号を出力可能
• Virtual JTAGではPCIe経由でDebug Bridgeと通信
PCIe
xvc_server
PCIe Core
Debug Bridge
hw_server
TCP/IP
AXI Lite
cl_debug_bridge
BSCAN
Debug Bridge
• AXI経由で内部のデバッグコアを操作するIPコア
• PCIe等のAXIマスタ経由でデバッグコアにアクセス
• AXIマスタであればよいのでxvc_serverを実装すれば
任意の通信経路でデバッグコアにアクセス可能
• PCIeのコアの資料に接続方法が載っている
• PG213 UltraScale+ Devices Block for PCIe
• Virtual JTAGではカスタム版を使用?
• レジスタは一致するが、インターフェースが異なる
• AXI Lite SlaveとBSCAN Masterの構成はDebug Bridgeにない
• CL側にcl_debug_bridgeを置くために変更している?
PCIe
xvc_server
PCIe Core
Debug Bridge
hw_server
TCP/IP
AXI Lite
cl_debug_bridge
BSCAN
cl_debug_bridge
• Debug Bridgeからの信号をデバッグコアに接続
• 実際には内部にDebug Bridgeのインスタンスを持つ
• CLでユーザーがインスタンス化する
• CL内のデバッグコアに接続しなければならないため
• cl_ports.vhにBSCANの信号を受けるポート定義あり
• デバッグ機能有効時のみポートが出る模様
• DISABLE_CHIPSCOPE_DEBUGマクロで切り替えられる
• 内部でVivadoが自動でデバッグコアに接続
• ILA使用方法は単体のFPGAボード使用時と同様
• 単にILAをインスタンス化するだけ
PCIe
xvc_server
PCIe Core
Debug Bridge
hw_server
TCP/IP
AXI Lite
cl_debug_bridge
BSCAN
xvc_serverの処理 (hw_server側)
• virtual_jtag_server.c
• 指定されたポートで待ち受け
• デフォルト:10201
• XAPP1251で定義されたコマンドに従って
JTAGの信号を操作
• JTAGのシフト操作など
PCIe
xvc_server
PCIe Core
Debug Bridge
hw_server
TCP/IP
AXI Lite
cl_debug_bridge
BSCAN
xvc_serverの処理 (PCIe側)
• virtual_jtag_pcie.c
• Debug Bridgeのレジスタをmmapしてアクセス
• HALに実装されているPCIeにアクセスする機能を使用
• sysfsの機能?
• PCIeのMgmtPFのBAR2にマップされている模様
• virtual_jtag_pcie.cのopen_port関数
• レジスタの説明はPG213のAppendix Dに記載あり
• Debug BridgeコアのPG245にはなぜか載ってない…
PCIe
xvc_server
PCIe Core
Debug Bridge
hw_server
TCP/IP
AXI Lite
cl_debug_bridge
BSCAN
Vivadoとハードウェアの接続
• Open Targetでターゲットを開く画面を出す
Vivadoとハードウェアの接続
• XVC Serverはリストには表示されない
• スキャンできないので
• ボタンを押して手動で追加
Digilent USB XXX とか出る。たぶん。
Vivadoとハードウェアの接続
• XVC Serverを動かしているホスト名を指定する
• 通常はプロトコルの使用的にローカルで動かすものと思われる
• ポートはVirtual JTAGの場合、デフォルトは10201
• Vivadoのデフォルトと異なるので注意

More Related Content

PPTX
Aws fpga hal-research_20170708
PPTX
Fpgax20170924
PDF
Zynq MPSoC勉強会 Codec編
PDF
FPGAスタートアップ資料
PDF
ZynqMP勉強会
PDF
FPGAによるHDMI to LVDS変換器
PPTX
Tfug kansai vol3
PPTX
Polyphony 新機能ツアー
Aws fpga hal-research_20170708
Fpgax20170924
Zynq MPSoC勉強会 Codec編
FPGAスタートアップ資料
ZynqMP勉強会
FPGAによるHDMI to LVDS変換器
Tfug kansai vol3
Polyphony 新機能ツアー

What's hot (20)

PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出
PDF
Linux : PSCI
PDF
2017年のFPGA Community活動について
ODP
NetBSD/Zynq
PDF
FPGA startup 第一回 LT
PDF
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
PPTX
Infocom webrtc conference japan
PDF
高位合成ツールVivado hlsのopen cv対応
PDF
Pynq祭り資料
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PDF
Takep lpc1114-190614
ODP
MPSoCのPLの性能について
PPTX
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
PDF
Vivado hlsのシミュレーションとhlsストリーム
PPTX
ブラウザでWebRTC - iOSゲートウェイ作ってみた
PDF
GoBGP活用によるSD-WANプラクティス
PDF
PYNQ祭り
PDF
SDNアプローチによるBGP経路監視の提案
PDF
FPGAアクセラレータの作り方
PDF
ICD/CPSY 201412
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Linux : PSCI
2017年のFPGA Community活動について
NetBSD/Zynq
FPGA startup 第一回 LT
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
Infocom webrtc conference japan
高位合成ツールVivado hlsのopen cv対応
Pynq祭り資料
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
Takep lpc1114-190614
MPSoCのPLの性能について
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
Vivado hlsのシミュレーションとhlsストリーム
ブラウザでWebRTC - iOSゲートウェイ作ってみた
GoBGP活用によるSD-WANプラクティス
PYNQ祭り
SDNアプローチによるBGP経路監視の提案
FPGAアクセラレータの作り方
ICD/CPSY 201412
Ad

Similar to EC2 F1 Virtual JTAG (20)

PDF
仮想FPGAクラウド
PDF
Fpga local 20130322
PPTX
20191017 byd lt_hirata
PDF
NVIDIA 入門
PPTX
JTAGを使ってみよう
PDF
pgconfasia2016 lt ssd2gpu
PDF
SDN Japan: ovs-hw
PDF
Vyatta 201310
PDF
20170421 tensor flowusergroup
PPTX
FD.io VPP事始め
PDF
Vyatta @ Open Cloud Campus - 20110630
PDF
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
PDF
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
PDF
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
PPTX
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
PPTX
VPP事始め
PPTX
Clrh 101218
PDF
Hyper-V の本格採用に必要なエンタープライズ設計術
PPTX
HPCフォーラム2015 A-2 グローバル設計環境に欠かせないHP ProLiantサーバー 久保田隆志
PDF
OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月
仮想FPGAクラウド
Fpga local 20130322
20191017 byd lt_hirata
NVIDIA 入門
JTAGを使ってみよう
pgconfasia2016 lt ssd2gpu
SDN Japan: ovs-hw
Vyatta 201310
20170421 tensor flowusergroup
FD.io VPP事始め
Vyatta @ Open Cloud Campus - 20110630
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
VPP事始め
Clrh 101218
Hyper-V の本格採用に必要なエンタープライズ設計術
HPCフォーラム2015 A-2 グローバル設計環境に欠かせないHP ProLiantサーバー 久保田隆志
OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月
Ad

More from Kenta IDA (12)

PPTX
M5StackにFPGAをつないでみた
PPTX
ESP32特集の内容紹介
PPTX
カスタムブロックで自作モジュールをUIFlow対応にする
PPTX
Using SORACOM 3G Module From MicroPython
PPTX
M5StackをRustで動かす
PPTX
MicroPythonのCモジュールを作ってみる
PPTX
ESP32開発環境まとめ2
PPTX
ESP32開発環境まとめ
PPTX
PYNQ単体でUIを表示してみる(PYNQまつり)
PPTX
PSoC4 BLEで作る簡単無線センサーユニット
PPTX
Windows10 IoT CoreとBLE
PPTX
おそらく明日から役にたつC++11新機能
M5StackにFPGAをつないでみた
ESP32特集の内容紹介
カスタムブロックで自作モジュールをUIFlow対応にする
Using SORACOM 3G Module From MicroPython
M5StackをRustで動かす
MicroPythonのCモジュールを作ってみる
ESP32開発環境まとめ2
ESP32開発環境まとめ
PYNQ単体でUIを表示してみる(PYNQまつり)
PSoC4 BLEで作る簡単無線センサーユニット
Windows10 IoT CoreとBLE
おそらく明日から役にたつC++11新機能

EC2 F1 Virtual JTAG

  • 1. Virtual JTAG AWS EC2 F1について、みんなでワイワイ調べる会 2017/07/08 Virtual JTAG 解析班
  • 2. 通常のVivadoとハードウェアの接続 • USB - JTAGケーブルをFPGAのJTAGピンに接続 • Vivadoのhw_serverがJTAGアダプタを制御 • 主に2つの用途 • コンフィグレーション • デバッグ Vivado hw_server JTAG Adapter FPGA TCP/IP USB等 JTAG
  • 3. EC2 F1でのJTAGの使用 • Virtual JTAGという仕組みで接続 • PCIe経由でやり取り • デバッグ用途のみ • コンフィグは別経路 Vivado hw_server FPGA Custom Logic TCP/IP PCIe Static Logic (PCIe, Management) BSCAN
  • 4. 接続の詳細 Vivado hw_server FPGA Custom Logic TCP/IP PCIe Static Logic BSCAN xvc_server (virtual JTAG server) TCP/IP ILA BSCAN cl_debug_bridge Debug Bridge Debug Hub ILA Other Logics PCIe Core AXI Lite
  • 5. 接続の詳細 Vivado hw_server FPGA Custom Logic TCP/IP PCIe Static Logic BSCAN xvc_server (virtual JTAG server) TCP/IP ILA BSCAN cl_debug_bridge Debug Bridge Debug Hub ILA Other Logics PCIe Core AXI Lite
  • 6. xvc_server (virtual JTAG server) • hw_serverの指示に従って、JTAG信号を操作 • プロトコルは公開されている • XAPP1251 • 自分で実装すれば、任意の対象にVivadoからの JTAG信号を出力可能 • Virtual JTAGではPCIe経由でDebug Bridgeと通信 PCIe xvc_server PCIe Core Debug Bridge hw_server TCP/IP AXI Lite cl_debug_bridge BSCAN
  • 7. Debug Bridge • AXI経由で内部のデバッグコアを操作するIPコア • PCIe等のAXIマスタ経由でデバッグコアにアクセス • AXIマスタであればよいのでxvc_serverを実装すれば 任意の通信経路でデバッグコアにアクセス可能 • PCIeのコアの資料に接続方法が載っている • PG213 UltraScale+ Devices Block for PCIe • Virtual JTAGではカスタム版を使用? • レジスタは一致するが、インターフェースが異なる • AXI Lite SlaveとBSCAN Masterの構成はDebug Bridgeにない • CL側にcl_debug_bridgeを置くために変更している? PCIe xvc_server PCIe Core Debug Bridge hw_server TCP/IP AXI Lite cl_debug_bridge BSCAN
  • 8. cl_debug_bridge • Debug Bridgeからの信号をデバッグコアに接続 • 実際には内部にDebug Bridgeのインスタンスを持つ • CLでユーザーがインスタンス化する • CL内のデバッグコアに接続しなければならないため • cl_ports.vhにBSCANの信号を受けるポート定義あり • デバッグ機能有効時のみポートが出る模様 • DISABLE_CHIPSCOPE_DEBUGマクロで切り替えられる • 内部でVivadoが自動でデバッグコアに接続 • ILA使用方法は単体のFPGAボード使用時と同様 • 単にILAをインスタンス化するだけ PCIe xvc_server PCIe Core Debug Bridge hw_server TCP/IP AXI Lite cl_debug_bridge BSCAN
  • 9. xvc_serverの処理 (hw_server側) • virtual_jtag_server.c • 指定されたポートで待ち受け • デフォルト:10201 • XAPP1251で定義されたコマンドに従って JTAGの信号を操作 • JTAGのシフト操作など PCIe xvc_server PCIe Core Debug Bridge hw_server TCP/IP AXI Lite cl_debug_bridge BSCAN
  • 10. xvc_serverの処理 (PCIe側) • virtual_jtag_pcie.c • Debug Bridgeのレジスタをmmapしてアクセス • HALに実装されているPCIeにアクセスする機能を使用 • sysfsの機能? • PCIeのMgmtPFのBAR2にマップされている模様 • virtual_jtag_pcie.cのopen_port関数 • レジスタの説明はPG213のAppendix Dに記載あり • Debug BridgeコアのPG245にはなぜか載ってない… PCIe xvc_server PCIe Core Debug Bridge hw_server TCP/IP AXI Lite cl_debug_bridge BSCAN
  • 12. Vivadoとハードウェアの接続 • XVC Serverはリストには表示されない • スキャンできないので • ボタンを押して手動で追加 Digilent USB XXX とか出る。たぶん。
  • 13. Vivadoとハードウェアの接続 • XVC Serverを動かしているホスト名を指定する • 通常はプロトコルの使用的にローカルで動かすものと思われる • ポートはVirtual JTAGの場合、デフォルトは10201 • Vivadoのデフォルトと異なるので注意