Masy 17, 2026

Totally scripted Vivado

Hidden inside or behind the Vivado GUI is another way of doing things that involves Tcl scripting. I am far from a fan of Tcl, but learning to do things this way promises many advanages:

Doing this is called "non-project" mode. There is a lot of information in UG895.

UG892 has a whole section "using non-project mode". This is called "design flows overview". 96 pages.

I did a search "can i use vivado without a block model" and learned a lot.

EMIO on the Antminer

The following is where I want to begin.

My last Vivado project involved EMIO on the Antminer S9. As it turned out this was both simpler and much more powerful than I realized or expected.

It was a long path getting there, but it boiled down to this. You can take Vivado, pull in a Zynq block, enable as many EMIO pin as you want, then just declare that they all connect to external ports. Write a constraint file that connects the signals to the device pins and you are done.

Most of the work is writing the constraint file. The game now is doing exactly this without the Vivado GUI.


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org