FPGARelated.com
Forums

Vivado Tcl

Started by Kocsonya 5 years ago3 replieslatest reply 5 years ago425 views
Summary A user is seeking a method to manage Zynq-7000 processing system components within a Vivado non-project mode workflow without utilizing the GUI.

A user is seeking a method to manage Zynq-7000 processing system components within a Vivado non-project mode workflow without utilizing the GUI. The discussion focuses on how to automate the generation of block design sources for integration into custom Makefiles.

The recommended solution is to use the 'Export Block Design' feature to generate a Tcl script, which can then be manually edited to remove project-specific commands while retaining IP configuration logic.

  • Vivado's 'Export Block Design' command generates a Tcl script that recreates the processing system configuration.
  • The generated Tcl script contains both project-specific setup and the logic required to instantiate IP cores.
  • Users can manually strip project-related commands from the exported script to integrate it into a pure non-project flow.
  • Non-project mode requires manually managing the synthesis and implementation of the generated block design files.
Xilinx VivadoTcl ScriptingZynq-7000Non-Project Mode

I'd like to use Vivado in non-project mode, using makefiles and Tcl scripts. However, my chip is a Zynq-7000 SoC where Vivado needs to generate a module representing the processing system component with all of its AXI ports and other signals that go to the FPGA proper.

I know how to do that in project mode, but can't figure it out for the non-project mode.

Does anyone have any experience of that?

Any help would be much appreciated.

Thanks!


[ - ]
Reply by rnpAugust 24, 2021

Hallo Kocsonya,

Vivado offers a way to this. Just follow te steps (see image below):

  1. Open the desired block design
  2. go to the menu: file -> export
  3. select "Export Block Design"
  4. vivado will open a new window and ask you to enter a name directory for the tcl file


Cheers,

Rafael.

screenshot_20210822_114631_80422.png

[ - ]
Reply by KocsonyaAugust 24, 2021

Rafael,

Thanks for answering, but the point of the exercise is not to open the GUI. I know that method. The Tcl file it writes out is a project mode representation of the block design. That is, when you pass that Tcl file to Vivado, it will then create a directory with lots of files in it.

What I'd like to know if I can do that without opening the GUI. Have a Tcl file which creates just a single Verilog file which contains a module representing Zynq's internal ports to the FPGA and nothing else. No GUI, no project creation, no Vivado maintaining sources.

Thanks again,

Kocsonya


[ - ]
Reply by rnpAugust 24, 2021

Hello Kocsonya,

You can use the generated tcl file to add the PS + AXI connections and IP, and you can just strip out the part related to the Vivado project.


Regards,

Rafael.