siliconcompiler 0.28.9__py3-none-any.whl → 0.29.1__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 (164) hide show
  1. siliconcompiler/_metadata.py +1 -1
  2. siliconcompiler/apps/__init__.py +26 -0
  3. siliconcompiler/apps/sc_remote.py +15 -14
  4. siliconcompiler/apps/sc_show.py +5 -5
  5. siliconcompiler/apps/utils/replay.py +194 -0
  6. siliconcompiler/checklists/__init__.py +12 -0
  7. siliconcompiler/core.py +89 -22
  8. siliconcompiler/flows/__init__.py +34 -0
  9. siliconcompiler/flows/_common.py +11 -13
  10. siliconcompiler/flows/asicflow.py +83 -42
  11. siliconcompiler/flows/showflow.py +1 -1
  12. siliconcompiler/libs/__init__.py +5 -0
  13. siliconcompiler/optimizer/__init__.py +199 -0
  14. siliconcompiler/optimizer/vizier.py +259 -0
  15. siliconcompiler/pdks/__init__.py +5 -0
  16. siliconcompiler/remote/__init__.py +11 -0
  17. siliconcompiler/remote/client.py +753 -815
  18. siliconcompiler/report/report.py +2 -0
  19. siliconcompiler/report/summary_table.py +1 -1
  20. siliconcompiler/scheduler/__init__.py +118 -58
  21. siliconcompiler/scheduler/send_messages.py +1 -1
  22. siliconcompiler/schema/schema_cfg.py +16 -4
  23. siliconcompiler/schema/schema_obj.py +29 -10
  24. siliconcompiler/schema/utils.py +2 -0
  25. siliconcompiler/sphinx_ext/__init__.py +85 -0
  26. siliconcompiler/sphinx_ext/dynamicgen.py +19 -34
  27. siliconcompiler/sphinx_ext/schemagen.py +3 -2
  28. siliconcompiler/targets/__init__.py +26 -0
  29. siliconcompiler/targets/gf180_demo.py +3 -3
  30. siliconcompiler/templates/replay/replay.py.j2 +62 -0
  31. siliconcompiler/templates/replay/requirements.txt +7 -0
  32. siliconcompiler/templates/replay/setup.sh +130 -0
  33. siliconcompiler/tools/__init__.py +60 -0
  34. siliconcompiler/tools/_common/__init__.py +15 -1
  35. siliconcompiler/tools/_common/asic.py +17 -9
  36. siliconcompiler/tools/builtin/concatenate.py +1 -1
  37. siliconcompiler/tools/ghdl/ghdl.py +1 -2
  38. siliconcompiler/tools/klayout/convert_drc_db.py +1 -1
  39. siliconcompiler/tools/klayout/drc.py +1 -1
  40. siliconcompiler/tools/klayout/export.py +8 -1
  41. siliconcompiler/tools/klayout/klayout.py +2 -2
  42. siliconcompiler/tools/klayout/klayout_convert_drc_db.py +2 -2
  43. siliconcompiler/tools/klayout/klayout_export.py +7 -5
  44. siliconcompiler/tools/klayout/klayout_operations.py +4 -3
  45. siliconcompiler/tools/klayout/klayout_show.py +3 -2
  46. siliconcompiler/tools/klayout/klayout_utils.py +1 -1
  47. siliconcompiler/tools/klayout/operations.py +8 -0
  48. siliconcompiler/tools/klayout/screenshot.py +6 -1
  49. siliconcompiler/tools/klayout/show.py +8 -1
  50. siliconcompiler/tools/magic/magic.py +1 -1
  51. siliconcompiler/tools/openroad/__init__.py +103 -0
  52. siliconcompiler/tools/openroad/{openroad.py → _apr.py} +415 -423
  53. siliconcompiler/tools/openroad/antenna_repair.py +78 -0
  54. siliconcompiler/tools/openroad/clock_tree_synthesis.py +64 -0
  55. siliconcompiler/tools/openroad/detailed_placement.py +59 -0
  56. siliconcompiler/tools/openroad/detailed_route.py +62 -0
  57. siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +52 -0
  58. siliconcompiler/tools/openroad/fillercell_insertion.py +58 -0
  59. siliconcompiler/tools/openroad/{dfm.py → fillmetal_insertion.py} +35 -19
  60. siliconcompiler/tools/openroad/global_placement.py +58 -0
  61. siliconcompiler/tools/openroad/global_route.py +63 -0
  62. siliconcompiler/tools/openroad/init_floorplan.py +103 -0
  63. siliconcompiler/tools/openroad/macro_placement.py +65 -0
  64. siliconcompiler/tools/openroad/metrics.py +23 -8
  65. siliconcompiler/tools/openroad/pin_placement.py +56 -0
  66. siliconcompiler/tools/openroad/power_grid.py +65 -0
  67. siliconcompiler/tools/openroad/rcx_bench.py +7 -4
  68. siliconcompiler/tools/openroad/rcx_extract.py +2 -1
  69. siliconcompiler/tools/openroad/rdlroute.py +4 -4
  70. siliconcompiler/tools/openroad/repair_design.py +59 -0
  71. siliconcompiler/tools/openroad/repair_timing.py +63 -0
  72. siliconcompiler/tools/openroad/screenshot.py +9 -20
  73. siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +44 -0
  74. siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +95 -0
  75. siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +51 -0
  76. siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +66 -0
  77. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +41 -0
  78. siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +71 -0
  79. siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +55 -0
  80. siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +27 -0
  81. siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +36 -0
  82. siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +26 -0
  83. siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +61 -0
  84. siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +333 -0
  85. siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +123 -0
  86. siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +22 -0
  87. siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +41 -0
  88. siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +60 -0
  89. siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +68 -0
  90. siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +83 -0
  91. siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +125 -0
  92. siliconcompiler/tools/openroad/scripts/common/debugging.tcl +28 -0
  93. siliconcompiler/tools/openroad/scripts/common/procs.tcl +727 -0
  94. siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +59 -0
  95. siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +20 -0
  96. siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +16 -0
  97. siliconcompiler/tools/openroad/scripts/common/reports.tcl +180 -0
  98. siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +18 -0
  99. siliconcompiler/tools/openroad/scripts/common/write_images.tcl +395 -0
  100. siliconcompiler/tools/openroad/scripts/{sc_rcx_bench.tcl → rcx/sc_rcx_bench.tcl} +5 -5
  101. siliconcompiler/tools/openroad/scripts/{sc_rcx_extract.tcl → rcx/sc_rcx_extract.tcl} +0 -0
  102. siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +5 -16
  103. siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +51 -51
  104. siliconcompiler/tools/openroad/scripts/sc_show.tcl +110 -0
  105. siliconcompiler/tools/openroad/show.py +28 -23
  106. siliconcompiler/tools/openroad/{export.py → write_data.py} +31 -26
  107. siliconcompiler/tools/opensta/__init__.py +2 -2
  108. siliconcompiler/tools/opensta/check_library.py +27 -0
  109. siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +255 -0
  110. siliconcompiler/tools/opensta/scripts/sc_timing.tcl +1 -1
  111. siliconcompiler/tools/sv2v/sv2v.py +1 -2
  112. siliconcompiler/tools/verilator/verilator.py +6 -7
  113. siliconcompiler/tools/vivado/vivado.py +1 -1
  114. siliconcompiler/tools/yosys/__init__.py +149 -0
  115. siliconcompiler/tools/yosys/lec.py +22 -9
  116. siliconcompiler/tools/yosys/sc_lec.tcl +94 -49
  117. siliconcompiler/tools/yosys/sc_syn.tcl +1 -0
  118. siliconcompiler/tools/yosys/screenshot.py +2 -2
  119. siliconcompiler/tools/yosys/syn_asic.py +105 -74
  120. siliconcompiler/tools/yosys/syn_asic.tcl +58 -12
  121. siliconcompiler/tools/yosys/syn_fpga.py +2 -3
  122. siliconcompiler/tools/yosys/syn_fpga.tcl +26 -19
  123. siliconcompiler/toolscripts/_tools.json +5 -5
  124. siliconcompiler/utils/__init__.py +7 -3
  125. {siliconcompiler-0.28.9.dist-info → siliconcompiler-0.29.1.dist-info}/METADATA +22 -17
  126. {siliconcompiler-0.28.9.dist-info → siliconcompiler-0.29.1.dist-info}/RECORD +131 -114
  127. {siliconcompiler-0.28.9.dist-info → siliconcompiler-0.29.1.dist-info}/WHEEL +1 -1
  128. {siliconcompiler-0.28.9.dist-info → siliconcompiler-0.29.1.dist-info}/entry_points.txt +13 -0
  129. siliconcompiler/libs/asap7sc7p5t.py +0 -8
  130. siliconcompiler/libs/gf180mcu.py +0 -8
  131. siliconcompiler/libs/interposer.py +0 -8
  132. siliconcompiler/libs/nangate45.py +0 -8
  133. siliconcompiler/libs/sg13g2_stdcell.py +0 -8
  134. siliconcompiler/libs/sky130hd.py +0 -8
  135. siliconcompiler/libs/sky130io.py +0 -8
  136. siliconcompiler/pdks/asap7.py +0 -8
  137. siliconcompiler/pdks/freepdk45.py +0 -8
  138. siliconcompiler/pdks/gf180.py +0 -8
  139. siliconcompiler/pdks/ihp130.py +0 -8
  140. siliconcompiler/pdks/interposer.py +0 -8
  141. siliconcompiler/pdks/skywater130.py +0 -8
  142. siliconcompiler/tools/openroad/cts.py +0 -45
  143. siliconcompiler/tools/openroad/floorplan.py +0 -75
  144. siliconcompiler/tools/openroad/physyn.py +0 -27
  145. siliconcompiler/tools/openroad/place.py +0 -41
  146. siliconcompiler/tools/openroad/route.py +0 -45
  147. siliconcompiler/tools/openroad/scripts/__init__.py +0 -0
  148. siliconcompiler/tools/openroad/scripts/sc_apr.tcl +0 -514
  149. siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -68
  150. siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +0 -22
  151. siliconcompiler/tools/openroad/scripts/sc_export.tcl +0 -100
  152. siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +0 -456
  153. siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +0 -1
  154. siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -6
  155. siliconcompiler/tools/openroad/scripts/sc_place.tcl +0 -84
  156. siliconcompiler/tools/openroad/scripts/sc_procs.tcl +0 -494
  157. siliconcompiler/tools/openroad/scripts/sc_report.tcl +0 -189
  158. siliconcompiler/tools/openroad/scripts/sc_route.tcl +0 -143
  159. siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -18
  160. siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +0 -393
  161. siliconcompiler/tools/yosys/yosys.py +0 -148
  162. /siliconcompiler/tools/openroad/scripts/{sc_write.tcl → common/write_data.tcl} +0 -0
  163. {siliconcompiler-0.28.9.dist-info → siliconcompiler-0.29.1.dist-info}/LICENSE +0 -0
  164. {siliconcompiler-0.28.9.dist-info → siliconcompiler-0.29.1.dist-info}/top_level.txt +0 -0
@@ -125,6 +125,30 @@ if { [string match {ice*} $sc_partname] } {
125
125
  yosys proc
126
126
  yosys flatten
127
127
 
128
+ # Note there are two possibilities for how macro mapping might be done:
129
+ # using the extract command (to pattern match user RTL against
130
+ # the techmap) or using the techmap command. The latter is better
131
+ # for mapping simple multipliers; the former is better (for now)
132
+ # for mapping more complex DSP blocks (MAC, pipelined blocks, etc).
133
+ # and is also more easily extensible to arbitrary hard macros.
134
+ # Run separate passes of both to get best of both worlds
135
+
136
+ # An extract pass needs to happen prior to other optimizations,
137
+ # otherwise yosys can transform its internal model into something
138
+ # that doesn't match the patterns defined in the extract library
139
+ if { [sc_cfg_exists fpga $sc_partname file yosys_extractlib] } {
140
+ set sc_syn_extractlibs \
141
+ [sc_cfg_get fpga $sc_partname file yosys_extractlib]
142
+
143
+ foreach extractlib $sc_syn_extractlibs {
144
+ yosys log "Run extract with $extractlib"
145
+ yosys extract -map $extractlib
146
+ }
147
+ }
148
+
149
+ # Other hard macro passes can happen after the generic optimization
150
+ # passes take place.
151
+
128
152
  #Generic optimization passes; this is a fusion of the VTR reference
129
153
  #flow and the Yosys synth_ice40 flow
130
154
  yosys opt_expr
@@ -141,28 +165,12 @@ if { [string match {ice*} $sc_partname] } {
141
165
  yosys opt_expr
142
166
  yosys opt_clean
143
167
 
168
+ # Here is a remaining customization pass for DSP tech mapping
169
+
144
170
  #Map DSP blocks before doing anything else,
145
171
  #so that we don't convert any math blocks
146
172
  #into other primitives
147
173
 
148
- # Note there are two possibilities for how mapping might be done:
149
- # using the extract command (to pattern match user RTL against
150
- # the techmap) or using the techmap command. The latter is better
151
- # for mapping simple multipliers; the former is better (for now)
152
- # for mapping more complex DSP blocks (MAC, pipelined blocks, etc).
153
- # and also more extensible to arbitrary hard macros. Run separate
154
- # passes of both to get best of both worlds
155
-
156
- if { [sc_cfg_exists fpga $sc_partname file yosys_extractlib] } {
157
- set sc_syn_extractlibs \
158
- [sc_cfg_get fpga $sc_partname file yosys_extractlib]
159
-
160
- foreach extractlib $sc_syn_extractlibs {
161
- yosys log "Run extract with $extractlib"
162
- yosys extract -map $extractlib
163
- }
164
- }
165
-
166
174
  if { [sc_cfg_exists fpga $sc_partname file yosys_dsp_techmap] } {
167
175
  set sc_syn_dsp_library \
168
176
  [sc_cfg_get fpga $sc_partname file yosys_dsp_techmap]
@@ -234,4 +242,3 @@ yosys echo on
234
242
  # Write Netlist
235
243
  ########################################################
236
244
  yosys write_blif "outputs/${sc_design}.blif"
237
- yosys write_json "outputs/${sc_design}.netlist.json"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "openroad": {
3
3
  "git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
4
- "git-commit": "8300b5293dec4c0a0ef26cd2ba7ca6101714e155",
4
+ "git-commit": "1ed6a7edfda56bef82938573bf0fadc48bd8ff34",
5
5
  "docker-cmds": [
6
6
  "# Remove OR-Tools files",
7
7
  "RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
@@ -36,7 +36,7 @@
36
36
  "auto-update": false
37
37
  },
38
38
  "klayout": {
39
- "version": "0.29.8",
39
+ "version": "0.29.10",
40
40
  "git-url": "https://github.com/KLayout/klayout.git",
41
41
  "docker-skip": true,
42
42
  "auto-update": true,
@@ -45,12 +45,12 @@
45
45
  },
46
46
  "sv2v": {
47
47
  "git-url": "https://github.com/zachjs/sv2v.git",
48
- "git-commit": "7808819c48c167978aeb5ef34c6e5ed416e90875",
48
+ "git-commit": "aa0a885699ca8f4fc1d07ef34fb041c6f37b1ba3",
49
49
  "auto-update": true
50
50
  },
51
51
  "verilator": {
52
52
  "git-url": "https://github.com/verilator/verilator.git",
53
- "git-commit": "563faeb33f3b9b5374f558f54adfea11873f1cd7",
53
+ "git-commit": "v5.030",
54
54
  "auto-update": true
55
55
  },
56
56
  "bambu": {
@@ -91,7 +91,7 @@
91
91
  },
92
92
  "yosys": {
93
93
  "git-url": "https://github.com/YosysHQ/yosys.git",
94
- "git-commit": "0.47",
94
+ "git-commit": "v0.48",
95
95
  "version-prefix": "",
96
96
  "auto-update": true
97
97
  },
@@ -333,7 +333,7 @@ def _resolve_env_vars(chip, filepath):
333
333
  # variables that don't exist in environment get ignored by `expandvars`,
334
334
  # but we can do our own error checking to ensure this doesn't result in
335
335
  # silent bugs
336
- envvars = re.findall(r'\$(\w+)', resolved_path)
336
+ envvars = re.findall(r'\$\{?(\w+)\}?', resolved_path)
337
337
  for var in envvars:
338
338
  chip.logger.warning(f'Variable {var} in {filepath} not defined in environment')
339
339
 
@@ -401,7 +401,7 @@ def find_sc_file(chip, filename, missing_ok=False, search_paths=None):
401
401
  return result
402
402
 
403
403
 
404
- def get_plugins(system):
404
+ def get_plugins(system, name=None):
405
405
  '''
406
406
  Search for python modules with a specific function
407
407
  '''
@@ -409,7 +409,11 @@ def get_plugins(system):
409
409
  plugins = []
410
410
  discovered_plugins = entry_points(group=f'siliconcompiler.{system}')
411
411
  for plugin in discovered_plugins:
412
- plugins.append(plugin.load())
412
+ if name:
413
+ if plugin.name == name:
414
+ plugins.append(plugin.load())
415
+ else:
416
+ plugins.append(plugin.load())
413
417
 
414
418
  return plugins
415
419
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: siliconcompiler
3
- Version: 0.28.9
3
+ Version: 0.29.1
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,54 +26,59 @@ 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.2; python_version >= "3.9"
29
+ Requires-Dist: aiohttp==3.11.11; 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
33
33
  Requires-Dist: Jinja2>=2.11.3
34
34
  Requires-Dist: graphviz==0.20.3
35
35
  Requires-Dist: distro==1.9.0
36
- Requires-Dist: packaging<24,>=21.3
36
+ Requires-Dist: packaging<25,>=21.3
37
37
  Requires-Dist: psutil>=5.8.0
38
38
  Requires-Dist: Pillow==10.4.0; python_version <= "3.8"
39
- Requires-Dist: Pillow==11.0.0; python_version >= "3.9"
40
- Requires-Dist: GitPython==3.1.43
41
- Requires-Dist: lambdapdk>=0.1.38
39
+ Requires-Dist: Pillow==11.1.0; python_version >= "3.9"
40
+ Requires-Dist: GitPython==3.1.44
41
+ Requires-Dist: lambdapdk>=0.1.44
42
42
  Requires-Dist: PyGithub==2.5.0
43
43
  Requires-Dist: urllib3>=1.26.0
44
44
  Requires-Dist: fasteners==0.19
45
- Requires-Dist: fastjsonschema==2.20.0
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
48
  Requires-Dist: sc-surelog==1.84.1
49
- Requires-Dist: orjson==3.10.11
50
- Requires-Dist: streamlit==1.40.1; python_full_version != "3.9.7"
49
+ Requires-Dist: orjson==3.10.13
50
+ Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
51
+ Requires-Dist: streamlit==1.41.1; python_version >= "3.9" and python_full_version != "3.9.7"
51
52
  Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
52
53
  Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
53
54
  Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
54
55
  Requires-Dist: streamlit-autorefresh==1.0.1; python_full_version != "3.9.7"
55
56
  Provides-Extra: test
56
- Requires-Dist: pytest==8.3.3; extra == "test"
57
+ Requires-Dist: pytest==8.3.4; extra == "test"
57
58
  Requires-Dist: pytest-xdist==3.6.1; extra == "test"
58
59
  Requires-Dist: pytest-timeout==2.3.1; extra == "test"
59
- Requires-Dist: pytest-asyncio==0.24.0; extra == "test"
60
+ Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
61
+ Requires-Dist: pytest-asyncio==0.25.1; python_version >= "3.9" and extra == "test"
60
62
  Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
61
63
  Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
62
64
  Requires-Dist: responses==0.25.3; extra == "test"
63
65
  Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
64
- Requires-Dist: flake8==7.1.1; extra == "test"
65
- Requires-Dist: tclint==0.4.2; extra == "test"
66
- Requires-Dist: codespell==2.3.0; extra == "test"
66
+ Provides-Extra: lint
67
+ Requires-Dist: flake8==7.1.1; extra == "lint"
68
+ Requires-Dist: tclint==0.5.0; extra == "lint"
69
+ Requires-Dist: codespell==2.3.0; extra == "lint"
67
70
  Provides-Extra: docs
68
71
  Requires-Dist: Sphinx==8.1.3; extra == "docs"
69
72
  Requires-Dist: pip-licenses==5.0.0; extra == "docs"
70
- Requires-Dist: pydata-sphinx-theme==0.16.0; extra == "docs"
73
+ Requires-Dist: pydata-sphinx-theme==0.16.1; extra == "docs"
71
74
  Requires-Dist: sc-leflib>=0.2.0; extra == "docs"
72
75
  Provides-Extra: profile
73
76
  Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
74
77
  Provides-Extra: examples
75
78
  Requires-Dist: migen==0.9.2; extra == "examples"
76
- Requires-Dist: lambdalib==0.3.1; extra == "examples"
79
+ Requires-Dist: lambdalib==0.3.2; extra == "examples"
80
+ Provides-Extra: optimizer
81
+ Requires-Dist: google-vizier[jax]==0.1.20; python_version >= "3.10" and extra == "optimizer"
77
82
 
78
83
  ![SiliconCompiler](https://raw.githubusercontent.com/siliconcompiler/siliconcompiler/main/docs/_static/sc_logo_with_text.png)
79
84