siliconcompiler 0.34.0__py3-none-any.whl → 0.34.2__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 (114) hide show
  1. siliconcompiler/__init__.py +14 -2
  2. siliconcompiler/_metadata.py +1 -1
  3. siliconcompiler/apps/_common.py +1 -1
  4. siliconcompiler/apps/sc.py +1 -1
  5. siliconcompiler/apps/sc_issue.py +1 -1
  6. siliconcompiler/apps/sc_remote.py +3 -3
  7. siliconcompiler/apps/sc_show.py +3 -3
  8. siliconcompiler/apps/utils/replay.py +4 -4
  9. siliconcompiler/checklist.py +203 -2
  10. siliconcompiler/constraints/__init__.py +17 -0
  11. siliconcompiler/constraints/asic_component.py +378 -0
  12. siliconcompiler/constraints/asic_floorplan.py +449 -0
  13. siliconcompiler/constraints/asic_pins.py +489 -0
  14. siliconcompiler/constraints/asic_timing.py +517 -0
  15. siliconcompiler/core.py +31 -249
  16. siliconcompiler/data/templates/email/general.j2 +3 -3
  17. siliconcompiler/data/templates/email/summary.j2 +1 -1
  18. siliconcompiler/data/templates/issue/README.txt +1 -1
  19. siliconcompiler/data/templates/report/sc_report.j2 +7 -7
  20. siliconcompiler/dependencyschema.py +10 -174
  21. siliconcompiler/design.py +325 -114
  22. siliconcompiler/flowgraph.py +63 -15
  23. siliconcompiler/library.py +133 -0
  24. siliconcompiler/metric.py +94 -72
  25. siliconcompiler/metrics/__init__.py +7 -0
  26. siliconcompiler/metrics/asic.py +245 -0
  27. siliconcompiler/metrics/fpga.py +220 -0
  28. siliconcompiler/optimizer/vizier.py +2 -2
  29. siliconcompiler/package/__init__.py +138 -35
  30. siliconcompiler/package/github.py +6 -10
  31. siliconcompiler/packageschema.py +256 -12
  32. siliconcompiler/pathschema.py +226 -0
  33. siliconcompiler/pdk.py +5 -5
  34. siliconcompiler/project.py +459 -0
  35. siliconcompiler/remote/client.py +18 -12
  36. siliconcompiler/remote/server.py +2 -2
  37. siliconcompiler/report/dashboard/cli/__init__.py +6 -6
  38. siliconcompiler/report/dashboard/cli/board.py +3 -3
  39. siliconcompiler/report/dashboard/web/components/__init__.py +5 -5
  40. siliconcompiler/report/dashboard/web/components/flowgraph.py +4 -4
  41. siliconcompiler/report/dashboard/web/components/graph.py +2 -2
  42. siliconcompiler/report/dashboard/web/state.py +1 -1
  43. siliconcompiler/report/dashboard/web/utils/__init__.py +5 -5
  44. siliconcompiler/report/html_report.py +1 -1
  45. siliconcompiler/report/report.py +4 -4
  46. siliconcompiler/report/summary_table.py +2 -2
  47. siliconcompiler/report/utils.py +5 -5
  48. siliconcompiler/scheduler/docker.py +4 -10
  49. siliconcompiler/scheduler/run_node.py +4 -8
  50. siliconcompiler/scheduler/scheduler.py +18 -24
  51. siliconcompiler/scheduler/schedulernode.py +161 -143
  52. siliconcompiler/scheduler/send_messages.py +3 -3
  53. siliconcompiler/scheduler/slurm.py +5 -3
  54. siliconcompiler/scheduler/taskscheduler.py +10 -8
  55. siliconcompiler/schema/__init__.py +0 -2
  56. siliconcompiler/schema/baseschema.py +148 -26
  57. siliconcompiler/schema/editableschema.py +14 -6
  58. siliconcompiler/schema/journal.py +23 -15
  59. siliconcompiler/schema/namedschema.py +30 -4
  60. siliconcompiler/schema/parameter.py +34 -19
  61. siliconcompiler/schema/parametertype.py +2 -0
  62. siliconcompiler/schema/parametervalue.py +198 -15
  63. siliconcompiler/schema/schema_cfg.py +18 -14
  64. siliconcompiler/schema_obj.py +5 -3
  65. siliconcompiler/tool.py +591 -179
  66. siliconcompiler/tools/__init__.py +2 -0
  67. siliconcompiler/tools/builtin/_common.py +5 -5
  68. siliconcompiler/tools/builtin/concatenate.py +5 -5
  69. siliconcompiler/tools/builtin/minimum.py +4 -4
  70. siliconcompiler/tools/builtin/mux.py +4 -4
  71. siliconcompiler/tools/builtin/nop.py +4 -4
  72. siliconcompiler/tools/builtin/verify.py +7 -7
  73. siliconcompiler/tools/execute/exec_input.py +1 -1
  74. siliconcompiler/tools/genfasm/genfasm.py +1 -6
  75. siliconcompiler/tools/openroad/_apr.py +5 -1
  76. siliconcompiler/tools/openroad/antenna_repair.py +1 -1
  77. siliconcompiler/tools/openroad/macro_placement.py +1 -1
  78. siliconcompiler/tools/openroad/power_grid.py +1 -1
  79. siliconcompiler/tools/openroad/scripts/common/procs.tcl +5 -0
  80. siliconcompiler/tools/opensta/timing.py +26 -3
  81. siliconcompiler/tools/slang/__init__.py +2 -2
  82. siliconcompiler/tools/surfer/__init__.py +0 -0
  83. siliconcompiler/tools/surfer/show.py +53 -0
  84. siliconcompiler/tools/surfer/surfer.py +30 -0
  85. siliconcompiler/tools/vpr/route.py +27 -14
  86. siliconcompiler/tools/vpr/vpr.py +23 -6
  87. siliconcompiler/tools/yosys/__init__.py +1 -1
  88. siliconcompiler/tools/yosys/scripts/procs.tcl +143 -0
  89. siliconcompiler/tools/yosys/{sc_synth_asic.tcl → scripts/sc_synth_asic.tcl} +4 -0
  90. siliconcompiler/tools/yosys/{sc_synth_fpga.tcl → scripts/sc_synth_fpga.tcl} +24 -77
  91. siliconcompiler/tools/yosys/syn_fpga.py +14 -0
  92. siliconcompiler/toolscripts/_tools.json +9 -13
  93. siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -2
  94. siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +33 -0
  95. siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +33 -0
  96. siliconcompiler/utils/__init__.py +2 -1
  97. siliconcompiler/utils/flowgraph.py +24 -23
  98. siliconcompiler/utils/issue.py +23 -29
  99. siliconcompiler/utils/logging.py +35 -6
  100. siliconcompiler/utils/showtools.py +6 -1
  101. {siliconcompiler-0.34.0.dist-info → siliconcompiler-0.34.2.dist-info}/METADATA +15 -25
  102. {siliconcompiler-0.34.0.dist-info → siliconcompiler-0.34.2.dist-info}/RECORD +109 -97
  103. siliconcompiler/schema/packageschema.py +0 -101
  104. siliconcompiler/tools/yosys/procs.tcl +0 -71
  105. siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +0 -68
  106. siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +0 -68
  107. siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +0 -68
  108. /siliconcompiler/tools/yosys/{sc_lec.tcl → scripts/sc_lec.tcl} +0 -0
  109. /siliconcompiler/tools/yosys/{sc_screenshot.tcl → scripts/sc_screenshot.tcl} +0 -0
  110. /siliconcompiler/tools/yosys/{syn_strategies.tcl → scripts/syn_strategies.tcl} +0 -0
  111. {siliconcompiler-0.34.0.dist-info → siliconcompiler-0.34.2.dist-info}/WHEEL +0 -0
  112. {siliconcompiler-0.34.0.dist-info → siliconcompiler-0.34.2.dist-info}/entry_points.txt +0 -0
  113. {siliconcompiler-0.34.0.dist-info → siliconcompiler-0.34.2.dist-info}/licenses/LICENSE +0 -0
  114. {siliconcompiler-0.34.0.dist-info → siliconcompiler-0.34.2.dist-info}/top_level.txt +0 -0
@@ -1,68 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -ex
4
-
5
- # Get directory of script
6
- src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
-
8
- USE_SUDO_INSTALL="${USE_SUDO_INSTALL:-yes}"
9
- if [ "${USE_SUDO_INSTALL:-yes}" = "yes" ]; then
10
- SUDO_INSTALL=sudo
11
- else
12
- SUDO_INSTALL=""
13
- fi
14
-
15
- sudo yum install -y git
16
-
17
- mkdir -p deps
18
- cd deps
19
-
20
- git clone $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-url) yosys-parmys
21
- cd yosys-parmys
22
- git checkout $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-commit)
23
- git submodule update --init --recursive
24
-
25
- # apply patch
26
- cat > build_patch <<EOF
27
- diff --git a/parmys/parmys-plugin/Makefile b/parmys/parmys-plugin/Makefile
28
- index dbb3eb11e..cb85631bc 100644
29
- --- a/parmys/parmys-plugin/Makefile
30
- +++ b/parmys/parmys-plugin/Makefile
31
- @@ -49,7 +49,7 @@ VTR_INSTALL_DIR ?= /usr/local
32
-
33
- include ../Makefile_plugin.common
34
-
35
- -CXXFLAGS += -std=c++14 -Wall -W -Wextra \\
36
- +CXXFLAGS += -std=c++17 -Wall -W -Wextra \\
37
- -Wno-deprecated-declarations \\
38
- -Wno-unused-parameter \\
39
- -I. \\
40
- diff --git a/parmys/parmys-plugin/parmys_update.cc b/parmys/parmys-plugin/parmys_update.cc
41
- index ef55213c5..4e4d6dd15 100644
42
- --- a/parmys/parmys-plugin/parmys_update.cc
43
- +++ b/parmys/parmys-plugin/parmys_update.cc
44
- @@ -506,9 +506,9 @@ void define_logical_function_yosys(nnode_t *node, Module *module)
45
- lutptr = &cell->parameters.at(ID::LUT);
46
- for (int i = 0; i < (1 << node->num_input_pins); i++) {
47
- if (i == 3 || i == 5 || i == 6 || i == 7) //"011 1\n101 1\n110 1\n111 1\n"
48
- - lutptr->bits.at(i) = RTLIL::State::S1;
49
- + lutptr->bits().at(i) = RTLIL::State::S1;
50
- else
51
- - lutptr->bits.at(i) = RTLIL::State::S0;
52
- + lutptr->bits().at(i) = RTLIL::State::S0;
53
- }
54
- } else {
55
- cell->parameters[ID::A_WIDTH] = RTLIL::Const(int(node->num_input_pins));
56
- EOF
57
-
58
- git apply build_patch
59
-
60
- export VTR_INSTALL_DIR=$(dirname $(which vpr))/..
61
- YOSYS_PLUGIN=$(yosys-config --datdir)/plugins/
62
-
63
- cd parmys
64
-
65
- make -j$(nproc)
66
- $SUDO_INSTALL mkdir -p $YOSYS_PLUGIN
67
- $SUDO_INSTALL cp parmys-plugin/build/parmys.so $YOSYS_PLUGIN
68
- cd -
@@ -1,68 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -ex
4
-
5
- # Get directory of script
6
- src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
-
8
- USE_SUDO_INSTALL="${USE_SUDO_INSTALL:-yes}"
9
- if [ "${USE_SUDO_INSTALL:-yes}" = "yes" ]; then
10
- SUDO_INSTALL=sudo
11
- else
12
- SUDO_INSTALL=""
13
- fi
14
-
15
- sudo apt-get install -y git
16
-
17
- mkdir -p deps
18
- cd deps
19
-
20
- git clone $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-url) yosys-parmys
21
- cd yosys-parmys
22
- git checkout $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-commit)
23
- git submodule update --init --recursive
24
-
25
- # apply patch
26
- cat > build_patch <<EOF
27
- diff --git a/parmys/parmys-plugin/Makefile b/parmys/parmys-plugin/Makefile
28
- index dbb3eb11e..cb85631bc 100644
29
- --- a/parmys/parmys-plugin/Makefile
30
- +++ b/parmys/parmys-plugin/Makefile
31
- @@ -49,7 +49,7 @@ VTR_INSTALL_DIR ?= /usr/local
32
-
33
- include ../Makefile_plugin.common
34
-
35
- -CXXFLAGS += -std=c++14 -Wall -W -Wextra \\
36
- +CXXFLAGS += -std=c++17 -Wall -W -Wextra \\
37
- -Wno-deprecated-declarations \\
38
- -Wno-unused-parameter \\
39
- -I. \\
40
- diff --git a/parmys/parmys-plugin/parmys_update.cc b/parmys/parmys-plugin/parmys_update.cc
41
- index ef55213c5..4e4d6dd15 100644
42
- --- a/parmys/parmys-plugin/parmys_update.cc
43
- +++ b/parmys/parmys-plugin/parmys_update.cc
44
- @@ -506,9 +506,9 @@ void define_logical_function_yosys(nnode_t *node, Module *module)
45
- lutptr = &cell->parameters.at(ID::LUT);
46
- for (int i = 0; i < (1 << node->num_input_pins); i++) {
47
- if (i == 3 || i == 5 || i == 6 || i == 7) //"011 1\n101 1\n110 1\n111 1\n"
48
- - lutptr->bits.at(i) = RTLIL::State::S1;
49
- + lutptr->bits().at(i) = RTLIL::State::S1;
50
- else
51
- - lutptr->bits.at(i) = RTLIL::State::S0;
52
- + lutptr->bits().at(i) = RTLIL::State::S0;
53
- }
54
- } else {
55
- cell->parameters[ID::A_WIDTH] = RTLIL::Const(int(node->num_input_pins));
56
- EOF
57
-
58
- git apply build_patch
59
-
60
- export VTR_INSTALL_DIR=$(dirname $(which vpr))/..
61
- YOSYS_PLUGIN=$(yosys-config --datdir)/plugins/
62
-
63
- cd parmys
64
-
65
- make -j$(nproc)
66
- $SUDO_INSTALL mkdir -p $YOSYS_PLUGIN
67
- $SUDO_INSTALL cp parmys-plugin/build/parmys.so $YOSYS_PLUGIN
68
- cd -
@@ -1,68 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -ex
4
-
5
- # Get directory of script
6
- src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
-
8
- USE_SUDO_INSTALL="${USE_SUDO_INSTALL:-yes}"
9
- if [ "${USE_SUDO_INSTALL:-yes}" = "yes" ]; then
10
- SUDO_INSTALL=sudo
11
- else
12
- SUDO_INSTALL=""
13
- fi
14
-
15
- sudo apt-get install -y git
16
-
17
- mkdir -p deps
18
- cd deps
19
-
20
- git clone $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-url) yosys-parmys
21
- cd yosys-parmys
22
- git checkout $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-commit)
23
- git submodule update --init --recursive
24
-
25
- # apply patch
26
- cat > build_patch <<EOF
27
- diff --git a/parmys/parmys-plugin/Makefile b/parmys/parmys-plugin/Makefile
28
- index dbb3eb11e..cb85631bc 100644
29
- --- a/parmys/parmys-plugin/Makefile
30
- +++ b/parmys/parmys-plugin/Makefile
31
- @@ -49,7 +49,7 @@ VTR_INSTALL_DIR ?= /usr/local
32
-
33
- include ../Makefile_plugin.common
34
-
35
- -CXXFLAGS += -std=c++14 -Wall -W -Wextra \\
36
- +CXXFLAGS += -std=c++17 -Wall -W -Wextra \\
37
- -Wno-deprecated-declarations \\
38
- -Wno-unused-parameter \\
39
- -I. \\
40
- diff --git a/parmys/parmys-plugin/parmys_update.cc b/parmys/parmys-plugin/parmys_update.cc
41
- index ef55213c5..4e4d6dd15 100644
42
- --- a/parmys/parmys-plugin/parmys_update.cc
43
- +++ b/parmys/parmys-plugin/parmys_update.cc
44
- @@ -506,9 +506,9 @@ void define_logical_function_yosys(nnode_t *node, Module *module)
45
- lutptr = &cell->parameters.at(ID::LUT);
46
- for (int i = 0; i < (1 << node->num_input_pins); i++) {
47
- if (i == 3 || i == 5 || i == 6 || i == 7) //"011 1\n101 1\n110 1\n111 1\n"
48
- - lutptr->bits.at(i) = RTLIL::State::S1;
49
- + lutptr->bits().at(i) = RTLIL::State::S1;
50
- else
51
- - lutptr->bits.at(i) = RTLIL::State::S0;
52
- + lutptr->bits().at(i) = RTLIL::State::S0;
53
- }
54
- } else {
55
- cell->parameters[ID::A_WIDTH] = RTLIL::Const(int(node->num_input_pins));
56
- EOF
57
-
58
- git apply build_patch
59
-
60
- export VTR_INSTALL_DIR=$(dirname $(which vpr))/..
61
- YOSYS_PLUGIN=$(yosys-config --datdir)/plugins/
62
-
63
- cd parmys
64
-
65
- make -j$(nproc)
66
- $SUDO_INSTALL mkdir -p $YOSYS_PLUGIN
67
- $SUDO_INSTALL cp parmys-plugin/build/parmys.so $YOSYS_PLUGIN
68
- cd -