ISPD 2018 Contest on Initial Detailed Routing

Announcements

1/18/2018One of the benchmark, ispd18_test2 and Evaluation program are updated with guide issue fixed.
1/8/2018Evaluation program is updated with a bug fix
1/4/2018Evaluation program is updated.
1/3/2018Released the evaluation program. Please refer to the README file for instruction.
12/26/2017Released three official benchmarks. Fixed route guide problem with ispd18_sample3
12/23/2017FAQ updated.
12/22/2017Released other two sample benchmakrs and updated the first sample.
12/16/2017Problem Introduction and Tutorial for the ISPD 2018 Contest
12/6/2017Contest schedule updated.
11/1/2017FAQ updated.
10/1/2017Contest topic announced.

Abstract

Detailed routing can be divided into two steps. First, an initial detailed routing step is used to generate a detailed routing solution while handling the major design rules. Then a detailed routing refinement is performed to fix the remaining design rule violations. This proposed contest focuses on the initial detailed routing step.

Assuming that a global routing result is already well optimized for certain metrics (e.g., timing), a detailed router needs to honor the global routing result as much as possible. In this way, the optimized metrics are kept meanwhile avoids design rule violations. For example, Fig. 1(a) shows a global routing result for a net with a source pin A and sink pins B, C, and D. Because the path from A to B is timing critical, a global router identifies a short path from A to B. However, the path passes a local wiring congestion region which is not seen by the global router. If the detailed router routes wires over that region as shown in Fig. 1 (b), it will have design rule violations. Fig. 1 (c) shows a routing result without short/spacing violations but it will have timing degradation for the path from A to B. On the other hand, Fig. 1 (d) shows a desired solution.


Fig. 1

To minimize the disturbance for net topology, initial detailed routing plays an important role. If the initial detailed routing result can meet the most common routing rules even it is not fully DRC clean, the later detailed routing refinement will have less chance to largely disturb the routing results.

Benchmarks

You can find the first released testcase for the contest, that is a sample benchmark, in the below link:

Instruction to Setup the Development Environment for the ISPD 2018 Contest

Benchmark Version #std #blk #net #pin #Layer Die size Comments
ispd18_sample 3 22 0 11 0 9 0.017x0.01mm2 This sample testcase is used for the tutorial purpose.
ispd18_sample2 2 22 1 16 0 9 0.017x0.01mm2 This sample testcase has a block and nets connecting to the block.
ispd18_sample3 3 5 1 7 5 16 1.90x2.00mm2 This sample testcase has IO pins, large die size and more metal layers.
ispd18_test1 3 8879 0 3153 0 9 0.20x0.19mm2
ispd18_test2 4 35913 0 36834 1211 9 0.65x0.57mm2
ispd18_test3 2 35973 4 36700 1211 9 0.99x0.70mm2

Update history:

Evaluation

Downloads:

Evaluation kit (latest update: 1/18/2018 , version: 4)
Evaluation metric and ranking method (latest update: 1/4/2018)

Evaluation kit includes:
README - instruction of running evaluation
ispd18eval.sh - evaluation script
ispd18eval.tcl - supporting script for Innovus for design rules and connectivity checking
ispd18eval - evaluation binary for guide and track obedience checking and score calculation
ispd18eval.w - weights information for score calculation

Evaluation Script (ispd18eval.sh)

The evaluation script manages the whole evaluation process. It performs the following tasks:
1. Starts Innovus to perform design rule and connectivity checking.
2. Generates design rule violation and connectivity reports.
3. Starts evaluation program to perform guide and track obedience checking, read the Innovus reports, and calculate the final score.
4. Generates the score table as output.

Usage:
./ispd18eval.sh -lef <input LEF> -guide <input guide> -def <solution DEF> [-keep]

-lef : the input LEF file
-guide : the input route guide file
-def : the routed DEF file
-keep : when it is specified, the intermediate files (logs, reports, scripts, etc.) will not be cleaned after evaluation.

Example:
./ispd18eval.sh -lef sample/ispd18_sample.input.lef -guide sample/ispd18_sample.input.guide -def sample/ispd18_sample.output.def

Evaluation Program (optional)

If you already have design rule and connectivity reports generated by Innovus. You could use the evaluation program directly without using the evaluation script.

Usage:
./ispd18eval -lef <input LEF> -def <solution DEF> -guide <input guide> -georpt <design rule violation report> -conrpt <connectivity report>

-lef : the input LEF file
-guide : the input route guide file
-def : the routed DEF file
-georpt : the design rule violation report generated by Innovus
-conrpt : the connectivity report generated by Innovus

Submission

To be announced soon

Schedule

November 01, 2017Contest topic announced.
December 15, 2017Sample benchmark suite released.
December 20, 2017Deadline for contest registration. (closed)
December 31, 2017Benchmark suite released.
February 15, 2018Deadline to receive alpha router executable submissions from all teams.
March 10, 2018Deadline to receive final router executable submissions from all teams at 11:59pm (PST).
March 25-28, 2018Contest results will be announced at the symposium.

Contest Organizers

Wen-Hao Liu Cadence Design Systems
Stefanus MantikCadence Design Systems
William Chow Cadence Design Systems
Gracieli PosserCadence Design Systems
Yixiao Ding Cadence Design Systems

FAQ

  1. Q: Will global routing input be provided?

    A: Yes. Global routing results will be provided by Cadence's tool.

  2. Q: Can we apply track assignment technique for this contest?

    A: Yes. It is welcomed to have track assignment stage.

  3. Q: Can we assume that only the routing rules have listed in the ispd18_sample.input.lef file will be used in the contest?

    A: Yes, you can have this assumption. This contest will only consider the rules listed in ispd18_sample.input.lef. No more other rules. However, the value of the spacing distance may be different for different designs.

  4. Q: Can we assume that only cells in the ispd18_sample.input.lef will be used in the contest? Will there be more cell types?

    A: Different designs may have different LEF files with different cell types and different layer configuration.

  5. Q5: Can we route wires/vias outside of guides to avoid short/spacing violations?

    A: Yes. Routing guide is a soft rule while violation is a harder rule. So, a DRC-free solution is usually considered as a better solution compared to the solution with DRC violations. Namely, for DRC resolving, routing wires out of guide may be necessary for some situations.

  6. Q: For the gate macro defined in the .lef file, is the pin located at all the rectangles define? For example, for pin A0 in AOI221X2 in ispd18_sample.input.lef, are all the four rectangles defined in metal1 alltogether constitute the pin A0?

    A: Yes, the four rectangles represent the pin A0. A single pin, such as A0 in this example, can have multiple rectangles. The connection to this pin can be made at any point inside any of the defined rectangles and only one connection is needed. However, some pins may have multiple rectangles on multiple routing layers, which is a typical scenario of a pin inside a BLOCK macro. When the pin has multiple rectangles on multiple layers, connection to any one of the given layer is sufficient.

  7. Q: What are the parameters for TRACKS and ROW meaning? Any introduction documents?

    A: Please search "TRACKS" and "ROW" in the following document: lef_def_ref.pdf

  8. Q: Does cut spacing mean the minimum spacing between vias on same net or different nets? Is there any example?

    A: Yes, cut spacing means the minimum spacing between the cut rectangle of the vias that applies to both same net and different net. For example, there is a via metal (x1, y1, x2, y2) on a cut layer where the cut spacing is S, and there is another object whose dimension is (x3, y3, x4, y4) on the same cut layer. The cut spacing violation will happen when the following equations hold.

      x_dist = max(0, max(x1, x3) - min(x2, x4));
      y_dist = max(0, max(y1, y3) - min(y2, y4));
      x_dist^2 + y_dist^2 < S^2

    Note that the cut rectangle can be a cut from a via (either same-net via or different-net via), a cut blockage, or a cut from pin.

  9. Q: Does pin shapes in component are only formed by rectangles, or other shapes of polygon?

    A: In general case, pin shapes are not necessary to always be rectangles. However, for simplification, this contest always represents pin shapes by one or multiple rectangles.

  10. Q: Is it allowed to put more than 1 via on a pin? For example, the net below connects pins a, b, c (in blue color), and M2 is horizontal. Could we just use two short M2 wires to connect the net? (As shown in the picture, there is just one net in the pciture below)


    A: This is what we call "using pin as a feedthrough". Electrically, it is the equivalent whether we use pins as feedthrough or not. However, in general, this is not preferred (or even discouraged) because that will create weakly connected nets. For simplification, this contest allows "using pin as a feedthrough" and does not apply penalty for that.

  11. Q: Does WIDTH keyword matters for cut layers?

    A: No. Because this contest provide the via library in lef file, you don’t really need the WIDTH information from cut layers. Namely, you can ignore WIDTH keyword for cut layers.

  12. Q: Is it possible to see a routing guide overlap with another routing guide of the same net?

    A: We had routing guide overlapping issue before, and it is fixed. If you see routing guides overlap, please let the contest organizer know.

  13. Q: Does route guides imply a connected tree structure rather than just rectangles?

    A: The route guides on a layer should be seen as rectilinear polygons composes of rectangles. It doesn’t imply any routing direction or routing topology, so the merging direction does not matter.

  14. Q: Does rectangle width imply gcell size? We would like to know a reasonable assumption of the range of rectangle width.

    A: The route guide width may vary for different benchmarks or even different nets. The routing guides of a net mostly represent the gcells passed by the global routing solution for that net. However, for some cases, the routing guides can be defined by users or the third-party tools in order to control the routing solution for certain nets. For this contest, you can assume guide width is around 1-row-height to 3-row-height, but the guide width may not be always uniform.

  15. Q: Should we expect to see the cases where long detours occur due to large global routing overflow? Could you elaborate more about the global routing overflow from the given route guide file?

    A: Yes. You may see long detour due to the global routing overflow in the official benchmarks. However, you cannot assume that the route guides always give you overflow-free / congestion-free input. In this contest, the route guides come from the global routing solution with the reasonable congestion, but the congestion level may vary in order to test the robustness of the proposed detailed routers.

  16. Q: There are some nets with only one pin. What should we do with them?

    A: You can just leave those one-pin net unrouted. However you should still write them to output DEF file even there is no wire.

  17. Q: We found the PITCH value in LEF files is not the same to the TRACK STEP in DEF files. Why this happens?

    A: PITCH value defined in LEF is a reference, which considers wire width, wire spacing, via width, via-to-wire spacing, and via-to-via spacing etc. TRACK STEP is a design-specified or user-specified value. This contest will provide TRACK STEP in DEF file for every benchmark, so you can ignore PITCH value in LEF file and only pay attention to TRACK STEP.

  18. Q: In file "ispd18eval.w", both OffTrackWire and Wire have the same weight of 0.5. Does it mean that off-track wires is the same as on-track wire in terms of score?

    A: No. Off-track wire cost is the "extra" cost. Say, if you have a wire which is off-track and in wrong-way, the cost of the wire includes the basic wire cost, off-track cost and wrong-way cost.

Contact

For registration or inquiry, please send emails to ispd2018contest@gmail.com.