CAD

Quick Start Guide: Running Xilinx Vivado on the CAD Compute Cluster

Licensing Requirements or Restrictions
Usage terms and conditions apply to this software. For more information, refer to Licensing Requirements or Restrictions on the associated product page:

Table of Contents

The CAD Compute Cluster at CMC Microsystems can accelerate Xilinx Vivado synthesis and implementation runs. As the Cluster does not support Vivado in GUI mode at present, Vivado needs to be run in batch or Tcl mode executing a Tcl script.

You will need to copy project files and scripts to the CAD Compute Cluster (scp, sftp), and the results will need to be copied back to your local machine. For instructions on how to access the CAD Compute Cluster and copy project files to your instance, refer to the CMC CAD Compute Cluster Instruction guide.

Running Xilinx Vivado on the CAD Compute Cluster

You have several options for running a Xilinx Vivado project on the CAD Compute Cluster depending on the state of your project.

Option 1: You Already Have a Vivado Batch Mode Project

  1. Copy the Vivado Tcl script, and all source files, to your account on the Cluster.
  2. Create a bash shell script that executes Vivado in batch mode.

For example, if your Tcl script is myproject.tcl, your shell script, myproject.sh, would be:

#!/bin/sh
vivado -mode tcl -source myproject.tcl

  1. Submit your job:

module load xilinx/vivado.2019.2
bsub < myproject.sh

module unload xilinx/vivado.2019.2

Option 2: You Need to Generate a Project Tcl Script From Vivado GUI

  1. Open your project in Vivado GUI on your local machine.
  2. In Vivado GUI, select File | Project | Write TCL.
  3. Click OK.

The resulting Tcl file will setup project sources, constraints, and settings.

  1. To add synthesis and implementation steps, add lines such as the following to the end of the script (see the Vivado Design Flows Overview document for additional options):

launch_run synth_1
wait_on_run synth_1
open_run synth_1
report_timing_summary
launch_run -to_step write_bitstream impl_1
wait_on_run impl_1
open_run impl_1
report_timing_summary

  1. Zip/tar the project and the Tcl file.
  2. Copy the zipped project and TCL file to your account on the CAD Compute Cluster.
  3. Unzip/tar the project.
  4. Create a shell script to execute the Tcl script:

#!/bin/sh
vivado -mode tcl -source project_2.tcl -tclargs --project_name project_new

Note: You may need to rename your project, otherwise the create_project command may cause an error.

  1. Submit your job:

module load xilinx/vivado.2019.2
bsub < myproject.sh
module unload xilinx/vivado.2019.2

Option 3: You need to Generate Synthesis and Implementation Run Scripts From Vivado GUI

  1. Open your project in Vivado GUI on your local machine.
  2. In Vivado GUI, select Flow | Create Runs.
  3. In the Create New Runs window, select “Synthesis”, “Implementation”, or “Both” and click Next.
    • If the Configure Synthesis Runs window appears, click Next.
    • If the Configure Implementation Runs window appears, click Next.
  4. In the Launch Options window, select Generate scripts only and click Next.
  5. Click Finish.
  6. Zip/tar the project.
  7. Copy the project to your account on the CAD Compute Cluster.
  8. Unzip/tar the project.
  9. Change to the synthesis run directory, for example:

cd project_1/project_1.runs/synth_1

  1. Ensure that the paths in the files runme.sh and wave_gen.tcl files reflect the path in your CAD Compute Cluster account.

For example, if the Vivado project on your local machine is /eng/home/hugh/project_1 and the path to the project on the CAD Compute Cluster is /home/hugh/project_1, use the sed command to find and replace the paths:

sed 's+/eng/home/hugh +/home/hugh +g' wave_gen.tcl >> wave_gen.tcl2
mv wave_gen.tcl2 wave_gen.tcl
sed 's+/eng/home/hugh +/home/hugh +g' runme.sh >> runme.sh2
mv runme.sh2 runme.sh
chmod u+x runme.sh ISEWrap.sh

  1. Submit your job:

module load xilinx/vivado.2019.2
bsub < runme.sh
module unload xilinx/vivado.2019.2

  1. Repeat similar steps for the implementation run, for example project_1/project_1.runs/impl_1.

Resources

Xilinx has a lot of useful documentation on running in batch/Tcl mode, including:

Does your research benefit from products and services provided by CMC Microsystems?
Scroll to Top

CMC Planned Service Disruption

Thursday, August 6
8 am to 9 am EDT

CMC is making improvements to infrastructure that will potentially affect connectivity to CMC managed license servers.

We apologize for the inconvenience this may cause.

We're Hiring!

If you’re ready for a new challenge and want to learn everyday while working with talented colleagues, we want to connect with you.

X