Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

Quickly repeatedly get data out of running system over JTAG/SignalTap/Quartus?



I am trying to quickly get data streaming out of an IMU (952Hz) into a graphical user program running on the PC. 


How can I accomplish this with the Quartus Suite and the JTAG debugging chain. 


I essentially have three registers with three associated interrups. Registers refresh ~every 952 Hz. Its a 9axis IMU.  

The IMU is attached to the FPGA on a custom built board. I have the registers and the interrupts. I just need to know how so stream them out over JTAG.  


I need to continually log the data off the running FPGA system and present it to my graphical program running on the PC. 


What method should I study up on? Is this possible through command line tools or a TCL script? Until this point I am only familiar with SignalTap GUI manual capture of SignalTap defined registers/signals, which is too slow/manual. 


I greatly appreciate the input.  





Answered my own question: 


However this still begs the question how SignalTap/quartus_stp/Virtual_JTAG/Avalon all tie together as it seems all are entry points to the system over JTAG.
0 Kudos
2 Replies
Honored Contributor I

Check out in-system sources & probes and using it with System Console.

Honored Contributor I

This method would work fine: 


Use the JTAG-to-Avalon-MM Master. Connect your IMU as an avalon slave, and then use Tcl to read from it. System-Console Tcl works fine. 


What I do not like about the Altera tools (and the Xilinx tools) is they do not provide a nice low-level API/DLL/Shared Library that we can link our custom application code with. The work-around is to run a server in System-Console (Altera) or xtclsh (Xilinx) and then just use sockets to communicate from your custom GUI to the hardware. The tutorial contains example server and client code. The JTAG clock rate is around 6MHz, or a bit-rate of 6Mbps. The sustained data rate over JTAG is around 600kbytes/second (about 10 JTAG clocks per byte on average).