Instruction to Setup the Development Environment for the ISPD 2018 Contest

In this tutorial, we will use a sample benchmark with only 11 nets to introduce the benchmark format, the objective/constraints of the contest problem, and how to evaluate your routing solutions by using Cadence P&R tool Innovus. Please download the sample benchmark from below link to your linux server, and then unzip the downloaded file by command "tar zxvf ispd18_sample.tgz".


Benchmark Instruction

After you unzip ispd18_sample.tgz, you should be able to see the following files:

The "*.input.lef" file contains the routing rules and the design information that need to be considered in the contest. The "*.input.def" file contains the placement information, pins, and blockages of the design. The "*" has the global routing solution that the detailed router should follow. Every benchmark will have these three files to represent a problem instance for detailed routing. Please refer to the following document for the detailed information of the rules and objective in this contest.


For further details about LEF/DEF format, please check the full document in this link:


On the other hand, the "*.solution.good.def" and "*.solution.bad.def" are the examples to respectively represent a good and a bad routing solution. The most content of these two "solution" files is the same to the "*.input.def" file, but the solution file has wiring information for each net. In the later section, we will use these two files to introduce how to use Innovus to evaluate the routing solutions generated by a detailed router. These two files will not be provided in other benchmarks, they are only used here for tutorial purpose. The format of the solution file produced by your executable should follow the LEF/DEF format introduced in the above link.

Requirements for Executable

The executable of the proposed detailed router needs to be named as "ispd18dr", and be able to take the following command format. The thread number may be specified between 1 and 64, but typically we will use 8 threads for the common testing and scoring. Note that, multithreading feature is optional. The proposed detailed router can still use single thread even the "-threads" flag is set.

For instance, if you want to run your executable for the sample benchmark with 8 threads and dump out a routing solution named "ispd18_sample.solution.def", the command will look like below.

Note that, the different between "*.input.def" and "*.solution.def" can only be the routing solution for each net. If the output solution has placement, net list, or any design information change, the solution is considered to be a failure.

How to Download and Install Innovus

Cadence Innovus tool will be used to evaluate the solution obtained by your detailed router.

  1. If your university already had Innovus installed and you are able to access Innovus, you can use it and skip the following steps related to Innovus installation in this section.
  2. For the ones who already completed the form sent by email, you should have received the instructions to have your Cadence account.
  3. After your account is set up, please follow the instructions in the following file to download and install Innovus:
  4. How_to_Download_and_Install_Innovus.pdf

How to Evaluate the Solution

To evaluate your detailed routing solutions, you need to use Innovus to run design rule checking (DRC) and net connectivity checking. For that, please follow the instructions presented in the following document:


This document will use "ispd18_sample.solution.good.def" and "ispd18_sample.solution.bad.def" to illustrate the evaluation process.

Suggested Utilities

These are some utilities that could help the development of your detailed routing tool. They are not maintained by the contest, they are introduced here for your information and reference.


For inquiry, please send emails to