# How to use XVC on RFSOC ZCU216

**URL:** <https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760>\
**Category:** Support\
**Created:** [September 18, 2025, 9:48am UTC](https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760 "2025-09-18T09:48:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![weicheng\_mao](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/weicheng_mao/32/7260_2.png) [@weicheng\_mao](https://discuss.pynq.io/u/weicheng_mao)\
**Post date:** [September 18, 2025, 9:48am UTC](https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760/1 "2025-09-18T09:48:12Z")

</div>

I encountered a problem, I use RFSOC ZCU216 this board, I do not have JTAG wire debugging, I use PYNQ part to do the top design, and in jupyter inside python test, but my PYNQ version is 2.7, can not use XVC and debug bridge, how should I debug without physical wiring? Should I update my PYNQ version? Or do you use other debugging methods

---

<div class="post-metadata">

**Author:** ![marioruiz](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/marioruiz/32/2177_2.png) [@marioruiz](https://discuss.pynq.io/u/marioruiz)\
**Post date:** [September 18, 2025, 4:40pm UTC](https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760/2 "2025-09-18T16:40:23Z")

</div>

Hi @weicheng_mao,

Welcome to the PYNQ community.

I would suggest trying to add the XVC driver locally to your project and trying it out this way.

Copy this file next to your Notebook/Python code and import it before you create the Overlay object.

> <https://github.com/Xilinx/PYNQ/blob/master/pynq/lib/debugbridge.py>

This should allow you to do what I described in my blog

> [@Using an ILA without Physical micro USB cable \[Part 4\]](https://discuss.pynq.io/t/using-an-ila-without-physical-micro-usb-cable-part-4/7158):
>
> Using an ILA without Physical micro USB cable In many cases it is not possible to have the micro USB cable physically connected to the board. No need to worry, it is still possible to use ILA via the [XVC](https://github.com/Xilinx/XilinxVirtualCable) and the [Debug Bridge](https://docs.amd.com/r/en-US/ug908-vivado-programming-debugging/Debug-Bridge) In the forums there have been a series of questions about this topic, with [satisfactory answers](https://discuss.pynq.io/t/xvc-remote-debug/737/2). In the latest release of PYNQ (3.0.1 at the time of writing) a [community contribution](https://github.com/Xilinx/PYNQ/pull/1363) included support for it directly into PYNQ. You can read more in the [documentation](https://pynq.readthedocs.io/en/latest/pynq_libraries/debugbridge.html) For t…

Mario

---

<div class="post-metadata">

**Author:** ![weicheng\_mao](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/weicheng_mao/32/7260_2.png) [@weicheng\_mao](https://discuss.pynq.io/u/weicheng_mao)\
**Post date:** [September 29, 2025, 9:16am UTC](https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760/3 "2025-09-29T09:16:36Z")

</div>

Thank you, Thanks for contributing to PYNQ! I followed your approach, but I encountered problems when importing debugbridge

 ![image](https://us1.discourse-cdn.com/flex019/uploads/pynq1/original/2X/a/a690ab85facf28135935a4bb19eb7d4961063ae2.png)

I know this is caused by the missing module “pynqutils”, but I don’t know how to get this module. Is this related to my pynq version being 2.7? I read your blog and found that I need to update to pynq 3.0, but RFSOC ZCU216 currently doesn’t seem to have pynq 3.0. My Jupyter code is as follows:

from pynq import Overlay,allocate  
import time  
import numpy as np  
from debugbridge import DebugBridge

ol = Overlay(“bd\_ookmod\_test2.bit”)  
ol.ip\_dict

%matplotlib inline  
import matplotlib.pyplot as plt  
from ipywidgets import \*  
bridge = ol.debug\_bridge\_0  
bridge.start\_xvc\_server(bufferLen=4096, serverAddress=“0.0.0.0”,  
serverPort=2542, reconnect=True, verbose=True)

data\_size = 512  
input\_buffer = allocate(shape=(data\_size,), dtype=np.uint16)  
output\_buffer = allocate(shape=(data\_size_64,), dtype=np.uint16)  
raw\_input = ( (np.sin(np.linspace(0, 4_np.pi, data\_size)) + 1) \* 65536 / 2).astype(dtype=np.uint16)

for i in range(data\_size):  
input\_buffer[i] = raw\_input[i]

plt.plot(range(len(input\_buffer)), input\_buffer)  
print(“the len of input\_buffer:{}”.format(len(input\_buffer)))  
dma\_send = ol.axi\_dma\_0.sendchannel  
dma\_recv = ol.axi\_dma\_0.recvchannel  
dma\_send.transfer(input\_buffer)  
dma\_recv.transfer(output\_buffer)  
dma\_send.wait()  
dma\_recv.wait()  
print(input\_buffer)  
print(output\_buffer)  
plt.plot(range(len(output\_buffer)), output\_buffer)  
print(“the len of input\_buffer:{}”.format(len(output\_buffer)))

print(“DMA sendchannel state is idle:{}”.format(dma\_send.idle))  
print(“DMA sendchannel state is running:{}”.format(dma\_send.running))  
print(“DMA recvchannel state is idle:{}”.format(dma\_recv.idle))  
print(“DM1 recvchannel state is running:{}”.format(dma\_recv.running))

---

<div class="post-metadata">

**Author:** ![marioruiz](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/marioruiz/32/2177_2.png) [@marioruiz](https://discuss.pynq.io/u/marioruiz)\
**Post date:** [September 29, 2025, 9:24am UTC](https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760/4 "2025-09-29T09:24:02Z")

</div>

You can try to installed as shown here: [GitHub - Xilinx/PYNQ-Utils: PYNQ-Utils is a repository containing utilities used in various other repos and projects across the PYNQ ecosystem.](https://github.com/Xilinx/PYNQ-Utils)

Also, can’t you use the micro USB port to debug?

---

<div class="post-metadata">

**Author:** ![weicheng\_mao](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/weicheng_mao/32/7260_2.png) [@weicheng\_mao](https://discuss.pynq.io/u/weicheng_mao)\
**Post date:** [September 29, 2025, 9:30am UTC](https://discuss.pynq.io/t/how-to-use-xvc-on-rfsoc-zcu216/8760/5 "2025-09-29T09:30:48Z")

</div>

Thank you, I will try again. I don’t have a physical cable to debug at the moment, so I want to try using XVC,Maybe I’ll buy a USB or JTAG.
