Showing results for 
Search instead for 
Did you mean: 
Registered: ‎07-24-2018

Python Automated ILA Capture via JTAG or Subprocess


I am aiming to create a fast way to receive ILA data for processing in Python. I have a debug core hooked up to the output of a data converter. This core will gather N samples via AXI Stream. I want to export those N samples to my client computer.

Current Implementation

From my Python script, I am calling a bash script and a tcl script to start Vivado Hardware Manager, run an ILA capture, and export the data to a CSV. The CSV is then parsed in Python to a numpy for further analysis. 

Current Problem

The current implementation is very slow, since Vivado and the HW Manager has to be started for each set of ILA captures.

Candidate Solutions

  1. I can get around using the Vivado HW Manager by issuing the JTAG commands directly from my Python script to arm, trigger, and capture data from the ILA core.
  2. I can keep an instance of Vivado HW Manager open in a separate subprocess and send commands to that subprocess from the main Python instance. 


  1. Is Solution #1 feasible? Where can I find documentation for the ILA-related JTAG commands?
  2. Is there a better way to execute Solution #2?
  3. What other solutions are available to address the Current Problem?


0 Kudos