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
@@ -103,6 +103,8 @@ def add_require_input(chip, *key, include_library_files=True):
103
103
  ",".join(key),
104
104
  step=step, index=index)
105
105
 
106
+ return bool(keys)
107
+
106
108
 
107
109
  def get_input_files(chip, *key, add_library_files=True):
108
110
  '''
@@ -463,16 +465,12 @@ def record_metric(chip, step, index, metric, value, source, source_unit=None):
463
465
  Records the metric cell area under 'floorplan0' and notes the source as
464
466
  'reports/metrics.json'
465
467
  '''
466
- from siliconcompiler import units
467
-
468
- metric_unit = None
469
- if chip.schema.has_field('metric', metric, 'unit'):
470
- metric_unit = chip.get('metric', metric, field='unit')
471
-
472
- if metric_unit:
473
- value = units.convert(value, from_unit=source_unit, to_unit=metric_unit)
474
-
475
- chip.set('metric', metric, value, step=step, index=index)
468
+ chip.get("metric", field="schema").record(
469
+ step, index,
470
+ metric,
471
+ value,
472
+ unit=source_unit
473
+ )
476
474
 
477
475
  if source:
478
476
  flow = chip.get('option', 'flow')
@@ -1,6 +1,6 @@
1
1
  # Default constraints file that sets up clocks based on definitions in schema.
2
2
 
3
- source sc_manifest.tcl > /dev/null
3
+ source sc_manifest.tcl
4
4
 
5
5
  ### Create clocks
6
6
  if { [sc_cfg_exists datasheet pin] } {
@@ -70,24 +70,24 @@ def runtime_options(chip):
70
70
  opts = get_frontend_options(chip, ['idir', 'ydir', 'define'])
71
71
 
72
72
  cmdlist.append('-verilog')
73
- cmdlist.append(f'-vdir {VLOG_DIR}')
74
- cmdlist.append(f'-bdir {BSC_DIR}')
75
- cmdlist.append('-info-dir reports')
73
+ cmdlist.extend(['-vdir', VLOG_DIR])
74
+ cmdlist.extend(['-bdir', BSC_DIR])
75
+ cmdlist.extend(['-info-dir', 'reports'])
76
76
  cmdlist.append('-u')
77
77
  cmdlist.append('-v')
78
78
 
79
79
  cmdlist.append('-show-module-use')
80
80
  cmdlist.append('-sched-dot')
81
81
 
82
- cmdlist.append(f'-g {chip.top(step, index)}')
82
+ cmdlist.extend(['-g', chip.top(step, index)])
83
83
 
84
84
  bsc_path = ':'.join(opts['ydir'] + ['%/Libraries'])
85
- cmdlist.append('-p ' + bsc_path)
85
+ cmdlist.extend(['-p', bsc_path])
86
86
 
87
87
  for value in opts['idir']:
88
- cmdlist.append('-I ' + value)
88
+ cmdlist.extend(['-I', value])
89
89
  for value in opts['define']:
90
- cmdlist.append('-D ' + value)
90
+ cmdlist.extend(['-D', value])
91
91
 
92
92
  sources = get_input_files(chip, 'input', 'hll', 'bsv', add_library_files=False)
93
93
  if len(sources) != 1:
@@ -3,7 +3,7 @@ from siliconcompiler import NodeStatus, SiliconCompilerError
3
3
  from siliconcompiler import utils
4
4
  import shutil
5
5
  from siliconcompiler.tools._common import get_tool_task
6
- from siliconcompiler.flowgraph import _get_pruned_node_inputs
6
+ from siliconcompiler.utils.flowgraph import _get_pruned_node_inputs
7
7
 
8
8
 
9
9
  ###########################################################################
@@ -3,7 +3,7 @@ import os
3
3
  from siliconcompiler import sc_open, SiliconCompilerError
4
4
  from siliconcompiler import utils
5
5
  from siliconcompiler.tools._common import input_provides, input_file_node_name, get_tool_task
6
- from siliconcompiler import flowgraph
6
+ from siliconcompiler.utils import flowgraph
7
7
  from siliconcompiler import scheduler
8
8
 
9
9
 
@@ -12,7 +12,7 @@ def make_docs(chip):
12
12
  _make_docs(chip)
13
13
  chip.set('option', 'flow', 'asicflow')
14
14
 
15
- for step, index in flowgraph._get_flowgraph_entry_nodes(chip, 'asicflow'):
15
+ for step, index in chip.schema.get("flowgraph", "asicflow", field="schema").get_entry_nodes():
16
16
  scheduler._setup_node(chip, step, index)
17
17
 
18
18
  chip.set('arg', 'step', 'import.combine')
@@ -1,5 +1,5 @@
1
1
  from siliconcompiler.tools.builtin import _common
2
- from siliconcompiler import flowgraph
2
+ from siliconcompiler.utils import flowgraph
3
3
  from siliconcompiler.tools.builtin.builtin import set_io_files
4
4
 
5
5
 
@@ -1,7 +1,8 @@
1
1
  from siliconcompiler.tools.builtin import _common
2
2
  import re
3
3
  from siliconcompiler.tools.builtin.builtin import set_io_files
4
- from siliconcompiler import flowgraph, SiliconCompilerError
4
+ from siliconcompiler import SiliconCompilerError
5
+ from siliconcompiler.utils import flowgraph
5
6
 
6
7
 
7
8
  def setup(chip):
@@ -1,6 +1,6 @@
1
1
  from siliconcompiler.tools.builtin import _common
2
2
  from siliconcompiler.tools.builtin.builtin import set_io_files
3
- from siliconcompiler import flowgraph
3
+ from siliconcompiler.utils import flowgraph
4
4
 
5
5
 
6
6
  def setup(chip):
@@ -1,11 +1,13 @@
1
1
  from siliconcompiler.tools.builtin import _common
2
- from siliconcompiler.schema import Schema
2
+ from siliconcompiler.schema.parametertype import NodeType
3
3
  from siliconcompiler.scheduler import _haltstep
4
4
  from siliconcompiler.tools.builtin.builtin import set_io_files
5
- from siliconcompiler import utils, flowgraph, SiliconCompilerError
5
+ from siliconcompiler import utils, SiliconCompilerError
6
6
 
7
7
  import re
8
8
 
9
+ from siliconcompiler.utils import flowgraph
10
+
9
11
 
10
12
  def setup(chip):
11
13
  '''
@@ -52,8 +54,8 @@ def _select_inputs(chip, step, index):
52
54
  raise SiliconCompilerError(
53
55
  f"Missing metric for {metric} in {inputs[0]}{inputs[1]}", chip=chip)
54
56
 
55
- metric_type = chip.get('metric', metric, field='type')
56
- goal = Schema._normalize_value(goal, metric_type, "", None)
57
+ metric_type = chip.get('metric', metric, field=None)
58
+ goal = NodeType.normalize(goal, metric_type.get(field='type'))
57
59
  if not utils.safecompare(chip, value, op, goal):
58
60
  chip.error(f"{step}{index} fails '{metric}' metric: {value}{op}{goal}")
59
61
 
@@ -120,15 +120,15 @@ def runtime_options(chip):
120
120
  step=step, index=index))
121
121
  runMain.append("--")
122
122
 
123
- runMain.append("--target-dir chisel-output")
123
+ runMain.extend(["--target-dir", "chisel-output"])
124
124
  else:
125
125
  # Use built in driver
126
126
  runMain.append("SCDriver")
127
- runMain.append(f"--module {chip.top(step=step, index=index)}")
127
+ runMain.extend(["--module", chip.top(step=step, index=index)])
128
128
 
129
- runMain.append(f"--output-file ../outputs/{design}.v")
129
+ runMain.extend(["--output-file", f"../outputs/{design}.v"])
130
130
 
131
- return [f'"{" ".join(runMain)}"']
131
+ return [" ".join(runMain)]
132
132
 
133
133
 
134
134
  def post_process(chip):
@@ -41,9 +41,9 @@ def runtime_options(chip):
41
41
  blif = f"inputs/{design}.blif"
42
42
  options.append(blif)
43
43
 
44
- options.append(f'--net_file inputs/{design}.net')
45
- options.append(f'--place_file inputs/{design}.place')
46
- options.append(f'--route_file inputs/{design}.route')
44
+ options.extend(['--net_file', f'inputs/{design}.net'])
45
+ options.extend(['--place_file', f'inputs/{design}.place'])
46
+ options.extend(['--route_file', f'inputs/{design}.route'])
47
47
 
48
48
  return options
49
49
 
@@ -25,7 +25,7 @@ def setup(chip):
25
25
 
26
26
  chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
27
27
  step=step, index=index, clobber=clobber)
28
- chip.set('tool', tool, 'task', task, 'option', '',
28
+ chip.set('tool', tool, 'task', task, 'option', [],
29
29
  step=step, index=index, clobber=clobber)
30
30
  chip.set('tool', tool, 'task', task, 'stdout', 'destination', 'output',
31
31
  step=step, index=index)
@@ -68,19 +68,19 @@ def runtime_options(chip):
68
68
 
69
69
  # source files
70
70
  for value in opts['ydir']:
71
- cmdlist.append('-y ' + value)
71
+ cmdlist.extend(['-y', value])
72
72
  for value in opts['vlib']:
73
- cmdlist.append('-v ' + value)
73
+ cmdlist.extend(['-v', value])
74
74
  for value in opts['idir']:
75
75
  cmdlist.append('-I' + value)
76
76
  for value in opts['define']:
77
77
  cmdlist.append('-D' + value)
78
78
 
79
79
  # add siliconcompiler specific defines
80
- cmdlist.append(f"-DSILICONCOMPILER_TRACE_FILE=\\\"reports/{design}.vcd\\\"")
80
+ cmdlist.append(f"-DSILICONCOMPILER_TRACE_FILE=\"reports/{design}.vcd\"")
81
81
 
82
82
  for value in get_input_files(chip, 'input', 'cmdfile', 'f'):
83
- cmdlist.append('-f ' + value)
83
+ cmdlist.extend(['-f', value])
84
84
  for value in get_input_files(chip, 'input', 'rtl', 'netlist'):
85
85
  cmdlist.append(value)
86
86
  for value in get_input_files(chip, 'input', 'rtl', 'verilog'):
@@ -1,4 +1,5 @@
1
1
  from siliconcompiler.tools._common import get_tool_task
2
+ from siliconcompiler.tools.icepack.icepack import runtime_options as tool_runtime_options
2
3
 
3
4
 
4
5
  def setup(chip):
@@ -15,6 +16,10 @@ def setup(chip):
15
16
 
16
17
  chip.set('tool', tool, 'exe', tool)
17
18
 
18
- chip.set('tool', tool, 'task', task, 'option', "", step=step, index=index, clobber=clobber)
19
+ chip.set('tool', tool, 'task', task, 'option', [], step=step, index=index, clobber=clobber)
19
20
  chip.set('tool', tool, 'task', task, 'input', f'{design}.asc', step=step, index=index)
20
21
  chip.set('tool', tool, 'task', task, 'output', f'{design}.bit', step=step, index=index)
22
+
23
+
24
+ def runtime_options(chip):
25
+ return tool_runtime_options(chip)
@@ -1,6 +1,7 @@
1
1
  from siliconcompiler.tools._common import input_provides, input_file_node_name, get_tool_task
2
2
 
3
3
  from siliconcompiler.tools.klayout.klayout import setup as setup_tool
4
+ from siliconcompiler.tools.klayout.klayout import runtime_options as tool_runtime_options
4
5
 
5
6
 
6
7
  def make_docs(chip):
@@ -58,3 +59,7 @@ def setup(chip):
58
59
 
59
60
  chip.set('tool', tool, 'task', task, 'output', f'{design}.json',
60
61
  step=step, index=index)
62
+
63
+
64
+ def runtime_options(chip):
65
+ return tool_runtime_options(chip)
@@ -121,7 +121,6 @@ def main():
121
121
  # SC_ROOT provided by CLI
122
122
  sys.path.append(SC_KLAYOUT_ROOT) # noqa: F821
123
123
  sys.path.append(SC_TOOLS_ROOT) # noqa: F821
124
- print(sys.path)
125
124
 
126
125
  from klayout_utils import (
127
126
  technology,
@@ -1,5 +1,4 @@
1
1
  import pya
2
- import importlib.util as importlib_util
3
2
  import json
4
3
  import os
5
4
  import shutil
@@ -172,15 +171,9 @@ def get_write_options(filename, timestamps):
172
171
 
173
172
 
174
173
  def get_schema(manifest):
175
- scroot = os.path.join(os.path.dirname(__file__), '..', '..')
176
- module_name = 'schema'
177
- schema_base = os.path.join(scroot, module_name, '__init__.py')
178
- spec = importlib_util.spec_from_file_location(module_name, schema_base)
179
- module = importlib_util.module_from_spec(spec)
180
- sys.modules[module_name] = module
181
- spec.loader.exec_module(module)
182
- # Return schema
183
- return module.Schema(manifest=manifest)
174
+ sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..'))
175
+ from schema.safeschema import SafeSchema
176
+ return SafeSchema.from_manifest(filepath=manifest)
184
177
 
185
178
 
186
179
  def generate_metrics():
@@ -1,4 +1,5 @@
1
1
  from siliconcompiler.tools._common import get_tool_task
2
+ from siliconcompiler.tools.nextpnr.nextpnr import runtime_options as tool_runtime_options
2
3
 
3
4
 
4
5
  def setup(chip):
@@ -18,7 +19,11 @@ def setup(chip):
18
19
  chip.set('tool', tool, 'vswitch', '--version')
19
20
  chip.set('tool', tool, 'version', '>=0.2', clobber=clobber)
20
21
 
21
- chip.set('tool', tool, 'task', task, 'option', "", step=step, index=index, clobber=clobber)
22
+ chip.set('tool', tool, 'task', task, 'option', [], step=step, index=index, clobber=clobber)
22
23
  chip.set('tool', tool, 'task', task, 'input', f'{topmodule}.netlist.json',
23
24
  step=step, index=index)
24
25
  chip.set('tool', tool, 'task', task, 'output', f'{topmodule}.asc', step=step, index=index)
26
+
27
+
28
+ def runtime_options(chip):
29
+ return tool_runtime_options(chip)
@@ -33,14 +33,14 @@ def runtime_options(chip):
33
33
 
34
34
  options = []
35
35
 
36
- options.append('--json inputs/' + topmodule + '.netlist.json')
37
- options.append('--asc outputs/' + topmodule + '.asc')
36
+ options.extend(['--json', 'inputs/' + topmodule + '.netlist.json'])
37
+ options.extend(['--asc', 'outputs/' + topmodule + '.asc'])
38
38
 
39
39
  if partname == 'ice40up5k-sg48':
40
- options.append('--up5k --package sg48')
40
+ options.extend(['--up5k', '--package', 'sg48'])
41
41
 
42
42
  for constraint_file in chip.find_files('input', 'constraint', 'pcf', step=step, index=index):
43
- options.append('--pcf ' + constraint_file)
43
+ options.extend(['--pcf', constraint_file])
44
44
 
45
45
  return options
46
46
 
@@ -500,6 +500,10 @@ def define_ppl_params(chip):
500
500
  ['pdk', pdkname, 'var', 'openroad', 'pin_layer_vertical', stackup]):
501
501
  chip.add('tool', tool, 'task', task, 'require', ",".join(key),
502
502
  step=step, index=index)
503
+ if chip.get('tool', tool, 'task', task, 'file', 'ppl_constraints', step=step, index=index):
504
+ chip.add('tool', tool, 'task', task, 'require',
505
+ ",".join(['tool', tool, 'task', task, 'file', 'ppl_constraints']),
506
+ step=step, index=index)
503
507
 
504
508
 
505
509
  def define_pdn_params(chip):
@@ -797,6 +801,14 @@ def define_sta_params(chip):
797
801
  set_tool_task_var(chip, param_key='sta_top_n_paths',
798
802
  default_value='10',
799
803
  schelp='number of paths to report timing for')
804
+ set_tool_task_var(chip, param_key='sta_define_path_groups',
805
+ default_value=True,
806
+ skip=['pdk', 'lib'],
807
+ schelp='true/false, if true will generate path groups for timing reporting')
808
+ set_tool_task_var(chip, param_key='sta_unique_path_groups_per_clock',
809
+ default_value=False,
810
+ skip=['pdk', 'lib'],
811
+ schelp='true/false, if true will generate separate path groups per clock')
800
812
 
801
813
  chip.set('tool', tool, 'task', task, 'var', 'power_corner', get_power_corner(chip),
802
814
  step=step, index=index, clobber=False)
@@ -1040,6 +1052,8 @@ def set_pnr_inputs(chip):
1040
1052
 
1041
1053
  design = chip.top()
1042
1054
 
1055
+ # clear
1056
+ chip.set('tool', tool, 'task', task, 'input', [], step=step, index=index)
1043
1057
  if f'{design}.sdc' in input_provides(chip, step, index):
1044
1058
  chip.add('tool', tool, 'task', task, 'input', design + '.sdc',
1045
1059
  step=step, index=index)
@@ -1067,6 +1081,9 @@ def set_pnr_outputs(chip):
1067
1081
 
1068
1082
  design = chip.top()
1069
1083
 
1084
+ # clear
1085
+ chip.set('tool', tool, 'task', task, 'output', [], step=step, index=index)
1086
+
1070
1087
  chip.add('tool', tool, 'task', task, 'output', design + '.sdc', step=step, index=index)
1071
1088
  chip.add('tool', tool, 'task', task, 'output', design + '.vg', step=step, index=index)
1072
1089
  chip.add('tool', tool, 'task', task, 'output', design + '.def', step=step, index=index)
@@ -1,5 +1,3 @@
1
- from siliconcompiler import NodeStatus
2
-
3
1
  from siliconcompiler.tools._common import get_tool_task, has_pre_post_script
4
2
  from siliconcompiler.tools._common.asic import get_mainlib
5
3
 
@@ -55,24 +53,26 @@ def setup(chip):
55
53
  'clock_trees'
56
54
  ])
57
55
 
58
-
59
- def pre_process(chip):
60
- step = chip.get('arg', 'step')
61
- index = chip.get('arg', 'index')
62
- tool, task = get_tool_task(chip, step, index)
63
- if not has_pre_post_script(chip) and \
64
- chip.get('tool', tool, 'task', task, 'var', 'fin_add_fill',
65
- step=step, index=index) == ["true"]:
56
+ if chip.get('tool', tool, 'task', task, 'var', 'fin_add_fill',
57
+ step=step, index=index) == ["true"]:
66
58
  pdk = chip.get('option', 'pdk')
67
59
  stackup = chip.get('option', 'stackup')
68
60
  mainlib = get_mainlib(chip)
69
61
  libtype = chip.get('library', mainlib, 'asic', 'libarch', step=step, index=index)
62
+ if chip.get('pdk', pdk, 'aprtech', tool, stackup, libtype, 'fill'):
63
+ chip.add('tool', tool, 'task', task, 'require',
64
+ ",".join(['pdk', pdk, 'aprtech', tool, stackup, libtype, 'fill']),
65
+ step=step, index=index)
66
+ else:
67
+ if not has_pre_post_script(chip):
68
+ # nothing to do so we can skip
69
+ return "no fill script is available"
70
70
 
71
- if not chip.find_files('pdk', pdk, 'aprtech', tool, stackup, libtype, 'fill'):
72
- chip.set('record', 'status', NodeStatus.SKIPPED, step=step, index=index)
73
- chip.logger.warning(f'{step}{index} will be skipped since there is nothing to do.')
74
- return
71
+ chip.set('tool', tool, 'task', task, 'var', 'fin_add_fill', False,
72
+ step=step, index=index)
75
73
 
74
+
75
+ def pre_process(chip):
76
76
  define_ord_files(chip)
77
77
  build_pex_corners(chip)
78
78
 
@@ -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
@@ -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 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"
@@ -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
  # 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"
@@ -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
  # 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"
@@ -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
  # 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"
@@ -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
@@ -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"
@@ -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
  # 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"