Win10在WSL上使用Vivado对ZCU 102 PYNQ进行ILA调试

  • ZCU 102上有两个USB接口(接口信号均为micro-A),其中靠近角落的接口为jtag端口,另外一个是uart端口

    • vivado自带的硬件管理器通过jtag端口连接到开发板。启动开发板,连接开发板的jtag端口与windows,在设备管理器中可以发现多了一个USB Serial Converter

    • uart端口用于打印开发板串口输出,启动开发板,连接开发板的jtag端口与windows,如果安装了USB转串口驱动,在设备管理器中可以发现多了一个端口种类(端口与LPT),其中包含多个端口COM,可以在PUTTY中尝试选择不同端口连接到开发板

  • 上方说明了如何在windows中找到端口,下方将说明如何将windows上的端口绑定到wsl中。如果将端口绑定到wsl,将无法在windows的设备管理器中找到。

    • WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目。

      • 打开wsl命令行,输入uname -a,确保已安装的内核版本不低于 5.10.60.1。如果已安装的内核版本低于 5.10.60.1则可以通过使用 wsl --shutdown 先关闭 WSL 的任何正在运行的实例,然后运行以下命令来更新它:wsl --update

      • 打开windows命令行(如windows power shell),使用命令 winget install --interactive --exact dorssel.usbipd-win 安装 usbipd-win 即可。 如果你省略了 --interactive,winget 可能会立即重启计算机(如果这是安装驱动程序所必需的操作)。该过程会下载github上的开源安装包进行安装,注意保持网络畅通。

    • 为wsl中的vivado安装驱动

      • 定位到Vivado安装目录下的/data/xicom/cable_drivers/lin64/install_script/install_drivers/,然后运行下面的install_drivers可执行文件(需要root权限)。

      复制代码
       cd ${vivado_install_dir}/data/xicom/cable_drivers/lin64/install_script/install_drivers/
       sudo ./install_drivers
    • 使用管理员身份打开windows命令行(如windows power shell)输入usbipd list来查看所有连接到 Windows 的 USB 设备,第一行是对应USB设备的BUS ID。

    • 启动开发板,连接开发板的jtag端口与windows,输入usbipd list,可以发现DEVICE下多了USB Serial Converter项(如果是uart端口,可以发现多了Silicon Labs Quad CP2108 USB to UART Bridge项,根据USB转串口驱动的不同可能会有所不同)

    • 在windows命令行使用以下命令共享USB设备

      复制代码
       - usbipd bind --busid 1-3(该命令用于共享USB,1-3是我的jtag端口对应的BUS ID,请根据实际情况修改)
       - usbipd attach --wsl --busid 1-3(该命令用于将USB控制权交给wsl,在执行该命令前,确保wsl处于开机状态,每次插拔USB连接线后,需要重新执行该命令)
    • 在wsl命令行中输入lsusb查看所有的USB设备,如果jtag绑定成功,你可以在列表中找到

      • 由于权限原因,Vivado无法访问这个设备,理论上你可以使用root权限运行vivado,也许就ok了,此处采用的方法是修改usb设备的权限,这里比较粗暴,直接将usb设备全部赋予权限。

      复制代码
       chmod -R 777 /dev/bus/usb/
  • 对于使用ila调试PYNQ,请查看参考材料中的Designing an Overlay using Vivado Integrated Logic Analyzer (ILA)

  • 尝试让vivado识别到设备

    • Open HardWare Manager,进行一个Autoconnect,应该能成功找到设备。

    • 如果出现27-3733错误,请尝试在vivado的tcl Console中输入:set_param labtools.enable_cs_server false,然后继续连接开发板,

    • 如果连接到开发板但是右侧没有黑框(用于显示波形图背景),请杀死vivado进程并且从第一步Autoconnect继续尝试。

  • 参考材料