The InTime design optimization software supports designs created in Vivado's non-project mode. By inserting a single command in your existing Vivado Tcl script, you can invoke InTime to optimize your design.
Requirements:
- Latest version of InTime.
- The desired Vivado version and license are properly registered in InTime (Configuration Guide).
- A post-synthesis checkpoint (DCP) on which link_design has been executed, so that all constraints and IP core dependencies are in the DCP.
- An InTime Tcl script (see example below)
Steps:
- Invoke InTime from your existing Vivado Tcl script (see example below).
- Create an InTime Tcl script from the example below to run your InTime optimization.
Invoke InTime from your Vivado Tcl script
- Add the following line to execute after your post-synth_design, post-link_design DCP has been generated.
(Linux)
eval exec "/vol1/tools/intime/intime.sh -mode batch -platform minimal -project /vol2/c3po/yt1300/mfalcon_linked.dcp -vendor_toolchain vivado -vendor_toolchain_version 2018.3.1 -s /vol2/c3po/intime_script.tcl" >@ stdout
(Windows)
eval exec ""C:/Program Files/Plunify/InTime/bin/intime.exe" -mode batch -platform minimal -project C:/Users/c3po/yt1300/mfalcon_linked.dcp -vendor_toolchain vivado -vendor_toolchain_version 2018.3.1 -s C:/Users/c3po/yt1300/intime_script.tcl" >@ stdout
Description of arguments:
- /vol1/tools/intime/intime.sh: Change this to the location of intime.sh or intime.exe in your environment.
(Windows) Typically C:/Program Files/Plunify/InTime/bin/intime.exe - -mode batch: Tells InTime to operate in batch mode.
- -platform minimal: Tells InTime to operate in non-GUI mode.
- -project /vol2/c3po/yt1300/mfalcon_linked.dcp: Design to optimize - change this to point to your DCP file.
- -vendor_toolchain vivado -vendor_toolchain_version 2018.3.1: Use the specified Vivado version.
- -s /vol2/c3po/intime_script.tcl: Runs an InTime Tcl script (see example script below) - change this to point to the InTime Tcl script that you are creating.
- >@ stdout: Echo output to the terminal as InTime runs.
InTime Tcl script example:
Optimizes on a standalone machine:
flow reset flow set run_target local flow set runs_per_round 40 flow set rounds 1 flow set concurrent_runs 8 flow set control_create_bitstreams false flow run_recipe "hot_start"
Explanation:
- flow reset: Starts a new optimization job
- flow set
- run_target local: Generate and compile builds on the current machine
- runs_per_round 40: Generates up to 40 optimization builds
- rounds 1: Stop after 1 iteration of builds
- concurrent_runs 8: Compiles 8 builds at a time - adjust accordingly to your machine's specifications.
- control_create_bitstreams: Programming files are not required at this point.
- flow run_recipe "hot_start": Specifies the InTime optimization recipe (built-in optimization flow) to run.
View Results
When InTime completes, you should see output that is similar to the following:
Detailed Summary: --------------------------------------------------------------------------------------- | Job ID | Strategy | Change | TNS * | Worst Slack | Current Action | Run State | --------------------------------------------------------------------------------------- | 866 | hotstart_1 | 0.879 | -0.351 | -0.094 | | RunDone | | 866 | hotstart_2 | 0.215 | -1.015 | -0.175 | | RunDone | ... <truncated for brevity> ... | 866 | hotstart_35 | 0.215 | -1.015 | -0.175 | | RunDone | --------------------------------------------------------------------------------------- | 866 | impl_1 (Base) | | -1.23* | -0.198* | | RunDone | --------------------------------------------------------------------------------------- Recipe completed successfully. ***************** RECIPE END *****************
References:
- Run InTime in Tcl (Command-line) Mode
Applies to:
- Linux Operating System
- Windows Operating System
Knowledge Base ID: 20190416 – Last Reviewed: April 18, 2019