Skip to content

Quick Start for InTime

1. Start InTime

InTime Desktop Icon After installation, there are 2 ways to run InTime

Double-click the InTime desktop shortcut shown on the left. This icon should appear on the desktop after InTime installation.

Alternatively, open a command line terminal and enter the following command:

OS Path
Linux <InTime installation directory>/intime.sh
Windows <InTime installation directory>/intime.exe

There are additional arguments if you are running in Tcl mode or batch mode. Refer to InTime arguments for more information.


2. Install the InTime license and configure FPGA tool settings

Refer to single seat configuration page to install the license and configure the toolchain.

You can skip toolchain configuration if the environmental variables have already been set up. Simply start InTime with the -tc <toolchain name>. It will pick up the right toolchain automatically. Refer to the Quick Setup page.

Example: to automatically register the toolchain for vivado,

$ ./intime.sh -tc vivado


3. Open An Example Project

Once the installed vendor tools have been registered, go to File -> Open Example Project. A list of possible projects based on your installed toolchain will be displayed.

Examples

Select the right project and click to open your FPGA project. If successful, the project name will be displayed, similar to the one shown below

Project successfully opened

The next step is to select an InTime recipe. A recipe represents a compilation and learning flow.

  • For Vivado, proceed to the next section.
  • For ISE, click here to jump to this section.
  • For Quartus, click here to jump to this section.

4. Select A Recipe

Using Vivado

A list of available recipes for the Xilinx Vivado software is shown below. Click on the "Recipe" dropdown box to view this list.

Typical Recipe list

For this quickstart, we will select the "Hot Start" recipe.

What is the "Hot Start" recipe?

This recipe predicts strategies using existing models within InTime. The purpose of this recipe is to quickly get to an optimal result by exploring only placement & routing settings.

This recipe generates 1 round up to 40 compilations. Even if it does not meet the required timing performance, the data generated establishes a baseline of performance and serves a secondary purpose of becoming training data for future rounds.

Tip

For a new Vivado project, Plunify recommends starting with the Hot Start recipe.

Configure the flow properties

For the Hot Start recipe, configure the following properties below.

  • Run Target: Local
  • Runs Per Round: 20 (You can go up to 47.)
  • Rounds: 1 (This is fixed in Hot Start.)
  • Concurrent Runs: 2 (This can be higher based on your machine's resources.)

HotStart

if you are running on multiple machines (Private Cloud), update the flow properties to match the following:

Run Target      : Private Cloud
Runs Per Round  : 10
Rounds          : 1
Concurrent Runs : 2

Once that is done, jump to the "Start Optimization" section.


Using ISE

For ISE, we will select the "InTime Default" recipe. This recipe generates different synthesis and implementation options. The purpose of this recipe is to learn about the dependencies between the design and the tool parameters through multiple rounds of compilations. Note that the list of recipes available for ISE is different from that in other toolchains.

Default

Configure the flow properties

For the default recipe, configure the following properties below.

  • Run Target: Local
  • Runs Per Round: 20 (You can go up to 40.)
  • Rounds: 3 (More rounds can be configured here.)
  • Concurrent Runs: 2 (This can be higher based on your machine's resources.)

Default

if you are running on multiple machines (Private Cloud), update the flow properties to match the following:

Run Target      : Private Cloud
Runs Per Round  : 10
Rounds          : 1
Concurrent Runs : 2

Once that is done, jump to the "Start Optimization" section.


Using Libero

For Libero, we will select the "Hot Start" recipe. This recipe generates implementation options. The purpose of this recipe is to learn about the dependencies between the design and the tool parameters through multiple rounds of compilations. Note that the list of recipes available for Libero is different from that in other toolchains.

Default

Configure the flow properties

For the default recipe, configure the following properties below.

  • Run Target: Local
  • Runs Per Round: 20 (You can go up to 40.)
  • Rounds: 3 (More rounds can be configured here.)
  • Concurrent Runs: 2 (This can be higher based on your machine's resources.)

Default

if you are running on multiple machines (Private Cloud), update the flow properties to match the following:

Run Target      : Private Cloud
Runs Per Round  : 10
Rounds          : 1
Concurrent Runs : 2

Once that is done, jump to the "Start Optimization" section.


Using Quartus

For Quartus, we will select the "Hot Start" recipe. This recipe generates different synthesis and implementation options. The purpose of this recipe is to learn about the dependencies between the design and the tool parameters through multiple rounds of compilations. Note that the list of recipes available for Quartus is different from that in other toolchains.

Quartus Recipes

Configure the flow properties

Configure the following properties below.

  • Run Target: Local
  • Runs Per Round: 20 (You can go up to 40.)
  • Rounds: 3 (More rounds can be configured here.)
  • Concurrent Runs: 2 (This can be higher based on your machine's resources.)

HotStart

if you are running on multiple machines (Private Cloud), update the flow properties to match the following:

Run Target      : Private Cloud
Runs Per Round  : 20
Rounds          : 1
Concurrent Runs : 2

Once that is done, jump to the "Start Optimization" section.


5. Start Optimization

You are all set! Click on the "Optimize"" button as shown below

Just click to begin!

You will be prompted to confirm the the flow properties. This is intended as a reminder for users to double check their flow properties, especially properties like "Maximum RunTime".

Confirm Properties

When InTime is running, the generated strategies and their statuses will automatically refresh in the history.

Status of each strategy as the job progresses

For "Private Cloud" setup, Open the Private Cloud Console and type .status to verify that the needed agents are alive and free.

What is InTime doing?

a. Analyze the design locally. If it is the first time, compile the design once, otherwise re-use existing results.
b. From the database, extract related learning data from previous builds.
c. Generate strategies according to the Runs Per Round and assign a new Job ID.
d. Replicate and distribute the project (to 1 or many machines) to compile.
e. When done, extract the results and clean up temporary files.

Refer to the InTime Flow Overview for more details.


6. Analyze Results

After a successful compilation, a green circle will appear beside each strategy, along with the timing and area results.

Compilation results

A green highlight means that the result improved and yellow means that it got worse. You can sort the results by clicking the respective column header(s). For more information about what the icons mean, refer to this page about project history icons.

Right-click and select "Analyze Job XX + Child Jobs" to see the rate of improvement and results across jobs.

remove results prompt

results overview

Refer to the Analyze Results page for an explanation of all the features.


7. Export Selected Result

When you have obtained a good result, you can export it to your FPGA software to verify the result. The TNS and WNS values must correspond to those reported by InTime. Please refer to "Export InTime Results" page for more details.