siliconcompiler 0.36.2__tar.gz → 0.36.3__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 (511) hide show
  1. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/Changes +12 -0
  2. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/PKG-INFO +2 -2
  3. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/pyproject.toml +1 -1
  4. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/.gitignore +1 -0
  5. siliconcompiler-0.36.3/scripts/class_hierarchy.py +128 -0
  6. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/_metadata.py +1 -1
  7. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/project.py +6 -4
  8. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/baseschema.py +7 -4
  9. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docschema.py +3 -3
  10. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/editableschema.py +1 -1
  11. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/namedschema.py +6 -6
  12. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/cmdlineschema.py +5 -3
  13. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tool.py +4 -2
  14. siliconcompiler-0.36.3/siliconcompiler/tools/builtin/wait.py +16 -0
  15. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/export.py +0 -2
  16. siliconcompiler-0.36.3/siliconcompiler/tools/klayout/merge.py +95 -0
  17. siliconcompiler-0.36.3/siliconcompiler/tools/klayout/scripts/klayout_merge.py +79 -0
  18. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/_tools.json +4 -4
  19. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/PKG-INFO +2 -2
  20. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/SOURCES.txt +4 -0
  21. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/requires.txt +1 -1
  22. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.dockerignore +0 -0
  23. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.flake8 +0 -0
  24. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.gitattributes +0 -0
  25. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.gitignore +0 -0
  26. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.readthedocs.yaml +0 -0
  27. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/CONTRIBUTING.md +0 -0
  28. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/LICENSE +0 -0
  29. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/MANIFEST.in +0 -0
  30. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/README.md +0 -0
  31. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/SECURITY.md +0 -0
  32. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/methods.py +0 -0
  33. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/profile_sc.py +0 -0
  34. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/requirements.txt +0 -0
  35. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/setup.cfg +0 -0
  36. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/__init__.py +0 -0
  37. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/_common.py +0 -0
  38. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/__init__.py +0 -0
  39. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/_common.py +0 -0
  40. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_dashboard.py +0 -0
  41. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_install.py +0 -0
  42. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_issue.py +0 -0
  43. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_remote.py +0 -0
  44. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_server.py +0 -0
  45. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_show.py +0 -0
  46. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/smake.py +0 -0
  47. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/utils/replay.py +0 -0
  48. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/utils/summarize.py +0 -0
  49. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/asic.py +0 -0
  50. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/checklist.py +0 -0
  51. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/checklists/__init__.py +0 -0
  52. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  53. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/__init__.py +0 -0
  54. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_component.py +0 -0
  55. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_floorplan.py +0 -0
  56. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_pins.py +0 -0
  57. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_timing.py +0 -0
  58. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/fpga_timing.py +0 -0
  59. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/timing_mode.py +0 -0
  60. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  61. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  62. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  63. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/__init__.py +0 -0
  64. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
  65. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
  66. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
  67. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
  68. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
  69. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
  70. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
  71. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
  72. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
  73. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/heartbeat.sdc +0 -0
  74. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/heartbeat.v +0 -0
  75. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/logo.png +0 -0
  76. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/__init__.py +0 -0
  77. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/__init__.py +0 -0
  78. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/general.j2 +0 -0
  79. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/summary.j2 +0 -0
  80. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/README.txt +0 -0
  81. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/__init__.py +0 -0
  82. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/run.sh +0 -0
  83. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
  84. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/replay.sh.j2 +0 -0
  85. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
  86. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/setup.sh +0 -0
  87. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
  88. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/slurm/run.sh +0 -0
  89. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
  90. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -0
  91. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/demos/__init__.py +0 -0
  92. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/demos/asic_demo.py +0 -0
  93. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/demos/fpga_demo.py +0 -0
  94. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/design.py +0 -0
  95. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flowgraph.py +0 -0
  96. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/__init__.py +0 -0
  97. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/asicflow.py +0 -0
  98. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/drcflow.py +0 -0
  99. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/dvflow.py +0 -0
  100. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/fpgaflow.py +0 -0
  101. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  102. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/highresscreenshotflow.py +0 -0
  103. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/interposerflow.py +0 -0
  104. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/lintflow.py +0 -0
  105. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/showflow.py +0 -0
  106. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/signoffflow.py +0 -0
  107. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/synflow.py +0 -0
  108. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/fpga.py +0 -0
  109. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/fpgas/__init__.py +0 -0
  110. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  111. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/library.py +0 -0
  112. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/metrics/__init__.py +0 -0
  113. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/metrics/asic.py +0 -0
  114. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/metrics/fpga.py +0 -0
  115. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/optimizer/__init__.py +0 -0
  116. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/optimizer/vizier.py +0 -0
  117. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/__init__.py +0 -0
  118. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/git.py +0 -0
  119. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/github.py +0 -0
  120. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/https.py +0 -0
  121. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/pdk.py +0 -0
  122. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/__init__.py +0 -0
  123. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/client.py +0 -0
  124. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/schema.py +0 -0
  125. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server.py +0 -0
  126. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  127. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  128. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  129. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  130. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  131. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  132. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  133. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  134. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  135. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  136. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  137. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  138. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  139. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  140. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  141. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/__init__.py +0 -0
  142. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/__init__.py +0 -0
  143. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
  144. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/cli/board.py +0 -0
  145. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
  146. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
  147. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
  148. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
  149. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
  150. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
  151. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
  152. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
  153. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  154. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/state.py +0 -0
  155. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
  156. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
  157. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
  158. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/report.py +0 -0
  159. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/summary_image.py +0 -0
  160. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/utils.py +0 -0
  161. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/__init__.py +0 -0
  162. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/docker.py +0 -0
  163. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/error.py +0 -0
  164. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/run_node.py +0 -0
  165. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/scheduler.py +0 -0
  166. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/schedulernode.py +0 -0
  167. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/send_messages.py +0 -0
  168. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/slurm.py +0 -0
  169. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/taskscheduler.py +0 -0
  170. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  171. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  172. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/__init__.py +0 -0
  173. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/_metadata.py +0 -0
  174. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/__init__.py +0 -0
  175. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/schemagen.py +0 -0
  176. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/utils.py +0 -0
  177. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/journal.py +0 -0
  178. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/parameter.py +0 -0
  179. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/parametertype.py +0 -0
  180. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/parametervalue.py +0 -0
  181. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/safeschema.py +0 -0
  182. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/utils.py +0 -0
  183. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/__init__.py +0 -0
  184. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/dependencyschema.py +0 -0
  185. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/filesetschema.py +0 -0
  186. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/metric.py +0 -0
  187. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/option.py +0 -0
  188. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/packageschema.py +0 -0
  189. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/pathschema.py +0 -0
  190. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/record.py +0 -0
  191. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schematic.py +0 -0
  192. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/__init__.py +0 -0
  193. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/asap7_demo.py +0 -0
  194. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  195. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/gf180_demo.py +0 -0
  196. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/ihp130_demo.py +0 -0
  197. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/interposer_demo.py +0 -0
  198. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/skywater130_demo.py +0 -0
  199. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/__init__.py +0 -0
  200. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/__init__.py +0 -0
  201. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  202. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  203. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  204. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  205. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
  206. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bambu/__init__.py +0 -0
  207. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bambu/convert.py +0 -0
  208. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  209. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bluespec/convert.py +0 -0
  210. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/__init__.py +0 -0
  211. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/filter.py +0 -0
  212. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/importfiles.py +0 -0
  213. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/join.py +0 -0
  214. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/maximum.py +0 -0
  215. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/minimum.py +0 -0
  216. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/mux.py +0 -0
  217. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/nop.py +0 -0
  218. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/verify.py +0 -0
  219. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/__init__.py +0 -0
  220. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/convert.py +0 -0
  221. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
  222. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
  223. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/execute/__init__.py +0 -0
  224. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/execute/exec_input.py +0 -0
  225. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  226. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  227. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  228. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/ghdl/convert.py +0 -0
  229. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/__init__.py +0 -0
  230. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
  231. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/show.py +0 -0
  232. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
  233. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
  234. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/show.py +0 -0
  235. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icarus/__init__.py +0 -0
  236. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icarus/compile.py +0 -0
  237. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icepack/__init__.py +0 -0
  238. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  239. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/keplerformal/__init__.py +0 -0
  240. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/keplerformal/lec.py +0 -0
  241. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/__init__.py +0 -0
  242. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  243. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/drc.py +0 -0
  244. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/operations.py +0 -0
  245. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  246. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +0 -0
  247. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_export.py +0 -0
  248. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +0 -0
  249. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_show.py +0 -0
  250. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +0 -0
  251. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/show.py +0 -0
  252. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/__init__.py +0 -0
  253. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/drc.py +0 -0
  254. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/extspice.py +0 -0
  255. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
  256. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
  257. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
  258. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/montage/__init__.py +0 -0
  259. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/montage/tile.py +0 -0
  260. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/__init__.py +0 -0
  261. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  262. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/lvs.py +0 -0
  263. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
  264. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  265. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  266. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/__init__.py +0 -0
  267. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/_apr.py +0 -0
  268. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  269. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  270. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  271. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  272. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  273. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  274. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
  275. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/global_placement.py +0 -0
  276. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/global_route.py +0 -0
  277. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
  278. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  279. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/metrics.py +0 -0
  280. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  281. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/power_grid.py +0 -0
  282. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/power_grid_analysis.py +0 -0
  283. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  284. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  285. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
  286. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  287. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  288. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  289. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  290. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  291. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
  292. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
  293. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
  294. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
  295. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
  296. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
  297. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
  298. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
  299. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
  300. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
  301. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +0 -0
  302. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
  303. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
  304. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
  305. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
  306. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
  307. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
  308. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
  309. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  310. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +0 -0
  311. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  312. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
  313. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
  314. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -0
  315. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
  316. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  317. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
  318. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
  319. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
  320. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  321. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  322. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  323. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
  324. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
  325. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/show.py +0 -0
  326. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  327. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  328. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/write_data.py +0 -0
  329. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/__init__.py +0 -0
  330. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/check_library.py +0 -0
  331. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  332. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  333. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
  334. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  335. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
  336. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
  337. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/timing.py +0 -0
  338. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/__init__.py +0 -0
  339. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/elaborate.py +0 -0
  340. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/lint.py +0 -0
  341. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/__init__.py +0 -0
  342. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/parse.py +0 -0
  343. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  344. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  345. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surfer/__init__.py +0 -0
  346. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surfer/show.py +0 -0
  347. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  348. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/sv2v/convert.py +0 -0
  349. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/__init__.py +0 -0
  350. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/compile.py +0 -0
  351. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/lint.py +0 -0
  352. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/__init__.py +0 -0
  353. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  354. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/place.py +0 -0
  355. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/route.py +0 -0
  356. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  357. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  358. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  359. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  360. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  361. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  362. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  363. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/__init__.py +0 -0
  364. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  365. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  366. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/place.py +0 -0
  367. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/route.py +0 -0
  368. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  369. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/show.py +0 -0
  370. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xdm/__init__.py +0 -0
  371. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xdm/convert.py +0 -0
  372. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xyce/__init__.py +0 -0
  373. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xyce/simulate.py +0 -0
  374. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/__init__.py +0 -0
  375. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
  376. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  377. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
  378. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
  379. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +0 -0
  380. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +0 -0
  381. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +0 -0
  382. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
  383. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
  384. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
  385. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  386. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  387. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  388. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  389. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/_tools.py +0 -0
  390. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  391. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  392. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  393. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  394. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  395. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  396. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  397. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
  398. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  399. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  400. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
  401. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
  402. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  403. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  404. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
  405. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  406. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  407. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  408. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  409. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  410. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
  411. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
  412. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  413. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
  414. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  415. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  416. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
  417. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
  418. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  419. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
  420. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
  421. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
  422. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
  423. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  424. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  425. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  426. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  427. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
  428. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  429. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  430. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  431. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  432. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  433. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  434. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  435. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  436. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
  437. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  438. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
  439. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
  440. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  441. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  442. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  443. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
  444. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  445. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
  446. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  447. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
  448. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
  449. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  450. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  451. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +0 -0
  452. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  453. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  454. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  455. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  456. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  457. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  458. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
  459. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  460. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
  461. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
  462. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
  463. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  464. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  465. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  466. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
  467. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  468. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
  469. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
  470. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
  471. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  472. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
  473. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
  474. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  475. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
  476. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
  477. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
  478. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  479. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +0 -0
  480. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  481. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  482. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  483. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
  484. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  485. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  486. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
  487. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  488. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
  489. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
  490. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
  491. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  492. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  493. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  494. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
  495. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  496. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
  497. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
  498. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
  499. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  500. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/__init__.py +0 -0
  501. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/curation.py +0 -0
  502. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/issue.py +0 -0
  503. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/logging.py +0 -0
  504. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/multiprocessing.py +0 -0
  505. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/paths.py +0 -0
  506. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/settings.py +0 -0
  507. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/showtools.py +0 -0
  508. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/units.py +0 -0
  509. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  510. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/entry_points.txt +0 -0
  511. {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,18 @@ 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.36.3 (2026-01-21)
12
+ =========================================
13
+
14
+ **Minor:**
15
+
16
+ * Tools:
17
+
18
+ * builtin: added wait task to better handle stalling flow progress
19
+ * klayout: added merge task to provide a simple interface for merging multiple GDSs
20
+ * pyslang: updated to v10.0.0
21
+
22
+
11
23
  SiliconCompiler 0.36.2 (2026-01-16)
12
24
  =========================================
13
25
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.36.2
3
+ Version: 0.36.3
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author: Zero ASIC
6
6
  License: Apache License 2.0
@@ -43,7 +43,7 @@ Requires-Dist: fasteners>=0.20
43
43
  Requires-Dist: pandas>=1.1.5
44
44
  Requires-Dist: psutil>=5.8.0
45
45
  Requires-Dist: Jinja2>=2.11.3
46
- Requires-Dist: pyslang==9.1.0
46
+ Requires-Dist: pyslang==10.0.0
47
47
  Requires-Dist: importlib_metadata; python_version < "3.10"
48
48
  Requires-Dist: streamlit==1.46.1; python_full_version != "3.9.7"
49
49
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
@@ -52,7 +52,7 @@ dependencies = [
52
52
  "psutil >= 5.8.0",
53
53
  "Jinja2 >= 2.11.3",
54
54
 
55
- "pyslang == 9.1.0",
55
+ "pyslang == 10.0.0",
56
56
 
57
57
  "importlib_metadata; python_version < '3.10'",
58
58
 
@@ -1,4 +1,5 @@
1
1
  /build
2
2
  /*.png
3
+ /*.dot
3
4
  /*.xlsx
4
5
  /*#
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env python3
2
+ import inspect
3
+ import importlib
4
+ from argparse import ArgumentParser
5
+
6
+ try:
7
+ import graphviz
8
+ _has_graphviz = True
9
+ except ModuleNotFoundError:
10
+ _has_graphviz = False
11
+
12
+
13
+ # Import all the classes
14
+ from siliconcompiler import (Project, ASIC, FPGA, Lint, Sim, Design, PDK,
15
+ Flowgraph, Checklist, StdCellLibrary, FPGADevice,
16
+ Task, ShowTask, ScreenshotTask, Schematic)
17
+ from siliconcompiler.asic import ASICTask
18
+ from siliconcompiler.constraints import (ASICTimingConstraintSchema, ASICAreaConstraint,
19
+ ASICComponentConstraints, ASICPinConstraints,
20
+ FPGAComponentConstraints, FPGAPinConstraints,
21
+ FPGATimingConstraintSchema)
22
+ from siliconcompiler.schema_support import metric, record, option
23
+ from siliconcompiler.library import ToolLibrarySchema
24
+
25
+
26
+ def generate_class_hierarchy(classes, output_file="class_hierarchy"):
27
+ """
28
+ Generates a class inheritance graph using graphviz.
29
+ """
30
+ if not _has_graphviz:
31
+ raise RuntimeError("Graphviz is not installed."
32
+ " Please install it to generate class hierarchy graphs.")
33
+
34
+ dot = graphviz.Digraph('SiliconCompiler Class Hierarchy',
35
+ comment='SiliconCompiler Class Hierarchy')
36
+ dot.attr('graph', rankdir='RL', concentrate='true')
37
+ dot.attr('node', shape='box', style='rounded,filled')
38
+
39
+ SCHEMA_COLOR = "#fff8dc" # cornsilk
40
+ SCHEMA_SUPPORT_COLOR = "#add8e6" # lightblue
41
+ DEFAULT_COLOR = "#d3d3d3" # lightgrey
42
+
43
+ # Classes exposed at the top-level of the siliconcompiler package
44
+ TOP_LEVEL_CLASSES = {
45
+ 'Project', 'ASIC', 'FPGA', 'Lint', 'Sim', 'Design', 'PDK',
46
+ 'Flowgraph', 'Checklist', 'StdCellLibrary', 'FPGADevice',
47
+ 'Task', 'ShowTask', 'ScreenshotTask', 'Schematic'
48
+ }
49
+
50
+ added_nodes = set()
51
+
52
+ all_mro_classes = set()
53
+ for cls in classes:
54
+ mro = [c for c in inspect.getmro(cls) if 'siliconcompiler' in c.__module__ or c is cls]
55
+ all_mro_classes.update(mro)
56
+
57
+ # Create a subgraph for top-level classes to cluster them
58
+ with dot.subgraph(name='cluster_api') as c:
59
+ c.attr(label='SiliconCompiler API', style='filled', color='#f0f0f0', fontcolor='black')
60
+
61
+ for cls in all_mro_classes:
62
+ if cls.__name__ not in added_nodes:
63
+ module_name = cls.__module__
64
+ if module_name.startswith('siliconcompiler.schema.'):
65
+ color = SCHEMA_COLOR
66
+ elif module_name.startswith('siliconcompiler.schema_support.'):
67
+ color = SCHEMA_SUPPORT_COLOR
68
+ else:
69
+ color = DEFAULT_COLOR
70
+
71
+ # Add node to the cluster or the main graph
72
+ if cls.__name__ in TOP_LEVEL_CLASSES:
73
+ c.node(cls.__name__, fillcolor=color)
74
+ else:
75
+ dot.node(cls.__name__, fillcolor=color)
76
+ added_nodes.add(cls.__name__)
77
+ edges = []
78
+ for cls in all_mro_classes:
79
+ for base in cls.__bases__:
80
+ if 'siliconcompiler' not in base.__module__:
81
+ continue
82
+ if (base.__name__, cls.__name__) in edges:
83
+ continue
84
+ edges.append((base.__name__, cls.__name__))
85
+ # Add edge
86
+ dot.edge(f"{base.__name__}:w", f"{cls.__name__}:e")
87
+ # Save the dot file and render a PNG
88
+ try:
89
+ dot.render(output_file, view=False, format='png', cleanup=True)
90
+ print(f"Generated class hierarchy graph at {output_file}.png")
91
+ except graphviz.ExecutableNotFound:
92
+ print("Graphviz executable not found. Please install it and add it to your PATH.")
93
+ print("On Debian/Ubuntu: sudo apt-get install graphviz")
94
+ print("On macOS (with Homebrew): brew install graphviz")
95
+
96
+ with open(f"{output_file}.dot", 'w') as f:
97
+ f.write(dot.source)
98
+ print(f"Generated dot file at {output_file}.dot")
99
+
100
+
101
+ if __name__ == "__main__":
102
+ parser = ArgumentParser(
103
+ description="Generate a class inheritance graph for SiliconCompiler classes.")
104
+ parser.add_argument("cls", nargs="?",
105
+ help="A specific class to graph in module/ClassName format "
106
+ "(e.g., siliconcompiler/Project).")
107
+ parser.add_argument("--output", default="class_hierarchy",
108
+ help="Output file name without extension.")
109
+ args = parser.parse_args()
110
+
111
+ if args.cls:
112
+ module, cls_name = args.cls.split("/")
113
+ classes_to_graph = [getattr(importlib.import_module(module), cls_name)]
114
+ else:
115
+ # The list of classes from methods.py
116
+ classes_to_graph = [
117
+ Project, ASIC, FPGA, Lint, Sim,
118
+ Design, PDK, Flowgraph, Checklist, StdCellLibrary, FPGADevice, Schematic,
119
+ Task, ShowTask, ScreenshotTask,
120
+ ASICTask,
121
+ ASICTimingConstraintSchema, ASICAreaConstraint, ASICComponentConstraints,
122
+ ASICPinConstraints, FPGAComponentConstraints, FPGAPinConstraints,
123
+ FPGATimingConstraintSchema,
124
+ metric.MetricSchema, record.RecordSchema, option.OptionSchema,
125
+ ToolLibrarySchema
126
+ ]
127
+
128
+ generate_class_hierarchy(classes_to_graph, args.output)
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.36.2'
2
+ version = '0.36.3'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -4,7 +4,7 @@ import uuid
4
4
 
5
5
  import os.path
6
6
 
7
- from typing import Union, List, Tuple, TextIO, Optional, Dict, Set
7
+ from typing import Type, Union, List, Tuple, TextIO, Optional, Dict, Set, TypeVar
8
8
 
9
9
  from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, Scope, \
10
10
  __version__ as schema_version, \
@@ -33,6 +33,8 @@ from siliconcompiler.utils.multiprocessing import MPManager
33
33
  from siliconcompiler.utils.paths import jobdir, workdir
34
34
  from siliconcompiler.flows.showflow import ShowFlow
35
35
 
36
+ TProject = TypeVar("TProject", bound="Project")
37
+
36
38
 
37
39
  class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
38
40
  """
@@ -236,7 +238,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
236
238
  return self.get("option", field="schema")
237
239
 
238
240
  @classmethod
239
- def convert(cls, obj: "Project") -> "Project":
241
+ def convert(cls: Type[TProject], obj: "Project") -> TProject:
240
242
  """
241
243
  Converts a project from one type to another (e.g., Project to Sim).
242
244
 
@@ -526,7 +528,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
526
528
  f"{', '.join([f'{step}/{index}' for step, index in breakpoints])}")
527
529
  self.__dashboard.stop()
528
530
 
529
- def run(self) -> "Project":
531
+ def run(self) -> TProject:
530
532
  '''
531
533
  Executes the compilation flow defined in the project's flowgraph.
532
534
 
@@ -1238,7 +1240,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
1238
1240
  return None
1239
1241
 
1240
1242
  # Create copy of project to avoid changing user project
1241
- proj: Project = self.copy()
1243
+ proj = self.copy()
1242
1244
  proj.set_flow(ShowFlow(task))
1243
1245
 
1244
1246
  # Setup options:
@@ -26,12 +26,15 @@ import os.path
26
26
 
27
27
  from enum import Enum, auto
28
28
  from functools import cache
29
- from typing import Dict, Type, Tuple, Union, Set, Callable, List, Optional, TextIO, Iterable, Any
29
+ from typing import Dict, Type, Tuple, TypeVar, Union, Set, Callable, List, Optional, \
30
+ TextIO, Iterable, Any
30
31
 
31
32
  from .parameter import Parameter, NodeValue
32
33
  from .journal import Journal
33
34
  from ._metadata import version
34
35
 
36
+ TSchema = TypeVar('TSchema', bound='BaseSchema')
37
+
35
38
 
36
39
  class LazyLoad(Enum):
37
40
  """
@@ -286,10 +289,10 @@ class BaseSchema:
286
289
 
287
290
  # Manifest methods
288
291
  @classmethod
289
- def from_manifest(cls,
292
+ def from_manifest(cls: Type[TSchema],
290
293
  filepath: Union[None, str] = None,
291
294
  cfg: Union[None, Dict] = None,
292
- lazyload: bool = True) -> "BaseSchema":
295
+ lazyload: bool = True) -> TSchema:
293
296
  '''
294
297
  Create a new schema based on the provided source files.
295
298
 
@@ -849,7 +852,7 @@ class BaseSchema:
849
852
  return manifest
850
853
 
851
854
  # Utility functions
852
- def copy(self, key: Optional[Tuple[str, ...]] = None) -> "BaseSchema":
855
+ def copy(self: TSchema, key: Optional[Tuple[str, ...]] = None) -> TSchema:
853
856
  """
854
857
  Returns a copy of this schema.
855
858
 
@@ -1,6 +1,6 @@
1
- from typing import Union, List
1
+ from typing import Type, Union, List
2
2
 
3
- from .baseschema import BaseSchema
3
+ from .baseschema import BaseSchema, TSchema
4
4
 
5
5
 
6
6
  class DocsSchema(BaseSchema):
@@ -11,7 +11,7 @@ class DocsSchema(BaseSchema):
11
11
  """
12
12
 
13
13
  @classmethod
14
- def make_docs(cls) -> Union[BaseSchema, List[BaseSchema]]:
14
+ def make_docs(cls: Type[TSchema]) -> Union[TSchema, List[TSchema]]:
15
15
  """Generate the documentation representation for this schema.
16
16
 
17
17
  By default, this method returns a standard instance of the class itself.
@@ -163,7 +163,7 @@ class EditableSchema:
163
163
  new_schema._BaseSchema__parent = None
164
164
  return new_schema
165
165
 
166
- def rename(self, name: str):
166
+ def rename(self, name: str) -> None:
167
167
  '''
168
168
  Renames a named schema
169
169
  '''
@@ -4,9 +4,9 @@
4
4
  # SC dependencies outside of its directory, since it may be used by tool drivers
5
5
  # that have isolated Python environments.
6
6
 
7
- from typing import Dict, Tuple, Optional, Set, Union, List
7
+ from typing import Dict, Tuple, Optional, Set, Type, Union, List
8
8
 
9
- from .baseschema import BaseSchema, LazyLoad
9
+ from .baseschema import BaseSchema, LazyLoad, TSchema
10
10
 
11
11
 
12
12
  class NamedSchema(BaseSchema):
@@ -76,11 +76,11 @@ class NamedSchema(BaseSchema):
76
76
  return cfg.get("__meta__", {}).get("name", None)
77
77
 
78
78
  @classmethod
79
- def from_manifest(cls,
79
+ def from_manifest(cls: Type[TSchema],
80
80
  filepath: Union[None, str] = None,
81
81
  cfg: Union[None, Dict] = None,
82
82
  lazyload: bool = True,
83
- name: Optional[str] = None):
83
+ name: Optional[str] = None) -> TSchema:
84
84
  '''
85
85
  Create a new schema based on the provided source files.
86
86
 
@@ -115,8 +115,8 @@ class NamedSchema(BaseSchema):
115
115
 
116
116
  return super()._from_dict(manifest, keypath, version=version, lazyload=lazyload)
117
117
 
118
- def copy(self, key: Optional[Tuple[str, ...]] = None) -> "NamedSchema":
119
- copy: NamedSchema = super().copy(key=key)
118
+ def copy(self: TSchema, key: Optional[Tuple[str, ...]] = None) -> TSchema:
119
+ copy = super().copy(key=key)
120
120
 
121
121
  if key and key[-1] != "default":
122
122
  copy.__name = key[-1]
@@ -4,12 +4,14 @@ import sys
4
4
 
5
5
  import os.path
6
6
 
7
- from typing import Set, List, Optional, Union
7
+ from typing import Set, List, Optional, Type, Union, TypeVar
8
8
 
9
9
  from siliconcompiler.schema import BaseSchema, EditableSchema, Parameter, Scope, PerNode
10
10
  from siliconcompiler.schema.utils import trim
11
11
  from siliconcompiler import _metadata
12
12
 
13
+ TCmdSchema = TypeVar("TCmdSchema", bound="CommandLineSchema")
14
+
13
15
 
14
16
  class CommandLineSchema(BaseSchema):
15
17
  '''
@@ -68,14 +70,14 @@ class CommandLineSchema(BaseSchema):
68
70
  EditableSchema(self).insert("cmdarg", name, Parameter(type, **kwargs))
69
71
 
70
72
  @classmethod
71
- def create_cmdline(cls,
73
+ def create_cmdline(cls: Type[TCmdSchema],
72
74
  progname: Optional[str] = None,
73
75
  description: Optional[str] = None,
74
76
  switchlist: Optional[Union[List[str], Set[str]]] = None,
75
77
  version: Optional[str] = None,
76
78
  print_banner: bool = True,
77
79
  use_cfg: bool = False,
78
- use_sources: bool = True) -> BaseSchema:
80
+ use_sources: bool = True) -> TCmdSchema:
79
81
  """
80
82
  Creates an SC command line interface.
81
83
 
@@ -53,7 +53,8 @@ if TYPE_CHECKING:
53
53
  from siliconcompiler.scheduler import SchedulerNode
54
54
  from siliconcompiler import Project
55
55
 
56
- TTask = TypeVar('TTask')
56
+ TTask = TypeVar('TTask', bound='Task')
57
+ TShowTask = TypeVar('TShowTask', bound='ShowTask')
57
58
 
58
59
 
59
60
  class TaskError(Exception):
@@ -2177,7 +2178,8 @@ class ShowTask(Task):
2177
2178
  cls.register_task(c)
2178
2179
 
2179
2180
  @classmethod
2180
- def get_task(cls, ext: Optional[str]) -> Union[Optional["ShowTask"], Set[Type["ShowTask"]]]:
2181
+ def get_task(cls: Type[TShowTask], ext: Optional[str]) -> \
2182
+ Union[Optional[TShowTask], Set[Type[TShowTask]]]:
2181
2183
  """
2182
2184
  Retrieves a suitable show task instance for a given file extension.
2183
2185
 
@@ -0,0 +1,16 @@
1
+ from siliconcompiler.tools.builtin import BuiltinTask
2
+
3
+
4
+ class Wait(BuiltinTask):
5
+ '''
6
+ A wait task that stalls the flow until all inputs are available.
7
+ '''
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ def _set_io_files(self):
12
+ # No file IO needed for wait task
13
+ return
14
+
15
+ def task(self):
16
+ return "wait"
@@ -79,8 +79,6 @@ class ExportTask(KLayoutTask, ScreenshotParams):
79
79
  self.add_output_file(ext="lyt")
80
80
  self.add_output_file(ext="lyp")
81
81
 
82
- self.add_required_key("var", "stream")
83
-
84
82
  sc_stream_order = [default_stream, *[s for s in ("gds", "oas") if s != default_stream]]
85
83
  req_set = False
86
84
  for s in sc_stream_order:
@@ -0,0 +1,95 @@
1
+ from typing import Optional, Union
2
+
3
+ from siliconcompiler.tools.klayout import KLayoutTask
4
+
5
+
6
+ class Merge(KLayoutTask):
7
+ """
8
+ Klayout task to merge multiple GDS files and provide prefixing for cell names.
9
+ """
10
+ def __init__(self):
11
+ super().__init__()
12
+
13
+ self.add_parameter("reference", "(<fs,input>,str,str)",
14
+ "Reference fileset or input node for merge operation, structured as "
15
+ "(fs, library name, fileset) or (input, step, index)")
16
+ self.add_parameter("merge", "[(<fs,input>,str,str,str)]",
17
+ "Fileset or input node to be merge with prefix, structured as "
18
+ "(fs, library name, fileset) or (input, step, index) along with prefix "
19
+ "string")
20
+
21
+ def __fix_type(self, type: str) -> str:
22
+ if type == "fileset":
23
+ return "fs"
24
+ return type
25
+
26
+ def set_klayout_reference(self, type: str, source0: str, source1: str,
27
+ step: Optional[str] = None,
28
+ index: Optional[Union[str, int]] = None):
29
+ """
30
+ Sets the reference file for the merge operation.
31
+ Args:
32
+ type (str): The reference fileset or input node.
33
+ source0 (str): The first part of the source (library name or step).
34
+ source1 (str): The second part of the source (fileset name or index).
35
+ step (Optional[str]): The specific step to apply this configuration to.
36
+ index (Optional[Union[str, int]]): The specific index to apply this configuration to.
37
+ """
38
+ self.set("var", "reference", (self.__fix_type(type), source0, source1),
39
+ step=step, index=index)
40
+
41
+ def add_klayout_merge(self, type: str, source0: str, source1: str, prefix: str,
42
+ step: Optional[str] = None,
43
+ index: Optional[Union[str, int]] = None, clobber: bool = False):
44
+ """
45
+ Adds a file to be merged with the reference file.
46
+ Args:
47
+ type (str): The fileset or input node to be merged.
48
+ prefix (str): The prefix to apply during the merge.
49
+ source0 (str): The first part of the source (library name or step).
50
+ source1 (str): The second part of the source (fileset name or index).
51
+ step (Optional[str]): The specific step to apply this configuration to.
52
+ index (Optional[Union[str, int]]): The specific index to apply this configuration to.
53
+ clobber (bool, optional): If True, overwrites the existing list of merge files.
54
+ If False, appends to the list. Defaults to False.
55
+ """
56
+ if clobber:
57
+ self.set("var", "merge", (self.__fix_type(type), source0, source1, prefix),
58
+ step=step, index=index)
59
+ else:
60
+ self.add("var", "merge", (self.__fix_type(type), source0, source1, prefix),
61
+ step=step, index=index)
62
+
63
+ def task(self) -> str:
64
+ return 'merge'
65
+
66
+ def setup(self) -> None:
67
+ super().setup()
68
+
69
+ self.set_script("klayout_merge.py")
70
+
71
+ self.add_required_key("var", "reference")
72
+ self.add_required_key("var", "merge")
73
+
74
+ if self.get("var", "reference"):
75
+ ref_type, ref_source0, ref_source1 = self.get("var", "reference")
76
+ if ref_type == 'input':
77
+ step, index = ref_source0, ref_source1
78
+ self.add_input_file(
79
+ self.compute_input_file_node_name(f"{self.design_topmodule}.gds",
80
+ step, index))
81
+ else:
82
+ lib_name, fileset = ref_source0, ref_source1
83
+ self.add_required_key("library", lib_name, "fileset", fileset, "file", "gds")
84
+ for merge_entry in self.get("var", "merge"):
85
+ merge_type, merge_source0, merge_source1, _ = merge_entry
86
+ if merge_type == 'input':
87
+ step, index = merge_source0, merge_source1
88
+ self.add_input_file(
89
+ self.compute_input_file_node_name(f"{self.design_topmodule}.gds",
90
+ step, index))
91
+ else:
92
+ lib_name, fileset = merge_source0, merge_source1
93
+ self.add_required_key("library", lib_name, "fileset", fileset, "file", "gds")
94
+
95
+ self.add_output_file(ext="gds")
@@ -0,0 +1,79 @@
1
+ import pya
2
+ import sys
3
+
4
+ import os.path
5
+
6
+
7
+ if __name__ == "__main__":
8
+ # SC_ROOT provided by CLI
9
+ sys.path.append(SC_KLAYOUT_ROOT) # noqa: F821
10
+ sys.path.append(SC_TOOLS_ROOT) # noqa: F821
11
+ sys.path.append(SC_ROOT) # noqa: F821
12
+
13
+ from klayout_utils import (
14
+ technology,
15
+ get_schema,
16
+ generate_metrics
17
+ )
18
+
19
+ from klayout_operations import (
20
+ read_layout,
21
+ write_stream
22
+ )
23
+
24
+ schema = get_schema(manifest='sc_manifest.json')
25
+
26
+ # Extract info from manifest
27
+ sc_step = schema.get('arg', 'step')
28
+ sc_index = schema.get('arg', 'index')
29
+ sc_tool = 'klayout'
30
+ sc_task = 'merge'
31
+
32
+ design_name = schema.get('option', 'design')
33
+ fileset = schema.get("option", "fileset")[0]
34
+ design = schema.get("library", design_name, "fileset", fileset, "topmodule")
35
+
36
+ ref_type, ref_source0, ref_source1 = schema.get("tool", sc_tool, "task", sc_task,
37
+ "var", "reference",
38
+ step=sc_step, index=sc_index)
39
+ if ref_type == 'input':
40
+ step, index = ref_source0, ref_source1
41
+ input_file = os.path.join('inputs', f"{design}.{ref_source0}{ref_source1}.gds")
42
+ else:
43
+ input_file = schema.get("library", ref_source0, "fileset", ref_source1, "file", "gds")[0]
44
+
45
+ merge_files = []
46
+ for merge_type, merge_source0, merge_source1, prefix in \
47
+ schema.get("tool", sc_tool, "task", sc_task, "var", "merge",
48
+ step=sc_step, index=sc_index):
49
+ if merge_type == 'input':
50
+ merge_file = os.path.join('inputs', f"{design}.{merge_source0}{merge_source1}.gds")
51
+ else:
52
+ merge_file = schema.get("library", merge_source0, "fileset", merge_source1,
53
+ "file", "gds")[0]
54
+ merge_files.append((prefix, merge_file))
55
+
56
+ tech = technology(design, schema)
57
+ base_layout = read_layout(input_file)
58
+ top_cell = base_layout.top_cell()
59
+ base_layout.technology_name = tech.name
60
+
61
+ for prefix, merge_file in merge_files:
62
+ print(f"[INFO] Merging file '{merge_file}' with prefix '{prefix}'")
63
+ merge_layout = read_layout(merge_file)
64
+
65
+ merge_top = merge_layout.top_cell()
66
+
67
+ new_cell_name = f"{prefix}{merge_top.name}"
68
+ if base_layout.cell(new_cell_name):
69
+ print(f"[WARN] Cell '{new_cell_name}' already exists in base layout. Skipping.")
70
+ continue
71
+ print(f"[INFO] Adding cell '{merge_top.name}' as '{new_cell_name}'")
72
+ new_cell = base_layout.create_cell(new_cell_name)
73
+ new_cell.copy_tree(merge_top)
74
+ cell_inst = pya.CellInstArray(new_cell.cell_index(), pya.Trans())
75
+ top_cell.insert(cell_inst)
76
+
77
+ write_stream(base_layout, f"outputs/{design}.gds", True)
78
+
79
+ generate_metrics()
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "openroad": {
3
3
  "git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
4
- "git-commit": "e7da048335b841ec917d0c421200f2b0eda54f2c",
4
+ "git-commit": "11bd3ead9d12211b72706ac7c8653234cc136b8b",
5
5
  "docker-cmds": [
6
6
  "# Remove OR-Tools files",
7
7
  "RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "opensta": {
19
19
  "git-url": "https://github.com/parallaxsw/OpenSTA.git",
20
- "git-commit": "0429ac324b2cd4a12783e053b9c85f5d40f4cde8",
20
+ "git-commit": "dda887bc6e5160fd7c15489cc5845eaff72b5252",
21
21
  "auto-update": true
22
22
  },
23
23
  "netgen": {
@@ -168,7 +168,7 @@
168
168
  },
169
169
  "keplerformal": {
170
170
  "git-url": "https://github.com/keplertech/kepler-formal.git",
171
- "git-commit": "c1edd4a196536385255f4c882e4001d534d4638b",
171
+ "git-commit": "d647673f3b3960256069a79e8d92d36a3b89d9a4",
172
172
  "auto-update": false
173
173
  }
174
- }
174
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.36.2
3
+ Version: 0.36.3
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author: Zero ASIC
6
6
  License: Apache License 2.0
@@ -43,7 +43,7 @@ Requires-Dist: fasteners>=0.20
43
43
  Requires-Dist: pandas>=1.1.5
44
44
  Requires-Dist: psutil>=5.8.0
45
45
  Requires-Dist: Jinja2>=2.11.3
46
- Requires-Dist: pyslang==9.1.0
46
+ Requires-Dist: pyslang==10.0.0
47
47
  Requires-Dist: importlib_metadata; python_version < "3.10"
48
48
  Requires-Dist: streamlit==1.46.1; python_full_version != "3.9.7"
49
49
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"