siliconcompiler 0.32.0__tar.gz → 0.32.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 (490) hide show
  1. siliconcompiler-0.32.2/.dockerignore +4 -0
  2. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/Changes +23 -0
  3. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/PKG-INFO +12 -9
  4. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/pyproject.toml +11 -9
  5. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/_metadata.py +1 -1
  6. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/_common.py +23 -6
  7. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_dashboard.py +7 -1
  8. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_install.py +13 -5
  9. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_remote.py +2 -1
  10. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_show.py +6 -0
  11. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/core.py +34 -16
  12. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/fpgas/lattice_ice40.py +6 -16
  13. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/package/__init__.py +11 -55
  14. siliconcompiler-0.32.2/siliconcompiler/package/github.py +124 -0
  15. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/package/https.py +6 -0
  16. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/components/__init__.py +2 -1
  17. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/components/flowgraph.py +3 -0
  18. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/utils/__init__.py +5 -2
  19. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/utils.py +3 -0
  20. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/__init__.py +37 -8
  21. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/docker_runner.py +2 -1
  22. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/schema_obj.py +3 -2
  23. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/utils.py +0 -3
  24. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/dynamicgen.py +11 -11
  25. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/fpgaflow_demo.py +0 -2
  26. siliconcompiler-0.32.2/siliconcompiler/templates/tcl/manifest.tcl.j2 +23 -0
  27. siliconcompiler-0.32.0/siliconcompiler/templates/tcl/manifest.tcl.j2 → siliconcompiler-0.32.2/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +17 -30
  28. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/_apr.py +3 -0
  29. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +53 -7
  30. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +19 -1
  31. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +16 -5
  32. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/slang/__init__.py +7 -8
  33. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/sv2v/sv2v.py +4 -1
  34. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/__init__.py +4 -36
  35. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/lec.py +3 -4
  36. siliconcompiler-0.32.0/siliconcompiler/tools/yosys/syn_asic.tcl → siliconcompiler-0.32.2/siliconcompiler/tools/yosys/sc_synth_asic.tcl +79 -0
  37. siliconcompiler-0.32.0/siliconcompiler/tools/yosys/syn_fpga.tcl → siliconcompiler-0.32.2/siliconcompiler/tools/yosys/sc_synth_fpga.tcl +78 -0
  38. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/syn_asic.py +26 -10
  39. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/syn_fpga.py +23 -16
  40. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/_tools.json +18 -9
  41. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -1
  42. siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9/install-vpr.sh +29 -0
  43. siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +59 -0
  44. siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +59 -0
  45. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-bluespec.sh +25 -2
  46. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-ghdl.sh +2 -2
  47. siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +59 -0
  48. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-ghdl.sh +2 -2
  49. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -1
  50. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +1 -1
  51. siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +59 -0
  52. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/__init__.py +9 -15
  53. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/logging.py +1 -1
  54. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/PKG-INFO +12 -9
  55. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/SOURCES.txt +9 -9
  56. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/entry_points.txt +1 -0
  57. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/requires.txt +9 -7
  58. siliconcompiler-0.32.0/.dockerignore +0 -4
  59. siliconcompiler-0.32.0/siliconcompiler/fpgas/vpr_example.py +0 -116
  60. siliconcompiler-0.32.0/siliconcompiler/tools/yosys/sc_syn.tcl +0 -87
  61. siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -23
  62. siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -22
  63. siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -25
  64. siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -17
  65. siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -22
  66. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.flake8 +0 -0
  67. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.gitattributes +0 -0
  68. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.gitignore +0 -0
  69. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.readthedocs.yaml +0 -0
  70. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/CONTRIBUTING.md +0 -0
  71. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/LICENSE +0 -0
  72. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/MANIFEST.in +0 -0
  73. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/README.md +0 -0
  74. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/SECURITY.md +0 -0
  75. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/.gitignore +0 -0
  76. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/check_library.py +0 -0
  77. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/profile_sc.py +0 -0
  78. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/report_library.py +0 -0
  79. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/setup.cfg +0 -0
  80. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/__init__.py +0 -0
  81. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/__main__.py +0 -0
  82. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/_common.py +0 -0
  83. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/__init__.py +0 -0
  84. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc.py +0 -0
  85. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_issue.py +0 -0
  86. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_server.py +0 -0
  87. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/smake.py +0 -0
  88. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/utils/replay.py +0 -0
  89. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/utils/summarize.py +0 -0
  90. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/checklists/__init__.py +0 -0
  91. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  92. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  93. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  94. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  95. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/__init__.py +0 -0
  96. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/heartbeat.v +0 -0
  97. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/logo.png +0 -0
  98. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flowgraph.py +0 -0
  99. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/__init__.py +0 -0
  100. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/_common.py +0 -0
  101. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/asicflow.py +0 -0
  102. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/asictopflow.py +0 -0
  103. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/drcflow.py +0 -0
  104. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/dvflow.py +0 -0
  105. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/fpgaflow.py +0 -0
  106. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  107. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/interposerflow.py +0 -0
  108. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/lintflow.py +0 -0
  109. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/screenshotflow.py +0 -0
  110. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/showflow.py +0 -0
  111. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/signoffflow.py +0 -0
  112. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/synflow.py +0 -0
  113. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/fpgas/__init__.py +0 -0
  114. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/issue.py +0 -0
  115. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/libs/__init__.py +0 -0
  116. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/optimizer/__init__.py +0 -0
  117. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/optimizer/vizier.py +0 -0
  118. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/package/git.py +0 -0
  119. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/pdks/__init__.py +0 -0
  120. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/__init__.py +0 -0
  121. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/client.py +0 -0
  122. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/schema.py +0 -0
  123. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server.py +0 -0
  124. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  125. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  126. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  127. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  128. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  129. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  130. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  131. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  132. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  133. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  134. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  135. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  136. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  137. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  138. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  139. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/__init__.py +0 -0
  140. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/__init__.py +0 -0
  141. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/components/graph.py +0 -0
  142. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
  143. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
  144. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
  145. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
  146. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  147. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/state.py +0 -0
  148. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
  149. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/viewer.py +0 -0
  150. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/html_report.py +0 -0
  151. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/report.py +0 -0
  152. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/summary_image.py +0 -0
  153. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/summary_table.py +0 -0
  154. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/run_node.py +0 -0
  155. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/send_messages.py +0 -0
  156. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/slurm.py +0 -0
  157. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  158. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  159. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/__init__.py +0 -0
  160. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/schema_cfg.py +0 -0
  161. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/__init__.py +0 -0
  162. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
  163. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/utils.py +0 -0
  164. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/__init__.py +0 -0
  165. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/asap7_demo.py +0 -0
  166. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/asic_demo.py +0 -0
  167. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  168. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/gf180_demo.py +0 -0
  169. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/ihp130_demo.py +0 -0
  170. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/interposer_demo.py +0 -0
  171. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/skywater130_demo.py +0 -0
  172. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/__init__.py +0 -0
  173. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/email/__init__.py +0 -0
  174. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/email/general.j2 +0 -0
  175. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/email/summary.j2 +0 -0
  176. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/issue/README.txt +0 -0
  177. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/issue/__init__.py +0 -0
  178. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/issue/run.sh +0 -0
  179. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
  180. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/replay.sh.j2 +0 -0
  181. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/requirements.txt +0 -0
  182. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/setup.sh +0 -0
  183. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/__init__.py +0 -0
  184. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  185. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  186. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  187. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  188. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/slurm/__init__.py +0 -0
  189. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/slurm/run.sh +0 -0
  190. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/tcl/__init__.py +0 -0
  191. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/__init__.py +0 -0
  192. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/__init__.py +0 -0
  193. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/asic.py +0 -0
  194. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/asic_clock.py +0 -0
  195. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  196. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  197. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  198. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  199. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bambu/__init__.py +0 -0
  200. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bambu/convert.py +0 -0
  201. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  202. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bluespec/convert.py +0 -0
  203. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/__init__.py +0 -0
  204. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/_common.py +0 -0
  205. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/builtin.py +0 -0
  206. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/concatenate.py +0 -0
  207. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/join.py +0 -0
  208. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/maximum.py +0 -0
  209. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/minimum.py +0 -0
  210. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/mux.py +0 -0
  211. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/nop.py +0 -0
  212. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/verify.py +0 -0
  213. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  214. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/__init__.py +0 -0
  215. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/build.sbt +0 -0
  216. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/chisel.py +0 -0
  217. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/convert.py +0 -0
  218. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/execute/__init__.py +0 -0
  219. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/execute/exec_input.py +0 -0
  220. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/execute/execute.py +0 -0
  221. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  222. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  223. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  224. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  225. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/ghdl/convert.py +0 -0
  226. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
  227. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/graphviz/__init__.py +0 -0
  228. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
  229. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/graphviz/show.py +0 -0
  230. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
  231. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
  232. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/gtkwave/show.py +0 -0
  233. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icarus/__init__.py +0 -0
  234. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icarus/compile.py +0 -0
  235. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icarus/icarus.py +0 -0
  236. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icepack/__init__.py +0 -0
  237. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  238. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icepack/icepack.py +0 -0
  239. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/__init__.py +0 -0
  240. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  241. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/drc.py +0 -0
  242. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/export.py +0 -0
  243. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout.py +0 -0
  244. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
  245. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
  246. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
  247. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
  248. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
  249. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/operations.py +0 -0
  250. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  251. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/show.py +0 -0
  252. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/__init__.py +0 -0
  253. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/drc.py +0 -0
  254. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/extspice.py +0 -0
  255. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/magic.py +0 -0
  256. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  257. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  258. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  259. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/montage/__init__.py +0 -0
  260. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/montage/montage.py +0 -0
  261. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/montage/tile.py +0 -0
  262. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/__init__.py +0 -0
  263. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  264. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/lvs.py +0 -0
  265. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/netgen.py +0 -0
  266. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  267. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  268. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  269. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  270. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/__init__.py +0 -0
  271. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  272. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  273. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  274. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  275. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  276. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  277. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
  278. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/global_placement.py +0 -0
  279. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/global_route.py +0 -0
  280. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
  281. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  282. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/metrics.py +0 -0
  283. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  284. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/power_grid.py +0 -0
  285. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  286. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  287. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
  288. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  289. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  290. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  291. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  292. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  293. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
  294. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
  295. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
  296. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
  297. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
  298. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
  299. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
  300. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
  301. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
  302. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
  303. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
  304. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
  305. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
  306. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
  307. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
  308. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
  309. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  310. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  311. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
  312. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
  313. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
  314. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  315. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
  316. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
  317. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
  318. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  319. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  320. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  321. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
  322. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
  323. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/show.py +0 -0
  324. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  325. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  326. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/write_data.py +0 -0
  327. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/__init__.py +0 -0
  328. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/check_library.py +0 -0
  329. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  330. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  331. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
  332. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  333. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
  334. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
  335. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/timing.py +0 -0
  336. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/slang/elaborate.py +0 -0
  337. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/slang/lint.py +0 -0
  338. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/__init__.py +0 -0
  339. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/parse.py +0 -0
  340. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  341. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  342. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  343. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/sv2v/convert.py +0 -0
  344. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/template/__init__.py +0 -0
  345. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/template/template.py +0 -0
  346. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/__init__.py +0 -0
  347. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/compile.py +0 -0
  348. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/lint.py +0 -0
  349. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/parse.py +0 -0
  350. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/verilator.py +0 -0
  351. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/__init__.py +0 -0
  352. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  353. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/place.py +0 -0
  354. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/route.py +0 -0
  355. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  356. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  357. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  358. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  359. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  360. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  361. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  362. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/vivado.py +0 -0
  363. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/__init__.py +0 -0
  364. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  365. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  366. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/place.py +0 -0
  367. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/route.py +0 -0
  368. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  369. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/show.py +0 -0
  370. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/vpr.py +0 -0
  371. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xdm/__init__.py +0 -0
  372. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xdm/convert.py +0 -0
  373. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xyce/__init__.py +0 -0
  374. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xyce/simulate.py +0 -0
  375. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  376. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/procs.tcl +0 -0
  377. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
  378. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
  379. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/screenshot.py +0 -0
  380. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  381. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  382. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  383. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  384. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  385. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/_tools.py +0 -0
  386. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  387. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  388. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  389. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  390. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  391. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  392. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
  393. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  394. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
  395. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  396. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  397. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
  398. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  399. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  400. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  401. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  402. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  403. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  404. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  405. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
  406. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
  407. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  408. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
  409. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  410. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  411. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  412. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
  413. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9}/install-yosys-moosic.sh +0 -0
  414. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9}/install-yosys-slang.sh +0 -0
  415. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9}/install-yosys.sh +0 -0
  416. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  417. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  418. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  419. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  420. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
  421. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  422. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  423. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  424. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  425. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  426. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  427. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  428. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  429. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
  430. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  431. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
  432. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
  433. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  434. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  435. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
  436. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  437. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
  438. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20}/install-yosys-moosic.sh +0 -0
  439. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
  440. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  441. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  442. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
  443. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  444. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  445. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  446. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  447. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  448. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  449. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  450. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  451. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
  452. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  453. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
  454. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
  455. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  456. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  457. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  458. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  459. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
  460. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-yosys-moosic.sh +0 -0
  461. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-yosys-slang.sh +0 -0
  462. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  463. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
  464. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-bluespec.sh +0 -0
  465. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  466. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
  467. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  468. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  469. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  470. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  471. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  472. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  473. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
  474. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  475. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
  476. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
  477. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  478. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  479. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  480. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  481. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
  482. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-yosys-moosic.sh +0 -0
  483. {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-yosys-slang.sh +0 -0
  484. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  485. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/units.py +0 -0
  486. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/use.py +0 -0
  487. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/asic.py +0 -0
  488. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/showtools.py +0 -0
  489. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  490. {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -0,0 +1,4 @@
1
+ build/
2
+ .venv/
3
+ /setup/docker/
4
+ /docs/
@@ -8,6 +8,29 @@ 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.32.2 (2025-03-31)
12
+ =========================================
13
+
14
+ **Minor:**
15
+
16
+ * Expanded tool builds to support arm architectures, where possible.
17
+ * Added tool group descriptions to `sc-install -help`.
18
+
19
+ * Tools:
20
+
21
+ * openroad: added repair design option to repair timing to reduce number of design rule violations.
22
+ * yosys: split the FPGA and ASIC synthesis flows.
23
+
24
+
25
+ SiliconCompiler 0.32.1 (2025-03-13)
26
+ =========================================
27
+
28
+ **Minor:**
29
+
30
+ * Added github specific url resolver for downloading artifacts from github.
31
+ * Added support to specify step and index for `sc-show` and `sc-dashboard`.
32
+
33
+
11
34
  SiliconCompiler 0.32.0 (2025-03-11)
12
35
  =========================================
13
36
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.32.0
3
+ Version: 0.32.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
@@ -26,7 +26,7 @@ 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.13; python_version >= "3.9"
29
+ Requires-Dist: aiohttp==3.11.14; 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
@@ -45,10 +45,11 @@ Requires-Dist: fasteners==0.19
45
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
- Requires-Dist: orjson==3.10.15
48
+ Requires-Dist: orjson==3.10.15; python_version <= "3.8"
49
+ Requires-Dist: orjson==3.10.16; python_version >= "3.9"
49
50
  Requires-Dist: pyslang==8.0.0
50
51
  Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
51
- Requires-Dist: streamlit==1.43.1; python_version >= "3.9" and python_full_version != "3.9.7"
52
+ Requires-Dist: streamlit==1.44.0; python_version >= "3.9" and python_full_version != "3.9.7"
52
53
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
53
54
  Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
54
55
  Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
@@ -58,14 +59,15 @@ Requires-Dist: pytest==8.3.5; extra == "test"
58
59
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
59
60
  Requires-Dist: pytest-timeout==2.3.1; extra == "test"
60
61
  Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
61
- Requires-Dist: pytest-asyncio==0.25.3; python_version >= "3.9" and extra == "test"
62
+ Requires-Dist: pytest-asyncio==0.26.0; python_version >= "3.9" and extra == "test"
62
63
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
63
64
  Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
64
- Requires-Dist: responses==0.25.6; extra == "test"
65
+ Requires-Dist: responses==0.25.7; extra == "test"
65
66
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
67
+ Requires-Dist: logiklib==0.1.0; extra == "test"
66
68
  Provides-Extra: lint
67
- Requires-Dist: flake8==7.1.2; extra == "lint"
68
- Requires-Dist: tclint==0.5.3; extra == "lint"
69
+ Requires-Dist: flake8==7.2.0; extra == "lint"
70
+ Requires-Dist: tclint==0.5.4; extra == "lint"
69
71
  Requires-Dist: codespell==2.4.1; extra == "lint"
70
72
  Provides-Extra: docs
71
73
  Requires-Dist: Sphinx==8.2.3; extra == "docs"
@@ -76,6 +78,7 @@ Provides-Extra: profile
76
78
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
77
79
  Provides-Extra: optimizer
78
80
  Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
81
+ Dynamic: license-file
79
82
 
80
83
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
81
84
 
@@ -33,7 +33,7 @@ classifiers = [
33
33
  requires-python = ">= 3.8"
34
34
  dependencies = [
35
35
  "aiohttp == 3.10.11; python_version <= '3.8'",
36
- "aiohttp == 3.11.13; python_version >= '3.9'",
36
+ "aiohttp == 3.11.14; python_version >= '3.9'",
37
37
  "requests == 2.32.3",
38
38
  "PyYAML == 6.0.2",
39
39
  "pandas >= 1.1.5",
@@ -52,12 +52,13 @@ dependencies = [
52
52
  "fastjsonschema == 2.21.1",
53
53
  "docker == 7.1.0",
54
54
  "importlib_metadata; python_version < '3.10'",
55
- "orjson == 3.10.15",
55
+ "orjson == 3.10.15; python_version <= '3.8'",
56
+ "orjson == 3.10.16; python_version >= '3.9'",
56
57
  "pyslang == 8.0.0",
57
58
 
58
59
  # dashboard, streamlit does not support 3.9.7
59
60
  "streamlit == 1.40.1; python_version <= '3.8'",
60
- "streamlit == 1.43.1; python_version >= '3.9' and python_full_version != '3.9.7'",
61
+ "streamlit == 1.44.0; python_version >= '3.9' and python_full_version != '3.9.7'",
61
62
  "streamlit_agraph == 0.0.45; python_full_version != '3.9.7'",
62
63
  "streamlit-antd-components == 0.3.2; python_full_version != '3.9.7'",
63
64
  "streamlit_javascript == 0.1.5; python_full_version != '3.9.7'",
@@ -93,6 +94,7 @@ targets = "siliconcompiler.targets:get_targets"
93
94
  [project.entry-points."siliconcompiler.path_resolver"]
94
95
  https = "siliconcompiler.package.https:get_resolver"
95
96
  git = "siliconcompiler.package.git:get_resolver"
97
+ github = "siliconcompiler.package.github:get_resolver"
96
98
 
97
99
  [project.entry-points."siliconcompiler.docs"]
98
100
  linkcode = "siliconcompiler.sphinx_ext:get_codeurl"
@@ -110,15 +112,16 @@ test = [
110
112
  "pytest-xdist == 3.6.1",
111
113
  "pytest-timeout == 2.3.1",
112
114
  "pytest-asyncio == 0.24.0; python_version <= '3.8'",
113
- "pytest-asyncio == 0.25.3; python_version >= '3.9'",
115
+ "pytest-asyncio == 0.26.0; python_version >= '3.9'",
114
116
  "pytest-cov == 5.0.0; python_version <= '3.8'",
115
117
  "pytest-cov == 6.0.0; python_version >= '3.9'",
116
- "responses == 0.25.6",
117
- "PyVirtualDisplay == 3.0"
118
+ "responses == 0.25.7",
119
+ "PyVirtualDisplay == 3.0",
120
+ "logiklib == 0.1.0"
118
121
  ]
119
122
  lint = [
120
- "flake8 == 7.1.2",
121
- "tclint == 0.5.3",
123
+ "flake8 == 7.2.0",
124
+ "tclint == 0.5.4",
122
125
  "codespell == 2.4.1"
123
126
  ]
124
127
  docs = [
@@ -148,7 +151,6 @@ markers = [
148
151
  "eda: this test requires EDA tools installed to run. By default these tests will be run nightly, not on push.",
149
152
  "quick: always run this test on push, even if it requires EDA tools.",
150
153
  "nostrict: don't automatically set [option, strict] parameter for Chip objects in this test.",
151
- "nolocal: don't use the local data for siliconcompiler_data.",
152
154
  "docker: test requires docker",
153
155
  ]
154
156
  testpaths = [
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.32.0'
2
+ version = '0.32.2'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -98,11 +98,28 @@ def pick_manifest(chip, src_file=None):
98
98
  if chip.get('option', 'jobname') not in all_manifests[chip.design]:
99
99
  jobname = list(all_manifests[chip.design].keys())[0]
100
100
 
101
+ step, index = chip.get('arg', 'step'), chip.get('arg', 'index')
102
+ if step and not index:
103
+ all_nodes = list(all_manifests[chip.design][jobname].keys())
104
+ try:
105
+ all_nodes.remove((None, None))
106
+ except ValueError:
107
+ pass
108
+ for found_step, found_index in sorted(all_nodes):
109
+ if found_step == step:
110
+ index = found_index
111
+ if index is None:
112
+ index = '0'
113
+ if step and index:
114
+ if (step, index) in all_manifests[chip.design][jobname]:
115
+ return all_manifests[chip.design][jobname][(step, index)]
116
+ else:
117
+ chip.logger.error(f'{step}{index} is not a valid node.')
118
+ return None
119
+
101
120
  if (None, None) in all_manifests[chip.design][jobname]:
102
- manifest = all_manifests[chip.design][jobname][None, None]
103
- else:
104
- # pick newest manifest
105
- manifest = list(sorted(all_manifests[chip.design][jobname].values(),
106
- key=lambda file: os.stat(file).st_ctime))[-1]
121
+ return all_manifests[chip.design][jobname][None, None]
107
122
 
108
- return manifest
123
+ # pick newest manifest
124
+ return list(sorted(all_manifests[chip.design][jobname].values(),
125
+ key=lambda file: os.stat(file).st_ctime))[-1]
@@ -63,6 +63,8 @@ To include another chip object to compare to:
63
63
  if manifest:
64
64
  chip.logger.info(f'Loading manifest: {manifest}')
65
65
  chip.read_manifest(manifest)
66
+ else:
67
+ manifest = chip.get('option', 'cfg')
66
68
 
67
69
  # Error checking
68
70
  design = chip.get('design')
@@ -70,6 +72,10 @@ To include another chip object to compare to:
70
72
  chip.logger.error('Design not loaded')
71
73
  return 1
72
74
 
75
+ if not manifest:
76
+ chip.logger.error('Unable to determine job manifest')
77
+ return 2
78
+
73
79
  graph_chips = []
74
80
  if switches['graph_cfg']:
75
81
  for i, name_and_file_path in enumerate(switches['graph_cfg']):
@@ -86,7 +92,7 @@ To include another chip object to compare to:
86
92
  raise ValueError(('graph_cfg accepts a max of 2 values, you supplied'
87
93
  f' {args} in "-graph_cfg {name_and_file_path}"'))
88
94
  if not os.path.isfile(file_path):
89
- raise ValueError(f'not a valid file path : {file_path}')
95
+ raise ValueError(f'not a valid file path: {file_path}')
90
96
  graph_chip = siliconcompiler.core.Chip(design='')
91
97
  graph_chip.read_manifest(file_path)
92
98
  graph_chips.append({
@@ -139,8 +139,8 @@ def _get_tools_list():
139
139
 
140
140
  def _recommended_tool_groups(tools):
141
141
  groups = {
142
- "asic": {"surelog", "sv2v", "yosys", "openroad", "klayout"},
143
- "fpga": {"surelog", "sv2v", "yosys", "vpr"},
142
+ "asic": {"sv2v", "yosys", "openroad", "klayout"},
143
+ "fpga": {"sv2v", "yosys", "vpr"},
144
144
  "digital-simulation": {"verilator", "icarus", "gtkwave"},
145
145
  "analog-simulation": {"xyce"}
146
146
  }
@@ -162,7 +162,13 @@ class HelpFormatter(argparse.ArgumentDefaultsHelpFormatter, argparse.RawDescript
162
162
 
163
163
  def main():
164
164
  progname = "sc-install"
165
- description = """
165
+
166
+ tools = _get_tools_list()
167
+ group_desc = "\n".join(
168
+ [f" {grp}: {', '.join(grp_tools)}"
169
+ for grp, grp_tools in _recommended_tool_groups(tools).items()])
170
+
171
+ description = f"""
166
172
  -----------------------------------------------------------
167
173
  SC app install supported tools.
168
174
 
@@ -187,14 +193,16 @@ To show the install script:
187
193
  To system debugging information (this should only be used to debug):
188
194
  sc-install -debug_machine
189
195
  -----------------------------------------------------------
196
+ Tool groups:
197
+ {group_desc}
198
+ -----------------------------------------------------------
190
199
  """
200
+
191
201
  parser = argparse.ArgumentParser(
192
202
  prog=progname,
193
203
  description=description,
194
204
  formatter_class=HelpFormatter)
195
205
 
196
- tools = _get_tools_list()
197
-
198
206
  if _get_os_name() is None:
199
207
  print("Unsupported operating system", file=sys.stderr)
200
208
  print_machine_info()
@@ -97,8 +97,9 @@ To delete a job, use:
97
97
  chip.logger.error(f'Error: {", ".join(["-"+e for e in exclusive])} are mutually exclusive')
98
98
  return 1
99
99
  chip_cfg = chip.get('option', 'cfg')
100
- if chip_cfg and not any([args[arg] for arg in cfg_only]):
100
+ if not chip_cfg and any([args[arg] for arg in cfg_only]):
101
101
  chip.logger.error(f'Error: -cfg is required for {", ".join(["-"+e for e in cfg_only])}')
102
+ return 2
102
103
  if any([args[arg] for arg in cfg_only]) and args['server']:
103
104
  chip.logger.error('Error: -server cannot be specified with '
104
105
  f'{", ".join(["-"+e for e in cfg_only])}')
@@ -111,6 +111,8 @@ def main():
111
111
  if manifest:
112
112
  chip.logger.info(f'Loading manifest: {manifest}')
113
113
  chip.read_manifest(manifest)
114
+ else:
115
+ manifest = chip.get('option', 'cfg')
114
116
 
115
117
  # Error checking
116
118
  design = chip.get('design')
@@ -120,6 +122,10 @@ def main():
120
122
  '-cfg, -design, and/or inputs.')
121
123
  return 1
122
124
 
125
+ if not manifest:
126
+ chip.logger.error('Unable to determine job manifest')
127
+ return 2
128
+
123
129
  # Read in file
124
130
  if filename:
125
131
  chip.logger.info(f"Displaying {filename}")
@@ -203,13 +203,11 @@ class Chip:
203
203
 
204
204
  def _add_file_logger(self, filename):
205
205
  # Add a file handler for logging
206
- logformat = self.logger.handlers[0].formatter
207
-
208
206
  file_handler = logging.FileHandler(filename)
209
- file_handler.setFormatter(logformat)
210
-
211
207
  self.logger.addHandler(file_handler)
212
208
 
209
+ self._init_logger_formats()
210
+
213
211
  return file_handler
214
212
 
215
213
  ###########################################################################
@@ -227,13 +225,35 @@ class Chip:
227
225
  else:
228
226
  in_run = False
229
227
 
228
+ # Save in run flag
229
+ self.logger._in_run = in_run
230
+ self.logger._in_step = step
231
+ self.logger._in_index = index
232
+
233
+ self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
234
+
235
+ if not self.logger.hasHandlers():
236
+ stream_handler = logging.StreamHandler(stream=sys.stdout)
237
+ # Save console handler
238
+ self.logger._console = stream_handler
239
+ self.logger.addHandler(stream_handler)
240
+
241
+ self.logger._support_color = ColorStreamFormatter.supports_color(stream_handler)
242
+
243
+ self._init_logger_formats(loglevel=loglevel)
244
+
245
+ def _init_logger_formats(self, loglevel=None):
246
+ if not loglevel:
247
+ self.schema.get('option', 'loglevel',
248
+ step=self.logger._in_step, index=self.logger._in_index)
249
+
230
250
  level_format = '%(levelname)-7s'
231
251
  log_format = [level_format]
232
252
  if loglevel == 'debug':
233
253
  log_format.append('%(funcName)-10s')
234
254
  log_format.append('%(lineno)-4s')
235
255
 
236
- if in_run:
256
+ if self.logger._in_run:
237
257
  max_column_width = 20
238
258
  # Figure out how wide to make step and index fields
239
259
  max_step_len = 1
@@ -249,6 +269,9 @@ class Chip:
249
269
 
250
270
  jobname = self.get('option', 'jobname')
251
271
 
272
+ step = self.logger._in_step
273
+ index = self.logger._in_index
274
+
252
275
  if step is None:
253
276
  step = '-' * max(max_step_len // 4, 1)
254
277
  if index is None:
@@ -266,19 +289,13 @@ class Chip:
266
289
  log_format.append('%(message)s')
267
290
  stream_logformat = log_formatprefix + ' | '.join(log_format[1:])
268
291
 
269
- if not self.logger.hasHandlers():
270
- stream_handler = logging.StreamHandler(stream=sys.stdout)
271
- self.logger.addHandler(stream_handler)
272
-
273
- for handler in self.logger.handlers:
274
- if ColorStreamFormatter.supports_color(handler):
292
+ for handler in self.logger.handlers.copy():
293
+ if handler == self.logger._console and self.logger._support_color:
275
294
  formatter = ColorStreamFormatter(log_formatprefix, level_format, stream_logformat)
276
295
  else:
277
296
  formatter = LoggerFormatter(log_formatprefix, level_format, stream_logformat)
278
297
  handler.setFormatter(formatter)
279
298
 
280
- self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
281
-
282
299
  ###########################################################################
283
300
  def _init_codecs(self):
284
301
  # Custom error handlers used to provide warnings when invalid characters
@@ -3239,9 +3256,10 @@ class Chip:
3239
3256
  if sc_step and sc_index:
3240
3257
  search_nodes.append((sc_step, sc_index))
3241
3258
  elif sc_step:
3242
- for check_step, check_index in nodes_to_execute(self, flow):
3243
- if sc_step == check_step:
3244
- search_nodes.append((check_step, check_index))
3259
+ if flow is not None:
3260
+ for check_step, check_index in nodes_to_execute(self, flow):
3261
+ if sc_step == check_step:
3262
+ search_nodes.append((check_step, check_index))
3245
3263
  else:
3246
3264
  if flow is not None:
3247
3265
  for nodes in _get_flowgraph_execution_order(self,
@@ -1,5 +1,4 @@
1
- import siliconcompiler
2
- from siliconcompiler.utils import register_sc_data_source
1
+ from siliconcompiler import Chip, FPGA
3
2
 
4
3
 
5
4
  ####################################################
@@ -13,22 +12,13 @@ def setup():
13
12
  yosys + nextpnr
14
13
  '''
15
14
 
16
- vendor = 'lattice'
17
-
18
- lut_size = '4'
19
-
20
15
  all_fpgas = []
21
16
 
22
- all_part_names = [
23
- "ice40up5k-sg48",
24
- ]
25
-
26
- for part_name in all_part_names:
27
- fpga = siliconcompiler.FPGA(part_name, package='siliconcompiler_data')
28
- register_sc_data_source(fpga)
17
+ for part_name in ("ice40up5k-sg48",):
18
+ fpga = FPGA(part_name)
29
19
 
30
- fpga.set('fpga', part_name, 'vendor', vendor)
31
- fpga.set('fpga', part_name, 'lutsize', lut_size)
20
+ fpga.set('fpga', part_name, 'vendor', 'lattice')
21
+ fpga.set('fpga', part_name, 'lutsize', 4)
32
22
 
33
23
  all_fpgas.append(fpga)
34
24
 
@@ -37,5 +27,5 @@ def setup():
37
27
 
38
28
  #########################
39
29
  if __name__ == "__main__":
40
- for fpga in setup(siliconcompiler.Chip('<fpga>')):
30
+ for fpga in setup(Chip('<fpga>')):
41
31
  fpga.write_manifest(f'{fpga.design}.json')
@@ -10,9 +10,6 @@ import functools
10
10
  import time
11
11
  from pathlib import Path
12
12
 
13
- from github import Github
14
- import github.Auth
15
-
16
13
  from siliconcompiler.utils import get_plugins
17
14
 
18
15
 
@@ -219,58 +216,6 @@ def register_python_data_source(chip,
219
216
  ref=ref)
220
217
 
221
218
 
222
- def register_private_github_data_source(chip,
223
- package_name,
224
- repository,
225
- release,
226
- artifact):
227
- gh = Github(auth=github.Auth.Token(__get_github_auth_token(package_name)))
228
- repo = gh.get_repo(repository)
229
-
230
- if not release:
231
- release = repo.get_latest_release().tag_name
232
-
233
- url = None
234
- for repo_release in repo.get_releases():
235
- if repo_release.tag_name == release:
236
- for asset in repo_release.assets:
237
- if asset.name == artifact:
238
- url = asset.url
239
-
240
- if not url:
241
- raise ValueError(f'Unable to find release asset: {repository}/{release}/{artifact}')
242
-
243
- chip.register_source(
244
- package_name,
245
- path=url,
246
- ref=release)
247
-
248
-
249
- def __get_github_auth_token(package_name):
250
- token_name = package_name.upper()
251
- for tok in ('#', '$', '&', '-', '=', '!', '/'):
252
- token_name = token_name.replace(tok, '')
253
-
254
- search_env = (
255
- f'GITHUB_{token_name}_TOKEN',
256
- 'GITHUB_TOKEN',
257
- 'GIT_TOKEN'
258
- )
259
-
260
- token = None
261
- for env in search_env:
262
- token = os.environ.get(env, None)
263
-
264
- if token:
265
- break
266
-
267
- if not token:
268
- raise ValueError('Unable to determine authorization token for GitHub, '
269
- f'please set one of the following environmental variables: {search_env}')
270
-
271
- return token
272
-
273
-
274
219
  @functools.lru_cache(maxsize=1)
275
220
  def __get_python_module_mapping():
276
221
  mapping = {}
@@ -298,3 +243,14 @@ def __get_python_module_mapping():
298
243
  mapping.setdefault(module, []).append(dist_name)
299
244
 
300
245
  return mapping
246
+
247
+
248
+ def register_private_github_data_source(chip,
249
+ package_name,
250
+ repository,
251
+ release,
252
+ artifact):
253
+ chip.register_source(
254
+ package_name,
255
+ path=f"github+private://{repository}/{release}/{artifact}",
256
+ ref=release)
@@ -0,0 +1,124 @@
1
+ import os
2
+ from fasteners import InterProcessLock
3
+ from github import Github, Auth
4
+ from github.GithubException import UnknownObjectException
5
+ from urllib.parse import urlparse
6
+ from siliconcompiler.package import get_download_cache_path
7
+ from siliconcompiler.package import aquire_data_lock, release_data_lock
8
+ from siliconcompiler.package.https import _http_resolver
9
+
10
+
11
+ def get_resolver(url):
12
+ if url.scheme in ("github",):
13
+ return github_any_resolver
14
+ if url.scheme in ("github+private",):
15
+ return github_private_resolver
16
+ return None
17
+
18
+
19
+ def github_any_resolver(chip, package, path, ref, url, fetch):
20
+ data_path, data_path_lock = get_download_cache_path(chip, package, ref)
21
+
22
+ if not fetch:
23
+ return data_path, False
24
+
25
+ # Acquire lock
26
+ data_lock = InterProcessLock(data_path_lock)
27
+ aquire_data_lock(data_path, data_lock)
28
+
29
+ if os.path.exists(data_path):
30
+ release_data_lock(data_lock)
31
+ return data_path, False
32
+
33
+ try:
34
+ return _github_resolver(chip, package, path, ref, url, data_lock)
35
+ except UnknownObjectException:
36
+ return github_private_resolver(chip, package, path, ref, url, fetch, data_lock=data_lock)
37
+
38
+
39
+ def github_private_resolver(chip, package, path, ref, url, fetch, data_lock=None):
40
+ data_path, data_path_lock = get_download_cache_path(chip, package, ref)
41
+
42
+ if not fetch:
43
+ return data_path, False
44
+
45
+ if not data_lock:
46
+ # Acquire lock
47
+ data_lock = InterProcessLock(data_path_lock)
48
+ aquire_data_lock(data_path, data_lock)
49
+
50
+ if os.path.exists(data_path):
51
+ release_data_lock(data_lock)
52
+ return data_path, False
53
+
54
+ gh = Github(auth=Auth.Token(__get_github_auth_token(package)))
55
+
56
+ return _github_resolver(chip, package, path, ref, url, data_lock, gh=gh)
57
+
58
+
59
+ def _github_resolver(chip, package, path, ref, url, data_lock, gh=None):
60
+ if not gh:
61
+ gh = Github()
62
+
63
+ url_parts = (url.netloc, *url.path.split("/")[1:])
64
+
65
+ if len(url_parts) != 4:
66
+ raise ValueError(
67
+ f"{path} is not in the proper form: <owner>/<repository>/<version>/<artifact>")
68
+
69
+ repository = "/".join(url_parts[0:2])
70
+ release = url_parts[2]
71
+ artifact = url_parts[3]
72
+
73
+ release_url = __get_release_url(gh, repository, release, artifact)
74
+
75
+ return _http_resolver(chip, package, release_url, ref, urlparse(release_url), data_lock)
76
+
77
+
78
+ def __get_release_url(gh, repository, release, artifact):
79
+ if artifact == f"{release}.zip":
80
+ return f"https://github.com/{repository}/archive/refs/tags/{release}.zip"
81
+ if artifact == f"{release}.tar.gz":
82
+ return f"https://github.com/{repository}/archive/refs/tags/{release}.tar.gz"
83
+
84
+ repo = gh.get_repo(repository)
85
+
86
+ if not release:
87
+ release = repo.get_latest_release().tag_name
88
+
89
+ url = None
90
+ for repo_release in repo.get_releases():
91
+ if repo_release.tag_name == release:
92
+ for asset in repo_release.assets:
93
+ if asset.name == artifact:
94
+ url = asset.url
95
+
96
+ if not url:
97
+ raise ValueError(f'Unable to find release asset: {repository}/{release}/{artifact}')
98
+
99
+ return url
100
+
101
+
102
+ def __get_github_auth_token(package_name):
103
+ token_name = package_name.upper()
104
+ for tok in ('#', '$', '&', '-', '=', '!', '/'):
105
+ token_name = token_name.replace(tok, '')
106
+
107
+ search_env = (
108
+ f'GITHUB_{token_name}_TOKEN',
109
+ 'GITHUB_TOKEN',
110
+ 'GIT_TOKEN'
111
+ )
112
+
113
+ token = None
114
+ for env in search_env:
115
+ token = os.environ.get(env, None)
116
+
117
+ if token:
118
+ break
119
+
120
+ if not token:
121
+ raise ValueError('Unable to determine authorization token for GitHub, '
122
+ f'please set one of the following environmental variables: {search_env}')
123
+
124
+ return token
@@ -35,6 +35,12 @@ def http_resolver(chip, package, path, ref, url, fetch):
35
35
  release_data_lock(data_lock)
36
36
  return data_path, False
37
37
 
38
+ return _http_resolver(chip, package, path, ref, url, data_lock)
39
+
40
+
41
+ def _http_resolver(chip, package, path, ref, url, data_lock):
42
+ data_path, _ = get_download_cache_path(chip, package, ref)
43
+
38
44
  extract_from_url(chip, package, path, ref, url, data_path)
39
45
 
40
46
  release_data_lock(data_lock)