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".
ispd18_sample.tgzBenchmark Instruction
After you unzip ispd18_sample.tgz, you should be able to see the following files:
- ispd18_sample.input.lef
- ispd18_sample.input.def
- ispd18_sample.input.guide
- ispd18_sample.solution.good.def
- ispd18_sample.solution.bad.def
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 "*.input.guide" 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.
Introduction_of_ISPD18_Contest_Problem.pdfFor further details about LEF/DEF format, please check the full document in this link:
lef_def_ref.pdfOn 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.
-
./ispd18dr -lef [lef file] -def [def file] -guide [guide_file] -threads [num_threads] -output <output_file_name>
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.
-
./ispd18dr -lef ispd18_sample.input.lef -def ispd18_sample.input.def -guide ispd18_sample.input.guide -threads 8 -output ispd18_sample.solution.def
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.
- 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.
- For the ones who already completed the form sent by email, you should have received the instructions to have your Cadence account.
- After your account is set up, please follow the instructions in the following file to download and install Innovus: 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:
How_to_Generate_DRC_Report_by_Innovus.pdfThis document will use "ispd18_sample.solution.good.def" and "ispd18_sample.solution.bad.def" to illustrate the evaluation process.
- We will provide later another evaluation tool based on the reports from Innovus to score your routing solutions. The evaluation tool will be delivered by December 31, 2017.
- The finalized scoring function will be announced with the evaluator release.
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.
- Rsyn - Rsyn is an open-source C++ framework for physical synthesis research and development aiming at shifting the workload from infrastructure (e.g. parsing, data model, visualization) to core algorithm development. It supports common input files used in EDA contests as LEF/DEF, Liberty and Verilog. For ISPD 2018 Routing Contest, Rsyn can be used to visualize routing results as well as the basic infrastructure to develop routing algorithms. Contact: rsyn.design@gmail.com
- LEF/DEF parser - you can also download the LEF/DEF parsers already available here. You may also write your own LEF/DEF parsers if you wish. However, using the already available parsers may save you a considerable amount of effort and time.
Contact
For inquiry, please send emails to ispd2018contest@gmail.com.