siliconcompiler 0.35.3__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.3 → siliconcompiler-0.35.4}/Changes +26 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/PKG-INFO +4 -3
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/README.md +1 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/pyproject.toml +5 -2
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_issue.py +18 -2
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/checklist.py +2 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_component.py +49 -11
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_floorplan.py +23 -21
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_pins.py +55 -17
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_timing.py +53 -22
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/fpga_timing.py +5 -6
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/replay.sh.j2 +27 -14
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/package/__init__.py +17 -6
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/project.py +9 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/docker.py +24 -25
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/scheduler.py +82 -68
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/schedulernode.py +133 -20
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/slurm.py +113 -29
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/taskscheduler.py +0 -7
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/editableschema.py +29 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/parametervalue.py +14 -2
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/option.py +82 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/pathschema.py +7 -13
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tool.py +47 -25
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/__init__.py +3 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +1 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_export.py +1 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +1 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_show.py +1 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +3 -4
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/__init__.py +27 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/_apr.py +81 -4
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +1 -0
- {siliconcompiler-0.35.3 → 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.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/repair_design.py +1 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/repair_timing.py +1 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +1 -1
- {siliconcompiler-0.35.3 → 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.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +1 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +4 -6
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +1 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +1 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +2 -4
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/__init__.py +1 -1
- {siliconcompiler-0.35.3 → 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.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +10 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/__init__.py +28 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +1 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +40 -4
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +15 -5
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/syn_asic.py +42 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/syn_fpga.py +8 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/_tools.json +6 -6
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/__init__.py +243 -51
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/curation.py +89 -56
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/issue.py +6 -1
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/multiprocessing.py +35 -2
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/paths.py +21 -0
- siliconcompiler-0.35.4/siliconcompiler/utils/settings.py +141 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/PKG-INFO +4 -3
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/SOURCES.txt +3 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/requires.txt +1 -1
- siliconcompiler-0.35.3/siliconcompiler/tools/openroad/init_floorplan.py +0 -69
- siliconcompiler-0.35.3/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -2
- siliconcompiler-0.35.3/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -2
- siliconcompiler-0.35.3/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -4
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/.dockerignore +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/.flake8 +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/.gitattributes +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/.gitignore +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/LICENSE +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/MANIFEST.in +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/SECURITY.md +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/scripts/.gitignore +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/scripts/methods.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/scripts/requirements.txt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/setup.cfg +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_install.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/asic.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/heartbeat.sdc +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/email/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/email/general.j2 +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/issue/README.txt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/issue/run.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/demos/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/demos/asic_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/demos/fpga_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/design.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/fpga.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/library.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/metrics/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/metrics/asic.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/metrics/fpga.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/package/git.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/package/github.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/package/https.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/pdk.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/cli/board.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/state.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/error.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/_metadata.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/baseschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/docs/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/docs/schemagen.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/docs/utils.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/docschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/journal.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/namedschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/parameter.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/parametertype.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/safeschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/cmdlineschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/dependencyschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/filesetschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/metric.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/packageschema.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schema_support/record.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/schematic.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/filter.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/importfiles.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/export.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/surfer/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/surfer/show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/logging.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/utils/units.py +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,32 @@ 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
|
+
|
|
11
37
|
SiliconCompiler 0.35.3 (2025-11-10)
|
|
12
38
|
=========================================
|
|
13
39
|
|
|
@@ -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
|
|
@@ -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",
|
|
@@ -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
|
|
@@ -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.3 → 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.
|
{siliconcompiler-0.35.3 → siliconcompiler-0.35.4}/siliconcompiler/constraints/asic_floorplan.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Union, List, Tuple
|
|
1
|
+
from typing import Union, List, Tuple, Optional
|
|
2
2
|
|
|
3
3
|
from siliconcompiler.schema import BaseSchema, EditableSchema, Parameter, PerNode, Scope
|
|
4
4
|
|
|
@@ -99,9 +99,9 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
99
99
|
|
|
100
100
|
def set_density(self,
|
|
101
101
|
density: float,
|
|
102
|
-
aspectratio: float = None,
|
|
103
|
-
coremargin: float = None,
|
|
104
|
-
step: str = None, index: Union[str, int] = None):
|
|
102
|
+
aspectratio: Optional[float] = None,
|
|
103
|
+
coremargin: Optional[float] = None,
|
|
104
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
105
105
|
"""
|
|
106
106
|
Sets the target layout density.
|
|
107
107
|
|
|
@@ -145,7 +145,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
145
145
|
params.append(self.set_coremargin(coremargin, step=step, index=index))
|
|
146
146
|
return params
|
|
147
147
|
|
|
148
|
-
def get_density(self, step: str = None, index: Union[str, int] = None)
|
|
148
|
+
def get_density(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
149
|
+
-> float:
|
|
149
150
|
"""
|
|
150
151
|
Retrieves the current target layout density.
|
|
151
152
|
|
|
@@ -162,7 +163,7 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
162
163
|
|
|
163
164
|
def set_aspectratio(self,
|
|
164
165
|
aspectratio: float,
|
|
165
|
-
step: str = None, index: Union[str, int] = None):
|
|
166
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
166
167
|
"""
|
|
167
168
|
Sets the layout aspect ratio.
|
|
168
169
|
|
|
@@ -192,8 +193,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
192
193
|
|
|
193
194
|
return self.set("aspectratio", aspectratio, step=step, index=index)
|
|
194
195
|
|
|
195
|
-
def get_aspectratio(self,
|
|
196
|
-
|
|
196
|
+
def get_aspectratio(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
197
|
+
-> float:
|
|
197
198
|
"""
|
|
198
199
|
Retrieves the current layout aspect ratio.
|
|
199
200
|
|
|
@@ -210,7 +211,7 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
210
211
|
|
|
211
212
|
def set_coremargin(self,
|
|
212
213
|
coremargin: float,
|
|
213
|
-
step: str = None, index: Union[str, int] = None):
|
|
214
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
214
215
|
"""
|
|
215
216
|
Sets the core margin.
|
|
216
217
|
|
|
@@ -240,8 +241,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
240
241
|
|
|
241
242
|
return self.set("coremargin", coremargin, step=step, index=index)
|
|
242
243
|
|
|
243
|
-
def get_coremargin(self,
|
|
244
|
-
|
|
244
|
+
def get_coremargin(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
245
|
+
-> float:
|
|
245
246
|
"""
|
|
246
247
|
Retrieves the current core margin.
|
|
247
248
|
|
|
@@ -259,8 +260,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
259
260
|
def set_diearea_rectangle(self,
|
|
260
261
|
height: float,
|
|
261
262
|
width: float,
|
|
262
|
-
coremargin: Union[float, Tuple[float, float]] = None,
|
|
263
|
-
step: str = None, index: Union[str, int] = None):
|
|
263
|
+
coremargin: Optional[Union[float, Tuple[float, float]]] = None,
|
|
264
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
264
265
|
"""
|
|
265
266
|
Sets the die area as a rectangle with its bottom-left corner at (0,0).
|
|
266
267
|
|
|
@@ -311,7 +312,7 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
311
312
|
dieheight: float,
|
|
312
313
|
diewidth: float,
|
|
313
314
|
coremargin: Union[float, Tuple[float, float]],
|
|
314
|
-
step: str = None, index: Union[str, int] = None):
|
|
315
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
315
316
|
"""
|
|
316
317
|
Sets the core area as a rectangle within a die area, based on margins.
|
|
317
318
|
|
|
@@ -378,7 +379,7 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
378
379
|
|
|
379
380
|
def set_diearea(self,
|
|
380
381
|
points: List[Tuple[float, float]],
|
|
381
|
-
step: str = None, index: Union[str, int] = None):
|
|
382
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
382
383
|
"""
|
|
383
384
|
Sets the die area using a list of points defining its boundary.
|
|
384
385
|
|
|
@@ -396,8 +397,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
396
397
|
"""
|
|
397
398
|
return self.set("diearea", points, step=step, index=index)
|
|
398
399
|
|
|
399
|
-
def get_diearea(self,
|
|
400
|
-
|
|
400
|
+
def get_diearea(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
401
|
+
-> List[Tuple[float, float]]:
|
|
401
402
|
"""
|
|
402
403
|
Retrieves the current die area definition.
|
|
403
404
|
|
|
@@ -415,7 +416,7 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
415
416
|
|
|
416
417
|
def set_corearea(self,
|
|
417
418
|
points: List[Tuple[float, float]],
|
|
418
|
-
step: str = None, index: Union[str, int] = None):
|
|
419
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
419
420
|
"""
|
|
420
421
|
Sets the core area using a list of points defining its boundary.
|
|
421
422
|
|
|
@@ -432,8 +433,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
432
433
|
"""
|
|
433
434
|
return self.set("corearea", points, step=step, index=index)
|
|
434
435
|
|
|
435
|
-
def get_corearea(self,
|
|
436
|
-
|
|
436
|
+
def get_corearea(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
437
|
+
-> List[Tuple[float, float]]:
|
|
437
438
|
"""
|
|
438
439
|
Retrieves the current core area definition.
|
|
439
440
|
|
|
@@ -449,7 +450,8 @@ class ASICAreaConstraint(BaseSchema):
|
|
|
449
450
|
"""
|
|
450
451
|
return self.get("corearea", step=step, index=index)
|
|
451
452
|
|
|
452
|
-
def calc_diearea(self, step: str = None, index: str = None)
|
|
453
|
+
def calc_diearea(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
454
|
+
-> float:
|
|
453
455
|
'''Calculates the area of a rectilinear die.
|
|
454
456
|
|
|
455
457
|
Uses the shoelace formula to calculate the design area from the (x,y)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Union, Tuple
|
|
1
|
+
from typing import Union, Tuple, Optional
|
|
2
2
|
|
|
3
3
|
from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, \
|
|
4
4
|
PerNode, Scope
|
|
@@ -13,7 +13,7 @@ class ASICPinConstraint(NamedSchema):
|
|
|
13
13
|
metal layer, and its relative position on the chip's side.
|
|
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
|
|
|
@@ -129,7 +129,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
129
129
|
same order number, the actual order is at the discretion of the
|
|
130
130
|
tool."""))
|
|
131
131
|
|
|
132
|
-
def set_width(self, width: float,
|
|
132
|
+
def set_width(self, width: float,
|
|
133
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
133
134
|
"""
|
|
134
135
|
Sets the width constraint for the pin.
|
|
135
136
|
|
|
@@ -149,7 +150,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
149
150
|
raise ValueError("width must be a positive value")
|
|
150
151
|
return self.set("width", width, step=step, index=index)
|
|
151
152
|
|
|
152
|
-
def get_width(self, step: str = None, index: Union[str, int] = None)
|
|
153
|
+
def get_width(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
154
|
+
-> float:
|
|
153
155
|
"""
|
|
154
156
|
Retrieves the current width constraint of the pin.
|
|
155
157
|
|
|
@@ -162,7 +164,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
162
164
|
"""
|
|
163
165
|
return self.get("width", step=step, index=index)
|
|
164
166
|
|
|
165
|
-
def set_length(self, length: float,
|
|
167
|
+
def set_length(self, length: float,
|
|
168
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
166
169
|
"""
|
|
167
170
|
Sets the length constraint for the pin.
|
|
168
171
|
|
|
@@ -182,7 +185,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
182
185
|
raise ValueError("length must be a positive value")
|
|
183
186
|
return self.set("length", length, step=step, index=index)
|
|
184
187
|
|
|
185
|
-
def get_length(self, step: str = None, index: Union[str, int] = None)
|
|
188
|
+
def get_length(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
189
|
+
-> float:
|
|
186
190
|
"""
|
|
187
191
|
Retrieves the current length constraint of the pin.
|
|
188
192
|
|
|
@@ -195,7 +199,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
195
199
|
"""
|
|
196
200
|
return self.get("length", step=step, index=index)
|
|
197
201
|
|
|
198
|
-
def set_placement(self, x: float, y: float,
|
|
202
|
+
def set_placement(self, x: float, y: float,
|
|
203
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
199
204
|
"""
|
|
200
205
|
Sets the placement constraint for the pin.
|
|
201
206
|
|
|
@@ -216,7 +221,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
216
221
|
raise TypeError("y must be a number")
|
|
217
222
|
return self.set("placement", (x, y), step=step, index=index)
|
|
218
223
|
|
|
219
|
-
def get_placement(self, step: str = None, index: Union[str, int] = None)
|
|
224
|
+
def get_placement(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
225
|
+
-> Tuple[float, float]:
|
|
220
226
|
"""
|
|
221
227
|
Retrieves the current placement constraint of the pin.
|
|
222
228
|
|
|
@@ -230,7 +236,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
230
236
|
"""
|
|
231
237
|
return self.get("placement", step=step, index=index)
|
|
232
238
|
|
|
233
|
-
def set_shape(self, shape: str,
|
|
239
|
+
def set_shape(self, shape: str,
|
|
240
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
234
241
|
"""
|
|
235
242
|
Sets the shape constraint for the pin.
|
|
236
243
|
|
|
@@ -243,7 +250,7 @@ class ASICPinConstraint(NamedSchema):
|
|
|
243
250
|
"""
|
|
244
251
|
return self.set("shape", shape, step=step, index=index)
|
|
245
252
|
|
|
246
|
-
def get_shape(self, step: str = None, index: Union[str, int] = None) -> str:
|
|
253
|
+
def get_shape(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) -> str:
|
|
247
254
|
"""
|
|
248
255
|
Retrieves the current shape constraint of the pin.
|
|
249
256
|
|
|
@@ -256,7 +263,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
256
263
|
"""
|
|
257
264
|
return self.get("shape", step=step, index=index)
|
|
258
265
|
|
|
259
|
-
def set_layer(self, layer: str,
|
|
266
|
+
def set_layer(self, layer: str,
|
|
267
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
260
268
|
"""
|
|
261
269
|
Sets the metal layer constraint for the pin.
|
|
262
270
|
|
|
@@ -269,7 +277,7 @@ class ASICPinConstraint(NamedSchema):
|
|
|
269
277
|
"""
|
|
270
278
|
return self.set("layer", layer, step=step, index=index)
|
|
271
279
|
|
|
272
|
-
def get_layer(self, step: str = None, index: Union[str, int] = None) -> str:
|
|
280
|
+
def get_layer(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) -> str:
|
|
273
281
|
"""
|
|
274
282
|
Retrieves the current metal layer constraint of the pin.
|
|
275
283
|
|
|
@@ -282,7 +290,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
282
290
|
"""
|
|
283
291
|
return self.get("layer", step=step, index=index)
|
|
284
292
|
|
|
285
|
-
def set_side(self, side: Union[int, str],
|
|
293
|
+
def set_side(self, side: Union[int, str],
|
|
294
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
286
295
|
"""
|
|
287
296
|
Sets the side constraint for the pin, indicating where it should be placed.
|
|
288
297
|
|
|
@@ -318,7 +327,7 @@ class ASICPinConstraint(NamedSchema):
|
|
|
318
327
|
|
|
319
328
|
return self.set("side", side, step=step, index=index)
|
|
320
329
|
|
|
321
|
-
def get_side(self, step: str = None, index: Union[str, int] = None) -> int:
|
|
330
|
+
def get_side(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) -> int:
|
|
322
331
|
"""
|
|
323
332
|
Retrieves the current side constraint of the pin.
|
|
324
333
|
|
|
@@ -331,7 +340,8 @@ class ASICPinConstraint(NamedSchema):
|
|
|
331
340
|
"""
|
|
332
341
|
return self.get("side", step=step, index=index)
|
|
333
342
|
|
|
334
|
-
def set_order(self, order: int,
|
|
343
|
+
def set_order(self, order: int,
|
|
344
|
+
step: Optional[str] = None, index: Optional[Union[str, int]] = None):
|
|
335
345
|
"""
|
|
336
346
|
Sets the relative order constraint for the pin on its assigned side.
|
|
337
347
|
|
|
@@ -343,7 +353,7 @@ class ASICPinConstraint(NamedSchema):
|
|
|
343
353
|
"""
|
|
344
354
|
return self.set("order", order, step=step, index=index)
|
|
345
355
|
|
|
346
|
-
def get_order(self, step: str = None, index: Union[str, int] = None) -> int:
|
|
356
|
+
def get_order(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) -> int:
|
|
347
357
|
"""
|
|
348
358
|
Retrieves the current order constraint of the pin.
|
|
349
359
|
|
|
@@ -398,7 +408,7 @@ class ASICPinConstraints(BaseSchema):
|
|
|
398
408
|
|
|
399
409
|
EditableSchema(self).insert(pin.name, pin, clobber=True)
|
|
400
410
|
|
|
401
|
-
def get_pinconstraint(self, pin: str = None):
|
|
411
|
+
def get_pinconstraint(self, pin: Optional[str] = None):
|
|
402
412
|
"""
|
|
403
413
|
Retrieves one or all pin constraints from the configuration.
|
|
404
414
|
|
|
@@ -461,6 +471,34 @@ class ASICPinConstraints(BaseSchema):
|
|
|
461
471
|
self.add_pinconstraint(constraint)
|
|
462
472
|
return constraint
|
|
463
473
|
|
|
474
|
+
def copy_pinconstraint(self, pin: str, name: str, insert: bool = True) -> ASICPinConstraint:
|
|
475
|
+
"""
|
|
476
|
+
Copies an existing pin constraint, renames it, and optionally adds it to the design.
|
|
477
|
+
|
|
478
|
+
This method retrieves the pin constraint identified by ``pin``, creates a
|
|
479
|
+
deep copy of it, and renames the copy to ``name``. If ``insert`` is True,
|
|
480
|
+
the new constraint is immediately added to the configuration.
|
|
481
|
+
|
|
482
|
+
Args:
|
|
483
|
+
pin (str): The name of the existing pin constraint to be copied.
|
|
484
|
+
name (str): The name to assign to the new copied constraint.
|
|
485
|
+
insert (bool, optional): Whether to add the newly created constraint
|
|
486
|
+
to the configuration. Defaults to True.
|
|
487
|
+
|
|
488
|
+
Returns:
|
|
489
|
+
ASICPinConstraint: The newly created copy of the pin constraint.
|
|
490
|
+
|
|
491
|
+
Raises:
|
|
492
|
+
LookupError: If the source pin constraint specified by ``pin`` does not exist.
|
|
493
|
+
"""
|
|
494
|
+
constraint = EditableSchema(self.get_pinconstraint(pin)).copy()
|
|
495
|
+
EditableSchema(constraint).rename(name)
|
|
496
|
+
if insert:
|
|
497
|
+
if self.valid(name):
|
|
498
|
+
raise ValueError(f"{name} already exists")
|
|
499
|
+
self.add_pinconstraint(constraint)
|
|
500
|
+
return constraint
|
|
501
|
+
|
|
464
502
|
def remove_pinconstraint(self, pin: str) -> bool:
|
|
465
503
|
"""
|
|
466
504
|
Removes a pin constraint from the design configuration.
|