Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21570 Discussions

Quartus Prime Design Software - JTAG usage

Alkesh_shah
Novice
1,171 Views

I am using Quartus-Prime along with the USB-Blaster to control my Device (using JTAG).

I want to control my device without using Quartus. Please help me with the public (BSP) APIs of USB-Blaster so that I can access it without the need of Quartus.
Also if we do not have any public APIs, what can be the alternate solution on controlling the end-device without Quartus-prime application.

 

BR,

Alkesh

0 Kudos
7 Replies
FvM
Honored Contributor II
1,147 Views

Hi,

"control my device" doesn't say which interface to FPGA core you are using. Presume you are talking about virtual JTAG functions like Source&Probe, In-System-Memory Content Editor, JTAG UART, Virtual JTAG IP.

USB Blaster and other programming cables are accessed through jtagserver. The client interface is documented here https://github.com/intel/libaji_client You need to install at least Quartus standalone programmer to have jtagserver available on a Windows or Linux computer.

Quartus tools are accessing jtagserver through a common client stack with sld_hapi.dll on top, unfortunately completely undocumented. You can list the exports to get an idea what it's doing.

Regards
Frank

0 Kudos
Alkesh_shah
Novice
1,139 Views

Thanks for the update.

When I say "control my device",

I actually want to do all the operations (high-level and low-level) that are supported by the Quartus-Prime over JTAG-Chain Debugging.

High-level may include operations such as device-programming or device-configuration.
Low-level may include operations such as IR/DR boundary scanning or state transition of TAP-Controller, etc.

0 Kudos
FvM
Honored Contributor II
1,095 Views

Hi,
so basically generic JTAG stuff. OpenOCD interface seems appropriate, either through Quartus jtagserver or third party drivers accessing USB Blaster directly. 

Regards
Frank

Alkesh_shah
Novice
762 Views

Hello,

 

I am trying to execute the tcl commands few basic commands works as expected.
eg: Finding the available devices, opening a device, locking it, closing it, etc.

But was not successful in doing the scans (IR and DR scans), would like to know if you can help me with the exact commands supported.

 

Thanks,
Alkesh

0 Kudos
Farabi
Employee
973 Views

Hello,


You may explore open source : JAM STAPL PLAYER as well.

link : https://www.intel.com/content/www/us/en/docs/programmable/683089/current/jam-stapl-players.html


regards,

Farabi


Alkesh_shah
Novice
818 Views

Well, I tried an approach of having a .svf and executing it using quartus_stp.exe.

And unfortunately, it did not work.

I created a .svf file using python. Would be great if you can provide some insights on how to execute it.

 

Thanks

0 Kudos
Fakhrul
Employee
198 Views

Hi Alkesh,


Could you share what the issue you're facing? Btw, there are no official public APIs for direct USB-Blaster access outside of Quartus-Prime. However, you have a few alternative options:


  1. JAM STAPL Player: JAM STAPL Player which you're currently using.
  2. Quartus Standalone Programmer + jtagserver: You can use the libaji_client open-source library to interact with jtagserver for advanced JTAG tasks.


Regards,

Fakhrul


0 Kudos
Reply