@@ -14,7 +14,6 @@ GENERATE_ARTIFACTS_ON_FAILURE:
14
14
congestion, is not a build failure(as in exit code non-zero), it is a
15
15
successful(as in zero exit code) global route that produce reports
16
16
detailing the problem.
17
-
18
17
Detailed route will not proceed, if there is global routing congestion
19
18
This allows build systems, such as bazel, to create artifacts for global and
20
19
detailed route, even if the operation had problems, without having know
@@ -42,18 +41,15 @@ ROUTING_LAYER_ADJUSTMENT:
42
41
but risk excessive detours and long global routing times,
43
42
while low values reduce global routing failure but can
44
43
complicate detailed routing.
45
-
46
44
The global routing running time normally reduces
47
45
dramatically(entirely design specific, but going from hours to
48
46
minutes has been observed) when the value is
49
47
low(such as 0.10).
50
-
51
48
Sometimes, global routing will succeed with lower values and
52
49
fail with higher values. Exploring results with different
53
50
values can help shed light on the problem. Start with
54
51
a too low value, such as 0.10, and bisect
55
52
to value that works by doing multiple global routing runs.
56
-
57
53
As a last resort, `make global_route_issue` and using
58
54
the tools/OpenROAD/etc/deltaDebug.py can be useful to debug
59
55
global routing errors. If there is something specific that is
@@ -401,17 +397,13 @@ HOLD_SLACK_MARGIN:
401
397
Specifies a time margin for the slack when fixing hold violations.
402
398
This option allows you to overfix or underfix(negative value, terminate
403
399
retiming before 0 or positive slack).
404
-
405
400
floorplan.tcl uses min of HOLD_SLACK_MARGIN and 0(default hold slack margin).
406
-
407
401
This avoids overrepair in floorplan for hold by default, but allows skipping
408
402
hold repair using a negative HOLD_SLACK_MARGIN.
409
-
410
403
Exiting timing repair early is useful in exploration where
411
404
the .sdc has a fixed clock period at the design's target clock period and where
412
405
HOLD/SETUP_SLACK_MARGIN is used to avoid overrepair(extremely long running
413
406
times) when exploring different parameter settings.
414
-
415
407
When an ideal clock is used, that is before CTS,
416
408
a clock insertion delay of 0 is used in timing paths. This creates
417
409
a mismatch between macros that have a .lib file from after CTS, when
@@ -422,20 +414,16 @@ HOLD_SLACK_MARGIN:
422
414
macros built with OpenROAD. This is less accurate than if OpenROAD had
423
415
created a placeholder clock tree for timing estimation purposes
424
416
prior to CTS.
425
-
426
417
There will inevitably be inaccuracies in the timing calculation prior
427
418
to CTS. Use a slack margin that is low enough, even negative, to
428
419
avoid overrepair. Inaccuracies in the timing prior to CTS can also
429
420
lead to underrepair, but there no obvious and simple way to avoid
430
421
underrapir in these cases.
431
-
432
422
Overrepair can lead to excessive runtimes in repair or too much buffering
433
423
being added, which can present itself as congestion of hold cells or
434
424
buffer cells.
435
-
436
425
Another use of SETUP/HOLD_SLACK_MARGIN is design parameter exploration
437
426
when trying to find the minimum clock period for a design.
438
-
439
427
The SDC_FILE for a design can be quite complicated and instead of
440
428
modifying the clock period in the SDC_FILE, which can be non-trivial,
441
429
the clock period can be fixed at the target frequency and the
@@ -451,7 +439,6 @@ SETUP_SLACK_MARGIN:
451
439
Specifies a time margin for the slack when fixing setup violations.
452
440
This option allows you to overfix or underfix(negative value, terminate
453
441
retiming before 0 or positive slack).
454
-
455
442
See HOLD_SLACK_MARGIN for more details.
456
443
stages :
457
444
- cts
0 commit comments