Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16606 Discussions

jtagserver - documentaion for client side interface

Altera_Forum
Honored Contributor II
1,601 Views

Hi 

Probably a trivial question for those, who know, but somehow I can't find the answer via "Search Altera" engine. 

 

Is altera jtagserver client-side interface documented? 

I'd prefer documentation at OS/tools independent TCP layer, but if it does not exist then Win32 C-callable dll will do as well, assuming that it came from trusted source (like Altera itself) or in source form. 

 

If jtagserver interface is not documented, then, may be, there is documentation for the interface of FTDI driver that Altera supplies with USB Blaster? 

That's certainly not the layer that I prefer to work, but as a last resort it would be better than nothing.
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
783 Views

Unfortunately for us end-users, Altera has not published the details of the JTAG server or USB-Blaster protocols. 

 

This is unfortunate, as it makes it difficult to both communicate with your own designs, and impossible to integrate custom JTAG interfaces into Quartus. 

 

The USB-Blaster protocol was reverse-engineered a while ago: 

 

http://sourceforge.net/apps/mediawiki/urjtag/index.php?title=cable_altera_usb-blaster 

 

The FTDI DLL can be used to access a USB-Blaster device under Windows. If you want to communicate with your logic, then you need to adhere to the SLD protocol. 

 

This tutorial has a Tcl script (altera_jtag_to_avalon_stp.tcl) that has the details of that protocol 

 

http://www.alterawiki.com/wiki/using_the_usb-blaster_as_an_sopc/qsys_avalon-mm_master_tutorial 

 

and shows you how you can create a TCP/IP client that interfaces with the IP via Altera's Tcl. JTAG performance tests/analysis are here 

 

http://www.ovro.caltech.edu/~dwh/correlator/pdf/altera_jtag_to_avalon_analysis.pdf 

 

What are you trying to do? 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
783 Views

 

--- Quote Start ---  

Unfortunately for us end-users, Altera has not published the details of the JTAG server or USB-Blaster protocols. 

 

This is unfortunate, as it makes it difficult to both communicate with your own designs, and impossible to integrate custom JTAG interfaces into Quartus. 

 

The USB-Blaster protocol was reverse-engineered a while ago: 

 

http://sourceforge.net/apps/mediawiki/urjtag/index.php?title=cable_altera_usb-blaster 

 

The FTDI DLL can be used to access a USB-Blaster device under Windows. 

 

--- Quote End ---  

 

 

As I said above, that's not my preferred solution, but will do if jtagserver protocol is undocumented. 

 

 

 

--- Quote Start ---  

 

If you want to communicate with your logic, then you need to adhere to the SLD protocol. 

 

This tutorial has a Tcl script (altera_jtag_to_avalon_stp.tcl) that has the details of that protocol 

 

http://www.alterawiki.com/wiki/using_the_usb-blaster_as_an_sopc/qsys_avalon-mm_master_tutorial 

 

and shows you how you can create a TCP/IP client that interfaces with the IP via Altera's Tcl. JTAG performance tests/analysis are here 

 

http://www.ovro.caltech.edu/~dwh/correlator/pdf/altera_jtag_to_avalon_analysis.pdf 

 

 

--- Quote End ---  

 

 

And this one, I am afraid, is too high level. 

But I'd look into it, too. 

 

 

--- Quote Start ---  

 

What are you trying to do? 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

I am trying to operated JTAG port (TAP) of non-Altera device on one of our boards. That's pretty old design, but once in a couple of years or so we still need to make few of them. Bit-banging of MCU pins via TAP is our only way for first-time programming of on-board flash. 

In the past (and present) we did it by means of Altera Byte Blaster or compatible cable, accessing PC parallel port with tiny custom Windows kernel driver. 

But recently our old PCs with parallel port are dying at alarming regularity; last week another one bit the dust, not many remained and non in particularly good conditions. And buying a new PC with parallel port is a task that is, probably, above the skills of our purchasing department. 

 

So I am flirting with idea to rewrite TAP access utilities targeting newer Altera JTAG solutions. There are many USB Blasters here, in the company, and USB is not going to disappear anytime soon. So, targeting USB blaster is a path of relatively low risk. However, if we target jtagserver, then the risk will be lower yet plus we will gain OS independence.
0 Kudos
Altera_Forum
Honored Contributor II
783 Views

 

--- Quote Start ---  

 

I am trying to operated JTAG port (TAP) of non-Altera device on one of our boards. 

 

--- Quote End ---  

 

 

Ok, then that is not too hard using the USB-Blaster and the FTDI DLL. 

 

Send an email to my forum name, and I'll send you code to read the JTAG IDCODE. That will be enough to get you started. You cannot just take bit-banged parallel port code and port it to the USB-Blaster, since the USB-Blaster wants to use packets (a list of TCK/TMS/TDI transactions, and whether or not to read TDO), and then sends any TDO responses. It shouldn't be too hard to port your existing code to the USB-Blaster. 

 

Another alternative that does not require using the USB-Blaster protocol is to use the MPSSE mode of the FTDI FT232H devices. You can buy an FTDI cable C232H series 

 

http://www.digikey.com/product-detail/en/c232hm-ddhsl-0/768-1106-nd/2714139 

http://www.digikey.com/product-detail/en/c232hd-ddhsp-0/768-1011-nd/2767783 

 

I have JTAG IDCODE code for those too. 

 

Cheers, 

Dave
0 Kudos
Reply