siliconcompiler 0.28.1__tar.gz → 0.28.2__tar.gz

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 (379) hide show
  1. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/Changes +13 -0
  2. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/PKG-INFO +3 -3
  3. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/SECURITY.md +1 -1
  4. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/pyproject.toml +8 -2
  5. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/_metadata.py +1 -1
  6. siliconcompiler-0.28.2/siliconcompiler/apps/sc_install.py +192 -0
  7. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/core.py +15 -0
  8. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +6 -5
  9. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +1 -1
  10. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_procs.tcl +16 -16
  11. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_route.tcl +1 -1
  12. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +10 -10
  13. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +3 -3
  14. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/syn_asic.tcl +1 -1
  15. siliconcompiler-0.28.2/siliconcompiler/toolscripts/_tools.json +131 -0
  16. siliconcompiler-0.28.2/siliconcompiler/toolscripts/_tools.py +222 -0
  17. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +49 -0
  18. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +35 -0
  19. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +26 -0
  20. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +25 -0
  21. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +25 -0
  22. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +22 -0
  23. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +29 -0
  24. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +24 -0
  25. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +5 -0
  26. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +24 -0
  27. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +32 -0
  28. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +31 -0
  29. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +38 -0
  30. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +32 -0
  31. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +30 -0
  32. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +26 -0
  33. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +24 -0
  34. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +34 -0
  35. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +27 -0
  36. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +65 -0
  37. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +24 -0
  38. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +49 -0
  39. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +35 -0
  40. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +26 -0
  41. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +25 -0
  42. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +25 -0
  43. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +22 -0
  44. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +29 -0
  45. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +24 -0
  46. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +5 -0
  47. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +24 -0
  48. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +32 -0
  49. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +31 -0
  50. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +28 -0
  51. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +32 -0
  52. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +25 -0
  53. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +26 -0
  54. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +24 -0
  55. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +34 -0
  56. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +27 -0
  57. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +65 -0
  58. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +24 -0
  59. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +49 -0
  60. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +35 -0
  61. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +26 -0
  62. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +25 -0
  63. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +25 -0
  64. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +22 -0
  65. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +29 -0
  66. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +24 -0
  67. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +5 -0
  68. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +24 -0
  69. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +32 -0
  70. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +31 -0
  71. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +28 -0
  72. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +32 -0
  73. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +25 -0
  74. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +26 -0
  75. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +24 -0
  76. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +34 -0
  77. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +27 -0
  78. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +65 -0
  79. siliconcompiler-0.28.2/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +24 -0
  80. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler.egg-info/PKG-INFO +3 -3
  81. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler.egg-info/SOURCES.txt +66 -0
  82. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler.egg-info/entry_points.txt +1 -0
  83. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler.egg-info/requires.txt +2 -2
  84. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/.dockerignore +0 -0
  85. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/.flake8 +0 -0
  86. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/.gitattributes +0 -0
  87. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/.gitignore +0 -0
  88. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/.readthedocs.yaml +0 -0
  89. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/CONTRIBUTING.md +0 -0
  90. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/LICENSE +0 -0
  91. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/MANIFEST.in +0 -0
  92. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/README.md +0 -0
  93. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/scripts/.gitignore +0 -0
  94. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/scripts/profile_sc.py +0 -0
  95. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/scripts/report_library.py +0 -0
  96. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/setup.cfg +0 -0
  97. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/__init__.py +0 -0
  98. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/__main__.py +0 -0
  99. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/_common.py +0 -0
  100. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/__init__.py +0 -0
  101. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/_common.py +0 -0
  102. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/sc.py +0 -0
  103. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/sc_dashboard.py +0 -0
  104. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/sc_issue.py +0 -0
  105. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/sc_remote.py +0 -0
  106. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/sc_server.py +0 -0
  107. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/sc_show.py +0 -0
  108. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/apps/smake.py +0 -0
  109. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/checklists/__init__.py +0 -0
  110. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  111. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  112. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  113. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  114. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/data/__init__.py +0 -0
  115. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/data/heartbeat.v +0 -0
  116. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/data/logo.png +0 -0
  117. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flowgraph.py +0 -0
  118. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/__init__.py +0 -0
  119. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/_common.py +0 -0
  120. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/asicflow.py +0 -0
  121. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/asictopflow.py +0 -0
  122. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/dvflow.py +0 -0
  123. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/fpgaflow.py +0 -0
  124. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  125. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/lintflow.py +0 -0
  126. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/screenshotflow.py +0 -0
  127. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/showflow.py +0 -0
  128. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/signoffflow.py +0 -0
  129. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/flows/synflow.py +0 -0
  130. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/fpgas/__init__.py +0 -0
  131. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  132. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/fpgas/vpr_example.py +0 -0
  133. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/issue.py +0 -0
  134. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/__init__.py +0 -0
  135. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/asap7sc7p5t.py +0 -0
  136. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/gf180mcu.py +0 -0
  137. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/nangate45.py +0 -0
  138. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/sg13g2_stdcell.py +0 -0
  139. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/sky130hd.py +0 -0
  140. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/libs/sky130io.py +0 -0
  141. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/package.py +0 -0
  142. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/pdks/__init__.py +0 -0
  143. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/pdks/asap7.py +0 -0
  144. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/pdks/freepdk45.py +0 -0
  145. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/pdks/gf180.py +0 -0
  146. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/pdks/ihp130.py +0 -0
  147. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/pdks/skywater130.py +0 -0
  148. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/__init__.py +0 -0
  149. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/client.py +0 -0
  150. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/schema.py +0 -0
  151. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server.py +0 -0
  152. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  153. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  154. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  155. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  156. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  157. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  158. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  159. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  160. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  161. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  162. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  163. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  164. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  165. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  166. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  167. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/__init__.py +0 -0
  168. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/html_report.py +0 -0
  169. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/report.py +0 -0
  170. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/streamlit_report.py +0 -0
  171. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/streamlit_viewer.py +0 -0
  172. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/summary_image.py +0 -0
  173. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/summary_table.py +0 -0
  174. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/report/utils.py +0 -0
  175. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/__init__.py +0 -0
  176. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/docker_runner.py +0 -0
  177. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/run_node.py +0 -0
  178. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/send_messages.py +0 -0
  179. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/slurm.py +0 -0
  180. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  181. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  182. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/schema/__init__.py +0 -0
  183. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/schema/schema_cfg.py +0 -0
  184. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/schema/schema_obj.py +0 -0
  185. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/schema/utils.py +0 -0
  186. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/sphinx_ext/__init__.py +0 -0
  187. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
  188. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
  189. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/sphinx_ext/utils.py +0 -0
  190. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/__init__.py +0 -0
  191. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/asap7_demo.py +0 -0
  192. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/asic_demo.py +0 -0
  193. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
  194. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  195. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/gf180_demo.py +0 -0
  196. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/ihp130_demo.py +0 -0
  197. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/targets/skywater130_demo.py +0 -0
  198. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/__init__.py +0 -0
  199. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/email/__init__.py +0 -0
  200. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/email/general.j2 +0 -0
  201. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/email/summary.j2 +0 -0
  202. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/issue/README.txt +0 -0
  203. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/issue/__init__.py +0 -0
  204. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/issue/run.sh +0 -0
  205. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/report/__init__.py +0 -0
  206. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  207. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  208. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  209. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  210. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/slurm/__init__.py +0 -0
  211. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/slurm/run.sh +0 -0
  212. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/tcl/__init__.py +0 -0
  213. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
  214. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/__init__.py +0 -0
  215. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/_common/__init__.py +0 -0
  216. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/_common/asic.py +0 -0
  217. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  218. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  219. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  220. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/bambu/__init__.py +0 -0
  221. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/bambu/bambu.py +0 -0
  222. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/bambu/convert.py +0 -0
  223. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  224. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
  225. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/bluespec/convert.py +0 -0
  226. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/__init__.py +0 -0
  227. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/_common.py +0 -0
  228. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/builtin.py +0 -0
  229. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/concatenate.py +0 -0
  230. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/join.py +0 -0
  231. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/maximum.py +0 -0
  232. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/minimum.py +0 -0
  233. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/mux.py +0 -0
  234. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/nop.py +0 -0
  235. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/builtin/verify.py +0 -0
  236. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  237. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/chisel/__init__.py +0 -0
  238. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/chisel/build.sbt +0 -0
  239. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/chisel/chisel.py +0 -0
  240. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/chisel/convert.py +0 -0
  241. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/execute/__init__.py +0 -0
  242. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/execute/exec_input.py +0 -0
  243. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/execute/execute.py +0 -0
  244. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  245. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  246. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  247. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  248. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/ghdl/convert.py +0 -0
  249. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
  250. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/icarus/__init__.py +0 -0
  251. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/icarus/compile.py +0 -0
  252. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/icarus/icarus.py +0 -0
  253. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/icepack/__init__.py +0 -0
  254. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  255. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/icepack/icepack.py +0 -0
  256. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/__init__.py +0 -0
  257. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/export.py +0 -0
  258. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/klayout.py +0 -0
  259. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
  260. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
  261. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
  262. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
  263. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/operations.py +0 -0
  264. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  265. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/klayout/show.py +0 -0
  266. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/__init__.py +0 -0
  267. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/drc.py +0 -0
  268. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/extspice.py +0 -0
  269. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/magic.py +0 -0
  270. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  271. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  272. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  273. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/montage/__init__.py +0 -0
  274. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/montage/montage.py +0 -0
  275. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/montage/tile.py +0 -0
  276. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/netgen/__init__.py +0 -0
  277. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  278. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/netgen/lvs.py +0 -0
  279. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/netgen/netgen.py +0 -0
  280. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  281. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  282. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  283. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  284. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/__init__.py +0 -0
  285. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/cts.py +0 -0
  286. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/dfm.py +0 -0
  287. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/export.py +0 -0
  288. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/floorplan.py +0 -0
  289. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/openroad.py +0 -0
  290. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/physyn.py +0 -0
  291. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/place.py +0 -0
  292. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  293. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  294. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/route.py +0 -0
  295. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  296. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/__init__.py +0 -0
  297. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_apr.tcl +0 -0
  298. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -0
  299. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +0 -0
  300. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_export.tcl +0 -0
  301. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +0 -0
  302. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -0
  303. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_place.tcl +0 -0
  304. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  305. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_rcx_bench.tcl +0 -0
  306. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_rcx_extract.tcl +0 -0
  307. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -0
  308. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/scripts/sc_write.tcl +0 -0
  309. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/show.py +0 -0
  310. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  311. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  312. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/__init__.py +0 -0
  313. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  314. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  315. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
  316. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
  317. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/opensta/timing.py +0 -0
  318. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/slang/__init__.py +0 -0
  319. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/slang/lint.py +0 -0
  320. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/surelog/__init__.py +0 -0
  321. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/surelog/parse.py +0 -0
  322. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  323. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  324. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  325. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/sv2v/convert.py +0 -0
  326. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
  327. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/template/__init__.py +0 -0
  328. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/template/template.py +0 -0
  329. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/verilator/__init__.py +0 -0
  330. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/verilator/compile.py +0 -0
  331. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/verilator/lint.py +0 -0
  332. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/verilator/parse.py +0 -0
  333. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/verilator/verilator.py +0 -0
  334. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/__init__.py +0 -0
  335. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  336. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/place.py +0 -0
  337. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/route.py +0 -0
  338. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  339. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  340. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  341. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  342. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  343. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  344. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  345. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vivado/vivado.py +0 -0
  346. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/__init__.py +0 -0
  347. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  348. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  349. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/place.py +0 -0
  350. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/route.py +0 -0
  351. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  352. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/show.py +0 -0
  353. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/vpr/vpr.py +0 -0
  354. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/xdm/__init__.py +0 -0
  355. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/xdm/convert.py +0 -0
  356. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/xyce/__init__.py +0 -0
  357. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/xyce/simulate.py +0 -0
  358. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/__init__.py +0 -0
  359. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/lec.py +0 -0
  360. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  361. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
  362. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/sc_syn.tcl +0 -0
  363. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
  364. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/syn_asic_fpga_shared.tcl +0 -0
  365. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
  366. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/syn_fpga.tcl +0 -0
  367. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  368. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  369. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  370. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  371. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  372. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/tools/yosys/yosys.py +0 -0
  373. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/units.py +0 -0
  374. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/use.py +0 -0
  375. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/utils/__init__.py +0 -0
  376. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/utils/asic.py +0 -0
  377. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler/utils/showtools.py +0 -0
  378. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  379. {siliconcompiler-0.28.1 → siliconcompiler-0.28.2}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,19 @@ The changes in each SiliconCompiler release version are described below. Commit
8
8
  version shown in (). Where applicable, the contributors that suggested a given
9
9
  feature are shown in [].
10
10
 
11
+ SiliconCompiler 0.28.2 (2024-10-02)
12
+ =========================================
13
+
14
+ **Major:**
15
+
16
+ * Added `sc-install` utility application to help install tools on supported platforms.
17
+
18
+
19
+ **Minor:**
20
+
21
+ * Updated `.input/.output` to support receiving lists of files.
22
+
23
+
11
24
  SiliconCompiler 0.28.1 (2024-09-20)
12
25
  =========================================
13
26
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siliconcompiler
3
- Version: 0.28.1
3
+ Version: 0.28.2
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
6
6
  License: Apache License 2.0
@@ -12,7 +12,7 @@ Project-URL: Discussion, https://github.com/siliconcompiler/siliconcompiler/disc
12
12
  Requires-Python: >=3.8
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
- Requires-Dist: aiohttp==3.10.5
15
+ Requires-Dist: aiohttp==3.10.8
16
16
  Requires-Dist: requests==2.32.3
17
17
  Requires-Dist: PyYAML==6.0.2
18
18
  Requires-Dist: pandas>=1.1.5
@@ -45,7 +45,7 @@ Requires-Dist: pytest-cov==5.0.0; extra == "test"
45
45
  Requires-Dist: responses==0.25.3; extra == "test"
46
46
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
47
47
  Requires-Dist: flake8==7.1.1; extra == "test"
48
- Requires-Dist: tclint==0.4.0; extra == "test"
48
+ Requires-Dist: tclint==0.4.1; extra == "test"
49
49
  Requires-Dist: codespell==2.3.0; extra == "test"
50
50
  Provides-Extra: docs
51
51
  Requires-Dist: Sphinx==8.0.2; extra == "docs"
@@ -1,6 +1,6 @@
1
1
  # Security Policy
2
2
 
3
- If you believe you have identified a security issue with a SilionCompiler project, do not open a public issue. To responsibly report a security issue, please email security@zeroasic.com. A security team member will contact you acknowledging the report and how to continue.
3
+ If you believe you have identified a security issue with a SiliconCompiler project, do not open a public issue. To responsibly report a security issue, please email security@zeroasic.com. A security team member will contact you acknowledging the report and how to continue.
4
4
 
5
5
  Be sure to include as much detail as necessary in your report. If you are able, you may also include a fix for the issue generated with git format-patch.
6
6
 
@@ -17,7 +17,7 @@ description = "A compiler framework that automates translation from source code
17
17
  readme = {file = "README.md", content-type = "text/markdown"}
18
18
  requires-python = ">= 3.8"
19
19
  dependencies = [
20
- "aiohttp == 3.10.5",
20
+ "aiohttp == 3.10.8",
21
21
  "requests == 2.32.3",
22
22
  "PyYAML == 6.0.2",
23
23
  "pandas >= 1.1.5",
@@ -59,6 +59,7 @@ sc-issue = "siliconcompiler.apps.sc_issue:main"
59
59
  sc-remote = "siliconcompiler.apps.sc_remote:main"
60
60
  sc-server = "siliconcompiler.apps.sc_server:main"
61
61
  sc-show = "siliconcompiler.apps.sc_show:main"
62
+ sc-install = "siliconcompiler.apps.sc_install:main"
62
63
  siliconcompiler = "siliconcompiler.apps.sc:main"
63
64
  smake = "siliconcompiler.apps.smake:main"
64
65
 
@@ -75,7 +76,7 @@ test = [
75
76
  "responses == 0.25.3",
76
77
  "PyVirtualDisplay == 3.0",
77
78
  "flake8 == 7.1.1",
78
- "tclint == 0.4.0",
79
+ "tclint == 0.4.1",
79
80
  "codespell == 2.3.0"
80
81
  ]
81
82
  docs = [
@@ -141,3 +142,8 @@ skip = './build/*,*.json,*.xml,./siliconcompiler/templates/report/bootstrap.min.
141
142
  count = true
142
143
  quiet-level = 3
143
144
  ignore-words-list = 'synopsys,inout,subtile,FRAM,dffer,dffers'
145
+
146
+ [tool.check-wheel-contents]
147
+ ignore = [
148
+ "W002"
149
+ ]
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.28.1'
2
+ version = '0.28.2'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -0,0 +1,192 @@
1
+ # Copyright 2024 Silicon Compiler Authors. All Rights Reserved.
2
+
3
+ import argparse
4
+ import glob
5
+ import subprocess
6
+ import sys
7
+ import shutil
8
+ import re
9
+ import os.path
10
+ from collections.abc import Container
11
+ from pathlib import Path
12
+ import siliconcompiler
13
+ from siliconcompiler.scheduler import _get_machine_info
14
+
15
+
16
+ class ChoiceOptional(Container):
17
+ def __init__(self, choices):
18
+ super().__init__()
19
+
20
+ self.__choices = set(choices)
21
+
22
+ def __contains__(self, item):
23
+ if not item:
24
+ # allow empty value
25
+ return True
26
+ return item in self.__choices
27
+
28
+ def __iter__(self):
29
+ return self.__choices.__iter__()
30
+
31
+ def get_items(self, choices):
32
+ items = set(choices)
33
+ return sorted(list(items))
34
+
35
+
36
+ def install_tool(tool, script, build_dir, prefix):
37
+ # Ensure build dir is available
38
+ build_dir = Path(build_dir) / tool
39
+ shutil.rmtree(str(build_dir), ignore_errors=True)
40
+ build_dir.mkdir(parents=True, exist_ok=True)
41
+
42
+ # setup environment
43
+ env = os.environ.copy()
44
+ env["PREFIX"] = prefix
45
+
46
+ # run
47
+ ret = subprocess.call(script, env=env, cwd=build_dir)
48
+ if ret != 0:
49
+ print(f"Error occurred while building/installing {tool}")
50
+ return False
51
+ return True
52
+
53
+
54
+ def show_tool(tool, script):
55
+ def print_header(head):
56
+ border_len = max(80, len(script) + 2)
57
+ border = border_len*"#"
58
+ print(border)
59
+ print(f"# {tool} script / {head}")
60
+ if head == "start":
61
+ print(f"# {script}")
62
+ print(border)
63
+
64
+ print_header("start")
65
+
66
+ with open(script) as f:
67
+ for line in f:
68
+ print(line.rstrip())
69
+
70
+ print_header("end")
71
+
72
+
73
+ def _get_tools_list():
74
+ tools_root = Path(siliconcompiler.__file__).parent / "toolscripts"
75
+
76
+ machine_info = _get_machine_info()
77
+ script_dir = None
78
+ if machine_info['system'].lower() == 'linux':
79
+ if machine_info['distro'].lower() == 'ubuntu':
80
+ version, _ = machine_info['osversion'].split('.')
81
+ script_dir = f"{machine_info['distro'].lower()}{version}"
82
+ if script_dir:
83
+ script_dir = tools_root / script_dir
84
+ if not script_dir.exists():
85
+ script_dir = None
86
+
87
+ tools = {}
88
+ if script_dir:
89
+ for script in glob.glob(str(script_dir / "install-*.sh")):
90
+ tool = re.match(r"install-(.*)\.sh", os.path.basename(script).lower())
91
+ tools[tool.group(1)] = script
92
+
93
+ return tools
94
+
95
+
96
+ def _recommended_tool_groups():
97
+ return {
98
+ "asic": {"surelog", "sv2v", "yosys", "openroad", "klayout"},
99
+ "fpga": {"surelog", "sv2v", "yosys", "vpr"},
100
+ "digital-simulation": {"verilator", "icarus"},
101
+ "analog-simulation": {"xyce"}
102
+ }
103
+
104
+
105
+ def main():
106
+ progname = "sc-install"
107
+ description = """
108
+ -----------------------------------------------------------
109
+ SC app install supported tools.
110
+
111
+ To install a single tool:
112
+ sc-install openroad
113
+
114
+ To install multiple tools:
115
+ sc-install openroad yosys klayout
116
+
117
+ To install a group of tools:
118
+ sc-install -group asic
119
+
120
+ To install tools in a different location:
121
+ sc-install -prefix /usr/local yosys
122
+
123
+ To build tools in a different location:
124
+ sc-install -build_dir /tmp yosys
125
+
126
+ To show the install script:
127
+ sc-install -show openroad
128
+ -----------------------------------------------------------
129
+ """
130
+ parser = argparse.ArgumentParser(
131
+ prog=progname,
132
+ description=description,
133
+ formatter_class=argparse.RawDescriptionHelpFormatter)
134
+
135
+ tools = _get_tools_list()
136
+
137
+ tool_choices = ChoiceOptional(tools.keys())
138
+ parser.add_argument(
139
+ "tool",
140
+ nargs="*",
141
+ choices=tool_choices,
142
+ help="tool to install")
143
+
144
+ parser.add_argument(
145
+ "-group",
146
+ nargs="+",
147
+ choices=_recommended_tool_groups().keys(),
148
+ help="tool group to install")
149
+
150
+ parser.add_argument(
151
+ "-prefix",
152
+ default=Path.home() / ".local",
153
+ help="Prefix to use when installing tool",
154
+ metavar="<path>")
155
+
156
+ parser.add_argument(
157
+ "-build_dir",
158
+ default=Path.home() / ".sc" / "tool_build",
159
+ help="Directory to build the tool in",
160
+ metavar="<path>")
161
+
162
+ parser.add_argument(
163
+ "-show",
164
+ action="store_true",
165
+ help="Show the install script and exit")
166
+
167
+ args = parser.parse_args()
168
+
169
+ if not args.tool:
170
+ args.tool = []
171
+
172
+ args.tool = list(args.tool)
173
+ if args.group:
174
+ for group in args.group:
175
+ args.tool.extend(_recommended_tool_groups()[group])
176
+
177
+ tools_handled = set()
178
+ for tool in args.tool:
179
+ if tool in tools_handled:
180
+ continue
181
+ tools_handled.add(tool)
182
+ if args.show:
183
+ show_tool(tool, tools[tool])
184
+ else:
185
+ if not install_tool(tool, tools[tool], args.build_dir, args.prefix):
186
+ return 1
187
+
188
+ return 0
189
+
190
+
191
+ if __name__ == "__main__":
192
+ sys.exit(main())
@@ -1108,6 +1108,21 @@ class Chip:
1108
1108
  Performs a lookup in the io map for the fileset and filetype
1109
1109
  and will use those if they are not provided in the arguments
1110
1110
  '''
1111
+ # Handle list inputs
1112
+ if isinstance(filename, (list, tuple)):
1113
+ for file in filename:
1114
+ self._add_input_output(
1115
+ category,
1116
+ file,
1117
+ fileset=fileset,
1118
+ filetype=filetype,
1119
+ iomap=iomap,
1120
+ step=step,
1121
+ index=index,
1122
+ package=package,
1123
+ quiet=quiet)
1124
+ return
1125
+
1111
1126
  # Normalize value to string in case we receive a pathlib.Path
1112
1127
  filename = str(filename)
1113
1128
 
@@ -1,8 +1,9 @@
1
- proc sc_collect_pin_constraints { \
2
- placement_pins_arg \
3
- ordered_pins_arg \
4
- sc_side_layer_func \
5
- { print_func puts } } {
1
+ proc sc_collect_pin_constraints {
2
+ placement_pins_arg
3
+ ordered_pins_arg
4
+ sc_side_layer_func
5
+ { print_func puts }
6
+ } {
6
7
  upvar 1 $placement_pins_arg placement_pins
7
8
  upvar 1 $ordered_pins_arg ordered_pins
8
9
 
@@ -2,7 +2,7 @@
2
2
  # Report Metrics
3
3
  ###############################
4
4
 
5
- proc sc_display_report {report} {
5
+ proc sc_display_report { report } {
6
6
  if { ![file exists $report] } {
7
7
  return
8
8
  }
@@ -2,7 +2,7 @@
2
2
  # Global Placement
3
3
  #######################
4
4
 
5
- proc sc_global_placement_density {} {
5
+ proc sc_global_placement_density { } {
6
6
  global openroad_gpl_padding
7
7
  global openroad_gpl_place_density
8
8
  global openroad_gpl_uniform_placement_adjustment
@@ -82,7 +82,7 @@ proc sc_global_placement { args } {
82
82
  # Detailed Placement
83
83
  ###########################
84
84
 
85
- proc sc_detailed_placement {} {
85
+ proc sc_detailed_placement { } {
86
86
  global openroad_dpl_padding
87
87
  global openroad_dpl_padding
88
88
  global openroad_dpl_disallow_one_site
@@ -149,7 +149,7 @@ proc sc_pin_placement { args } {
149
149
  # Check if OR has a GUI
150
150
  ###########################
151
151
 
152
- proc sc_has_gui {} {
152
+ proc sc_has_gui { } {
153
153
  return [gui::supported]
154
154
  }
155
155
 
@@ -157,7 +157,7 @@ proc sc_has_gui {} {
157
157
  # Check if design has placed instances
158
158
  ###########################
159
159
 
160
- proc sc_has_placed_instances {} {
160
+ proc sc_has_placed_instances { } {
161
161
  foreach inst [[ord::get_db_block] getInsts] {
162
162
  if { [$inst isPlaced] } {
163
163
  return true
@@ -170,7 +170,7 @@ proc sc_has_placed_instances {} {
170
170
  # Check if design has unplaced instances
171
171
  ###########################
172
172
 
173
- proc sc_has_unplaced_instances {} {
173
+ proc sc_has_unplaced_instances { } {
174
174
  foreach inst [[ord::get_db_block] getInsts] {
175
175
  if { ![$inst isPlaced] } {
176
176
  return true
@@ -183,7 +183,7 @@ proc sc_has_unplaced_instances {} {
183
183
  # Check if design has routing
184
184
  ###########################
185
185
 
186
- proc sc_has_routing {} {
186
+ proc sc_has_routing { } {
187
187
  foreach net [[ord::get_db_block] getNets] {
188
188
  if { [$net getWire] != "NULL" } {
189
189
  return true
@@ -196,7 +196,7 @@ proc sc_has_routing {} {
196
196
  # Check if design has global routing
197
197
  ###########################
198
198
 
199
- proc sc_has_global_routing {} {
199
+ proc sc_has_global_routing { } {
200
200
  foreach net [[ord::get_db_block] getNets] {
201
201
  if { [llength [$net getGuides]] != 0 } {
202
202
  return true
@@ -211,7 +211,7 @@ proc sc_has_global_routing {} {
211
211
 
212
212
  # Function adapted from OpenROAD:
213
213
  # https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/ca3004b85e0d4fbee3470115e63b83c498cfed85/flow/scripts/macro_place.tcl#L26
214
- proc sc_design_has_unplaced_macros {} {
214
+ proc sc_design_has_unplaced_macros { } {
215
215
  foreach inst [[ord::get_db_block] getInsts] {
216
216
  if { [$inst isBlock] && ![$inst isFixed] } {
217
217
  return true
@@ -224,7 +224,7 @@ proc sc_design_has_unplaced_macros {} {
224
224
  # Design has unplaced pads
225
225
  ###########################
226
226
 
227
- proc sc_design_has_unplaced_pads {} {
227
+ proc sc_design_has_unplaced_pads { } {
228
228
  foreach inst [[ord::get_db_block] getInsts] {
229
229
  if { [$inst isPad] && ![$inst isFixed] } {
230
230
  return true
@@ -237,7 +237,7 @@ proc sc_design_has_unplaced_pads {} {
237
237
  # Design has placable IOs
238
238
  ###########################
239
239
 
240
- proc sc_design_has_placeable_ios {} {
240
+ proc sc_design_has_placeable_ios { } {
241
241
  foreach bterm [[ord::get_db_block] getBTerms] {
242
242
  if {
243
243
  [$bterm getFirstPinPlacementStatus] != "FIXED" &&
@@ -284,7 +284,7 @@ proc sc_find_net_regex { net_name } {
284
284
  # Get supply nets in design
285
285
  ###########################
286
286
 
287
- proc sc_supply_nets {} {
287
+ proc sc_supply_nets { } {
288
288
  set nets []
289
289
 
290
290
  foreach net [[ord::get_db_block] getNets] {
@@ -301,7 +301,7 @@ proc sc_supply_nets {} {
301
301
  # Get nets for PSM to check
302
302
  ###########################
303
303
 
304
- proc sc_psm_check_nets {} {
304
+ proc sc_psm_check_nets { } {
305
305
  global openroad_psm_enable
306
306
  global openroad_psm_skip_nets
307
307
 
@@ -343,7 +343,7 @@ proc sc_save_image { title path { pixels 1000 } } {
343
343
  # Get the image bounding box
344
344
  ###########################
345
345
 
346
- proc sc_image_area {} {
346
+ proc sc_image_area { } {
347
347
  set box [[ord::get_db_block] getDieArea]
348
348
  set width [$box dx]
349
349
  set height [$box dy]
@@ -373,7 +373,7 @@ proc sc_image_resolution { pixels } {
373
373
  # Clear gui selections
374
374
  ###########################
375
375
 
376
- proc sc_image_clear_selection {} {
376
+ proc sc_image_clear_selection { } {
377
377
  gui::clear_highlights -1
378
378
  gui::clear_selections
379
379
  }
@@ -382,7 +382,7 @@ proc sc_image_clear_selection {} {
382
382
  # Setup default GUI setting for images
383
383
  ###########################
384
384
 
385
- proc sc_image_setup_default {} {
385
+ proc sc_image_setup_default { } {
386
386
  gui::restore_display_controls
387
387
 
388
388
  sc_image_clear_selection
@@ -406,7 +406,7 @@ proc sc_image_setup_default {} {
406
406
  # Count the logic depth of the critical path
407
407
  ###########################
408
408
 
409
- proc count_logic_depth {} {
409
+ proc count_logic_depth { } {
410
410
  set count 0
411
411
  set paths [find_timing_paths -sort_by_slack]
412
412
  if { [llength $paths] == 0 } {
@@ -6,7 +6,7 @@
6
6
  # Helper functions
7
7
  #######################
8
8
 
9
- proc insert_fillers {} {
9
+ proc insert_fillers { } {
10
10
  upvar sc_filler sc_filler
11
11
  if { $sc_filler != "" } {
12
12
  filler_placement $sc_filler
@@ -54,7 +54,7 @@ proc sc_image_heatmap { name ident image_name title { allow_bin_adjust 1 } } {
54
54
  gui::set_display_controls "Heat Maps/${name}" visible false
55
55
  }
56
56
 
57
- proc sc_image_placement {} {
57
+ proc sc_image_placement { } {
58
58
  if { ![sc_has_placed_instances] } {
59
59
  return
60
60
  }
@@ -70,7 +70,7 @@ proc sc_image_placement {} {
70
70
  sc_save_image "placement" reports/images/${sc_design}.placement.png
71
71
  }
72
72
 
73
- proc sc_image_routing {} {
73
+ proc sc_image_routing { } {
74
74
  if { ![sc_has_routing] } {
75
75
  return
76
76
  }
@@ -85,7 +85,7 @@ proc sc_image_routing {} {
85
85
  sc_save_image "routing" reports/images/${sc_design}.routing.png
86
86
  }
87
87
 
88
- proc sc_image_everything {} {
88
+ proc sc_image_everything { } {
89
89
  global sc_design
90
90
 
91
91
  sc_image_setup_default
@@ -134,7 +134,7 @@ proc sc_image_irdrop { net corner } {
134
134
  }
135
135
  }
136
136
 
137
- proc sc_image_routing_congestion {} {
137
+ proc sc_image_routing_congestion { } {
138
138
  if { ![sc_has_global_routing] } {
139
139
  return
140
140
  }
@@ -148,7 +148,7 @@ proc sc_image_routing_congestion {} {
148
148
  0
149
149
  }
150
150
 
151
- proc sc_image_estimated_routing_congestion {} {
151
+ proc sc_image_estimated_routing_congestion { } {
152
152
  if { ![sc_has_placed_instances] } {
153
153
  return
154
154
  }
@@ -166,7 +166,7 @@ proc sc_image_estimated_routing_congestion {} {
166
166
  unsuppress_message GRT 10
167
167
  }
168
168
 
169
- proc sc_image_power_density {} {
169
+ proc sc_image_power_density { } {
170
170
  if { ![sc_has_placed_instances] } {
171
171
  return
172
172
  }
@@ -188,7 +188,7 @@ proc sc_image_power_density {} {
188
188
  }
189
189
  }
190
190
 
191
- proc sc_image_placement_density {} {
191
+ proc sc_image_placement_density { } {
192
192
  if { ![sc_has_placed_instances] } {
193
193
  return
194
194
  }
@@ -201,7 +201,7 @@ proc sc_image_placement_density {} {
201
201
  "placement density"
202
202
  }
203
203
 
204
- proc sc_image_clocks {} {
204
+ proc sc_image_clocks { } {
205
205
  if { ![sc_has_placed_instances] } {
206
206
  return
207
207
  }
@@ -223,7 +223,7 @@ proc sc_image_clocks {} {
223
223
  sc_save_image "clocks" reports/images/${sc_design}.clocks.png
224
224
  }
225
225
 
226
- proc sc_image_clocktree {} {
226
+ proc sc_image_clocktree { } {
227
227
  gui::show_widget "Clock Tree Viewer"
228
228
  global sc_scenarios
229
229
 
@@ -263,7 +263,7 @@ proc sc_image_clocktree {} {
263
263
  gui::hide_widget "Clock Tree Viewer"
264
264
  }
265
265
 
266
- proc sc_image_optimizer {} {
266
+ proc sc_image_optimizer { } {
267
267
  global sc_design
268
268
  sc_image_setup_default
269
269
 
@@ -2,7 +2,7 @@
2
2
  # Count the logic depth of the critical path
3
3
  ###########################
4
4
 
5
- proc sc_count_logic_depth {} {
5
+ proc sc_count_logic_depth { } {
6
6
  set count 0
7
7
  set paths [find_timing_paths -sort_by_slack]
8
8
  if { [llength $paths] == 0 } {
@@ -24,7 +24,7 @@ proc sc_count_logic_depth {} {
24
24
  return [expr { $count - 1 }]
25
25
  }
26
26
 
27
- proc sc_design_area {} {
27
+ proc sc_design_area { } {
28
28
  set area 0
29
29
  foreach inst [get_cells -hierarchical *] {
30
30
  set lib_cell [$inst liberty_cell]
@@ -35,7 +35,7 @@ proc sc_design_area {} {
35
35
  return $area
36
36
  }
37
37
 
38
- proc sc_display_report {report} {
38
+ proc sc_display_report { report } {
39
39
  if { ![file exists $report] } {
40
40
  return
41
41
  }
@@ -3,7 +3,7 @@
3
3
  ####################
4
4
  source "$sc_refdir/syn_asic_fpga_shared.tcl"
5
5
 
6
- proc preserve_modules {} {
6
+ proc preserve_modules { } {
7
7
  global sc_cfg
8
8
  global sc_tool
9
9
  global sc_task