siliconcompiler 0.28.1__py3-none-any.whl → 0.28.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. siliconcompiler/_common.py +12 -0
  2. siliconcompiler/_metadata.py +1 -1
  3. siliconcompiler/apps/sc_dashboard.py +5 -1
  4. siliconcompiler/apps/sc_install.py +240 -0
  5. siliconcompiler/apps/sc_remote.py +1 -1
  6. siliconcompiler/core.py +54 -13
  7. siliconcompiler/remote/client.py +41 -10
  8. siliconcompiler/report/__init__.py +1 -1
  9. siliconcompiler/report/{streamlit_report.py → dashboard/__init__.py} +47 -10
  10. siliconcompiler/report/dashboard/components/__init__.py +534 -0
  11. siliconcompiler/report/dashboard/components/flowgraph.py +114 -0
  12. siliconcompiler/report/dashboard/components/graph.py +208 -0
  13. siliconcompiler/report/dashboard/layouts/__init__.py +20 -0
  14. siliconcompiler/report/dashboard/layouts/_common.py +43 -0
  15. siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +95 -0
  16. siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +114 -0
  17. siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +107 -0
  18. siliconcompiler/report/dashboard/state.py +215 -0
  19. siliconcompiler/report/dashboard/utils/__init__.py +73 -0
  20. siliconcompiler/report/dashboard/utils/file_utils.py +120 -0
  21. siliconcompiler/report/dashboard/viewer.py +36 -0
  22. siliconcompiler/report/report.py +22 -4
  23. siliconcompiler/scheduler/__init__.py +43 -6
  24. siliconcompiler/schema/schema_obj.py +4 -2
  25. siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +6 -5
  26. siliconcompiler/tools/openroad/floorplan.py +5 -0
  27. siliconcompiler/tools/openroad/openroad.py +12 -3
  28. siliconcompiler/tools/openroad/scripts/sc_cts.tcl +18 -13
  29. siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +6 -1
  30. siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +1 -1
  31. siliconcompiler/tools/openroad/scripts/sc_procs.tcl +44 -16
  32. siliconcompiler/tools/openroad/scripts/sc_route.tcl +1 -1
  33. siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +10 -10
  34. siliconcompiler/tools/opensta/scripts/sc_procs.tcl +3 -3
  35. siliconcompiler/tools/yosys/syn_asic.tcl +1 -1
  36. siliconcompiler/toolscripts/_tools.json +136 -0
  37. siliconcompiler/toolscripts/_tools.py +222 -0
  38. siliconcompiler/toolscripts/rhel8/install-chisel.sh +26 -0
  39. siliconcompiler/toolscripts/rhel8/install-ghdl.sh +25 -0
  40. siliconcompiler/toolscripts/rhel8/install-icarus.sh +40 -0
  41. siliconcompiler/toolscripts/rhel8/install-klayout.sh +17 -0
  42. siliconcompiler/toolscripts/rhel8/install-magic.sh +26 -0
  43. siliconcompiler/toolscripts/rhel8/install-montage.sh +5 -0
  44. siliconcompiler/toolscripts/rhel8/install-netgen.sh +25 -0
  45. siliconcompiler/toolscripts/rhel8/install-openroad.sh +31 -0
  46. siliconcompiler/toolscripts/rhel8/install-slang.sh +31 -0
  47. siliconcompiler/toolscripts/rhel8/install-surelog.sh +32 -0
  48. siliconcompiler/toolscripts/rhel8/install-sv2v.sh +27 -0
  49. siliconcompiler/toolscripts/rhel8/install-verible.sh +24 -0
  50. siliconcompiler/toolscripts/rhel8/install-verilator.sh +40 -0
  51. siliconcompiler/toolscripts/rhel8/install-xyce.sh +64 -0
  52. siliconcompiler/toolscripts/rhel8/install-yosys.sh +23 -0
  53. siliconcompiler/toolscripts/rhel9/install-chisel.sh +26 -0
  54. siliconcompiler/toolscripts/rhel9/install-ghdl.sh +25 -0
  55. siliconcompiler/toolscripts/rhel9/install-icarus.sh +40 -0
  56. siliconcompiler/toolscripts/rhel9/install-klayout.sh +17 -0
  57. siliconcompiler/toolscripts/rhel9/install-magic.sh +26 -0
  58. siliconcompiler/toolscripts/rhel9/install-montage.sh +5 -0
  59. siliconcompiler/toolscripts/rhel9/install-netgen.sh +25 -0
  60. siliconcompiler/toolscripts/rhel9/install-slang.sh +31 -0
  61. siliconcompiler/toolscripts/rhel9/install-surelog.sh +32 -0
  62. siliconcompiler/toolscripts/rhel9/install-sv2v.sh +27 -0
  63. siliconcompiler/toolscripts/rhel9/install-verible.sh +24 -0
  64. siliconcompiler/toolscripts/rhel9/install-verilator.sh +40 -0
  65. siliconcompiler/toolscripts/rhel9/install-xdm.sh +43 -0
  66. siliconcompiler/toolscripts/rhel9/install-xyce.sh +64 -0
  67. siliconcompiler/toolscripts/rhel9/install-yosys.sh +23 -0
  68. siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +49 -0
  69. siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +35 -0
  70. siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +26 -0
  71. siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +25 -0
  72. siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +25 -0
  73. siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +22 -0
  74. siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +29 -0
  75. siliconcompiler/toolscripts/ubuntu20/install-magic.sh +24 -0
  76. siliconcompiler/toolscripts/ubuntu20/install-montage.sh +5 -0
  77. siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +24 -0
  78. siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +32 -0
  79. siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +31 -0
  80. siliconcompiler/toolscripts/ubuntu20/install-slang.sh +38 -0
  81. siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +32 -0
  82. siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +30 -0
  83. siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +26 -0
  84. siliconcompiler/toolscripts/ubuntu20/install-verible.sh +24 -0
  85. siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +34 -0
  86. siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +27 -0
  87. siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +40 -0
  88. siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +65 -0
  89. siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +24 -0
  90. siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +49 -0
  91. siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +35 -0
  92. siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +26 -0
  93. siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +25 -0
  94. siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +25 -0
  95. siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +22 -0
  96. siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +29 -0
  97. siliconcompiler/toolscripts/ubuntu22/install-magic.sh +24 -0
  98. siliconcompiler/toolscripts/ubuntu22/install-montage.sh +5 -0
  99. siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +24 -0
  100. siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +32 -0
  101. siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +31 -0
  102. siliconcompiler/toolscripts/ubuntu22/install-slang.sh +28 -0
  103. siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +32 -0
  104. siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +25 -0
  105. siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +26 -0
  106. siliconcompiler/toolscripts/ubuntu22/install-verible.sh +24 -0
  107. siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +34 -0
  108. siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +27 -0
  109. siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +40 -0
  110. siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +65 -0
  111. siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +24 -0
  112. siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +49 -0
  113. siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +35 -0
  114. siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +26 -0
  115. siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +25 -0
  116. siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +25 -0
  117. siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +22 -0
  118. siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +31 -0
  119. siliconcompiler/toolscripts/ubuntu24/install-magic.sh +24 -0
  120. siliconcompiler/toolscripts/ubuntu24/install-montage.sh +5 -0
  121. siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +24 -0
  122. siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +32 -0
  123. siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +31 -0
  124. siliconcompiler/toolscripts/ubuntu24/install-slang.sh +28 -0
  125. siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +32 -0
  126. siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +25 -0
  127. siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +26 -0
  128. siliconcompiler/toolscripts/ubuntu24/install-verible.sh +24 -0
  129. siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +34 -0
  130. siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +27 -0
  131. siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +40 -0
  132. siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +65 -0
  133. siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +24 -0
  134. {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/METADATA +7 -6
  135. {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/RECORD +139 -29
  136. {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/entry_points.txt +1 -0
  137. siliconcompiler/report/streamlit_viewer.py +0 -944
  138. {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/LICENSE +0 -0
  139. {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/WHEEL +0 -0
  140. {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.3.dist-info}/top_level.txt +0 -0
@@ -583,10 +583,16 @@ def _define_pad_params(chip):
583
583
 
584
584
 
585
585
  def _define_rsz_params(chip):
586
+ set_tool_task_var(chip, param_key='rsz_skip_setup_repair',
587
+ default_value=False,
588
+ schelp='skip setup timing repair')
586
589
  set_tool_task_var(chip, param_key='rsz_setup_slack_margin',
587
590
  default_value='0.0',
588
591
  schelp='specifies the margin to apply when performing setup repair '
589
592
  'in library timing units')
593
+ set_tool_task_var(chip, param_key='rsz_skip_hold_repair',
594
+ default_value=False,
595
+ schelp='skip hold timing repair')
590
596
  set_tool_task_var(chip, param_key='rsz_hold_slack_margin',
591
597
  default_value='0.0',
592
598
  schelp='specifies the margin to apply when performing setup repair '
@@ -920,9 +926,12 @@ def _set_reports(chip, reports):
920
926
  def check_enabled(type):
921
927
  for key in (('tool', tool, 'task', task, 'var', f'skip_{type}'),
922
928
  ('option', 'var', f'openroad_skip_{type}')):
923
- if chip.valid(*key) and \
924
- chip.get(*key, step=step, index=index) == ["true"]:
925
- return False
929
+ if chip.valid(*key):
930
+ if chip.get(*key, field='pernode') == 'never':
931
+ if chip.get(*key) == ["true"]:
932
+ return False
933
+ elif chip.get(*key, step=step, index=index) == ["true"]:
934
+ return False
926
935
  return True
927
936
 
928
937
  for report in reports:
@@ -31,8 +31,6 @@ if { [llength [all_clocks]] > 0 } {
31
31
 
32
32
  sc_detailed_placement
33
33
 
34
- estimate_parasitics -placement
35
-
36
34
  set repair_timing_args []
37
35
  if { $openroad_rsz_skip_pin_swap == "true" } {
38
36
  lappend repair_timing_args "-skip_pin_swap"
@@ -41,18 +39,25 @@ if { [llength [all_clocks]] > 0 } {
41
39
  lappend repair_timing_args "-skip_gate_cloning"
42
40
  }
43
41
 
44
- repair_timing -setup -verbose \
45
- -setup_margin $openroad_rsz_setup_slack_margin \
46
- -hold_margin $openroad_rsz_hold_slack_margin \
47
- -repair_tns $openroad_rsz_repair_tns \
48
- {*}$repair_timing_args
42
+ if { [lindex [sc_cfg_tool_task_get var rsz_skip_setup_repair] 0] != "true" } {
43
+ estimate_parasitics -placement
49
44
 
50
- estimate_parasitics -placement
51
- repair_timing -hold -verbose \
52
- -setup_margin $openroad_rsz_setup_slack_margin \
53
- -hold_margin $openroad_rsz_hold_slack_margin \
54
- -repair_tns $openroad_rsz_repair_tns \
55
- {*}$repair_timing_args
45
+ repair_timing -setup -verbose \
46
+ -setup_margin $openroad_rsz_setup_slack_margin \
47
+ -hold_margin $openroad_rsz_hold_slack_margin \
48
+ -repair_tns $openroad_rsz_repair_tns \
49
+ {*}$repair_timing_args
50
+ }
51
+
52
+ if { [lindex [sc_cfg_tool_task_get var rsz_skip_hold_repair] 0] != "true" } {
53
+ estimate_parasitics -placement
54
+
55
+ repair_timing -hold -verbose \
56
+ -setup_margin $openroad_rsz_setup_slack_margin \
57
+ -hold_margin $openroad_rsz_hold_slack_margin \
58
+ -repair_tns $openroad_rsz_repair_tns \
59
+ {*}$repair_timing_args
60
+ }
56
61
 
57
62
  sc_detailed_placement
58
63
  }
@@ -330,6 +330,9 @@ if { [sc_design_has_unplaced_macros] } {
330
330
  # technologies we support do not, so we don't include that step for now.
331
331
  }
332
332
  }
333
+
334
+ sc_print_macro_information
335
+
333
336
  if { [sc_design_has_unplaced_macros] } {
334
337
  utl::error FLW 1 "Design contains unplaced macros."
335
338
  }
@@ -402,4 +405,6 @@ foreach net [sc_psm_check_nets] {
402
405
  # Remove buffers inserted by synthesis
403
406
  ###########################
404
407
 
405
- remove_buffers
408
+ if { [lindex [sc_cfg_tool_task_get var remove_synth_buffers] 0] == "true" } {
409
+ remove_buffers
410
+ }
@@ -2,7 +2,7 @@
2
2
  # Report Metrics
3
3
  ###############################
4
4
 
5
- proc sc_display_report {report} {
5
+ proc sc_display_report { report } {
6
6
  if { ![file exists $report] } {
7
7
  return
8
8
  }
@@ -2,7 +2,7 @@
2
2
  # Global Placement
3
3
  #######################
4
4
 
5
- proc sc_global_placement_density {} {
5
+ proc sc_global_placement_density { } {
6
6
  global openroad_gpl_padding
7
7
  global openroad_gpl_place_density
8
8
  global openroad_gpl_uniform_placement_adjustment
@@ -82,7 +82,7 @@ proc sc_global_placement { args } {
82
82
  # Detailed Placement
83
83
  ###########################
84
84
 
85
- proc sc_detailed_placement {} {
85
+ proc sc_detailed_placement { } {
86
86
  global openroad_dpl_padding
87
87
  global openroad_dpl_padding
88
88
  global openroad_dpl_disallow_one_site
@@ -149,7 +149,7 @@ proc sc_pin_placement { args } {
149
149
  # Check if OR has a GUI
150
150
  ###########################
151
151
 
152
- proc sc_has_gui {} {
152
+ proc sc_has_gui { } {
153
153
  return [gui::supported]
154
154
  }
155
155
 
@@ -157,7 +157,7 @@ proc sc_has_gui {} {
157
157
  # Check if design has placed instances
158
158
  ###########################
159
159
 
160
- proc sc_has_placed_instances {} {
160
+ proc sc_has_placed_instances { } {
161
161
  foreach inst [[ord::get_db_block] getInsts] {
162
162
  if { [$inst isPlaced] } {
163
163
  return true
@@ -170,7 +170,7 @@ proc sc_has_placed_instances {} {
170
170
  # Check if design has unplaced instances
171
171
  ###########################
172
172
 
173
- proc sc_has_unplaced_instances {} {
173
+ proc sc_has_unplaced_instances { } {
174
174
  foreach inst [[ord::get_db_block] getInsts] {
175
175
  if { ![$inst isPlaced] } {
176
176
  return true
@@ -183,7 +183,7 @@ proc sc_has_unplaced_instances {} {
183
183
  # Check if design has routing
184
184
  ###########################
185
185
 
186
- proc sc_has_routing {} {
186
+ proc sc_has_routing { } {
187
187
  foreach net [[ord::get_db_block] getNets] {
188
188
  if { [$net getWire] != "NULL" } {
189
189
  return true
@@ -196,7 +196,7 @@ proc sc_has_routing {} {
196
196
  # Check if design has global routing
197
197
  ###########################
198
198
 
199
- proc sc_has_global_routing {} {
199
+ proc sc_has_global_routing { } {
200
200
  foreach net [[ord::get_db_block] getNets] {
201
201
  if { [llength [$net getGuides]] != 0 } {
202
202
  return true
@@ -211,7 +211,7 @@ proc sc_has_global_routing {} {
211
211
 
212
212
  # Function adapted from OpenROAD:
213
213
  # https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/ca3004b85e0d4fbee3470115e63b83c498cfed85/flow/scripts/macro_place.tcl#L26
214
- proc sc_design_has_unplaced_macros {} {
214
+ proc sc_design_has_unplaced_macros { } {
215
215
  foreach inst [[ord::get_db_block] getInsts] {
216
216
  if { [$inst isBlock] && ![$inst isFixed] } {
217
217
  return true
@@ -220,11 +220,39 @@ proc sc_design_has_unplaced_macros {} {
220
220
  return false
221
221
  }
222
222
 
223
+ ###########################
224
+ # Print macros placement
225
+ ###########################
226
+
227
+ proc sc_print_macro_information { } {
228
+ set print_header "true"
229
+ foreach inst [[ord::get_db_block] getInsts] {
230
+ if { [$inst isBlock] } {
231
+ set master [$inst getMaster]
232
+ set status [$inst getPlacementStatus]
233
+
234
+ if { $print_header == "true" } {
235
+ puts "Macro placement information"
236
+ set print_header "false"
237
+ }
238
+ if { [$inst isPlaced] } {
239
+ set location [$inst getLocation]
240
+ set orient [$inst getOrient]
241
+ set xloc [ord::dbu_to_microns [lindex $location 0]]
242
+ set yloc [ord::dbu_to_microns [lindex $location 1]]
243
+ puts "[$inst getName] ([$master getName]): $status at ($xloc um, $yloc um) $orient"
244
+ } else {
245
+ utl::warn FLW 1 "[$inst getName] ([$master getName]): UNPLACED"
246
+ }
247
+ }
248
+ }
249
+ }
250
+
223
251
  ###########################
224
252
  # Design has unplaced pads
225
253
  ###########################
226
254
 
227
- proc sc_design_has_unplaced_pads {} {
255
+ proc sc_design_has_unplaced_pads { } {
228
256
  foreach inst [[ord::get_db_block] getInsts] {
229
257
  if { [$inst isPad] && ![$inst isFixed] } {
230
258
  return true
@@ -237,7 +265,7 @@ proc sc_design_has_unplaced_pads {} {
237
265
  # Design has placable IOs
238
266
  ###########################
239
267
 
240
- proc sc_design_has_placeable_ios {} {
268
+ proc sc_design_has_placeable_ios { } {
241
269
  foreach bterm [[ord::get_db_block] getBTerms] {
242
270
  if {
243
271
  [$bterm getFirstPinPlacementStatus] != "FIXED" &&
@@ -284,7 +312,7 @@ proc sc_find_net_regex { net_name } {
284
312
  # Get supply nets in design
285
313
  ###########################
286
314
 
287
- proc sc_supply_nets {} {
315
+ proc sc_supply_nets { } {
288
316
  set nets []
289
317
 
290
318
  foreach net [[ord::get_db_block] getNets] {
@@ -301,7 +329,7 @@ proc sc_supply_nets {} {
301
329
  # Get nets for PSM to check
302
330
  ###########################
303
331
 
304
- proc sc_psm_check_nets {} {
332
+ proc sc_psm_check_nets { } {
305
333
  global openroad_psm_enable
306
334
  global openroad_psm_skip_nets
307
335
 
@@ -343,7 +371,7 @@ proc sc_save_image { title path { pixels 1000 } } {
343
371
  # Get the image bounding box
344
372
  ###########################
345
373
 
346
- proc sc_image_area {} {
374
+ proc sc_image_area { } {
347
375
  set box [[ord::get_db_block] getDieArea]
348
376
  set width [$box dx]
349
377
  set height [$box dy]
@@ -373,7 +401,7 @@ proc sc_image_resolution { pixels } {
373
401
  # Clear gui selections
374
402
  ###########################
375
403
 
376
- proc sc_image_clear_selection {} {
404
+ proc sc_image_clear_selection { } {
377
405
  gui::clear_highlights -1
378
406
  gui::clear_selections
379
407
  }
@@ -382,7 +410,7 @@ proc sc_image_clear_selection {} {
382
410
  # Setup default GUI setting for images
383
411
  ###########################
384
412
 
385
- proc sc_image_setup_default {} {
413
+ proc sc_image_setup_default { } {
386
414
  gui::restore_display_controls
387
415
 
388
416
  sc_image_clear_selection
@@ -406,7 +434,7 @@ proc sc_image_setup_default {} {
406
434
  # Count the logic depth of the critical path
407
435
  ###########################
408
436
 
409
- proc count_logic_depth {} {
437
+ proc count_logic_depth { } {
410
438
  set count 0
411
439
  set paths [find_timing_paths -sort_by_slack]
412
440
  if { [llength $paths] == 0 } {
@@ -6,7 +6,7 @@
6
6
  # Helper functions
7
7
  #######################
8
8
 
9
- proc insert_fillers {} {
9
+ proc insert_fillers { } {
10
10
  upvar sc_filler sc_filler
11
11
  if { $sc_filler != "" } {
12
12
  filler_placement $sc_filler
@@ -54,7 +54,7 @@ proc sc_image_heatmap { name ident image_name title { allow_bin_adjust 1 } } {
54
54
  gui::set_display_controls "Heat Maps/${name}" visible false
55
55
  }
56
56
 
57
- proc sc_image_placement {} {
57
+ proc sc_image_placement { } {
58
58
  if { ![sc_has_placed_instances] } {
59
59
  return
60
60
  }
@@ -70,7 +70,7 @@ proc sc_image_placement {} {
70
70
  sc_save_image "placement" reports/images/${sc_design}.placement.png
71
71
  }
72
72
 
73
- proc sc_image_routing {} {
73
+ proc sc_image_routing { } {
74
74
  if { ![sc_has_routing] } {
75
75
  return
76
76
  }
@@ -85,7 +85,7 @@ proc sc_image_routing {} {
85
85
  sc_save_image "routing" reports/images/${sc_design}.routing.png
86
86
  }
87
87
 
88
- proc sc_image_everything {} {
88
+ proc sc_image_everything { } {
89
89
  global sc_design
90
90
 
91
91
  sc_image_setup_default
@@ -134,7 +134,7 @@ proc sc_image_irdrop { net corner } {
134
134
  }
135
135
  }
136
136
 
137
- proc sc_image_routing_congestion {} {
137
+ proc sc_image_routing_congestion { } {
138
138
  if { ![sc_has_global_routing] } {
139
139
  return
140
140
  }
@@ -148,7 +148,7 @@ proc sc_image_routing_congestion {} {
148
148
  0
149
149
  }
150
150
 
151
- proc sc_image_estimated_routing_congestion {} {
151
+ proc sc_image_estimated_routing_congestion { } {
152
152
  if { ![sc_has_placed_instances] } {
153
153
  return
154
154
  }
@@ -166,7 +166,7 @@ proc sc_image_estimated_routing_congestion {} {
166
166
  unsuppress_message GRT 10
167
167
  }
168
168
 
169
- proc sc_image_power_density {} {
169
+ proc sc_image_power_density { } {
170
170
  if { ![sc_has_placed_instances] } {
171
171
  return
172
172
  }
@@ -188,7 +188,7 @@ proc sc_image_power_density {} {
188
188
  }
189
189
  }
190
190
 
191
- proc sc_image_placement_density {} {
191
+ proc sc_image_placement_density { } {
192
192
  if { ![sc_has_placed_instances] } {
193
193
  return
194
194
  }
@@ -201,7 +201,7 @@ proc sc_image_placement_density {} {
201
201
  "placement density"
202
202
  }
203
203
 
204
- proc sc_image_clocks {} {
204
+ proc sc_image_clocks { } {
205
205
  if { ![sc_has_placed_instances] } {
206
206
  return
207
207
  }
@@ -223,7 +223,7 @@ proc sc_image_clocks {} {
223
223
  sc_save_image "clocks" reports/images/${sc_design}.clocks.png
224
224
  }
225
225
 
226
- proc sc_image_clocktree {} {
226
+ proc sc_image_clocktree { } {
227
227
  gui::show_widget "Clock Tree Viewer"
228
228
  global sc_scenarios
229
229
 
@@ -263,7 +263,7 @@ proc sc_image_clocktree {} {
263
263
  gui::hide_widget "Clock Tree Viewer"
264
264
  }
265
265
 
266
- proc sc_image_optimizer {} {
266
+ proc sc_image_optimizer { } {
267
267
  global sc_design
268
268
  sc_image_setup_default
269
269
 
@@ -2,7 +2,7 @@
2
2
  # Count the logic depth of the critical path
3
3
  ###########################
4
4
 
5
- proc sc_count_logic_depth {} {
5
+ proc sc_count_logic_depth { } {
6
6
  set count 0
7
7
  set paths [find_timing_paths -sort_by_slack]
8
8
  if { [llength $paths] == 0 } {
@@ -24,7 +24,7 @@ proc sc_count_logic_depth {} {
24
24
  return [expr { $count - 1 }]
25
25
  }
26
26
 
27
- proc sc_design_area {} {
27
+ proc sc_design_area { } {
28
28
  set area 0
29
29
  foreach inst [get_cells -hierarchical *] {
30
30
  set lib_cell [$inst liberty_cell]
@@ -35,7 +35,7 @@ proc sc_design_area {} {
35
35
  return $area
36
36
  }
37
37
 
38
- proc sc_display_report {report} {
38
+ proc sc_display_report { report } {
39
39
  if { ![file exists $report] } {
40
40
  return
41
41
  }
@@ -3,7 +3,7 @@
3
3
  ####################
4
4
  source "$sc_refdir/syn_asic_fpga_shared.tcl"
5
5
 
6
- proc preserve_modules {} {
6
+ proc preserve_modules { } {
7
7
  global sc_cfg
8
8
  global sc_tool
9
9
  global sc_task
@@ -0,0 +1,136 @@
1
+ {
2
+ "openroad": {
3
+ "git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
4
+ "git-commit": "3a75eb5d52a207622c3dfd52937d3a02488f76b5",
5
+ "docker-cmds": [
6
+ "# Remove OR-Tools files",
7
+ "RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
8
+ "# Remove OpenROAD Env file",
9
+ "RUN rm -f $SC_PREFIX/env.sh"
10
+ ],
11
+ "auto-update": true
12
+ },
13
+ "surelog": {
14
+ "git-url": "https://github.com/chipsalliance/Surelog.git",
15
+ "git-commit": "v1.84",
16
+ "auto-update": true
17
+ },
18
+ "netgen": {
19
+ "git-url": "https://github.com/RTimothyEdwards/netgen.git",
20
+ "git-commit": "fb7876c7a6f9d58a3d88a49e302e682c1d12e00d",
21
+ "auto-update": false
22
+ },
23
+ "ghdl": {
24
+ "git-url": "https://github.com/ghdl/ghdl.git",
25
+ "git-commit": "v4.1.0",
26
+ "auto-update": false
27
+ },
28
+ "magic": {
29
+ "git-url": "https://github.com/RTimothyEdwards/magic.git",
30
+ "git-commit": "c7f11d2169f6af8751ae22b5d70250b331e1a667",
31
+ "auto-update": false
32
+ },
33
+ "bluespec": {
34
+ "git-url": "https://github.com/B-Lang-org/bsc.git",
35
+ "git-commit": "4cac6ebae076e8b8378597aba1d2119aa29ec419",
36
+ "auto-update": false
37
+ },
38
+ "klayout": {
39
+ "version": "0.29.7",
40
+ "git-url": "https://github.com/KLayout/klayout.git",
41
+ "docker-skip": true,
42
+ "auto-update": true,
43
+ "run-version": "source version.sh && echo $KLAYOUT_VERSION",
44
+ "release-notes": "https://www.klayout.de/development.html"
45
+ },
46
+ "sv2v": {
47
+ "git-url": "https://github.com/zachjs/sv2v.git",
48
+ "git-commit": "5374679e4bb26e115b9a9b4a2d8ef4253d7a8bf3",
49
+ "auto-update": true
50
+ },
51
+ "verilator": {
52
+ "git-url": "https://github.com/verilator/verilator.git",
53
+ "git-commit": "563faeb33f3b9b5374f558f54adfea11873f1cd7",
54
+ "auto-update": true
55
+ },
56
+ "bambu": {
57
+ "git-url": "https://github.com/ferrandi/PandA-bambu.git",
58
+ "git-commit": "v2024.03",
59
+ "auto-update": false,
60
+ "docker-cmds": [
61
+ "# Remove ORFS Stuff",
62
+ "RUN rm -rf $SC_PREFIX/share/panda/asap7",
63
+ "RUN rm -rf $SC_PREFIX/share/panda/nangate45",
64
+ "RUN rm -rf $SC_PREFIX/share/panda/scripts"
65
+ ]
66
+ },
67
+ "vpr": {
68
+ "git-url": "https://github.com/verilog-to-routing/vtr-verilog-to-routing.git",
69
+ "git-commit": "9dd5ff66e3ab43238f5a4cb14cafe17bc4afe527",
70
+ "auto-update": false
71
+ },
72
+ "icepack": {
73
+ "git-url": "https://github.com/YosysHQ/icestorm.git",
74
+ "git-commit": "d20a5e9001f46262bf0cef220f1a6943946e421d",
75
+ "auto-update": false
76
+ },
77
+ "nextpnr": {
78
+ "git-url": "https://github.com/YosysHQ/nextpnr.git",
79
+ "git-commit": "f89b959b5f56ba8d91e1e7f8a645b267a5a7bb89",
80
+ "docker-depends": "icepack"
81
+ },
82
+ "chisel": {
83
+ "version": "1.8.0",
84
+ "git-url": "https://github.com/sbt/sbt.git",
85
+ "auto-update": false
86
+ },
87
+ "icarus": {
88
+ "git-url": "https://github.com/steveicarus/iverilog.git",
89
+ "git-commit": "01441687235135d1c12eeef920f75d97995da333",
90
+ "auto-update": false
91
+ },
92
+ "yosys": {
93
+ "git-url": "https://github.com/YosysHQ/yosys.git",
94
+ "git-commit": "0.46",
95
+ "version-prefix": "",
96
+ "auto-update": true
97
+ },
98
+ "xyce": {
99
+ "git-url": "https://github.com/Xyce/Xyce.git",
100
+ "version": "7.8.0",
101
+ "auto-update": false
102
+ },
103
+ "xdm": {
104
+ "git-url": "https://github.com/Xyce/XDM.git",
105
+ "git-commit": "Release-2.7.0",
106
+ "auto-update": false
107
+ },
108
+ "slurm": {
109
+ "version": "22.05.7",
110
+ "git-url": "https://github.com/SchedMD/slurm.git",
111
+ "auto-update": false,
112
+ "docker-extra-files": [
113
+ "docker/slurm"
114
+ ],
115
+ "docker-cmds": [
116
+ "COPY slurm $SC_PREFIX/slurm_cfg",
117
+ "RUN mv $SC_PREFIX/slurm_cfg/install-slurm.sh $SC_PREFIX/",
118
+ "RUN chmod +x $SC_PREFIX/install-slurm.sh"
119
+ ]
120
+ },
121
+ "montage": {
122
+ "version": "6.9.11",
123
+ "auto-update": false,
124
+ "docker-skip": true
125
+ },
126
+ "verible": {
127
+ "version": "v0.0-3303-gd87f2420",
128
+ "git-url": "https://github.com/chipsalliance/verible.git",
129
+ "auto-update": false
130
+ },
131
+ "slang": {
132
+ "git-commit": "v7.0",
133
+ "git-url": "https://github.com/MikePopoloski/slang.git",
134
+ "auto-update": true
135
+ }
136
+ }