siliconcompiler 0.35.2__tar.gz → 0.35.4__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.
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/Changes +43 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/PKG-INFO +5 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/README.md +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/pyproject.toml +6 -3
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_issue.py +18 -2
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/smake.py +106 -100
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/checklist.py +2 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_component.py +49 -11
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_floorplan.py +23 -21
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_pins.py +55 -17
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_timing.py +53 -22
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/fpga_timing.py +5 -6
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/replay.sh.j2 +27 -14
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flowgraph.py +418 -129
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/library.py +5 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/package/__init__.py +17 -6
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/package/https.py +10 -5
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/project.py +92 -33
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/client.py +17 -6
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/docker.py +24 -25
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/scheduler.py +284 -121
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/schedulernode.py +196 -90
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/slurm.py +113 -29
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/taskscheduler.py +0 -7
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/__init__.py +3 -2
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/_metadata.py +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/baseschema.py +205 -93
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/editableschema.py +29 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/namedschema.py +21 -13
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/parametervalue.py +14 -2
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/safeschema.py +18 -7
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/dependencyschema.py +4 -3
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/option.py +82 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/pathschema.py +14 -15
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/record.py +5 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/asap7_demo.py +4 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tool.py +56 -29
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/__init__.py +2 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/filter.py +8 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/importfiles.py +2 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/__init__.py +3 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +1 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_export.py +1 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +1 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_show.py +2 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +3 -4
- siliconcompiler-0.35.4/siliconcompiler/tools/klayout/show.py +42 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/__init__.py +27 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/_apr.py +81 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +1 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/global_placement.py +1 -0
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/init_floorplan.py +178 -0
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/power_grid_analysis.py +174 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/repair_design.py +1 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/repair_timing.py +1 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +42 -4
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +146 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +4 -6
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +2 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/__init__.py +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +17 -12
- siliconcompiler-0.35.4/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +13 -0
- siliconcompiler-0.35.4/siliconcompiler/tools/vivado/scripts/sc_place.tcl +13 -0
- siliconcompiler-0.35.4/siliconcompiler/tools/vivado/scripts/sc_route.tcl +15 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +10 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/__init__.py +28 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/prepareLib.py +7 -2
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +1 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +40 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +15 -5
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/syn_asic.py +62 -2
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/syn_fpga.py +8 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/_tools.json +6 -6
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/__init__.py +243 -51
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/curation.py +89 -56
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/issue.py +6 -1
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/multiprocessing.py +35 -2
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/paths.py +21 -0
- siliconcompiler-0.35.4/siliconcompiler/utils/settings.py +141 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/PKG-INFO +5 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/SOURCES.txt +3 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/requires.txt +2 -2
- siliconcompiler-0.35.2/siliconcompiler/tools/klayout/show.py +0 -30
- siliconcompiler-0.35.2/siliconcompiler/tools/openroad/init_floorplan.py +0 -69
- siliconcompiler-0.35.2/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -2
- siliconcompiler-0.35.2/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -2
- siliconcompiler-0.35.2/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -4
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/.dockerignore +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/.flake8 +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/.gitattributes +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/.gitignore +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/LICENSE +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/MANIFEST.in +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/SECURITY.md +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/scripts/.gitignore +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/scripts/methods.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/scripts/requirements.txt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/setup.cfg +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_install.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/asic.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/heartbeat.sdc +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/email/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/email/general.j2 +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/issue/README.txt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/issue/run.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/demos/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/demos/asic_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/demos/fpga_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/design.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/fpga.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/metrics/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/metrics/asic.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/metrics/fpga.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/package/git.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/package/github.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/pdk.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/cli/board.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/state.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/error.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/docs/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/docs/schemagen.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/docs/utils.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/docschema.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/journal.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/parameter.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/parametertype.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/cmdlineschema.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/filesetschema.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/metric.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/packageschema.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/schematic.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/export.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/surfer/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/surfer/show.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/logging.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/utils/units.py +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,49 @@ 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.35.4 (2025-12-08)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Major:**
|
|
15
|
+
|
|
16
|
+
* Added support for `settings.json` to allow users to set defaults and persistent options and controls for slurm nodes.
|
|
17
|
+
|
|
18
|
+
**Minor:**
|
|
19
|
+
|
|
20
|
+
* Added limit to the number of warnings/errors that will be printed to the terminal.
|
|
21
|
+
* Added `copy_*` methods to timing constraints to better support building multiple modes.
|
|
22
|
+
* Added support for flow to run collection if the specific node requires it.
|
|
23
|
+
* Added check for conflicting flow tasks and generate an error if one is found.
|
|
24
|
+
* Added Python 3.14 to testing matrix.
|
|
25
|
+
* Improved logging to help identify specific log files.
|
|
26
|
+
* Ensured data is cleaned up when a failure occurs while downloading remote data.
|
|
27
|
+
* Corrected missing history when failures occur in the flow.
|
|
28
|
+
* Fixed bug causing skipped tasks to not get re-executed when restarting flow.
|
|
29
|
+
|
|
30
|
+
* Tools:
|
|
31
|
+
|
|
32
|
+
* yosys: added warning to indicate that slang was not found, added controls for undefined signals, and buffer insertion.
|
|
33
|
+
* openroad: added support for using bmaps to place bumps, added IR drop task to provide better "what-if" analysis.
|
|
34
|
+
* vivado: added support for pre/post scripts.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
SiliconCompiler 0.35.3 (2025-11-10)
|
|
38
|
+
=========================================
|
|
39
|
+
|
|
40
|
+
**Minor:**
|
|
41
|
+
|
|
42
|
+
* Added support for downloading `.bz2` files as dataroots.
|
|
43
|
+
* Added new accessor methods to `Flowgraph`.
|
|
44
|
+
* Implemented lazy loading for the schema to significantly speed up loading from disk.
|
|
45
|
+
* Implemented multithreaded checks at the start of `.run()` to accelerate the determination of which nodes need to be re-run.
|
|
46
|
+
* Optimized runtime handling of `.active_*` attributes to avoid excessive copying.
|
|
47
|
+
* Corrected file upload behavior for the remote runner.
|
|
48
|
+
|
|
49
|
+
* Tools:
|
|
50
|
+
|
|
51
|
+
* klayout: Fixed the screenshot task to ensure it can be correctly inserted into a flowgraph.
|
|
52
|
+
|
|
53
|
+
|
|
11
54
|
SiliconCompiler 0.35.2 (2025-10-28)
|
|
12
55
|
=========================================
|
|
13
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.35.
|
|
3
|
+
Version: 0.35.4
|
|
4
4
|
Summary: A compiler framework that automates translation from source code to silicon.
|
|
5
5
|
Author: Zero ASIC
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
20
|
Classifier: Operating System :: POSIX :: Linux
|
|
20
21
|
Classifier: Operating System :: MacOS
|
|
21
22
|
Classifier: Operating System :: Microsoft :: Windows
|
|
@@ -37,7 +38,7 @@ Requires-Dist: PyYAML<7.0.0,>=6.0.0
|
|
|
37
38
|
Requires-Dist: GitPython<3.2,>=3.1.44
|
|
38
39
|
Requires-Dist: PyGithub<2.9.0,>=2.8.0
|
|
39
40
|
Requires-Dist: urllib3>=1.26.0
|
|
40
|
-
Requires-Dist: lambdapdk>=0.2.
|
|
41
|
+
Requires-Dist: lambdapdk>=0.2.4
|
|
41
42
|
Requires-Dist: fasteners>=0.20
|
|
42
43
|
Requires-Dist: pandas>=1.1.5
|
|
43
44
|
Requires-Dist: psutil>=5.8.0
|
|
@@ -60,7 +61,7 @@ Requires-Dist: responses==0.25.8; extra == "test"
|
|
|
60
61
|
Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
61
62
|
Provides-Extra: lint
|
|
62
63
|
Requires-Dist: flake8==7.3.0; extra == "lint"
|
|
63
|
-
Requires-Dist: tclint==0.6.
|
|
64
|
+
Requires-Dist: tclint==0.6.2; extra == "lint"
|
|
64
65
|
Requires-Dist: codespell==2.4.1; extra == "lint"
|
|
65
66
|
Provides-Extra: docs
|
|
66
67
|
Requires-Dist: Sphinx<8.3,>=7.4; extra == "docs"
|
|
@@ -102,7 +103,7 @@ SiliconCompiler is a modular hardware build system ("make for silicon"). The pro
|
|
|
102
103
|
# Getting Started
|
|
103
104
|
|
|
104
105
|
SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and
|
|
105
|
-
Linux platforms. For working Python 3.9-3.
|
|
106
|
+
Linux platforms. For working Python 3.9-3.14 environment, just use pip.
|
|
106
107
|
|
|
107
108
|
```sh
|
|
108
109
|
pip install --upgrade siliconcompiler
|
|
@@ -29,7 +29,7 @@ SiliconCompiler is a modular hardware build system ("make for silicon"). The pro
|
|
|
29
29
|
# Getting Started
|
|
30
30
|
|
|
31
31
|
SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and
|
|
32
|
-
Linux platforms. For working Python 3.9-3.
|
|
32
|
+
Linux platforms. For working Python 3.9-3.14 environment, just use pip.
|
|
33
33
|
|
|
34
34
|
```sh
|
|
35
35
|
pip install --upgrade siliconcompiler
|
|
@@ -21,6 +21,7 @@ classifiers = [
|
|
|
21
21
|
"Programming Language :: Python :: 3.11",
|
|
22
22
|
"Programming Language :: Python :: 3.12",
|
|
23
23
|
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Programming Language :: Python :: 3.14",
|
|
24
25
|
"Operating System :: POSIX :: Linux",
|
|
25
26
|
"Operating System :: MacOS",
|
|
26
27
|
"Operating System :: Microsoft :: Windows",
|
|
@@ -44,7 +45,7 @@ dependencies = [
|
|
|
44
45
|
"PyGithub >= 2.8.0, < 2.9.0",
|
|
45
46
|
"urllib3 >= 1.26.0", # Required for PyGithub
|
|
46
47
|
|
|
47
|
-
"lambdapdk >= 0.2.
|
|
48
|
+
"lambdapdk >= 0.2.4",
|
|
48
49
|
|
|
49
50
|
"fasteners >= 0.20",
|
|
50
51
|
"pandas >= 1.1.5",
|
|
@@ -111,7 +112,7 @@ test = [
|
|
|
111
112
|
]
|
|
112
113
|
lint = [
|
|
113
114
|
"flake8 == 7.3.0",
|
|
114
|
-
"tclint == 0.6.
|
|
115
|
+
"tclint == 0.6.2",
|
|
115
116
|
"codespell == 2.4.1"
|
|
116
117
|
]
|
|
117
118
|
docs = [
|
|
@@ -156,7 +157,9 @@ filterwarnings = [
|
|
|
156
157
|
'ignore:The distutils\.sysconfig module is deprecated, use sysconfig instead',
|
|
157
158
|
'ignore:The distutils package is deprecated and slated for removal in Python 3\.12',
|
|
158
159
|
'ignore:Creating a LegacyVersion has been deprecated and will be removed in the next major release',
|
|
159
|
-
'ignore:.* is multi-threaded, use of fork\(\) may lead to deadlocks in the child.:DeprecationWarning'
|
|
160
|
+
'ignore:.* is multi-threaded, use of fork\(\) may lead to deadlocks in the child.:DeprecationWarning',
|
|
161
|
+
'ignore:This function is deprecated and will be removed in a future version, use cls\.find_task instead:DeprecationWarning',
|
|
162
|
+
'ignore:Python 3\.14 will, by default, filter extracted tar archives and reject files or modify their metadata\. Use the filter argument to control this behavior\.:DeprecationWarning'
|
|
160
163
|
]
|
|
161
164
|
|
|
162
165
|
[tool.tclint]
|
|
@@ -72,6 +72,21 @@ To run a testcase, use:
|
|
|
72
72
|
if not issue.get("cmdarg", "run"):
|
|
73
73
|
project: Project = Project.from_manifest(filepath=issue.get("cmdarg", "cfg"))
|
|
74
74
|
|
|
75
|
+
# Determine abs path for build dir
|
|
76
|
+
builddir = project.option.get_builddir()
|
|
77
|
+
if isinstance(builddir, str) and not os.path.isabs(builddir):
|
|
78
|
+
builddirname = os.path.basename(builddir)
|
|
79
|
+
fullpath = os.path.dirname(os.path.abspath(issue.get("cmdarg", "cfg")))
|
|
80
|
+
while True:
|
|
81
|
+
if os.path.basename(fullpath) == builddirname:
|
|
82
|
+
project.option.set_builddir(fullpath)
|
|
83
|
+
break
|
|
84
|
+
parent = os.path.dirname(fullpath)
|
|
85
|
+
if parent == fullpath:
|
|
86
|
+
# Reached filesystem root without finding a match
|
|
87
|
+
break
|
|
88
|
+
fullpath = parent
|
|
89
|
+
|
|
75
90
|
if issue.get("arg", "step"):
|
|
76
91
|
project.set("arg", "step", issue.get("arg", "step"))
|
|
77
92
|
if issue.get("arg", "index"):
|
|
@@ -143,8 +158,9 @@ To run a testcase, use:
|
|
|
143
158
|
|
|
144
159
|
# Modify run environment to point to extracted files
|
|
145
160
|
builddir_key = ['option', 'builddir']
|
|
146
|
-
new_builddir =
|
|
147
|
-
|
|
161
|
+
new_builddir = os.path.abspath(
|
|
162
|
+
os.path.join(test_dir, f"{os.path.basename(project.get(*builddir_key))}"))
|
|
163
|
+
project.logger.info(f"Changing [{','.join(builddir_key)}] to '{new_builddir}'")
|
|
148
164
|
project.set(*builddir_key, new_builddir)
|
|
149
165
|
|
|
150
166
|
# Run task
|
|
@@ -12,8 +12,8 @@ Python without the need for complex boilerplate code.
|
|
|
12
12
|
"""
|
|
13
13
|
import argparse
|
|
14
14
|
import sys
|
|
15
|
+
import tempfile
|
|
15
16
|
|
|
16
|
-
import importlib.util
|
|
17
17
|
import os.path
|
|
18
18
|
|
|
19
19
|
from typing import Union, Tuple, Optional, Dict
|
|
@@ -29,7 +29,7 @@ from siliconcompiler.schema import utils
|
|
|
29
29
|
__default_source_file = "make.py"
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
def __process_file(path: Union[Path, str]) -> Tuple[Dict, Optional[str], Optional[str]]:
|
|
32
|
+
def __process_file(path: Union[Path, str], dir: str) -> Tuple[Dict, Optional[str], Optional[str]]:
|
|
33
33
|
"""
|
|
34
34
|
Dynamically loads a Python module and inspects it for runnable targets.
|
|
35
35
|
|
|
@@ -54,16 +54,18 @@ def __process_file(path: Union[Path, str]) -> Tuple[Dict, Optional[str], Optiona
|
|
|
54
54
|
if not os.path.exists(path):
|
|
55
55
|
return {}, None, None
|
|
56
56
|
|
|
57
|
+
mod_name, _ = os.path.splitext(os.path.basename(path))
|
|
58
|
+
|
|
57
59
|
# Dynamically load the specified file as a Python module.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
sys.modules[mod_name] = make
|
|
62
|
-
# Temporarily add CWD to path to allow the makefile to import local modules.
|
|
63
|
-
syspath = sys.path.copy()
|
|
60
|
+
with open(os.path.join(dir, "sc_module_load.py"), "w") as f:
|
|
61
|
+
f.write(f"import {mod_name} as make\n")
|
|
62
|
+
|
|
64
63
|
sys.path.insert(0, os.getcwd())
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
sys.path.insert(0, os.path.dirname(path))
|
|
65
|
+
|
|
66
|
+
# Load newly created file
|
|
67
|
+
import sc_module_load
|
|
68
|
+
make = sc_module_load.make
|
|
67
69
|
|
|
68
70
|
# Inspect the module for public functions to treat as targets.
|
|
69
71
|
args = {}
|
|
@@ -172,100 +174,104 @@ To run a target with arguments, use:
|
|
|
172
174
|
print(f"Error: Unable to change directory to {source_dir}")
|
|
173
175
|
return 1
|
|
174
176
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if module_help:
|
|
180
|
-
description += f"\n\n{module_help}\n\n"
|
|
181
|
-
description += "-----------------------------------------------------------"
|
|
182
|
-
|
|
183
|
-
# --- Set up the main argument parser ---
|
|
184
|
-
parser = argparse.ArgumentParser(
|
|
185
|
-
progname,
|
|
186
|
-
description=description,
|
|
187
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
188
|
-
|
|
189
|
-
parser.add_argument(
|
|
190
|
-
'--file', '-f',
|
|
191
|
-
metavar='<file>',
|
|
192
|
-
help=f'Use file as makefile, default is {__default_source_file}')
|
|
193
|
-
parser.add_argument(
|
|
194
|
-
'--directory', '-C',
|
|
195
|
-
metavar='<directory>',
|
|
196
|
-
help='Change to directory <directory> before reading the makefile.')
|
|
197
|
-
parser.add_argument(
|
|
198
|
-
'--version', '-v',
|
|
199
|
-
action='version',
|
|
200
|
-
version=f"%(prog)s {version}")
|
|
201
|
-
|
|
202
|
-
# --- Create subparsers for each discovered target ---
|
|
203
|
-
targetparsers = parser.add_subparsers(
|
|
204
|
-
dest='target',
|
|
205
|
-
metavar='<target>',
|
|
206
|
-
help='Target to execute')
|
|
207
|
-
|
|
208
|
-
for arg, info in make_args.items():
|
|
209
|
-
subparse = targetparsers.add_parser(
|
|
210
|
-
arg,
|
|
211
|
-
description=info['full_help'],
|
|
212
|
-
help=info['help'],
|
|
213
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
177
|
+
with tempfile.TemporaryDirectory(prefix="smake") as dir:
|
|
178
|
+
# Add temp dir to path
|
|
179
|
+
sys.path.insert(0, dir)
|
|
214
180
|
|
|
215
|
-
#
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if "default" not in subarg_info:
|
|
219
|
-
add_args["required"] = True
|
|
220
|
-
else:
|
|
221
|
-
add_args["default"] = subarg_info["default"]
|
|
222
|
-
|
|
223
|
-
# Handle boolean arguments correctly.
|
|
224
|
-
arg_type = subarg_info["type"]
|
|
225
|
-
if arg_type is bool:
|
|
226
|
-
# Use a custom string-to-boolean converter.
|
|
227
|
-
def str2bool(v):
|
|
228
|
-
val = str(v).lower()
|
|
229
|
-
if val in ('y', 'yes', 't', 'true', 'on', '1'):
|
|
230
|
-
return True
|
|
231
|
-
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
|
|
232
|
-
return False
|
|
233
|
-
raise ValueError(f"invalid truth value {val!r}")
|
|
234
|
-
arg_type = str2bool
|
|
235
|
-
|
|
236
|
-
subparse.add_argument(
|
|
237
|
-
f'--{subarg}',
|
|
238
|
-
dest=f'sub_{subarg}',
|
|
239
|
-
metavar=f'<{subarg}>',
|
|
240
|
-
type=arg_type,
|
|
241
|
-
**add_args)
|
|
242
|
-
|
|
243
|
-
# --- Parse arguments and execute the target ---
|
|
244
|
-
args = parser.parse_args()
|
|
245
|
-
target = args.target or default_arg
|
|
246
|
-
|
|
247
|
-
if not target:
|
|
248
|
-
if make_args:
|
|
249
|
-
print("Error: No target specified and no default target found.")
|
|
250
|
-
parser.print_help()
|
|
251
|
-
else:
|
|
252
|
-
print(f"Error: Unable to load makefile '{source_file}'.")
|
|
253
|
-
return 1
|
|
181
|
+
# --- Process the source file to discover targets ---
|
|
182
|
+
make_args, default_arg, module_help = __process_file(source_file, dir) \
|
|
183
|
+
if source_file else ({}, None, None)
|
|
254
184
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
185
|
+
if module_help:
|
|
186
|
+
description += f"\n\n{module_help}\n\n"
|
|
187
|
+
description += "-----------------------------------------------------------"
|
|
258
188
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
if arg_key in args_vars and args_vars[arg_key] is not None:
|
|
265
|
-
call_args[arg] = args_vars[arg_key]
|
|
189
|
+
# --- Set up the main argument parser ---
|
|
190
|
+
parser = argparse.ArgumentParser(
|
|
191
|
+
progname,
|
|
192
|
+
description=description,
|
|
193
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
266
194
|
|
|
267
|
-
|
|
268
|
-
|
|
195
|
+
parser.add_argument(
|
|
196
|
+
'--file', '-f',
|
|
197
|
+
metavar='<file>',
|
|
198
|
+
help=f'Use file as makefile, default is {__default_source_file}')
|
|
199
|
+
parser.add_argument(
|
|
200
|
+
'--directory', '-C',
|
|
201
|
+
metavar='<directory>',
|
|
202
|
+
help='Change to directory <directory> before reading the makefile.')
|
|
203
|
+
parser.add_argument(
|
|
204
|
+
'--version', '-v',
|
|
205
|
+
action='version',
|
|
206
|
+
version=f"%(prog)s {version}")
|
|
207
|
+
|
|
208
|
+
# --- Create subparsers for each discovered target ---
|
|
209
|
+
targetparsers = parser.add_subparsers(
|
|
210
|
+
dest='target',
|
|
211
|
+
metavar='<target>',
|
|
212
|
+
help='Target to execute')
|
|
213
|
+
|
|
214
|
+
for arg, info in make_args.items():
|
|
215
|
+
subparse = targetparsers.add_parser(
|
|
216
|
+
arg,
|
|
217
|
+
description=info['full_help'],
|
|
218
|
+
help=info['help'],
|
|
219
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
220
|
+
|
|
221
|
+
# Add arguments for each parameter of the target function.
|
|
222
|
+
for subarg, subarg_info in info['args'].items():
|
|
223
|
+
add_args = {}
|
|
224
|
+
if "default" not in subarg_info:
|
|
225
|
+
add_args["required"] = True
|
|
226
|
+
else:
|
|
227
|
+
add_args["default"] = subarg_info["default"]
|
|
228
|
+
|
|
229
|
+
# Handle boolean arguments correctly.
|
|
230
|
+
arg_type = subarg_info["type"]
|
|
231
|
+
if arg_type is bool:
|
|
232
|
+
# Use a custom string-to-boolean converter.
|
|
233
|
+
def str2bool(v):
|
|
234
|
+
val = str(v).lower()
|
|
235
|
+
if val in ('y', 'yes', 't', 'true', 'on', '1'):
|
|
236
|
+
return True
|
|
237
|
+
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
|
|
238
|
+
return False
|
|
239
|
+
raise ValueError(f"invalid truth value {val!r}")
|
|
240
|
+
arg_type = str2bool
|
|
241
|
+
|
|
242
|
+
subparse.add_argument(
|
|
243
|
+
f'--{subarg}',
|
|
244
|
+
dest=f'sub_{subarg}',
|
|
245
|
+
metavar=f'<{subarg}>',
|
|
246
|
+
type=arg_type,
|
|
247
|
+
**add_args)
|
|
248
|
+
|
|
249
|
+
# --- Parse arguments and execute the target ---
|
|
250
|
+
args = parser.parse_args()
|
|
251
|
+
target = args.target or default_arg
|
|
252
|
+
|
|
253
|
+
if not target:
|
|
254
|
+
if make_args:
|
|
255
|
+
print("Error: No target specified and no default target found.")
|
|
256
|
+
parser.print_help()
|
|
257
|
+
else:
|
|
258
|
+
print(f"Error: Unable to load makefile '{source_file}'.")
|
|
259
|
+
return 1
|
|
260
|
+
|
|
261
|
+
if target not in make_args:
|
|
262
|
+
print(f"Error: Target '{target}' not found in '{source_file}'.")
|
|
263
|
+
return 1
|
|
264
|
+
|
|
265
|
+
# Prepare arguments to pass to the target function.
|
|
266
|
+
call_args = {}
|
|
267
|
+
args_vars = vars(args)
|
|
268
|
+
for arg in make_args[target]["args"]:
|
|
269
|
+
arg_key = f'sub_{arg}'
|
|
270
|
+
if arg_key in args_vars and args_vars[arg_key] is not None:
|
|
271
|
+
call_args[arg] = args_vars[arg_key]
|
|
272
|
+
|
|
273
|
+
# Call the selected function with its arguments.
|
|
274
|
+
make_args[target]["function"](**call_args)
|
|
269
275
|
|
|
270
276
|
return 0
|
|
271
277
|
|
|
@@ -6,6 +6,7 @@ from typing import Tuple, List, Optional, Union, Dict, Iterable
|
|
|
6
6
|
from siliconcompiler.schema import NamedSchema, EditableSchema, Parameter, Scope, BaseSchema
|
|
7
7
|
from siliconcompiler.schema.utils import trim
|
|
8
8
|
from siliconcompiler import NodeStatus, utils
|
|
9
|
+
from siliconcompiler.utils.paths import cwdirsafe
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
class Criteria(NamedSchema):
|
|
@@ -328,7 +329,7 @@ class Checklist(NamedSchema):
|
|
|
328
329
|
|
|
329
330
|
schema_root = self._parent(root=True)
|
|
330
331
|
logger = getattr(schema_root, "logger", None)
|
|
331
|
-
cwd =
|
|
332
|
+
cwd = cwdirsafe(schema_root)
|
|
332
333
|
|
|
333
334
|
assert hasattr(schema_root, "history"), f"{schema_root}"
|
|
334
335
|
|
{siliconcompiler-0.35.2 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_component.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Tuple, Union
|
|
1
|
+
from typing import Tuple, Union, Optional
|
|
2
2
|
|
|
3
3
|
from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, \
|
|
4
4
|
PerNode, Scope
|
|
@@ -13,7 +13,7 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
13
13
|
keepout halo, and rotation.
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
def __init__(self, name: str = None):
|
|
16
|
+
def __init__(self, name: Optional[str] = None):
|
|
17
17
|
super().__init__()
|
|
18
18
|
self.set_name(name)
|
|
19
19
|
|
|
@@ -113,7 +113,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
113
113
|
270 deg ccw
|
|
114
114
|
"""))
|
|
115
115
|
|
|
116
|
-
def set_placement(self, x: float, y: float,
|
|
116
|
+
def set_placement(self, x: float, y: float,
|
|
117
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
117
118
|
"""
|
|
118
119
|
Sets the placement constraint for the component.
|
|
119
120
|
|
|
@@ -134,7 +135,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
134
135
|
raise TypeError("y must be a number")
|
|
135
136
|
return self.set("placement", (x, y), step=step, index=index)
|
|
136
137
|
|
|
137
|
-
def get_placement(self, step: str = None, index: Union[str, int] = None)
|
|
138
|
+
def get_placement(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
139
|
+
-> Tuple[float, float]:
|
|
138
140
|
"""
|
|
139
141
|
Retrieves the current placement constraint of the component.
|
|
140
142
|
|
|
@@ -148,7 +150,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
148
150
|
"""
|
|
149
151
|
return self.get("placement", step=step, index=index)
|
|
150
152
|
|
|
151
|
-
def set_partname(self, name: str,
|
|
153
|
+
def set_partname(self, name: str,
|
|
154
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
152
155
|
"""
|
|
153
156
|
Sets the part name (cell name) constraint for the component.
|
|
154
157
|
|
|
@@ -165,7 +168,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
165
168
|
raise ValueError("a partname is required")
|
|
166
169
|
return self.set("partname", name, step=step, index=index)
|
|
167
170
|
|
|
168
|
-
def get_partname(self, step: str = None, index: Union[str, int] = None)
|
|
171
|
+
def get_partname(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
172
|
+
-> str:
|
|
169
173
|
"""
|
|
170
174
|
Retrieves the current part name (cell name) constraint of the component.
|
|
171
175
|
|
|
@@ -178,7 +182,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
178
182
|
"""
|
|
179
183
|
return self.get("partname", step=step, index=index)
|
|
180
184
|
|
|
181
|
-
def set_halo(self, x: float, y: float,
|
|
185
|
+
def set_halo(self, x: float, y: float,
|
|
186
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
182
187
|
"""
|
|
183
188
|
Sets the placement keepout halo constraint around the component.
|
|
184
189
|
|
|
@@ -204,7 +209,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
204
209
|
raise ValueError("y must be a positive number")
|
|
205
210
|
return self.set("halo", (x, y), step=step, index=index)
|
|
206
211
|
|
|
207
|
-
def get_halo(self, step: str = None, index: Union[str, int] = None)
|
|
212
|
+
def get_halo(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
213
|
+
-> Tuple[float, float]:
|
|
208
214
|
"""
|
|
209
215
|
Retrieves the current placement keepout halo constraint of the component.
|
|
210
216
|
|
|
@@ -218,7 +224,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
218
224
|
"""
|
|
219
225
|
return self.get("halo", step=step, index=index)
|
|
220
226
|
|
|
221
|
-
def set_rotation(self, rotation: str,
|
|
227
|
+
def set_rotation(self, rotation: str,
|
|
228
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
222
229
|
"""
|
|
223
230
|
Sets the rotation constraint for the component.
|
|
224
231
|
|
|
@@ -231,7 +238,8 @@ class ASICComponentConstraint(NamedSchema):
|
|
|
231
238
|
"""
|
|
232
239
|
return self.set("rotation", rotation, step=step, index=index)
|
|
233
240
|
|
|
234
|
-
def get_rotation(self, step: str = None, index: Union[str, int] = None)
|
|
241
|
+
def get_rotation(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
242
|
+
-> str:
|
|
235
243
|
"""
|
|
236
244
|
Retrieves the current rotation constraint of the component.
|
|
237
245
|
|
|
@@ -286,7 +294,7 @@ class ASICComponentConstraints(BaseSchema):
|
|
|
286
294
|
|
|
287
295
|
EditableSchema(self).insert(component.name, component, clobber=True)
|
|
288
296
|
|
|
289
|
-
def get_component(self, component: str = None):
|
|
297
|
+
def get_component(self, component: Optional[str] = None):
|
|
290
298
|
"""
|
|
291
299
|
Retrieves one or all component constraints from the configuration.
|
|
292
300
|
|
|
@@ -350,6 +358,36 @@ class ASICComponentConstraints(BaseSchema):
|
|
|
350
358
|
self.add_component(constraint)
|
|
351
359
|
return constraint
|
|
352
360
|
|
|
361
|
+
def copy_component(self, component: str, name: str, insert: bool = True) \
|
|
362
|
+
-> ASICComponentConstraint:
|
|
363
|
+
"""
|
|
364
|
+
Copies an existing component constraint, renames it, and optionally adds it to the design.
|
|
365
|
+
|
|
366
|
+
This method retrieves the component constraint identified by ``component``, creates a
|
|
367
|
+
deep copy of it, and renames the copy to ``name``. If ``insert`` is True,
|
|
368
|
+
the new constraint is immediately added to the configuration.
|
|
369
|
+
|
|
370
|
+
Args:
|
|
371
|
+
component (str): The name of the existing component constraint to be copied.
|
|
372
|
+
name (str): The name to assign to the new copied constraint.
|
|
373
|
+
insert (bool, optional): Whether to add the newly created constraint
|
|
374
|
+
to the configuration. Defaults to True.
|
|
375
|
+
|
|
376
|
+
Returns:
|
|
377
|
+
ASICComponentConstraint: The newly created copy of the component constraint.
|
|
378
|
+
|
|
379
|
+
Raises:
|
|
380
|
+
LookupError: If the source component constraint specified by ``component`` does not
|
|
381
|
+
exist.
|
|
382
|
+
"""
|
|
383
|
+
constraint = EditableSchema(self.get_component(component)).copy()
|
|
384
|
+
EditableSchema(constraint).rename(name)
|
|
385
|
+
if insert:
|
|
386
|
+
if self.valid(name):
|
|
387
|
+
raise ValueError(f"{name} already exists")
|
|
388
|
+
self.add_component(constraint)
|
|
389
|
+
return constraint
|
|
390
|
+
|
|
353
391
|
def remove_component(self, component: str) -> bool:
|
|
354
392
|
"""
|
|
355
393
|
Removes a component constraint from the design configuration.
|