siliconcompiler 0.32.3__py3-none-any.whl → 0.33.1__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 (280) hide show
  1. siliconcompiler/__init__.py +19 -2
  2. siliconcompiler/_common.py +5 -0
  3. siliconcompiler/_metadata.py +1 -1
  4. siliconcompiler/apps/sc.py +2 -2
  5. siliconcompiler/apps/sc_install.py +10 -3
  6. siliconcompiler/apps/sc_issue.py +1 -1
  7. siliconcompiler/apps/sc_remote.py +10 -5
  8. siliconcompiler/apps/sc_show.py +2 -2
  9. siliconcompiler/apps/utils/replay.py +5 -3
  10. siliconcompiler/asic.py +120 -0
  11. siliconcompiler/checklist.py +150 -0
  12. siliconcompiler/core.py +299 -299
  13. siliconcompiler/flowgraph.py +803 -515
  14. siliconcompiler/fpga.py +84 -0
  15. siliconcompiler/metric.py +479 -0
  16. siliconcompiler/optimizer/vizier.py +2 -3
  17. siliconcompiler/package/__init__.py +29 -6
  18. siliconcompiler/pdk.py +415 -0
  19. siliconcompiler/record.py +453 -0
  20. siliconcompiler/remote/client.py +15 -5
  21. siliconcompiler/remote/schema.py +116 -112
  22. siliconcompiler/remote/server.py +9 -6
  23. siliconcompiler/report/dashboard/cli/__init__.py +14 -721
  24. siliconcompiler/report/dashboard/cli/board.py +899 -0
  25. siliconcompiler/report/dashboard/web/__init__.py +10 -10
  26. siliconcompiler/report/dashboard/web/components/__init__.py +5 -4
  27. siliconcompiler/report/dashboard/web/components/flowgraph.py +3 -3
  28. siliconcompiler/report/dashboard/web/components/graph.py +6 -3
  29. siliconcompiler/report/dashboard/web/state.py +1 -1
  30. siliconcompiler/report/dashboard/web/utils/__init__.py +4 -3
  31. siliconcompiler/report/html_report.py +2 -3
  32. siliconcompiler/report/report.py +22 -11
  33. siliconcompiler/report/summary_image.py +1 -1
  34. siliconcompiler/report/summary_table.py +3 -3
  35. siliconcompiler/report/utils.py +21 -14
  36. siliconcompiler/scheduler/__init__.py +234 -1206
  37. siliconcompiler/scheduler/run_node.py +2 -1
  38. siliconcompiler/scheduler/send_messages.py +11 -5
  39. siliconcompiler/scheduler/slurm.py +11 -44
  40. siliconcompiler/scheduler/taskscheduler.py +320 -0
  41. siliconcompiler/schema/__init__.py +19 -2
  42. siliconcompiler/schema/baseschema.py +493 -0
  43. siliconcompiler/schema/cmdlineschema.py +250 -0
  44. siliconcompiler/{sphinx_ext → schema/docs}/__init__.py +3 -1
  45. siliconcompiler/{sphinx_ext → schema/docs}/dynamicgen.py +63 -81
  46. siliconcompiler/{sphinx_ext → schema/docs}/schemagen.py +73 -85
  47. siliconcompiler/{sphinx_ext → schema/docs}/utils.py +12 -13
  48. siliconcompiler/schema/editableschema.py +136 -0
  49. siliconcompiler/schema/journalingschema.py +238 -0
  50. siliconcompiler/schema/namedschema.py +41 -0
  51. siliconcompiler/schema/packageschema.py +101 -0
  52. siliconcompiler/schema/parameter.py +791 -0
  53. siliconcompiler/schema/parametertype.py +323 -0
  54. siliconcompiler/schema/parametervalue.py +736 -0
  55. siliconcompiler/schema/safeschema.py +37 -0
  56. siliconcompiler/schema/schema_cfg.py +109 -1789
  57. siliconcompiler/schema/utils.py +5 -68
  58. siliconcompiler/schema_obj.py +119 -0
  59. siliconcompiler/tool.py +1416 -0
  60. siliconcompiler/tools/_common/__init__.py +6 -10
  61. siliconcompiler/tools/_common/asic.py +5 -5
  62. siliconcompiler/tools/_common/sdc/sc_constraints.sdc +1 -1
  63. siliconcompiler/tools/bluespec/convert.py +9 -8
  64. siliconcompiler/tools/builtin/_common.py +9 -2
  65. siliconcompiler/tools/builtin/concatenate.py +7 -3
  66. siliconcompiler/tools/builtin/minimum.py +7 -2
  67. siliconcompiler/tools/builtin/mux.py +8 -2
  68. siliconcompiler/tools/builtin/nop.py +7 -2
  69. siliconcompiler/tools/builtin/verify.py +11 -5
  70. siliconcompiler/tools/chisel/convert.py +10 -10
  71. siliconcompiler/tools/genfasm/bitstream.py +3 -3
  72. siliconcompiler/tools/ghdl/convert.py +1 -1
  73. siliconcompiler/tools/icarus/compile.py +4 -4
  74. siliconcompiler/tools/icepack/bitstream.py +6 -1
  75. siliconcompiler/tools/klayout/convert_drc_db.py +5 -0
  76. siliconcompiler/tools/klayout/drc.py +2 -2
  77. siliconcompiler/tools/klayout/klayout_export.py +0 -1
  78. siliconcompiler/tools/klayout/klayout_show.py +6 -6
  79. siliconcompiler/tools/klayout/klayout_utils.py +15 -22
  80. siliconcompiler/tools/netgen/count_lvs.py +2 -2
  81. siliconcompiler/tools/netgen/lvs.py +1 -1
  82. siliconcompiler/tools/nextpnr/apr.py +6 -1
  83. siliconcompiler/tools/nextpnr/nextpnr.py +4 -4
  84. siliconcompiler/tools/openroad/_apr.py +15 -2
  85. siliconcompiler/tools/openroad/rdlroute.py +3 -3
  86. siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +1 -1
  87. siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +5 -5
  88. siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +2 -2
  89. siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +2 -2
  90. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +2 -2
  91. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +2 -2
  92. siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +2 -2
  93. siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +2 -2
  94. siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
  95. siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +2 -2
  96. siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +2 -2
  97. siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +3 -9
  98. siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +3 -3
  99. siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +2 -2
  100. siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +2 -2
  101. siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +2 -2
  102. siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +2 -2
  103. siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +2 -2
  104. siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +2 -2
  105. siliconcompiler/tools/openroad/scripts/common/procs.tcl +75 -1
  106. siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +1 -7
  107. siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +2 -2
  108. siliconcompiler/tools/openroad/scripts/common/write_images.tcl +28 -3
  109. siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +1 -1
  110. siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -3
  111. siliconcompiler/tools/openroad/scripts/sc_show.tcl +6 -6
  112. siliconcompiler/tools/opensta/scripts/sc_timing.tcl +10 -0
  113. siliconcompiler/tools/opensta/timing.py +11 -0
  114. siliconcompiler/tools/slang/__init__.py +13 -13
  115. siliconcompiler/tools/slang/elaborate.py +6 -6
  116. siliconcompiler/tools/slang/lint.py +1 -3
  117. siliconcompiler/tools/surelog/parse.py +4 -4
  118. siliconcompiler/tools/sv2v/convert.py +20 -3
  119. siliconcompiler/tools/verilator/compile.py +2 -2
  120. siliconcompiler/tools/verilator/verilator.py +3 -3
  121. siliconcompiler/tools/vpr/_xml_constraint.py +8 -8
  122. siliconcompiler/tools/vpr/place.py +1 -1
  123. siliconcompiler/tools/vpr/route.py +4 -4
  124. siliconcompiler/tools/vpr/screenshot.py +1 -1
  125. siliconcompiler/tools/vpr/show.py +5 -5
  126. siliconcompiler/tools/vpr/vpr.py +24 -24
  127. siliconcompiler/tools/xdm/convert.py +2 -2
  128. siliconcompiler/tools/xyce/simulate.py +1 -1
  129. siliconcompiler/tools/yosys/prepareLib.py +2 -2
  130. siliconcompiler/tools/yosys/sc_synth_asic.tcl +111 -63
  131. siliconcompiler/tools/yosys/screenshot.py +1 -1
  132. siliconcompiler/tools/yosys/syn_asic.py +7 -7
  133. siliconcompiler/toolscripts/_tools.json +12 -10
  134. siliconcompiler/toolscripts/rhel8/install-chisel.sh +9 -2
  135. siliconcompiler/toolscripts/rhel8/install-icarus.sh +10 -3
  136. siliconcompiler/toolscripts/rhel8/install-klayout.sh +8 -1
  137. siliconcompiler/toolscripts/rhel8/install-magic.sh +9 -2
  138. siliconcompiler/toolscripts/rhel8/install-montage.sh +1 -1
  139. siliconcompiler/toolscripts/rhel8/install-netgen.sh +9 -2
  140. siliconcompiler/toolscripts/rhel8/install-slang.sh +11 -4
  141. siliconcompiler/toolscripts/rhel8/install-surelog.sh +9 -2
  142. siliconcompiler/toolscripts/rhel8/install-sv2v.sh +11 -4
  143. siliconcompiler/toolscripts/rhel8/install-verible.sh +11 -3
  144. siliconcompiler/toolscripts/rhel8/install-verilator.sh +10 -3
  145. siliconcompiler/toolscripts/rhel8/install-xyce.sh +15 -10
  146. siliconcompiler/toolscripts/rhel9/install-chisel.sh +9 -2
  147. siliconcompiler/toolscripts/rhel9/install-ghdl.sh +9 -2
  148. siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +10 -3
  149. siliconcompiler/toolscripts/rhel9/install-icarus.sh +10 -3
  150. siliconcompiler/toolscripts/rhel9/install-klayout.sh +8 -1
  151. siliconcompiler/toolscripts/rhel9/install-magic.sh +9 -2
  152. siliconcompiler/toolscripts/rhel9/install-montage.sh +1 -1
  153. siliconcompiler/toolscripts/rhel9/install-netgen.sh +9 -2
  154. siliconcompiler/toolscripts/rhel9/install-openroad.sh +16 -3
  155. siliconcompiler/toolscripts/rhel9/install-opensta.sh +17 -5
  156. siliconcompiler/toolscripts/rhel9/install-slang.sh +11 -4
  157. siliconcompiler/toolscripts/rhel9/install-surelog.sh +9 -2
  158. siliconcompiler/toolscripts/rhel9/install-sv2v.sh +11 -4
  159. siliconcompiler/toolscripts/rhel9/install-verible.sh +11 -3
  160. siliconcompiler/toolscripts/rhel9/install-verilator.sh +10 -3
  161. siliconcompiler/toolscripts/rhel9/install-vpr.sh +9 -2
  162. siliconcompiler/toolscripts/rhel9/install-xdm.sh +10 -2
  163. siliconcompiler/toolscripts/rhel9/install-xyce.sh +15 -10
  164. siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +9 -2
  165. siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +10 -3
  166. siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +10 -2
  167. siliconcompiler/toolscripts/rhel9/install-yosys.sh +9 -2
  168. siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +10 -2
  169. siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +10 -3
  170. siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +9 -2
  171. siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +9 -2
  172. siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +9 -2
  173. siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +9 -2
  174. siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +9 -2
  175. siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +8 -1
  176. siliconcompiler/toolscripts/ubuntu20/install-magic.sh +9 -2
  177. siliconcompiler/toolscripts/ubuntu20/install-montage.sh +1 -1
  178. siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +9 -2
  179. siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +9 -2
  180. siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +16 -3
  181. siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +16 -5
  182. siliconcompiler/toolscripts/ubuntu20/install-slang.sh +11 -4
  183. siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +9 -2
  184. siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +10 -2
  185. siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +11 -4
  186. siliconcompiler/toolscripts/ubuntu20/install-verible.sh +11 -3
  187. siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +9 -2
  188. siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +10 -2
  189. siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +13 -8
  190. siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +9 -2
  191. siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +9 -2
  192. siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +10 -2
  193. siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +10 -3
  194. siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +9 -2
  195. siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +9 -2
  196. siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +9 -2
  197. siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +9 -2
  198. siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +9 -2
  199. siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +8 -1
  200. siliconcompiler/toolscripts/ubuntu22/install-magic.sh +9 -2
  201. siliconcompiler/toolscripts/ubuntu22/install-montage.sh +1 -1
  202. siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +9 -2
  203. siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +9 -2
  204. siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +16 -3
  205. siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +17 -5
  206. siliconcompiler/toolscripts/ubuntu22/install-slang.sh +11 -4
  207. siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +9 -2
  208. siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +10 -2
  209. siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +11 -4
  210. siliconcompiler/toolscripts/ubuntu22/install-verible.sh +11 -3
  211. siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +9 -2
  212. siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +9 -4
  213. siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +10 -2
  214. siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +13 -8
  215. siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +9 -2
  216. siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +10 -3
  217. siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +10 -2
  218. siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +9 -2
  219. siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +12 -4
  220. siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +10 -3
  221. siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +9 -2
  222. siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +9 -2
  223. siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +9 -2
  224. siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +9 -2
  225. siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +9 -2
  226. siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +8 -1
  227. siliconcompiler/toolscripts/ubuntu24/install-magic.sh +9 -2
  228. siliconcompiler/toolscripts/ubuntu24/install-montage.sh +1 -1
  229. siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +9 -2
  230. siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +9 -2
  231. siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +16 -3
  232. siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +17 -5
  233. siliconcompiler/toolscripts/ubuntu24/install-slang.sh +11 -4
  234. siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +9 -2
  235. siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +10 -2
  236. siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +11 -4
  237. siliconcompiler/toolscripts/ubuntu24/install-verible.sh +11 -3
  238. siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +9 -2
  239. siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +9 -4
  240. siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +10 -2
  241. siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +13 -8
  242. siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +9 -2
  243. siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +10 -3
  244. siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +10 -2
  245. siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +9 -2
  246. siliconcompiler/utils/__init__.py +19 -112
  247. siliconcompiler/utils/flowgraph.py +244 -0
  248. siliconcompiler/{issue.py → utils/issue.py} +18 -25
  249. siliconcompiler/utils/logging.py +3 -4
  250. {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/METADATA +9 -8
  251. siliconcompiler-0.33.1.dist-info/RECORD +488 -0
  252. {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/WHEEL +1 -1
  253. {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/entry_points.txt +8 -8
  254. siliconcompiler/schema/schema_obj.py +0 -1936
  255. siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -29
  256. siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +0 -61
  257. siliconcompiler-0.32.3.dist-info/RECORD +0 -470
  258. /siliconcompiler/{templates → data/templates}/__init__.py +0 -0
  259. /siliconcompiler/{templates → data/templates}/email/__init__.py +0 -0
  260. /siliconcompiler/{templates → data/templates}/email/general.j2 +0 -0
  261. /siliconcompiler/{templates → data/templates}/email/summary.j2 +0 -0
  262. /siliconcompiler/{templates → data/templates}/issue/README.txt +0 -0
  263. /siliconcompiler/{templates → data/templates}/issue/__init__.py +0 -0
  264. /siliconcompiler/{templates → data/templates}/issue/run.sh +0 -0
  265. /siliconcompiler/{templates → data/templates}/replay/replay.py.j2 +0 -0
  266. /siliconcompiler/{templates → data/templates}/replay/replay.sh.j2 +0 -0
  267. /siliconcompiler/{templates → data/templates}/replay/requirements.txt +0 -0
  268. /siliconcompiler/{templates → data/templates}/replay/setup.sh +0 -0
  269. /siliconcompiler/{templates → data/templates}/report/__init__.py +0 -0
  270. /siliconcompiler/{templates → data/templates}/report/bootstrap.min.css +0 -0
  271. /siliconcompiler/{templates → data/templates}/report/bootstrap.min.js +0 -0
  272. /siliconcompiler/{templates → data/templates}/report/bootstrap_LICENSE.md +0 -0
  273. /siliconcompiler/{templates → data/templates}/report/sc_report.j2 +0 -0
  274. /siliconcompiler/{templates → data/templates}/slurm/__init__.py +0 -0
  275. /siliconcompiler/{templates → data/templates}/slurm/run.sh +0 -0
  276. /siliconcompiler/{templates → data/templates}/tcl/__init__.py +0 -0
  277. /siliconcompiler/{templates → data/templates}/tcl/manifest.tcl.j2 +0 -0
  278. /siliconcompiler/{units.py → utils/units.py} +0 -0
  279. {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/licenses/LICENSE +0 -0
  280. {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/top_level.txt +0 -0
@@ -31,11 +31,11 @@ def setup(chip):
31
31
  chip.set('tool', tool, 'format', 'tcl')
32
32
 
33
33
  # exit automatically in batch mode and not breakpoint
34
- option = ''
34
+ option = ['-no_init']
35
35
  if exit and not chip.get('option', 'breakpoint', step=step, index=index):
36
- option += " -exit"
36
+ option.append("-exit")
37
37
 
38
- option += " -metrics reports/metrics.json"
38
+ option.extend(["-metrics", "reports/metrics.json"])
39
39
  chip.set('tool', tool, 'task', task, 'option', option, step=step, index=index)
40
40
 
41
41
  # Input/Output requirements for default asicflow steps
@@ -8,7 +8,7 @@ utl::push_metrics_stage "sc__poststep__{}"
8
8
  if { [sc_cfg_tool_task_exists postscript] } {
9
9
  foreach sc_post_script [sc_cfg_tool_task_get postscript] {
10
10
  puts "Sourcing post script: ${sc_post_script}"
11
- source -echo $sc_post_script
11
+ source $sc_post_script
12
12
  }
13
13
  }
14
14
  utl::pop_metrics_stage
@@ -14,7 +14,7 @@ set sc_refdir [sc_cfg_tool_task_get refdir]
14
14
  # Setup debugging
15
15
  ###############################
16
16
 
17
- source -echo "$sc_refdir/common/debugging.tcl"
17
+ source "$sc_refdir/common/debugging.tcl"
18
18
 
19
19
  ###############################
20
20
  # Setup helper functions
@@ -47,11 +47,11 @@ set_thread_count [sc_cfg_tool_task_get threads]
47
47
  # Read Files
48
48
  ###############################
49
49
 
50
- source -echo "$sc_refdir/common/read_liberty.tcl"
50
+ source "$sc_refdir/common/read_liberty.tcl"
51
51
 
52
- source -echo "$sc_refdir/common/read_input_files.tcl"
52
+ source "$sc_refdir/common/read_input_files.tcl"
53
53
 
54
- source -echo "$sc_refdir/common/read_timing_constraints.tcl"
54
+ source "$sc_refdir/common/read_timing_constraints.tcl"
55
55
 
56
56
  ###############################
57
57
  # Common Setup
@@ -81,7 +81,7 @@ utl::push_metrics_stage "sc__prestep__{}"
81
81
  if { [sc_cfg_tool_task_exists prescript] } {
82
82
  foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
83
83
  puts "Sourcing pre script: ${sc_pre_script}"
84
- source -echo $sc_pre_script
84
+ source $sc_pre_script
85
85
  }
86
86
  }
87
87
  utl::pop_metrics_stage
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Report and Repair Antennas
@@ -48,4 +48,4 @@ estimate_parasitics -global_routing
48
48
  # Task Postamble
49
49
  ###############################
50
50
 
51
- source -echo "$sc_refdir/apr/postamble.tcl"
51
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Clock tree synthesis
@@ -66,4 +66,4 @@ estimate_parasitics -placement
66
66
  # Task Postamble
67
67
  ###############################
68
68
 
69
- source -echo "$sc_refdir/apr/postamble.tcl"
69
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # DETAILED PLACEMENT
@@ -38,4 +38,4 @@ estimate_parasitics -placement
38
38
  # Task Postamble
39
39
  ###############################
40
40
 
41
- source -echo "$sc_refdir/apr/postamble.tcl"
41
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Detailed Routing
@@ -78,4 +78,4 @@ estimate_parasitics -global_routing
78
78
  # Task Postamble
79
79
  ###############################
80
80
 
81
- source -echo "$sc_refdir/apr/postamble.tcl"
81
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Error checking
@@ -52,4 +52,4 @@ if {
52
52
  # Task Postamble
53
53
  ###############################
54
54
 
55
- source -echo "$sc_refdir/apr/postamble.tcl"
55
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Add fillers
@@ -24,4 +24,4 @@ estimate_parasitics -placement
24
24
  # Task Postamble
25
25
  ###############################
26
26
 
27
- source -echo "$sc_refdir/apr/postamble.tcl"
27
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Do fill
@@ -33,4 +33,4 @@ estimate_parasitics -global_routing
33
33
  # Task Postamble
34
34
  ###############################
35
35
 
36
- source -echo "$sc_refdir/apr/postamble.tcl"
36
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  set dont_use_args []
15
15
 
@@ -87,4 +87,4 @@ sc_set_dont_use
87
87
 
88
88
  estimate_parasitics -placement
89
89
 
90
- source -echo "$sc_refdir/apr/postamble.tcl"
90
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Pin access
@@ -70,4 +70,4 @@ estimate_parasitics -global_routing
70
70
  # Task Postamble
71
71
  ###############################
72
72
 
73
- source -echo "$sc_refdir/apr/postamble.tcl"
73
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # FLOORPLANNING
@@ -19,13 +19,7 @@ source -echo "$sc_refdir/apr/preamble.tcl"
19
19
  # Setup Global Connections
20
20
  ###############################
21
21
 
22
- if { [sc_cfg_tool_task_exists {file} global_connect] } {
23
- foreach global_connect [sc_cfg_tool_task_get {file} global_connect] {
24
- puts "Sourcing global connect configuration: ${global_connect}"
25
- source $global_connect
26
- }
27
- }
28
- tee -file reports/global_connections.rpt {report_global_connect}
22
+ sc_global_connections
29
23
 
30
24
  ###############################
31
25
  # Initialize floorplan
@@ -331,4 +325,4 @@ if { [lindex [sc_cfg_tool_task_get var remove_dead_logic] 0] == "true" } {
331
325
  # Task Postamble
332
326
  ###############################
333
327
 
334
- source -echo "$sc_refdir/apr/postamble.tcl"
328
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,14 +9,14 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Macro placement constraints
16
16
  ###############################
17
17
  foreach script [sc_cfg_tool_task_get file rtlmp_constraints] {
18
18
  puts "Sourcing macro placement constraints: $script"
19
- source -echo $script
19
+ source $script
20
20
  }
21
21
 
22
22
  # Need to check if we have any macros before performing macro placement,
@@ -117,4 +117,4 @@ sc_print_macro_information
117
117
  # Task Postamble
118
118
  ###############################
119
119
 
120
- source -echo "$sc_refdir/apr/postamble.tcl"
120
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Report Metrics
@@ -19,4 +19,4 @@ source -echo "$sc_refdir/apr/preamble.tcl"
19
19
  # Task Postamble
20
20
  ###############################
21
21
 
22
- source -echo "$sc_refdir/apr/postamble.tcl"
22
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  if { [sc_design_has_placeable_ios] } {
15
15
  ###############################
@@ -38,4 +38,4 @@ if { [sc_design_has_placeable_ios] } {
38
38
  # Task Postamble
39
39
  ###############################
40
40
 
41
- source -echo "$sc_refdir/apr/postamble.tcl"
41
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Error checking
@@ -122,4 +122,4 @@ if { [llength $pdn_blockages] > 0 } {
122
122
  # Task Postamble
123
123
  ###############################
124
124
 
125
- source -echo "$sc_refdir/apr/postamble.tcl"
125
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Buffer ports
@@ -70,4 +70,4 @@ estimate_parasitics -placement
70
70
  # Task Postamble
71
71
  ###############################
72
72
 
73
- source -echo "$sc_refdir/apr/postamble.tcl"
73
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Timing Repair
@@ -159,4 +159,4 @@ estimate_parasitics $parasitics_stage
159
159
  # Task Postamble
160
160
  ###############################
161
161
 
162
- source -echo "$sc_refdir/apr/postamble.tcl"
162
+ source "$sc_refdir/apr/postamble.tcl"
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
9
9
  ###############################
10
10
 
11
11
  set sc_refdir [sc_cfg_tool_task_get refdir]
12
- source -echo "$sc_refdir/apr/preamble.tcl"
12
+ source "$sc_refdir/apr/preamble.tcl"
13
13
 
14
14
  ###############################
15
15
  # Generate LEF
@@ -122,4 +122,4 @@ foreach net [sc_psm_check_nets] {
122
122
  # Task Postamble
123
123
  ###############################
124
124
 
125
- source -echo "$sc_refdir/apr/postamble.tcl"
125
+ source "$sc_refdir/apr/postamble.tcl"
@@ -411,12 +411,18 @@ proc sc_psm_check_nets { } {
411
411
  # Save an image
412
412
  ###########################
413
413
 
414
- proc sc_save_image { title path { pixels 1000 } } {
414
+ proc sc_save_image { title path { gif false } { pixels 1000 } } {
415
415
  utl::info FLW 1 "Saving \"$title\" to $path"
416
416
 
417
417
  save_image -resolution [sc_image_resolution $pixels] \
418
418
  -area [sc_image_area] \
419
419
  $path
420
+
421
+ if { $gif } {
422
+ save_animated_gif -add \
423
+ -resolution [sc_image_resolution $pixels] \
424
+ -area [sc_image_area]
425
+ }
420
426
  }
421
427
 
422
428
  ###########################
@@ -480,6 +486,9 @@ proc sc_image_setup_default { } {
480
486
  gui::set_display_controls "Misc/Scale bar" visible true
481
487
  gui::set_display_controls "Misc/Highlight selected" visible true
482
488
  gui::set_display_controls "Misc/Detailed view" visible true
489
+ if { [sc_check_version 21574] } {
490
+ gui::set_display_controls "Misc/Labels" visible true
491
+ }
483
492
  }
484
493
 
485
494
  ###########################
@@ -597,6 +606,22 @@ proc sc_has_input_files { type key } {
597
606
  return [expr { [sc_get_input_files $type $key] != [] }]
598
607
  }
599
608
 
609
+ proc sc_path_group { args } {
610
+ sta::parse_key_args "sc_path_group" args \
611
+ keys {-name -to -from} \
612
+ flags {}
613
+
614
+ sta::check_argc_eq0 "sc_path_group" $args
615
+
616
+ if { [llength $keys(-from)] == 0 } {
617
+ return
618
+ }
619
+ if { [llength $keys(-to)] == 0 } {
620
+ return
621
+ }
622
+ group_path -name $keys(-name) -from $keys(-from) -to $keys(-to)
623
+ }
624
+
600
625
  proc sc_setup_sta { } {
601
626
  set sta_early_timing_derate [lindex [sc_cfg_tool_task_get var sta_early_timing_derate] 0]
602
627
  set sta_late_timing_derate [lindex [sc_cfg_tool_task_get var sta_late_timing_derate] 0]
@@ -609,6 +634,37 @@ proc sc_setup_sta { } {
609
634
  set_timing_derate -late $sta_late_timing_derate
610
635
  }
611
636
 
637
+ # Create path groups
638
+ if {
639
+ [lindex [sc_cfg_tool_task_get var sta_define_path_groups] 0] == "true" &&
640
+ [llength [sta::path_group_names]] == 0
641
+ } {
642
+ sc_path_group -name in2out -from [all_inputs -no_clocks] -to [all_outputs]
643
+
644
+ if {
645
+ [llength [all_clocks]] == 1 ||
646
+ [lindex [sc_cfg_tool_task_get var sta_unique_path_groups_per_clock] 0] == "false"
647
+ } {
648
+ sc_path_group -name in2reg -from [all_inputs -no_clocks] -to [all_registers]
649
+ sc_path_group -name reg2reg -from [all_registers] -to [all_registers]
650
+ sc_path_group -name reg2out -from [all_registers] -to [all_outputs]
651
+ } else {
652
+ foreach clock [all_clocks] {
653
+ set clk_name [get_property $clock name]
654
+ sc_path_group -name in2reg.${clk_name} \
655
+ -from [all_inputs -no_clocks] \
656
+ -to [all_registers -clock $clock]
657
+ sc_path_group -name reg2reg.${clk_name} \
658
+ -from [all_registers -clock $clock] \
659
+ -to [all_registers -clock $clock]
660
+ sc_path_group -name reg2out.${clk_name} \
661
+ -from [all_registers -clock $clock] \
662
+ -to [all_outputs]
663
+ }
664
+ }
665
+ }
666
+ utl::info FLW 1 "Timing path groups: [sta::path_group_names]"
667
+
612
668
  # Check timing setup
613
669
  if { [sc_cfg_tool_task_check_in_list check_setup var reports] } {
614
670
  tee -file "reports/check_timing_setup.rpt" {check_setup -verbose}
@@ -818,3 +874,21 @@ proc sc_report_args { args } {
818
874
 
819
875
  puts "$keys(-command) siliconcompiler arguments: $keys(-args)"
820
876
  }
877
+
878
+ proc sc_global_connections { args } {
879
+ sta::check_argc_eq0 "sc_global_connections" $args
880
+
881
+ if { [sc_cfg_tool_task_exists {file} global_connect] } {
882
+ set global_connect_files []
883
+ foreach global_connect [sc_cfg_tool_task_get {file} global_connect] {
884
+ if { [lsearch -exact $global_connect_files $global_connect] != -1 } {
885
+ continue
886
+ }
887
+ puts "Loading global connect configuration: ${global_connect}"
888
+ source $global_connect
889
+
890
+ lappend global_connect_files $global_connect
891
+ }
892
+ }
893
+ tee -file reports/global_connections.rpt {report_global_connect}
894
+ }
@@ -50,11 +50,5 @@ if { [sc_has_input_files odb "input layout odb"] } {
50
50
  }
51
51
 
52
52
  # Handle global connect setup
53
- if { [sc_cfg_tool_task_exists {file} global_connect] } {
54
- foreach global_connect [sc_cfg_tool_task_get {file} global_connect] {
55
- puts "Loading global connect configuration: ${global_connect}"
56
- source $global_connect
57
- }
58
- }
59
- tee -file reports/global_connections.rpt {report_global_connect}
53
+ sc_global_connections
60
54
  }
@@ -5,7 +5,7 @@ set sc_resolution \
5
5
 
6
6
  sc_image_setup_default
7
7
 
8
- sc_save_image "screenshot" "outputs/${sc_design}.png" $sc_resolution
8
+ sc_save_image "screenshot" "outputs/${sc_design}.png" false $sc_resolution
9
9
 
10
10
  gui::restore_display_controls
11
11
 
@@ -14,5 +14,5 @@ if {
14
14
  [lindex [sc_cfg_tool_task_get {var} include_report_images] 0]
15
15
  == "true"
16
16
  } {
17
- source -echo "${sc_refdir}/sc_write_images.tcl"
17
+ source "${sc_refdir}/sc_write_images.tcl"
18
18
  }
@@ -1,6 +1,6 @@
1
1
  # Adopted from https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/3f9740e6b3643835e918d78ae1d377d65af0f0fb/flow/scripts/save_images.tcl
2
2
 
3
- proc sc_image_heatmap { name ident image_name title { allow_bin_adjust 1 } } {
3
+ proc sc_image_heatmap { name ident image_name title { gif false } { allow_bin_adjust 1 } } {
4
4
  set ord_heatmap_bins_x [lindex [sc_cfg_tool_task_get var ord_heatmap_bins_x] 0]
5
5
  set ord_heatmap_bins_y [lindex [sc_cfg_tool_task_get var ord_heatmap_bins_y] 0]
6
6
 
@@ -49,7 +49,7 @@ proc sc_image_heatmap { name ident image_name title { allow_bin_adjust 1 } } {
49
49
 
50
50
  gui::set_display_controls "Heat Maps/${name}" visible true
51
51
 
52
- sc_save_image "$title heatmap" reports/images/heatmap/${image_name}
52
+ sc_save_image "$title heatmap" reports/images/heatmap/${image_name} $gif
53
53
 
54
54
  gui::set_display_controls "Heat Maps/${name}" visible false
55
55
  }
@@ -125,6 +125,13 @@ proc sc_image_irdrop { net corner } {
125
125
  return
126
126
  }
127
127
 
128
+ set gif false
129
+ if { [sc_check_version 21574] } {
130
+ set gif true
131
+ }
132
+ if { $gif } {
133
+ save_animated_gif -start "reports/images/heatmap/irdrop/${net}.${corner}.gif"
134
+ }
128
135
  foreach layer [[ord::get_db_tech] getLayers] {
129
136
  if { [$layer getRoutingLevel] == 0 } {
130
137
  continue
@@ -136,10 +143,26 @@ proc sc_image_irdrop { net corner } {
136
143
  gui::set_heatmap IRDrop Layer $layer_name
137
144
  gui::set_heatmap IRDrop rebuild
138
145
 
146
+ set label ""
147
+ if { [sc_check_version 21574] } {
148
+ set box [[ord::get_db_block] getDieArea]
149
+ set x [ord::dbu_to_microns [$box xMax]]
150
+ set y [ord::dbu_to_microns [$box yMin]]
151
+ set label [add_label -position "$x $y" -anchor "bottom right" -color white $layer_name]
152
+ }
153
+
139
154
  sc_image_heatmap "IR Drop" \
140
155
  "IRDrop" \
141
156
  "irdrop/${net}.${corner}.${layer_name}.png" \
142
- "IR drop for $net on $layer_name for $corner"
157
+ "IR drop for $net on $layer_name for $corner" \
158
+ $gif
159
+
160
+ if { $label != "" } {
161
+ gui::delete_label $label
162
+ }
163
+ }
164
+ if { $gif } {
165
+ save_animated_gif -end
143
166
  }
144
167
  }
145
168
 
@@ -154,6 +177,7 @@ proc sc_image_routing_congestion { } {
154
177
  "Routing" \
155
178
  "routing_congestion.png" \
156
179
  "routing congestion" \
180
+ 0 \
157
181
  0
158
182
  }
159
183
 
@@ -170,6 +194,7 @@ proc sc_image_estimated_routing_congestion { } {
170
194
  "RUDY" \
171
195
  "estimated_routing_congestion.png" \
172
196
  "estimated routing congestion" \
197
+ 0 \
173
198
  0
174
199
  } err
175
200
  unsuppress_message GRT 10
@@ -48,5 +48,5 @@ read_lef $sc_techlef
48
48
  set_thread_count [sc_cfg_tool_task_get threads]
49
49
 
50
50
  utl::set_metrics_stage "sc__step__{}"
51
- source -echo "${sc_refdir}/rcx/sc_${sc_task}.tcl"
51
+ source "${sc_refdir}/rcx/sc_${sc_task}.tcl"
52
52
  utl::pop_metrics_stage
@@ -39,7 +39,7 @@ set sc_macrolibs [sc_get_asic_libraries macro]
39
39
  # Setup debugging
40
40
  ###############################
41
41
 
42
- source -echo "$sc_refdir/common/debugging.tcl"
42
+ source "$sc_refdir/common/debugging.tcl"
43
43
 
44
44
  ###############################
45
45
  # Source helper functions
@@ -85,7 +85,7 @@ utl::push_metrics_stage "sc__prestep__{}"
85
85
  if { [sc_cfg_tool_task_exists prescript] } {
86
86
  foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
87
87
  puts "Sourcing pre script: ${sc_pre_script}"
88
- source -echo $sc_pre_script
88
+ source $sc_pre_script
89
89
  }
90
90
  }
91
91
  utl::pop_metrics_stage
@@ -160,7 +160,7 @@ utl::push_metrics_stage "sc__poststep__{}"
160
160
  if { [sc_cfg_tool_task_exists postscript] } {
161
161
  foreach sc_post_script [sc_cfg_tool_task_get postscript] {
162
162
  puts "Sourcing post script: ${sc_post_script}"
163
- source -echo $sc_post_script
163
+ source $sc_post_script
164
164
  }
165
165
  }
166
166
  utl::pop_metrics_stage
@@ -20,7 +20,7 @@ set sc_refdir [sc_cfg_tool_task_get refdir]
20
20
  # Setup debugging
21
21
  ###############################
22
22
 
23
- source -echo "$sc_refdir/common/debugging.tcl"
23
+ source "$sc_refdir/common/debugging.tcl"
24
24
 
25
25
  ###############################
26
26
  # Setup helper functions
@@ -58,11 +58,11 @@ set_thread_count [sc_cfg_tool_task_get threads]
58
58
  # Read Files
59
59
  ###############################
60
60
 
61
- source -echo "$sc_refdir/common/read_liberty.tcl"
61
+ source "$sc_refdir/common/read_liberty.tcl"
62
62
 
63
- source -echo "$sc_refdir/common/read_input_files.tcl"
63
+ source "$sc_refdir/common/read_input_files.tcl"
64
64
 
65
- source -echo "$sc_refdir/common/read_timing_constraints.tcl"
65
+ source "$sc_refdir/common/read_timing_constraints.tcl"
66
66
 
67
67
  ###############################
68
68
  # Common Setup
@@ -84,7 +84,7 @@ utl::push_metrics_stage "sc__prestep__{}"
84
84
  if { [sc_cfg_tool_task_exists prescript] } {
85
85
  foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
86
86
  puts "Sourcing pre script: ${sc_pre_script}"
87
- source -echo $sc_pre_script
87
+ source $sc_pre_script
88
88
  }
89
89
  }
90
90
  utl::pop_metrics_stage
@@ -102,7 +102,7 @@ if { [llength $openroad_dont_touch] > 0 } {
102
102
  }
103
103
 
104
104
  if { $sc_task == "screenshot" } {
105
- source -echo "$sc_refdir/common/screenshot.tcl"
105
+ source "$sc_refdir/common/screenshot.tcl"
106
106
  }
107
107
 
108
108
  if { [lindex [sc_cfg_tool_task_get {var} show_exit] 0] == "true" } {
@@ -150,6 +150,16 @@ foreach corner $sc_scenarios {
150
150
  }
151
151
  }
152
152
 
153
+ foreach corner $sc_scenarios {
154
+ set pex_corner [sc_cfg_get constraint timing $corner pexcorner]
155
+
156
+ set input_sdf_file "inputs/${sc_design}.${pex_corner}.sdf"
157
+ if { [file exists $input_sdf_file] } {
158
+ puts "Reading SDF ($corner): $input_sdf_file"
159
+ read_sdf -corner $corner $input_sdf_file
160
+ }
161
+ }
162
+
153
163
  ###############################
154
164
  # Report Metrics
155
165
  ###############################