siliconcompiler 0.35.4__tar.gz → 0.36.0__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.35.4 → siliconcompiler-0.36.0}/Changes +21 -0
  2. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/PKG-INFO +3 -3
  3. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/pyproject.toml +4 -3
  4. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/_metadata.py +1 -1
  5. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/constraints/__init__.py +4 -1
  6. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/constraints/asic_timing.py +230 -38
  7. siliconcompiler-0.36.0/siliconcompiler/constraints/fpga_timing.py +384 -0
  8. siliconcompiler-0.36.0/siliconcompiler/constraints/timing_mode.py +82 -0
  9. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -6
  10. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flowgraph.py +95 -42
  11. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/generate_openroad_rcx.py +2 -2
  12. siliconcompiler-0.36.0/siliconcompiler/flows/highresscreenshotflow.py +37 -0
  13. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/library.py +2 -1
  14. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/package/__init__.py +39 -45
  15. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/project.py +4 -1
  16. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/scheduler.py +64 -35
  17. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/schedulernode.py +5 -2
  18. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/slurm.py +7 -6
  19. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/taskscheduler.py +19 -16
  20. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/_metadata.py +1 -1
  21. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/namedschema.py +2 -4
  22. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/cmdlineschema.py +0 -3
  23. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/dependencyschema.py +0 -6
  24. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/record.py +4 -3
  25. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tool.py +58 -27
  26. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -6
  27. siliconcompiler-0.36.0/siliconcompiler/tools/keplerformal/__init__.py +7 -0
  28. siliconcompiler-0.36.0/siliconcompiler/tools/keplerformal/lec.py +112 -0
  29. siliconcompiler-0.36.0/siliconcompiler/tools/klayout/screenshot.py +112 -0
  30. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/scripts/klayout_export.py +10 -40
  31. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/scripts/klayout_show.py +4 -4
  32. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +13 -1
  33. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/montage/tile.py +26 -12
  34. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/_apr.py +26 -10
  35. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/init_floorplan.py +5 -2
  36. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/power_grid_analysis.py +1 -1
  37. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +49 -14
  38. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +6 -4
  39. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +4 -4
  40. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +14 -5
  41. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +2 -2
  42. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +6 -3
  43. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +1 -1
  44. siliconcompiler-0.36.0/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +11 -0
  45. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +16 -12
  46. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -1
  47. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/write_data.py +2 -2
  48. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +2 -2
  49. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +2 -2
  50. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +12 -14
  51. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/timing.py +6 -2
  52. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/_tools.json +9 -4
  53. siliconcompiler-0.36.0/siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +72 -0
  54. siliconcompiler-0.36.0/siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +72 -0
  55. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/multiprocessing.py +11 -0
  56. siliconcompiler-0.36.0/siliconcompiler/utils/settings.py +162 -0
  57. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler.egg-info/PKG-INFO +3 -3
  58. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler.egg-info/SOURCES.txt +6 -0
  59. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler.egg-info/requires.txt +2 -2
  60. siliconcompiler-0.35.4/siliconcompiler/constraints/fpga_timing.py +0 -189
  61. siliconcompiler-0.35.4/siliconcompiler/tools/klayout/screenshot.py +0 -47
  62. siliconcompiler-0.35.4/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -3
  63. siliconcompiler-0.35.4/siliconcompiler/utils/settings.py +0 -141
  64. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/.dockerignore +0 -0
  65. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/.flake8 +0 -0
  66. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/.gitattributes +0 -0
  67. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/.gitignore +0 -0
  68. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/.readthedocs.yaml +0 -0
  69. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/CONTRIBUTING.md +0 -0
  70. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/LICENSE +0 -0
  71. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/MANIFEST.in +0 -0
  72. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/README.md +0 -0
  73. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/SECURITY.md +0 -0
  74. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/scripts/.gitignore +0 -0
  75. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/scripts/methods.py +0 -0
  76. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/scripts/profile_sc.py +0 -0
  77. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/scripts/requirements.txt +0 -0
  78. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/setup.cfg +0 -0
  79. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/__init__.py +0 -0
  80. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/_common.py +0 -0
  81. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/__init__.py +0 -0
  82. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/_common.py +0 -0
  83. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/sc_dashboard.py +0 -0
  84. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/sc_install.py +0 -0
  85. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/sc_issue.py +0 -0
  86. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/sc_remote.py +0 -0
  87. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/sc_server.py +0 -0
  88. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/sc_show.py +0 -0
  89. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/smake.py +0 -0
  90. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/utils/replay.py +0 -0
  91. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/apps/utils/summarize.py +0 -0
  92. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/asic.py +0 -0
  93. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/checklist.py +0 -0
  94. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/checklists/__init__.py +0 -0
  95. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  96. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/constraints/asic_component.py +0 -0
  97. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/constraints/asic_floorplan.py +0 -0
  98. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/constraints/asic_pins.py +0 -0
  99. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  100. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  101. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  102. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/__init__.py +0 -0
  103. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
  104. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
  105. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
  106. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
  107. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
  108. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
  109. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
  110. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
  111. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
  112. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/heartbeat.sdc +0 -0
  113. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/heartbeat.v +0 -0
  114. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/logo.png +0 -0
  115. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/__init__.py +0 -0
  116. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/email/__init__.py +0 -0
  117. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/email/general.j2 +0 -0
  118. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/email/summary.j2 +0 -0
  119. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/issue/README.txt +0 -0
  120. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/issue/__init__.py +0 -0
  121. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/issue/run.sh +0 -0
  122. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
  123. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/replay/replay.sh.j2 +0 -0
  124. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
  125. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/replay/setup.sh +0 -0
  126. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
  127. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/slurm/run.sh +0 -0
  128. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
  129. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/demos/__init__.py +0 -0
  130. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/demos/asic_demo.py +0 -0
  131. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/demos/fpga_demo.py +0 -0
  132. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/design.py +0 -0
  133. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/__init__.py +0 -0
  134. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/asicflow.py +0 -0
  135. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/drcflow.py +0 -0
  136. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/dvflow.py +0 -0
  137. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/fpgaflow.py +0 -0
  138. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/interposerflow.py +0 -0
  139. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/lintflow.py +0 -0
  140. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/showflow.py +0 -0
  141. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/signoffflow.py +0 -0
  142. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/flows/synflow.py +0 -0
  143. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/fpga.py +0 -0
  144. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/fpgas/__init__.py +0 -0
  145. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  146. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/metrics/__init__.py +0 -0
  147. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/metrics/asic.py +0 -0
  148. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/metrics/fpga.py +0 -0
  149. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/optimizer/__init__.py +0 -0
  150. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/optimizer/vizier.py +0 -0
  151. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/package/git.py +0 -0
  152. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/package/github.py +0 -0
  153. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/package/https.py +0 -0
  154. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/pdk.py +0 -0
  155. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/__init__.py +0 -0
  156. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/client.py +0 -0
  157. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/schema.py +0 -0
  158. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server.py +0 -0
  159. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  160. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  161. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  162. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  163. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  164. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  165. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  166. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  167. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  168. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  169. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  170. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  171. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  172. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  173. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  174. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/__init__.py +0 -0
  175. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/__init__.py +0 -0
  176. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
  177. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/cli/board.py +0 -0
  178. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
  179. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
  180. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
  181. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
  182. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
  183. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
  184. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
  185. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
  186. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  187. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/state.py +0 -0
  188. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
  189. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
  190. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
  191. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/report.py +0 -0
  192. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/summary_image.py +0 -0
  193. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/report/utils.py +0 -0
  194. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/__init__.py +0 -0
  195. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/docker.py +0 -0
  196. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/error.py +0 -0
  197. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/run_node.py +0 -0
  198. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/send_messages.py +0 -0
  199. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  200. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  201. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/__init__.py +0 -0
  202. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/baseschema.py +0 -0
  203. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/docs/__init__.py +0 -0
  204. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/docs/schemagen.py +0 -0
  205. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/docs/utils.py +0 -0
  206. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/docschema.py +0 -0
  207. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/editableschema.py +0 -0
  208. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/journal.py +0 -0
  209. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/parameter.py +0 -0
  210. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/parametertype.py +0 -0
  211. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/parametervalue.py +0 -0
  212. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/safeschema.py +0 -0
  213. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema/utils.py +0 -0
  214. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/__init__.py +0 -0
  215. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/filesetschema.py +0 -0
  216. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/metric.py +0 -0
  217. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/option.py +0 -0
  218. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/packageschema.py +0 -0
  219. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schema_support/pathschema.py +0 -0
  220. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/schematic.py +0 -0
  221. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/__init__.py +0 -0
  222. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/asap7_demo.py +0 -0
  223. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  224. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/gf180_demo.py +0 -0
  225. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/ihp130_demo.py +0 -0
  226. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/interposer_demo.py +0 -0
  227. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/targets/skywater130_demo.py +0 -0
  228. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/__init__.py +0 -0
  229. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/_common/__init__.py +0 -0
  230. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  231. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  232. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  233. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  234. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/bambu/__init__.py +0 -0
  235. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/bambu/convert.py +0 -0
  236. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  237. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/bluespec/convert.py +0 -0
  238. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/__init__.py +0 -0
  239. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/filter.py +0 -0
  240. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/importfiles.py +0 -0
  241. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/join.py +0 -0
  242. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/maximum.py +0 -0
  243. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/minimum.py +0 -0
  244. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/mux.py +0 -0
  245. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/nop.py +0 -0
  246. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/builtin/verify.py +0 -0
  247. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/chisel/__init__.py +0 -0
  248. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/chisel/convert.py +0 -0
  249. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
  250. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
  251. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/execute/__init__.py +0 -0
  252. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/execute/exec_input.py +0 -0
  253. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  254. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  255. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  256. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/ghdl/convert.py +0 -0
  257. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/graphviz/__init__.py +0 -0
  258. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
  259. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/graphviz/show.py +0 -0
  260. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
  261. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
  262. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/gtkwave/show.py +0 -0
  263. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/icarus/__init__.py +0 -0
  264. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/icarus/compile.py +0 -0
  265. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/icepack/__init__.py +0 -0
  266. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  267. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/__init__.py +0 -0
  268. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  269. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/drc.py +0 -0
  270. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/export.py +0 -0
  271. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/operations.py +0 -0
  272. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +0 -0
  273. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +0 -0
  274. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/klayout/show.py +0 -0
  275. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/magic/__init__.py +0 -0
  276. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/magic/drc.py +0 -0
  277. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/magic/extspice.py +0 -0
  278. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
  279. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
  280. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
  281. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/montage/__init__.py +0 -0
  282. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/netgen/__init__.py +0 -0
  283. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  284. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/netgen/lvs.py +0 -0
  285. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
  286. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  287. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  288. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/__init__.py +0 -0
  289. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  290. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  291. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  292. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  293. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  294. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  295. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
  296. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/global_placement.py +0 -0
  297. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/global_route.py +0 -0
  298. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  299. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/metrics.py +0 -0
  300. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  301. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/power_grid.py +0 -0
  302. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  303. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  304. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
  305. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  306. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  307. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  308. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  309. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  310. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
  311. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
  312. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
  313. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
  314. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
  315. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
  316. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
  317. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
  318. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
  319. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
  320. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
  321. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
  322. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
  323. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
  324. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
  325. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  326. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  327. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
  328. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  329. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
  330. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  331. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  332. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  333. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
  334. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/show.py +0 -0
  335. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  336. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  337. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/__init__.py +0 -0
  338. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/check_library.py +0 -0
  339. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  340. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  341. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  342. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/slang/__init__.py +0 -0
  343. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/slang/elaborate.py +0 -0
  344. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/slang/lint.py +0 -0
  345. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/surelog/__init__.py +0 -0
  346. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/surelog/parse.py +0 -0
  347. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  348. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  349. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/surfer/__init__.py +0 -0
  350. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/surfer/show.py +0 -0
  351. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  352. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/sv2v/convert.py +0 -0
  353. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/verilator/__init__.py +0 -0
  354. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/verilator/compile.py +0 -0
  355. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/verilator/lint.py +0 -0
  356. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/__init__.py +0 -0
  357. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  358. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/place.py +0 -0
  359. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/route.py +0 -0
  360. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  361. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  362. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  363. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  364. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  365. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  366. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  367. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/__init__.py +0 -0
  368. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  369. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  370. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/place.py +0 -0
  371. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/route.py +0 -0
  372. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  373. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/vpr/show.py +0 -0
  374. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/xdm/__init__.py +0 -0
  375. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/xdm/convert.py +0 -0
  376. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/xyce/__init__.py +0 -0
  377. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/xyce/simulate.py +0 -0
  378. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/__init__.py +0 -0
  379. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
  380. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  381. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
  382. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
  383. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +0 -0
  384. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +0 -0
  385. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +0 -0
  386. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
  387. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
  388. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
  389. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  390. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  391. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  392. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  393. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/_tools.py +0 -0
  394. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  395. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  396. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  397. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  398. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  399. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  400. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  401. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
  402. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  403. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  404. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
  405. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
  406. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  407. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  408. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
  409. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  410. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  411. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  412. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  413. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  414. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
  415. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
  416. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  417. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
  418. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  419. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  420. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
  421. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
  422. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  423. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
  424. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
  425. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
  426. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
  427. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  428. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  429. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  430. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  431. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
  432. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  433. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  434. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  435. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  436. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  437. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  438. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  439. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  440. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
  441. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  442. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
  443. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
  444. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  445. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  446. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  447. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
  448. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  449. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
  450. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  451. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
  452. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
  453. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  454. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  455. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  456. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  457. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  458. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  459. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  460. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  461. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
  462. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  463. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
  464. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
  465. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
  466. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  467. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  468. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  469. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
  470. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  471. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
  472. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
  473. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
  474. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  475. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
  476. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
  477. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  478. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
  479. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
  480. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
  481. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  482. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  483. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  484. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  485. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
  486. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  487. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  488. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
  489. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  490. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
  491. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
  492. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
  493. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  494. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  495. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  496. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
  497. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  498. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
  499. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
  500. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
  501. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  502. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/__init__.py +0 -0
  503. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/curation.py +0 -0
  504. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/issue.py +0 -0
  505. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/logging.py +0 -0
  506. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/paths.py +0 -0
  507. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/showtools.py +0 -0
  508. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler/utils/units.py +0 -0
  509. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  510. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler.egg-info/entry_points.txt +0 -0
  511. {siliconcompiler-0.35.4 → siliconcompiler-0.36.0}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,27 @@ 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.0 (2026-01-06)
12
+ =========================================
13
+
14
+ **Major:**
15
+
16
+ * Changed schema to better handle timing constraints, by splitting out mode specific information from the scenarios.
17
+
18
+ **Minor:**
19
+
20
+ * Reimplemented flowgraph rendering with file IO information.
21
+ * Fixed tool version checking to support threaded runs.
22
+ * Reworked use of pipes during execution to avoid creating more pipes than needed.
23
+ * Fixed flowgraph IO checks to only check required files.
24
+
25
+ * Tools:
26
+
27
+ * klayout: fixed handling of GDS generation when foreign is specified in lef.
28
+ * openroad: added support for halo constraints.
29
+ * kelper-formal: added initial support for LEC with kepler-formal.
30
+
31
+
11
32
  SiliconCompiler 0.35.4 (2025-12-08)
12
33
  =========================================
13
34
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.35.4
3
+ Version: 0.36.0
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,7 +38,7 @@ 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.4
41
+ Requires-Dist: lambdapdk>=0.2.6
42
42
  Requires-Dist: fasteners>=0.20
43
43
  Requires-Dist: pandas>=1.1.5
44
44
  Requires-Dist: psutil>=5.8.0
@@ -61,7 +61,7 @@ Requires-Dist: responses==0.25.8; extra == "test"
61
61
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
62
62
  Provides-Extra: lint
63
63
  Requires-Dist: flake8==7.3.0; extra == "lint"
64
- Requires-Dist: tclint==0.6.2; extra == "lint"
64
+ Requires-Dist: tclint==0.7.0; extra == "lint"
65
65
  Requires-Dist: codespell==2.4.1; extra == "lint"
66
66
  Provides-Extra: docs
67
67
  Requires-Dist: Sphinx<8.3,>=7.4; extra == "docs"
@@ -45,7 +45,7 @@ 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.4",
48
+ "lambdapdk >= 0.2.6",
49
49
 
50
50
  "fasteners >= 0.20",
51
51
  "pandas >= 1.1.5",
@@ -112,7 +112,7 @@ test = [
112
112
  ]
113
113
  lint = [
114
114
  "flake8 == 7.3.0",
115
- "tclint == 0.6.2",
115
+ "tclint == 0.7.0",
116
116
  "codespell == 2.4.1"
117
117
  ]
118
118
  docs = [
@@ -159,6 +159,7 @@ filterwarnings = [
159
159
  'ignore:Creating a LegacyVersion has been deprecated and will be removed in the next major release',
160
160
  'ignore:.* is multi-threaded, use of fork\(\) may lead to deadlocks in the child.:DeprecationWarning',
161
161
  'ignore:This function is deprecated and will be removed in a future version, use cls\.find_task instead:DeprecationWarning',
162
+ 'ignore:This function is deprecated and will be removed in a future version, use TimingModeSchema instead:DeprecationWarning',
162
163
  'ignore:Python 3\.14 will, by default, filter extracted tar archives and reject files or modify their metadata\. Use the filter argument to control this behavior\.:DeprecationWarning'
163
164
  ]
164
165
 
@@ -181,7 +182,7 @@ spaces-in-braces = true
181
182
  skip = '*/build/*,./docs/_build/*,*.json,*.xml,*.v,./siliconcompiler/data/templates/report/bootstrap.min.js,./tests/utils/test_utils.py,./tests/tools/data/klayout_pdk/interposer.drc'
182
183
  count = true
183
184
  quiet-level = 3
184
- ignore-words-list = 'synopsys,inout,subtile,FRAM,dffer,dffers'
185
+ ignore-words-list = 'synopsys,inout,subtile,FRAM,dffer,dffers,thirdparty'
185
186
 
186
187
  [tool.check-wheel-contents]
187
188
  ignore = [
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.35.4'
2
+ version = '0.36.0'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -1,5 +1,7 @@
1
1
  from siliconcompiler.schema import BaseSchema
2
2
 
3
+ from siliconcompiler.constraints.timing_mode import TimingModeSchema
4
+
3
5
  from siliconcompiler.constraints.asic_timing import \
4
6
  ASICTimingConstraintSchema, ASICTimingScenarioSchema
5
7
  from siliconcompiler.constraints.asic_floorplan import ASICAreaConstraint
@@ -29,5 +31,6 @@ __all__ = [
29
31
  "ASICComponentConstraint",
30
32
  "ASICComponentConstraints",
31
33
  "FPGATimingConstraintSchema",
32
- "FPGATimingScenarioSchema"
34
+ "FPGATimingScenarioSchema",
35
+ "TimingModeSchema"
33
36
  ]
@@ -1,8 +1,10 @@
1
- from typing import Union, Set, List, Tuple, Optional
1
+ from typing import Union, Set, List, Tuple, Optional, Dict
2
2
 
3
3
  from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, \
4
4
  PerNode, Scope
5
5
  from siliconcompiler import Design
6
+ from siliconcompiler.constraints.timing_mode import TimingModeSchema
7
+ from siliconcompiler.schema.baseschema import LazyLoad
6
8
 
7
9
 
8
10
  class ASICTimingScenarioSchema(NamedSchema):
@@ -93,20 +95,6 @@ class ASICTimingScenarioSchema(NamedSchema):
93
95
  help="""Operating mode for the scenario. Operating mode strings
94
96
  can be values such as test, functional, standby."""))
95
97
 
96
- schema.insert(
97
- 'sdcfileset',
98
- Parameter(
99
- '[(str,str)]',
100
- pernode=PerNode.OPTIONAL,
101
- scope=Scope.GLOBAL,
102
- shorthelp="Constraint: SDC files",
103
- switch="-constraint_timing_file 'scenario <file>'",
104
- example=["api: asic.set('constraint', 'timing', 'worst', 'file', 'hello.sdc')"],
105
- help="""List of timing constraint sets files to use for the scenario. The
106
- values are combined with any constraints specified by the design
107
- 'constraint' parameter. If no constraints are found, a default
108
- constraint file is used based on the clock definitions."""))
109
-
110
98
  schema.insert(
111
99
  'check',
112
100
  Parameter(
@@ -324,19 +312,22 @@ class ASICTimingScenarioSchema(NamedSchema):
324
312
  TypeError: If `design` is not a Design object or a string, or if `fileset` is not
325
313
  a string.
326
314
  """
327
- if isinstance(design, Design):
328
- design = design.name
315
+ import warnings
316
+ warnings.warn("This function is deprecated and will be removed in a future version, "
317
+ "use TimingModeSchema instead", DeprecationWarning, stacklevel=2)
329
318
 
330
- if not isinstance(design, str):
331
- raise TypeError("design must be a design object or string")
319
+ mode = self.get_mode(step=step, index=index)
320
+ if mode is None:
321
+ raise ValueError("Mode not defined")
332
322
 
333
- if not isinstance(fileset, str):
334
- raise TypeError("fileset must be a string")
335
-
336
- if clobber:
337
- return self.set("sdcfileset", (design, fileset), step=step, index=index)
338
- else:
339
- return self.add("sdcfileset", (design, fileset), step=step, index=index)
323
+ timing_constraints: ASICTimingConstraintSchema = self._parent()._parent()
324
+ try:
325
+ modeobj = timing_constraints.get_mode(mode)
326
+ except LookupError:
327
+ modeobj = timing_constraints.make_mode(mode)
328
+ return modeobj.add_sdcfileset(design=design, fileset=fileset,
329
+ clobber=clobber,
330
+ step=step, index=index)
340
331
 
341
332
  def get_sdcfileset(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
342
333
  -> List[Tuple[str, str]]:
@@ -350,7 +341,20 @@ class ASICTimingScenarioSchema(NamedSchema):
350
341
  Returns:
351
342
  A list of tuples, where each tuple contains the design name and the SDC fileset name.
352
343
  """
353
- return self.get("sdcfileset", step=step, index=index)
344
+ import warnings
345
+ warnings.warn("This function is deprecated and will be removed in a future version, "
346
+ "use TimingModeSchema instead", DeprecationWarning, stacklevel=2)
347
+
348
+ mode = self.get_mode(step=step, index=index)
349
+ if mode is None:
350
+ raise ValueError("Mode not defined")
351
+
352
+ timing_constraints: ASICTimingConstraintSchema = self._parent()._parent()
353
+ try:
354
+ modeobj = timing_constraints.get_mode(mode)
355
+ except LookupError:
356
+ modeobj = timing_constraints.make_mode(mode)
357
+ return modeobj.get_sdcfileset(step=step, index=index)
354
358
 
355
359
  def add_check(self,
356
360
  check: Union[List[str], str],
@@ -386,6 +390,30 @@ class ASICTimingScenarioSchema(NamedSchema):
386
390
  """
387
391
  return self.get("check", step=step, index=index)
388
392
 
393
+ def _from_dict(self, manifest: Dict,
394
+ keypath: Union[List[str], Tuple[str, ...]],
395
+ version: Optional[Tuple[int, ...]] = None,
396
+ lazyload: LazyLoad = LazyLoad.ON) \
397
+ -> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
398
+
399
+ sdcfileset = None
400
+ if version and version < (0, 53, 0):
401
+ sdcfileset = manifest.pop("sdcfileset", None)
402
+ lazyload = LazyLoad.OFF
403
+
404
+ ret = super()._from_dict(manifest, keypath, version, lazyload)
405
+
406
+ if sdcfileset:
407
+ param = Parameter.from_dict(sdcfileset, keypath=(*keypath, "sdcfileset"),
408
+ version=version)
409
+ for value, step, index in param.getvalues():
410
+ if self.get_mode(step=step, index=index) is None:
411
+ self.set_mode("_importcreated_", step=step, index=index)
412
+ for design, fileset in value:
413
+ self.add_sdcfileset(design, fileset, step=step, index=index)
414
+
415
+ return ret
416
+
389
417
 
390
418
  class ASICTimingConstraintSchema(BaseSchema):
391
419
  """
@@ -400,7 +428,8 @@ class ASICTimingConstraintSchema(BaseSchema):
400
428
  def __init__(self):
401
429
  super().__init__()
402
430
 
403
- EditableSchema(self).insert("default", ASICTimingScenarioSchema())
431
+ EditableSchema(self).insert("scenario", "default", ASICTimingScenarioSchema())
432
+ EditableSchema(self).insert("mode", "default", TimingModeSchema())
404
433
 
405
434
  def add_scenario(self, scenario: ASICTimingScenarioSchema):
406
435
  """
@@ -426,9 +455,10 @@ class ASICTimingConstraintSchema(BaseSchema):
426
455
  if scenario.name is None:
427
456
  raise ValueError("scenario must have a name")
428
457
 
429
- EditableSchema(self).insert(scenario.name, scenario, clobber=True)
458
+ EditableSchema(self).insert("scenario", scenario.name, scenario, clobber=True)
430
459
 
431
- def get_scenario(self, scenario: Optional[str] = None):
460
+ def get_scenario(self, scenario: Optional[str] = None) \
461
+ -> Union[ASICTimingScenarioSchema, Dict[str, ASICTimingScenarioSchema]]:
432
462
  """
433
463
  Retrieves one or all timing scenarios from the configuration.
434
464
 
@@ -452,13 +482,13 @@ class ASICTimingConstraintSchema(BaseSchema):
452
482
  """
453
483
  if scenario is None:
454
484
  scenarios = {}
455
- for name in self.getkeys():
456
- scenarios[name] = self.get(name, field="schema")
485
+ for name in self.getkeys("scenario"):
486
+ scenarios[name] = self.get("scenario", name, field="schema")
457
487
  return scenarios
458
488
 
459
- if not self.valid(scenario):
489
+ if not self.valid("scenario", scenario):
460
490
  raise LookupError(f"{scenario} is not defined")
461
- return self.get(scenario, field="schema")
491
+ return self.get("scenario", scenario, field="schema")
462
492
 
463
493
  def make_scenario(self, scenario: str) -> ASICTimingScenarioSchema:
464
494
  """
@@ -485,7 +515,7 @@ class ASICTimingConstraintSchema(BaseSchema):
485
515
  if not scenario:
486
516
  raise ValueError("scenario name is required")
487
517
 
488
- if self.valid(scenario):
518
+ if self.valid("scenario", scenario):
489
519
  raise LookupError(f"{scenario} scenario already exists")
490
520
 
491
521
  scenarioobj = ASICTimingScenarioSchema(scenario)
@@ -516,7 +546,7 @@ class ASICTimingConstraintSchema(BaseSchema):
516
546
  constraint = EditableSchema(self.get_scenario(scenario)).copy()
517
547
  EditableSchema(constraint).rename(name)
518
548
  if insert:
519
- if self.valid(name):
549
+ if self.valid("scenario", name):
520
550
  raise ValueError(f"{name} already exists")
521
551
  self.add_scenario(constraint)
522
552
  return constraint
@@ -542,8 +572,170 @@ class ASICTimingConstraintSchema(BaseSchema):
542
572
  if not scenario:
543
573
  raise ValueError("scenario name is required")
544
574
 
545
- if not self.valid(scenario):
575
+ if not self.valid("scenario", scenario):
576
+ return False
577
+
578
+ EditableSchema(self).remove("scenario", scenario)
579
+ return True
580
+
581
+ def add_mode(self, mode: TimingModeSchema):
582
+ """
583
+ Adds a timing mode to the design configuration.
584
+
585
+ This method is responsible for incorporating a new or updated timing mode
586
+ into the system's configuration. If a mode with the same name already
587
+ exists, it will be overwritten (`clobber=True`).
588
+
589
+ Args:
590
+ mode: The :class:`TimingModeSchema` object representing the timing mode
591
+ to add. This object must have a valid name defined via its `name()` method.
592
+
593
+ Raises:
594
+ TypeError: If the provided `mode` argument is not an instance of
595
+ :class:`TimingModeSchema`.
596
+ ValueError: If the `mode` object's `name()` method returns None, indicating
597
+ that the mode does not have a defined name.
598
+ """
599
+ if not isinstance(mode, TimingModeSchema):
600
+ raise TypeError("mode must be a timing mode object")
601
+
602
+ if mode.name is None:
603
+ raise ValueError("mode must have a name")
604
+
605
+ EditableSchema(self).insert("mode", mode.name, mode, clobber=True)
606
+
607
+ def get_mode(self, mode: Optional[str] = None) \
608
+ -> Union[TimingModeSchema, Dict[str, TimingModeSchema]]:
609
+ """
610
+ Retrieves one or all timing modes from the configuration.
611
+
612
+ This method provides flexibility to fetch either a specific timing mode
613
+ by its name or a collection of all currently defined modes.
614
+
615
+ Args:
616
+ mode (str, optional): The name (string) of the specific timing mode to retrieve.
617
+ If this argument is omitted or set to None, the method will
618
+ return a dictionary containing all available timing modes.
619
+
620
+ Returns:
621
+ If `mode` is provided: The :class:`TimingModeSchema` object corresponding
622
+ to the specified mode name.
623
+ If `mode` is None: A dictionary where keys are mode names (str) and
624
+ values are their respective :class:`TimingModeSchema` objects.
625
+
626
+ Raises:
627
+ LookupError: If a specific `mode` name is provided but no mode with
628
+ that name is found in the configuration.
629
+ """
630
+ if mode is None:
631
+ modes = {}
632
+ for name in self.getkeys("mode"):
633
+ modes[name] = self.get("mode", name, field="schema")
634
+ return modes
635
+
636
+ if not self.valid("mode", mode):
637
+ raise LookupError(f"{mode} is not defined")
638
+ return self.get("mode", mode, field="schema")
639
+
640
+ def make_mode(self, mode: str) -> TimingModeSchema:
641
+ """
642
+ Creates and adds a new timing mode with the specified name.
643
+
644
+ This method initializes a new :class:`TimingModeSchema` object with the given
645
+ name and immediately adds it to the constraint configuration. It ensures that
646
+ a mode with the same name does not already exist, preventing accidental
647
+ overwrites.
648
+
649
+ Args:
650
+ mode (str): The name for the new timing mode. This name must be
651
+ a non-empty string and unique within the current configuration.
652
+
653
+ Returns:
654
+ :class:`TimingModeSchema`: The newly created :class:`TimingModeSchema`
655
+ object.
656
+
657
+ Raises:
658
+ ValueError: If the provided `mode` name is empty or None.
659
+ LookupError: If a mode with the specified `mode` name already exists
660
+ in the configuration.
661
+ """
662
+ if not mode:
663
+ raise ValueError("mode name is required")
664
+
665
+ if self.valid("mode", mode):
666
+ raise LookupError(f"{mode} mode already exists")
667
+
668
+ modeobj = TimingModeSchema(mode)
669
+ self.add_mode(modeobj)
670
+ return modeobj
671
+
672
+ def copy_mode(self, mode: str, name: str, insert: bool = True) \
673
+ -> TimingModeSchema:
674
+ """
675
+ Copies an existing timing mode, renames it, and optionally adds it to the design.
676
+
677
+ This method retrieves the mode identified by ``mode``, creates a
678
+ deep copy of it, and renames the copy to ``name``. If ``insert`` is True,
679
+ the new mode is immediately added to the configuration.
680
+
681
+ Args:
682
+ mode (str): The name of the existing mode to be copied.
683
+ name (str): The name to assign to the new copied mode.
684
+ insert (bool, optional): Whether to add the newly created mode
685
+ to the configuration. Defaults to True.
686
+
687
+ Returns:
688
+ TimingModeSchema: The newly created copy of the mode.
689
+
690
+ Raises:
691
+ LookupError: If the source mode specified by ``mode`` does not exist.
692
+ """
693
+ newmode = EditableSchema(self.get_mode(mode)).copy()
694
+ EditableSchema(newmode).rename(name)
695
+ if insert:
696
+ if self.valid("mode", name):
697
+ raise ValueError(f"{name} already exists")
698
+ self.add_mode(newmode)
699
+ return newmode
700
+
701
+ def remove_mode(self, mode: str) -> bool:
702
+ """
703
+ Removes a timing mode from the design configuration.
704
+
705
+ This method deletes the specified timing mode from the system's
706
+ configuration.
707
+
708
+ Args:
709
+ mode (str): The name of the timing mode to remove.
710
+ This name must be a non-empty string.
711
+
712
+ Returns:
713
+ bool: True if the mode was successfully removed, False if no
714
+ mode with the given name was found.
715
+
716
+ Raises:
717
+ ValueError: If the provided `mode` name is empty or None.
718
+ """
719
+ if not mode:
720
+ raise ValueError("mode name is required")
721
+
722
+ if not self.valid("mode", mode):
546
723
  return False
547
724
 
548
- EditableSchema(self).remove(scenario)
725
+ EditableSchema(self).remove("mode", mode)
549
726
  return True
727
+
728
+ def _from_dict(self, manifest: Dict,
729
+ keypath: Union[List[str], Tuple[str, ...]],
730
+ version: Optional[Tuple[int, ...]] = None,
731
+ lazyload: LazyLoad = LazyLoad.ON) \
732
+ -> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
733
+ if version and version < (0, 53, 0):
734
+ manifest.pop("__meta__", None)
735
+ manifest = {
736
+ "scenario": manifest,
737
+ "mode": self.getdict("mode")
738
+ }
739
+ lazyload = LazyLoad.OFF
740
+
741
+ return super()._from_dict(manifest, keypath, version, lazyload)