siliconcompiler 0.32.2__py3-none-any.whl → 0.33.0__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 (277) hide show
  1. siliconcompiler/__init__.py +19 -2
  2. siliconcompiler/_metadata.py +3 -2
  3. siliconcompiler/apps/sc.py +2 -2
  4. siliconcompiler/apps/sc_install.py +3 -3
  5. siliconcompiler/apps/sc_issue.py +1 -1
  6. siliconcompiler/apps/sc_remote.py +4 -4
  7. siliconcompiler/apps/sc_show.py +2 -2
  8. siliconcompiler/apps/utils/replay.py +5 -3
  9. siliconcompiler/asic.py +120 -0
  10. siliconcompiler/checklist.py +150 -0
  11. siliconcompiler/core.py +319 -345
  12. siliconcompiler/{templates → data/templates}/replay/replay.sh.j2 +2 -2
  13. siliconcompiler/flowgraph.py +803 -515
  14. siliconcompiler/fpga.py +84 -0
  15. siliconcompiler/metric.py +420 -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 +449 -0
  20. siliconcompiler/remote/client.py +61 -19
  21. siliconcompiler/remote/schema.py +116 -112
  22. siliconcompiler/remote/server.py +3 -5
  23. siliconcompiler/report/__init__.py +3 -2
  24. siliconcompiler/report/dashboard/__init__.py +61 -170
  25. siliconcompiler/report/dashboard/cli/__init__.py +79 -0
  26. siliconcompiler/report/dashboard/cli/board.py +895 -0
  27. siliconcompiler/report/dashboard/web/__init__.py +196 -0
  28. siliconcompiler/report/dashboard/{components → web/components}/__init__.py +9 -8
  29. siliconcompiler/report/dashboard/{components → web/components}/flowgraph.py +3 -3
  30. siliconcompiler/report/dashboard/{components → web/components}/graph.py +7 -4
  31. siliconcompiler/report/dashboard/{layouts → web/layouts}/__init__.py +3 -3
  32. siliconcompiler/report/dashboard/{layouts → web/layouts}/_common.py +1 -1
  33. siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph.py +5 -5
  34. siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_node_tab.py +6 -6
  35. siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_sac_tabs.py +6 -6
  36. siliconcompiler/report/dashboard/{state.py → web/state.py} +1 -1
  37. siliconcompiler/report/dashboard/{utils → web/utils}/__init__.py +4 -3
  38. siliconcompiler/report/dashboard/{viewer.py → web/viewer.py} +4 -4
  39. siliconcompiler/report/html_report.py +2 -3
  40. siliconcompiler/report/report.py +13 -7
  41. siliconcompiler/report/summary_image.py +1 -1
  42. siliconcompiler/report/summary_table.py +3 -3
  43. siliconcompiler/report/utils.py +11 -10
  44. siliconcompiler/scheduler/__init__.py +153 -286
  45. siliconcompiler/scheduler/run_node.py +2 -1
  46. siliconcompiler/scheduler/send_messages.py +4 -4
  47. siliconcompiler/scheduler/slurm.py +2 -2
  48. siliconcompiler/schema/__init__.py +19 -2
  49. siliconcompiler/schema/baseschema.py +493 -0
  50. siliconcompiler/schema/cmdlineschema.py +250 -0
  51. siliconcompiler/{sphinx_ext → schema/docs}/__init__.py +3 -1
  52. siliconcompiler/{sphinx_ext → schema/docs}/dynamicgen.py +63 -81
  53. siliconcompiler/{sphinx_ext → schema/docs}/schemagen.py +73 -85
  54. siliconcompiler/{sphinx_ext → schema/docs}/utils.py +12 -13
  55. siliconcompiler/schema/editableschema.py +136 -0
  56. siliconcompiler/schema/journalingschema.py +238 -0
  57. siliconcompiler/schema/namedschema.py +41 -0
  58. siliconcompiler/schema/packageschema.py +101 -0
  59. siliconcompiler/schema/parameter.py +791 -0
  60. siliconcompiler/schema/parametertype.py +323 -0
  61. siliconcompiler/schema/parametervalue.py +736 -0
  62. siliconcompiler/schema/safeschema.py +37 -0
  63. siliconcompiler/schema/schema_cfg.py +109 -1789
  64. siliconcompiler/schema/utils.py +5 -68
  65. siliconcompiler/schema_obj.py +119 -0
  66. siliconcompiler/tool.py +1308 -0
  67. siliconcompiler/tools/_common/__init__.py +8 -10
  68. siliconcompiler/tools/_common/sdc/sc_constraints.sdc +1 -1
  69. siliconcompiler/tools/bluespec/convert.py +7 -7
  70. siliconcompiler/tools/builtin/_common.py +1 -1
  71. siliconcompiler/tools/builtin/concatenate.py +2 -2
  72. siliconcompiler/tools/builtin/minimum.py +1 -1
  73. siliconcompiler/tools/builtin/mux.py +2 -1
  74. siliconcompiler/tools/builtin/nop.py +1 -1
  75. siliconcompiler/tools/builtin/verify.py +6 -4
  76. siliconcompiler/tools/chisel/convert.py +4 -4
  77. siliconcompiler/tools/genfasm/bitstream.py +3 -3
  78. siliconcompiler/tools/ghdl/convert.py +1 -1
  79. siliconcompiler/tools/icarus/compile.py +4 -4
  80. siliconcompiler/tools/icepack/bitstream.py +6 -1
  81. siliconcompiler/tools/klayout/convert_drc_db.py +5 -0
  82. siliconcompiler/tools/klayout/klayout_export.py +0 -1
  83. siliconcompiler/tools/klayout/klayout_utils.py +3 -10
  84. siliconcompiler/tools/nextpnr/apr.py +6 -1
  85. siliconcompiler/tools/nextpnr/nextpnr.py +4 -4
  86. siliconcompiler/tools/openroad/_apr.py +17 -0
  87. siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
  88. siliconcompiler/tools/openroad/rdlroute.py +3 -3
  89. siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +1 -1
  90. siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +5 -5
  91. siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +3 -3
  92. siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +3 -3
  93. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +3 -3
  94. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +3 -3
  95. siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +3 -3
  96. siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +3 -3
  97. siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +4 -4
  98. siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +3 -3
  99. siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +3 -3
  100. siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +3 -3
  101. siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +4 -4
  102. siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +3 -3
  103. siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +3 -3
  104. siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +3 -3
  105. siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +3 -3
  106. siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +4 -4
  107. siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +3 -3
  108. siliconcompiler/tools/openroad/scripts/common/procs.tcl +58 -2
  109. siliconcompiler/tools/openroad/scripts/common/reports.tcl +2 -2
  110. siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +2 -2
  111. siliconcompiler/tools/openroad/scripts/common/write_images.tcl +28 -3
  112. siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +2 -2
  113. siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +4 -4
  114. siliconcompiler/tools/openroad/scripts/sc_show.tcl +7 -7
  115. siliconcompiler/tools/opensta/__init__.py +1 -1
  116. siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
  117. siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
  118. siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
  119. siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
  120. siliconcompiler/tools/opensta/timing.py +6 -2
  121. siliconcompiler/tools/slang/__init__.py +10 -10
  122. siliconcompiler/tools/surelog/parse.py +4 -4
  123. siliconcompiler/tools/sv2v/convert.py +20 -3
  124. siliconcompiler/tools/verilator/compile.py +2 -2
  125. siliconcompiler/tools/verilator/verilator.py +3 -3
  126. siliconcompiler/tools/vpr/place.py +1 -1
  127. siliconcompiler/tools/vpr/route.py +4 -4
  128. siliconcompiler/tools/vpr/screenshot.py +1 -1
  129. siliconcompiler/tools/vpr/show.py +5 -5
  130. siliconcompiler/tools/vpr/vpr.py +24 -24
  131. siliconcompiler/tools/xdm/convert.py +2 -2
  132. siliconcompiler/tools/xyce/simulate.py +1 -1
  133. siliconcompiler/tools/yosys/sc_synth_asic.tcl +104 -90
  134. siliconcompiler/tools/yosys/syn_asic.py +13 -4
  135. siliconcompiler/toolscripts/_tools.json +12 -7
  136. siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
  137. siliconcompiler/toolscripts/rhel8/install-icarus.sh +1 -0
  138. siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
  139. siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
  140. siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
  141. siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
  142. siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
  143. siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
  144. siliconcompiler/toolscripts/rhel8/install-verible.sh +2 -0
  145. siliconcompiler/toolscripts/rhel8/install-verilator.sh +1 -0
  146. siliconcompiler/toolscripts/rhel8/install-xyce.sh +2 -0
  147. siliconcompiler/toolscripts/rhel9/install-chisel.sh +2 -0
  148. siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
  149. siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -0
  150. siliconcompiler/toolscripts/rhel9/install-icarus.sh +1 -0
  151. siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
  152. siliconcompiler/toolscripts/rhel9/install-magic.sh +1 -2
  153. siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
  154. siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
  155. siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
  156. siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
  157. siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
  158. siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
  159. siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
  160. siliconcompiler/toolscripts/rhel9/install-verilator.sh +1 -0
  161. siliconcompiler/toolscripts/rhel9/install-vpr.sh +2 -0
  162. siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
  163. siliconcompiler/toolscripts/rhel9/install-xyce.sh +2 -0
  164. siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +2 -0
  165. siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +2 -0
  166. siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
  167. siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
  168. siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
  169. siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +2 -0
  170. siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +2 -0
  171. siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +2 -0
  172. siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
  173. siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
  174. siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
  175. siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
  176. siliconcompiler/toolscripts/ubuntu20/install-magic.sh +2 -0
  177. siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +2 -0
  178. siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
  179. siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +2 -0
  180. siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
  181. siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
  182. siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +2 -0
  183. siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
  184. siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +1 -1
  185. siliconcompiler/toolscripts/ubuntu20/install-verible.sh +2 -0
  186. siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +2 -0
  187. siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +2 -0
  188. siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
  189. siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +2 -0
  190. siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -0
  191. siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
  192. siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +2 -0
  193. siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +2 -0
  194. siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +2 -0
  195. siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
  196. siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
  197. siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
  198. siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
  199. siliconcompiler/toolscripts/ubuntu22/install-magic.sh +2 -0
  200. siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +2 -0
  201. siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +1 -2
  202. siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +2 -0
  203. siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
  204. siliconcompiler/toolscripts/ubuntu22/install-slang.sh +3 -1
  205. siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +2 -0
  206. siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
  207. siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +1 -1
  208. siliconcompiler/toolscripts/ubuntu22/install-verible.sh +2 -0
  209. siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +2 -0
  210. siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +2 -2
  211. siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +2 -0
  212. siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +2 -0
  213. siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +2 -0
  214. siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +2 -0
  215. siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +3 -1
  216. siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -0
  217. siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
  218. siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +2 -0
  219. siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +2 -0
  220. siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +2 -0
  221. siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
  222. siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
  223. siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
  224. siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
  225. siliconcompiler/toolscripts/ubuntu24/install-magic.sh +2 -0
  226. siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
  227. siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +1 -3
  228. siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +2 -0
  229. siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
  230. siliconcompiler/toolscripts/ubuntu24/install-slang.sh +3 -1
  231. siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +2 -0
  232. siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
  233. siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +1 -1
  234. siliconcompiler/toolscripts/ubuntu24/install-verible.sh +2 -0
  235. siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +2 -0
  236. siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +2 -2
  237. siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
  238. siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +2 -0
  239. siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +2 -0
  240. siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +2 -0
  241. siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +3 -1
  242. siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -0
  243. siliconcompiler/utils/__init__.py +8 -112
  244. siliconcompiler/utils/flowgraph.py +339 -0
  245. siliconcompiler/{issue.py → utils/issue.py} +7 -4
  246. siliconcompiler/utils/logging.py +86 -33
  247. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/METADATA +10 -8
  248. siliconcompiler-0.33.0.dist-info/RECORD +487 -0
  249. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/WHEEL +1 -1
  250. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/entry_points.txt +8 -8
  251. siliconcompiler/schema/schema_obj.py +0 -1936
  252. siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -27
  253. siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +0 -59
  254. siliconcompiler-0.32.2.dist-info/RECORD +0 -464
  255. /siliconcompiler/{templates → data/templates}/__init__.py +0 -0
  256. /siliconcompiler/{templates → data/templates}/email/__init__.py +0 -0
  257. /siliconcompiler/{templates → data/templates}/email/general.j2 +0 -0
  258. /siliconcompiler/{templates → data/templates}/email/summary.j2 +0 -0
  259. /siliconcompiler/{templates → data/templates}/issue/README.txt +0 -0
  260. /siliconcompiler/{templates → data/templates}/issue/__init__.py +0 -0
  261. /siliconcompiler/{templates → data/templates}/issue/run.sh +0 -0
  262. /siliconcompiler/{templates → data/templates}/replay/replay.py.j2 +0 -0
  263. /siliconcompiler/{templates → data/templates}/replay/requirements.txt +0 -0
  264. /siliconcompiler/{templates → data/templates}/replay/setup.sh +0 -0
  265. /siliconcompiler/{templates → data/templates}/report/__init__.py +0 -0
  266. /siliconcompiler/{templates → data/templates}/report/bootstrap.min.css +0 -0
  267. /siliconcompiler/{templates → data/templates}/report/bootstrap.min.js +0 -0
  268. /siliconcompiler/{templates → data/templates}/report/bootstrap_LICENSE.md +0 -0
  269. /siliconcompiler/{templates → data/templates}/report/sc_report.j2 +0 -0
  270. /siliconcompiler/{templates → data/templates}/slurm/__init__.py +0 -0
  271. /siliconcompiler/{templates → data/templates}/slurm/run.sh +0 -0
  272. /siliconcompiler/{templates → data/templates}/tcl/__init__.py +0 -0
  273. /siliconcompiler/{templates → data/templates}/tcl/manifest.tcl.j2 +0 -0
  274. /siliconcompiler/report/dashboard/{utils → web/utils}/file_utils.py +0 -0
  275. /siliconcompiler/{units.py → utils/units.py} +0 -0
  276. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/licenses/LICENSE +0 -0
  277. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/top_level.txt +0 -0
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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
@@ -18,7 +18,7 @@ source -echo "$sc_refdir/apr/preamble.tcl"
18
18
  set sc_libtype [sc_cfg_get library $sc_mainlib asic libarch]
19
19
 
20
20
  if {
21
- $openroad_fin_add_fill == "true" &&
21
+ [lindex [sc_cfg_tool_task_get var fin_add_fill] 0] == "true" &&
22
22
  [sc_cfg_exists pdk $sc_pdk aprtech openroad $sc_stackup $sc_libtype fill]
23
23
  } {
24
24
  set sc_fillrules \
@@ -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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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
@@ -331,4 +331,4 @@ if { [lindex [sc_cfg_tool_task_get var remove_dead_logic] 0] == "true" } {
331
331
  # Task Postamble
332
332
  ###############################
333
333
 
334
- source -echo "$sc_refdir/apr/postamble.tcl"
334
+ source "$sc_refdir/apr/postamble.tcl"
@@ -2,21 +2,21 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -2,21 +2,21 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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
16
16
  ###############################
17
17
 
18
18
  set parasitics_stage -placement
19
- if { false } {
19
+ if { [sc_check_version 20073] && [grt::have_routes] } {
20
20
  set parasitics_stage -global_routing
21
21
  }
22
22
 
@@ -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"
@@ -2,14 +2,14 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ###############################
8
8
  # Task Preamble
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"
@@ -116,7 +116,7 @@ proc sc_detailed_placement { args } {
116
116
  lappend dpl_args "-disallow_one_site_gaps"
117
117
  }
118
118
 
119
- set incremental_route false
119
+ set incremental_route [expr { [sc_check_version 20073] && [grt::have_routes] }]
120
120
 
121
121
  if { $incremental_route } {
122
122
  global_route -start_incremental
@@ -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}
@@ -28,7 +28,7 @@ if { [sc_cfg_tool_task_check_in_list setup var reports] } {
28
28
  "report_tns"
29
29
  report_tns_metric -setup
30
30
 
31
- if { [sc_check_version 19519] } {
31
+ if { [sc_check_version 19519] && [llength [all_clocks]] > 0 } {
32
32
  tee -quiet -file reports/timing/setup.histogram.rpt \
33
33
  "report_timing_histogram -num_bins 20 -setup"
34
34
  }
@@ -48,7 +48,7 @@ if { [sc_cfg_tool_task_check_in_list hold var reports] } {
48
48
 
49
49
  report_tns_metric -hold
50
50
 
51
- if { [sc_check_version 19519] } {
51
+ if { [sc_check_version 19519] && [llength [all_clocks]] > 0 } {
52
52
  tee -quiet -file reports/timing/hold.histogram.rpt \
53
53
  "report_timing_histogram -num_bins 20 -hold"
54
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
@@ -2,7 +2,7 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ##############################
8
8
  # Schema Helper functions
@@ -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
@@ -2,7 +2,7 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ##############################
8
8
  # Schema Adapter
@@ -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
@@ -2,7 +2,7 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ##############################
8
8
  # Schema Adapter
@@ -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" } {
@@ -32,7 +32,7 @@ def setup(chip):
32
32
 
33
33
  chip.set('tool', tool, 'exe', 'sta')
34
34
  chip.set('tool', tool, 'vswitch', '-version')
35
- chip.set('tool', tool, 'version', '>=v2.5.0', clobber=False)
35
+ chip.set('tool', tool, 'version', '>=v2.6.2', clobber=False)
36
36
  chip.set('tool', tool, 'format', 'tcl')
37
37
 
38
38
  targetlibs = get_libraries(chip, 'logic')
@@ -2,7 +2,7 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ##############################
8
8
  # Schema Adapter
@@ -44,3 +44,19 @@ proc sc_display_report { report } {
44
44
  close $fid
45
45
  puts $report_content
46
46
  }
47
+
48
+ proc sc_path_group { args } {
49
+ sta::parse_key_args "sc_path_group" args \
50
+ keys {-name -to -from} \
51
+ flags {}
52
+
53
+ sta::check_argc_eq0 "sc_path_group" $args
54
+
55
+ if { [llength $keys(-from)] == 0 } {
56
+ return
57
+ }
58
+ if { [llength $keys(-to)] == 0 } {
59
+ return
60
+ }
61
+ group_path -name $keys(-name) -from $keys(-from) -to $keys(-to)
62
+ }
@@ -2,7 +2,7 @@
2
2
  # Reading SC Schema
3
3
  ###############################
4
4
 
5
- source ./sc_manifest.tcl > /dev/null
5
+ source ./sc_manifest.tcl
6
6
 
7
7
  ##############################
8
8
  # Schema Adapter