siliconcompiler 0.28.4__tar.gz → 0.28.5__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 (438) hide show
  1. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/Changes +19 -0
  2. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/PKG-INFO +4 -4
  3. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/pyproject.toml +3 -3
  4. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/scripts/report_library.py +11 -3
  5. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/_metadata.py +1 -1
  6. siliconcompiler-0.28.5/siliconcompiler/apps/_common.py +108 -0
  7. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc.py +33 -14
  8. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc_dashboard.py +16 -9
  9. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc_show.py +17 -15
  10. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/core.py +3 -1
  11. siliconcompiler-0.28.5/siliconcompiler/flows/drcflow.py +13 -0
  12. siliconcompiler-0.28.5/siliconcompiler/flows/interposerflow.py +17 -0
  13. siliconcompiler-0.28.5/siliconcompiler/libs/interposer.py +8 -0
  14. siliconcompiler-0.28.5/siliconcompiler/pdks/interposer.py +8 -0
  15. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/schema.py +11 -1
  16. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server.py +7 -2
  17. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/__init__.py +93 -0
  18. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/schema/schema_cfg.py +15 -3
  19. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/schema/schema_obj.py +51 -1
  20. siliconcompiler-0.28.5/siliconcompiler/targets/interposer_demo.py +56 -0
  21. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/tcl/manifest.tcl.j2 +2 -0
  22. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/export.py +7 -4
  23. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/klayout_export.py +3 -0
  24. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/klayout_utils.py +8 -2
  25. siliconcompiler-0.28.5/siliconcompiler/tools/openroad/metrics.py +45 -0
  26. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/openroad.py +3 -0
  27. siliconcompiler-0.28.5/siliconcompiler/tools/openroad/rdlroute.py +97 -0
  28. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_apr.tcl +1 -1
  29. siliconcompiler-0.28.5/siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +1 -0
  30. siliconcompiler-0.28.5/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +184 -0
  31. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +11 -1
  32. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/xyce/__init__.py +1 -1
  33. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/_tools.json +3 -4
  34. {siliconcompiler-0.28.4/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.28.5/siliconcompiler/toolscripts/rhel8}/install-xyce.sh +4 -5
  35. {siliconcompiler-0.28.4/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.28.5/siliconcompiler/toolscripts/rhel9}/install-xyce.sh +4 -5
  36. {siliconcompiler-0.28.4/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.28.5/siliconcompiler/toolscripts/ubuntu20}/install-xyce.sh +2 -2
  37. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +2 -2
  38. {siliconcompiler-0.28.4/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.28.5/siliconcompiler/toolscripts/ubuntu24}/install-xyce.sh +5 -5
  39. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler.egg-info/PKG-INFO +4 -4
  40. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler.egg-info/SOURCES.txt +9 -0
  41. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler.egg-info/requires.txt +3 -3
  42. siliconcompiler-0.28.4/siliconcompiler/apps/_common.py +0 -76
  43. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/.dockerignore +0 -0
  44. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/.flake8 +0 -0
  45. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/.gitattributes +0 -0
  46. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/.gitignore +0 -0
  47. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/.readthedocs.yaml +0 -0
  48. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/CONTRIBUTING.md +0 -0
  49. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/LICENSE +0 -0
  50. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/MANIFEST.in +0 -0
  51. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/README.md +0 -0
  52. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/SECURITY.md +0 -0
  53. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/scripts/.gitignore +0 -0
  54. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/scripts/profile_sc.py +0 -0
  55. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/setup.cfg +0 -0
  56. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/__init__.py +0 -0
  57. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/__main__.py +0 -0
  58. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/_common.py +0 -0
  59. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/__init__.py +0 -0
  60. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc_install.py +0 -0
  61. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc_issue.py +0 -0
  62. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc_remote.py +0 -0
  63. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/sc_server.py +0 -0
  64. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/apps/smake.py +0 -0
  65. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/checklists/__init__.py +0 -0
  66. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  67. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  68. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  69. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  70. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/data/__init__.py +0 -0
  71. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/data/heartbeat.v +0 -0
  72. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/data/logo.png +0 -0
  73. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flowgraph.py +0 -0
  74. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/__init__.py +0 -0
  75. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/_common.py +0 -0
  76. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/asicflow.py +0 -0
  77. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/asictopflow.py +0 -0
  78. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/dvflow.py +0 -0
  79. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/fpgaflow.py +0 -0
  80. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  81. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/lintflow.py +0 -0
  82. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/screenshotflow.py +0 -0
  83. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/showflow.py +0 -0
  84. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/signoffflow.py +0 -0
  85. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/flows/synflow.py +0 -0
  86. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/fpgas/__init__.py +0 -0
  87. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  88. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/fpgas/vpr_example.py +0 -0
  89. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/issue.py +0 -0
  90. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/__init__.py +0 -0
  91. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/asap7sc7p5t.py +0 -0
  92. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/gf180mcu.py +0 -0
  93. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/nangate45.py +0 -0
  94. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/sg13g2_stdcell.py +0 -0
  95. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/sky130hd.py +0 -0
  96. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/libs/sky130io.py +0 -0
  97. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/package.py +0 -0
  98. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/pdks/__init__.py +0 -0
  99. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/pdks/asap7.py +0 -0
  100. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/pdks/freepdk45.py +0 -0
  101. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/pdks/gf180.py +0 -0
  102. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/pdks/ihp130.py +0 -0
  103. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/pdks/skywater130.py +0 -0
  104. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/__init__.py +0 -0
  105. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/client.py +0 -0
  106. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  107. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  108. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  109. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  110. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  111. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  112. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  113. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  114. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  115. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  116. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  117. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  118. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  119. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  120. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  121. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/__init__.py +0 -0
  122. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/__init__.py +0 -0
  123. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/components/__init__.py +0 -0
  124. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
  125. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/components/graph.py +0 -0
  126. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
  127. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
  128. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
  129. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
  130. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  131. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/state.py +0 -0
  132. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
  133. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
  134. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/dashboard/viewer.py +0 -0
  135. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/html_report.py +0 -0
  136. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/report.py +0 -0
  137. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/summary_image.py +0 -0
  138. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/summary_table.py +0 -0
  139. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/report/utils.py +0 -0
  140. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/docker_runner.py +0 -0
  141. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/run_node.py +0 -0
  142. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/send_messages.py +0 -0
  143. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/slurm.py +0 -0
  144. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  145. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  146. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/schema/__init__.py +0 -0
  147. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/schema/utils.py +0 -0
  148. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/sphinx_ext/__init__.py +0 -0
  149. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
  150. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
  151. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/sphinx_ext/utils.py +0 -0
  152. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/__init__.py +0 -0
  153. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/asap7_demo.py +0 -0
  154. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/asic_demo.py +0 -0
  155. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
  156. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  157. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/gf180_demo.py +0 -0
  158. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/ihp130_demo.py +0 -0
  159. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/targets/skywater130_demo.py +0 -0
  160. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/__init__.py +0 -0
  161. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/email/__init__.py +0 -0
  162. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/email/general.j2 +0 -0
  163. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/email/summary.j2 +0 -0
  164. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/issue/README.txt +0 -0
  165. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/issue/__init__.py +0 -0
  166. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/issue/run.sh +0 -0
  167. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/report/__init__.py +0 -0
  168. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  169. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  170. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  171. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  172. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/slurm/__init__.py +0 -0
  173. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/slurm/run.sh +0 -0
  174. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/templates/tcl/__init__.py +0 -0
  175. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/__init__.py +0 -0
  176. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/_common/__init__.py +0 -0
  177. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/_common/asic.py +0 -0
  178. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  179. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  180. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  181. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  182. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/bambu/__init__.py +0 -0
  183. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/bambu/bambu.py +0 -0
  184. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/bambu/convert.py +0 -0
  185. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  186. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
  187. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/bluespec/convert.py +0 -0
  188. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/__init__.py +0 -0
  189. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/_common.py +0 -0
  190. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/builtin.py +0 -0
  191. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/concatenate.py +0 -0
  192. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/join.py +0 -0
  193. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/maximum.py +0 -0
  194. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/minimum.py +0 -0
  195. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/mux.py +0 -0
  196. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/nop.py +0 -0
  197. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/builtin/verify.py +0 -0
  198. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  199. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/chisel/__init__.py +0 -0
  200. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/chisel/build.sbt +0 -0
  201. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/chisel/chisel.py +0 -0
  202. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/chisel/convert.py +0 -0
  203. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/execute/__init__.py +0 -0
  204. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/execute/exec_input.py +0 -0
  205. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/execute/execute.py +0 -0
  206. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  207. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  208. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  209. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  210. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/ghdl/convert.py +0 -0
  211. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
  212. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/icarus/__init__.py +0 -0
  213. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/icarus/compile.py +0 -0
  214. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/icarus/icarus.py +0 -0
  215. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/icepack/__init__.py +0 -0
  216. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  217. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/icepack/icepack.py +0 -0
  218. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/__init__.py +0 -0
  219. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  220. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/drc.py +0 -0
  221. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/klayout.py +0 -0
  222. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
  223. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
  224. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
  225. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/operations.py +0 -0
  226. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  227. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/klayout/show.py +0 -0
  228. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/__init__.py +0 -0
  229. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/drc.py +0 -0
  230. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/extspice.py +0 -0
  231. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/magic.py +0 -0
  232. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  233. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  234. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  235. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/montage/__init__.py +0 -0
  236. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/montage/montage.py +0 -0
  237. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/montage/tile.py +0 -0
  238. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/netgen/__init__.py +0 -0
  239. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  240. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/netgen/lvs.py +0 -0
  241. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/netgen/netgen.py +0 -0
  242. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  243. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  244. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  245. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  246. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/__init__.py +0 -0
  247. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/cts.py +0 -0
  248. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/dfm.py +0 -0
  249. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/export.py +0 -0
  250. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/floorplan.py +0 -0
  251. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/physyn.py +0 -0
  252. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/place.py +0 -0
  253. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  254. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  255. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/route.py +0 -0
  256. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  257. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/__init__.py +0 -0
  258. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -0
  259. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +0 -0
  260. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_export.tcl +0 -0
  261. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +0 -0
  262. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -0
  263. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_place.tcl +0 -0
  264. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_procs.tcl +0 -0
  265. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  266. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_rcx_bench.tcl +0 -0
  267. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_rcx_extract.tcl +0 -0
  268. /siliconcompiler-0.28.4/siliconcompiler/tools/openroad/scripts/sc_metrics.tcl → /siliconcompiler-0.28.5/siliconcompiler/tools/openroad/scripts/sc_report.tcl +0 -0
  269. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_route.tcl +0 -0
  270. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -0
  271. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_write.tcl +0 -0
  272. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +0 -0
  273. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/show.py +0 -0
  274. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  275. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  276. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/__init__.py +0 -0
  277. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  278. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  279. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  280. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
  281. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/opensta/timing.py +0 -0
  282. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/slang/__init__.py +0 -0
  283. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/slang/lint.py +0 -0
  284. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/surelog/__init__.py +0 -0
  285. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/surelog/parse.py +0 -0
  286. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  287. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  288. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  289. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/sv2v/convert.py +0 -0
  290. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
  291. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/template/__init__.py +0 -0
  292. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/template/template.py +0 -0
  293. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/verilator/__init__.py +0 -0
  294. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/verilator/compile.py +0 -0
  295. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/verilator/lint.py +0 -0
  296. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/verilator/parse.py +0 -0
  297. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/verilator/verilator.py +0 -0
  298. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/__init__.py +0 -0
  299. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  300. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/place.py +0 -0
  301. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/route.py +0 -0
  302. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  303. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  304. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  305. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  306. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  307. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  308. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  309. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vivado/vivado.py +0 -0
  310. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/__init__.py +0 -0
  311. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  312. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  313. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/place.py +0 -0
  314. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/route.py +0 -0
  315. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  316. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/show.py +0 -0
  317. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/vpr/vpr.py +0 -0
  318. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/xdm/__init__.py +0 -0
  319. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/xdm/convert.py +0 -0
  320. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/xyce/simulate.py +0 -0
  321. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/__init__.py +0 -0
  322. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/lec.py +0 -0
  323. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  324. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/procs.tcl +0 -0
  325. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
  326. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
  327. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/sc_syn.tcl +0 -0
  328. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/screenshot.py +0 -0
  329. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
  330. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/syn_asic.tcl +0 -0
  331. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
  332. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/syn_fpga.tcl +0 -0
  333. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  334. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  335. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  336. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  337. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  338. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/tools/yosys/yosys.py +0 -0
  339. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/_tools.py +0 -0
  340. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  341. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
  342. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  343. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  344. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  345. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  346. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  347. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-openroad.sh +0 -0
  348. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
  349. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  350. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
  351. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  352. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  353. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -0
  354. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  355. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  356. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  357. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  358. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  359. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  360. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  361. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
  362. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  363. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
  364. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  365. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  366. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  367. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
  368. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  369. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  370. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  371. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  372. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  373. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  374. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  375. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  376. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  377. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  378. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  379. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  380. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
  381. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  382. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
  383. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
  384. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  385. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  386. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
  387. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  388. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
  389. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  390. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
  391. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  392. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
  393. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  394. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  395. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  396. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  397. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  398. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  399. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  400. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  401. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
  402. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  403. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
  404. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
  405. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  406. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  407. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  408. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  409. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  410. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
  411. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
  412. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  413. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
  414. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
  415. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  416. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  417. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  418. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  419. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
  420. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  421. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  422. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
  423. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  424. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
  425. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
  426. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  427. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  428. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  429. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  430. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  431. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/units.py +0 -0
  432. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/use.py +0 -0
  433. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/utils/__init__.py +0 -0
  434. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/utils/asic.py +0 -0
  435. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler/utils/showtools.py +0 -0
  436. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  437. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler.egg-info/entry_points.txt +0 -0
  438. {siliconcompiler-0.28.4 → siliconcompiler-0.28.5}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,25 @@ 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.28.5 (2024-11-06)
12
+ =========================================
13
+
14
+ **Major:**
15
+
16
+ * Added interposer_demo target and interposerflow and drcflow.
17
+
18
+ **Minor:**
19
+
20
+ * Added macroarea, padcellarea, and stdcellarea to metrics.
21
+ * Added footprint to datasheet in schema.
22
+ * Improved handling of `sc-show` and `sc-dashboard` when searching for manifests.
23
+
24
+ * Tools:
25
+
26
+ * openroad: added metrics task to collect metrics and an rdlroute task to perform floorplan initization and rdlrouting.
27
+ * klayout: fixed handling of fill during GDS generation.
28
+
29
+
11
30
  SiliconCompiler 0.28.4 (2024-10-28)
12
31
  =========================================
13
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siliconcompiler
3
- Version: 0.28.4
3
+ Version: 0.28.5
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
6
6
  License: Apache License 2.0
@@ -36,7 +36,7 @@ Requires-Dist: packaging<24,>=21.3
36
36
  Requires-Dist: psutil>=5.8.0
37
37
  Requires-Dist: Pillow==10.4.0
38
38
  Requires-Dist: GitPython==3.1.43
39
- Requires-Dist: lambdapdk>=0.1.34
39
+ Requires-Dist: lambdapdk>=0.1.38
40
40
  Requires-Dist: PyGithub==2.4.0
41
41
  Requires-Dist: urllib3>=1.26.0
42
42
  Requires-Dist: fasteners==0.19
@@ -44,7 +44,7 @@ Requires-Dist: fastjsonschema==2.20.0
44
44
  Requires-Dist: docker==7.1.0
45
45
  Requires-Dist: importlib_metadata; python_version < "3.10"
46
46
  Requires-Dist: sc-surelog==1.84.1
47
- Requires-Dist: orjson==3.10.10
47
+ Requires-Dist: orjson==3.10.11
48
48
  Requires-Dist: streamlit==1.39.0
49
49
  Requires-Dist: streamlit_agraph==0.0.45
50
50
  Requires-Dist: streamlit-antd-components==0.3.2
@@ -70,7 +70,7 @@ Provides-Extra: profile
70
70
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
71
71
  Provides-Extra: examples
72
72
  Requires-Dist: migen==0.9.2; extra == "examples"
73
- Requires-Dist: lambdalib==0.2.10; extra == "examples"
73
+ Requires-Dist: lambdalib==0.3.0; extra == "examples"
74
74
 
75
75
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
76
76
 
@@ -43,7 +43,7 @@ dependencies = [
43
43
  "psutil >= 5.8.0",
44
44
  "Pillow == 10.4.0",
45
45
  "GitPython == 3.1.43",
46
- "lambdapdk >= 0.1.34",
46
+ "lambdapdk >= 0.1.38",
47
47
  "PyGithub == 2.4.0",
48
48
  "urllib3 >= 1.26.0", # Required for PyGithub
49
49
  "fasteners == 0.19",
@@ -51,7 +51,7 @@ dependencies = [
51
51
  "docker == 7.1.0",
52
52
  "importlib_metadata; python_version < '3.10'",
53
53
  "sc-surelog == 1.84.1",
54
- "orjson == 3.10.10",
54
+ "orjson == 3.10.11",
55
55
  "streamlit == 1.39.0",
56
56
  "streamlit_agraph == 0.0.45",
57
57
  "streamlit-antd-components == 0.3.2",
@@ -106,7 +106,7 @@ profile = [
106
106
  ]
107
107
  examples = [
108
108
  "migen == 0.9.2",
109
- "lambdalib == 0.2.10"
109
+ "lambdalib == 0.3.0"
110
110
  ]
111
111
 
112
112
  [tool.setuptools]
@@ -1,14 +1,22 @@
1
1
  from siliconcompiler import Chip
2
2
  from siliconcompiler.tools.opensta import report_libraries
3
3
 
4
- if __name__ == "__main__":
4
+
5
+ def main():
5
6
  chip = Chip('report_libs')
6
- chip.create_cmdline(switchlist=['-target'])
7
+ args = chip.create_cmdline(switchlist=['-target'])
7
8
 
8
- if not chip.get('option', 'target'):
9
+ if 'target' not in args or not args['target']:
9
10
  raise ValueError('-target is required')
10
11
 
11
12
  chip.node('report_lib', 'report', report_libraries)
12
13
  chip.set('option', 'flow', 'report_lib')
14
+ chip.set('option', 'clean', True)
13
15
 
14
16
  chip.run()
17
+
18
+ return 0
19
+
20
+
21
+ if __name__ == "__main__":
22
+ main()
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.28.4'
2
+ version = '0.28.5'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -0,0 +1,108 @@
1
+ import os
2
+
3
+
4
+ # TODO: this is a hack to get around design name requirement: since legal
5
+ # design names probably can't contain spaces, we can detect if it is unset.
6
+ UNSET_DESIGN = ' unset '
7
+
8
+
9
+ def manifest_switches():
10
+ '''
11
+ Returns a list of manifest switches that can be used
12
+ to find the manifest based on their values
13
+ '''
14
+ return ['-design',
15
+ '-cfg',
16
+ '-arg_step',
17
+ '-arg_index',
18
+ '-jobname']
19
+
20
+
21
+ def _get_manifests(cwd):
22
+ manifests = {}
23
+
24
+ def get_dirs(cwd):
25
+ dirs = []
26
+ for dirname in os.listdir(cwd):
27
+ fullpath = os.path.join(cwd, dirname)
28
+ if os.path.isdir(fullpath):
29
+ dirs.append((dirname, fullpath))
30
+ return dirs
31
+
32
+ for _, buildpath in get_dirs(cwd):
33
+ for design, designdir in get_dirs(buildpath):
34
+ for jobname, jobdir in get_dirs(designdir):
35
+ manifest = os.path.join(jobdir, f'{design}.pkg.json')
36
+ if os.path.isfile(manifest):
37
+ manifests[(design, jobname, None, None)] = manifest
38
+ for step, stepdir in get_dirs(jobdir):
39
+ for index, indexdir in get_dirs(stepdir):
40
+ manifest = os.path.join(indexdir, 'outputs', f'{design}.pkg.json')
41
+ if os.path.isfile(manifest):
42
+ manifests[(design, jobname, step, index)] = manifest
43
+ else:
44
+ manifest = os.path.join(indexdir, 'inputs', f'{design}.pkg.json')
45
+ if os.path.isfile(manifest):
46
+ manifests[(design, jobname, step, index)] = manifest
47
+
48
+ organized_manifest = {}
49
+ for (design, job, step, index), manifest in manifests.items():
50
+ jobs = organized_manifest.setdefault(design, {})
51
+ jobs.setdefault(job, {})[step, index] = os.path.abspath(manifest)
52
+
53
+ return organized_manifest
54
+
55
+
56
+ def pick_manifest_from_file(chip, src_file, all_manifests):
57
+ if src_file is None:
58
+ return None
59
+
60
+ if not os.path.exists(src_file):
61
+ chip.logger.error(f'{src_file} cannot be found.')
62
+ return None
63
+
64
+ src_dir = os.path.abspath(os.path.dirname(src_file))
65
+ for _, jobs in all_manifests.items():
66
+ for _, nodes in jobs.items():
67
+ for manifest in nodes.values():
68
+ if src_dir == os.path.dirname(manifest):
69
+ return manifest
70
+
71
+ return None
72
+
73
+
74
+ def pick_manifest(chip, src_file=None):
75
+ all_manifests = _get_manifests(os.getcwd())
76
+
77
+ manifest = pick_manifest_from_file(chip, src_file, all_manifests)
78
+ if manifest:
79
+ return manifest
80
+
81
+ if chip.design == UNSET_DESIGN:
82
+ if len(all_manifests) == 1:
83
+ chip.set('design', list(all_manifests.keys())[0])
84
+ else:
85
+ chip.logger.error('Design name is not set')
86
+ return None
87
+
88
+ if chip.design not in all_manifests:
89
+ chip.logger.error(f'Could not find manifest for {chip.design}')
90
+ return None
91
+
92
+ if chip.get('option', 'jobname') not in all_manifests[chip.design] and \
93
+ len(all_manifests[chip.design]) != 1:
94
+ chip.logger.error(f'Could not determine jobname for {chip.design}')
95
+ return None
96
+
97
+ jobname = chip.get('option', 'jobname')
98
+ if chip.get('option', 'jobname') not in all_manifests[chip.design]:
99
+ jobname = list(all_manifests[chip.design].keys())[0]
100
+
101
+ if (None, None) in all_manifests[chip.design][jobname]:
102
+ manifest = all_manifests[chip.design][jobname][None, None]
103
+ else:
104
+ # pick newest manifest
105
+ manifest = list(sorted(all_manifests[chip.design][jobname].values(),
106
+ key=lambda file: os.stat(file).st_ctime))[-1]
107
+
108
+ return manifest
@@ -10,6 +10,37 @@ from siliconcompiler.targets import skywater130_demo
10
10
  from siliconcompiler import SiliconCompilerError
11
11
 
12
12
 
13
+ def _infer_designname(chip):
14
+ topfile = None
15
+ sourcesets = chip.getkeys('input')
16
+ for sourceset in reversed(('rtl', 'hll')):
17
+ if sourceset in sourcesets:
18
+ sourcesets.remove(sourceset)
19
+ sourcesets.insert(0, sourceset)
20
+ for sourceset in sourcesets:
21
+ for filetype in chip.getkeys('input', sourceset):
22
+ all_vals = chip.schema._getvals('input', sourceset, filetype)
23
+ if all_vals:
24
+ # just look at first value
25
+ sources, _, _ = all_vals[0]
26
+ # grab first source
27
+ topfile = sources[0]
28
+ break
29
+ if topfile:
30
+ break
31
+
32
+ if not topfile:
33
+ return None
34
+
35
+ root = os.path.basename(topfile)
36
+ while True:
37
+ root, ext = os.path.splitext(root)
38
+ if not ext:
39
+ break
40
+
41
+ return root
42
+
43
+
13
44
  ###########################
14
45
  def main():
15
46
  progname = "sc"
@@ -50,24 +81,12 @@ def main():
50
81
 
51
82
  # Set design if none specified
52
83
  if chip.get('design') == UNSET_DESIGN:
53
- topfile = None
54
- for sourceset in ('rtl', 'hll'):
55
- for filetype in chip.getkeys('input', sourceset):
56
- all_vals = chip.schema._getvals('input', sourceset, filetype)
57
- if all_vals:
58
- # just look at first value
59
- sources, _, _ = all_vals[0]
60
- # grab first source
61
- topfile = sources[0]
62
- break
63
- if topfile:
64
- break
84
+ topmodule = _infer_designname(chip)
65
85
 
66
- if not topfile:
86
+ if not topmodule:
67
87
  chip.logger.error('Invalid arguments: either specify -design or provide sources.')
68
88
  return 1
69
89
 
70
- topmodule = os.path.splitext(os.path.basename(topfile))[0]
71
90
  chip.set('design', topmodule)
72
91
 
73
92
  # Set demo target if none specified
@@ -2,7 +2,7 @@
2
2
  import sys
3
3
  import siliconcompiler
4
4
  import os
5
- from siliconcompiler.apps._common import load_manifest, manifest_switches
5
+ from siliconcompiler.apps._common import pick_manifest, manifest_switches, UNSET_DESIGN
6
6
 
7
7
 
8
8
  def main():
@@ -11,9 +11,16 @@ def main():
11
11
  -----------------------------------------------------------
12
12
  SC app to open a dashboard for a given manifest.
13
13
 
14
- To open:
14
+ To open and allow sc-dashboard to autoload manifest:
15
+ sc-dashboard
16
+
17
+ To open by specifying manifest:
15
18
  sc-dashboard -cfg <path to manifest>
16
19
 
20
+ To open by specifying design and optionally jobname:
21
+ sc-dashboard -design <name>
22
+ sc-dashboard -design <name> -jobname <jobname>
23
+
17
24
  To specify a different port than the default:
18
25
  sc-dashboard -cfg <path to manifest> -port 10000
19
26
 
@@ -23,10 +30,6 @@ To include another chip object to compare to:
23
30
  -----------------------------------------------------------
24
31
  """
25
32
 
26
- # TODO: this is a hack to get around design name requirement: since legal
27
- # design names probably can't contain spaces, we can detect if it is unset.
28
- UNSET_DESIGN = ' unset '
29
-
30
33
  # Create a base chip class.
31
34
  chip = siliconcompiler.Chip(UNSET_DESIGN)
32
35
 
@@ -54,15 +57,19 @@ To include another chip object to compare to:
54
57
  chip.logger.error(e)
55
58
  return 1
56
59
 
60
+ if not chip.get('option', 'cfg'):
61
+ manifest = pick_manifest(chip)
62
+
63
+ if manifest:
64
+ chip.logger.info(f'Loading manifest: {manifest}')
65
+ chip.read_manifest(manifest)
66
+
57
67
  # Error checking
58
68
  design = chip.get('design')
59
69
  if design == UNSET_DESIGN:
60
70
  chip.logger.error('Design not loaded')
61
71
  return 1
62
72
 
63
- if not load_manifest(chip, None):
64
- return 1
65
-
66
73
  graph_chips = []
67
74
  if switches['graph_cfg']:
68
75
  for i, name_and_file_path in enumerate(switches['graph_cfg']):
@@ -3,7 +3,7 @@ import sys
3
3
  import os
4
4
  import siliconcompiler
5
5
  from siliconcompiler.utils import get_default_iomap
6
- from siliconcompiler.apps._common import load_manifest, manifest_switches
6
+ from siliconcompiler.apps._common import manifest_switches, pick_manifest, UNSET_DESIGN
7
7
  from siliconcompiler.utils import get_file_ext
8
8
 
9
9
 
@@ -18,6 +18,9 @@ def main():
18
18
 
19
19
  Examples:
20
20
 
21
+ sc-show
22
+ (displays build/adder/job0/write_gds/0/outputs/adder.gds)
23
+
21
24
  sc-show -design adder
22
25
  (displays build/adder/job0/write_gds/0/outputs/adder.gds)
23
26
 
@@ -40,10 +43,6 @@ def main():
40
43
  (displays build/adder/job0/route/1/outputs/adder.def)
41
44
  """
42
45
 
43
- # TODO: this is a hack to get around design name requirement: since legal
44
- # design names probably can't contain spaces, we can detect if it is unset.
45
- UNSET_DESIGN = ' unset '
46
-
47
46
  # Create a base chip class.
48
47
  chip = siliconcompiler.Chip(UNSET_DESIGN)
49
48
 
@@ -81,10 +80,6 @@ def main():
81
80
  chip.logger.error(e)
82
81
  return 1
83
82
 
84
- # Error checking
85
- design = chip.get('design')
86
- design_set = design != UNSET_DESIGN
87
-
88
83
  # Search input keys for files
89
84
  input_mode = []
90
85
  for fileset in chip.getkeys('input'):
@@ -92,11 +87,6 @@ def main():
92
87
  if chip.schema._getvals('input', fileset, mode):
93
88
  input_mode = [('input', fileset, mode)]
94
89
 
95
- if not (design_set or input_mode):
96
- chip.logger.error('Nothing to load: please define a target with '
97
- '-cfg, -design, and/or inputs.')
98
- return 1
99
-
100
90
  filename = None
101
91
  if input_mode:
102
92
  check_ext = list(chip._showtools.keys())
@@ -115,7 +105,19 @@ def main():
115
105
 
116
106
  filename = get_file_from_keys()
117
107
 
118
- if not load_manifest(chip, filename):
108
+ # Attempt to load a manifest
109
+ if not chip.get('option', 'cfg'):
110
+ manifest = pick_manifest(chip, src_file=filename)
111
+ if manifest:
112
+ chip.logger.info(f'Loading manifest: {manifest}')
113
+ chip.read_manifest(manifest)
114
+
115
+ # Error checking
116
+ design = chip.get('design')
117
+ design_set = design != UNSET_DESIGN
118
+ if not (design_set or input_mode):
119
+ chip.logger.error('Nothing to load: please define a target with '
120
+ '-cfg, -design, and/or inputs.')
119
121
  return 1
120
122
 
121
123
  # Read in file
@@ -2123,7 +2123,9 @@ class Chip:
2123
2123
  nonlocal graph_idx
2124
2124
 
2125
2125
  for subgraph in graph_info["graphs"]:
2126
+ child_prefix = prefix
2126
2127
  if get_node_count(graph_info["graphs"][subgraph]) > 1:
2128
+ child_prefix = f"{child_prefix}{subgraph}."
2127
2129
  graph = graphviz.Digraph(name=f"cluster_{graph_idx}")
2128
2130
  graph_idx += 1
2129
2131
 
@@ -2143,7 +2145,7 @@ class Chip:
2143
2145
  else:
2144
2146
  graph = parent
2145
2147
 
2146
- build_graph(graph_info["graphs"][subgraph], graph, f"{prefix}{subgraph}.")
2148
+ build_graph(graph_info["graphs"][subgraph], graph, child_prefix)
2147
2149
 
2148
2150
  if graph is not parent:
2149
2151
  parent.subgraph(graph)
@@ -0,0 +1,13 @@
1
+ from siliconcompiler import Flow
2
+
3
+ from siliconcompiler.tools.klayout import drc
4
+
5
+
6
+ def setup():
7
+ '''
8
+ Perform a DRC run on an input GDS
9
+ '''
10
+ flow = Flow('drcflow')
11
+ flow.node('drcflow', 'drc', drc)
12
+
13
+ return flow
@@ -0,0 +1,17 @@
1
+ from siliconcompiler import Flow
2
+
3
+ from siliconcompiler.tools.openroad import rdlroute
4
+ from siliconcompiler.tools.klayout import export
5
+
6
+
7
+ def setup():
8
+ '''
9
+ A flow to perform RDL routing and generate a GDS
10
+ '''
11
+ flow = Flow('interposerflow')
12
+ flow.node('interposerflow', 'rdlroute', rdlroute)
13
+ flow.node('interposerflow', 'write_gds', export)
14
+
15
+ flow.edge('interposerflow', 'rdlroute', 'write_gds')
16
+
17
+ return flow
@@ -0,0 +1,8 @@
1
+ import siliconcompiler
2
+ from lambdapdk.interposer.libs.bumps import setup
3
+
4
+
5
+ #########################
6
+ if __name__ == "__main__":
7
+ lib = setup(siliconcompiler.Chip('<lib>'))
8
+ lib.write_manifest(f'{lib.top()}.json')
@@ -0,0 +1,8 @@
1
+ import siliconcompiler
2
+ from lambdapdk.interposer import setup
3
+
4
+
5
+ #########################
6
+ if __name__ == "__main__":
7
+ pdk = setup(siliconcompiler.Chip('<lib>'))
8
+ pdk.write_manifest(f'{pdk.top()}.json')
@@ -2,7 +2,7 @@ from siliconcompiler.schema.schema_cfg import scparam
2
2
  from siliconcompiler.schema import Schema
3
3
 
4
4
 
5
- SCHEMA_VERSION = '0.0.1'
5
+ SCHEMA_VERSION = '0.0.2'
6
6
 
7
7
 
8
8
  def schema_cfg():
@@ -93,6 +93,16 @@ def schema_cfg():
93
93
  schelp="""
94
94
  Provides explicit control over the level of debug logging printed.""")
95
95
 
96
+ scparam(cfg, ['option', 'checkinterval'],
97
+ sctype='int',
98
+ defvalue=30,
99
+ shorthelp="Interval for client",
100
+ switch="-checkinterval <int>",
101
+ example=["cli: -checkinterval 10",
102
+ "api: chip.set('option', 'checkinterval', 10)"],
103
+ schelp="""
104
+ Interval between checks to announce to clients""")
105
+
96
106
  return cfg
97
107
 
98
108
 
@@ -239,7 +239,7 @@ class Server:
239
239
 
240
240
  # Return a response to the client.
241
241
  return web.json_response({'message': f"Starting job: {job_hash}",
242
- 'interval': 30,
242
+ 'interval': self.checkinterval,
243
243
  'job_hash': job_hash})
244
244
 
245
245
  ####################
@@ -375,7 +375,7 @@ class Server:
375
375
  'sc_schema': sc_schema_version,
376
376
  'sc_server': Server.__version__,
377
377
  },
378
- 'progress_interval': 30
378
+ 'progress_interval': self.checkinterval
379
379
  }
380
380
 
381
381
  username = job_params['username']
@@ -490,6 +490,11 @@ class Server:
490
490
  # Ensure that NFS mounting path is absolute.
491
491
  return os.path.abspath(self.get('option', 'nfsmount'))
492
492
 
493
+ ###################
494
+ @property
495
+ def checkinterval(self):
496
+ return self.get('option', 'checkinterval')
497
+
493
498
  def get(self, *keypath, field='value'):
494
499
  return self.schema.get(*keypath, field=field)
495
500