How to optimise an FPGA design using InTime, via Plunify Cloud compute resources
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
lang
project
LICENSE
README.md
_config.yml

README.md

Tutorial: Optimize an FPGA Design using InTime on Plunify Cloud

(中文|日本語)

Prerequisites

This assumes you have a licensed InTime installed on-premise. There should be a licensed FPGA tool such as Vivado or Quartus as well.

Alternatively if you are running InTime on the cloud (https://ailab.plunify.com), please start a cloud server (e.g. RA1) with the InTime tool and select any Vivado version. (Only Vivado is available on Plunify Cloud) Vivado and InTime will be configured automatically in the background when the server is started.

Introduction

This is a simple tutorial for the user to optimize an FPGA design with the InTime software, using the Plunify Cloud service. If you are new to InTime, please apply for a free evaluation of the software.

This tutorial covers the "Hot Start" recipe, "InTime Default" recipe, and the "Extra Opt Exploration" recipe. The recipe flow and their configurations are shown as below.

Recipe 1 : Hotstart

  • runs per round : 2
  • rounds : 1
  • concurrent runs : 2

Recipe 2 : InTime Default

  • runs per round : 2
  • rounds : 1
  • concurrent runs : 2

Recipe 3 : Extra Opt Exploration

  • runs per round : 2
  • rounds : 1
  • concurrent runs : 2

Requirements

  1. InTime software version 2.6.8 or later (Request a free evaluation)
  2. Vivado software version 2017.2 or later
  3. Plunify Cloud account (Register a new account or refer a friend to get free credits.)

Steps

  1. Download or clone the sample project.

https://github.com/plunify/InTime-PlunifyCloud-Tutorial.git

  1. Start InTime and open the sample eight_bit_uc project.

  1. Select the targeted toolchain. For this tutorial, we will use Vivado version 2017.2.

  1. Change the 'Run Target' option to 'Plunify Cloud'.

  1. Change 'Recipe' option to 'Hot Start' ('Hot Start' is the default recipe).

  1. Configure the desired value for 'runs per round', 'rounds', 'concurrent runs' options as outlined in the Introduction section.

  1. Click 'Start Recipe' to submit the job to Plunify Cloud.

  1. Enter your Plunify Cloud credentials. Note: you only need to do this once.

  1. Select the class of machine to use for cloud compilation. Use Class CA1 machines for this tutorial.

  1. After choosing the machine class, InTime will generate a job ID for this submission and upload the project into Plunify Cloud for the actual compilations. Notifications will be shown to confirm if the job submission is successful or not. Make a note of the job ID (81181 in this example). You can use this job ID to track the job status on the Plunify Cloud web console.

  1. (Optional) On the Plunify Cloud web console, check the job status under 'History'>'Usage History'

  1. Upon completion, a notification message will be sent to your registered email address.

  1. Back to the InTime software, right-click the 'impl 1' parent revision and select Job Action>Download Remote Results>Download Remote Results Without Project File to download the results.

  1. Change the 'Recipe' option to 'InTime Default'.

  2. Right-click the revision with the best TNS and 'Set As Parent Revision'. In this example, both revisions "hotstart_1" and "hotstart_2" have the same result so it is okay to pick either one.

  1. Repeat Steps 7 to Step 14 to run the 'InTime Default' recipe.

  2. Change the 'Recipe' option to 'Extra Opt Exploration'.

  3. Right-click the revision with the best TNS and 'Set As Parent Revision'. In this example, the revision with the best TNS is "calibrate_1". Note the calibrate_1 revision already met timing but we will continue using it to complete this tutorial. To enable this, set the 'Stop When Goal Met' option to 'False' in order to continue running.

  4. Repeat Steps 7 to Step 14 for 'Extra Opt Exploration' recipe run.

  5. Upon completion, the InTime results should look like those below.