CADpass client secure connection (will be referred to as CADpass client or CADpass in this document) is a utility provided by CMC Microsystems that creates a secure connection between client PC’s, workstations, and computer sessions, and the CMC managed infrastructure.
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 Getting Started with CMC CAD Compute Cluster.
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.
- You Already Have a Vivado Batch Mode Project
- You Need to Generate a Project Tcl Script From Vivado GUI
- You need to Generate Synthesis and Implementation Run Scripts From Vivado GUI
Option 1: You Already Have a Vivado Batch Mode Project
- Copy the Vivado Tcl script, and all source files, to your account on the Cluster.
- 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
- Submit your job:
module load xilinx/vivado.2019.2
bsub < myproject.shmodule unload xilinx/vivado.2019.2
Option 2: You Need to Generate a Project Tcl Script From Vivado GUI
- Open your project in Vivado GUI on your local machine.
- In Vivado GUI, select File | Project | Write TCL.
- Click OK.
The resulting Tcl file will setup project sources, constraints, and settings.
- 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
- Zip/tar the project and the Tcl file.
- Copy the zipped project and TCL file to your account on the CAD Compute Cluster.
- Unzip/tar the project.
- 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.
- 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
- Open your project in Vivado GUI on your local machine.
- In Vivado GUI, select Flow | Create Runs.
- 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.
- In the Launch Options window, select Generate scripts only and click Next.
- Click Finish.
- Zip/tar the project.
- Copy the project to your account on the CAD Compute Cluster.
- Unzip/tar the project.
- Change to the synthesis run directory, for example:
cd project_1/project_1.runs/synth_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
- Submit your job:
module load xilinx/vivado.2019.2
bsub < runme.sh
module unload xilinx/vivado.2019.2
- 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: