siliconcompiler 0.32.1__tar.gz → 0.32.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 (495) hide show
  1. siliconcompiler-0.32.3/.dockerignore +4 -0
  2. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/Changes +33 -0
  3. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/PKG-INFO +14 -10
  4. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/pyproject.toml +15 -10
  5. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/_metadata.py +3 -2
  6. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_install.py +13 -5
  7. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_remote.py +2 -1
  8. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/core.py +68 -55
  9. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/issue.py +3 -1
  10. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/client.py +55 -16
  11. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/report/__init__.py +3 -2
  12. siliconcompiler-0.32.3/siliconcompiler/report/dashboard/__init__.py +81 -0
  13. siliconcompiler-0.32.3/siliconcompiler/report/dashboard/cli/__init__.py +788 -0
  14. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/__init__.py +12 -6
  15. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/components/__init__.py +4 -4
  16. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/components/graph.py +1 -1
  17. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/__init__.py +3 -3
  18. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/_common.py +1 -1
  19. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/vertical_flowgraph.py +5 -5
  20. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/vertical_flowgraph_node_tab.py +6 -6
  21. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/vertical_flowgraph_sac_tabs.py +6 -6
  22. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/viewer.py +4 -4
  23. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/__init__.py +44 -13
  24. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/docker_runner.py +2 -1
  25. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/dynamicgen.py +11 -11
  26. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/replay.sh.j2 +2 -2
  27. siliconcompiler-0.32.3/siliconcompiler/templates/tcl/manifest.tcl.j2 +23 -0
  28. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/__init__.py +2 -0
  29. siliconcompiler-0.32.1/siliconcompiler/templates/tcl/manifest.tcl.j2 → siliconcompiler-0.32.3/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +17 -30
  30. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/_apr.py +7 -0
  31. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
  32. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +1 -1
  33. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
  34. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +1 -1
  35. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +1 -1
  36. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +1 -1
  37. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +1 -1
  38. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
  39. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +1 -1
  40. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +1 -1
  41. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +1 -1
  42. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +1 -1
  43. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +1 -1
  44. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +1 -1
  45. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +1 -1
  46. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +1 -1
  47. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +54 -8
  48. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +1 -1
  49. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +19 -1
  50. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +18 -7
  51. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +1 -1
  52. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +1 -1
  53. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +1 -1
  54. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/__init__.py +1 -1
  55. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
  56. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
  57. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
  58. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
  59. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/timing.py +6 -2
  60. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/slang/__init__.py +7 -8
  61. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/sv2v/sv2v.py +4 -1
  62. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/__init__.py +4 -36
  63. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/lec.py +3 -4
  64. siliconcompiler-0.32.1/siliconcompiler/tools/yosys/syn_asic.tcl → siliconcompiler-0.32.3/siliconcompiler/tools/yosys/sc_synth_asic.tcl +87 -0
  65. siliconcompiler-0.32.1/siliconcompiler/tools/yosys/syn_fpga.tcl → siliconcompiler-0.32.3/siliconcompiler/tools/yosys/sc_synth_fpga.tcl +78 -0
  66. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/syn_asic.py +36 -11
  67. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/syn_fpga.py +23 -16
  68. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/_tools.json +23 -9
  69. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
  70. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-icarus.sh +1 -0
  71. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
  72. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
  73. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
  74. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
  75. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
  76. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
  77. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-verible.sh +2 -0
  78. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-verilator.sh +1 -0
  79. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-xyce.sh +2 -0
  80. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-chisel.sh +2 -0
  81. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
  82. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +2 -1
  83. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-icarus.sh +1 -0
  84. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
  85. siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9/install-magic.sh +25 -0
  86. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
  87. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
  88. siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
  89. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
  90. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
  91. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
  92. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
  93. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-verilator.sh +1 -0
  94. siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9/install-vpr.sh +31 -0
  95. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
  96. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-xyce.sh +2 -0
  97. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-yosys-moosic.sh +2 -0
  98. siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +61 -0
  99. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
  100. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
  101. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
  102. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-bluespec.sh +2 -0
  103. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-chisel.sh +2 -0
  104. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-ghdl.sh +2 -0
  105. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
  106. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
  107. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
  108. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
  109. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-magic.sh +2 -0
  110. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-netgen.sh +2 -0
  111. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
  112. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-openroad.sh +2 -0
  113. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
  114. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
  115. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-slurm.sh +2 -0
  116. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
  117. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-sv2v.sh +1 -1
  118. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-verible.sh +2 -0
  119. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-verilator.sh +2 -0
  120. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-vpr.sh +2 -0
  121. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +2 -0
  122. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
  123. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-yosys-moosic.sh +2 -0
  124. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +61 -0
  125. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -0
  126. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
  127. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-bluespec.sh +27 -2
  128. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-chisel.sh +2 -0
  129. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-ghdl.sh +4 -2
  130. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
  131. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
  132. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
  133. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
  134. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-magic.sh +2 -0
  135. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-netgen.sh +2 -0
  136. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-nextpnr.sh +1 -2
  137. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +2 -0
  138. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
  139. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-slang.sh +3 -1
  140. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-slurm.sh +2 -0
  141. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
  142. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-sv2v.sh +1 -1
  143. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-verible.sh +2 -0
  144. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-verilator.sh +2 -0
  145. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-vpr.sh +2 -0
  146. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +2 -0
  147. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-xyce.sh +2 -0
  148. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-yosys-moosic.sh +2 -0
  149. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +61 -0
  150. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-yosys-slang.sh +3 -1
  151. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -0
  152. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
  153. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-bluespec.sh +2 -0
  154. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +28 -0
  155. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +4 -2
  156. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
  157. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
  158. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
  159. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
  160. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-magic.sh +2 -0
  161. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
  162. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-nextpnr.sh +1 -3
  163. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-openroad.sh +2 -0
  164. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
  165. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-slang.sh +3 -1
  166. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-slurm.sh +2 -0
  167. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
  168. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-sv2v.sh +1 -1
  169. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +26 -0
  170. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-verilator.sh +2 -0
  171. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-vpr.sh +2 -0
  172. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
  173. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-xyce.sh +2 -0
  174. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-yosys-moosic.sh +2 -0
  175. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +61 -0
  176. {siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-yosys-slang.sh +3 -1
  177. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -0
  178. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/utils/__init__.py +4 -1
  179. siliconcompiler-0.32.3/siliconcompiler/utils/logging.py +121 -0
  180. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/PKG-INFO +14 -10
  181. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/SOURCES.txt +26 -16
  182. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/requires.txt +11 -8
  183. siliconcompiler-0.32.1/.dockerignore +0 -4
  184. siliconcompiler-0.32.1/siliconcompiler/tools/yosys/sc_syn.tcl +0 -87
  185. siliconcompiler-0.32.1/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -26
  186. siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -26
  187. siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -24
  188. siliconcompiler-0.32.1/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -22
  189. siliconcompiler-0.32.1/siliconcompiler/utils/logging.py +0 -67
  190. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/.flake8 +0 -0
  191. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/.gitattributes +0 -0
  192. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/.gitignore +0 -0
  193. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/.readthedocs.yaml +0 -0
  194. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/CONTRIBUTING.md +0 -0
  195. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/LICENSE +0 -0
  196. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/MANIFEST.in +0 -0
  197. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/README.md +0 -0
  198. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/SECURITY.md +0 -0
  199. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/scripts/.gitignore +0 -0
  200. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/scripts/check_library.py +0 -0
  201. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/scripts/profile_sc.py +0 -0
  202. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/scripts/report_library.py +0 -0
  203. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/setup.cfg +0 -0
  204. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/__init__.py +0 -0
  205. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/__main__.py +0 -0
  206. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/_common.py +0 -0
  207. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/__init__.py +0 -0
  208. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/_common.py +0 -0
  209. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc.py +0 -0
  210. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_dashboard.py +0 -0
  211. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_issue.py +0 -0
  212. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_server.py +0 -0
  213. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_show.py +0 -0
  214. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/smake.py +0 -0
  215. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/utils/replay.py +0 -0
  216. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/apps/utils/summarize.py +0 -0
  217. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/checklists/__init__.py +0 -0
  218. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  219. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  220. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  221. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  222. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/data/__init__.py +0 -0
  223. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/data/heartbeat.v +0 -0
  224. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/data/logo.png +0 -0
  225. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flowgraph.py +0 -0
  226. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/__init__.py +0 -0
  227. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/_common.py +0 -0
  228. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/asicflow.py +0 -0
  229. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/asictopflow.py +0 -0
  230. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/drcflow.py +0 -0
  231. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/dvflow.py +0 -0
  232. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/fpgaflow.py +0 -0
  233. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  234. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/interposerflow.py +0 -0
  235. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/lintflow.py +0 -0
  236. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/screenshotflow.py +0 -0
  237. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/showflow.py +0 -0
  238. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/signoffflow.py +0 -0
  239. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/flows/synflow.py +0 -0
  240. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/fpgas/__init__.py +0 -0
  241. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  242. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/libs/__init__.py +0 -0
  243. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/optimizer/__init__.py +0 -0
  244. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/optimizer/vizier.py +0 -0
  245. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/package/__init__.py +0 -0
  246. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/package/git.py +0 -0
  247. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/package/github.py +0 -0
  248. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/package/https.py +0 -0
  249. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/pdks/__init__.py +0 -0
  250. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/__init__.py +0 -0
  251. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/schema.py +0 -0
  252. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server.py +0 -0
  253. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  254. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  255. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  256. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  257. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  258. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  259. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  260. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  261. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  262. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  263. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  264. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  265. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  266. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  267. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  268. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/components/flowgraph.py +0 -0
  269. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/state.py +0 -0
  270. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/utils/__init__.py +0 -0
  271. {siliconcompiler-0.32.1/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/utils/file_utils.py +0 -0
  272. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/report/html_report.py +0 -0
  273. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/report/report.py +0 -0
  274. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/report/summary_image.py +0 -0
  275. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/report/summary_table.py +0 -0
  276. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/report/utils.py +0 -0
  277. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/run_node.py +0 -0
  278. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/send_messages.py +0 -0
  279. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/slurm.py +0 -0
  280. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  281. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  282. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/schema/__init__.py +0 -0
  283. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/schema/schema_cfg.py +0 -0
  284. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/schema/schema_obj.py +0 -0
  285. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/schema/utils.py +0 -0
  286. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/__init__.py +0 -0
  287. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
  288. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/utils.py +0 -0
  289. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/__init__.py +0 -0
  290. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/asap7_demo.py +0 -0
  291. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/asic_demo.py +0 -0
  292. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
  293. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  294. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/gf180_demo.py +0 -0
  295. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/ihp130_demo.py +0 -0
  296. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/interposer_demo.py +0 -0
  297. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/targets/skywater130_demo.py +0 -0
  298. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/__init__.py +0 -0
  299. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/email/__init__.py +0 -0
  300. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/email/general.j2 +0 -0
  301. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/email/summary.j2 +0 -0
  302. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/issue/README.txt +0 -0
  303. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/issue/__init__.py +0 -0
  304. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/issue/run.sh +0 -0
  305. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
  306. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/requirements.txt +0 -0
  307. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/setup.sh +0 -0
  308. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/__init__.py +0 -0
  309. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  310. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  311. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  312. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  313. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/slurm/__init__.py +0 -0
  314. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/slurm/run.sh +0 -0
  315. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/templates/tcl/__init__.py +0 -0
  316. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/__init__.py +0 -0
  317. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/asic.py +0 -0
  318. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/asic_clock.py +0 -0
  319. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  320. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  321. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  322. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  323. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/bambu/__init__.py +0 -0
  324. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/bambu/convert.py +0 -0
  325. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  326. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/bluespec/convert.py +0 -0
  327. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/__init__.py +0 -0
  328. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/_common.py +0 -0
  329. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/builtin.py +0 -0
  330. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/concatenate.py +0 -0
  331. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/join.py +0 -0
  332. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/maximum.py +0 -0
  333. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/minimum.py +0 -0
  334. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/mux.py +0 -0
  335. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/nop.py +0 -0
  336. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/verify.py +0 -0
  337. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  338. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/__init__.py +0 -0
  339. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/build.sbt +0 -0
  340. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/chisel.py +0 -0
  341. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/convert.py +0 -0
  342. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/execute/__init__.py +0 -0
  343. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/execute/exec_input.py +0 -0
  344. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/execute/execute.py +0 -0
  345. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  346. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  347. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  348. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  349. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/ghdl/convert.py +0 -0
  350. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
  351. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/graphviz/__init__.py +0 -0
  352. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
  353. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/graphviz/show.py +0 -0
  354. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
  355. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
  356. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/gtkwave/show.py +0 -0
  357. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/icarus/__init__.py +0 -0
  358. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/icarus/compile.py +0 -0
  359. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/icarus/icarus.py +0 -0
  360. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/icepack/__init__.py +0 -0
  361. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  362. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/icepack/icepack.py +0 -0
  363. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/__init__.py +0 -0
  364. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  365. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/drc.py +0 -0
  366. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/export.py +0 -0
  367. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout.py +0 -0
  368. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
  369. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
  370. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
  371. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
  372. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
  373. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/operations.py +0 -0
  374. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  375. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/show.py +0 -0
  376. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/__init__.py +0 -0
  377. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/drc.py +0 -0
  378. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/extspice.py +0 -0
  379. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/magic.py +0 -0
  380. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  381. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  382. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  383. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/montage/__init__.py +0 -0
  384. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/montage/montage.py +0 -0
  385. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/montage/tile.py +0 -0
  386. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/__init__.py +0 -0
  387. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  388. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/lvs.py +0 -0
  389. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/netgen.py +0 -0
  390. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  391. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  392. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  393. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  394. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/__init__.py +0 -0
  395. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  396. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  397. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  398. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  399. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  400. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  401. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/global_placement.py +0 -0
  402. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/global_route.py +0 -0
  403. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
  404. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  405. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/metrics.py +0 -0
  406. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  407. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/power_grid.py +0 -0
  408. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  409. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  410. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
  411. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  412. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  413. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  414. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  415. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  416. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  417. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  418. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
  419. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
  420. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
  421. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  422. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
  423. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
  424. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
  425. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  426. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  427. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/show.py +0 -0
  428. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  429. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  430. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/write_data.py +0 -0
  431. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/check_library.py +0 -0
  432. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  433. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  434. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/slang/elaborate.py +0 -0
  435. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/slang/lint.py +0 -0
  436. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/__init__.py +0 -0
  437. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/parse.py +0 -0
  438. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  439. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  440. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  441. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/sv2v/convert.py +0 -0
  442. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/template/__init__.py +0 -0
  443. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/template/template.py +0 -0
  444. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/__init__.py +0 -0
  445. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/compile.py +0 -0
  446. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/lint.py +0 -0
  447. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/parse.py +0 -0
  448. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/verilator.py +0 -0
  449. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/__init__.py +0 -0
  450. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  451. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/place.py +0 -0
  452. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/route.py +0 -0
  453. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  454. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  455. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  456. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  457. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  458. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  459. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  460. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/vivado.py +0 -0
  461. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/__init__.py +0 -0
  462. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  463. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  464. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/place.py +0 -0
  465. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/route.py +0 -0
  466. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  467. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/show.py +0 -0
  468. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/vpr.py +0 -0
  469. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/xdm/__init__.py +0 -0
  470. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/xdm/convert.py +0 -0
  471. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/xyce/__init__.py +0 -0
  472. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/xyce/simulate.py +0 -0
  473. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  474. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/procs.tcl +0 -0
  475. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
  476. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
  477. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/screenshot.py +0 -0
  478. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  479. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  480. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  481. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  482. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  483. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/_tools.py +0 -0
  484. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  485. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  486. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  487. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  488. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  489. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/units.py +0 -0
  490. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/use.py +0 -0
  491. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/utils/asic.py +0 -0
  492. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler/utils/showtools.py +0 -0
  493. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  494. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/entry_points.txt +0 -0
  495. {siliconcompiler-0.32.1 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -0,0 +1,4 @@
1
+ build/
2
+ .venv/
3
+ /setup/docker/
4
+ /docs/
@@ -8,6 +8,39 @@ 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.32.3 (2025-04-11)
12
+ =========================================
13
+
14
+ **Major:**
15
+
16
+ * Added a commandline dashboard to provide quick overview of a run. Accessible by adding `.dashboard(type='cli')` before calling `run()`. [Ciprian167]
17
+
18
+ **Minor:**
19
+
20
+ * Fixed `sc-issue` bug that caused the directory to have a partial name.
21
+ * Fixed `replay.sh` generator that caused an invalid bash script to get generated during issue creation.
22
+
23
+ * Tools:
24
+
25
+ * openroad: fixed metal fill script bug that prevented the metal fill from executing properly.
26
+ * opensta: added build scripts for opensta.
27
+ * yosys: added ability use yosys as a frontend for simple design.
28
+
29
+
30
+ SiliconCompiler 0.32.2 (2025-03-31)
31
+ =========================================
32
+
33
+ **Minor:**
34
+
35
+ * Expanded tool builds to support arm architectures, where possible.
36
+ * Added tool group descriptions to `sc-install -help`.
37
+
38
+ * Tools:
39
+
40
+ * openroad: added repair design option to repair timing to reduce number of design rule violations.
41
+ * yosys: split the FPGA and ASIC synthesis flows.
42
+
43
+
11
44
  SiliconCompiler 0.32.1 (2025-03-13)
12
45
  =========================================
13
46
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.32.1
3
+ Version: 0.32.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
@@ -26,7 +26,7 @@ Requires-Python: >=3.8
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
29
- Requires-Dist: aiohttp==3.11.13; python_version >= "3.9"
29
+ Requires-Dist: aiohttp==3.11.16; python_version >= "3.9"
30
30
  Requires-Dist: requests==2.32.3
31
31
  Requires-Dist: PyYAML==6.0.2
32
32
  Requires-Dist: pandas>=1.1.5
@@ -45,27 +45,30 @@ Requires-Dist: fasteners==0.19
45
45
  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
- Requires-Dist: orjson==3.10.15
48
+ Requires-Dist: orjson==3.10.15; python_version <= "3.8"
49
+ Requires-Dist: orjson==3.10.16; python_version >= "3.9"
49
50
  Requires-Dist: pyslang==8.0.0
50
51
  Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
51
- Requires-Dist: streamlit==1.43.1; python_version >= "3.9" and python_full_version != "3.9.7"
52
+ Requires-Dist: streamlit==1.44.1; python_version >= "3.9" and python_full_version != "3.9.7"
52
53
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
53
54
  Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
54
55
  Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
55
56
  Requires-Dist: streamlit-autorefresh==1.0.1; python_full_version != "3.9.7"
57
+ Requires-Dist: rich==13.9.4
56
58
  Provides-Extra: test
57
59
  Requires-Dist: pytest==8.3.5; extra == "test"
58
60
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
59
61
  Requires-Dist: pytest-timeout==2.3.1; extra == "test"
60
62
  Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
61
- Requires-Dist: pytest-asyncio==0.25.3; python_version >= "3.9" and extra == "test"
63
+ Requires-Dist: pytest-asyncio==0.26.0; python_version >= "3.9" and extra == "test"
62
64
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
63
- Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
64
- Requires-Dist: responses==0.25.6; extra == "test"
65
+ Requires-Dist: pytest-cov==6.1.1; python_version >= "3.9" and extra == "test"
66
+ Requires-Dist: responses==0.25.7; extra == "test"
65
67
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
68
+ Requires-Dist: logiklib==0.1.0; extra == "test"
66
69
  Provides-Extra: lint
67
- Requires-Dist: flake8==7.1.2; extra == "lint"
68
- Requires-Dist: tclint==0.5.3; extra == "lint"
70
+ Requires-Dist: flake8==7.2.0; extra == "lint"
71
+ Requires-Dist: tclint==0.5.4; extra == "lint"
69
72
  Requires-Dist: codespell==2.4.1; extra == "lint"
70
73
  Provides-Extra: docs
71
74
  Requires-Dist: Sphinx==8.2.3; extra == "docs"
@@ -76,6 +79,7 @@ Provides-Extra: profile
76
79
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
77
80
  Provides-Extra: optimizer
78
81
  Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
82
+ Dynamic: license-file
79
83
 
80
84
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
81
85
 
@@ -33,7 +33,7 @@ classifiers = [
33
33
  requires-python = ">= 3.8"
34
34
  dependencies = [
35
35
  "aiohttp == 3.10.11; python_version <= '3.8'",
36
- "aiohttp == 3.11.13; python_version >= '3.9'",
36
+ "aiohttp == 3.11.16; python_version >= '3.9'",
37
37
  "requests == 2.32.3",
38
38
  "PyYAML == 6.0.2",
39
39
  "pandas >= 1.1.5",
@@ -52,16 +52,20 @@ dependencies = [
52
52
  "fastjsonschema == 2.21.1",
53
53
  "docker == 7.1.0",
54
54
  "importlib_metadata; python_version < '3.10'",
55
- "orjson == 3.10.15",
55
+ "orjson == 3.10.15; python_version <= '3.8'",
56
+ "orjson == 3.10.16; python_version >= '3.9'",
56
57
  "pyslang == 8.0.0",
57
58
 
58
59
  # dashboard, streamlit does not support 3.9.7
59
60
  "streamlit == 1.40.1; python_version <= '3.8'",
60
- "streamlit == 1.43.1; python_version >= '3.9' and python_full_version != '3.9.7'",
61
+ "streamlit == 1.44.1; python_version >= '3.9' and python_full_version != '3.9.7'",
61
62
  "streamlit_agraph == 0.0.45; python_full_version != '3.9.7'",
62
63
  "streamlit-antd-components == 0.3.2; python_full_version != '3.9.7'",
63
64
  "streamlit_javascript == 0.1.5; python_full_version != '3.9.7'",
64
- "streamlit-autorefresh == 1.0.1; python_full_version != '3.9.7'"
65
+ "streamlit-autorefresh == 1.0.1; python_full_version != '3.9.7'",
66
+
67
+ # CLI dashboard
68
+ "rich == 13.9.4"
65
69
  ]
66
70
  license = {text = "Apache License 2.0"}
67
71
  dynamic = ["version"]
@@ -111,15 +115,16 @@ test = [
111
115
  "pytest-xdist == 3.6.1",
112
116
  "pytest-timeout == 2.3.1",
113
117
  "pytest-asyncio == 0.24.0; python_version <= '3.8'",
114
- "pytest-asyncio == 0.25.3; python_version >= '3.9'",
118
+ "pytest-asyncio == 0.26.0; python_version >= '3.9'",
115
119
  "pytest-cov == 5.0.0; python_version <= '3.8'",
116
- "pytest-cov == 6.0.0; python_version >= '3.9'",
117
- "responses == 0.25.6",
118
- "PyVirtualDisplay == 3.0"
120
+ "pytest-cov == 6.1.1; python_version >= '3.9'",
121
+ "responses == 0.25.7",
122
+ "PyVirtualDisplay == 3.0",
123
+ "logiklib == 0.1.0"
119
124
  ]
120
125
  lint = [
121
- "flake8 == 7.1.2",
122
- "tclint == 0.5.3",
126
+ "flake8 == 7.2.0",
127
+ "tclint == 0.5.4",
123
128
  "codespell == 2.4.1"
124
129
  ]
125
130
  docs = [
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.32.1'
2
+ version = '0.32.3'
3
3
 
4
4
  # Default server address for remote runs, if unspecified.
5
5
  default_server = 'https://server.siliconcompiler.com'
@@ -21,7 +21,8 @@ authors = [
21
21
  'Aulihan Teng',
22
22
  'Peter Grossmann',
23
23
  'Gabriel Aguirre',
24
- 'Martin Troiber'
24
+ 'Martin Troiber',
25
+ 'Ciprian Antoci'
25
26
  ]
26
27
 
27
28
  # CLI entry banner autogenerated using pyfiglet.
@@ -139,8 +139,8 @@ def _get_tools_list():
139
139
 
140
140
  def _recommended_tool_groups(tools):
141
141
  groups = {
142
- "asic": {"surelog", "sv2v", "yosys", "openroad", "klayout"},
143
- "fpga": {"surelog", "sv2v", "yosys", "vpr"},
142
+ "asic": {"sv2v", "yosys", "openroad", "klayout"},
143
+ "fpga": {"sv2v", "yosys", "vpr"},
144
144
  "digital-simulation": {"verilator", "icarus", "gtkwave"},
145
145
  "analog-simulation": {"xyce"}
146
146
  }
@@ -162,7 +162,13 @@ class HelpFormatter(argparse.ArgumentDefaultsHelpFormatter, argparse.RawDescript
162
162
 
163
163
  def main():
164
164
  progname = "sc-install"
165
- description = """
165
+
166
+ tools = _get_tools_list()
167
+ group_desc = "\n".join(
168
+ [f" {grp}: {', '.join(grp_tools)}"
169
+ for grp, grp_tools in _recommended_tool_groups(tools).items()])
170
+
171
+ description = f"""
166
172
  -----------------------------------------------------------
167
173
  SC app install supported tools.
168
174
 
@@ -187,14 +193,16 @@ To show the install script:
187
193
  To system debugging information (this should only be used to debug):
188
194
  sc-install -debug_machine
189
195
  -----------------------------------------------------------
196
+ Tool groups:
197
+ {group_desc}
198
+ -----------------------------------------------------------
190
199
  """
200
+
191
201
  parser = argparse.ArgumentParser(
192
202
  prog=progname,
193
203
  description=description,
194
204
  formatter_class=HelpFormatter)
195
205
 
196
- tools = _get_tools_list()
197
-
198
206
  if _get_os_name() is None:
199
207
  print("Unsupported operating system", file=sys.stderr)
200
208
  print_machine_info()
@@ -97,8 +97,9 @@ To delete a job, use:
97
97
  chip.logger.error(f'Error: {", ".join(["-"+e for e in exclusive])} are mutually exclusive')
98
98
  return 1
99
99
  chip_cfg = chip.get('option', 'cfg')
100
- if chip_cfg and not any([args[arg] for arg in cfg_only]):
100
+ if not chip_cfg and any([args[arg] for arg in cfg_only]):
101
101
  chip.logger.error(f'Error: -cfg is required for {", ".join(["-"+e for e in cfg_only])}')
102
+ return 2
102
103
  if any([args[arg] for arg in cfg_only]) and args['server']:
103
104
  chip.logger.error('Error: -server cannot be specified with '
104
105
  f'{", ".join(["-"+e for e in cfg_only])}')
@@ -17,16 +17,20 @@ import graphviz
17
17
  import codecs
18
18
  import copy
19
19
  from inspect import getfullargspec
20
- from siliconcompiler.remote import client
21
20
  from siliconcompiler.schema import Schema, SCHEMA_VERSION
22
21
  from siliconcompiler.schema import utils as schema_utils
23
22
  from siliconcompiler import utils
24
- from siliconcompiler.utils.logging import LoggerFormatter, ColorStreamFormatter
23
+ from siliconcompiler.utils.logging import SCColorLoggerFormatter, \
24
+ SCLoggerFormatter, SCInRunLoggerFormatter, \
25
+ SCDebugLoggerFormatter, SCDebugInRunLoggerFormatter, \
26
+ SCBlankLoggerFormatter
25
27
  from siliconcompiler import _metadata
26
28
  from siliconcompiler import NodeStatus, SiliconCompilerError
27
29
  from siliconcompiler.report import _show_summary_table
28
30
  from siliconcompiler.report import _generate_summary_image, _open_summary_image
29
- from siliconcompiler.report import Dashboard
31
+ from siliconcompiler.report.dashboard.web import WebDashboard
32
+ from siliconcompiler.report.dashboard.cli import CliDashboard
33
+ from siliconcompiler.report.dashboard import DashboardType
30
34
  from siliconcompiler import package as sc_package
31
35
  import glob
32
36
  from siliconcompiler.scheduler import run as sc_runner
@@ -203,13 +207,11 @@ class Chip:
203
207
 
204
208
  def _add_file_logger(self, filename):
205
209
  # Add a file handler for logging
206
- logformat = self.logger.handlers[0].formatter
207
-
208
210
  file_handler = logging.FileHandler(filename)
209
- file_handler.setFormatter(logformat)
210
-
211
211
  self.logger.addHandler(file_handler)
212
212
 
213
+ self._init_logger_formats()
214
+
213
215
  return file_handler
214
216
 
215
217
  ###########################################################################
@@ -227,58 +229,54 @@ class Chip:
227
229
  else:
228
230
  in_run = False
229
231
 
230
- level_format = '%(levelname)-7s'
231
- log_format = [level_format]
232
- if loglevel == 'debug':
233
- log_format.append('%(funcName)-10s')
234
- log_format.append('%(lineno)-4s')
235
-
236
- if in_run:
237
- max_column_width = 20
238
- # Figure out how wide to make step and index fields
239
- max_step_len = 1
240
- max_index_len = 1
241
- nodes_to_run = _get_flowgraph_nodes(self, flow=self.get('option', 'flow'))
242
- if self.get('option', 'remote'):
243
- nodes_to_run.append((client.remote_step_name, '0'))
244
- for future_step, future_index in nodes_to_run:
245
- max_step_len = max(len(future_step), max_step_len)
246
- max_index_len = max(len(future_index), max_index_len)
247
- max_step_len = min(max_step_len, max_column_width)
248
- max_index_len = min(max_index_len, max_column_width)
232
+ # Save in run flag
233
+ self.logger._in_run = in_run
234
+ self.logger._in_step = step
235
+ self.logger._in_index = index
249
236
 
250
- jobname = self.get('option', 'jobname')
237
+ self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
251
238
 
252
- if step is None:
253
- step = '-' * max(max_step_len // 4, 1)
254
- if index is None:
255
- index = '-' * max(max_index_len // 4, 1)
239
+ if not self.logger.hasHandlers():
240
+ stream_handler = logging.StreamHandler(stream=sys.stdout)
241
+ # Save console handler
242
+ self.logger._console = stream_handler
243
+ self.logger.addHandler(stream_handler)
256
244
 
257
- log_format.append(utils.truncate_text(jobname, max_column_width))
258
- log_format.append(f'{utils.truncate_text(step, max_step_len): <{max_step_len}}')
259
- log_format.append(f'{utils.truncate_text(index, max_step_len): >{max_index_len}}')
245
+ self.logger._support_color = SCColorLoggerFormatter.supports_color(stream_handler)
260
246
 
261
- log_formatprefix = "| "
262
- if loglevel == "quiet":
263
- log_format = []
264
- log_formatprefix = ""
247
+ self._init_logger_formats(loglevel=loglevel)
265
248
 
266
- log_format.append('%(message)s')
267
- stream_logformat = log_formatprefix + ' | '.join(log_format[1:])
249
+ def _init_logger_formats(self, loglevel=None):
250
+ if not loglevel:
251
+ loglevel = self.schema.get('option', 'loglevel',
252
+ step=self.logger._in_step, index=self.logger._in_index)
268
253
 
269
- if not self.logger.hasHandlers():
270
- stream_handler = logging.StreamHandler(stream=sys.stdout)
271
- self.logger.addHandler(stream_handler)
254
+ if loglevel == 'quiet':
255
+ base_format = SCBlankLoggerFormatter()
256
+ elif self.logger._in_run:
257
+ if loglevel == 'debug':
258
+ base_format = SCDebugInRunLoggerFormatter(
259
+ self,
260
+ self.get('option', 'jobname'),
261
+ self.logger._in_step, self.logger._in_index)
262
+ else:
263
+ base_format = SCInRunLoggerFormatter(
264
+ self,
265
+ self.get('option', 'jobname'),
266
+ self.logger._in_step, self.logger._in_index)
267
+ else:
268
+ if loglevel == 'debug':
269
+ base_format = SCDebugLoggerFormatter()
270
+ else:
271
+ base_format = SCLoggerFormatter()
272
272
 
273
- for handler in self.logger.handlers:
274
- if ColorStreamFormatter.supports_color(handler):
275
- formatter = ColorStreamFormatter(log_formatprefix, level_format, stream_logformat)
273
+ for handler in self.logger.handlers.copy():
274
+ if handler == self.logger._console and self.logger._support_color:
275
+ formatter = SCColorLoggerFormatter(base_format)
276
276
  else:
277
- formatter = LoggerFormatter(log_formatprefix, level_format, stream_logformat)
277
+ formatter = base_format
278
278
  handler.setFormatter(formatter)
279
279
 
280
- self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
281
-
282
280
  ###########################################################################
283
281
  def _init_codecs(self):
284
282
  # Custom error handlers used to provide warnings when invalid characters
@@ -2850,7 +2848,7 @@ class Chip:
2850
2848
  return hashlist
2851
2849
 
2852
2850
  ###########################################################################
2853
- def dashboard(self, wait=True, port=None, graph_chips=None):
2851
+ def dashboard(self, wait=True, port=None, graph_chips=None, type=DashboardType.WEB):
2854
2852
  '''
2855
2853
  Open a session of the dashboard.
2856
2854
 
@@ -2864,6 +2862,8 @@ class Chip:
2864
2862
  dashboard to.
2865
2863
  graph_chips (list): A list of dictionaries of the format
2866
2864
  {'chip': chip object, 'name': chip name}
2865
+ type (enum): A string specifying what kind of dashboard to
2866
+ launch. Available options: 'cli', 'web'.
2867
2867
 
2868
2868
  Examples:
2869
2869
  >>> chip.dashboard()
@@ -2874,7 +2874,14 @@ class Chip:
2874
2874
  self._dash.stop()
2875
2875
  self._dash = None
2876
2876
 
2877
- self._dash = Dashboard(self, port=port, graph_chips=graph_chips)
2877
+ # Select dashboard type
2878
+ type = DashboardType(type)
2879
+ if type == DashboardType.WEB:
2880
+ self._dash = WebDashboard(self, port=port, graph_chips=graph_chips)
2881
+ elif type == DashboardType.CLI:
2882
+ self._dash = CliDashboard(self)
2883
+ wait = False
2884
+
2878
2885
  self._dash.open_dashboard()
2879
2886
 
2880
2887
  if wait:
@@ -3000,7 +3007,7 @@ class Chip:
3000
3007
  flow (str): Flow name
3001
3008
  step (str): Step name
3002
3009
  task (module/str): Task to associate with this node
3003
- index (int): Step index
3010
+ index (int/str): Step index
3004
3011
 
3005
3012
  Examples:
3006
3013
  >>> import siliconcomiler.tools.openroad.place as place
@@ -3059,8 +3066,8 @@ class Chip:
3059
3066
  flow (str): Name of flow
3060
3067
  tail (str): Name of tail node
3061
3068
  head (str): Name of head node
3062
- tail_index (int): Index of tail node to connect
3063
- head_index (int): Index of head node to connect
3069
+ tail_index (int/str): Index of tail node to connect
3070
+ head_index (int/str): Index of head node to connect
3064
3071
 
3065
3072
  Examples:
3066
3073
  >>> chip.edge('place', 'cts')
@@ -3090,7 +3097,7 @@ class Chip:
3090
3097
  Args:
3091
3098
  flow (str): Flow name
3092
3099
  step (str): Step name
3093
- index (int): Step index
3100
+ index (int/str): Step index
3094
3101
  '''
3095
3102
 
3096
3103
  if flow not in self.getkeys('flowgraph'):
@@ -3202,6 +3209,12 @@ class Chip:
3202
3209
  raise e
3203
3210
  self.logger.error(str(e))
3204
3211
  return False
3212
+ finally:
3213
+ # Update dashboard if running
3214
+ if self._dash:
3215
+ self._dash.update_manifest()
3216
+ self._dash.end_of_run()
3217
+
3205
3218
  return True
3206
3219
 
3207
3220
  ###########################################################################
@@ -273,7 +273,9 @@ def generate_testcase(chip,
273
273
  full_archive_path = os.path.join(archive_directory, archive_name)
274
274
  full_archive_path = os.path.abspath(full_archive_path)
275
275
  # Build archive
276
- arch_base_dir = os.path.basename(archive_name).split('.')[0]
276
+ arch_base_dir = os.path.basename(archive_name)
277
+ while arch_base_dir.lower().split('.')[-1] in ('gz', 'tar'):
278
+ arch_base_dir = '.'.join(arch_base_dir.split('.')[0:-1])
277
279
  with tarfile.open(full_archive_path, "w:gz") as tar:
278
280
  # Add individual files
279
281
  add_files = [manifest_path,
@@ -10,11 +10,12 @@ import tarfile
10
10
  import tempfile
11
11
  import multiprocessing
12
12
 
13
- from siliconcompiler import utils, SiliconCompilerError
13
+ from siliconcompiler import utils, SiliconCompilerError, NodeStatus
14
14
  from siliconcompiler import NodeStatus as SCNodeStatus
15
15
  from siliconcompiler._metadata import default_server
16
16
  from siliconcompiler.flowgraph import nodes_to_execute
17
17
  from siliconcompiler.remote import JobStatus
18
+ from siliconcompiler.report.dashboard import DashboardType
18
19
 
19
20
  # Step name to use while logging
20
21
  remote_step_name = 'remote'
@@ -298,18 +299,19 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
298
299
  self.__logger.info(nodes_log)
299
300
 
300
301
  def _report_job_status(self, info):
302
+ completed = []
303
+ starttimes = {}
304
+
301
305
  if not info['busy']:
302
306
  # Job is not running
303
- return [], False
307
+ return completed, starttimes, False
304
308
 
305
309
  try:
306
310
  # Decode response JSON, if possible.
307
311
  job_info = json.loads(info['message'])
308
312
  except json.JSONDecodeError as e:
309
313
  self.__logger.warning(f"Job is still running: {e}")
310
- return [], True
311
-
312
- completed = []
314
+ return completed, starttimes, True
313
315
 
314
316
  nodes_to_log = {}
315
317
  for node, node_info in job_info.items():
@@ -335,7 +337,16 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
335
337
  self.__log_node_status(stat, nodes)
336
338
 
337
339
  # Running / in-progress flowgraph nodes should all be printed:
340
+ base_time = time.time()
338
341
  for stat, nodes in nodes_to_log.items():
342
+ for node, node_info in nodes:
343
+ if 'elapsed_time' in node_info:
344
+ runtime = 0
345
+ for part in node_info['elapsed_time'].split(":"):
346
+ runtime = 60 * runtime + float(part)
347
+ starttimes[(self.__node_information[node]["step"],
348
+ self.__node_information[node]["index"])] = base_time - runtime
349
+
339
350
  if SCNodeStatus.is_running(stat):
340
351
  self.__logger.info(f' {stat.title()} ({len(nodes)}):')
341
352
  for node, node_info in nodes:
@@ -349,7 +360,7 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
349
360
  if SCNodeStatus.is_waiting(stat):
350
361
  self.__log_node_status(stat, nodes)
351
362
 
352
- return completed, True
363
+ return completed, starttimes, True
353
364
 
354
365
  def __check(self):
355
366
  def post_action(url):
@@ -438,6 +449,9 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
438
449
  raise SiliconCompilerError('Cannot pass [arg,index] parameter into remote flow.',
439
450
  chip=self.__chip)
440
451
 
452
+ if not self.__chip._dash:
453
+ self.__chip.dashboard(type=DashboardType.CLI)
454
+
441
455
  # Only run the pre-process step if the job doesn't already have a remote ID.
442
456
  if not remote_resume:
443
457
  self.__run_preprocess()
@@ -450,10 +464,12 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
450
464
  self.__request_run()
451
465
 
452
466
  # Run the main 'check_progress' loop to monitor job status until it finishes.
453
- self._run_loop()
454
-
455
- # Restore logger
456
- self.__chip._init_logger(in_run=True)
467
+ try:
468
+ self._run_loop()
469
+ finally:
470
+ # Restore logger
471
+ self.__chip._dash.end_of_run()
472
+ self.__chip._init_logger(in_run=True)
457
473
 
458
474
  def __request_run(self):
459
475
  '''
@@ -559,7 +575,7 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
559
575
  self.__logger.info(f'To cancel this job use: {cancel_cmd}')
560
576
  raise SiliconCompilerError('Job canceled by user keyboard interrupt')
561
577
 
562
- def __import_run_manifests(self):
578
+ def __import_run_manifests(self, starttimes):
563
579
  changed = False
564
580
  for _, node_info in self.__node_information.items():
565
581
  if node_info["imported"]:
@@ -577,6 +593,16 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
577
593
  except: # noqa E722
578
594
  # Import may fail if file is still getting written
579
595
  pass
596
+ elif self.__chip.get('record', 'status',
597
+ step=node_info["step"], index=node_info["index"]) \
598
+ == NodeStatus.SKIPPED:
599
+ node_info["imported"] = True
600
+ changed = True
601
+
602
+ if changed and self.__chip._dash:
603
+ # Update dashboard if active
604
+ self.__chip._dash.update_manifest({"starttimes": starttimes})
605
+
580
606
  return changed
581
607
 
582
608
  def __ensure_run_loop_information(self):
@@ -605,17 +631,30 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
605
631
  # Check the job's progress periodically until it finishes.
606
632
  running = True
607
633
 
634
+ starttimes = {}
635
+
608
636
  while running:
609
- time.sleep(self.__check_interval)
610
- self.__import_run_manifests()
637
+ sleepremaining = self.__check_interval
638
+ while any([nodeinfo["fetched"] and not nodeinfo["imported"]
639
+ for nodeinfo in self.__node_information.values()]):
640
+ self.__import_run_manifests(starttimes)
641
+ sleepremaining -= 1
642
+ if sleepremaining <= 0:
643
+ break
644
+ time.sleep(1)
645
+ if sleepremaining > 0:
646
+ time.sleep(sleepremaining)
611
647
 
612
648
  # Check progress
613
649
  job_info = self.check_job_status()
614
- completed, running = self._report_job_status(job_info)
650
+ completed, new_starttimes, running = self._report_job_status(job_info)
651
+
652
+ # preserve old starttimes
653
+ starttimes = {**starttimes, **new_starttimes}
615
654
 
616
655
  if self.__chip._dash:
617
656
  # Update dashboard if active
618
- self.__chip._dash.update_manifest()
657
+ self.__chip._dash.update_manifest({"starttimes": starttimes})
619
658
 
620
659
  nodes_to_fetch = []
621
660
  for node in completed:
@@ -648,7 +687,7 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
648
687
  self.__download_pool.join()
649
688
  self.__download_pool = None
650
689
 
651
- self.__import_run_manifests()
690
+ self.__import_run_manifests({})
652
691
 
653
692
  def __schedule_fetch_result(self, node):
654
693
  self.__node_information[node]["fetched"] = True
@@ -1,7 +1,8 @@
1
1
  from .summary_image import _generate_summary_image, _open_summary_image
2
2
  from .html_report import _generate_html_report, _open_html_report
3
3
  from .summary_table import _show_summary_table
4
- from .dashboard import Dashboard
4
+ from .dashboard.web import WebDashboard
5
+ # from .dashboard import Dashboard
5
6
 
6
7
  __all__ = [
7
8
  "_generate_summary_image",
@@ -9,5 +10,5 @@ __all__ = [
9
10
  "_generate_html_report",
10
11
  "_open_html_report",
11
12
  "_show_summary_table",
12
- "Dashboard"
13
+ "WebDashboard"
13
14
  ]