siliconcompiler 0.36.1__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 (513) hide show
  1. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/Changes +26 -0
  2. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/PKG-INFO +3 -3
  3. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/pyproject.toml +2 -2
  4. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/scripts/.gitignore +1 -0
  5. siliconcompiler-0.36.3/scripts/class_hierarchy.py +128 -0
  6. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/_metadata.py +1 -1
  7. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/asic.py +4 -4
  8. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/design.py +6 -1
  9. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/package/__init__.py +3 -2
  10. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/project.py +36 -18
  11. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/baseschema.py +7 -4
  12. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/docschema.py +3 -3
  13. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/editableschema.py +1 -1
  14. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/namedschema.py +6 -6
  15. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/cmdlineschema.py +5 -3
  16. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/filesetschema.py +9 -1
  17. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/pathschema.py +16 -10
  18. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tool.py +7 -3
  19. siliconcompiler-0.36.3/siliconcompiler/tools/builtin/wait.py +16 -0
  20. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/keplerformal/lec.py +2 -2
  21. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/export.py +1 -3
  22. siliconcompiler-0.36.3/siliconcompiler/tools/klayout/merge.py +95 -0
  23. siliconcompiler-0.36.3/siliconcompiler/tools/klayout/scripts/klayout_merge.py +79 -0
  24. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/_apr.py +69 -11
  25. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/power_grid.py +1 -1
  26. siliconcompiler-0.36.3/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +25 -0
  27. siliconcompiler-0.36.3/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +3 -0
  28. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/__init__.py +9 -9
  29. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/place.py +1 -2
  30. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/syn_asic.py +4 -4
  31. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/syn_fpga.py +7 -8
  32. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/_tools.json +6 -6
  33. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/logging.py +6 -0
  34. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/PKG-INFO +3 -3
  35. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/SOURCES.txt +4 -0
  36. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/requires.txt +2 -2
  37. siliconcompiler-0.36.1/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -23
  38. siliconcompiler-0.36.1/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -1
  39. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/.dockerignore +0 -0
  40. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/.flake8 +0 -0
  41. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/.gitattributes +0 -0
  42. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/.gitignore +0 -0
  43. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/.readthedocs.yaml +0 -0
  44. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/CONTRIBUTING.md +0 -0
  45. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/LICENSE +0 -0
  46. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/MANIFEST.in +0 -0
  47. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/README.md +0 -0
  48. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/SECURITY.md +0 -0
  49. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/scripts/methods.py +0 -0
  50. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/scripts/profile_sc.py +0 -0
  51. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/scripts/requirements.txt +0 -0
  52. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/setup.cfg +0 -0
  53. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/__init__.py +0 -0
  54. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/_common.py +0 -0
  55. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/__init__.py +0 -0
  56. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/_common.py +0 -0
  57. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_dashboard.py +0 -0
  58. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_install.py +0 -0
  59. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_issue.py +0 -0
  60. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_remote.py +0 -0
  61. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_server.py +0 -0
  62. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_show.py +0 -0
  63. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/smake.py +0 -0
  64. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/utils/replay.py +0 -0
  65. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/apps/utils/summarize.py +0 -0
  66. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/checklist.py +0 -0
  67. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/checklists/__init__.py +0 -0
  68. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  69. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/__init__.py +0 -0
  70. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_component.py +0 -0
  71. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_floorplan.py +0 -0
  72. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_pins.py +0 -0
  73. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_timing.py +0 -0
  74. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/fpga_timing.py +0 -0
  75. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/constraints/timing_mode.py +0 -0
  76. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  77. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  78. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  79. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/__init__.py +0 -0
  80. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
  81. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
  82. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
  83. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
  84. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
  85. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
  86. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
  87. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
  88. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
  89. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/heartbeat.sdc +0 -0
  90. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/heartbeat.v +0 -0
  91. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/logo.png +0 -0
  92. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/__init__.py +0 -0
  93. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/__init__.py +0 -0
  94. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/general.j2 +0 -0
  95. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/summary.j2 +0 -0
  96. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/README.txt +0 -0
  97. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/__init__.py +0 -0
  98. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/run.sh +0 -0
  99. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
  100. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/replay.sh.j2 +0 -0
  101. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
  102. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/setup.sh +0 -0
  103. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
  104. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/slurm/run.sh +0 -0
  105. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
  106. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -0
  107. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/demos/__init__.py +0 -0
  108. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/demos/asic_demo.py +0 -0
  109. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/demos/fpga_demo.py +0 -0
  110. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flowgraph.py +0 -0
  111. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/__init__.py +0 -0
  112. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/asicflow.py +0 -0
  113. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/drcflow.py +0 -0
  114. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/dvflow.py +0 -0
  115. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/fpgaflow.py +0 -0
  116. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  117. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/highresscreenshotflow.py +0 -0
  118. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/interposerflow.py +0 -0
  119. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/lintflow.py +0 -0
  120. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/showflow.py +0 -0
  121. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/signoffflow.py +0 -0
  122. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/flows/synflow.py +0 -0
  123. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/fpga.py +0 -0
  124. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/fpgas/__init__.py +0 -0
  125. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  126. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/library.py +0 -0
  127. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/metrics/__init__.py +0 -0
  128. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/metrics/asic.py +0 -0
  129. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/metrics/fpga.py +0 -0
  130. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/optimizer/__init__.py +0 -0
  131. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/optimizer/vizier.py +0 -0
  132. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/package/git.py +0 -0
  133. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/package/github.py +0 -0
  134. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/package/https.py +0 -0
  135. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/pdk.py +0 -0
  136. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/__init__.py +0 -0
  137. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/client.py +0 -0
  138. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/schema.py +0 -0
  139. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server.py +0 -0
  140. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  141. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  142. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  143. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  144. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  145. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  146. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  147. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  148. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  149. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  150. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  151. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  152. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  153. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  154. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  155. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/__init__.py +0 -0
  156. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/__init__.py +0 -0
  157. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
  158. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/cli/board.py +0 -0
  159. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
  160. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
  161. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
  162. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
  163. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
  164. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
  165. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
  166. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
  167. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  168. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/state.py +0 -0
  169. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
  170. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
  171. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
  172. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/report.py +0 -0
  173. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/summary_image.py +0 -0
  174. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/report/utils.py +0 -0
  175. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/__init__.py +0 -0
  176. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/docker.py +0 -0
  177. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/error.py +0 -0
  178. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/run_node.py +0 -0
  179. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/scheduler.py +0 -0
  180. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/schedulernode.py +0 -0
  181. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/send_messages.py +0 -0
  182. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/slurm.py +0 -0
  183. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/taskscheduler.py +0 -0
  184. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  185. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  186. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/__init__.py +0 -0
  187. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/_metadata.py +0 -0
  188. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/__init__.py +0 -0
  189. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/schemagen.py +0 -0
  190. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/utils.py +0 -0
  191. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/journal.py +0 -0
  192. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/parameter.py +0 -0
  193. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/parametertype.py +0 -0
  194. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/parametervalue.py +0 -0
  195. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/safeschema.py +0 -0
  196. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema/utils.py +0 -0
  197. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/__init__.py +0 -0
  198. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/dependencyschema.py +0 -0
  199. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/metric.py +0 -0
  200. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/option.py +0 -0
  201. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/packageschema.py +0 -0
  202. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/record.py +0 -0
  203. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/schematic.py +0 -0
  204. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/__init__.py +0 -0
  205. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/asap7_demo.py +0 -0
  206. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  207. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/gf180_demo.py +0 -0
  208. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/ihp130_demo.py +0 -0
  209. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/interposer_demo.py +0 -0
  210. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/targets/skywater130_demo.py +0 -0
  211. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/__init__.py +0 -0
  212. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/__init__.py +0 -0
  213. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  214. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  215. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  216. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  217. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
  218. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/bambu/__init__.py +0 -0
  219. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/bambu/convert.py +0 -0
  220. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  221. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/bluespec/convert.py +0 -0
  222. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/__init__.py +0 -0
  223. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/filter.py +0 -0
  224. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/importfiles.py +0 -0
  225. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/join.py +0 -0
  226. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/maximum.py +0 -0
  227. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/minimum.py +0 -0
  228. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/mux.py +0 -0
  229. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/nop.py +0 -0
  230. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/verify.py +0 -0
  231. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/__init__.py +0 -0
  232. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/convert.py +0 -0
  233. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
  234. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
  235. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/execute/__init__.py +0 -0
  236. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/execute/exec_input.py +0 -0
  237. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  238. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  239. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  240. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/ghdl/convert.py +0 -0
  241. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/__init__.py +0 -0
  242. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
  243. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/show.py +0 -0
  244. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
  245. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
  246. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/show.py +0 -0
  247. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/icarus/__init__.py +0 -0
  248. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/icarus/compile.py +0 -0
  249. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/icepack/__init__.py +0 -0
  250. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  251. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/keplerformal/__init__.py +0 -0
  252. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/__init__.py +0 -0
  253. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  254. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/drc.py +0 -0
  255. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/operations.py +0 -0
  256. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  257. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +0 -0
  258. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_export.py +0 -0
  259. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +0 -0
  260. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_show.py +0 -0
  261. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +0 -0
  262. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/show.py +0 -0
  263. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/__init__.py +0 -0
  264. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/drc.py +0 -0
  265. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/extspice.py +0 -0
  266. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
  267. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
  268. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
  269. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/montage/__init__.py +0 -0
  270. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/montage/tile.py +0 -0
  271. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/__init__.py +0 -0
  272. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  273. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/lvs.py +0 -0
  274. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
  275. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  276. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  277. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/__init__.py +0 -0
  278. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  279. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  280. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  281. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  282. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  283. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  284. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
  285. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/global_placement.py +0 -0
  286. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/global_route.py +0 -0
  287. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
  288. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  289. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/metrics.py +0 -0
  290. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  291. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/power_grid_analysis.py +0 -0
  292. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  293. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  294. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
  295. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  296. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  297. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  298. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  299. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  300. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
  301. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
  302. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
  303. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
  304. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
  305. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
  306. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
  307. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
  308. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
  309. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
  310. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +0 -0
  311. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
  312. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
  313. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
  314. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
  315. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
  316. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
  317. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
  318. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  319. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +0 -0
  320. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  321. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
  322. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -0
  323. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
  324. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  325. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
  326. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
  327. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  328. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  329. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  330. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
  331. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
  332. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/show.py +0 -0
  333. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  334. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  335. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/write_data.py +0 -0
  336. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/__init__.py +0 -0
  337. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/check_library.py +0 -0
  338. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  339. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  340. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
  341. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  342. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
  343. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
  344. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/timing.py +0 -0
  345. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/__init__.py +0 -0
  346. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/elaborate.py +0 -0
  347. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/lint.py +0 -0
  348. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/__init__.py +0 -0
  349. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/parse.py +0 -0
  350. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  351. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  352. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/surfer/__init__.py +0 -0
  353. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/surfer/show.py +0 -0
  354. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  355. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/sv2v/convert.py +0 -0
  356. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/__init__.py +0 -0
  357. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/compile.py +0 -0
  358. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/lint.py +0 -0
  359. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/__init__.py +0 -0
  360. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  361. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/place.py +0 -0
  362. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/route.py +0 -0
  363. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  364. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  365. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  366. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  367. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  368. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  369. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  370. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  371. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  372. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/route.py +0 -0
  373. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  374. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/show.py +0 -0
  375. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/xdm/__init__.py +0 -0
  376. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/xdm/convert.py +0 -0
  377. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/xyce/__init__.py +0 -0
  378. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/xyce/simulate.py +0 -0
  379. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/__init__.py +0 -0
  380. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
  381. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  382. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
  383. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
  384. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +0 -0
  385. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +0 -0
  386. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +0 -0
  387. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
  388. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  389. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  390. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  391. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  392. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/_tools.py +0 -0
  393. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  394. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  395. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  396. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  397. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  398. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  399. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  400. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
  401. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  402. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  403. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
  404. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
  405. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  406. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  407. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
  408. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  409. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  410. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  411. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  412. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  413. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
  414. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
  415. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  416. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
  417. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  418. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  419. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
  420. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
  421. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  422. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
  423. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
  424. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
  425. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
  426. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  427. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  428. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  429. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  430. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
  431. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  432. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  433. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  434. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  435. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  436. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  437. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  438. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  439. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
  440. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  441. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
  442. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
  443. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  444. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  445. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  446. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
  447. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  448. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
  449. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  450. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
  451. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
  452. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  453. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  454. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +0 -0
  455. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  456. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  457. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  458. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  459. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  460. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  461. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
  462. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  463. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
  464. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
  465. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
  466. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  467. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  468. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  469. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
  470. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  471. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
  472. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
  473. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
  474. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  475. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
  476. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
  477. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  478. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
  479. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
  480. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
  481. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  482. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +0 -0
  483. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  484. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  485. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  486. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
  487. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  488. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  489. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
  490. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  491. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
  492. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
  493. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
  494. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  495. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  496. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  497. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
  498. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  499. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
  500. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
  501. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
  502. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  503. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/__init__.py +0 -0
  504. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/curation.py +0 -0
  505. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/issue.py +0 -0
  506. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/multiprocessing.py +0 -0
  507. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/paths.py +0 -0
  508. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/settings.py +0 -0
  509. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/showtools.py +0 -0
  510. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler/utils/units.py +0 -0
  511. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  512. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/entry_points.txt +0 -0
  513. {siliconcompiler-0.36.1 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,32 @@ 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
+
23
+ SiliconCompiler 0.36.2 (2026-01-16)
24
+ =========================================
25
+
26
+ **Minor:**
27
+
28
+ * Corrected auto dataroot behavior when setting abs paths.
29
+ * Corrected logging during check_filepaths on design objects to ensure errors are printed.
30
+ * Added `.get_library` to Project to allow access to imported libraries.
31
+
32
+ * Tools:
33
+
34
+ * openroad: added option to bypass SDC loading.
35
+
36
+
11
37
  SiliconCompiler 0.36.1 (2026-01-10)
12
38
  =========================================
13
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.36.1
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
@@ -38,12 +38,12 @@ Requires-Dist: PyYAML<7.0.0,>=6.0.0
38
38
  Requires-Dist: GitPython<3.2,>=3.1.44
39
39
  Requires-Dist: PyGithub<2.9.0,>=2.8.0
40
40
  Requires-Dist: urllib3>=1.26.0
41
- Requires-Dist: lambdapdk>=0.2.6
41
+ Requires-Dist: lambdapdk>=0.2.7
42
42
  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"
@@ -45,14 +45,14 @@ dependencies = [
45
45
  "PyGithub >= 2.8.0, < 2.9.0",
46
46
  "urllib3 >= 1.26.0", # Required for PyGithub
47
47
 
48
- "lambdapdk >= 0.2.6",
48
+ "lambdapdk >= 0.2.7",
49
49
 
50
50
  "fasteners >= 0.20",
51
51
  "pandas >= 1.1.5",
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.1'
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'
@@ -244,7 +244,7 @@ class ASIC(Project):
244
244
  if pdk not in self.getkeys("library"):
245
245
  error = True
246
246
  self.logger.error(f"{pdk} library has not been loaded")
247
- elif not isinstance(self.get("library", pdk, field="schema"), PDK):
247
+ elif not isinstance(self.get_library(pdk), PDK):
248
248
  error = True
249
249
  self.logger.error(f"{pdk} must be a PDK")
250
250
 
@@ -432,7 +432,7 @@ class ASIC(Project):
432
432
  if not self.get("asic", "pdk") and self.get("asic", "mainlib"):
433
433
  mainlib = None
434
434
  if self._has_library(self.get("asic", "mainlib")):
435
- mainlib = self.get("library", self.get("asic", "mainlib"), field="schema")
435
+ mainlib = self.get_library(self.get("asic", "mainlib"))
436
436
  if mainlib:
437
437
  mainlib_pdk = mainlib.get("asic", "pdk")
438
438
  if mainlib_pdk:
@@ -530,7 +530,7 @@ class ASICTask(Task):
530
530
  raise ValueError("mainlib has not been defined in [asic,mainlib]")
531
531
  if mainlib not in self.project.getkeys("library"):
532
532
  raise LookupError(f"{mainlib} has not been loaded")
533
- return self.project.get("library", mainlib, field="schema")
533
+ return self.project.get_library(mainlib)
534
534
 
535
535
  @property
536
536
  def pdk(self) -> PDK:
@@ -540,7 +540,7 @@ class ASICTask(Task):
540
540
  raise ValueError("pdk has not been defined in [asic,pdk]")
541
541
  if pdk not in self.project.getkeys("library"):
542
542
  raise LookupError(f"{pdk} has not been loaded")
543
- return self.project.get("library", pdk, field="schema")
543
+ return self.project.get_library(pdk)
544
544
 
545
545
  def set_asic_var(self,
546
546
  key: str,
@@ -694,7 +694,12 @@ class Design(DependencySchema, LibrarySchema):
694
694
  if dataroot is ...:
695
695
  dataroot = None
696
696
  else:
697
- dataroot = self._get_active_dataroot(dataroot)
697
+ if option in ['idir', 'libdir']:
698
+ try:
699
+ dataroot = self._get_active_dataroot(dataroot)
700
+ except ValueError as e:
701
+ if any(not os.path.isabs(v) for v in value):
702
+ raise e
698
703
 
699
704
  with self.active_dataroot(dataroot):
700
705
  if list in typelist and not clobber:
@@ -72,9 +72,10 @@ class Resolver:
72
72
  self.__cacheid = None
73
73
 
74
74
  if self.__root and hasattr(self.__root, "logger"):
75
- self.__logger = self.__root.logger.getChild(f"resolver-{self.name}")
75
+ rootlogger = self.__root.logger
76
76
  else:
77
- self.__logger = logging.getLogger(f"resolver-{self.name}")
77
+ rootlogger = MPManager.logger()
78
+ self.__logger = rootlogger.getChild(f"resolver-{self.name}")
78
79
 
79
80
  @staticmethod
80
81
  def populate_resolvers() -> None:
@@ -1,11 +1,10 @@
1
1
  import logging
2
2
  import os
3
- import sys
4
3
  import uuid
5
4
 
6
5
  import os.path
7
6
 
8
- from typing import Union, List, Tuple, TextIO, Optional, Dict, Set
7
+ from typing import Type, Union, List, Tuple, TextIO, Optional, Dict, Set, TypeVar
9
8
 
10
9
  from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, Scope, \
11
10
  __version__ as schema_version, \
@@ -28,12 +27,14 @@ from siliconcompiler.schema_support.pathschema import PathSchemaBase
28
27
 
29
28
  from siliconcompiler.report.dashboard.cli import CliDashboard
30
29
  from siliconcompiler.scheduler import Scheduler, SCRuntimeError
31
- from siliconcompiler.utils.logging import SCColorLoggerFormatter, SCLoggerFormatter
30
+ from siliconcompiler.utils.logging import get_stream_handler
32
31
  from siliconcompiler.utils import get_file_ext
33
32
  from siliconcompiler.utils.multiprocessing import MPManager
34
33
  from siliconcompiler.utils.paths import jobdir, workdir
35
34
  from siliconcompiler.flows.showflow import ShowFlow
36
35
 
36
+ TProject = TypeVar("TProject", bound="Project")
37
+
37
38
 
38
39
  class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
39
40
  """
@@ -143,12 +144,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
143
144
  self.__logger = MPManager.logger().getChild(f"project_{uuid.uuid4().hex}")
144
145
  self.__logger.setLevel(logging.INFO)
145
146
 
146
- self._logger_console = logging.StreamHandler(stream=sys.stdout)
147
- if SCColorLoggerFormatter.supports_color(sys.stdout):
148
- self._logger_console.setFormatter(SCColorLoggerFormatter(SCLoggerFormatter()))
149
- else:
150
- self._logger_console.setFormatter(SCLoggerFormatter())
151
-
147
+ self._logger_console = get_stream_handler(self, in_run=False, step=None, index=None)
152
148
  self.__logger.addHandler(self._logger_console)
153
149
 
154
150
  def __init_dashboard(self):
@@ -225,7 +221,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
225
221
  if not self.valid("library", design_name):
226
222
  raise KeyError(f"{design_name} design has not been loaded")
227
223
 
228
- return self.get("library", design_name, field="schema")
224
+ return self.get_library(design_name)
229
225
 
230
226
  @property
231
227
  def option(self) -> OptionSchema:
@@ -242,7 +238,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
242
238
  return self.get("option", field="schema")
243
239
 
244
240
  @classmethod
245
- def convert(cls, obj: "Project") -> "Project":
241
+ def convert(cls: Type[TProject], obj: "Project") -> TProject:
246
242
  """
247
243
  Converts a project from one type to another (e.g., Project to Sim).
248
244
 
@@ -482,7 +478,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
482
478
  if not self._has_library(src_lib):
483
479
  continue
484
480
 
485
- if not self.get("library", src_lib, field="schema").has_fileset(src_fileset):
481
+ if not self.get_library(src_lib).has_fileset(src_fileset):
486
482
  self.logger.error(f"{src_fileset} is not a valid fileset in {src_lib}")
487
483
  error = True
488
484
  continue
@@ -496,7 +492,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
496
492
  continue
497
493
 
498
494
  if dst_fileset and \
499
- not self.get("library", dst_lib, field="schema").has_fileset(dst_fileset):
495
+ not self.get_library(dst_lib).has_fileset(dst_fileset):
500
496
  self.logger.error(f"{dst_fileset} is not a valid fileset in {dst_lib}")
501
497
  error = True
502
498
  continue
@@ -532,7 +528,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
532
528
  f"{', '.join([f'{step}/{index}' for step, index in breakpoints])}")
533
529
  self.__dashboard.stop()
534
530
 
535
- def run(self) -> "Project":
531
+ def run(self) -> TProject:
536
532
  '''
537
533
  Executes the compilation flow defined in the project's flowgraph.
538
534
 
@@ -715,7 +711,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
715
711
  if dst_lib:
716
712
  if not self._has_library(dst_lib):
717
713
  raise KeyError(f"{dst_lib} is not a loaded library")
718
- dst_obj = self.get("library", dst_lib, field="schema")
714
+ dst_obj = self.get_library(dst_lib)
719
715
  else:
720
716
  dst_obj = None
721
717
  if not dst_fileset:
@@ -844,7 +840,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
844
840
 
845
841
  if isinstance(src_dep, str):
846
842
  if self._has_library(src_dep):
847
- src_dep = self.get("library", src_dep, field="schema")
843
+ src_dep = self.get_library(src_dep)
848
844
  else:
849
845
  src_dep_name = src_dep
850
846
  src_dep = None
@@ -875,7 +871,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
875
871
  if not self._has_library(alias_dep):
876
872
  raise KeyError(f"{alias_dep} has not been loaded")
877
873
 
878
- alias_dep = self.get("library", alias_dep, field="schema")
874
+ alias_dep = self.get_library(alias_dep)
879
875
 
880
876
  if alias_dep is not None:
881
877
  if isinstance(alias_dep, Design):
@@ -894,6 +890,28 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
894
890
  else:
895
891
  return self.add("option", "alias", alias)
896
892
 
893
+ def get_library(self, library: str) -> NamedSchema:
894
+ """
895
+ Retrieves a library by name from the project.
896
+
897
+ Args:
898
+ library (str): The name of the library to retrieve.
899
+
900
+ Returns:
901
+ NamedSchema: The `NamedSchema` object representing the library.
902
+
903
+ Raises:
904
+ KeyError: If the specified library is not found in the project.
905
+ TypeError: If the provided `library` is not a string.
906
+ """
907
+ if not isinstance(library, str):
908
+ raise TypeError("library must be a string")
909
+
910
+ if not self._has_library(library):
911
+ raise KeyError(f"{library} is not a valid library")
912
+
913
+ return self.get("library", library, field="schema")
914
+
897
915
  def _has_library(self, library: Union[str, NamedSchema]) -> bool:
898
916
  """
899
917
  Checks if a library with the given name exists and is loaded in the project.
@@ -1222,7 +1240,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
1222
1240
  return None
1223
1241
 
1224
1242
  # Create copy of project to avoid changing user project
1225
- proj: Project = self.copy()
1243
+ proj = self.copy()
1226
1244
  proj.set_flow(ShowFlow(task))
1227
1245
 
1228
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
 
@@ -1,5 +1,7 @@
1
1
  import contextlib
2
2
 
3
+ import os.path
4
+
3
5
  from pathlib import Path
4
6
 
5
7
  from typing import List, Tuple, Optional, Union, Iterable, Set
@@ -118,8 +120,14 @@ class FileSetSchema(PathSchema):
118
120
  ext = utils.get_file_ext(filename)
119
121
  filetype = utils.get_default_iomap().get(ext, ext)
120
122
 
123
+ try:
124
+ dataroot = self._get_active_dataroot(dataroot)
125
+ except ValueError as e:
126
+ if not os.path.isabs(filename):
127
+ raise e
128
+
121
129
  # adding files to dictionary
122
- with self.active_dataroot(self._get_active_dataroot(dataroot)):
130
+ with self.active_dataroot(dataroot):
123
131
  if clobber:
124
132
  return self.set('fileset', fileset, 'file', filetype, filename)
125
133
  else:
@@ -11,7 +11,9 @@ from siliconcompiler.schema.parameter import Parameter, Scope
11
11
  from siliconcompiler.schema.utils import trim
12
12
 
13
13
  from siliconcompiler.package import Resolver
14
+ from siliconcompiler.utils.logging import get_stream_handler
14
15
  from siliconcompiler.utils.paths import collectiondir, cwdirsafe
16
+ from siliconcompiler.utils.multiprocessing import MPManager
15
17
 
16
18
 
17
19
  class PathSchemaBase(BaseSchema):
@@ -19,6 +21,15 @@ class PathSchemaBase(BaseSchema):
19
21
  Schema extension to add simpler find_files and check_filepaths
20
22
  '''
21
23
 
24
+ def __getlogger(self, logger_name: str) -> logging.Logger:
25
+ schema_root = self._parent(root=True)
26
+ root_logger = getattr(schema_root, "logger", MPManager.logger())
27
+ logger = root_logger.getChild(logger_name)
28
+ if not logger.handlers:
29
+ logger.addHandler(get_stream_handler(schema_root, in_run=False, step=None, index=None))
30
+ logger.setLevel(logging.INFO)
31
+ return logger
32
+
22
33
  def find_files(self, *keypath: str,
23
34
  missing_ok: bool = False,
24
35
  step: Optional[str] = None, index: Optional[Union[int, str]] = None) \
@@ -69,13 +80,10 @@ class PathSchemaBase(BaseSchema):
69
80
  True if all file paths are valid, otherwise False.
70
81
  '''
71
82
  schema_root = self._parent(root=True)
72
- logger = getattr(schema_root,
73
- "logger",
74
- logging.getLogger("siliconcompiler.check_filepaths"))
75
83
 
76
84
  return super()._check_filepaths(
77
85
  ignore_keys=ignore_keys,
78
- logger=logger,
86
+ logger=self.__getlogger("check_filepaths"),
79
87
  collection_dir=collectiondir(schema_root),
80
88
  cwd=cwdirsafe(schema_root))
81
89
 
@@ -121,13 +129,11 @@ class PathSchemaBase(BaseSchema):
121
129
  >>> hashlist = hash_files('input', 'rtl', 'verilog')
122
130
  Computes, stores, and returns hashes of files in :keypath:`input, rtl, verilog`.
123
131
  '''
124
- schema_root = self._parent(root=True)
125
- logger = getattr(schema_root,
126
- "logger",
127
- logging.getLogger("siliconcompiler.hash_files"))
128
-
129
132
  if verbose:
130
- logger.info(f"Computing hash value for [{','.join([*self._keypath, *keypath])}]")
133
+ self.__getlogger("hash_files").info(
134
+ f"Computing hash value for [{','.join([*self._keypath, *keypath])}]")
135
+
136
+ schema_root = self._parent(root=True)
131
137
 
132
138
  hashes = super()._hash_files(*keypath,
133
139
  missing_ok=missing_ok,