siliconcompiler 0.32.0__py3-none-any.whl → 0.32.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 (62) hide show
  1. siliconcompiler/_metadata.py +1 -1
  2. siliconcompiler/apps/_common.py +23 -6
  3. siliconcompiler/apps/sc_dashboard.py +7 -1
  4. siliconcompiler/apps/sc_install.py +13 -5
  5. siliconcompiler/apps/sc_remote.py +2 -1
  6. siliconcompiler/apps/sc_show.py +6 -0
  7. siliconcompiler/core.py +34 -16
  8. siliconcompiler/fpgas/lattice_ice40.py +6 -16
  9. siliconcompiler/package/__init__.py +11 -55
  10. siliconcompiler/package/github.py +124 -0
  11. siliconcompiler/package/https.py +6 -0
  12. siliconcompiler/report/dashboard/components/__init__.py +2 -1
  13. siliconcompiler/report/dashboard/components/flowgraph.py +3 -0
  14. siliconcompiler/report/dashboard/utils/__init__.py +5 -2
  15. siliconcompiler/report/utils.py +3 -0
  16. siliconcompiler/scheduler/__init__.py +37 -8
  17. siliconcompiler/scheduler/docker_runner.py +2 -1
  18. siliconcompiler/schema/schema_obj.py +3 -2
  19. siliconcompiler/schema/utils.py +0 -3
  20. siliconcompiler/sphinx_ext/dynamicgen.py +11 -11
  21. siliconcompiler/targets/fpgaflow_demo.py +0 -2
  22. siliconcompiler/templates/tcl/manifest.tcl.j2 +4 -120
  23. siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +126 -0
  24. siliconcompiler/tools/openroad/_apr.py +3 -0
  25. siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +53 -7
  26. siliconcompiler/tools/openroad/scripts/common/procs.tcl +19 -1
  27. siliconcompiler/tools/openroad/scripts/common/reports.tcl +16 -5
  28. siliconcompiler/tools/slang/__init__.py +7 -8
  29. siliconcompiler/tools/sv2v/sv2v.py +4 -1
  30. siliconcompiler/tools/yosys/__init__.py +4 -36
  31. siliconcompiler/tools/yosys/lec.py +3 -4
  32. siliconcompiler/tools/yosys/{syn_asic.tcl → sc_synth_asic.tcl} +79 -0
  33. siliconcompiler/tools/yosys/{syn_fpga.tcl → sc_synth_fpga.tcl} +78 -0
  34. siliconcompiler/tools/yosys/syn_asic.py +26 -10
  35. siliconcompiler/tools/yosys/syn_fpga.py +23 -16
  36. siliconcompiler/toolscripts/_tools.json +18 -9
  37. siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -1
  38. siliconcompiler/toolscripts/rhel9/install-vpr.sh +29 -0
  39. siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +59 -0
  40. siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +59 -0
  41. siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +25 -2
  42. siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +2 -2
  43. siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +59 -0
  44. siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +2 -2
  45. siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -1
  46. siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +1 -1
  47. siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +59 -0
  48. siliconcompiler/utils/__init__.py +9 -15
  49. siliconcompiler/utils/logging.py +1 -1
  50. {siliconcompiler-0.32.0.dist-info → siliconcompiler-0.32.2.dist-info}/METADATA +12 -9
  51. {siliconcompiler-0.32.0.dist-info → siliconcompiler-0.32.2.dist-info}/RECORD +55 -55
  52. {siliconcompiler-0.32.0.dist-info → siliconcompiler-0.32.2.dist-info}/WHEEL +1 -1
  53. {siliconcompiler-0.32.0.dist-info → siliconcompiler-0.32.2.dist-info}/entry_points.txt +1 -0
  54. siliconcompiler/fpgas/vpr_example.py +0 -116
  55. siliconcompiler/tools/yosys/sc_syn.tcl +0 -87
  56. siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -25
  57. siliconcompiler/toolscripts/rhel8/install-yosys-moosic.sh +0 -17
  58. siliconcompiler/toolscripts/rhel8/install-yosys-slang.sh +0 -22
  59. siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -23
  60. siliconcompiler/toolscripts/ubuntu20/install-yosys-slang.sh +0 -22
  61. {siliconcompiler-0.32.0.dist-info → siliconcompiler-0.32.2.dist-info/licenses}/LICENSE +0 -0
  62. {siliconcompiler-0.32.0.dist-info → siliconcompiler-0.32.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,59 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ # Get directory of script
6
+ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
+
8
+ mkdir -p deps
9
+ cd deps
10
+
11
+ git clone $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-url) yosys-parmys
12
+ cd yosys-parmys
13
+ git checkout $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-commit)
14
+ git submodule update --init --recursive
15
+
16
+ # apply patch
17
+ cat > build_patch <<EOF
18
+ diff --git a/parmys/parmys-plugin/Makefile b/parmys/parmys-plugin/Makefile
19
+ index dbb3eb11e..cb85631bc 100644
20
+ --- a/parmys/parmys-plugin/Makefile
21
+ +++ b/parmys/parmys-plugin/Makefile
22
+ @@ -49,7 +49,7 @@ VTR_INSTALL_DIR ?= /usr/local
23
+
24
+ include ../Makefile_plugin.common
25
+
26
+ -CXXFLAGS += -std=c++14 -Wall -W -Wextra \\
27
+ +CXXFLAGS += -std=c++17 -Wall -W -Wextra \\
28
+ -Wno-deprecated-declarations \\
29
+ -Wno-unused-parameter \\
30
+ -I. \\
31
+ diff --git a/parmys/parmys-plugin/parmys_update.cc b/parmys/parmys-plugin/parmys_update.cc
32
+ index ef55213c5..4e4d6dd15 100644
33
+ --- a/parmys/parmys-plugin/parmys_update.cc
34
+ +++ b/parmys/parmys-plugin/parmys_update.cc
35
+ @@ -506,9 +506,9 @@ void define_logical_function_yosys(nnode_t *node, Module *module)
36
+ lutptr = &cell->parameters.at(ID::LUT);
37
+ for (int i = 0; i < (1 << node->num_input_pins); i++) {
38
+ if (i == 3 || i == 5 || i == 6 || i == 7) //"011 1\n101 1\n110 1\n111 1\n"
39
+ - lutptr->bits.at(i) = RTLIL::State::S1;
40
+ + lutptr->bits().at(i) = RTLIL::State::S1;
41
+ else
42
+ - lutptr->bits.at(i) = RTLIL::State::S0;
43
+ + lutptr->bits().at(i) = RTLIL::State::S0;
44
+ }
45
+ } else {
46
+ cell->parameters[ID::A_WIDTH] = RTLIL::Const(int(node->num_input_pins));
47
+ EOF
48
+
49
+ git apply build_patch
50
+
51
+ export VTR_INSTALL_DIR=$(dirname $(which vpr))/..
52
+ YOSYS_PLUGIN=$(yosys-config --datdir)/plugins/
53
+
54
+ cd parmys
55
+
56
+ make -j$(nproc)
57
+ sudo mkdir -p $YOSYS_PLUGIN
58
+ sudo cp parmys-plugin/build/parmys.so $YOSYS_PLUGIN
59
+ cd -
@@ -5,13 +5,36 @@ 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 ghc libghc-regex-compat-dev libghc-syb-dev \
9
- libghc-old-time-dev libghc-split-dev tcl-dev build-essential pkg-config \
8
+ sudo apt-get install -y tcl-dev build-essential pkg-config \
10
9
  autoconf gperf flex bison
11
10
 
12
11
  mkdir -p deps
13
12
  cd deps
14
13
 
14
+ if [ "$(uname -m)" = "x86_64" ]; then
15
+ sudo apt-get install -y ghc libghc-regex-compat-dev libghc-syb-dev \
16
+ libghc-old-time-dev libghc-split-dev
17
+ else
18
+ sudo apt-get install -y build-essential curl libffi-dev libffi8 libgmp-dev \
19
+ libgmp10 libncurses-dev libncurses5 libtinfo5 pkg-config
20
+ if [ ! -z ${PREFIX} ]; then
21
+ export PATH="$PREFIX/bin:$PATH"
22
+ export GHCUP_INSTALL_BASE_PREFIX=$PREFIX
23
+ fi
24
+
25
+ export BOOTSTRAP_HASKELL_NONINTERACTIVE=yes
26
+
27
+ curl -sSL https://get-ghcup.haskell.org | sh -s
28
+
29
+ if [ ! -z ${PREFIX} ]; then
30
+ . ${PREFIX}/.ghcup/env
31
+ else
32
+ . ${HOME}/.ghcup/env
33
+ fi
34
+
35
+ cabal v1-install regex-compat syb old-time split
36
+ fi
37
+
15
38
  git clone $(python3 ${src_path}/_tools.py --tool bluespec --field git-url) bluespec
16
39
  cd bluespec
17
40
  git checkout $(python3 ${src_path}/_tools.py --tool bluespec --field git-commit)
@@ -5,7 +5,7 @@ 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 gnat libgnat-9 libz-dev
8
+ sudo apt-get install -y llvm-dev clang gnat libgnat-9 libz-dev
9
9
 
10
10
  mkdir -p deps
11
11
  cd deps
@@ -19,7 +19,7 @@ if [ ! -z ${PREFIX} ]; then
19
19
  args=--prefix="$PREFIX"
20
20
  fi
21
21
 
22
- ./configure $args
22
+ ./configure --with-llvm-config $args
23
23
  make -j$(nproc)
24
24
  sudo make install
25
25
  cd -
@@ -0,0 +1,59 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ # Get directory of script
6
+ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
+
8
+ mkdir -p deps
9
+ cd deps
10
+
11
+ git clone $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-url) yosys-parmys
12
+ cd yosys-parmys
13
+ git checkout $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-commit)
14
+ git submodule update --init --recursive
15
+
16
+ # apply patch
17
+ cat > build_patch <<EOF
18
+ diff --git a/parmys/parmys-plugin/Makefile b/parmys/parmys-plugin/Makefile
19
+ index dbb3eb11e..cb85631bc 100644
20
+ --- a/parmys/parmys-plugin/Makefile
21
+ +++ b/parmys/parmys-plugin/Makefile
22
+ @@ -49,7 +49,7 @@ VTR_INSTALL_DIR ?= /usr/local
23
+
24
+ include ../Makefile_plugin.common
25
+
26
+ -CXXFLAGS += -std=c++14 -Wall -W -Wextra \\
27
+ +CXXFLAGS += -std=c++17 -Wall -W -Wextra \\
28
+ -Wno-deprecated-declarations \\
29
+ -Wno-unused-parameter \\
30
+ -I. \\
31
+ diff --git a/parmys/parmys-plugin/parmys_update.cc b/parmys/parmys-plugin/parmys_update.cc
32
+ index ef55213c5..4e4d6dd15 100644
33
+ --- a/parmys/parmys-plugin/parmys_update.cc
34
+ +++ b/parmys/parmys-plugin/parmys_update.cc
35
+ @@ -506,9 +506,9 @@ void define_logical_function_yosys(nnode_t *node, Module *module)
36
+ lutptr = &cell->parameters.at(ID::LUT);
37
+ for (int i = 0; i < (1 << node->num_input_pins); i++) {
38
+ if (i == 3 || i == 5 || i == 6 || i == 7) //"011 1\n101 1\n110 1\n111 1\n"
39
+ - lutptr->bits.at(i) = RTLIL::State::S1;
40
+ + lutptr->bits().at(i) = RTLIL::State::S1;
41
+ else
42
+ - lutptr->bits.at(i) = RTLIL::State::S0;
43
+ + lutptr->bits().at(i) = RTLIL::State::S0;
44
+ }
45
+ } else {
46
+ cell->parameters[ID::A_WIDTH] = RTLIL::Const(int(node->num_input_pins));
47
+ EOF
48
+
49
+ git apply build_patch
50
+
51
+ export VTR_INSTALL_DIR=$(dirname $(which vpr))/..
52
+ YOSYS_PLUGIN=$(yosys-config --datdir)/plugins/
53
+
54
+ cd parmys
55
+
56
+ make -j$(nproc)
57
+ sudo mkdir -p $YOSYS_PLUGIN
58
+ sudo cp parmys-plugin/build/parmys.so $YOSYS_PLUGIN
59
+ cd -
@@ -5,7 +5,7 @@ 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 gnat libgnat-9 libz-dev
8
+ sudo apt-get install -y llvm-dev clang gnat libgnat-9 libz-dev
9
9
 
10
10
  mkdir -p deps
11
11
  cd deps
@@ -19,7 +19,7 @@ if [ ! -z ${PREFIX} ]; then
19
19
  args=--prefix="$PREFIX"
20
20
  fi
21
21
 
22
- ./configure $args
22
+ ./configure --with-llvm-config $args
23
23
  make -j$(nproc)
24
24
  sudo make install
25
25
  cd -
@@ -5,7 +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 build-essential bison flex gperf libreadline-dev libncurses-dev
8
+ sudo apt-get install -y build-essential bison flex gperf libreadline-dev libncurses-dev \
9
+ autotools-dev automake
9
10
 
10
11
  mkdir -p deps
11
12
  cd deps
@@ -5,7 +5,7 @@ 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 build-essential tcl-dev tk-dev
8
+ sudo apt-get install -y build-essential tcl-dev tk-dev m4
9
9
 
10
10
  mkdir -p deps
11
11
  cd deps
@@ -0,0 +1,59 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ # Get directory of script
6
+ src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
7
+
8
+ mkdir -p deps
9
+ cd deps
10
+
11
+ git clone $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-url) yosys-parmys
12
+ cd yosys-parmys
13
+ git checkout $(python3 ${src_path}/_tools.py --tool yosys-parmys --field git-commit)
14
+ git submodule update --init --recursive
15
+
16
+ # apply patch
17
+ cat > build_patch <<EOF
18
+ diff --git a/parmys/parmys-plugin/Makefile b/parmys/parmys-plugin/Makefile
19
+ index dbb3eb11e..cb85631bc 100644
20
+ --- a/parmys/parmys-plugin/Makefile
21
+ +++ b/parmys/parmys-plugin/Makefile
22
+ @@ -49,7 +49,7 @@ VTR_INSTALL_DIR ?= /usr/local
23
+
24
+ include ../Makefile_plugin.common
25
+
26
+ -CXXFLAGS += -std=c++14 -Wall -W -Wextra \\
27
+ +CXXFLAGS += -std=c++17 -Wall -W -Wextra \\
28
+ -Wno-deprecated-declarations \\
29
+ -Wno-unused-parameter \\
30
+ -I. \\
31
+ diff --git a/parmys/parmys-plugin/parmys_update.cc b/parmys/parmys-plugin/parmys_update.cc
32
+ index ef55213c5..4e4d6dd15 100644
33
+ --- a/parmys/parmys-plugin/parmys_update.cc
34
+ +++ b/parmys/parmys-plugin/parmys_update.cc
35
+ @@ -506,9 +506,9 @@ void define_logical_function_yosys(nnode_t *node, Module *module)
36
+ lutptr = &cell->parameters.at(ID::LUT);
37
+ for (int i = 0; i < (1 << node->num_input_pins); i++) {
38
+ if (i == 3 || i == 5 || i == 6 || i == 7) //"011 1\n101 1\n110 1\n111 1\n"
39
+ - lutptr->bits.at(i) = RTLIL::State::S1;
40
+ + lutptr->bits().at(i) = RTLIL::State::S1;
41
+ else
42
+ - lutptr->bits.at(i) = RTLIL::State::S0;
43
+ + lutptr->bits().at(i) = RTLIL::State::S0;
44
+ }
45
+ } else {
46
+ cell->parameters[ID::A_WIDTH] = RTLIL::Const(int(node->num_input_pins));
47
+ EOF
48
+
49
+ git apply build_patch
50
+
51
+ export VTR_INSTALL_DIR=$(dirname $(which vpr))/..
52
+ YOSYS_PLUGIN=$(yosys-config --datdir)/plugins/
53
+
54
+ cd parmys
55
+
56
+ make -j$(nproc)
57
+ sudo mkdir -p $YOSYS_PLUGIN
58
+ sudo cp parmys-plugin/build/parmys.so $YOSYS_PLUGIN
59
+ cd -
@@ -5,7 +5,6 @@ import re
5
5
  import psutil
6
6
  import shutil
7
7
  from pathlib import Path, PurePosixPath
8
- from siliconcompiler._metadata import version as sc_version
9
8
  from jinja2 import Environment, FileSystemLoader
10
9
 
11
10
  import sys
@@ -15,11 +14,6 @@ else:
15
14
  from importlib.metadata import entry_points
16
15
 
17
16
 
18
- PACKAGE_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
19
-
20
- _siliconcompiler_data_path = 'git+https://github.com/siliconcompiler/siliconcompiler'
21
-
22
-
23
17
  def link_symlink_copy(srcfile, dstfile):
24
18
  # first try hard linking, then symbolic linking,
25
19
  # and finally just copy the file
@@ -223,12 +217,6 @@ def default_email_credentials_file():
223
217
  return cfg_file
224
218
 
225
219
 
226
- def register_sc_data_source(chip):
227
- chip.register_source('siliconcompiler_data',
228
- _siliconcompiler_data_path,
229
- 'v'+sc_version)
230
-
231
-
232
220
  @contextlib.contextmanager
233
221
  def sc_open(path, *args, **kwargs):
234
222
  kwargs['errors'] = 'ignore_with_warning'
@@ -240,12 +228,18 @@ def sc_open(path, *args, **kwargs):
240
228
  pass
241
229
 
242
230
 
243
- def get_file_template(path, root=os.path.join(PACKAGE_ROOT, 'templates')):
231
+ def get_file_template(path,
232
+ root=os.path.join(
233
+ os.path.dirname(
234
+ os.path.dirname(os.path.abspath(__file__))), 'templates')):
244
235
  if os.path.isabs(path):
245
236
  root = os.path.dirname(path)
246
237
  path = os.path.basename(path)
247
238
 
248
- env = Environment(loader=FileSystemLoader(root))
239
+ import siliconcompiler
240
+ scroot = os.path.dirname(siliconcompiler.__file__)
241
+
242
+ env = Environment(loader=FileSystemLoader([root, scroot]))
249
243
  return env.get_template(path)
250
244
 
251
245
 
@@ -266,7 +260,7 @@ def safecompare(chip, value, op, goal):
266
260
  elif op == "!=":
267
261
  return bool(value != goal)
268
262
  else:
269
- chip.error(f"Illegal comparison operation {op}")
263
+ raise ValueError(f"Illegal comparison operation {op}")
270
264
 
271
265
 
272
266
  ###########################################################################
@@ -55,7 +55,7 @@ class ColorStreamFormatter(LoggerFormatter):
55
55
 
56
56
  @staticmethod
57
57
  def supports_color(handler):
58
- if not isinstance(handler, logging.StreamHandler):
58
+ if type(handler) is not logging.StreamHandler:
59
59
  return False
60
60
 
61
61
  supported_platform = sys.platform != 'win32'
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: siliconcompiler
3
- Version: 0.32.0
3
+ Version: 0.32.2
4
4
  Summary: A compiler framework that automates translation from source code to silicon.
5
5
  Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
6
6
  License: Apache License 2.0
@@ -26,7 +26,7 @@ Requires-Python: >=3.8
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
29
- Requires-Dist: aiohttp==3.11.13; python_version >= "3.9"
29
+ Requires-Dist: aiohttp==3.11.14; python_version >= "3.9"
30
30
  Requires-Dist: requests==2.32.3
31
31
  Requires-Dist: PyYAML==6.0.2
32
32
  Requires-Dist: pandas>=1.1.5
@@ -45,10 +45,11 @@ Requires-Dist: fasteners==0.19
45
45
  Requires-Dist: fastjsonschema==2.21.1
46
46
  Requires-Dist: docker==7.1.0
47
47
  Requires-Dist: importlib_metadata; python_version < "3.10"
48
- Requires-Dist: orjson==3.10.15
48
+ Requires-Dist: orjson==3.10.15; python_version <= "3.8"
49
+ Requires-Dist: orjson==3.10.16; python_version >= "3.9"
49
50
  Requires-Dist: pyslang==8.0.0
50
51
  Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
51
- Requires-Dist: streamlit==1.43.1; python_version >= "3.9" and python_full_version != "3.9.7"
52
+ Requires-Dist: streamlit==1.44.0; python_version >= "3.9" and python_full_version != "3.9.7"
52
53
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
53
54
  Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
54
55
  Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
@@ -58,14 +59,15 @@ Requires-Dist: pytest==8.3.5; extra == "test"
58
59
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
59
60
  Requires-Dist: pytest-timeout==2.3.1; extra == "test"
60
61
  Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
61
- Requires-Dist: pytest-asyncio==0.25.3; python_version >= "3.9" and extra == "test"
62
+ Requires-Dist: pytest-asyncio==0.26.0; python_version >= "3.9" and extra == "test"
62
63
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
63
64
  Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
64
- Requires-Dist: responses==0.25.6; extra == "test"
65
+ Requires-Dist: responses==0.25.7; extra == "test"
65
66
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
67
+ Requires-Dist: logiklib==0.1.0; extra == "test"
66
68
  Provides-Extra: lint
67
- Requires-Dist: flake8==7.1.2; extra == "lint"
68
- Requires-Dist: tclint==0.5.3; extra == "lint"
69
+ Requires-Dist: flake8==7.2.0; extra == "lint"
70
+ Requires-Dist: tclint==0.5.4; extra == "lint"
69
71
  Requires-Dist: codespell==2.4.1; extra == "lint"
70
72
  Provides-Extra: docs
71
73
  Requires-Dist: Sphinx==8.2.3; extra == "docs"
@@ -76,6 +78,7 @@ Provides-Extra: profile
76
78
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
77
79
  Provides-Extra: optimizer
78
80
  Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
81
+ Dynamic: license-file
79
82
 
80
83
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
81
84