JTAG network programmer for Altera Quartus Prime from Raspberry Pi3


    Software released that allows you to make a Raspberry Pi3 network JTAG programmer for CAD Altera Quartus Prime. This solution allows you to remotely load Altera / Intel FPGAs and even conduct remote debugging using the SignalTap tool. Next, I’ll tell you
    how to use this software.

    In fact, all this software was created for the expansion card Mars rover2RPI, which is shown above in the photo. The board has an Intel Cyclone IV FPGA on board and can be connected via an adapter to the Raspberry Pi3 / Pi2 / Pi-Zero. I’ll probably not describe the board here in detail, they already wrote about it on geektimes. However, nothing prevents you from using the same software on your own with other FPGA boards - all you need to do is make a simple JTAG wire and connect it to the GPIO microcomputer raspberry. It just needs four signals tck → GPIO7, tms → GPIO0, tdi → GPIO11 and tdo ← GPIO1, and of course, a good “Earth” / GND.

    Honestly, using the Raspberry Pi as a JTAG programmer was possible before. Quartus Prime CAD allows you to generate SVF files when compiling projects, and the OpenOCD server can load SVF files into the FPGA via GPIO pinhole pins.

    However, unfortunately, OpenOCD cannot be used in conjunction with Quartus CAD itself.
    Now we have other software where possible. The software can be downloaded for free without registration and without SMS here,on the project website .

    The archive contains two files.

    The nw_jtag_srv file is an executable file for raspberry pi. It is a JTAG server managed over a UDP / TCP network.

    This is how nw_jtag_srv starts up in the middle of the terminal console console. I use sudo, because I need access to the GPIO: The



    second file from the jtag_hw_net_blaster64.dll archive is the driver for Altera Quartus Prime. It needs to be rewritten in the c: \ altera \ 17.0 \ quartus \ bin64 folder or another folder, depending on the version of the quartus used.

    After that, starting the “programmer” from the quartus environment, you can find a new network programmer (of course, if there is a network / connection between your computer and raspberry). The name of the detected network programmer contains the IP address of the crack:



    Further, as usual. You can determine the connected chip, load the FPGA.
    Moreover, the network programmer is detected in Altera SignalTap and you can remotely watch signals in the analyzed FPGA:



    Of course, this is the first version of the network programmer. During operation, possible bugs will be found and fixed.

    I hope this tool seems interesting to readers of the Habr, and someone may want to use it in their development.

    Also popular now: