siliconcompiler 0.32.2__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 (492) hide show
  1. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/Changes +19 -0
  2. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/PKG-INFO +5 -4
  3. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/pyproject.toml +7 -4
  4. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/_metadata.py +3 -2
  5. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/core.py +52 -56
  6. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/issue.py +3 -1
  7. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/client.py +55 -16
  8. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/report/__init__.py +3 -2
  9. siliconcompiler-0.32.3/siliconcompiler/report/dashboard/__init__.py +81 -0
  10. siliconcompiler-0.32.3/siliconcompiler/report/dashboard/cli/__init__.py +788 -0
  11. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/__init__.py +12 -6
  12. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/components/__init__.py +4 -4
  13. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/components/graph.py +1 -1
  14. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/__init__.py +3 -3
  15. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/_common.py +1 -1
  16. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/vertical_flowgraph.py +5 -5
  17. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/vertical_flowgraph_node_tab.py +6 -6
  18. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/layouts/vertical_flowgraph_sac_tabs.py +6 -6
  19. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/viewer.py +4 -4
  20. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/__init__.py +8 -6
  21. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/replay.sh.j2 +2 -2
  22. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/__init__.py +2 -0
  23. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/_apr.py +4 -0
  24. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
  25. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +1 -1
  26. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
  27. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +1 -1
  28. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +1 -1
  29. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +1 -1
  30. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +1 -1
  31. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
  32. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +1 -1
  33. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +1 -1
  34. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +1 -1
  35. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +1 -1
  36. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +1 -1
  37. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +1 -1
  38. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +1 -1
  39. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +1 -1
  40. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +2 -2
  41. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +1 -1
  42. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +1 -1
  43. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +2 -2
  44. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +1 -1
  45. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +1 -1
  46. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +1 -1
  47. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/__init__.py +1 -1
  48. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
  49. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
  50. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
  51. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
  52. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/timing.py +6 -2
  53. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/sc_synth_asic.tcl +36 -28
  54. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/syn_asic.py +11 -2
  55. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/_tools.json +9 -4
  56. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
  57. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-icarus.sh +1 -0
  58. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
  59. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
  60. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
  61. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
  62. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
  63. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
  64. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-verible.sh +2 -0
  65. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-verilator.sh +1 -0
  66. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel8}/install-xyce.sh +2 -0
  67. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-chisel.sh +2 -0
  68. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
  69. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -0
  70. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-icarus.sh +1 -0
  71. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
  72. siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9/install-magic.sh +25 -0
  73. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
  74. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
  75. siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
  76. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
  77. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
  78. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
  79. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
  80. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-verilator.sh +1 -0
  81. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +2 -0
  82. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
  83. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-xyce.sh +2 -0
  84. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-yosys-moosic.sh +2 -0
  85. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/rhel9}/install-yosys-parmys.sh +2 -0
  86. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
  87. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
  88. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
  89. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-bluespec.sh +2 -0
  90. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-chisel.sh +2 -0
  91. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +2 -0
  92. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
  93. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
  94. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
  95. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
  96. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-magic.sh +2 -0
  97. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-netgen.sh +2 -0
  98. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
  99. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +2 -0
  100. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
  101. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
  102. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-slurm.sh +2 -0
  103. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
  104. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-sv2v.sh +1 -1
  105. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-verible.sh +2 -0
  106. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-verilator.sh +2 -0
  107. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-vpr.sh +2 -0
  108. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-xdm.sh +2 -0
  109. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
  110. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-yosys-moosic.sh +2 -0
  111. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +2 -0
  112. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu20}/install-yosys.sh +2 -0
  113. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
  114. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +2 -0
  115. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-chisel.sh +2 -0
  116. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +2 -0
  117. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
  118. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
  119. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
  120. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
  121. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-magic.sh +2 -0
  122. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-netgen.sh +2 -0
  123. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-nextpnr.sh +1 -2
  124. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-openroad.sh +2 -0
  125. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
  126. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-slang.sh +3 -1
  127. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-slurm.sh +2 -0
  128. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
  129. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-sv2v.sh +1 -1
  130. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-verible.sh +2 -0
  131. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-verilator.sh +2 -0
  132. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +2 -0
  133. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-xdm.sh +2 -0
  134. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-xyce.sh +2 -0
  135. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +2 -0
  136. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-yosys-parmys.sh +2 -0
  137. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +3 -1
  138. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu22}/install-yosys.sh +2 -0
  139. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
  140. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-bluespec.sh +2 -0
  141. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +28 -0
  142. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +2 -0
  143. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
  144. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
  145. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
  146. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
  147. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-magic.sh +2 -0
  148. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
  149. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-nextpnr.sh +1 -3
  150. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-openroad.sh +2 -0
  151. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
  152. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-slang.sh +3 -1
  153. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-slurm.sh +2 -0
  154. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
  155. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-sv2v.sh +1 -1
  156. siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +26 -0
  157. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-verilator.sh +2 -0
  158. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-vpr.sh +2 -0
  159. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
  160. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-xyce.sh +2 -0
  161. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-yosys-moosic.sh +2 -0
  162. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-yosys-parmys.sh +2 -0
  163. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +3 -1
  164. {siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.3/siliconcompiler/toolscripts/ubuntu24}/install-yosys.sh +2 -0
  165. siliconcompiler-0.32.3/siliconcompiler/utils/logging.py +121 -0
  166. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/PKG-INFO +5 -4
  167. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/SOURCES.txt +18 -12
  168. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/requires.txt +4 -3
  169. siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -26
  170. siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -26
  171. siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -24
  172. siliconcompiler-0.32.2/siliconcompiler/utils/logging.py +0 -67
  173. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/.dockerignore +0 -0
  174. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/.flake8 +0 -0
  175. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/.gitattributes +0 -0
  176. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/.gitignore +0 -0
  177. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/.readthedocs.yaml +0 -0
  178. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/CONTRIBUTING.md +0 -0
  179. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/LICENSE +0 -0
  180. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/MANIFEST.in +0 -0
  181. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/README.md +0 -0
  182. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/SECURITY.md +0 -0
  183. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/scripts/.gitignore +0 -0
  184. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/scripts/check_library.py +0 -0
  185. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/scripts/profile_sc.py +0 -0
  186. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/scripts/report_library.py +0 -0
  187. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/setup.cfg +0 -0
  188. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/__init__.py +0 -0
  189. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/__main__.py +0 -0
  190. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/_common.py +0 -0
  191. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/__init__.py +0 -0
  192. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/_common.py +0 -0
  193. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc.py +0 -0
  194. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_dashboard.py +0 -0
  195. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_install.py +0 -0
  196. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_issue.py +0 -0
  197. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_remote.py +0 -0
  198. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_server.py +0 -0
  199. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/sc_show.py +0 -0
  200. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/smake.py +0 -0
  201. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/utils/replay.py +0 -0
  202. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/apps/utils/summarize.py +0 -0
  203. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/checklists/__init__.py +0 -0
  204. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/checklists/oh_tapeout.py +0 -0
  205. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
  206. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
  207. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
  208. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/data/__init__.py +0 -0
  209. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/data/heartbeat.v +0 -0
  210. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/data/logo.png +0 -0
  211. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flowgraph.py +0 -0
  212. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/__init__.py +0 -0
  213. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/_common.py +0 -0
  214. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/asicflow.py +0 -0
  215. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/asictopflow.py +0 -0
  216. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/drcflow.py +0 -0
  217. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/dvflow.py +0 -0
  218. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/fpgaflow.py +0 -0
  219. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
  220. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/interposerflow.py +0 -0
  221. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/lintflow.py +0 -0
  222. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/screenshotflow.py +0 -0
  223. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/showflow.py +0 -0
  224. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/signoffflow.py +0 -0
  225. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/flows/synflow.py +0 -0
  226. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/fpgas/__init__.py +0 -0
  227. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
  228. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/libs/__init__.py +0 -0
  229. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/optimizer/__init__.py +0 -0
  230. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/optimizer/vizier.py +0 -0
  231. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/package/__init__.py +0 -0
  232. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/package/git.py +0 -0
  233. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/package/github.py +0 -0
  234. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/package/https.py +0 -0
  235. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/pdks/__init__.py +0 -0
  236. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/__init__.py +0 -0
  237. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/schema.py +0 -0
  238. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server.py +0 -0
  239. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/__init__.py +0 -0
  240. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
  241. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
  242. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
  243. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
  244. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
  245. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
  246. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
  247. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
  248. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
  249. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
  250. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
  251. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
  252. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
  253. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
  254. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/components/flowgraph.py +0 -0
  255. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/state.py +0 -0
  256. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/utils/__init__.py +0 -0
  257. {siliconcompiler-0.32.2/siliconcompiler/report/dashboard → siliconcompiler-0.32.3/siliconcompiler/report/dashboard/web}/utils/file_utils.py +0 -0
  258. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/report/html_report.py +0 -0
  259. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/report/report.py +0 -0
  260. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/report/summary_image.py +0 -0
  261. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/report/summary_table.py +0 -0
  262. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/report/utils.py +0 -0
  263. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/docker_runner.py +0 -0
  264. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/run_node.py +0 -0
  265. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/send_messages.py +0 -0
  266. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/slurm.py +0 -0
  267. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/validation/__init__.py +0 -0
  268. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
  269. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/schema/__init__.py +0 -0
  270. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/schema/schema_cfg.py +0 -0
  271. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/schema/schema_obj.py +0 -0
  272. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/schema/utils.py +0 -0
  273. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/__init__.py +0 -0
  274. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
  275. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
  276. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/sphinx_ext/utils.py +0 -0
  277. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/__init__.py +0 -0
  278. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/asap7_demo.py +0 -0
  279. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/asic_demo.py +0 -0
  280. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
  281. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/freepdk45_demo.py +0 -0
  282. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/gf180_demo.py +0 -0
  283. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/ihp130_demo.py +0 -0
  284. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/interposer_demo.py +0 -0
  285. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/targets/skywater130_demo.py +0 -0
  286. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/__init__.py +0 -0
  287. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/email/__init__.py +0 -0
  288. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/email/general.j2 +0 -0
  289. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/email/summary.j2 +0 -0
  290. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/issue/README.txt +0 -0
  291. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/issue/__init__.py +0 -0
  292. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/issue/run.sh +0 -0
  293. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
  294. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/requirements.txt +0 -0
  295. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/replay/setup.sh +0 -0
  296. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/__init__.py +0 -0
  297. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
  298. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
  299. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
  300. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/report/sc_report.j2 +0 -0
  301. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/slurm/__init__.py +0 -0
  302. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/slurm/run.sh +0 -0
  303. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/tcl/__init__.py +0 -0
  304. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
  305. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/__init__.py +0 -0
  306. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/asic.py +0 -0
  307. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/asic_clock.py +0 -0
  308. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
  309. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
  310. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
  311. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
  312. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
  313. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/bambu/__init__.py +0 -0
  314. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/bambu/convert.py +0 -0
  315. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/bluespec/__init__.py +0 -0
  316. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/bluespec/convert.py +0 -0
  317. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/__init__.py +0 -0
  318. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/_common.py +0 -0
  319. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/builtin.py +0 -0
  320. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/concatenate.py +0 -0
  321. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/join.py +0 -0
  322. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/maximum.py +0 -0
  323. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/minimum.py +0 -0
  324. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/mux.py +0 -0
  325. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/nop.py +0 -0
  326. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/builtin/verify.py +0 -0
  327. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
  328. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/__init__.py +0 -0
  329. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/build.sbt +0 -0
  330. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/chisel.py +0 -0
  331. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/chisel/convert.py +0 -0
  332. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/execute/__init__.py +0 -0
  333. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/execute/exec_input.py +0 -0
  334. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/execute/execute.py +0 -0
  335. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/genfasm/__init__.py +0 -0
  336. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
  337. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
  338. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/ghdl/__init__.py +0 -0
  339. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/ghdl/convert.py +0 -0
  340. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
  341. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/graphviz/__init__.py +0 -0
  342. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
  343. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/graphviz/show.py +0 -0
  344. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
  345. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
  346. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/gtkwave/show.py +0 -0
  347. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/icarus/__init__.py +0 -0
  348. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/icarus/compile.py +0 -0
  349. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/icarus/icarus.py +0 -0
  350. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/icepack/__init__.py +0 -0
  351. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/icepack/bitstream.py +0 -0
  352. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/icepack/icepack.py +0 -0
  353. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/__init__.py +0 -0
  354. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
  355. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/drc.py +0 -0
  356. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/export.py +0 -0
  357. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout.py +0 -0
  358. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
  359. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
  360. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
  361. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
  362. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
  363. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/operations.py +0 -0
  364. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/screenshot.py +0 -0
  365. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/klayout/show.py +0 -0
  366. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/__init__.py +0 -0
  367. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/drc.py +0 -0
  368. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/extspice.py +0 -0
  369. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/magic.py +0 -0
  370. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
  371. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
  372. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
  373. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/montage/__init__.py +0 -0
  374. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/montage/montage.py +0 -0
  375. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/montage/tile.py +0 -0
  376. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/__init__.py +0 -0
  377. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
  378. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/lvs.py +0 -0
  379. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/netgen.py +0 -0
  380. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
  381. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
  382. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/nextpnr/apr.py +0 -0
  383. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
  384. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/__init__.py +0 -0
  385. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
  386. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
  387. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
  388. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
  389. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
  390. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
  391. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/global_placement.py +0 -0
  392. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/global_route.py +0 -0
  393. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
  394. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
  395. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/metrics.py +0 -0
  396. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
  397. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/power_grid.py +0 -0
  398. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
  399. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
  400. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
  401. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/repair_design.py +0 -0
  402. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
  403. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/screenshot.py +0 -0
  404. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
  405. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
  406. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
  407. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
  408. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
  409. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
  410. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
  411. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
  412. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
  413. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
  414. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
  415. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
  416. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
  417. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/show.py +0 -0
  418. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
  419. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
  420. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/openroad/write_data.py +0 -0
  421. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/check_library.py +0 -0
  422. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
  423. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
  424. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/slang/__init__.py +0 -0
  425. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/slang/elaborate.py +0 -0
  426. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/slang/lint.py +0 -0
  427. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/__init__.py +0 -0
  428. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/parse.py +0 -0
  429. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
  430. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/surelog/templates/output.v +0 -0
  431. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/sv2v/__init__.py +0 -0
  432. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/sv2v/convert.py +0 -0
  433. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
  434. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/template/__init__.py +0 -0
  435. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/template/template.py +0 -0
  436. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/__init__.py +0 -0
  437. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/compile.py +0 -0
  438. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/lint.py +0 -0
  439. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/parse.py +0 -0
  440. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/verilator/verilator.py +0 -0
  441. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/__init__.py +0 -0
  442. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/bitstream.py +0 -0
  443. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/place.py +0 -0
  444. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/route.py +0 -0
  445. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
  446. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
  447. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
  448. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
  449. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
  450. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
  451. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
  452. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vivado/vivado.py +0 -0
  453. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/__init__.py +0 -0
  454. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
  455. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
  456. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/place.py +0 -0
  457. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/route.py +0 -0
  458. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/screenshot.py +0 -0
  459. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/show.py +0 -0
  460. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/vpr/vpr.py +0 -0
  461. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/xdm/__init__.py +0 -0
  462. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/xdm/convert.py +0 -0
  463. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/xyce/__init__.py +0 -0
  464. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/xyce/simulate.py +0 -0
  465. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/__init__.py +0 -0
  466. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/lec.py +0 -0
  467. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
  468. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/procs.tcl +0 -0
  469. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
  470. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
  471. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/sc_synth_fpga.tcl +0 -0
  472. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/screenshot.py +0 -0
  473. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
  474. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
  475. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
  476. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
  477. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
  478. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
  479. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/_tools.py +0 -0
  480. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
  481. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
  482. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
  483. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
  484. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
  485. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/units.py +0 -0
  486. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/use.py +0 -0
  487. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/utils/__init__.py +0 -0
  488. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/utils/asic.py +0 -0
  489. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler/utils/showtools.py +0 -0
  490. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/dependency_links.txt +0 -0
  491. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/entry_points.txt +0 -0
  492. {siliconcompiler-0.32.2 → siliconcompiler-0.32.3}/siliconcompiler.egg-info/top_level.txt +0 -0
@@ -8,6 +8,25 @@ The changes in each SiliconCompiler release version are described below. Commit
8
8
  version shown in (). Where applicable, the contributors that suggested a given
9
9
  feature are shown in [].
10
10
 
11
+ SiliconCompiler 0.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
+
11
30
  SiliconCompiler 0.32.2 (2025-03-31)
12
31
  =========================================
13
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.32.2
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.14; 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
@@ -49,11 +49,12 @@ Requires-Dist: orjson==3.10.15; python_version <= "3.8"
49
49
  Requires-Dist: orjson==3.10.16; python_version >= "3.9"
50
50
  Requires-Dist: pyslang==8.0.0
51
51
  Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
52
- Requires-Dist: streamlit==1.44.0; 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"
53
53
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
54
54
  Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
55
55
  Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
56
56
  Requires-Dist: streamlit-autorefresh==1.0.1; python_full_version != "3.9.7"
57
+ Requires-Dist: rich==13.9.4
57
58
  Provides-Extra: test
58
59
  Requires-Dist: pytest==8.3.5; extra == "test"
59
60
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
@@ -61,7 +62,7 @@ Requires-Dist: pytest-timeout==2.3.1; extra == "test"
61
62
  Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
62
63
  Requires-Dist: pytest-asyncio==0.26.0; python_version >= "3.9" and extra == "test"
63
64
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
64
- Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
65
+ Requires-Dist: pytest-cov==6.1.1; python_version >= "3.9" and extra == "test"
65
66
  Requires-Dist: responses==0.25.7; extra == "test"
66
67
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
67
68
  Requires-Dist: logiklib==0.1.0; extra == "test"
@@ -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.14; 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",
@@ -58,11 +58,14 @@ dependencies = [
58
58
 
59
59
  # dashboard, streamlit does not support 3.9.7
60
60
  "streamlit == 1.40.1; python_version <= '3.8'",
61
- "streamlit == 1.44.0; 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'",
62
62
  "streamlit_agraph == 0.0.45; python_full_version != '3.9.7'",
63
63
  "streamlit-antd-components == 0.3.2; python_full_version != '3.9.7'",
64
64
  "streamlit_javascript == 0.1.5; python_full_version != '3.9.7'",
65
- "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"
66
69
  ]
67
70
  license = {text = "Apache License 2.0"}
68
71
  dynamic = ["version"]
@@ -114,7 +117,7 @@ test = [
114
117
  "pytest-asyncio == 0.24.0; python_version <= '3.8'",
115
118
  "pytest-asyncio == 0.26.0; python_version >= '3.9'",
116
119
  "pytest-cov == 5.0.0; python_version <= '3.8'",
117
- "pytest-cov == 6.0.0; python_version >= '3.9'",
120
+ "pytest-cov == 6.1.1; python_version >= '3.9'",
118
121
  "responses == 0.25.7",
119
122
  "PyVirtualDisplay == 3.0",
120
123
  "logiklib == 0.1.0"
@@ -1,5 +1,5 @@
1
1
  # Version number following semver standard.
2
- version = '0.32.2'
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.
@@ -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
@@ -238,62 +242,39 @@ class Chip:
238
242
  self.logger._console = stream_handler
239
243
  self.logger.addHandler(stream_handler)
240
244
 
241
- self.logger._support_color = ColorStreamFormatter.supports_color(stream_handler)
245
+ self.logger._support_color = SCColorLoggerFormatter.supports_color(stream_handler)
242
246
 
243
247
  self._init_logger_formats(loglevel=loglevel)
244
248
 
245
249
  def _init_logger_formats(self, loglevel=None):
246
250
  if not loglevel:
247
- self.schema.get('option', 'loglevel',
248
- step=self.logger._in_step, index=self.logger._in_index)
249
-
250
- level_format = '%(levelname)-7s'
251
- log_format = [level_format]
252
- if loglevel == 'debug':
253
- log_format.append('%(funcName)-10s')
254
- log_format.append('%(lineno)-4s')
255
-
256
- if self.logger._in_run:
257
- max_column_width = 20
258
- # Figure out how wide to make step and index fields
259
- max_step_len = 1
260
- max_index_len = 1
261
- nodes_to_run = _get_flowgraph_nodes(self, flow=self.get('option', 'flow'))
262
- if self.get('option', 'remote'):
263
- nodes_to_run.append((client.remote_step_name, '0'))
264
- for future_step, future_index in nodes_to_run:
265
- max_step_len = max(len(future_step), max_step_len)
266
- max_index_len = max(len(future_index), max_index_len)
267
- max_step_len = min(max_step_len, max_column_width)
268
- max_index_len = min(max_index_len, max_column_width)
269
-
270
- jobname = self.get('option', 'jobname')
271
-
272
- step = self.logger._in_step
273
- index = self.logger._in_index
274
-
275
- if step is None:
276
- step = '-' * max(max_step_len // 4, 1)
277
- if index is None:
278
- index = '-' * max(max_index_len // 4, 1)
279
-
280
- log_format.append(utils.truncate_text(jobname, max_column_width))
281
- log_format.append(f'{utils.truncate_text(step, max_step_len): <{max_step_len}}')
282
- log_format.append(f'{utils.truncate_text(index, max_step_len): >{max_index_len}}')
283
-
284
- log_formatprefix = "| "
285
- if loglevel == "quiet":
286
- log_format = []
287
- log_formatprefix = ""
288
-
289
- log_format.append('%(message)s')
290
- stream_logformat = log_formatprefix + ' | '.join(log_format[1:])
251
+ loglevel = self.schema.get('option', 'loglevel',
252
+ step=self.logger._in_step, index=self.logger._in_index)
253
+
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()
291
272
 
292
273
  for handler in self.logger.handlers.copy():
293
274
  if handler == self.logger._console and self.logger._support_color:
294
- formatter = ColorStreamFormatter(log_formatprefix, level_format, stream_logformat)
275
+ formatter = SCColorLoggerFormatter(base_format)
295
276
  else:
296
- formatter = LoggerFormatter(log_formatprefix, level_format, stream_logformat)
277
+ formatter = base_format
297
278
  handler.setFormatter(formatter)
298
279
 
299
280
  ###########################################################################
@@ -2867,7 +2848,7 @@ class Chip:
2867
2848
  return hashlist
2868
2849
 
2869
2850
  ###########################################################################
2870
- def dashboard(self, wait=True, port=None, graph_chips=None):
2851
+ def dashboard(self, wait=True, port=None, graph_chips=None, type=DashboardType.WEB):
2871
2852
  '''
2872
2853
  Open a session of the dashboard.
2873
2854
 
@@ -2881,6 +2862,8 @@ class Chip:
2881
2862
  dashboard to.
2882
2863
  graph_chips (list): A list of dictionaries of the format
2883
2864
  {'chip': chip object, 'name': chip name}
2865
+ type (enum): A string specifying what kind of dashboard to
2866
+ launch. Available options: 'cli', 'web'.
2884
2867
 
2885
2868
  Examples:
2886
2869
  >>> chip.dashboard()
@@ -2891,7 +2874,14 @@ class Chip:
2891
2874
  self._dash.stop()
2892
2875
  self._dash = None
2893
2876
 
2894
- 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
+
2895
2885
  self._dash.open_dashboard()
2896
2886
 
2897
2887
  if wait:
@@ -3017,7 +3007,7 @@ class Chip:
3017
3007
  flow (str): Flow name
3018
3008
  step (str): Step name
3019
3009
  task (module/str): Task to associate with this node
3020
- index (int): Step index
3010
+ index (int/str): Step index
3021
3011
 
3022
3012
  Examples:
3023
3013
  >>> import siliconcomiler.tools.openroad.place as place
@@ -3076,8 +3066,8 @@ class Chip:
3076
3066
  flow (str): Name of flow
3077
3067
  tail (str): Name of tail node
3078
3068
  head (str): Name of head node
3079
- tail_index (int): Index of tail node to connect
3080
- 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
3081
3071
 
3082
3072
  Examples:
3083
3073
  >>> chip.edge('place', 'cts')
@@ -3107,7 +3097,7 @@ class Chip:
3107
3097
  Args:
3108
3098
  flow (str): Flow name
3109
3099
  step (str): Step name
3110
- index (int): Step index
3100
+ index (int/str): Step index
3111
3101
  '''
3112
3102
 
3113
3103
  if flow not in self.getkeys('flowgraph'):
@@ -3219,6 +3209,12 @@ class Chip:
3219
3209
  raise e
3220
3210
  self.logger.error(str(e))
3221
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
+
3222
3218
  return True
3223
3219
 
3224
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
  ]
@@ -0,0 +1,81 @@
1
+ from abc import ABC, abstractmethod
2
+ from enum import Enum
3
+
4
+
5
+ class DashboardType(Enum):
6
+ WEB = 'web'
7
+ CLI = 'cli'
8
+
9
+
10
+ class AbstractDashboard(ABC):
11
+ """
12
+ Abstract base class defining the interface for dashboard implementations.
13
+ Any concrete dashboard implementation should inherit from this class and
14
+ implement all abstract methods.
15
+ """
16
+
17
+ @abstractmethod
18
+ def __init__(self, chip):
19
+ """
20
+ Initialize the dashboard.
21
+
22
+ Args:
23
+ chip: The chip object to display in the dashboard
24
+ """
25
+ self._chip = chip
26
+
27
+ @abstractmethod
28
+ def open_dashboard(self):
29
+ """
30
+ Open and start the dashboard service.
31
+ """
32
+ pass
33
+
34
+ @abstractmethod
35
+ def update_manifest(self, payload=None):
36
+ """
37
+ Update the manifest file with the latest chip information.
38
+
39
+ Args:
40
+ payload (dict): Dictionary of metadata to pass along to dashboard.
41
+ {"starttimes" {<node>: time, ...}}
42
+ """
43
+ pass
44
+
45
+ @abstractmethod
46
+ def update_graph_manifests(self):
47
+ """
48
+ Update the manifest files for all graph chips.
49
+ """
50
+ pass
51
+
52
+ @abstractmethod
53
+ def is_running(self):
54
+ """
55
+ Check if the dashboard is currently running.
56
+
57
+ Returns:
58
+ bool: True if the dashboard is running, False otherwise
59
+ """
60
+ pass
61
+
62
+ @abstractmethod
63
+ def end_of_run(self):
64
+ """
65
+ Announce that a run has completed
66
+ """
67
+ pass
68
+
69
+ @abstractmethod
70
+ def stop(self):
71
+ """
72
+ Stop the dashboard service if it's running.
73
+ """
74
+ pass
75
+
76
+ @abstractmethod
77
+ def wait(self):
78
+ """
79
+ Wait for the dashboard service to terminate.
80
+ """
81
+ pass