InTime Software

Run InTime To Optimize Vivado Project Mode Designs

162 views April 18, 2019 April 18, 2019 harnhua 0

The InTime design optimization software supports designs created in Vivado's 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 installed.
  • The desired Vivado version and license are properly registered in InTime (Configuration Guide).
  • An XPR project.
  • 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

  • Insert the following line after making sure that your XPR project is closed.

(Linux)

eval exec "/vol1/tools/intime/intime.sh -mode batch -platform minimal -project /vol2/c3po/yt1300/mfalcon.xpr -vendor_toolchain vivado -vendor_toolchain_version 2018.3.0 -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.xpr -vendor_toolchain vivado -vendor_toolchain_version 2018.3.0 -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.xpr: Design to optimize - specify your XPR file.
  • -vendor_toolchain vivado and -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:

Optimize 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 false: 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 containing the timing results, 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