Next chapter of MKR Vidor 4000 (FPGA upload & live data exchange)

Hi there, i finally finished upgrading my JTAG Interface library for the MKR Vidor 4000.

To get this out of the way, this is not an ordinary JTAG library, it is much more than that. It is an ecosystem that entirely changes and improves how bitstreams are being developed and uploaded.

JTAG_Interface logo

The entire library has been reworked:

It is now part of the official Arduino Library Manager. To install it, just search for JTAG_Interface.
This library cares about uploading the bitstream to the FPGA and then communicating, so you can read from and write to the FPGA, so both your programs can communicate at runtime. It is very easy to use so beginners can immediately start developing and don't have the problem that the FPGA is isolated without communication anymore.

The FPGA side is now fully configurable to use as many registers with as many bits you like. The configuration is automatically detected and checked to prevent configuration errors.

JTAG_Interface logo

Besides the JTAG library there is also my new ByteReverser utility (linked in README) for converting and copying the bitstream in a nice, user-friendly GUI.

JTAG_Interface logo

So, conclusion:
Here is a new official Arduino library which handles the FPGA for custom bitstreams. The workflow is now:
Compile in Quartus -> Single click in on the tray icon in the taskbar -> Upload the sketch.

Sketch runs, bitstream is automatically uploaded and a single function call is needed to write to or read any data from the FPGA. It is also very fast, so you could for example easily transfer a duty cycle several thousand times per second and on the FPGA read it and generate a PWM signal.

There will never again be any problems with bit-reversing the bitstreams.

As far as i know this should currently be the by far easiest way to develop FPGA bitstreams. Many people are already using it, for example a well-known university in the netherlands, which found this project and uses it for all their students to test FPGA implementations in the topic of neuromorphic engineering (simulation of nervous systems). When i get some good logos, this will also be written down in the README, so keep an eye on it (I want to get permission before I say the name).

That's all there is needed, I think the workflow could not get any easier or faster. This is the next chapter of the Arduino MKR Vidor 4000.

Here is the GitHub link:
Make sure to read the repo's README, it explains everything.

Start with the example, try around and please tell me of any problems.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.