siliconcompiler 0.29.1__tar.gz → 0.29.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/Changes +35 -0
  2. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/PKG-INFO +8 -8
  3. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/pyproject.toml +12 -7
  4. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/_metadata.py +1 -1
  5. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc_install.py +2 -2
  6. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/core.py +18 -8
  7. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flowgraph.py +23 -5
  8. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/__init__.py +21 -9
  9. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/__init__.py +2 -0
  10. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/_common/asic.py +70 -0
  11. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +2 -2
  12. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/bambu/convert.py +2 -1
  13. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/bluespec/convert.py +2 -1
  14. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/chisel/convert.py +2 -1
  15. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/genfasm/bitstream.py +2 -2
  16. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/ghdl/convert.py +2 -2
  17. siliconcompiler-0.29.3/siliconcompiler/tools/gtkwave/__init__.py +39 -0
  18. siliconcompiler-0.29.3/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +34 -0
  19. siliconcompiler-0.29.3/siliconcompiler/tools/gtkwave/show.py +71 -0
  20. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/icarus/compile.py +6 -2
  21. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/drc.py +2 -1
  22. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/magic.py +1 -1
  23. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/netgen/lvs.py +2 -1
  24. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/_apr.py +14 -5
  25. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/global_placement.py +23 -2
  26. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/rdlroute.py +2 -2
  27. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
  28. siliconcompiler-0.29.3/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +89 -0
  29. siliconcompiler-0.29.3/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +107 -0
  30. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +11 -1
  31. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +4 -0
  32. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +7 -1
  33. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +39 -3
  34. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +4 -0
  35. siliconcompiler-0.29.3/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +2 -0
  36. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/common/write_data.tcl → siliconcompiler-0.29.3/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -2
  37. siliconcompiler-0.29.3/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +1 -0
  38. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +10 -1
  39. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +1 -1
  40. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/__init__.py +2 -2
  41. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/report_libraries.py +2 -2
  42. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/timing.py +2 -1
  43. siliconcompiler-0.29.1/siliconcompiler/tools/slang/lint.py → siliconcompiler-0.29.3/siliconcompiler/tools/slang/__init__.py +42 -18
  44. siliconcompiler-0.29.3/siliconcompiler/tools/slang/elaborate.py +46 -0
  45. siliconcompiler-0.29.3/siliconcompiler/tools/slang/lint.py +35 -0
  46. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/surelog/parse.py +1 -1
  47. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/sv2v/convert.py +2 -2
  48. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/template/template.py +2 -2
  49. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/verilator/compile.py +11 -0
  50. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/verilator/verilator.py +3 -2
  51. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/vivado.py +2 -1
  52. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/place.py +2 -2
  53. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/route.py +2 -2
  54. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/show.py +2 -1
  55. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/syn_asic.py +8 -0
  56. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/syn_asic.tcl +4 -0
  57. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/_tools.json +8 -3
  58. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
  59. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +7 -1
  60. siliconcompiler-0.29.3/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +40 -0
  61. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
  62. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +7 -1
  63. siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +28 -0
  64. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
  65. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +1 -0
  66. {siliconcompiler-0.29.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu20}/install-sv2v.sh +7 -1
  67. siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +28 -0
  68. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
  69. {siliconcompiler-0.29.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu22}/install-surelog.sh +7 -1
  70. {siliconcompiler-0.29.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu22}/install-sv2v.sh +7 -1
  71. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +3 -4
  72. siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +29 -0
  73. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
  74. {siliconcompiler-0.29.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu24}/install-surelog.sh +7 -1
  75. {siliconcompiler-0.29.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu24}/install-sv2v.sh +7 -1
  76. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/utils/__init__.py +22 -0
  77. siliconcompiler-0.29.3/siliconcompiler/utils/logging.py +67 -0
  78. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/utils/showtools.py +3 -0
  79. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler.egg-info/PKG-INFO +8 -8
  80. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler.egg-info/SOURCES.txt +11 -0
  81. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler.egg-info/requires.txt +7 -7
  82. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -26
  83. siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -123
  84. siliconcompiler-0.29.1/siliconcompiler/tools/slang/__init__.py +0 -49
  85. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/.dockerignore +0 -0
  86. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/.flake8 +0 -0
  87. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/.gitattributes +0 -0
  88. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/.gitignore +0 -0
  89. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/.readthedocs.yaml +0 -0
  90. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/CONTRIBUTING.md +0 -0
  91. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/LICENSE +0 -0
  92. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/MANIFEST.in +0 -0
  93. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/README.md +0 -0
  94. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/SECURITY.md +0 -0
  95. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/scripts/.gitignore +0 -0
  96. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/scripts/check_library.py +0 -0
  97. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/scripts/profile_sc.py +0 -0
  98. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/scripts/report_library.py +0 -0
  99. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/setup.cfg +0 -0
  100. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/__init__.py +0 -0
  101. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/__main__.py +0 -0
  102. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/_common.py +0 -0
  103. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/__init__.py +0 -0
  104. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/_common.py +0 -0
  105. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc.py +0 -0
  106. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc_dashboard.py +0 -0
  107. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc_issue.py +0 -0
  108. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc_remote.py +0 -0
  109. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc_server.py +0 -0
  110. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/sc_show.py +0 -0
  111. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/smake.py +0 -0
  112. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/utils/replay.py +0 -0
  113. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/apps/utils/summarize.py +0 -0
  114. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/checklists/__init__.py +0 -0
  115. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  116. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  117. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  118. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  119. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/data/__init__.py +0 -0
  120. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/data/heartbeat.v +0 -0
  121. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/data/logo.png +0 -0
  122. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/__init__.py +0 -0
  123. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/_common.py +0 -0
  124. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/asicflow.py +0 -0
  125. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/asictopflow.py +0 -0
  126. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/drcflow.py +0 -0
  127. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/dvflow.py +0 -0
  128. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/fpgaflow.py +0 -0
  129. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  130. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/interposerflow.py +0 -0
  131. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/lintflow.py +0 -0
  132. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/screenshotflow.py +0 -0
  133. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/showflow.py +0 -0
  134. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/signoffflow.py +0 -0
  135. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/flows/synflow.py +0 -0
  136. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/fpgas/__init__.py +0 -0
  137. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  138. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/fpgas/vpr_example.py +0 -0
  139. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/issue.py +0 -0
  140. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/libs/__init__.py +0 -0
  141. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/optimizer/__init__.py +0 -0
  142. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/optimizer/vizier.py +0 -0
  143. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/package.py +0 -0
  144. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/pdks/__init__.py +0 -0
  145. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/__init__.py +0 -0
  146. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/client.py +0 -0
  147. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/schema.py +0 -0
  148. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server.py +0 -0
  149. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  150. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  151. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  152. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  153. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  154. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  155. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  156. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  157. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  158. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  159. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  160. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  161. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  162. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  163. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  164. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/__init__.py +0 -0
  165. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/__init__.py +0 -0
  166. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/components/__init__.py +0 -0
  167. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
  168. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/components/graph.py +0 -0
  169. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
  170. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
  171. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
  172. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
  173. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
  174. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/state.py +0 -0
  175. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
  176. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
  177. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/dashboard/viewer.py +0 -0
  178. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/html_report.py +0 -0
  179. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/report.py +0 -0
  180. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/summary_image.py +0 -0
  181. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/summary_table.py +0 -0
  182. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/report/utils.py +0 -0
  183. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/docker_runner.py +0 -0
  184. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/run_node.py +0 -0
  185. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/send_messages.py +0 -0
  186. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/slurm.py +0 -0
  187. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  188. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  189. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/schema/__init__.py +0 -0
  190. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/schema/schema_cfg.py +0 -0
  191. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/schema/schema_obj.py +0 -0
  192. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/schema/utils.py +0 -0
  193. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/sphinx_ext/__init__.py +0 -0
  194. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
  195. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
  196. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/sphinx_ext/utils.py +0 -0
  197. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/__init__.py +0 -0
  198. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/asap7_demo.py +0 -0
  199. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/asic_demo.py +0 -0
  200. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
  201. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  202. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/gf180_demo.py +0 -0
  203. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/ihp130_demo.py +0 -0
  204. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/interposer_demo.py +0 -0
  205. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/targets/skywater130_demo.py +0 -0
  206. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/__init__.py +0 -0
  207. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/email/__init__.py +0 -0
  208. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/email/general.j2 +0 -0
  209. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/email/summary.j2 +0 -0
  210. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/issue/README.txt +0 -0
  211. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/issue/__init__.py +0 -0
  212. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/issue/run.sh +0 -0
  213. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
  214. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/replay/requirements.txt +0 -0
  215. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/replay/setup.sh +0 -0
  216. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/report/__init__.py +0 -0
  217. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  218. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  219. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  220. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  221. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/slurm/__init__.py +0 -0
  222. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/slurm/run.sh +0 -0
  223. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/tcl/__init__.py +0 -0
  224. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
  225. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/_common/__init__.py +0 -0
  226. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  227. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  228. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  229. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/bambu/__init__.py +0 -0
  230. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/bambu/bambu.py +0 -0
  231. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  232. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
  233. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/__init__.py +0 -0
  234. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/_common.py +0 -0
  235. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/builtin.py +0 -0
  236. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/concatenate.py +0 -0
  237. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/join.py +0 -0
  238. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/maximum.py +0 -0
  239. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/minimum.py +0 -0
  240. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/mux.py +0 -0
  241. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/nop.py +0 -0
  242. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/builtin/verify.py +0 -0
  243. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  244. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/chisel/__init__.py +0 -0
  245. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/chisel/build.sbt +0 -0
  246. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/chisel/chisel.py +0 -0
  247. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/execute/__init__.py +0 -0
  248. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/execute/exec_input.py +0 -0
  249. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/execute/execute.py +0 -0
  250. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  251. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  252. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  253. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
  254. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/icarus/__init__.py +0 -0
  255. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/icarus/icarus.py +0 -0
  256. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/icepack/__init__.py +0 -0
  257. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  258. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/icepack/icepack.py +0 -0
  259. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/__init__.py +0 -0
  260. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  261. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/export.py +0 -0
  262. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/klayout.py +0 -0
  263. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
  264. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
  265. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
  266. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
  267. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
  268. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/operations.py +0 -0
  269. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  270. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/klayout/show.py +0 -0
  271. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/__init__.py +0 -0
  272. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/drc.py +0 -0
  273. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/extspice.py +0 -0
  274. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  275. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  276. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  277. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/montage/__init__.py +0 -0
  278. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/montage/montage.py +0 -0
  279. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/montage/tile.py +0 -0
  280. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/netgen/__init__.py +0 -0
  281. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  282. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/netgen/netgen.py +0 -0
  283. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  284. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  285. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  286. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  287. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/__init__.py +0 -0
  288. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  289. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  290. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  291. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  292. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  293. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  294. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
  295. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/global_route.py +0 -0
  296. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
  297. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  298. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/metrics.py +0 -0
  299. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  300. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/power_grid.py +0 -0
  301. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  302. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  303. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  304. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  305. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  306. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  307. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  308. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
  309. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
  310. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
  311. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
  312. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
  313. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
  314. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
  315. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
  316. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
  317. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
  318. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
  319. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  320. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  321. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
  322. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
  323. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
  324. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  325. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  326. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
  327. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
  328. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/show.py +0 -0
  329. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  330. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  331. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/openroad/write_data.py +0 -0
  332. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/check_library.py +0 -0
  333. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  334. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
  335. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
  336. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
  337. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
  338. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/surelog/__init__.py +0 -0
  339. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  340. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  341. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  342. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
  343. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/template/__init__.py +0 -0
  344. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/verilator/__init__.py +0 -0
  345. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/verilator/lint.py +0 -0
  346. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/verilator/parse.py +0 -0
  347. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/__init__.py +0 -0
  348. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  349. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/place.py +0 -0
  350. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/route.py +0 -0
  351. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  352. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  353. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  354. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  355. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  356. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  357. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  358. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/__init__.py +0 -0
  359. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  360. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  361. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  362. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/vpr/vpr.py +0 -0
  363. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/xdm/__init__.py +0 -0
  364. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/xdm/convert.py +0 -0
  365. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/xyce/__init__.py +0 -0
  366. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/xyce/simulate.py +0 -0
  367. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/__init__.py +0 -0
  368. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/lec.py +0 -0
  369. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  370. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/procs.tcl +0 -0
  371. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
  372. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
  373. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/sc_syn.tcl +0 -0
  374. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/screenshot.py +0 -0
  375. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
  376. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/syn_fpga.tcl +0 -0
  377. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  378. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  379. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  380. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  381. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  382. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/_tools.py +0 -0
  383. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
  384. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
  385. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
  386. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
  387. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
  388. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  389. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
  390. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
  391. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
  392. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
  393. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
  394. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -0
  395. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
  396. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
  397. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
  398. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
  399. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
  400. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  401. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
  402. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
  403. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
  404. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
  405. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
  406. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
  407. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
  408. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
  409. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
  410. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
  411. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
  412. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
  413. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
  414. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
  415. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
  416. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  417. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
  418. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
  419. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
  420. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
  421. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
  422. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
  423. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
  424. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
  425. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
  426. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
  427. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
  428. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
  429. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
  430. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
  431. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
  432. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
  433. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
  434. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
  435. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  436. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
  437. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
  438. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
  439. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
  440. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
  441. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
  442. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
  443. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
  444. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
  445. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
  446. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
  447. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
  448. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
  449. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
  450. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
  451. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
  452. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
  453. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  454. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
  455. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
  456. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
  457. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
  458. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
  459. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
  460. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
  461. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
  462. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
  463. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
  464. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/units.py +0 -0
  465. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/use.py +0 -0
  466. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler/utils/asic.py +0 -0
  467. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  468. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler.egg-info/entry_points.txt +0 -0
  469. {siliconcompiler-0.29.1 → siliconcompiler-0.29.3}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,41 @@ 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.29.3 (2025-01-28)
12
+ =========================================
13
+
14
+ **Major:**
15
+
16
+ * Added color support to logger to allow for easier identification of warnings and errors.
17
+
18
+ **Minor:**
19
+
20
+ * Corrected install scripts for surelog and bambu.
21
+ * Fixed task setup order to avoid setting up tasks before the input nodes have been setup.
22
+
23
+ * Tools:
24
+
25
+ * slang: added elaboration task.
26
+ * yosys: added controls for separator used during flattening via `['tool', 'yosys', 'task', 'syn_asic', 'var', 'hierarchy_separator']`.
27
+
28
+
29
+ SiliconCompiler 0.29.2 (2025-01-16)
30
+ =========================================
31
+
32
+ **Major:**
33
+
34
+ * Added gtkwave show task to allow for vcd viewing.
35
+ * Removed enablement for conda-eda as this is no longer a supported project.
36
+
37
+ **Minor:**
38
+
39
+ * Allow passing a file path to `.register_source` to make it easier to handle retive path to the current file.
40
+
41
+ * Tools:
42
+
43
+ * openroad: added support for mutli-bit flipflop mapping and initial support for scan chain insertion, correct pin ordering from constraints.
44
+
45
+
11
46
  SiliconCompiler 0.29.1 (2025-01-09)
12
47
  =========================================
13
48
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: siliconcompiler
3
- Version: 0.29.1
3
+ Version: 0.29.3
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
@@ -38,7 +38,7 @@ Requires-Dist: psutil>=5.8.0
38
38
  Requires-Dist: Pillow==10.4.0; python_version <= "3.8"
39
39
  Requires-Dist: Pillow==11.1.0; python_version >= "3.9"
40
40
  Requires-Dist: GitPython==3.1.44
41
- Requires-Dist: lambdapdk>=0.1.44
41
+ Requires-Dist: lambdapdk>=0.1.46
42
42
  Requires-Dist: PyGithub==2.5.0
43
43
  Requires-Dist: urllib3>=1.26.0
44
44
  Requires-Dist: fasteners==0.19
@@ -46,7 +46,7 @@ Requires-Dist: fastjsonschema==2.21.1
46
46
  Requires-Dist: docker==7.1.0
47
47
  Requires-Dist: importlib_metadata; python_version < "3.10"
48
48
  Requires-Dist: sc-surelog==1.84.1
49
- Requires-Dist: orjson==3.10.13
49
+ Requires-Dist: orjson==3.10.15
50
50
  Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
51
51
  Requires-Dist: streamlit==1.41.1; python_version >= "3.9" and python_full_version != "3.9.7"
52
52
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
@@ -58,15 +58,15 @@ Requires-Dist: pytest==8.3.4; extra == "test"
58
58
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
59
59
  Requires-Dist: pytest-timeout==2.3.1; extra == "test"
60
60
  Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
61
- Requires-Dist: pytest-asyncio==0.25.1; python_version >= "3.9" and extra == "test"
61
+ Requires-Dist: pytest-asyncio==0.25.2; python_version >= "3.9" and extra == "test"
62
62
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
63
63
  Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
64
- Requires-Dist: responses==0.25.3; extra == "test"
64
+ Requires-Dist: responses==0.25.6; extra == "test"
65
65
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
66
66
  Provides-Extra: lint
67
67
  Requires-Dist: flake8==7.1.1; extra == "lint"
68
68
  Requires-Dist: tclint==0.5.0; extra == "lint"
69
- Requires-Dist: codespell==2.3.0; extra == "lint"
69
+ Requires-Dist: codespell==2.4.0; extra == "lint"
70
70
  Provides-Extra: docs
71
71
  Requires-Dist: Sphinx==8.1.3; extra == "docs"
72
72
  Requires-Dist: pip-licenses==5.0.0; extra == "docs"
@@ -76,9 +76,9 @@ Provides-Extra: profile
76
76
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
77
77
  Provides-Extra: examples
78
78
  Requires-Dist: migen==0.9.2; extra == "examples"
79
- Requires-Dist: lambdalib==0.3.2; extra == "examples"
79
+ Requires-Dist: lambdalib==0.3.3; extra == "examples"
80
80
  Provides-Extra: optimizer
81
- Requires-Dist: google-vizier[jax]==0.1.20; python_version >= "3.10" and extra == "optimizer"
81
+ Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
82
82
 
83
83
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
84
84
 
@@ -45,7 +45,7 @@ dependencies = [
45
45
  "Pillow == 10.4.0; python_version <= '3.8'",
46
46
  "Pillow == 11.1.0; python_version >= '3.9'",
47
47
  "GitPython == 3.1.44",
48
- "lambdapdk >= 0.1.44",
48
+ "lambdapdk >= 0.1.46",
49
49
  "PyGithub == 2.5.0",
50
50
  "urllib3 >= 1.26.0", # Required for PyGithub
51
51
  "fasteners == 0.19",
@@ -53,7 +53,7 @@ dependencies = [
53
53
  "docker == 7.1.0",
54
54
  "importlib_metadata; python_version < '3.10'",
55
55
  "sc-surelog == 1.84.1",
56
- "orjson == 3.10.13",
56
+ "orjson == 3.10.15",
57
57
 
58
58
  # dashboard, streamlit does not support 3.9.7
59
59
  "streamlit == 1.40.1; python_version <= '3.8'",
@@ -106,16 +106,16 @@ test = [
106
106
  "pytest-xdist == 3.6.1",
107
107
  "pytest-timeout == 2.3.1",
108
108
  "pytest-asyncio == 0.24.0; python_version <= '3.8'",
109
- "pytest-asyncio == 0.25.1; python_version >= '3.9'",
109
+ "pytest-asyncio == 0.25.2; python_version >= '3.9'",
110
110
  "pytest-cov == 5.0.0; python_version <= '3.8'",
111
111
  "pytest-cov == 6.0.0; python_version >= '3.9'",
112
- "responses == 0.25.3",
112
+ "responses == 0.25.6",
113
113
  "PyVirtualDisplay == 3.0"
114
114
  ]
115
115
  lint = [
116
116
  "flake8 == 7.1.1",
117
117
  "tclint == 0.5.0",
118
- "codespell == 2.3.0"
118
+ "codespell == 2.4.0"
119
119
  ]
120
120
  docs = [
121
121
  "Sphinx == 8.1.3",
@@ -128,10 +128,10 @@ profile = [
128
128
  ]
129
129
  examples = [
130
130
  "migen == 0.9.2",
131
- "lambdalib == 0.3.2"
131
+ "lambdalib == 0.3.3"
132
132
  ]
133
133
  optimizer = [
134
- "google-vizier[jax] == 0.1.20; python_version >= '3.10'"
134
+ "google-vizier[jax] == 0.1.21; python_version >= '3.10'"
135
135
  ]
136
136
 
137
137
  [tool.setuptools]
@@ -156,6 +156,11 @@ testpaths = [
156
156
  ]
157
157
  timeout = "180"
158
158
  asyncio_default_fixture_loop_scope = "function"
159
+ filterwarnings = [
160
+ "ignore:pkg_resources is deprecated as an API:DeprecationWarning",
161
+ 'ignore:Deprecated call to `pkg_resources.declare_namespace.*:DeprecationWarning',
162
+ 'ignore:.* is multi-threaded, use of fork\(\) may lead to deadlocks in the child.:DeprecationWarning'
163
+ ]
159
164
 
160
165
  [tool.tclint]
161
166
  exclude = [
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.29.1'
2
+ version = '0.29.3'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -126,7 +126,7 @@ def _recommended_tool_groups(tools):
126
126
  groups = {
127
127
  "asic": {"surelog", "sv2v", "yosys", "openroad", "klayout"},
128
128
  "fpga": {"surelog", "sv2v", "yosys", "vpr"},
129
- "digital-simulation": {"verilator", "icarus"},
129
+ "digital-simulation": {"verilator", "icarus", "gtkwave"},
130
130
  "analog-simulation": {"xyce"}
131
131
  }
132
132
 
@@ -168,7 +168,7 @@ To system debugging information (this should only be used to debug):
168
168
  parser = argparse.ArgumentParser(
169
169
  prog=progname,
170
170
  description=description,
171
- formatter_class=argparse.RawDescriptionHelpFormatter)
171
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
172
172
 
173
173
  tools = _get_tools_list()
174
174
 
@@ -21,6 +21,7 @@ from siliconcompiler.remote import client
21
21
  from siliconcompiler.schema import Schema, SCHEMA_VERSION
22
22
  from siliconcompiler.schema import utils as schema_utils
23
23
  from siliconcompiler import utils
24
+ from siliconcompiler.utils.logging import LoggerFormatter, ColorStreamFormatter
24
25
  from siliconcompiler import _metadata
25
26
  from siliconcompiler import NodeStatus, SiliconCompilerError
26
27
  from siliconcompiler.report import _show_summary_table
@@ -225,7 +226,8 @@ class Chip:
225
226
  else:
226
227
  in_run = False
227
228
 
228
- log_format = ['%(levelname)-7s']
229
+ level_format = '%(levelname)-7s'
230
+ log_format = [level_format]
229
231
  if loglevel == 'debug':
230
232
  log_format.append('%(funcName)-10s')
231
233
  log_format.append('%(lineno)-4s')
@@ -261,14 +263,17 @@ class Chip:
261
263
  log_formatprefix = ""
262
264
 
263
265
  log_format.append('%(message)s')
264
- logformat = log_formatprefix + ' | '.join(log_format)
266
+ stream_logformat = log_formatprefix + ' | '.join(log_format[1:])
265
267
 
266
268
  if not self.logger.hasHandlers():
267
269
  stream_handler = logging.StreamHandler(stream=sys.stdout)
268
270
  self.logger.addHandler(stream_handler)
269
271
 
270
272
  for handler in self.logger.handlers:
271
- formatter = logging.Formatter(logformat)
273
+ if ColorStreamFormatter.supports_color(handler):
274
+ formatter = ColorStreamFormatter(log_formatprefix, level_format, stream_logformat)
275
+ else:
276
+ formatter = LoggerFormatter(log_formatprefix, level_format, stream_logformat)
272
277
  handler.setFormatter(formatter)
273
278
 
274
279
  self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
@@ -500,6 +505,9 @@ class Chip:
500
505
  'dependency-caching-rebase')
501
506
  """
502
507
 
508
+ if os.path.isfile(path):
509
+ path = os.path.dirname(os.path.abspath(path))
510
+
503
511
  preset_path = self.get('package', 'source', name, 'path')
504
512
  preset_ref = self.get('package', 'source', name, 'ref')
505
513
  if preset_path and preset_path != path or preset_ref and preset_ref != ref:
@@ -3200,6 +3208,7 @@ class Chip:
3200
3208
  sc_step = self.get('arg', 'step')
3201
3209
  sc_index = self.get('arg', 'index')
3202
3210
  sc_job = self.get('option', 'jobname')
3211
+ flow = self.get('option', 'flow')
3203
3212
 
3204
3213
  has_filename = filename is not None
3205
3214
  # Finding last layout if no argument specified
@@ -3210,14 +3219,15 @@ class Chip:
3210
3219
  if sc_step and sc_index:
3211
3220
  search_nodes.append((sc_step, sc_index))
3212
3221
  elif sc_step:
3213
- for check_step, check_index in nodes_to_execute(self, self.get('option', 'flow')):
3222
+ for check_step, check_index in nodes_to_execute(self, flow):
3214
3223
  if sc_step == check_step:
3215
3224
  search_nodes.append((check_step, check_index))
3216
3225
  else:
3217
- for nodes in _get_flowgraph_execution_order(self,
3218
- self.get('option', 'flow'),
3219
- reverse=True):
3220
- search_nodes.extend(nodes)
3226
+ if flow is not None:
3227
+ for nodes in _get_flowgraph_execution_order(self,
3228
+ flow,
3229
+ reverse=True):
3230
+ search_nodes.extend(nodes)
3221
3231
 
3222
3232
  for ext in self._showtools.keys():
3223
3233
  if extension and extension != ext:
@@ -205,18 +205,36 @@ def _get_flowgraph_execution_order(chip, flow, reverse=False):
205
205
  else:
206
206
  ex_map.setdefault((istep, iindex), set()).add((step, index))
207
207
 
208
+ rev_ex_map = {}
209
+ for node, edges in ex_map.items():
210
+ for step, index in edges:
211
+ rev_ex_map.setdefault((step, index), set()).add(node)
212
+
208
213
  # Collect execution order of nodes
209
214
  if reverse:
210
215
  order = [set(_get_flowgraph_exit_nodes(chip, flow))]
211
216
  else:
212
217
  order = [set(_get_flowgraph_entry_nodes(chip, flow))]
213
218
 
219
+ visited = set()
214
220
  while True:
215
221
  next_level = set()
216
- for step, index in order[-1]:
217
- if (step, index) in ex_map and \
218
- not any([(step, index) in v for v in ex_map.values()]):
219
- next_level.update(ex_map.pop((step, index)))
222
+ next_visited = set()
223
+ for step, index in sorted(order[-1]):
224
+ if (step, index) not in rev_ex_map:
225
+ # No edges so assume inputs are okay
226
+ inputs_valid = True
227
+ else:
228
+ inputs_valid = all([node in visited for node in rev_ex_map[(step, index)]])
229
+
230
+ if inputs_valid:
231
+ next_visited.add((step, index))
232
+ if (step, index) in ex_map:
233
+ next_level.update(ex_map.pop((step, index)))
234
+ else:
235
+ next_level.add((step, index))
236
+
237
+ visited.update(next_visited)
220
238
 
221
239
  if not next_level:
222
240
  break
@@ -233,7 +251,7 @@ def _get_flowgraph_execution_order(chip, flow, reverse=False):
233
251
 
234
252
  exec_order.reverse()
235
253
 
236
- return exec_order
254
+ return [sorted(level) for level in exec_order]
237
255
 
238
256
 
239
257
  def get_executed_nodes(chip, flow):
@@ -55,6 +55,10 @@ def _get_callback(hook):
55
55
  return None
56
56
 
57
57
 
58
+ # Max lines to print from failed node log
59
+ _failed_log_lines = 20
60
+
61
+
58
62
  ###############################################################################
59
63
  class SiliconCompilerTimeout(Exception):
60
64
  ''' Minimal Exception wrapper used to raise sc timeout errors.
@@ -833,6 +837,8 @@ def _run_executable_or_builtin(chip, step, index, version, toolpath, workdir, ru
833
837
  is_stderr_log = chip.get('tool', tool, 'task', task, 'stderr', 'destination',
834
838
  step=step, index=index) == 'log' and stderr_file != stdout_file
835
839
 
840
+ chip.logger.info(f'Running in {workdir}')
841
+
836
842
  retcode = 0
837
843
  cmdlist = []
838
844
  cmd_args = []
@@ -877,7 +883,6 @@ def _run_executable_or_builtin(chip, step, index, version, toolpath, workdir, ru
877
883
  # Make record of tool options
878
884
  __record_tool(chip, step, index, version, toolpath, cmd_args)
879
885
 
880
- chip.logger.info('Running in %s', workdir)
881
886
  chip.logger.info('%s', printable_cmd)
882
887
  timeout = chip.get('option', 'timeout', step=step, index=index)
883
888
  logfile = step + '.log'
@@ -988,10 +993,10 @@ def _run_executable_or_builtin(chip, step, index, version, toolpath, workdir, ru
988
993
  msg = f'Command failed with code {retcode}.'
989
994
  if logfile:
990
995
  if quiet:
991
- # Print last 10 lines of log when in quiet mode
996
+ # Print last N lines of log when in quiet mode
992
997
  with sc_open(logfile) as logfd:
993
998
  loglines = logfd.read().splitlines()
994
- for logline in loglines[-10:]:
999
+ for logline in loglines[-_failed_log_lines:]:
995
1000
  chip.logger.error(logline)
996
1001
  # No log file for pure-Python tools.
997
1002
  msg += f' See log file {os.path.abspath(logfile)}'
@@ -1239,6 +1244,13 @@ def _finalizenode(chip, step, index, replay):
1239
1244
 
1240
1245
  if not is_skipped:
1241
1246
  _check_logfile(chip, step, index, quiet, run_func)
1247
+
1248
+ # Report metrics
1249
+ for metric in ['errors', 'warnings']:
1250
+ val = chip.get('metric', metric, step=step, index=index)
1251
+ if val is not None:
1252
+ chip.logger.info(f'Number of {metric}: {val}')
1253
+
1242
1254
  _hash_files(chip, step, index)
1243
1255
 
1244
1256
  # Capture wall runtime and cpu cores
@@ -1535,12 +1547,13 @@ def _check_node_dependencies(chip, node, deps, deps_was_successful):
1535
1547
  def _launch_nodes(chip, nodes_to_run, processes, local_processes):
1536
1548
  running_nodes = {}
1537
1549
  max_parallel_run = chip.get('option', 'scheduler', 'maxnodes')
1538
- max_threads = os.cpu_count()
1550
+ max_cores = utils.get_cores(chip)
1551
+ max_threads = utils.get_cores(chip)
1539
1552
  if not max_parallel_run:
1540
- max_parallel_run = max_threads
1553
+ max_parallel_run = utils.get_cores(chip)
1541
1554
 
1542
- # clip max parallel jobs to 1 <= jobs <= max_threads
1543
- max_parallel_run = max(1, min(max_parallel_run, max_threads))
1555
+ # clip max parallel jobs to 1 <= jobs <= max_cores
1556
+ max_parallel_run = max(1, min(max_parallel_run, max_cores))
1544
1557
 
1545
1558
  def allow_start(node):
1546
1559
  if node not in local_processes:
@@ -1561,7 +1574,7 @@ def _launch_nodes(chip, nodes_to_run, processes, local_processes):
1561
1574
  # clamp to max_parallel to avoid getting locked up
1562
1575
  requested_threads = max(1, min(requested_threads, max_threads))
1563
1576
 
1564
- if requested_threads + sum(running_nodes.values()) > max_threads:
1577
+ if requested_threads + sum(running_nodes.values()) > max_cores:
1565
1578
  # delay until there are enough core available
1566
1579
  return False, 0
1567
1580
 
@@ -2062,7 +2075,6 @@ def check_logfile(chip, jobname=None, step=None, index='0',
2062
2075
  chip.logger.info(f'{suffix}: {line_with_num}')
2063
2076
 
2064
2077
  for suffix in ordered_suffixes:
2065
- chip.logger.info(f'Number of {suffix}: {matches[suffix]}')
2066
2078
  checks[suffix]['report'].close()
2067
2079
 
2068
2080
  return matches
@@ -5,6 +5,7 @@ from siliconcompiler.tools.chisel import chisel
5
5
  from siliconcompiler.tools.execute import execute
6
6
  from siliconcompiler.tools.genfasm import genfasm
7
7
  from siliconcompiler.tools.ghdl import ghdl
8
+ from siliconcompiler.tools import gtkwave
8
9
  from siliconcompiler.tools.icarus import icarus
9
10
  from siliconcompiler.tools.icepack import icepack
10
11
  from siliconcompiler.tools.klayout import klayout
@@ -38,6 +39,7 @@ def get_tools():
38
39
  execute,
39
40
  genfasm,
40
41
  ghdl,
42
+ gtkwave,
41
43
  icarus,
42
44
  icepack,
43
45
  klayout,
@@ -135,6 +135,76 @@ def set_tool_task_var(chip,
135
135
  return value
136
136
 
137
137
 
138
+ def set_tool_task_lib_var(chip,
139
+ param_key,
140
+ default_value=None,
141
+ schelp=None,
142
+ option_key=None,
143
+ lib_key=None):
144
+ '''
145
+ Set parameter from libraries -> option -> default_value
146
+ '''
147
+ step = chip.get('arg', 'step')
148
+ index = chip.get('arg', 'index')
149
+ tool, task = get_tool_task(chip, step, index)
150
+
151
+ if schelp:
152
+ chip.set('tool', tool, 'task', task, 'var', param_key,
153
+ schelp, field='help')
154
+
155
+ if not option_key:
156
+ option_key = f'{tool}_{param_key}'
157
+ require_key, value = pick_key(chip, [('option', 'var', option_key)], step=step, index=index)
158
+
159
+ def check_value(val):
160
+ if isinstance(val, (list, tuple, set)):
161
+ return len(val) > 0
162
+ return val is not None
163
+
164
+ if check_value(value):
165
+ chip.set('tool', tool, 'task', task, 'var', param_key, value,
166
+ step=step, index=index, clobber=False)
167
+
168
+ if require_key:
169
+ chip.add('tool', tool, 'task', task, 'require',
170
+ ','.join(('option', option_key)),
171
+ step=step, index=index)
172
+
173
+ return value
174
+
175
+ # Add library key
176
+ if not lib_key:
177
+ lib_key = f'{tool}_{param_key}'
178
+ lib_keys = []
179
+ for lib in get_libraries(chip, 'logic'):
180
+ if chip.valid('library', lib, 'option', 'var', lib_key) and \
181
+ chip.get('library', lib, 'option', 'var', lib_key):
182
+ lib_keys.append(('library', lib, 'option', 'var', lib_key))
183
+
184
+ values = set()
185
+ for lib_key in lib_keys:
186
+ chip.add('tool', tool, 'task', task, 'require', ','.join(lib_key), step=step, index=index)
187
+
188
+ get_step = step
189
+ get_index = index
190
+
191
+ if chip.get(*lib_key, field='pernode') == 'never':
192
+ get_step = None
193
+ get_index = None
194
+
195
+ values.update(chip.get(*lib_key, step=get_step, index=get_index))
196
+
197
+ if check_value(values):
198
+ chip.set('tool', tool, 'task', task, 'var', param_key, values,
199
+ step=step, index=index, clobber=False)
200
+
201
+ chip.add('tool', tool, 'task', task, 'require',
202
+ ','.join(['tool', tool, 'task', task, 'var', param_key]),
203
+ step=step, index=index)
204
+
205
+ return values
206
+
207
+
138
208
  def get_tool_task_var(chip,
139
209
  param_key,
140
210
  option_key=None,
@@ -49,8 +49,8 @@ proc sc_collect_pin_constraints {
49
49
  }
50
50
 
51
51
  set side_pin_order []
52
- dict for {index pin} $pins {
53
- lappend side_pin_order {*}$pin
52
+ foreach index [lsort -integer [dict keys $pins]] {
53
+ lappend side_pin_order {*}[dict get $pins $index]
54
54
  }
55
55
 
56
56
  set pin_layer_ordering [dict create]
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import shutil
3
+ from siliconcompiler import utils
3
4
  from siliconcompiler.tools._common import \
4
5
  add_frontend_requires, add_require_input, get_frontend_options, get_input_files, \
5
6
  get_tool_task, has_input_files
@@ -27,7 +28,7 @@ def setup(chip):
27
28
  chip.set('tool', tool, 'task', task, 'refdir', refdir,
28
29
  step=step, index=index,
29
30
  package='siliconcompiler', clobber=False)
30
- chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
31
+ chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
31
32
  step=step, index=index, clobber=False)
32
33
 
33
34
  # Input/Output requirements
@@ -3,6 +3,7 @@ import shutil
3
3
  from siliconcompiler.tools._common import \
4
4
  add_require_input, add_frontend_requires, get_frontend_options, get_input_files, \
5
5
  get_tool_task, has_input_files
6
+ from siliconcompiler import utils
6
7
  from siliconcompiler import sc_open
7
8
 
8
9
  # Directory inside step/index dir to store bsc intermediate results.
@@ -33,7 +34,7 @@ def setup(chip):
33
34
  chip.set('tool', tool, 'task', task, 'refdir', refdir,
34
35
  step=step, index=index,
35
36
  package='siliconcompiler', clobber=False)
36
- chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
37
+ chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
37
38
  step=step, index=index, clobber=False)
38
39
 
39
40
  # Input/Output requirements
@@ -3,6 +3,7 @@ import shutil
3
3
  import glob
4
4
  from siliconcompiler.tools._common import add_frontend_requires, get_tool_task, has_input_files
5
5
  from siliconcompiler import sc_open, SiliconCompilerError
6
+ from siliconcompiler import utils
6
7
 
7
8
 
8
9
  def setup(chip):
@@ -28,7 +29,7 @@ def setup(chip):
28
29
  chip.set('tool', tool, 'task', task, 'refdir', refdir,
29
30
  step=step, index=index,
30
31
  package='siliconcompiler', clobber=False)
31
- chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
32
+ chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
32
33
  step=step, index=index, clobber=False)
33
34
 
34
35
  chip.set('tool', tool, 'task', task, 'option', ['-batch',
@@ -1,5 +1,5 @@
1
- import os
2
1
  import shutil
2
+ from siliconcompiler import utils
3
3
  from siliconcompiler.tools.genfasm import genfasm
4
4
  from siliconcompiler.tools.vpr import vpr
5
5
  from siliconcompiler.tools._common import get_tool_task
@@ -15,7 +15,7 @@ def setup(chip):
15
15
  index = chip.get('arg', 'index')
16
16
  tool, task = get_tool_task(chip, step, index)
17
17
 
18
- chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
18
+ chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
19
19
  step=step, index=index, clobber=False)
20
20
 
21
21
  chip.set('tool', tool, 'task', task, 'regex', 'warnings', "^Warning",
@@ -1,6 +1,6 @@
1
- import os
2
1
  from siliconcompiler.tools._common import add_require_input, add_frontend_requires, \
3
2
  get_input_files, get_tool_task, has_input_files
3
+ from siliconcompiler import utils
4
4
 
5
5
 
6
6
  def setup(chip):
@@ -23,7 +23,7 @@ def setup(chip):
23
23
  chip.set('tool', tool, 'vswitch', '--version')
24
24
  chip.set('tool', tool, 'version', '>=4.0.0-dev', clobber=clobber)
25
25
 
26
- chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
26
+ chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
27
27
  step=step, index=index, clobber=clobber)
28
28
  chip.set('tool', tool, 'task', task, 'option', '',
29
29
  step=step, index=index, clobber=clobber)
@@ -0,0 +1,39 @@
1
+ '''
2
+ GTKWave is a fully featured GTK+ based wave viewer for Unix, Win32, and
3
+ Mac OSX which reads LXT, LXT2, VZT, FST, and GHW files as well as standard
4
+ Verilog VCD/EVCD files and allows their viewing.
5
+
6
+ Documentation: https://gtkwave.github.io/gtkwave/
7
+
8
+ Sources: https://github.com/gtkwave/gtkwave
9
+
10
+ Installation: https://github.com/gtkwave/gtkwave
11
+ '''
12
+
13
+ from siliconcompiler.tools._common import \
14
+ get_tool_task
15
+
16
+
17
+ def setup(chip):
18
+ step = chip.get('arg', 'step')
19
+ index = chip.get('arg', 'index')
20
+ tool, task = get_tool_task(chip, step, index)
21
+
22
+ chip.set('tool', tool, 'exe', 'gtkwave')
23
+ chip.set('tool', tool, 'vswitch', '--version')
24
+ chip.set('tool', tool, 'version', '>=v3.3.116', clobber=False)
25
+ chip.set('tool', tool, 'format', 'tcl', clobber=False)
26
+
27
+
28
+ ################################
29
+ # Version Check
30
+ ################################
31
+ def parse_version(stdout):
32
+ # First line: GTKWave Analyzer v3.3.116 (w)1999-2023 BSI
33
+ return stdout.split()[2]
34
+
35
+
36
+ def normalize_version(version):
37
+ if version[0] == 'v':
38
+ return version[1:]
39
+ return version