InTime Software

Run InTime To Optimize Vivado Non-Project Mode Designs

532 views April 18, 2019 April 18, 2019 harnhua 0

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:

  1. Invoke InTime from your existing Vivado Tcl script (see example below).
  2. 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:

Applies to:

  • Linux Operating System
  • Windows Operating System

Knowledge Base ID: 20190416 – Last Reviewed: April 18, 2019

Leave a Reply