Go Down

Topic: Programming Cyclone 10 Arduino MKR Vidor 4000 (Read 398 times) previous topic - next topic


Hello everyone,

I have been having trouble with choosing a way to program the FPGA Cyclone 10 from Arduino MKR Vidor 4000.

I am working on a academic project so I have to write VHDL code (no SAMD usb blaster emulation) I know how to program in Quartus, so this is done.

Now, I can either use a USB Blaster connected to J11 as is explained here https://forum.arduino.cc/index.php?topic=596469.0.
And my first question is, how can I reach J11 pins from the board?

The other option is using ReverseByte to the ttf file generated in Quartus, as Philippe explains https://philippe-boudot.developpez.com/tutoriels/arduino-mkr-vidor4000/partie1/

I apologize if this is a silly question, but, how is supposed to be used this ReverseByte java file?

I appreciate your responses!!



You might what to have a look at the following link; specifically under the "What about my FPGA Code?" heading.

Also, I have seen it mentioned in a few places where the ReverseByte tool was causing issues since it required Java 11, so it was rewritten in C.  This is listed in the PanetArduino post as well.

And, if using the JTAG header to program the FPGA, from the FPGA repro, this can be performed "only when SAM D21 is in bootloader mode".

 This is accomplished by double pressing the Rest button on the MKR Vidor 4000 board.

I am interested in how successful you are with this though.


I think reversebyte was programmed with go language that was in git repository.

J11 is bottom side of PCB (10 pin). haven't checked is that pin compatible with programmers JTAG connector.
Also SAMD uses jtag for mailbox messages to FPGA.

Are you only planning to use just FPGA or SAMD + FPGA system?

In git repository there are template projects for FPGA with build scripts for arduino library.


From all I have seen, ReverseByte was written in Java where createCompositeBinary as in VidorBitstream was written in Go, however I am not sure if they are equivalent.  The end result app.tff from VidorBitstream does load fine though with some caveats.



createCompositeBinary also include reverseByte functionality


Thank you all for your comments. I am planning to use FGPA + SAMD21 system. I have made java ReverseByte works, and you were right, you need to have that Java version.

To add, I have one question, when we upload this app.h file to the Arduino, how does the SAMD actually programms the fpga?


FPGA image is located outside of SAMD flash area when flashing SAMD image so bootloader knows then to write it to Flash that's connected to FPGA.

Go Up