Hi all,
I was doing PnR these two days and found a very strange problem. The command I used is listed as follows:
setNanoRouteMode -quiet -drouteUseMultiCutViaEffort medium
setNanoRouteMode -quiet -routeInsertAntennaDiode true
setNanoRouteMode -quiet -routeWithSiDriven true
setNanoRouteMode -quiet -routeWithTimingDriven true
setNanoRouteMode -quiet -routeTdrEffort 7
setNanoRouteMode -quiet -drouteMinLengthForWireSpreading 1
setNanoRouteMode -quiet -drouteEndIteration default
setNanoRouteMode -quiet -routeWithSiPostRouteFix true
routeDesign -globalDetail
After this command, I check the setup time and got the following answer:
************************************************************************************
+--------------------+---------+---------+---------+---------+---------+---------+
| Setup mode | all | reg2reg | in2reg | reg2out | in2out | clkgate |
+--------------------+---------+---------+---------+---------+---------+---------+
| WNS (ns):| -0.229 | -0.229 | 0.000 | -0.083 | -0.032 | -0.013 |
| TNS (ns):|-728.641 |-723.595 | 0.000 | -4.608 | -0.469 | -0.076 |
| Violating Paths:| 8883 | 8618 | 0 | 218 | 48 | 10 |
| All Paths:| 47815 | 44315 | 29212 | 1557 | 1040 | 1935 |
+--------------------+---------+---------+---------+---------+---------+---------+
+----------------+-------------------------------+------------------+
| | Real | Total |
| DRVs +------------------+------------+------------------|
| | Nr nets(terms) | Worst Vio | Nr nets(terms) |
+----------------+------------------+------------+------------------+
| max_cap | 0 (0) | 0.000 | 0 (0) |
| max_tran | 670 (6162) | -0.124 | 670 (6162) |
| max_fanout | 314 (314) | -36 | 344 (344) |
+----------------+------------------+------------+------------------+
Density: 91.472%
************************************************************************************
Right after the setup-time check, I do the routeDesign again:
routeDesign -globalDetail
Because the cells are already routed, the tool doesn't reroute the design as I expect.
The problem comes now. When I perform the routeDesign for the 2nd time, since the tool doesn't do any changes for me, I expect the timing should be the same, but what's weird is, I perform another timing check and got the following report:
************************************************************************************
+--------------------+---------+---------+---------+---------+---------+---------+
| Setup mode | all | reg2reg | in2reg | reg2out | in2out | clkgate |
+--------------------+---------+---------+---------+---------+---------+---------+
| WNS (ns):| -0.095 | -0.095 | 0.000 | -0.016 | 0.013 | 0.034 |
| TNS (ns):|-147.190 |-147.163 | 0.000 | -0.027 | 0.000 | 0.000 |
| Violating Paths:| 5537 | 5533 | 0 | 4 | 0 | 0 |
| All Paths:| 47815 | 44315 | 29212 | 1557 | 1040 | 1935 |
+--------------------+---------+---------+---------+---------+---------+---------+
+----------------+-------------------------------+------------------+
| | Real | Total |
| DRVs +------------------+------------+------------------|
| | Nr nets(terms) | Worst Vio | Nr nets(terms) |
+----------------+------------------+------------+------------------+
| max_cap | 0 (0) | 0.000 | 0 (0) |
| max_tran | 51 (415) | -0.053 | 51 (415) |
| max_fanout | 314 (314) | -36 | 344 (344) |
+----------------+------------------+------------+------------------+
Density: 91.472%
************************************************************************************
I'm pretty sure the tool doesn't do any changes. I checked the log file and found the designs with one "routeDesign" and two "routeDesign" commands have identical numbers of wires/via/wire-length on each metal layer. But what's strange is, they have different setup time performance, with the second one a lot better than the former one.
What happens here? Which one is the real one? I'm pretty confused so wanna ask if there's anyone willing to answer this, and/or check this problem with your own design? This problem can be easily verify, you just need to do routeDesign, check the timing, immediately do routeDesign again, and check the timig again. Compare the reports and see if you found anything different. Thanks a lot!