The DebugBridge class provides register descriptor and a Xilinx Virtual Cable (XVC) server on Debug Bridge IP in AXI to BSCAN and AXI to JTAG configurations.
The XVC server in this class bridges between Vivado hardware servers and the Debug Hub through Ethernet. Vivado then will operate the Debug Bridge as a virtual JTAG adapter.
When instantiating a Debug Bridge IP in the overlay in AXI to BSCAN configuration, the debug hub for debugging IPs will be connected to the Debug Bridge by default. Under this configuration, the XVC connection enables conventional debugging IPs, including ILAs and VIOs, to work with overlays. The XVC connection also allows remote debugging without physically attaching a JTAG adapter.
Another use case is to control a Debug Bridge IP in AXI to JTAG configuration. In this config, the Debug Bridge runs as a remote JTAG adapter for another AMD-Xilinx FPGA with its JTAG pins connected to the Debug Bridge in the PYNQ host.
This class provides a Python implementation of the XVC server v1.0 for ease of use and integration with PYNQ overlays. More details about XVC could be found in the Product Page and the Official Wiki.
stop_xvc_server() methods to setup and kill the XVC server.
start_xvc_server(bufferLen=4096, serverAddress="0.0.0.0", serverPort=2542, reconnect=True, verbose=True)
Create and start an XVC server listening to the specified address and port. The server will be running in a separate thread. Each Debug Bridge allows one and only one hardware server to connect at once.
bufferLenis the length of data buffer for XVC shift commands in bytes
serverAddressis the address the XVC server listens to
serverPortis the port the XVC server listens to
reconnectwhen True allows listening to the next connection when the previous one is disconnected
verbosewhen True prints the connection status of the XVC server
Stop the XVC server and break active connections.
Stop the XVC server with
downloading any overlay.
The XVC server cannot detect overlay replacement. Downloading another overlay with an XVC server running will cause access to an uninitialized PL, eventually halt the PS.