siliconcompiler 0.28.9__tar.gz → 0.29.1__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 (500) hide show
  1. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/.readthedocs.yaml +5 -1
  2. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/Changes +39 -0
  3. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/PKG-INFO +22 -17
  4. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/pyproject.toml +34 -22
  5. siliconcompiler-0.29.1/scripts/check_library.py +43 -0
  6. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/_metadata.py +1 -1
  7. siliconcompiler-0.29.1/siliconcompiler/apps/__init__.py +26 -0
  8. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc_remote.py +15 -14
  9. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc_show.py +5 -5
  10. siliconcompiler-0.29.1/siliconcompiler/apps/utils/replay.py +194 -0
  11. siliconcompiler-0.29.1/siliconcompiler/checklists/__init__.py +12 -0
  12. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/core.py +89 -22
  13. siliconcompiler-0.29.1/siliconcompiler/flows/__init__.py +34 -0
  14. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/_common.py +11 -13
  15. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/asicflow.py +83 -42
  16. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/showflow.py +1 -1
  17. siliconcompiler-0.29.1/siliconcompiler/libs/__init__.py +5 -0
  18. siliconcompiler-0.29.1/siliconcompiler/optimizer/__init__.py +199 -0
  19. siliconcompiler-0.29.1/siliconcompiler/optimizer/vizier.py +259 -0
  20. siliconcompiler-0.29.1/siliconcompiler/pdks/__init__.py +5 -0
  21. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/__init__.py +11 -0
  22. siliconcompiler-0.29.1/siliconcompiler/remote/client.py +860 -0
  23. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/report.py +2 -0
  24. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/summary_table.py +1 -1
  25. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/scheduler/__init__.py +118 -58
  26. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/scheduler/send_messages.py +1 -1
  27. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/schema/schema_cfg.py +16 -4
  28. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/schema/schema_obj.py +29 -10
  29. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/schema/utils.py +2 -0
  30. siliconcompiler-0.29.1/siliconcompiler/sphinx_ext/__init__.py +85 -0
  31. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/sphinx_ext/dynamicgen.py +19 -34
  32. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/sphinx_ext/schemagen.py +3 -2
  33. siliconcompiler-0.29.1/siliconcompiler/targets/__init__.py +26 -0
  34. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/gf180_demo.py +3 -3
  35. siliconcompiler-0.29.1/siliconcompiler/templates/replay/replay.py.j2 +62 -0
  36. siliconcompiler-0.29.1/siliconcompiler/templates/replay/requirements.txt +7 -0
  37. siliconcompiler-0.29.1/siliconcompiler/templates/replay/setup.sh +130 -0
  38. siliconcompiler-0.29.1/siliconcompiler/tools/__init__.py +60 -0
  39. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/_common/__init__.py +15 -1
  40. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/_common/asic.py +17 -9
  41. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/concatenate.py +1 -1
  42. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/ghdl/ghdl.py +1 -2
  43. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/convert_drc_db.py +1 -1
  44. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/drc.py +1 -1
  45. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/export.py +8 -1
  46. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/klayout.py +2 -2
  47. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +2 -2
  48. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/klayout_export.py +7 -5
  49. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/klayout_operations.py +4 -3
  50. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/klayout_show.py +3 -2
  51. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/klayout_utils.py +1 -1
  52. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/operations.py +8 -0
  53. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/screenshot.py +6 -1
  54. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/klayout/show.py +8 -1
  55. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/magic/magic.py +1 -1
  56. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/__init__.py +103 -0
  57. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/openroad.py → siliconcompiler-0.29.1/siliconcompiler/tools/openroad/_apr.py +415 -423
  58. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/antenna_repair.py +78 -0
  59. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/clock_tree_synthesis.py +64 -0
  60. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/detailed_placement.py +59 -0
  61. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/detailed_route.py +62 -0
  62. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +52 -0
  63. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/fillercell_insertion.py +58 -0
  64. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/dfm.py → siliconcompiler-0.29.1/siliconcompiler/tools/openroad/fillmetal_insertion.py +35 -19
  65. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/global_placement.py +58 -0
  66. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/global_route.py +63 -0
  67. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/init_floorplan.py +103 -0
  68. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/macro_placement.py +65 -0
  69. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/metrics.py +59 -0
  70. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/pin_placement.py +56 -0
  71. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/power_grid.py +65 -0
  72. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/rcx_bench.py +7 -4
  73. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/rcx_extract.py +2 -1
  74. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/rdlroute.py +4 -4
  75. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/repair_design.py +59 -0
  76. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/repair_timing.py +63 -0
  77. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/screenshot.py +9 -20
  78. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +44 -0
  79. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +95 -0
  80. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +51 -0
  81. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +66 -0
  82. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +41 -0
  83. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +71 -0
  84. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +55 -0
  85. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +27 -0
  86. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +36 -0
  87. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +26 -0
  88. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +61 -0
  89. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +333 -0
  90. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +123 -0
  91. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +22 -0
  92. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +41 -0
  93. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +60 -0
  94. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +68 -0
  95. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +83 -0
  96. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +125 -0
  97. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +28 -0
  98. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/procs.tcl +727 -0
  99. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +59 -0
  100. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +20 -0
  101. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +16 -0
  102. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/reports.tcl +180 -0
  103. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +18 -0
  104. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +395 -0
  105. {siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts → siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/rcx}/sc_rcx_bench.tcl +5 -5
  106. {siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts → siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/rcx}/sc_rcx_extract.tcl +0 -0
  107. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +5 -16
  108. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +51 -51
  109. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/sc_show.tcl +110 -0
  110. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/show.py +28 -23
  111. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/export.py → siliconcompiler-0.29.1/siliconcompiler/tools/openroad/write_data.py +31 -26
  112. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/opensta/__init__.py +2 -2
  113. siliconcompiler-0.29.1/siliconcompiler/tools/opensta/check_library.py +27 -0
  114. siliconcompiler-0.29.1/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +255 -0
  115. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +1 -1
  116. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/sv2v/sv2v.py +1 -2
  117. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/verilator/verilator.py +6 -7
  118. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/vivado.py +1 -1
  119. siliconcompiler-0.28.9/siliconcompiler/tools/yosys/yosys.py → siliconcompiler-0.29.1/siliconcompiler/tools/yosys/__init__.py +3 -2
  120. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/lec.py +22 -9
  121. siliconcompiler-0.29.1/siliconcompiler/tools/yosys/sc_lec.tcl +129 -0
  122. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/sc_syn.tcl +1 -0
  123. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/screenshot.py +2 -2
  124. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/syn_asic.py +105 -74
  125. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/syn_asic.tcl +58 -12
  126. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/syn_fpga.py +2 -3
  127. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/syn_fpga.tcl +26 -19
  128. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/_tools.json +5 -5
  129. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/utils/__init__.py +7 -3
  130. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler.egg-info/PKG-INFO +22 -17
  131. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler.egg-info/SOURCES.txt +57 -39
  132. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler.egg-info/entry_points.txt +13 -0
  133. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler.egg-info/requires.txt +26 -15
  134. siliconcompiler-0.28.9/siliconcompiler/libs/asap7sc7p5t.py +0 -8
  135. siliconcompiler-0.28.9/siliconcompiler/libs/gf180mcu.py +0 -8
  136. siliconcompiler-0.28.9/siliconcompiler/libs/interposer.py +0 -8
  137. siliconcompiler-0.28.9/siliconcompiler/libs/nangate45.py +0 -8
  138. siliconcompiler-0.28.9/siliconcompiler/libs/sg13g2_stdcell.py +0 -8
  139. siliconcompiler-0.28.9/siliconcompiler/libs/sky130hd.py +0 -8
  140. siliconcompiler-0.28.9/siliconcompiler/libs/sky130io.py +0 -8
  141. siliconcompiler-0.28.9/siliconcompiler/pdks/asap7.py +0 -8
  142. siliconcompiler-0.28.9/siliconcompiler/pdks/freepdk45.py +0 -8
  143. siliconcompiler-0.28.9/siliconcompiler/pdks/gf180.py +0 -8
  144. siliconcompiler-0.28.9/siliconcompiler/pdks/ihp130.py +0 -8
  145. siliconcompiler-0.28.9/siliconcompiler/pdks/interposer.py +0 -8
  146. siliconcompiler-0.28.9/siliconcompiler/pdks/skywater130.py +0 -8
  147. siliconcompiler-0.28.9/siliconcompiler/remote/client.py +0 -922
  148. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/cts.py +0 -45
  149. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/floorplan.py +0 -75
  150. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/metrics.py +0 -44
  151. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/physyn.py +0 -27
  152. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/place.py +0 -41
  153. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/route.py +0 -45
  154. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_apr.tcl +0 -514
  155. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -68
  156. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +0 -22
  157. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_export.tcl +0 -100
  158. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +0 -456
  159. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +0 -1
  160. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -6
  161. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_place.tcl +0 -84
  162. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_procs.tcl +0 -494
  163. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_report.tcl +0 -189
  164. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_route.tcl +0 -143
  165. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -18
  166. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +0 -393
  167. siliconcompiler-0.28.9/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  168. siliconcompiler-0.28.9/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  169. siliconcompiler-0.28.9/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  170. siliconcompiler-0.28.9/siliconcompiler/tools/sv2v/__init__.py +0 -0
  171. siliconcompiler-0.28.9/siliconcompiler/tools/template/__init__.py +0 -0
  172. siliconcompiler-0.28.9/siliconcompiler/tools/verilator/__init__.py +0 -0
  173. siliconcompiler-0.28.9/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  174. siliconcompiler-0.28.9/siliconcompiler/tools/vpr/__init__.py +0 -0
  175. siliconcompiler-0.28.9/siliconcompiler/tools/yosys/__init__.py +0 -0
  176. siliconcompiler-0.28.9/siliconcompiler/tools/yosys/sc_lec.tcl +0 -84
  177. siliconcompiler-0.28.9/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  178. siliconcompiler-0.28.9/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  179. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/.dockerignore +0 -0
  180. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/.flake8 +0 -0
  181. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/.gitattributes +0 -0
  182. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/.gitignore +0 -0
  183. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/CONTRIBUTING.md +0 -0
  184. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/LICENSE +0 -0
  185. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/MANIFEST.in +0 -0
  186. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/README.md +0 -0
  187. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/SECURITY.md +0 -0
  188. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/scripts/.gitignore +0 -0
  189. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/scripts/profile_sc.py +0 -0
  190. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/scripts/report_library.py +0 -0
  191. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/setup.cfg +0 -0
  192. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/__init__.py +0 -0
  193. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/__main__.py +0 -0
  194. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/_common.py +0 -0
  195. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/_common.py +0 -0
  196. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc.py +0 -0
  197. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc_dashboard.py +0 -0
  198. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc_install.py +0 -0
  199. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc_issue.py +0 -0
  200. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/sc_server.py +0 -0
  201. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/smake.py +0 -0
  202. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/apps/utils/summarize.py +0 -0
  203. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  204. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  205. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  206. {siliconcompiler-0.28.9/siliconcompiler/apps → siliconcompiler-0.29.1/siliconcompiler/data/RobotoMono}/__init__.py +0 -0
  207. {siliconcompiler-0.28.9/siliconcompiler/checklists → siliconcompiler-0.29.1/siliconcompiler/data}/__init__.py +0 -0
  208. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/data/heartbeat.v +0 -0
  209. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/data/logo.png +0 -0
  210. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flowgraph.py +0 -0
  211. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/asictopflow.py +0 -0
  212. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/drcflow.py +0 -0
  213. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/dvflow.py +0 -0
  214. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/fpgaflow.py +0 -0
  215. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  216. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/interposerflow.py +0 -0
  217. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/lintflow.py +0 -0
  218. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/screenshotflow.py +0 -0
  219. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/signoffflow.py +0 -0
  220. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/flows/synflow.py +0 -0
  221. {siliconcompiler-0.28.9/siliconcompiler/data/RobotoMono → siliconcompiler-0.29.1/siliconcompiler/fpgas}/__init__.py +0 -0
  222. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  223. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/fpgas/vpr_example.py +0 -0
  224. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/issue.py +0 -0
  225. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/package.py +0 -0
  226. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/schema.py +0 -0
  227. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server.py +0 -0
  228. {siliconcompiler-0.28.9/siliconcompiler/data → siliconcompiler-0.29.1/siliconcompiler/remote/server_schema}/__init__.py +0 -0
  229. {siliconcompiler-0.28.9/siliconcompiler/flows → siliconcompiler-0.29.1/siliconcompiler/remote/server_schema/requests}/__init__.py +0 -0
  230. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  231. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  232. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  233. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  234. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  235. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  236. {siliconcompiler-0.28.9/siliconcompiler/fpgas → siliconcompiler-0.29.1/siliconcompiler/remote/server_schema/responses}/__init__.py +0 -0
  237. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  238. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  239. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  240. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  241. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  242. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  243. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/__init__.py +0 -0
  244. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/__init__.py +0 -0
  245. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/components/__init__.py +0 -0
  246. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
  247. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/components/graph.py +0 -0
  248. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
  249. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
  250. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
  251. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
  252. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  253. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/state.py +0 -0
  254. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
  255. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
  256. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/dashboard/viewer.py +0 -0
  257. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/html_report.py +0 -0
  258. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/summary_image.py +0 -0
  259. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/report/utils.py +0 -0
  260. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/scheduler/docker_runner.py +0 -0
  261. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/scheduler/run_node.py +0 -0
  262. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/scheduler/slurm.py +0 -0
  263. {siliconcompiler-0.28.9/siliconcompiler/libs → siliconcompiler-0.29.1/siliconcompiler/scheduler/validation}/__init__.py +0 -0
  264. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  265. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/schema/__init__.py +0 -0
  266. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/sphinx_ext/utils.py +0 -0
  267. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/asap7_demo.py +0 -0
  268. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/asic_demo.py +0 -0
  269. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
  270. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  271. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/ihp130_demo.py +0 -0
  272. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/interposer_demo.py +0 -0
  273. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/targets/skywater130_demo.py +0 -0
  274. {siliconcompiler-0.28.9/siliconcompiler/pdks → siliconcompiler-0.29.1/siliconcompiler/templates}/__init__.py +0 -0
  275. {siliconcompiler-0.28.9/siliconcompiler/remote/server_schema → siliconcompiler-0.29.1/siliconcompiler/templates/email}/__init__.py +0 -0
  276. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/email/general.j2 +0 -0
  277. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/email/summary.j2 +0 -0
  278. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/issue/README.txt +0 -0
  279. {siliconcompiler-0.28.9/siliconcompiler/remote/server_schema/requests → siliconcompiler-0.29.1/siliconcompiler/templates/issue}/__init__.py +0 -0
  280. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/issue/run.sh +0 -0
  281. {siliconcompiler-0.28.9/siliconcompiler/remote/server_schema/responses → siliconcompiler-0.29.1/siliconcompiler/templates/report}/__init__.py +0 -0
  282. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  283. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  284. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  285. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  286. {siliconcompiler-0.28.9/siliconcompiler/scheduler/validation → siliconcompiler-0.29.1/siliconcompiler/templates/slurm}/__init__.py +0 -0
  287. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/slurm/run.sh +0 -0
  288. {siliconcompiler-0.28.9/siliconcompiler/sphinx_ext → siliconcompiler-0.29.1/siliconcompiler/templates/tcl}/__init__.py +0 -0
  289. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
  290. {siliconcompiler-0.28.9/siliconcompiler/targets → siliconcompiler-0.29.1/siliconcompiler/tools/_common/sdc}/__init__.py +0 -0
  291. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  292. {siliconcompiler-0.28.9/siliconcompiler/templates → siliconcompiler-0.29.1/siliconcompiler/tools/_common/tcl}/__init__.py +0 -0
  293. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  294. {siliconcompiler-0.28.9/siliconcompiler/templates/email → siliconcompiler-0.29.1/siliconcompiler/tools/bambu}/__init__.py +0 -0
  295. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/bambu/bambu.py +0 -0
  296. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/bambu/convert.py +0 -0
  297. {siliconcompiler-0.28.9/siliconcompiler/templates/issue → siliconcompiler-0.29.1/siliconcompiler/tools/bluespec}/__init__.py +0 -0
  298. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
  299. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/bluespec/convert.py +0 -0
  300. {siliconcompiler-0.28.9/siliconcompiler/templates/report → siliconcompiler-0.29.1/siliconcompiler/tools/builtin}/__init__.py +0 -0
  301. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/_common.py +0 -0
  302. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/builtin.py +0 -0
  303. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/join.py +0 -0
  304. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/maximum.py +0 -0
  305. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/minimum.py +0 -0
  306. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/mux.py +0 -0
  307. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/nop.py +0 -0
  308. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/builtin/verify.py +0 -0
  309. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  310. {siliconcompiler-0.28.9/siliconcompiler/templates/slurm → siliconcompiler-0.29.1/siliconcompiler/tools/chisel}/__init__.py +0 -0
  311. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/chisel/build.sbt +0 -0
  312. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/chisel/chisel.py +0 -0
  313. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/chisel/convert.py +0 -0
  314. {siliconcompiler-0.28.9/siliconcompiler/templates/tcl → siliconcompiler-0.29.1/siliconcompiler/tools/execute}/__init__.py +0 -0
  315. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/execute/exec_input.py +0 -0
  316. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/execute/execute.py +0 -0
  317. {siliconcompiler-0.28.9/siliconcompiler/tools → siliconcompiler-0.29.1/siliconcompiler/tools/genfasm}/__init__.py +0 -0
  318. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  319. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  320. {siliconcompiler-0.28.9/siliconcompiler/tools/_common/sdc → siliconcompiler-0.29.1/siliconcompiler/tools/ghdl}/__init__.py +0 -0
  321. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/ghdl/convert.py +0 -0
  322. {siliconcompiler-0.28.9/siliconcompiler/tools/_common/tcl → siliconcompiler-0.29.1/siliconcompiler/tools/icarus}/__init__.py +0 -0
  323. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/icarus/compile.py +0 -0
  324. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/icarus/icarus.py +0 -0
  325. {siliconcompiler-0.28.9/siliconcompiler/tools/bambu → siliconcompiler-0.29.1/siliconcompiler/tools/icepack}/__init__.py +0 -0
  326. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  327. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/icepack/icepack.py +0 -0
  328. {siliconcompiler-0.28.9/siliconcompiler/tools/bluespec → siliconcompiler-0.29.1/siliconcompiler/tools/klayout}/__init__.py +0 -0
  329. {siliconcompiler-0.28.9/siliconcompiler/tools/builtin → siliconcompiler-0.29.1/siliconcompiler/tools/magic}/__init__.py +0 -0
  330. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/magic/drc.py +0 -0
  331. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/magic/extspice.py +0 -0
  332. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  333. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  334. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  335. {siliconcompiler-0.28.9/siliconcompiler/tools/chisel → siliconcompiler-0.29.1/siliconcompiler/tools/montage}/__init__.py +0 -0
  336. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/montage/montage.py +0 -0
  337. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/montage/tile.py +0 -0
  338. {siliconcompiler-0.28.9/siliconcompiler/tools/execute → siliconcompiler-0.29.1/siliconcompiler/tools/netgen}/__init__.py +0 -0
  339. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  340. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/netgen/lvs.py +0 -0
  341. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/netgen/netgen.py +0 -0
  342. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  343. {siliconcompiler-0.28.9/siliconcompiler/tools/genfasm → siliconcompiler-0.29.1/siliconcompiler/tools/nextpnr}/__init__.py +0 -0
  344. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  345. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  346. /siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts/sc_write.tcl → /siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  347. {siliconcompiler-0.28.9/siliconcompiler/tools/ghdl → siliconcompiler-0.29.1/siliconcompiler/tools/openroad/templates}/__init__.py +0 -0
  348. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  349. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  350. {siliconcompiler-0.28.9/siliconcompiler/tools/icarus → siliconcompiler-0.29.1/siliconcompiler/tools/opensta/scripts}/__init__.py +0 -0
  351. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  352. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
  353. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/opensta/timing.py +0 -0
  354. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/slang/__init__.py +0 -0
  355. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/slang/lint.py +0 -0
  356. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/surelog/__init__.py +0 -0
  357. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/surelog/parse.py +0 -0
  358. {siliconcompiler-0.28.9/siliconcompiler/tools/icepack → siliconcompiler-0.29.1/siliconcompiler/tools/surelog/templates}/__init__.py +0 -0
  359. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  360. {siliconcompiler-0.28.9/siliconcompiler/tools/klayout → siliconcompiler-0.29.1/siliconcompiler/tools/sv2v}/__init__.py +0 -0
  361. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/sv2v/convert.py +0 -0
  362. {siliconcompiler-0.28.9/siliconcompiler/tools/magic → siliconcompiler-0.29.1/siliconcompiler/tools/template}/__init__.py +0 -0
  363. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/template/template.py +0 -0
  364. {siliconcompiler-0.28.9/siliconcompiler/tools/montage → siliconcompiler-0.29.1/siliconcompiler/tools/verilator}/__init__.py +0 -0
  365. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/verilator/compile.py +0 -0
  366. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/verilator/lint.py +0 -0
  367. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/verilator/parse.py +0 -0
  368. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/__init__.py +0 -0
  369. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  370. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/place.py +0 -0
  371. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/route.py +0 -0
  372. {siliconcompiler-0.28.9/siliconcompiler/tools/netgen → siliconcompiler-0.29.1/siliconcompiler/tools/vivado/scripts}/__init__.py +0 -0
  373. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  374. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  375. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  376. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  377. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  378. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  379. {siliconcompiler-0.28.9/siliconcompiler/tools/nextpnr → siliconcompiler-0.29.1/siliconcompiler/tools/vpr}/__init__.py +0 -0
  380. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  381. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  382. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/place.py +0 -0
  383. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/route.py +0 -0
  384. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  385. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/show.py +0 -0
  386. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/vpr/vpr.py +0 -0
  387. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/xdm/__init__.py +0 -0
  388. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/xdm/convert.py +0 -0
  389. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/xyce/__init__.py +0 -0
  390. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/xyce/simulate.py +0 -0
  391. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  392. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/procs.tcl +0 -0
  393. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
  394. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  395. {siliconcompiler-0.28.9/siliconcompiler/tools/openroad → siliconcompiler-0.29.1/siliconcompiler/tools/yosys/techmaps}/__init__.py +0 -0
  396. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  397. {siliconcompiler-0.28.9/siliconcompiler/tools/openroad/scripts → siliconcompiler-0.29.1/siliconcompiler/tools/yosys/templates}/__init__.py +0 -0
  398. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  399. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/_tools.py +0 -0
  400. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  401. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
  402. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  403. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  404. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  405. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  406. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  407. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
  408. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  409. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
  410. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  411. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  412. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
  413. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -0
  414. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  415. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  416. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  417. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  418. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  419. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  420. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  421. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
  422. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  423. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
  424. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  425. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  426. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  427. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
  428. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
  429. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  430. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  431. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  432. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  433. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  434. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  435. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  436. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  437. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  438. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  439. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  440. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  441. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
  442. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  443. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
  444. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
  445. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  446. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  447. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
  448. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  449. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
  450. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
  451. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  452. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
  453. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  454. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
  455. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  456. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  457. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  458. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  459. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  460. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  461. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  462. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  463. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
  464. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  465. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
  466. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
  467. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  468. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  469. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  470. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  471. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
  472. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  473. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
  474. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
  475. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  476. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
  477. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
  478. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  479. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  480. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  481. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  482. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
  483. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  484. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  485. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
  486. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  487. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
  488. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
  489. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  490. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  491. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  492. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  493. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
  494. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  495. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/units.py +0 -0
  496. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/use.py +0 -0
  497. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/utils/asic.py +0 -0
  498. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler/utils/showtools.py +0 -0
  499. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  500. {siliconcompiler-0.28.9 → siliconcompiler-0.29.1}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -24,5 +24,9 @@ python:
24
24
  - method: pip
25
25
  path: .
26
26
  extra_requirements:
27
- - build
28
27
  - docs
28
+ - test
29
+ - lint
30
+ - profile
31
+ - examples
32
+ - optimizer
@@ -8,6 +8,45 @@ 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.29.1 (2025-01-09)
12
+ =========================================
13
+
14
+ **Major:**
15
+
16
+ * Added optional `optimizer` install extra to provide design optimization via google-vizier.
17
+
18
+ **Minor:**
19
+
20
+ * Added capability to import flist files via `Chip.import_flist`
21
+ * Added quiet loglevel to limit siliconcompiler logging to just the most critical information.
22
+
23
+ * Tools:
24
+
25
+ * openroad: switch to turn on new macro placer by default and correct handling of dont_use based on cell lists.
26
+ * yosys: add detailed metrics for cell counts, added support for handling clockgate insertion, simplified library file handling, and updated lec task.
27
+ * sta: added check_library task to help verify library setups for asic flows.
28
+
29
+
30
+ SiliconCompiler 0.29.0 (2024-12-12)
31
+ =========================================
32
+
33
+ **Major:**
34
+
35
+ * Update asicflow and openroad driver to utilize smaller tasks. This is a breaking change from the previous implementation, but allows for better flow composability.
36
+ * Added `['record', 'pythonversion']` and `['record', 'pythonpackage']` to schema to allow to better environment and provenance tracking.
37
+
38
+
39
+ **Minor:**
40
+
41
+ * Reworked remote client into single class to allow for better job tracking locally.
42
+ * Updated logic for printing package access information to avoid repeating information when possible during a run.
43
+
44
+ * Tools:
45
+
46
+ * openroad: rework tasks into smaller tasks, add access to `eliminate_dead_logic` via `['tool', 'openroad', 'task', 'init_floorplan', 'var', 'remove_dead_logic']`
47
+ * yosys: fix fpga synthesis to allow for better macro extraction and added ability to map tri-state buffers to asic synthesis.
48
+
49
+
11
50
  SiliconCompiler 0.28.9 (2024-11-27)
12
51
  =========================================
13
52
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: siliconcompiler
3
- Version: 0.28.9
3
+ Version: 0.29.1
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
@@ -26,54 +26,59 @@ Requires-Python: >=3.8
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
29
- Requires-Dist: aiohttp==3.11.2; python_version >= "3.9"
29
+ Requires-Dist: aiohttp==3.11.11; python_version >= "3.9"
30
30
  Requires-Dist: requests==2.32.3
31
31
  Requires-Dist: PyYAML==6.0.2
32
32
  Requires-Dist: pandas>=1.1.5
33
33
  Requires-Dist: Jinja2>=2.11.3
34
34
  Requires-Dist: graphviz==0.20.3
35
35
  Requires-Dist: distro==1.9.0
36
- Requires-Dist: packaging<24,>=21.3
36
+ Requires-Dist: packaging<25,>=21.3
37
37
  Requires-Dist: psutil>=5.8.0
38
38
  Requires-Dist: Pillow==10.4.0; python_version <= "3.8"
39
- Requires-Dist: Pillow==11.0.0; python_version >= "3.9"
40
- Requires-Dist: GitPython==3.1.43
41
- Requires-Dist: lambdapdk>=0.1.38
39
+ Requires-Dist: Pillow==11.1.0; python_version >= "3.9"
40
+ Requires-Dist: GitPython==3.1.44
41
+ Requires-Dist: lambdapdk>=0.1.44
42
42
  Requires-Dist: PyGithub==2.5.0
43
43
  Requires-Dist: urllib3>=1.26.0
44
44
  Requires-Dist: fasteners==0.19
45
- Requires-Dist: fastjsonschema==2.20.0
45
+ Requires-Dist: fastjsonschema==2.21.1
46
46
  Requires-Dist: docker==7.1.0
47
47
  Requires-Dist: importlib_metadata; python_version < "3.10"
48
48
  Requires-Dist: sc-surelog==1.84.1
49
- Requires-Dist: orjson==3.10.11
50
- Requires-Dist: streamlit==1.40.1; python_full_version != "3.9.7"
49
+ Requires-Dist: orjson==3.10.13
50
+ Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
51
+ Requires-Dist: streamlit==1.41.1; python_version >= "3.9" and python_full_version != "3.9.7"
51
52
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
52
53
  Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
53
54
  Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
54
55
  Requires-Dist: streamlit-autorefresh==1.0.1; python_full_version != "3.9.7"
55
56
  Provides-Extra: test
56
- Requires-Dist: pytest==8.3.3; extra == "test"
57
+ Requires-Dist: pytest==8.3.4; extra == "test"
57
58
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
58
59
  Requires-Dist: pytest-timeout==2.3.1; extra == "test"
59
- Requires-Dist: pytest-asyncio==0.24.0; extra == "test"
60
+ Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
61
+ Requires-Dist: pytest-asyncio==0.25.1; python_version >= "3.9" and extra == "test"
60
62
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
61
63
  Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
62
64
  Requires-Dist: responses==0.25.3; extra == "test"
63
65
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
64
- Requires-Dist: flake8==7.1.1; extra == "test"
65
- Requires-Dist: tclint==0.4.2; extra == "test"
66
- Requires-Dist: codespell==2.3.0; extra == "test"
66
+ Provides-Extra: lint
67
+ Requires-Dist: flake8==7.1.1; extra == "lint"
68
+ Requires-Dist: tclint==0.5.0; extra == "lint"
69
+ Requires-Dist: codespell==2.3.0; extra == "lint"
67
70
  Provides-Extra: docs
68
71
  Requires-Dist: Sphinx==8.1.3; extra == "docs"
69
72
  Requires-Dist: pip-licenses==5.0.0; extra == "docs"
70
- Requires-Dist: pydata-sphinx-theme==0.16.0; extra == "docs"
73
+ Requires-Dist: pydata-sphinx-theme==0.16.1; extra == "docs"
71
74
  Requires-Dist: sc-leflib>=0.2.0; extra == "docs"
72
75
  Provides-Extra: profile
73
76
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
74
77
  Provides-Extra: examples
75
78
  Requires-Dist: migen==0.9.2; extra == "examples"
76
- Requires-Dist: lambdalib==0.3.1; extra == "examples"
79
+ Requires-Dist: lambdalib==0.3.2; extra == "examples"
80
+ Provides-Extra: optimizer
81
+ Requires-Dist: google-vizier[jax]==0.1.20; python_version >= "3.10" and extra == "optimizer"
77
82
 
78
83
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
79
84
 
@@ -33,30 +33,31 @@ classifiers = [
33
33
  requires-python = ">= 3.8"
34
34
  dependencies = [
35
35
  "aiohttp == 3.10.11; python_version <= '3.8'",
36
- "aiohttp == 3.11.2; python_version >= '3.9'",
36
+ "aiohttp == 3.11.11; python_version >= '3.9'",
37
37
  "requests == 2.32.3",
38
38
  "PyYAML == 6.0.2",
39
39
  "pandas >= 1.1.5",
40
40
  "Jinja2 >= 2.11.3",
41
41
  "graphviz == 0.20.3",
42
42
  "distro == 1.9.0",
43
- "packaging >= 21.3, < 24", # Less than 24 for streamlit
43
+ "packaging >= 21.3, < 25",
44
44
  "psutil >= 5.8.0",
45
45
  "Pillow == 10.4.0; python_version <= '3.8'",
46
- "Pillow == 11.0.0; python_version >= '3.9'",
47
- "GitPython == 3.1.43",
48
- "lambdapdk >= 0.1.38",
46
+ "Pillow == 11.1.0; python_version >= '3.9'",
47
+ "GitPython == 3.1.44",
48
+ "lambdapdk >= 0.1.44",
49
49
  "PyGithub == 2.5.0",
50
50
  "urllib3 >= 1.26.0", # Required for PyGithub
51
51
  "fasteners == 0.19",
52
- "fastjsonschema == 2.20.0",
52
+ "fastjsonschema == 2.21.1",
53
53
  "docker == 7.1.0",
54
54
  "importlib_metadata; python_version < '3.10'",
55
55
  "sc-surelog == 1.84.1",
56
- "orjson == 3.10.11",
56
+ "orjson == 3.10.13",
57
57
 
58
58
  # dashboard, streamlit does not support 3.9.7
59
- "streamlit == 1.40.1; python_full_version != '3.9.7'",
59
+ "streamlit == 1.40.1; python_version <= '3.8'",
60
+ "streamlit == 1.41.1; python_version >= '3.9' and python_full_version != '3.9.7'",
60
61
  "streamlit_agraph == 0.0.45; python_full_version != '3.9.7'",
61
62
  "streamlit-antd-components == 0.3.2; python_full_version != '3.9.7'",
62
63
  "streamlit_javascript == 0.1.5; python_full_version != '3.9.7'",
@@ -86,24 +87,40 @@ smake = "siliconcompiler.apps.smake:main"
86
87
  [project.entry-points."siliconcompiler.show"]
87
88
  scsetup = "siliconcompiler.utils.showtools:setup"
88
89
 
90
+ [project.entry-points."siliconcompiler.target"]
91
+ targets = "siliconcompiler.targets:get_targets"
92
+
93
+ [project.entry-points."siliconcompiler.docs"]
94
+ linkcode = "siliconcompiler.sphinx_ext:get_codeurl"
95
+ targets = "siliconcompiler.sphinx_ext:targets"
96
+ flows = "siliconcompiler.sphinx_ext:flows"
97
+ libs = "siliconcompiler.sphinx_ext:libraries"
98
+ pdks = "siliconcompiler.sphinx_ext:pdks"
99
+ tools = "siliconcompiler.sphinx_ext:tools"
100
+ apps = "siliconcompiler.sphinx_ext:apps"
101
+ checklists = "siliconcompiler.sphinx_ext:checklists"
102
+
89
103
  [project.optional-dependencies]
90
104
  test = [
91
- "pytest == 8.3.3",
105
+ "pytest == 8.3.4",
92
106
  "pytest-xdist == 3.6.1",
93
107
  "pytest-timeout == 2.3.1",
94
- "pytest-asyncio == 0.24.0",
108
+ "pytest-asyncio == 0.24.0; python_version <= '3.8'",
109
+ "pytest-asyncio == 0.25.1; python_version >= '3.9'",
95
110
  "pytest-cov == 5.0.0; python_version <= '3.8'",
96
111
  "pytest-cov == 6.0.0; python_version >= '3.9'",
97
112
  "responses == 0.25.3",
98
- "PyVirtualDisplay == 3.0",
113
+ "PyVirtualDisplay == 3.0"
114
+ ]
115
+ lint = [
99
116
  "flake8 == 7.1.1",
100
- "tclint == 0.4.2",
117
+ "tclint == 0.5.0",
101
118
  "codespell == 2.3.0"
102
119
  ]
103
120
  docs = [
104
121
  "Sphinx == 8.1.3",
105
122
  "pip-licenses == 5.0.0",
106
- "pydata-sphinx-theme == 0.16.0",
123
+ "pydata-sphinx-theme == 0.16.1",
107
124
  "sc-leflib >= 0.2.0"
108
125
  ]
109
126
  profile = [
@@ -111,7 +128,10 @@ profile = [
111
128
  ]
112
129
  examples = [
113
130
  "migen == 0.9.2",
114
- "lambdalib == 0.3.1"
131
+ "lambdalib == 0.3.2"
132
+ ]
133
+ optimizer = [
134
+ "google-vizier[jax] == 0.1.20; python_version >= '3.10'"
115
135
  ]
116
136
 
117
137
  [tool.setuptools]
@@ -147,19 +167,11 @@ exclude = [
147
167
  ]
148
168
 
149
169
  [tool.tclint.style]
150
- allow-aligned-sets = true
151
170
  line-length = 100
152
171
  indent = 4
153
172
  max-blank-lines = 1
154
173
  spaces-in-braces = true
155
174
 
156
- [[tool.tclint.fileset]]
157
- # This fileset overrides the global indent for OpenROAD scripts.
158
- paths = ["siliconcompiler/tools/openroad/scripts"]
159
-
160
- [tool.tclint.fileset.style]
161
- indent = 2
162
-
163
175
  [tool.codespell]
164
176
  skip = './build/*,*.json,*.xml,./siliconcompiler/templates/report/bootstrap.min.js,./tests/utils/test_utils.py,./tests/tools/data/klayout_pdk/interposer.drc'
165
177
  count = true
@@ -0,0 +1,43 @@
1
+ import argparse
2
+
3
+ from siliconcompiler import Chip
4
+ from siliconcompiler.tools.opensta import check_library
5
+
6
+
7
+ def main():
8
+ parser = argparse.ArgumentParser()
9
+ parser.add_argument('-target', help='Reference target', required=True)
10
+ parser.add_argument('-library', nargs='+', help='Library to check', required=True)
11
+ args = parser.parse_args()
12
+
13
+ chip = Chip('check_libs')
14
+
15
+ chip.node('check_lib', 'check', check_library)
16
+ chip.set('option', 'flow', 'check_lib')
17
+ chip.set('option', 'clean', True)
18
+
19
+ target = chip._load_module(args.target)
20
+ chip.use(target)
21
+
22
+ chip.unset('asic', 'logiclib')
23
+
24
+ for lib in args.library:
25
+ mod = chip._load_module(lib)
26
+
27
+ libraries = mod.setup()
28
+ if not isinstance(libraries, (list, tuple)):
29
+ libraries = [libraries]
30
+
31
+ for library in libraries:
32
+ if library.design.startswith('lambdalib_'):
33
+ continue
34
+ chip.use(library)
35
+ chip.add('asic', 'logiclib', library.design)
36
+
37
+ chip.run()
38
+
39
+ return 0
40
+
41
+
42
+ if __name__ == "__main__":
43
+ main()
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.28.9'
2
+ version = '0.29.1'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -0,0 +1,26 @@
1
+ from siliconcompiler.apps import sc_dashboard
2
+ from siliconcompiler.apps import sc_install
3
+ from siliconcompiler.apps import sc_issue
4
+ from siliconcompiler.apps import sc_remote
5
+ from siliconcompiler.apps import sc_server
6
+ from siliconcompiler.apps import sc_show
7
+ from siliconcompiler.apps import sc
8
+ from siliconcompiler.apps import smake
9
+
10
+
11
+ def get_apps():
12
+ '''
13
+ Returns a dict of builtin apps
14
+ '''
15
+ return {
16
+ module.__name__.split(".")[-1]: module for module in (
17
+ sc_dashboard,
18
+ sc_install,
19
+ sc_issue,
20
+ sc_remote,
21
+ sc_server,
22
+ sc_show,
23
+ sc,
24
+ smake
25
+ )
26
+ }
@@ -5,9 +5,7 @@ import sys
5
5
 
6
6
  from siliconcompiler import Chip
7
7
  from siliconcompiler import SiliconCompilerError
8
- from siliconcompiler.remote.client import cancel_job, check_progress, delete_job, \
9
- remote_ping, remote_run_loop, _remote_ping
10
- from siliconcompiler.remote.client import configure_server, configure_whitelist, configure_print
8
+ from siliconcompiler.remote.client import Client, ConfigureClient
11
9
  from siliconcompiler.scheduler import _finalize_run
12
10
  from siliconcompiler.flowgraph import _get_flowgraph_entry_nodes, _get_flowgraph_node_outputs, \
13
11
  nodes_to_execute
@@ -108,29 +106,33 @@ To delete a job, use:
108
106
 
109
107
  if args['configure']:
110
108
  if args['list']:
111
- configure_print(chip)
109
+ client = Client(chip)
110
+ client.print_configuration()
112
111
  return 0
113
112
 
114
113
  if not args['add'] and not args['remove']:
115
114
  try:
116
- configure_server(chip, server=args['server'])
115
+ client = ConfigureClient(chip)
116
+ client.configure_server(server=args['server'])
117
117
  except ValueError as e:
118
118
  chip.logger.error(e)
119
119
  return 1
120
120
  else:
121
121
  try:
122
- configure_whitelist(chip, add=args['add'], remove=args['remove'])
122
+ client = ConfigureClient(chip)
123
+ client.configure_whitelist(add=args['add'], remove=args['remove'])
123
124
  except ValueError as e:
124
125
  chip.logger.error(e)
125
126
  return 1
126
127
 
127
128
  return 0
128
129
 
130
+ client = Client(chip)
129
131
  # Main logic.
130
132
  # If no job-related options are specified, fetch and report basic info.
131
133
  # Create temporary Chip object and check on the server.
132
134
  try:
133
- remote_ping(chip)
135
+ client.check()
134
136
  except SiliconCompilerError as e:
135
137
  chip.logger.error(f'{e}')
136
138
  return 1
@@ -138,7 +140,7 @@ To delete a job, use:
138
140
  # If the -cancel flag is specified, cancel the job.
139
141
  if args['cancel']:
140
142
  try:
141
- cancel_job(chip)
143
+ client.cancel_job()
142
144
  except SiliconCompilerError as e:
143
145
  chip.logger.error(f'{e}')
144
146
  return 1
@@ -146,7 +148,7 @@ To delete a job, use:
146
148
  # If the -delete flag is specified, delete the job.
147
149
  elif args['delete']:
148
150
  try:
149
- delete_job(chip)
151
+ client.delete_job()
150
152
  except SiliconCompilerError as e:
151
153
  chip.logger.error(f'{e}')
152
154
  return 1
@@ -162,10 +164,8 @@ To delete a job, use:
162
164
  outputs = _get_flowgraph_node_outputs(chip, flow, entry_node)
163
165
  chip.set('option', 'from', list(map(lambda node: node[0], outputs)))
164
166
  # Enter the remote run loop.
165
- chip._init_logger(step='remote', index='0', in_run=True)
166
167
  try:
167
- rsp = _remote_ping(chip)
168
- remote_run_loop(chip, rsp['progress_interval'])
168
+ client._run_loop()
169
169
  except SiliconCompilerError as e:
170
170
  chip.logger.error(f'{e}')
171
171
  return 1
@@ -185,8 +185,9 @@ To delete a job, use:
185
185
  # If only a manifest is specified, make a 'check_progress/' request and report results:
186
186
  elif chip_cfg:
187
187
  try:
188
- check_progress(chip, [], {})
189
- except SiliconCompilerError as e:
188
+ info = client.check_job_status()
189
+ client._report_job_status(info)
190
+ except Exception as e:
190
191
  chip.logger.error(f'{e}')
191
192
  return 1
192
193
 
@@ -19,10 +19,10 @@ def main():
19
19
  Examples:
20
20
 
21
21
  sc-show
22
- (displays build/adder/job0/write_gds/0/outputs/adder.gds)
22
+ (displays build/adder/job0/write.gds/0/outputs/adder.gds)
23
23
 
24
24
  sc-show -design adder
25
- (displays build/adder/job0/write_gds/0/outputs/adder.gds)
25
+ (displays build/adder/job0/write.gds/0/outputs/adder.gds)
26
26
 
27
27
  sc-show -design adder -arg_step floorplan
28
28
  (displays build/adder/job0/floorplan/0/outputs/adder.def)
@@ -31,13 +31,13 @@ def main():
31
31
  (displays build/adder/job0/place/1/outputs/adder.def)
32
32
 
33
33
  sc-show -design adder -jobname rtl2gds
34
- (displays build/adder/rtl2gds/write_gds/0/outputs/adder.gds)
34
+ (displays build/adder/rtl2gds/write.gds/0/outputs/adder.gds)
35
35
 
36
36
  sc-show -cfg build/adder/rtl2gds/adder.pkg.json
37
- (displays build/adder/rtl2gds/write_gds/0/outputs/adder.gds)
37
+ (displays build/adder/rtl2gds/write.gds/0/outputs/adder.gds)
38
38
 
39
39
  sc-show -design adder -ext odb
40
- (displays build/adder/job0/write_data/0/outputs/adder.odb)
40
+ (displays build/adder/job0/write.views/0/outputs/adder.odb)
41
41
 
42
42
  sc-show build/adder/job0/route/1/outputs/adder.def
43
43
  (displays build/adder/job0/route/1/outputs/adder.def)
@@ -0,0 +1,194 @@
1
+ # Copyright 2024 Silicon Compiler Authors. All Rights Reserved.
2
+
3
+ # Standard Modules
4
+ import base64
5
+ import io
6
+ import json
7
+ import gzip
8
+ import os
9
+ import stat
10
+ import sys
11
+ import tarfile
12
+ import tempfile
13
+ import textwrap
14
+
15
+ from datetime import datetime
16
+
17
+ import siliconcompiler
18
+ from siliconcompiler.apps._common import UNSET_DESIGN
19
+ from siliconcompiler import SiliconCompilerError
20
+ from siliconcompiler import utils
21
+
22
+
23
+ def make_bytes(data):
24
+ if isinstance(data, bytes):
25
+ return data
26
+ return data.encode('utf-8')
27
+
28
+
29
+ def compress(data):
30
+ return gzip.compress(make_bytes(data))
31
+
32
+
33
+ def convert_base64(data):
34
+ return base64.b64encode(make_bytes(data))
35
+
36
+
37
+ def wrap_text(data):
38
+ if isinstance(data, bytes):
39
+ data = data.decode('utf-8')
40
+ return textwrap.wrap(data)
41
+
42
+
43
+ ###########################
44
+ def main():
45
+ progname = "summarize"
46
+ description = """
47
+ ------------------------------------------------------------
48
+ Utility script to print job record information from a manifest
49
+ needed to replay that manifest.
50
+ ------------------------------------------------------------
51
+ """
52
+ # Create a base chip class.
53
+ chip = siliconcompiler.Chip(UNSET_DESIGN)
54
+
55
+ # Read command-line inputs and generate Chip objects to run the flow on.
56
+ try:
57
+ file_arg = {
58
+ 'metavar': '<file>',
59
+ 'help': 'Path to generate replay file to.',
60
+ 'default': 'replay.sh',
61
+ 'sc_print': True
62
+ }
63
+ args = chip.create_cmdline(
64
+ progname,
65
+ description=description,
66
+ switchlist=['-cfg',
67
+ '-jobname',
68
+ '-loglevel'],
69
+ additional_args={
70
+ '-file': file_arg
71
+ })
72
+ except SiliconCompilerError:
73
+ return 1
74
+ except Exception as e:
75
+ chip.logger.error(e)
76
+ return 1
77
+
78
+ design = chip.get('design')
79
+ if design == UNSET_DESIGN:
80
+ chip.logger.error('Design not loaded')
81
+ return 1
82
+
83
+ # Print Job Summary
84
+ jobname = chip.get('option', 'jobname')
85
+ pythonpackages = chip.get('record', 'pythonpackage', job=jobname)
86
+
87
+ pythonversion = set()
88
+ nodes = set()
89
+ for version, step, index in chip.schema._getvals('history', jobname, 'record', 'pythonversion'):
90
+ pythonversion.add(version)
91
+ nodes.add((step, index))
92
+
93
+ if len(pythonversion) > 1:
94
+ chip.logger.warning(f"More than one python version detected: {', '.join(pythonversion)}")
95
+ pythonversion = list(pythonversion)[0]
96
+
97
+ tools = {}
98
+ tool_versions = []
99
+ for step, index in nodes:
100
+ toolpath = chip.get('record', 'toolpath', job=jobname, step=step, index=index)
101
+ toolversion = chip.get('record', 'toolversion', job=jobname, step=step, index=index)
102
+
103
+ if toolpath is None:
104
+ continue
105
+
106
+ tools.setdefault(toolpath, set()).add(toolversion)
107
+ if toolversion:
108
+ tool = chip.get('flowgraph', chip.get('option', 'flow'), step, index, 'tool')
109
+ tool_versions.append(
110
+ ((step, index), tool, toolversion)
111
+ )
112
+
113
+ print("SUMMARY :")
114
+ print(f"design : {chip.design}")
115
+ print(f"pythonversion : {pythonversion}")
116
+
117
+ print("Python packages requires:")
118
+ for pkg in sorted(pythonpackages):
119
+ print(f" {pkg}")
120
+
121
+ print("Tool requirements:")
122
+ tool_len = max([len(os.path.basename(tool)) for tool, _ in tools.items()])
123
+ for tool, version in tools.items():
124
+ print(f" {os.path.basename(tool):<{tool_len}}: {', '.join(version)}")
125
+
126
+ path = os.path.abspath(args['file'])
127
+ os.makedirs(os.path.dirname(path), exist_ok=True)
128
+
129
+ starttimes = set()
130
+ for starttime, step, index in chip.schema._getvals('history', jobname, 'record', 'starttime'):
131
+ starttimes.add(datetime.strptime(starttime, '%Y-%m-%d %H:%M:%S'))
132
+ starttime = min(starttimes).strftime('%Y-%m-%d %H:%M:%S')
133
+
134
+ with io.StringIO() as fd:
135
+ fd.write(utils.get_file_template('replay/requirements.txt').render(
136
+ design=chip.design,
137
+ jobname=jobname,
138
+ date=starttime,
139
+ pkgs=pythonpackages
140
+ ))
141
+ fd.flush()
142
+ requirements_file = fd.getvalue()
143
+
144
+ with tempfile.TemporaryDirectory() as collect:
145
+ chip.collect(directory=collect, verbose=True, exclude_packages=['siliconcompiler'])
146
+
147
+ with io.BytesIO() as fd:
148
+ with tarfile.open(fileobj=fd, mode='w:gz') as tar:
149
+ tar.add(collect, arcname='')
150
+
151
+ fd.flush()
152
+ collect_files = convert_base64(fd.getvalue())
153
+
154
+ with io.StringIO() as fd:
155
+ fd.write(utils.get_file_template('replay/replay.py.j2').render(
156
+ design=chip.design,
157
+ jobname=jobname,
158
+ date=starttime,
159
+ src_file=wrap_text(collect_files),
160
+ tool_versions=sorted(tool_versions)
161
+ ))
162
+ fd.flush()
163
+ script = convert_base64(compress(fd.getvalue()))
164
+
165
+ manifest = convert_base64(compress(json.dumps(chip.schema.cfg, indent=2)))
166
+
167
+ tool_info = []
168
+ for tool, version in tools.items():
169
+ tool_info.append(f"{os.path.basename(tool):<{tool_len}}: {', '.join(version)}")
170
+
171
+ description = f"Replay for {chip.design} / {jobname}\nRun on: {starttime}"
172
+
173
+ with open(path, 'w', encoding='utf-8') as wf:
174
+ wf.write(utils.get_file_template('replay/setup.sh').render(
175
+ design=chip.design,
176
+ jobname=jobname,
177
+ date=starttime,
178
+ description=description,
179
+ pythonversion=pythonversion,
180
+ requirements=requirements_file.splitlines(),
181
+ script=wrap_text(script),
182
+ manifest=wrap_text(manifest),
183
+ tools=tool_info
184
+ ))
185
+
186
+ permissions = stat.S_IMODE(os.lstat(path).st_mode)
187
+ os.chmod(path, permissions | stat.S_IXUSR)
188
+
189
+ return 0
190
+
191
+
192
+ #########################
193
+ if __name__ == "__main__":
194
+ sys.exit(main())
@@ -0,0 +1,12 @@
1
+ from siliconcompiler.checklists import oh_tapeout
2
+
3
+
4
+ def get_checklists():
5
+ '''
6
+ Returns a dict of builtin checklists
7
+ '''
8
+ return {
9
+ module.__name__.split(".")[-1]: module for module in (
10
+ oh_tapeout,
11
+ )
12
+ }