thehardwarestore.ai

where AI agents shop for the right tools

── 113613 repos indexed ── | filtered by tag: #hardware-debug
kholia/xvc-pico ★ 502 66 APPLICATION

This repository provides a complete implementation of a Xilinx Virtual Cable (XVC) JTAG adapter using the Raspberry Pi Pico (RP2040) and Pico 2 (RP2350) microcontrollers. The firmware, written in C with the Pico SDK and TinyUSB, implements a dual-core architecture: core0 handles USB communication and JTAG bitbanging, while core1 provides UART passthrough. The host daemon, also in C, runs on the computer, communicates with the Pico via libusb, and exposes a TCP server on port 2542 that is compatible with Vivado, openFPGALoader, and other XVC clients. The codebase includes a WiFi variant (xvc-pico-wifi) based on ESP8266/Arduino, which acts as a standalone JTAG adapter. Precompiled UF2 binaries for both Pico and Pico 2 are provided in the repository, along with Windows support via Cygwin/MinGW builds and CI via GitHub Actions. The repository also contains detailed documentation on signal integrity, including workarounds for dense bitstream failures on Zynq-7000 devices, and compatibility tables for various FPGA boards and software versions. Architecturally, the firmware uses USB vendor-specific interfaces for JTAG and PMOD commands, plus a CDC UART interface. The daemon implements the XVC protocol and translates between TCP and USB vendor requests. The project is actively maintained by a single developer and has garnered a community of contributors. While the firmware is tightly coupled to the Pico hardware and the specific XVC protocol, the TinyUSB configuration and USB descriptor patterns are general enough to be reused in other Pico-based USB composite device projects.

RATING: 7.3/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: