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
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.
This should allow you to do what I described in my blog
Mario
Thank you, Thanks for contributing to PYNQ! I followed your approach, but I encountered problems when importing debugbridge
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_size64,), dtype=np.uint16)
raw_input = ( (np.sin(np.linspace(0, 4np.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))
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.
Also, can’t you use the micro USB port to debug?
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.
