siliconcompiler 0.32.2__py3-none-any.whl → 0.33.0__py3-none-any.whl

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 (277) hide show
  1. siliconcompiler/__init__.py +19 -2
  2. siliconcompiler/_metadata.py +3 -2
  3. siliconcompiler/apps/sc.py +2 -2
  4. siliconcompiler/apps/sc_install.py +3 -3
  5. siliconcompiler/apps/sc_issue.py +1 -1
  6. siliconcompiler/apps/sc_remote.py +4 -4
  7. siliconcompiler/apps/sc_show.py +2 -2
  8. siliconcompiler/apps/utils/replay.py +5 -3
  9. siliconcompiler/asic.py +120 -0
  10. siliconcompiler/checklist.py +150 -0
  11. siliconcompiler/core.py +319 -345
  12. siliconcompiler/{templates → data/templates}/replay/replay.sh.j2 +2 -2
  13. siliconcompiler/flowgraph.py +803 -515
  14. siliconcompiler/fpga.py +84 -0
  15. siliconcompiler/metric.py +420 -0
  16. siliconcompiler/optimizer/vizier.py +2 -3
  17. siliconcompiler/package/__init__.py +29 -6
  18. siliconcompiler/pdk.py +415 -0
  19. siliconcompiler/record.py +449 -0
  20. siliconcompiler/remote/client.py +61 -19
  21. siliconcompiler/remote/schema.py +116 -112
  22. siliconcompiler/remote/server.py +3 -5
  23. siliconcompiler/report/__init__.py +3 -2
  24. siliconcompiler/report/dashboard/__init__.py +61 -170
  25. siliconcompiler/report/dashboard/cli/__init__.py +79 -0
  26. siliconcompiler/report/dashboard/cli/board.py +895 -0
  27. siliconcompiler/report/dashboard/web/__init__.py +196 -0
  28. siliconcompiler/report/dashboard/{components → web/components}/__init__.py +9 -8
  29. siliconcompiler/report/dashboard/{components → web/components}/flowgraph.py +3 -3
  30. siliconcompiler/report/dashboard/{components → web/components}/graph.py +7 -4
  31. siliconcompiler/report/dashboard/{layouts → web/layouts}/__init__.py +3 -3
  32. siliconcompiler/report/dashboard/{layouts → web/layouts}/_common.py +1 -1
  33. siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph.py +5 -5
  34. siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_node_tab.py +6 -6
  35. siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_sac_tabs.py +6 -6
  36. siliconcompiler/report/dashboard/{state.py → web/state.py} +1 -1
  37. siliconcompiler/report/dashboard/{utils → web/utils}/__init__.py +4 -3
  38. siliconcompiler/report/dashboard/{viewer.py → web/viewer.py} +4 -4
  39. siliconcompiler/report/html_report.py +2 -3
  40. siliconcompiler/report/report.py +13 -7
  41. siliconcompiler/report/summary_image.py +1 -1
  42. siliconcompiler/report/summary_table.py +3 -3
  43. siliconcompiler/report/utils.py +11 -10
  44. siliconcompiler/scheduler/__init__.py +153 -286
  45. siliconcompiler/scheduler/run_node.py +2 -1
  46. siliconcompiler/scheduler/send_messages.py +4 -4
  47. siliconcompiler/scheduler/slurm.py +2 -2
  48. siliconcompiler/schema/__init__.py +19 -2
  49. siliconcompiler/schema/baseschema.py +493 -0
  50. siliconcompiler/schema/cmdlineschema.py +250 -0
  51. siliconcompiler/{sphinx_ext → schema/docs}/__init__.py +3 -1
  52. siliconcompiler/{sphinx_ext → schema/docs}/dynamicgen.py +63 -81
  53. siliconcompiler/{sphinx_ext → schema/docs}/schemagen.py +73 -85
  54. siliconcompiler/{sphinx_ext → schema/docs}/utils.py +12 -13
  55. siliconcompiler/schema/editableschema.py +136 -0
  56. siliconcompiler/schema/journalingschema.py +238 -0
  57. siliconcompiler/schema/namedschema.py +41 -0
  58. siliconcompiler/schema/packageschema.py +101 -0
  59. siliconcompiler/schema/parameter.py +791 -0
  60. siliconcompiler/schema/parametertype.py +323 -0
  61. siliconcompiler/schema/parametervalue.py +736 -0
  62. siliconcompiler/schema/safeschema.py +37 -0
  63. siliconcompiler/schema/schema_cfg.py +109 -1789
  64. siliconcompiler/schema/utils.py +5 -68
  65. siliconcompiler/schema_obj.py +119 -0
  66. siliconcompiler/tool.py +1308 -0
  67. siliconcompiler/tools/_common/__init__.py +8 -10
  68. siliconcompiler/tools/_common/sdc/sc_constraints.sdc +1 -1
  69. siliconcompiler/tools/bluespec/convert.py +7 -7
  70. siliconcompiler/tools/builtin/_common.py +1 -1
  71. siliconcompiler/tools/builtin/concatenate.py +2 -2
  72. siliconcompiler/tools/builtin/minimum.py +1 -1
  73. siliconcompiler/tools/builtin/mux.py +2 -1
  74. siliconcompiler/tools/builtin/nop.py +1 -1
  75. siliconcompiler/tools/builtin/verify.py +6 -4
  76. siliconcompiler/tools/chisel/convert.py +4 -4
  77. siliconcompiler/tools/genfasm/bitstream.py +3 -3
  78. siliconcompiler/tools/ghdl/convert.py +1 -1
  79. siliconcompiler/tools/icarus/compile.py +4 -4
  80. siliconcompiler/tools/icepack/bitstream.py +6 -1
  81. siliconcompiler/tools/klayout/convert_drc_db.py +5 -0
  82. siliconcompiler/tools/klayout/klayout_export.py +0 -1
  83. siliconcompiler/tools/klayout/klayout_utils.py +3 -10
  84. siliconcompiler/tools/nextpnr/apr.py +6 -1
  85. siliconcompiler/tools/nextpnr/nextpnr.py +4 -4
  86. siliconcompiler/tools/openroad/_apr.py +17 -0
  87. siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
  88. siliconcompiler/tools/openroad/rdlroute.py +3 -3
  89. siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +1 -1
  90. siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +5 -5
  91. siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +3 -3
  92. siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +3 -3
  93. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +3 -3
  94. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +3 -3
  95. siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +3 -3
  96. siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +3 -3
  97. siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +4 -4
  98. siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +3 -3
  99. siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +3 -3
  100. siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +3 -3
  101. siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +4 -4
  102. siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +3 -3
  103. siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +3 -3
  104. siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +3 -3
  105. siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +3 -3
  106. siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +4 -4
  107. siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +3 -3
  108. siliconcompiler/tools/openroad/scripts/common/procs.tcl +58 -2
  109. siliconcompiler/tools/openroad/scripts/common/reports.tcl +2 -2
  110. siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +2 -2
  111. siliconcompiler/tools/openroad/scripts/common/write_images.tcl +28 -3
  112. siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +2 -2
  113. siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +4 -4
  114. siliconcompiler/tools/openroad/scripts/sc_show.tcl +7 -7
  115. siliconcompiler/tools/opensta/__init__.py +1 -1
  116. siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
  117. siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
  118. siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
  119. siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
  120. siliconcompiler/tools/opensta/timing.py +6 -2
  121. siliconcompiler/tools/slang/__init__.py +10 -10
  122. siliconcompiler/tools/surelog/parse.py +4 -4
  123. siliconcompiler/tools/sv2v/convert.py +20 -3
  124. siliconcompiler/tools/verilator/compile.py +2 -2
  125. siliconcompiler/tools/verilator/verilator.py +3 -3
  126. siliconcompiler/tools/vpr/place.py +1 -1
  127. siliconcompiler/tools/vpr/route.py +4 -4
  128. siliconcompiler/tools/vpr/screenshot.py +1 -1
  129. siliconcompiler/tools/vpr/show.py +5 -5
  130. siliconcompiler/tools/vpr/vpr.py +24 -24
  131. siliconcompiler/tools/xdm/convert.py +2 -2
  132. siliconcompiler/tools/xyce/simulate.py +1 -1
  133. siliconcompiler/tools/yosys/sc_synth_asic.tcl +104 -90
  134. siliconcompiler/tools/yosys/syn_asic.py +13 -4
  135. siliconcompiler/toolscripts/_tools.json +12 -7
  136. siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
  137. siliconcompiler/toolscripts/rhel8/install-icarus.sh +1 -0
  138. siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
  139. siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
  140. siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
  141. siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
  142. siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
  143. siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
  144. siliconcompiler/toolscripts/rhel8/install-verible.sh +2 -0
  145. siliconcompiler/toolscripts/rhel8/install-verilator.sh +1 -0
  146. siliconcompiler/toolscripts/rhel8/install-xyce.sh +2 -0
  147. siliconcompiler/toolscripts/rhel9/install-chisel.sh +2 -0
  148. siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
  149. siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -0
  150. siliconcompiler/toolscripts/rhel9/install-icarus.sh +1 -0
  151. siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
  152. siliconcompiler/toolscripts/rhel9/install-magic.sh +1 -2
  153. siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
  154. siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
  155. siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
  156. siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
  157. siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
  158. siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
  159. siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
  160. siliconcompiler/toolscripts/rhel9/install-verilator.sh +1 -0
  161. siliconcompiler/toolscripts/rhel9/install-vpr.sh +2 -0
  162. siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
  163. siliconcompiler/toolscripts/rhel9/install-xyce.sh +2 -0
  164. siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +2 -0
  165. siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +2 -0
  166. siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
  167. siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
  168. siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
  169. siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +2 -0
  170. siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +2 -0
  171. siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +2 -0
  172. siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
  173. siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
  174. siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
  175. siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
  176. siliconcompiler/toolscripts/ubuntu20/install-magic.sh +2 -0
  177. siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +2 -0
  178. siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
  179. siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +2 -0
  180. siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
  181. siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
  182. siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +2 -0
  183. siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
  184. siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +1 -1
  185. siliconcompiler/toolscripts/ubuntu20/install-verible.sh +2 -0
  186. siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +2 -0
  187. siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +2 -0
  188. siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
  189. siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +2 -0
  190. siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -0
  191. siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
  192. siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +2 -0
  193. siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +2 -0
  194. siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +2 -0
  195. siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
  196. siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
  197. siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
  198. siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
  199. siliconcompiler/toolscripts/ubuntu22/install-magic.sh +2 -0
  200. siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +2 -0
  201. siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +1 -2
  202. siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +2 -0
  203. siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
  204. siliconcompiler/toolscripts/ubuntu22/install-slang.sh +3 -1
  205. siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +2 -0
  206. siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
  207. siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +1 -1
  208. siliconcompiler/toolscripts/ubuntu22/install-verible.sh +2 -0
  209. siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +2 -0
  210. siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +2 -2
  211. siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +2 -0
  212. siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +2 -0
  213. siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +2 -0
  214. siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +2 -0
  215. siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +3 -1
  216. siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -0
  217. siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
  218. siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +2 -0
  219. siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +2 -0
  220. siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +2 -0
  221. siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
  222. siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
  223. siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
  224. siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
  225. siliconcompiler/toolscripts/ubuntu24/install-magic.sh +2 -0
  226. siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
  227. siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +1 -3
  228. siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +2 -0
  229. siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
  230. siliconcompiler/toolscripts/ubuntu24/install-slang.sh +3 -1
  231. siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +2 -0
  232. siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
  233. siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +1 -1
  234. siliconcompiler/toolscripts/ubuntu24/install-verible.sh +2 -0
  235. siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +2 -0
  236. siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +2 -2
  237. siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
  238. siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +2 -0
  239. siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +2 -0
  240. siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +2 -0
  241. siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +3 -1
  242. siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -0
  243. siliconcompiler/utils/__init__.py +8 -112
  244. siliconcompiler/utils/flowgraph.py +339 -0
  245. siliconcompiler/{issue.py → utils/issue.py} +7 -4
  246. siliconcompiler/utils/logging.py +86 -33
  247. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/METADATA +10 -8
  248. siliconcompiler-0.33.0.dist-info/RECORD +487 -0
  249. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/WHEEL +1 -1
  250. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/entry_points.txt +8 -8
  251. siliconcompiler/schema/schema_obj.py +0 -1936
  252. siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -27
  253. siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +0 -59
  254. siliconcompiler-0.32.2.dist-info/RECORD +0 -464
  255. /siliconcompiler/{templates → data/templates}/__init__.py +0 -0
  256. /siliconcompiler/{templates → data/templates}/email/__init__.py +0 -0
  257. /siliconcompiler/{templates → data/templates}/email/general.j2 +0 -0
  258. /siliconcompiler/{templates → data/templates}/email/summary.j2 +0 -0
  259. /siliconcompiler/{templates → data/templates}/issue/README.txt +0 -0
  260. /siliconcompiler/{templates → data/templates}/issue/__init__.py +0 -0
  261. /siliconcompiler/{templates → data/templates}/issue/run.sh +0 -0
  262. /siliconcompiler/{templates → data/templates}/replay/replay.py.j2 +0 -0
  263. /siliconcompiler/{templates → data/templates}/replay/requirements.txt +0 -0
  264. /siliconcompiler/{templates → data/templates}/replay/setup.sh +0 -0
  265. /siliconcompiler/{templates → data/templates}/report/__init__.py +0 -0
  266. /siliconcompiler/{templates → data/templates}/report/bootstrap.min.css +0 -0
  267. /siliconcompiler/{templates → data/templates}/report/bootstrap.min.js +0 -0
  268. /siliconcompiler/{templates → data/templates}/report/bootstrap_LICENSE.md +0 -0
  269. /siliconcompiler/{templates → data/templates}/report/sc_report.j2 +0 -0
  270. /siliconcompiler/{templates → data/templates}/slurm/__init__.py +0 -0
  271. /siliconcompiler/{templates → data/templates}/slurm/run.sh +0 -0
  272. /siliconcompiler/{templates → data/templates}/tcl/__init__.py +0 -0
  273. /siliconcompiler/{templates → data/templates}/tcl/manifest.tcl.j2 +0 -0
  274. /siliconcompiler/report/dashboard/{utils → web/utils}/file_utils.py +0 -0
  275. /siliconcompiler/{units.py → utils/units.py} +0 -0
  276. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/licenses/LICENSE +0 -0
  277. {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/top_level.txt +0 -0
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git wget
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -15,8 +17,6 @@ git submodule update --init --recursive
15
17
 
16
18
  ./install_apt_packages.sh
17
19
 
18
- sudo apt-get install -y libtbb-dev
19
-
20
20
  args=
21
21
  if [ ! -z ${PREFIX} ]; then
22
22
  args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
@@ -7,6 +7,8 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
8
  sudo apt-get install -y build-essential libboost-all-dev cmake
9
9
 
10
+ sudo apt-get install -y git
11
+
10
12
  mkdir -p deps
11
13
  cd deps
12
14
 
@@ -10,6 +10,8 @@ sudo apt-get install -y build-essential gcc g++ make cmake automake autoconf bis
10
10
  liblapack-dev liblapack64-dev libfftw3-dev libsuitesparse-dev libopenmpi-dev libboost-all-dev \
11
11
  libnetcdf-dev libmatio-dev gfortran libfl-dev libtool python3-venv
12
12
 
13
+ sudo apt-get install -y wget
14
+
13
15
  mkdir -p deps
14
16
  cd deps
15
17
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -5,12 +5,14 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
11
13
  python3 -m venv .yosys-slang --clear
12
14
  . .yosys-slang/bin/activate
13
- python3 -m pip install cmake
15
+ python3 -m pip install cmake==3.31.6
14
16
 
15
17
  git clone $(python3 ${src_path}/_tools.py --tool yosys-slang --field git-url) yosys-slang
16
18
  cd yosys-slang
@@ -11,6 +11,8 @@ sudo apt-get install -y build-essential clang bison flex \
11
11
  graphviz xdot pkg-config python3 libboost-system-dev \
12
12
  libboost-python-dev libboost-filesystem-dev zlib1g-dev
13
13
 
14
+ sudo apt-get install -y git
15
+
14
16
  mkdir -p deps
15
17
  cd deps
16
18
 
@@ -15,6 +15,8 @@ sudo apt-get install -y \
15
15
  llvm-16 llvm-16-dev libllvm16 \
16
16
  clang-16 libclang-16-dev
17
17
 
18
+ sudo apt-get install -y git build-essential
19
+
18
20
  mkdir -p deps
19
21
  cd deps
20
22
 
@@ -9,6 +9,8 @@ sudo apt-get install -y ghc libghc-regex-compat-dev libghc-syb-dev \
9
9
  libghc-old-time-dev libghc-split-dev tcl-dev build-essential pkg-config \
10
10
  autoconf gperf flex bison
11
11
 
12
+ sudo apt-get install -y git
13
+
12
14
  mkdir -p deps
13
15
  cd deps
14
16
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y wget
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -7,6 +7,8 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
8
  sudo apt-get install -y llvm-dev clang gnat libgnat-9 libz-dev
9
9
 
10
+ sudo apt-get install -y git build-essential
11
+
10
12
  mkdir -p deps
11
13
  cd deps
12
14
 
@@ -9,6 +9,8 @@ sudo apt-get install -y build-essential gperf libgtk-3-dev \
9
9
  libbz2-dev libjudy-dev liblzma-dev tcl-dev tk-dev autotools-dev \
10
10
  automake
11
11
 
12
+ sudo apt-get install -y git
13
+
12
14
  mkdir -p deps
13
15
  cd deps
14
16
 
@@ -8,6 +8,8 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
8
8
  sudo apt-get install -y build-essential bison flex gperf libreadline-dev libncurses-dev \
9
9
  autotools-dev automake
10
10
 
11
+ sudo apt-get install -y git
12
+
11
13
  mkdir -p deps
12
14
  cd deps
13
15
 
@@ -10,6 +10,8 @@ sudo apt-get install -y build-essential clang bison flex libreadline-dev \
10
10
  xdot pkg-config python3 libftdi-dev \
11
11
  qtbase5-dev python3-dev libboost-all-dev cmake libeigen3-dev
12
12
 
13
+ sudo apt-get install -y git
14
+
13
15
  mkdir -p deps
14
16
  cd deps
15
17
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y wget software-properties-common
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -7,6 +7,8 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
8
  sudo apt-get install -y build-essential m4 tcsh csh libx11-dev tcl-dev tk-dev
9
9
 
10
+ sudo apt-get install -y git
11
+
10
12
  mkdir -p deps
11
13
  cd deps
12
14
 
@@ -7,6 +7,8 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
8
  sudo apt-get install -y build-essential tcl-dev tk-dev m4
9
9
 
10
+ sudo apt-get install -y git autotools-dev automake
11
+
10
12
  mkdir -p deps
11
13
  cd deps
12
14
 
@@ -7,9 +7,7 @@ sudo apt-get install -y build-essential clang bison flex libreadline-dev \
7
7
  xdot pkg-config python3 libftdi-dev \
8
8
  qtbase5-dev python3-dev libboost-all-dev cmake libeigen3-dev
9
9
 
10
- #!/bin/sh
11
-
12
- set -e
10
+ sudo apt-get install -y git
13
11
 
14
12
  # Get directory of script
15
13
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
@@ -4,6 +4,8 @@ set -e
4
4
 
5
5
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
6
6
 
7
+ sudo apt-get install -y git
8
+
7
9
  mkdir -p deps
8
10
  cd deps
9
11
 
@@ -0,0 +1,72 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
6
+
7
+ sudo apt-get install -y git build-essential wget
8
+ sudo apt-get install -y tcl-dev tcl-tclreadline \
9
+ bison flex libfl-dev zlib1g-dev automake autotools-dev
10
+
11
+ mkdir -p deps
12
+ cd deps
13
+
14
+ python3 -m venv .opensta --clear
15
+ . .opensta/bin/activate
16
+ python3 -m pip install cmake==3.31.6
17
+
18
+ if [ ! -z ${PREFIX} ]; then
19
+ cmake_args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
20
+ config_prefix="--prefix=$PREFIX"
21
+ fi
22
+
23
+ # eigen
24
+ mkdir -p eigen3
25
+ cd eigen3
26
+ git clone --depth=1 -b 3.4 https://gitlab.com/libeigen/eigen.git
27
+ cd eigen
28
+ mkdir build
29
+ cd build
30
+ cmake $cmake_args ..
31
+ make -j$(nproc)
32
+ sudo make install
33
+
34
+ cd ../../..
35
+ # cudd
36
+ mkdir -p cudd
37
+ cd cudd
38
+ git clone --depth=1 -b 3.0.0 https://github.com/The-OpenROAD-Project/cudd.git
39
+ cd cudd
40
+ autoreconf
41
+ ./configure $config_prefix
42
+ make -j$(nproc)
43
+ sudo make install
44
+
45
+ cd ../..
46
+ #swig
47
+ wget -O swig.tar.gz https://github.com/swig/swig/archive/v4.1.0.tar.gz
48
+ tar xfz swig.tar.gz
49
+ cd swig-4.1.0
50
+
51
+ wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz
52
+ ./Tools/pcre-build.sh
53
+
54
+ ./autogen.sh
55
+ ./configure $config_prefix
56
+ make -j$(nproc)
57
+ sudo make -j$(nproc) install
58
+
59
+ cd ../..
60
+ # opensta
61
+ git clone $(python3 ${src_path}/_tools.py --tool opensta --field git-url) opensta
62
+ cd opensta
63
+ git checkout $(python3 ${src_path}/_tools.py --tool opensta --field git-commit)
64
+ git submodule update --init --recursive
65
+
66
+ mkdir -p build
67
+ cd build
68
+ cmake .. $cmake_args
69
+ make -j$(nproc)
70
+ sudo make install
71
+
72
+ cd -
@@ -5,12 +5,14 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git build-essential
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
11
13
  python3 -m venv .slang --clear
12
14
  . .slang/bin/activate
13
- python3 -m pip install cmake
15
+ python3 -m pip install cmake==3.31.6
14
16
 
15
17
  git clone $(python3 ${src_path}/_tools.py --tool slang --field git-url) slang
16
18
  cd slang
@@ -8,6 +8,8 @@ sudo apt-get install -y libdbus-1-dev
8
8
  # Get directory of script
9
9
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
10
10
 
11
+ sudo apt-get install -y wget
12
+
11
13
  mkdir -p deps
12
14
  cd deps
13
15
 
@@ -11,13 +11,15 @@ sudo apt-get install -y build-essential cmake git pkg-config \
11
11
  python3-orderedmultidict python3-psutil python3-dev \
12
12
  default-jre lcov zlib1g-dev
13
13
 
14
+ sudo apt-get install -y git
15
+
14
16
  mkdir -p deps
15
17
  cd deps
16
18
 
17
19
  python3 -m venv .surelog --clear
18
20
  . .surelog/bin/activate
19
21
  python3 -m pip install --upgrade pip
20
- python3 -m pip install cmake
22
+ python3 -m pip install cmake==3.31.6
21
23
  python3 -m pip install orderedmultidict
22
24
 
23
25
  git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
@@ -8,7 +8,7 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
8
8
  mkdir -p deps
9
9
  cd deps
10
10
 
11
- sudo apt-get install -y curl
11
+ sudo apt-get install -y curl git
12
12
 
13
13
  haskell_args=""
14
14
  if [ ! -z ${PREFIX} ]; then
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y wget
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -11,6 +11,8 @@ sudo apt-get install -y libfl2
11
11
  sudo apt-get install -y libfl-dev
12
12
  sudo apt-get install -y zlib1g zlib1g-dev
13
13
 
14
+ sudo apt-get install -y git
15
+
14
16
  mkdir -p deps
15
17
  cd deps
16
18
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git wget
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -15,8 +17,6 @@ git submodule update --init --recursive
15
17
 
16
18
  ./install_apt_packages.sh
17
19
 
18
- sudo apt-get install -y libtbb-dev
19
-
20
20
  args=
21
21
  if [ ! -z ${PREFIX} ]; then
22
22
  args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
@@ -7,6 +7,8 @@ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
8
  sudo apt-get install -y build-essential libboost1.74-all-dev cmake
9
9
 
10
+ sudo apt-get install -y git
11
+
10
12
  mkdir -p deps
11
13
  cd deps
12
14
 
@@ -10,6 +10,8 @@ sudo apt-get install -y build-essential gcc g++ make cmake automake autoconf bis
10
10
  liblapack-dev liblapack64-dev libfftw3-dev libsuitesparse-dev libopenmpi-dev libboost-all-dev \
11
11
  libnetcdf-dev libmatio-dev gfortran libfl-dev libtool python3-venv
12
12
 
13
+ sudo apt-get install -y wget
14
+
13
15
  mkdir -p deps
14
16
  cd deps
15
17
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -5,6 +5,8 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
@@ -5,12 +5,14 @@ set -e
5
5
  # Get directory of script
6
6
  src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
7
 
8
+ sudo apt-get install -y git
9
+
8
10
  mkdir -p deps
9
11
  cd deps
10
12
 
11
13
  python3 -m venv .yosys-slang --clear
12
14
  . .yosys-slang/bin/activate
13
- python3 -m pip install cmake
15
+ python3 -m pip install cmake==3.31.6
14
16
 
15
17
  git clone $(python3 ${src_path}/_tools.py --tool yosys-slang --field git-url) yosys-slang
16
18
  cd yosys-slang
@@ -11,6 +11,8 @@ sudo apt-get install -y build-essential clang bison flex \
11
11
  graphviz xdot pkg-config python3 libboost-system-dev \
12
12
  libboost-python-dev libboost-filesystem-dev zlib1g-dev
13
13
 
14
+ sudo apt-get install -y git
15
+
14
16
  mkdir -p deps
15
17
  cd deps
16
18
 
@@ -1,11 +1,11 @@
1
1
  import contextlib
2
- import hashlib
3
2
  import os
4
3
  import re
5
4
  import psutil
6
5
  import shutil
7
- from pathlib import Path, PurePosixPath
6
+ from pathlib import Path
8
7
  from jinja2 import Environment, FileSystemLoader
8
+ from siliconcompiler.schema.parametervalue import PathNodeValue
9
9
 
10
10
  import sys
11
11
  if sys.version_info < (3, 10):
@@ -231,7 +231,9 @@ def sc_open(path, *args, **kwargs):
231
231
  def get_file_template(path,
232
232
  root=os.path.join(
233
233
  os.path.dirname(
234
- os.path.dirname(os.path.abspath(__file__))), 'templates')):
234
+ os.path.dirname(os.path.abspath(__file__))),
235
+ 'data',
236
+ 'templates')):
235
237
  if os.path.isabs(path):
236
238
  root = os.path.dirname(path)
237
239
  path = os.path.basename(path)
@@ -325,31 +327,6 @@ def grep(chip, args, line):
325
327
  return line
326
328
 
327
329
 
328
- #######################################
329
- def _resolve_env_vars(chip, filepath, step, index):
330
- if not filepath:
331
- return None
332
-
333
- env_save = os.environ.copy()
334
-
335
- os.environ.update(get_env_vars(chip, step, index))
336
- resolved_path = os.path.expandvars(filepath)
337
-
338
- os.environ.clear()
339
- os.environ.update(env_save)
340
-
341
- resolved_path = os.path.expanduser(resolved_path)
342
-
343
- # variables that don't exist in environment get ignored by `expandvars`,
344
- # but we can do our own error checking to ensure this doesn't result in
345
- # silent bugs
346
- envvars = re.findall(r'\$\{?(\w+)\}?', resolved_path)
347
- for var in envvars:
348
- chip.logger.warning(f'Variable {var} in {filepath} not defined in environment')
349
-
350
- return resolved_path
351
-
352
-
353
330
  #######################################
354
331
  def get_env_vars(chip, step, index):
355
332
  '''
@@ -373,69 +350,6 @@ def get_env_vars(chip, step, index):
373
350
  return schema_env
374
351
 
375
352
 
376
- ###########################################################################
377
- def find_sc_file(chip, filename, missing_ok=False, search_paths=None, step=None, index=None):
378
- """
379
- Returns the absolute path for the filename provided.
380
-
381
- Searches the for the filename provided and returns the absolute path.
382
- If no valid absolute path is found during the search, None is returned.
383
-
384
- Shell variables ('$' followed by strings consisting of numbers,
385
- underscores, and digits) are replaced with the variable value.
386
-
387
- Args:
388
- filename (str): Relative or absolute filename.
389
- missing_ok (bool): If False, error out if no valid absolute path
390
- found, rather than returning None.
391
- search_paths (list): List of directories to search under instead of
392
- the defaults.
393
- step (str): Step name
394
- index (str): Index
395
-
396
- Returns:
397
- Returns absolute path of 'filename' if found, otherwise returns
398
- None.
399
-
400
- Examples:
401
- >>> chip._find_sc_file('flows/asicflow.py')
402
- Returns the absolute path based on the sc installation directory.
403
-
404
- """
405
-
406
- if not filename:
407
- return None
408
-
409
- # Replacing environment variables
410
- filename = _resolve_env_vars(chip, filename, step, index)
411
-
412
- # If we have an absolute path, pass-through here
413
- if os.path.isabs(filename) and os.path.exists(filename):
414
- return filename
415
-
416
- # Otherwise, search relative to search_paths
417
- if search_paths is None:
418
- search_paths = [chip.cwd]
419
-
420
- searchdirs = ', '.join([str(p) for p in search_paths])
421
- chip.logger.debug(f"Searching for file {filename} in {searchdirs}")
422
-
423
- result = None
424
- for searchdir in search_paths:
425
- if not os.path.isabs(searchdir):
426
- searchdir = os.path.join(chip.cwd, searchdir)
427
-
428
- abspath = os.path.abspath(os.path.join(searchdir, filename))
429
- if os.path.exists(abspath):
430
- result = abspath
431
- break
432
-
433
- if result is None and not missing_ok:
434
- chip.error(f"File {filename} was not found")
435
-
436
- return result
437
-
438
-
439
353
  def get_plugins(system, name=None):
440
354
  '''
441
355
  Search for python modules with a specific function
@@ -470,32 +384,14 @@ def truncate_text(text, width):
470
384
  return text
471
385
 
472
386
 
473
- def get_hashed_filename(path, package=None, hash=hashlib.sha1):
387
+ def get_hashed_filename(path, package=None):
474
388
  '''
475
389
  Utility to map collected file to an unambiguous name based on its path.
476
390
 
477
391
  The mapping looks like:
478
- path/to/file.ext => file_<hash('path/to/file')>.ext
392
+ path/to/file.ext => file_<hash('path/to')>.ext
479
393
  '''
480
- path = PurePosixPath(path)
481
- ext = ''.join(path.suffixes)
482
-
483
- # strip off all file suffixes to get just the bare name
484
- barepath = path
485
- while barepath.suffix:
486
- barepath = PurePosixPath(barepath.stem)
487
- filename = str(barepath.parts[-1])
488
-
489
- if not package:
490
- package = ''
491
- else:
492
- package = f'{package}:'
493
-
494
- path_to_hash = f'{package}{str(path)}'
495
-
496
- pathhash = hash(path_to_hash.encode('utf-8')).hexdigest()
497
-
498
- return f'{filename}_{pathhash}{ext}'
394
+ return PathNodeValue.generate_hashed_path(path, package)
499
395
 
500
396
 
501
397
  def get_cores(chip, physical=False):