-
Notifications
You must be signed in to change notification settings - Fork 504
Expand file tree
/
Copy pathvariables.json
More file actions
1502 lines (1502 loc) · 53.2 KB
/
Copy pathvariables.json
File metadata and controls
1502 lines (1502 loc) · 53.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"ABC_AREA": {
"default": 0,
"description": "Strategies for Yosys ABC synthesis: Area/Speed. Default ABC_SPEED.\n",
"stages": [
"synth"
]
},
"ABC_CLOCK_PERIOD_IN_PS": {
"description": "Clock period to be used by STA during synthesis. Default value read from `constraint.sdc`.\n",
"stages": [
"synth"
]
},
"ABC_DRIVER_CELL": {
"description": "Default driver cell used during ABC synthesis.\n",
"stages": [
"synth"
]
},
"ABC_LOAD_IN_FF": {
"description": "During synthesis set_load value used.\n",
"stages": [
"synth"
]
},
"ABSTRACT_SOURCE": {
"description": "Which .odb file to use to create abstract\n",
"stages": [
"generate_abstract"
]
},
"ADDER_MAP_FILE": {
"description": "Optional mapping file supplied to Yosys to map adders\n",
"stages": [
"synth"
]
},
"ADDITIONAL_FILES": {
"description": "Additional files to be added to `make issue` archive.\n"
},
"ADDITIONAL_GDS": {
"description": "Hardened macro GDS files listed here.\n",
"stages": [
"final"
]
},
"ADDITIONAL_LEFS": {
"description": "Hardened macro LEF view files listed here. The LEF information of the macros is immutable and used throughout all stages. Stored in the .odb file.\n"
},
"ADDITIONAL_LIBS": {
"description": "Hardened macro library files listed here. The library information is immutable and used throughout all stages. Not stored in the .odb file.\n"
},
"ADDITIONAL_SITES": {
"description": "Passed as -additional_sites to initialize_floorplan.\n",
"stages": [
"floorplan"
]
},
"ASAP7_USE_VT": {
"default": "RVT",
"description": "A space separated list of VT options to use with the ASAP7 standard cell library: RVT, LVT, SLVT.\n",
"stages": [
"All stages"
]
},
"BALANCE_ROWS": {
"default": 0,
"description": "Balance rows during placement.\n",
"stages": [
"place"
]
},
"BLOCKS": {
"description": "Blocks used as hard macros in a hierarchical flow. Do note that you have to specify block-specific inputs file in the directory mentioned by Makefile.\n"
},
"BUFFER_PORTS_ARGS": {
"description": "Specify arguments to the buffer_ports call during placement. Only used if DONT_BUFFER_PORTS=0.\n",
"stages": [
"place"
]
},
"CACHED_REPORTS": {
"description": "List of pre-existing report files to copy into the reports directory before synthesis. Used when reusing prior synthesis results with SYNTH_NETLIST_FILES.\n",
"stages": [
"synth"
]
},
"CAP_MARGIN": {
"description": "Specifies a capacitance margin when fixing max capacitance violations. This option allows you to overfix.\n",
"tunable": 1
},
"CDL_FILE": {
"description": "CDL master netlist file used as the -masters argument to write_cdl for generating Circuit Description Language output.\n",
"stages": [
"final"
]
},
"CDL_FILES": {
"description": "Insert additional Circuit Description Language (`.cdl`) netlist files.\n"
},
"CELL_PAD_IN_SITES_DETAIL_PLACEMENT": {
"default": 0,
"description": "Cell padding on both sides in site widths to ease routability in detail placement.\n",
"stages": [
"place",
"cts",
"grt"
],
"tunable": 1,
"type": "int"
},
"CELL_PAD_IN_SITES_GLOBAL_PLACEMENT": {
"default": 0,
"description": "Cell padding on both sides in site widths to ease routability during global placement.\n",
"stages": [
"place",
"floorplan"
],
"tunable": 1,
"type": "int"
},
"CLKGATE_MAP_FILE": {
"description": "Optional mapping file supplied to Yosys to map clock gating cells\n",
"stages": [
"synth"
]
},
"CLUSTER_FLOPS": {
"default": 0,
"description": "Enable clustering of flip-flops into multi-bit flip-flops, if the platform PDK includes multi-bit flip-flops\n",
"stages": [
"place"
]
},
"CLUSTER_FLOPS_ARGS": {
"default": "",
"description": "Additional arguments passed to the cluster_flops command. Only used when CLUSTER_FLOPS is set.\n",
"stages": [
"place"
]
},
"CORE_AREA": {
"description": "The core area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2).\n",
"stages": [
"floorplan"
],
"tunable": 1
},
"CORE_ASPECT_RATIO": {
"default": 1.0,
"description": "The core aspect ratio (height / width). This variable is only used when `CORE_UTILIZATION` is set.\n",
"stages": [
"floorplan"
],
"tunable": 1,
"type": "float"
},
"CORE_MARGIN": {
"default": 1.0,
"description": "The margin between the core area and die area, specified in microns. Allowed values are either one value for all margins or a set of four values, one for each margin. The order of the four values are: `{bottom top left right}`. This variable is only used when `CORE_UTILIZATION` is set.\n",
"stages": [
"floorplan"
],
"tunable": 1,
"type": "float"
},
"CORE_UTILIZATION": {
"description": "The core utilization percentage (0-100).\n",
"stages": [
"floorplan"
],
"tunable": 1,
"type": "float"
},
"CORNER": {
"description": "PVT corner library selection. Only available for ASAP7 and GF180 PDKs.\n"
},
"CORNERS": {
"description": "List of timing corner names for multi-corner analysis (e.g. \"slow fast\"). When set, liberty files are loaded per corner using uppercase <CORNER>_LIB_FILES environment variables (e.g. corner \"slow\" reads SLOW_LIB_FILES) and timing models are generated per corner.\n",
"stages": [
"All stages"
]
},
"CTS_ARGS": {
"description": "Override `clock_tree_synthesis` arguments.\n",
"stages": [
"cts"
]
},
"CTS_BUF_DISTANCE": {
"description": "Distance (in microns) between buffers.\n",
"stages": [
"cts"
],
"tunable": 1,
"type": "float"
},
"CTS_BUF_LIST": {
"description": "List of cells used to construct the clock tree. Overrides buffer inference.\n",
"stages": [
"cts"
]
},
"CTS_CLUSTER_DIAMETER": {
"description": "Maximum diameter (in microns) of sink cluster.\n",
"stages": [
"cts"
],
"tunable": 1,
"type": "float"
},
"CTS_CLUSTER_SIZE": {
"description": "Maximum number of sinks per cluster.\n",
"stages": [
"cts"
],
"tunable": 1,
"type": "int"
},
"CTS_LIB_NAME": {
"description": "Name of the Liberty library to use in selecting the clock buffers.\n",
"stages": [
"cts"
]
},
"CTS_SNAPSHOT": {
"description": "Creates ODB/SDC files prior to clock net and setup/hold repair.\n",
"stages": [
"cts"
]
},
"CTS_SNAPSHOTS": {
"default": 0,
"description": "Create ODB/SDC files at different stages of CTS.\n",
"stages": [
"cts"
]
},
"DESIGN_NAME": {
"description": "The name of the top-level module of the design.\n",
"required": true
},
"DESIGN_NICKNAME": {
"description": "DESIGN_NICKNAME just changes the directory name that ORFS outputs to be DESIGN_NICKNAME instead of DESIGN_NAME in case DESIGN_NAME is unwieldy or conflicts with a different design.\n"
},
"DETAILED_METRICS": {
"default": 0,
"description": "If set, then calls report_metrics prior to repair operations in the CTS and global route stages\n",
"stages": [
"cts",
"grt"
]
},
"DETAILED_ROUTE_ARGS": {
"description": "Add additional arguments for debugging purposes during detail route.\n",
"stages": [
"route"
]
},
"DETAILED_ROUTE_END_ITERATION": {
"default": 64,
"description": "Maximum number of iterations.\n",
"stages": [
"route"
]
},
"DETAIL_PLACEMENT_ARGS": {
"description": "Specify arguments to the detailed_placement call during placement.\n",
"stages": [
"place"
]
},
"DFF_LIB_FILE": {
"description": "Single Liberty file for flip-flop technology mapping (dfflibmap) during synthesis. Takes precedence over DFF_MAP_FILE when set.\n",
"stages": [
"synth"
]
},
"DFF_MAP_FILE": {
"description": "Optional mapping file supplied to Yosys to map D flip-flops\n",
"stages": [
"synth"
]
},
"DIE_AREA": {
"description": "The die area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2).\n",
"stages": [
"floorplan"
],
"tunable": 1
},
"DISABLE_VIA_GEN": {
"description": "Passed as -disable_via_gen to detailed_route.\n",
"stages": [
"route"
]
},
"DONT_BUFFER_PORTS": {
"default": 0,
"description": "Do not buffer input/output ports during floorplanning.\n",
"stages": [
"place"
]
},
"DONT_USE_CELLS": {
"description": "Dont use cells eases pin access in detailed routing.\n"
},
"DPL_USE_OLD_DIAMOND": {
"default": 0,
"description": "Use the former diamond search legalizer for detailed placement instead of the default negotiation legalizer.\n",
"stages": [
"place",
"cts",
"grt"
]
},
"DPO_MAX_DISPLACEMENT": {
"default": "5 1",
"description": "Specifies how far an instance can be moved when optimizing.\n"
},
"EARLY_SIZING_CAP_RATIO": {
"description": "Ratio between the input pin capacitance and the output pin load during initial gate sizing.\n",
"stages": [
"place"
]
},
"ENABLE_DPO": {
"default": 1,
"description": "Enable detail placement with improve_placement feature.\n"
},
"ENABLE_RESISTANCE_AWARE": {
"description": "Passed as -resistance_aware to global_route.\n",
"stages": [
"grt"
]
},
"FASTROUTE_TCL": {
"description": "Specifies a Tcl script with commands to run before FastRoute.\n"
},
"FILL_CELLS": {
"description": "Fill cells are used to fill empty sites. If not set or empty, fill cell insertion is skipped.\n",
"stages": [
"route"
]
},
"FILL_CONFIG": {
"description": "JSON rule file for metal fill during chip finishing.\n"
},
"FLOORPLAN_DEF": {
"description": "Use the DEF file to initialize floorplan. Mutually exclusive with FOOTPRINT or DIE_AREA/CORE_AREA or CORE_UTILIZATION.\n",
"stages": [
"floorplan",
"place"
]
},
"FLOW_VARIANT": {
"default": "base",
"description": "Flow variant to use, used in the flow variant directory name.\n"
},
"FOOTPRINT": {
"description": "Custom footprint definition file for ICeWall-based floorplan initialization. Mutually exclusive with FLOORPLAN_DEF or DIE_AREA/CORE_AREA or CORE_UTILIZATION.\n",
"stages": [
"floorplan"
]
},
"FOOTPRINT_TCL": {
"description": "Specifies a Tcl script with custom footprint-related commands for floorplan setup.\n",
"stages": [
"floorplan"
]
},
"GDS_ALLOW_EMPTY": {
"description": "Single regular expression of module names of macros that have no .gds file\n",
"stages": [
"final"
]
},
"GDS_FILES": {
"description": "Path to platform GDS files.\n"
},
"GENERATE_ARTIFACTS_ON_FAILURE": {
"default": 0,
"description": "For instance Bazel needs artifacts (.odb and .rpt files) on a failure to allow the user to save hours on re-running the failed step locally, but when working with a Makefile flow, it is more natural to fail the step and leave the user to manually inspect the logs and artifacts directly via the file system. Set to 1 to change the behavior to generate artifacts upon failure to e.g. do a global route. The exit code will still be non-zero on all other failures that aren't covered by the \"useful to inspect the artifacts on failure\" use-case. Example: just like detailed routing, a global route that fails with congestion, is not a build failure(as in exit code non-zero), it is a successful(as in zero exit code) global route that produce reports detailing the problem. Detailed route will not proceed, if there is global routing congestion This allows build systems, such as bazel, to create artifacts for global and detailed route, even if the operation had problems, without having know about the semantics between global and detailed route. Considering that global and detailed route can run for a long time and use a lot of memory, this allows inspecting results on a laptop for a build that ran on a server.\n"
},
"GLOBAL_PLACEMENT_ARGS": {
"description": "Use additional tuning parameters during global placement other than default args defined in global_place.tcl.\n",
"stages": [
"place"
]
},
"GLOBAL_ROUTE_ARGS": {
"default": "-congestion_iterations 30 -congestion_report_iter_step 5 -verbose",
"description": "Replaces default arguments for global route.\n",
"stages": [
"grt"
]
},
"GND_NETS_VOLTAGES": {
"description": "Used for IR Drop calculation.\n",
"stages": [
"final"
]
},
"GPL_KEEP_OVERFLOW": {
"description": "Passed as -keep_resize_below_overflow to global_placement. Only used when GPL_TIMING_DRIVEN is enabled.\n",
"stages": [
"place"
]
},
"GPL_ROUTABILITY_DRIVEN": {
"default": 1,
"description": "Specifies whether the placer should use routability driven placement.\n",
"stages": [
"place"
]
},
"GPL_TIMING_DRIVEN": {
"default": 1,
"description": "Specifies whether the placer should use timing driven placement.\n",
"stages": [
"place"
]
},
"GUI_TIMING": {
"default": 1,
"description": "Load timing information when opening GUI. For large designs, this can be quite time consuming. Useful to disable when investigating non-timing aspects like floorplan, placement, routing, etc.\n"
},
"HOLD_SLACK_MARGIN": {
"default": 0,
"description": "Specifies a time margin for the slack when fixing hold violations. This option allows you to overfix or underfix (negative value, terminate retiming before 0 or positive slack). floorplan.tcl uses min of HOLD_SLACK_MARGIN and 0 (default hold slack margin). This avoids overrepair in floorplan for hold by default, but allows skipping hold repair using a negative HOLD_SLACK_MARGIN. Exiting timing repair early is useful in exploration where the .sdc has a fixed clock period at the design's target clock period and where HOLD/SETUP_SLACK_MARGIN is used to avoid overrepair (extremely long running times) when exploring different parameter settings. When an ideal clock is used, that is before CTS, a clock insertion delay of 0 is used in timing paths. This creates a mismatch between macros that have a .lib file from after CTS, when the clock is propagated. To mitigate this, OpenSTA will use subtract the clock insertion delay of macros when calculating timing with ideal clock. Provided that min_clock_tree_path and max_clock_tree_path are in the .lib file, which is the case for macros built with OpenROAD. This is less accurate than if OpenROAD had created a placeholder clock tree for timing estimation purposes prior to CTS. There will inevitably be inaccuracies in the timing calculation prior to CTS. Use a slack margin that is low enough, even negative, to avoid overrepair. Inaccuracies in the timing prior to CTS can also lead to underrepair, but there no obvious and simple way to avoid underrapir in these cases. Overrepair can lead to excessive runtimes in repair or too much buffering being added, which can present itself as congestion of hold cells or buffer cells. Another use of SETUP/HOLD_SLACK_MARGIN is design parameter exploration when trying to find the minimum clock period for a design. The SDC_FILE for a design can be quite complicated and instead of modifying the clock period in the SDC_FILE, which can be non-trivial, the clock period can be fixed at the target frequency and the SETUP/HOLD_SLACK_MARGIN can be swept to find a plausible current minimum clock period.\n",
"stages": [
"cts",
"floorplan",
"grt"
]
},
"IO_CONSTRAINTS": {
"description": "File path to the IO constraints .tcl file. Also used for manual placement.\n",
"stages": [
"floorplan"
]
},
"IO_PLACER_H": {
"description": "A list of metal layers on which the I/O pins are placed horizontally (top and bottom of the die).\n",
"stages": [
"place"
]
},
"IO_PLACER_V": {
"description": "A list of metal layers on which the I/O pins are placed vertically (sides of the die).\n",
"stages": [
"place"
]
},
"IR_DROP_LAYER": {
"description": "Default metal layer to report IR drop.\n"
},
"KEEP_VARS": {
"default": 0,
"description": "Feature toggle to keep intermediate variables during the flow. This is useful for the single-run flow, where all stages of the flow are run in a single OpenROAD instance.\n",
"stages": [
"All stages"
]
},
"KLAYOUT_TECH_FILE": {
"description": "A mapping from LEF/DEF to GDS using the KLayout tool.\n"
},
"LATCH_MAP_FILE": {
"description": "Optional mapping file supplied to Yosys to map latches\n",
"stages": [
"synth"
]
},
"LAYER_PARASITICS_FILE": {
"description": "Path to per layer parasitics file. Defaults to $(PLATFORM_DIR)/setRC.tcl.\n",
"type": "string"
},
"LEC_AUX_VERILOG_FILES": {
"description": "Additional Verilog files (e.g. blackbox stubs) to include in LEC equivalence checks. Appended to the generated Verilog netlist before running the formal equivalence check.\n",
"stages": [
"cts"
]
},
"LEC_CHECK": {
"default": 0,
"description": "Perform a formal equivalence check between before and after netlists. If this fails, report an issue to OpenROAD.\n",
"stages": [
"cts"
]
},
"LIB_FILES": {
"description": "A Liberty file of the standard cell library with PVT characterization, input and output characteristics, timing and power definitions for each cell.\n"
},
"LIB_MODEL": {
"default": "NLDM",
"description": "Selects between NLDM and CCS timing models for the ASAP7 platform. Valid values: NLDM (default), CCS. Used in flow/platforms/asap7/config.mk to pick the LIB_DIR subdirectory and accumulate the corresponding $(CORNER)_$(LIB_MODEL)_LIB_FILES list, and in flow/scripts/load.tcl to gate CCS-specific Tcl branches.\n"
},
"MACRO_BLOCKAGE_HALO": {
"description": "Distance beyond the edges of a macro that will also be covered by the blockage generated for that macro. Note that the default macro blockage halo comes from the largest of the specified MACRO_PLACE_HALO x or y values. This variable overrides that calculation.\n",
"stages": [
"floorplan"
]
},
"MACRO_EXTENSION": {
"description": "Sets the number of GCells added to the blockages boundaries from macros.\n"
},
"MACRO_PLACEMENT_TCL": {
"description": "Specifies the path of a TCL file on how to place macros manually.\nThe user may choose to place just some of the macros in the design.\nThe macro placer will handle the remaining unplaced macros.\n",
"stages": [
"floorplan"
]
},
"MACRO_PLACE_HALO": {
"description": "Horizontal/vertical halo around macros (microns). Used by automatic macro placement.\n",
"stages": [
"floorplan"
]
},
"MACRO_ROWS_HALO_X": {
"description": "Horizontal distance between the edge of the macro and the beginning of the rows created by tapcell. Only available for ASAP7 PDK and GF180/uart-blocks design.\n",
"stages": [
"floorplan"
]
},
"MACRO_ROWS_HALO_Y": {
"description": "Vertical distance between the edge of the macro and the beginning of the rows created by tapcell. Only available for ASAP7 PDK and GF180/uart-blocks design.\n",
"stages": [
"floorplan"
]
},
"MACRO_WRAPPERS": {
"description": "The wrapper file that replaces existing macros with their wrapped version.\n",
"stages": [
"floorplan"
]
},
"MAKE_TRACKS": {
"description": "Tcl file that defines add routing tracks to a floorplan.\n",
"stages": [
"floorplan"
]
},
"MATCH_CELL_FOOTPRINT": {
"default": 0,
"description": "Enforce sizing operations to only swap cells that have the same layout boundary.\n",
"stages": [
"floorplan",
"place",
"cts",
"route"
]
},
"MAX_PLACE_STEP_COEF": {
"default": 1.05,
"description": "Sets the maximum phi coefficient (pcof_max / \u00b5_k Upper Bound) for global placement optimization. This parameter controls the step size upper bound in the RePlAce Nesterov optimization algorithm. Higher values allow more aggressive optimization but may risk divergence. Valid range: 1.00-1.20\n",
"stages": [
"place"
],
"tunable": 1,
"type": "float"
},
"MAX_REPAIR_ANTENNAS_ITER_DRT": {
"default": 5,
"description": "Defines the maximum number of iterations post-detailed routing repair antennas will run.\n",
"stages": [
"route"
]
},
"MAX_REPAIR_ANTENNAS_ITER_GRT": {
"default": 5,
"description": "Defines the maximum number of iterations post global routing repair antennas will run.\n",
"stages": [
"grt"
]
},
"MAX_REPAIR_TIMING_ITER": {
"description": "Maximum number of iterations for repair setup and repair hold.\n",
"stages": [
"cts",
"floorplan",
"grt",
"place"
]
},
"MAX_ROUTING_LAYER": {
"description": "The highest metal layer name to be used in routing.\n",
"stages": [
"floorplan",
"place",
"grt",
"route",
"final"
]
},
"MIN_BUF_CELL_AND_PORTS": {
"description": "Used to insert a buffer cell to pass through wires. Used in synthesis.\n",
"stages": [
"synth"
]
},
"MIN_CLK_ROUTING_LAYER": {
"description": "The lowest metal layer name to be used for clock-net routing in global routing. Used in flow/platforms/*/fastroute.tcl as the lower bound of `set_routing_layers -clock`. Typically higher than MIN_ROUTING_LAYER so clock nets prefer the upper, lower-RC layers. No `stages:` list because floorplan.tcl also `source`s the platform fastroute.tcl.\n"
},
"MIN_PLACE_STEP_COEF": {
"default": 0.95,
"description": "Sets the minimum phi coefficient (pcof_min / \u00b5_k Lower Bound) for global placement optimization. This parameter controls the step size lower bound in the RePlAce Nesterov optimization algorithm. Lower values may improve convergence but can increase runtime. Valid range: 0.95-1.05\n",
"stages": [
"place"
],
"tunable": 1,
"type": "float"
},
"MIN_ROUTING_LAYER": {
"description": "The lowest metal layer name to be used in routing.\n",
"stages": [
"floorplan",
"place",
"grt",
"route",
"final"
]
},
"NUM_CORES": {
"description": "Passed to `openroad -threads $(NUM_CORES)`, defaults to numbers of cores in system as determined by system specific code in Makefile, `nproc` is tried first. OpenROAD does not limit itself to this number of cores across OpenROAD running instances, which can lead to overprovisioning in contexts such as bazel-orfs where there could be many routing, or place jobs running at the same time.\n",
"stages": [
"All stages"
]
},
"OPENROAD_HIERARCHICAL": {
"default": 0,
"description": "Feature toggle to enable to run OpenROAD in hierarchical mode, otherwise considered flat. Will eventually be the default and this option will be retired.\n",
"stages": [
"All stages"
]
},
"OR_K": {
"description": "Passed as -or_k to detailed routing.\n",
"stages": [
"route"
]
},
"OR_SEED": {
"description": "Passed as -or_seed to detailed routing.\n",
"stages": [
"route"
]
},
"PDN_TCL": {
"description": "File path which has a set of power grid policies used by pdn to be applied to the design, such as layers to use, stripe width and spacing to generate the actual metal straps.\n",
"stages": [
"floorplan"
]
},
"PLACE_DENSITY": {
"description": "The desired average placement density of cells: 1.0 = dense, 0.0 = widely spread. The intended effort is also communicated by this parameter. Use a low value for faster builds and higher value for better quality of results. If a too low value is used, the placer will not be able to place all cells and a recommended minimum placement density can be found in the logs. A too high value can lead to excessive runtimes, even timeouts and subtle failures in the flow after placement, such as in CTS or global routing when timing repair fails. The default is platform specific.\n",
"stages": [
"floorplan",
"place"
]
},
"PLACE_DENSITY_LB_ADDON": {
"description": "Check the lower boundary of the PLACE_DENSITY and add PLACE_DENSITY_LB_ADDON if it exists.\n",
"stages": [
"floorplan",
"place"
],
"tunable": 1,
"type": "float"
},
"PLACE_PINS_ARGS": {
"description": "Arguments to place_pins\n",
"stages": [
"place"
]
},
"PLACE_SITE": {
"description": "Placement site for core cells defined in the technology LEF file.\n",
"stages": [
"floorplan"
],
"tunable": 1,
"type": "string"
},
"PLATFORM": {
"description": "Specifies process design kit or technology node to be used.\n",
"required": true
},
"PLATFORM_TCL": {
"description": "Specifies a Tcl script with commands to run before loading design.\n"
},
"POST_CTS_TCL": {
"description": "Specifies a Tcl script with commands to run after CTS is completed.\n",
"stages": [
"cts"
]
},
"POST_DENSITY_FILL_TCL": {
"description": "Specifies a Tcl script with commands to run after density fill.\n",
"stages": [
"final"
]
},
"POST_DETAIL_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run after detailed placement.\n",
"stages": [
"place"
]
},
"POST_DETAIL_ROUTE_TCL": {
"description": "Specifies a Tcl script with commands to run after detailed route.\n",
"stages": [
"route"
]
},
"POST_FILLCELL_TCL": {
"description": "Specifies a Tcl script with commands to run after fillcell insertion.\n",
"stages": [
"route"
]
},
"POST_FINAL_REPORT_TCL": {
"description": "Specifies a Tcl script with commands to run after final report generation.\n",
"stages": [
"final"
]
},
"POST_FLOORPLAN_TCL": {
"description": "Specifies a Tcl script with commands to run after floorplan is completed.\n",
"stages": [
"floorplan"
]
},
"POST_GLOBAL_PLACE_SKIP_IO_TCL": {
"description": "Specifies a Tcl script with commands to run after global placement (skip IO).\n",
"stages": [
"place"
]
},
"POST_GLOBAL_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run after global placement.\n",
"stages": [
"place"
]
},
"POST_GLOBAL_ROUTE_TCL": {
"description": "Specifies a Tcl script with commands to run after global route.\n",
"stages": [
"grt"
]
},
"POST_IO_PLACEMENT_TCL": {
"description": "Specifies a Tcl script with commands to run after IO placement.\n",
"stages": [
"place"
]
},
"POST_MACRO_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run after macro placement.\n",
"stages": [
"floorplan"
]
},
"POST_PDN_TCL": {
"description": "Specifies a Tcl script with commands to run after PDN generation.\n",
"stages": [
"floorplan"
]
},
"POST_REPAIR_TIMING_POST_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run after post-place timing repair.\n",
"stages": [
"place"
]
},
"POST_RESIZE_TCL": {
"description": "Specifies a Tcl script with commands to run after resize.\n",
"stages": [
"place"
]
},
"POST_SYNTH_TCL": {
"description": "Specifies a Tcl script with commands to run after synthesis ODB generation.\n",
"stages": [
"synth"
]
},
"POST_TAPCELL_TCL": {
"description": "Specifies a Tcl script with commands to run after tapcell.\n",
"stages": [
"floorplan"
]
},
"PRE_CTS_TCL": {
"description": "Specifies a Tcl script with commands to run before CTS.\n",
"stages": [
"cts"
]
},
"PRE_DENSITY_FILL_TCL": {
"description": "Specifies a Tcl script with commands to run before density fill.\n",
"stages": [
"final"
]
},
"PRE_DETAIL_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run before detailed placement.\n",
"stages": [
"place"
]
},
"PRE_DETAIL_ROUTE_TCL": {
"description": "Specifies a Tcl script with commands to run before detailed route.\n",
"stages": [
"route"
]
},
"PRE_FILLCELL_TCL": {
"description": "Specifies a Tcl script with commands to run before fillcell insertion.\n",
"stages": [
"route"
]
},
"PRE_FINAL_REPORT_TCL": {
"description": "Specifies a Tcl script with commands to run before final report generation.\n",
"stages": [
"final"
]
},
"PRE_FLOORPLAN_TCL": {
"description": "Specifies a Tcl script with commands to run before floorplan.\n",
"stages": [
"floorplan"
]
},
"PRE_GLOBAL_PLACE_SKIP_IO_TCL": {
"description": "Specifies a Tcl script with commands to run before global placement (skip IO).\n",
"stages": [
"place"
]
},
"PRE_GLOBAL_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run before global placement.\n",
"stages": [
"place"
]
},
"PRE_GLOBAL_ROUTE_TCL": {
"description": "Specifies a Tcl script with commands to run before global route.\n",
"stages": [
"grt"
]
},
"PRE_IO_PLACEMENT_TCL": {
"description": "Specifies a Tcl script with commands to run before IO placement.\n",
"stages": [
"place"
]
},
"PRE_MACRO_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run before macro placement.\n",
"stages": [
"floorplan"
]
},
"PRE_PDN_TCL": {
"description": "Specifies a Tcl script with commands to run before PDN generation.\n",
"stages": [
"floorplan"
]
},
"PRE_REPAIR_TIMING_POST_PLACE_TCL": {
"description": "Specifies a Tcl script with commands to run before post-place timing repair.\n",
"stages": [
"place"
]
},
"PRE_RESIZE_TCL": {
"description": "Specifies a Tcl script with commands to run before resize.\n",
"stages": [
"place"
]
},
"PRE_SYNTH_TCL": {
"description": "Specifies a Tcl script with commands to run before synthesis ODB generation.\n",
"stages": [
"synth"
]
},
"PRE_TAPCELL_TCL": {
"description": "Specifies a Tcl script with commands to run before tapcell.\n",
"stages": [
"floorplan"
]
},
"PROCESS": {
"description": "Technology node or process in use.\n"
},
"PWR_NETS_VOLTAGES": {
"description": "Used for IR Drop calculation.\n",
"stages": [
"final"
]
},
"RCX_RULES": {
"description": "RC Extraction rules file path.\n"
},
"RECOVER_POWER": {
"default": 0,
"description": "Specifies how many percent of paths with positive slacks can be slowed for power savings [0-100].\n"
},
"REMOVE_ABC_BUFFERS": {
"default": 0,
"deprecated": 1,
"description": "Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1.\n",
"stages": [
"floorplan"
]
},
"REMOVE_CELLS_FOR_LEC": {
"description": "String patterns directly passed to write_verilog -remove_cells <> for lec checks.\n",
"type": "string"
},
"REPAIR_PDN_VIA_LAYER": {
"description": "Remove power grid vias which generate DRC violations after detailed routing.\n"
},
"REPORT_CLOCK_SKEW": {
"default": 1,
"description": "Report clock skew as part of reporting metrics, starting at CTS, before which there is no clock skew. This metric can be quite time-consuming, so it can be useful to disable.\n",
"stages": [
"cts",
"grt",
"route",
"final"
]
},
"ROUTING_LAYER_ADJUSTMENT": {
"default": 0.5,
"description": "Adjusts routing layer capacities to manage congestion and improve detailed routing. High values ease detailed routing but risk excessive detours and long global routing times, while low values reduce global routing failure but can complicate detailed routing. The global routing running time normally reduces dramatically (entirely design specific, but going from hours to minutes has been observed) when the value is low (such as 0.10). Sometimes, global routing will succeed with lower values and fail with higher values. Exploring results with different values can help shed light on the problem. Start with a too low value, such as 0.10, and bisect to value that works by doing multiple global routing runs. As a last resort, `make global_route_issue` and using the tools/OpenROAD/etc/whittle.py can be useful to debug global routing errors. If there is something specific that is impossible to route, such as a clock line over a macro, global routing will terminate with DRC errors routes that could have been routed were it not for the specific impossible routes. whittle.py should weed out the possible routes and leave a minimal failing case that pinpoints the problem.\n",
"stages": [
"floorplan",
"place",
"grt",
"route",
"final"
]
},
"RTLMP_AREA_WT": {
"default": 0.1,
"description": "Weight for the area of the current floorplan.\n",
"stages": [
"floorplan"
]
},
"RTLMP_ARGS": {
"description": "Overrides all other RTL macro placer arguments.\n",
"stages": [
"floorplan"
]
},
"RTLMP_BOUNDARY_WT": {
"default": 50.0,
"description": "Weight for the boundary or how far the hard macro clusters are from boundaries.\n",
"stages": [
"floorplan"
]
},
"RTLMP_FENCE_LX": {
"default": 0.0,
"description": "Defines the lower left X coordinate for the global fence bounding box in microns.\n",
"stages": [
"floorplan"
]
},
"RTLMP_FENCE_LY": {
"default": 0.0,
"description": "Defines the lower left Y coordinate for the global fence bounding box in microns.\n",
"stages": [
"floorplan"
]
},
"RTLMP_FENCE_UX": {
"default": 0.0,
"description": "Defines the upper right X coordinate for the global fence bounding box in microns.\n",
"stages": [
"floorplan"
]
},
"RTLMP_FENCE_UY": {
"default": 0.0,
"description": "Defines the upper right Y coordinate for the global fence bounding box in microns.\n",
"stages": [
"floorplan"
]
},
"RTLMP_MAX_INST": {
"description": "Maximum number of standard cells in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.\n",
"stages": [
"floorplan"
]