siliconcompiler 0.35.4__tar.gz → 0.36.1__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.4 → siliconcompiler-0.36.1}/Changes +33 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/PKG-INFO +4 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/pyproject.toml +5 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/constraints/__init__.py +4 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/constraints/asic_timing.py +230 -38
- siliconcompiler-0.36.1/siliconcompiler/constraints/fpga_timing.py +384 -0
- siliconcompiler-0.36.1/siliconcompiler/constraints/timing_mode.py +82 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -6
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flowgraph.py +95 -42
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/generate_openroad_rcx.py +2 -2
- siliconcompiler-0.36.1/siliconcompiler/flows/highresscreenshotflow.py +37 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/library.py +2 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/package/__init__.py +39 -45
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/project.py +4 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/scheduler.py +64 -35
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/schedulernode.py +5 -2
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/slurm.py +7 -6
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/taskscheduler.py +19 -16
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/_metadata.py +1 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/namedschema.py +2 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/cmdlineschema.py +0 -3
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/dependencyschema.py +0 -6
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/record.py +4 -3
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tool.py +58 -27
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -6
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/chisel/convert.py +44 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/ghdl/convert.py +37 -2
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/icarus/compile.py +14 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/keplerformal/__init__.py +7 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/keplerformal/lec.py +112 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/drc.py +14 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/export.py +40 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/operations.py +40 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/klayout/screenshot.py +112 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/scripts/klayout_export.py +10 -40
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/scripts/klayout_show.py +4 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +13 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/montage/tile.py +26 -12
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/__init__.py +11 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/_apr.py +780 -11
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/antenna_repair.py +26 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/global_placement.py +123 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/global_route.py +15 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/init_floorplan.py +19 -2
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/macro_placement.py +385 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/power_grid.py +43 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/power_grid_analysis.py +1 -1
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/rcx_bench.py +57 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/rcx_extract.py +14 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/rdlroute.py +14 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/repair_design.py +90 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/repair_timing.py +109 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/screenshot.py +70 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +8 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +54 -15
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +6 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +4 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +14 -5
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +2 -2
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +6 -3
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +1 -1
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +11 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +16 -12
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/write_data.py +78 -2
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +2 -2
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +2 -2
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +12 -14
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/timing.py +42 -3
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/slang/elaborate.py +16 -1
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/surelog/parse.py +54 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/verilator/compile.py +251 -0
- siliconcompiler-0.36.1/siliconcompiler/tools/vivado/syn_fpga.py +51 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/route.py +40 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/xdm/convert.py +14 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/xyce/simulate.py +26 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/lec_asic.py +13 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/syn_asic.py +332 -3
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/syn_fpga.py +32 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/_tools.json +9 -4
- siliconcompiler-0.36.1/siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +72 -0
- siliconcompiler-0.36.1/siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +72 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/multiprocessing.py +11 -0
- siliconcompiler-0.36.1/siliconcompiler/utils/settings.py +162 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler.egg-info/PKG-INFO +4 -4
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler.egg-info/SOURCES.txt +6 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler.egg-info/requires.txt +3 -3
- siliconcompiler-0.35.4/siliconcompiler/constraints/fpga_timing.py +0 -189
- siliconcompiler-0.35.4/siliconcompiler/tools/klayout/screenshot.py +0 -47
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/global_placement.py +0 -56
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/macro_placement.py +0 -133
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/rcx_bench.py +0 -29
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/repair_design.py +0 -49
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/repair_timing.py +0 -55
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/screenshot.py +0 -40
- siliconcompiler-0.35.4/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -3
- siliconcompiler-0.35.4/siliconcompiler/tools/verilator/compile.py +0 -131
- siliconcompiler-0.35.4/siliconcompiler/tools/vivado/syn_fpga.py +0 -24
- siliconcompiler-0.35.4/siliconcompiler/utils/settings.py +0 -141
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/.dockerignore +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/.flake8 +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/.gitattributes +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/.gitignore +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/LICENSE +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/MANIFEST.in +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/README.md +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/SECURITY.md +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/scripts/.gitignore +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/scripts/methods.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/scripts/requirements.txt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/setup.cfg +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/sc_install.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/asic.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/checklist.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/constraints/asic_component.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/constraints/asic_floorplan.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/constraints/asic_pins.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/heartbeat.sdc +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/email/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/email/general.j2 +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/issue/README.txt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/issue/run.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/replay/replay.sh.j2 +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/demos/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/demos/asic_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/demos/fpga_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/design.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/fpga.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/metrics/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/metrics/asic.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/metrics/fpga.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/package/git.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/package/github.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/package/https.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/pdk.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/cli/board.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/state.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/docker.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/error.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/baseschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/docs/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/docs/schemagen.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/docs/utils.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/docschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/editableschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/journal.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/parameter.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/parametertype.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/parametervalue.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/safeschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/filesetschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/metric.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/option.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/packageschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schema_support/pathschema.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/schematic.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/filter.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/importfiles.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/surfer/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/surfer/show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/__init__.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/curation.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/issue.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/logging.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/paths.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/utils/units.py +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,39 @@ 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.36.1 (2026-01-10)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Minor:**
|
|
15
|
+
|
|
16
|
+
* Expanded parameter setters for tasks.
|
|
17
|
+
|
|
18
|
+
* Tools:
|
|
19
|
+
|
|
20
|
+
* openroad: fixed pin constraints handling, added support for editing halos.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
SiliconCompiler 0.36.0 (2026-01-06)
|
|
24
|
+
=========================================
|
|
25
|
+
|
|
26
|
+
**Major:**
|
|
27
|
+
|
|
28
|
+
* Changed schema to better handle timing constraints, by splitting out mode specific information from the scenarios.
|
|
29
|
+
|
|
30
|
+
**Minor:**
|
|
31
|
+
|
|
32
|
+
* Reimplemented flowgraph rendering with file IO information.
|
|
33
|
+
* Fixed tool version checking to support threaded runs.
|
|
34
|
+
* Reworked use of pipes during execution to avoid creating more pipes than needed.
|
|
35
|
+
* Fixed flowgraph IO checks to only check required files.
|
|
36
|
+
|
|
37
|
+
* Tools:
|
|
38
|
+
|
|
39
|
+
* klayout: fixed handling of GDS generation when foreign is specified in lef.
|
|
40
|
+
* openroad: added support for halo constraints.
|
|
41
|
+
* kelper-formal: added initial support for LEC with kepler-formal.
|
|
42
|
+
|
|
43
|
+
|
|
11
44
|
SiliconCompiler 0.35.4 (2025-12-08)
|
|
12
45
|
=========================================
|
|
13
46
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.36.1
|
|
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
|
|
@@ -31,14 +31,14 @@ Requires-Dist: docker<8.0.0,>=7.1.0
|
|
|
31
31
|
Requires-Dist: fastjsonschema<2.22.0,>=2.20.0
|
|
32
32
|
Requires-Dist: graphviz<0.22,>=0.20
|
|
33
33
|
Requires-Dist: orjson<4,>=3.11.0
|
|
34
|
-
Requires-Dist: packaging<
|
|
34
|
+
Requires-Dist: packaging<26,>=21.3
|
|
35
35
|
Requires-Dist: requests<2.33.0,>=2.32.0
|
|
36
36
|
Requires-Dist: Pillow<11.4.0,>=11.3.0
|
|
37
37
|
Requires-Dist: PyYAML<7.0.0,>=6.0.0
|
|
38
38
|
Requires-Dist: GitPython<3.2,>=3.1.44
|
|
39
39
|
Requires-Dist: PyGithub<2.9.0,>=2.8.0
|
|
40
40
|
Requires-Dist: urllib3>=1.26.0
|
|
41
|
-
Requires-Dist: lambdapdk>=0.2.
|
|
41
|
+
Requires-Dist: lambdapdk>=0.2.6
|
|
42
42
|
Requires-Dist: fasteners>=0.20
|
|
43
43
|
Requires-Dist: pandas>=1.1.5
|
|
44
44
|
Requires-Dist: psutil>=5.8.0
|
|
@@ -61,7 +61,7 @@ Requires-Dist: responses==0.25.8; extra == "test"
|
|
|
61
61
|
Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
62
62
|
Provides-Extra: lint
|
|
63
63
|
Requires-Dist: flake8==7.3.0; extra == "lint"
|
|
64
|
-
Requires-Dist: tclint==0.
|
|
64
|
+
Requires-Dist: tclint==0.7.0; extra == "lint"
|
|
65
65
|
Requires-Dist: codespell==2.4.1; extra == "lint"
|
|
66
66
|
Provides-Extra: docs
|
|
67
67
|
Requires-Dist: Sphinx<8.3,>=7.4; extra == "docs"
|
|
@@ -36,7 +36,7 @@ dependencies = [
|
|
|
36
36
|
"fastjsonschema >= 2.20.0, < 2.22.0",
|
|
37
37
|
"graphviz >= 0.20, < 0.22",
|
|
38
38
|
"orjson >= 3.11.0, < 4",
|
|
39
|
-
"packaging >= 21.3, <
|
|
39
|
+
"packaging >= 21.3, < 26",
|
|
40
40
|
"requests >= 2.32.0, < 2.33.0",
|
|
41
41
|
"Pillow >= 11.3.0, < 11.4.0",
|
|
42
42
|
"PyYAML >= 6.0.0, < 7.0.0",
|
|
@@ -45,7 +45,7 @@ dependencies = [
|
|
|
45
45
|
"PyGithub >= 2.8.0, < 2.9.0",
|
|
46
46
|
"urllib3 >= 1.26.0", # Required for PyGithub
|
|
47
47
|
|
|
48
|
-
"lambdapdk >= 0.2.
|
|
48
|
+
"lambdapdk >= 0.2.6",
|
|
49
49
|
|
|
50
50
|
"fasteners >= 0.20",
|
|
51
51
|
"pandas >= 1.1.5",
|
|
@@ -112,7 +112,7 @@ test = [
|
|
|
112
112
|
]
|
|
113
113
|
lint = [
|
|
114
114
|
"flake8 == 7.3.0",
|
|
115
|
-
"tclint == 0.
|
|
115
|
+
"tclint == 0.7.0",
|
|
116
116
|
"codespell == 2.4.1"
|
|
117
117
|
]
|
|
118
118
|
docs = [
|
|
@@ -159,6 +159,7 @@ filterwarnings = [
|
|
|
159
159
|
'ignore:Creating a LegacyVersion has been deprecated and will be removed in the next major release',
|
|
160
160
|
'ignore:.* is multi-threaded, use of fork\(\) may lead to deadlocks in the child.:DeprecationWarning',
|
|
161
161
|
'ignore:This function is deprecated and will be removed in a future version, use cls\.find_task instead:DeprecationWarning',
|
|
162
|
+
'ignore:This function is deprecated and will be removed in a future version, use TimingModeSchema instead:DeprecationWarning',
|
|
162
163
|
'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'
|
|
163
164
|
]
|
|
164
165
|
|
|
@@ -181,7 +182,7 @@ spaces-in-braces = true
|
|
|
181
182
|
skip = '*/build/*,./docs/_build/*,*.json,*.xml,*.v,./siliconcompiler/data/templates/report/bootstrap.min.js,./tests/utils/test_utils.py,./tests/tools/data/klayout_pdk/interposer.drc'
|
|
182
183
|
count = true
|
|
183
184
|
quiet-level = 3
|
|
184
|
-
ignore-words-list = 'synopsys,inout,subtile,FRAM,dffer,dffers'
|
|
185
|
+
ignore-words-list = 'synopsys,inout,subtile,FRAM,dffer,dffers,thirdparty'
|
|
185
186
|
|
|
186
187
|
[tool.check-wheel-contents]
|
|
187
188
|
ignore = [
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from siliconcompiler.schema import BaseSchema
|
|
2
2
|
|
|
3
|
+
from siliconcompiler.constraints.timing_mode import TimingModeSchema
|
|
4
|
+
|
|
3
5
|
from siliconcompiler.constraints.asic_timing import \
|
|
4
6
|
ASICTimingConstraintSchema, ASICTimingScenarioSchema
|
|
5
7
|
from siliconcompiler.constraints.asic_floorplan import ASICAreaConstraint
|
|
@@ -29,5 +31,6 @@ __all__ = [
|
|
|
29
31
|
"ASICComponentConstraint",
|
|
30
32
|
"ASICComponentConstraints",
|
|
31
33
|
"FPGATimingConstraintSchema",
|
|
32
|
-
"FPGATimingScenarioSchema"
|
|
34
|
+
"FPGATimingScenarioSchema",
|
|
35
|
+
"TimingModeSchema"
|
|
33
36
|
]
|
{siliconcompiler-0.35.4 → siliconcompiler-0.36.1}/siliconcompiler/constraints/asic_timing.py
RENAMED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
from typing import Union, Set, List, Tuple, Optional
|
|
1
|
+
from typing import Union, Set, List, Tuple, Optional, Dict
|
|
2
2
|
|
|
3
3
|
from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, \
|
|
4
4
|
PerNode, Scope
|
|
5
5
|
from siliconcompiler import Design
|
|
6
|
+
from siliconcompiler.constraints.timing_mode import TimingModeSchema
|
|
7
|
+
from siliconcompiler.schema.baseschema import LazyLoad
|
|
6
8
|
|
|
7
9
|
|
|
8
10
|
class ASICTimingScenarioSchema(NamedSchema):
|
|
@@ -93,20 +95,6 @@ class ASICTimingScenarioSchema(NamedSchema):
|
|
|
93
95
|
help="""Operating mode for the scenario. Operating mode strings
|
|
94
96
|
can be values such as test, functional, standby."""))
|
|
95
97
|
|
|
96
|
-
schema.insert(
|
|
97
|
-
'sdcfileset',
|
|
98
|
-
Parameter(
|
|
99
|
-
'[(str,str)]',
|
|
100
|
-
pernode=PerNode.OPTIONAL,
|
|
101
|
-
scope=Scope.GLOBAL,
|
|
102
|
-
shorthelp="Constraint: SDC files",
|
|
103
|
-
switch="-constraint_timing_file 'scenario <file>'",
|
|
104
|
-
example=["api: asic.set('constraint', 'timing', 'worst', 'file', 'hello.sdc')"],
|
|
105
|
-
help="""List of timing constraint sets files to use for the scenario. The
|
|
106
|
-
values are combined with any constraints specified by the design
|
|
107
|
-
'constraint' parameter. If no constraints are found, a default
|
|
108
|
-
constraint file is used based on the clock definitions."""))
|
|
109
|
-
|
|
110
98
|
schema.insert(
|
|
111
99
|
'check',
|
|
112
100
|
Parameter(
|
|
@@ -324,19 +312,22 @@ class ASICTimingScenarioSchema(NamedSchema):
|
|
|
324
312
|
TypeError: If `design` is not a Design object or a string, or if `fileset` is not
|
|
325
313
|
a string.
|
|
326
314
|
"""
|
|
327
|
-
|
|
328
|
-
|
|
315
|
+
import warnings
|
|
316
|
+
warnings.warn("This function is deprecated and will be removed in a future version, "
|
|
317
|
+
"use TimingModeSchema instead", DeprecationWarning, stacklevel=2)
|
|
329
318
|
|
|
330
|
-
|
|
331
|
-
|
|
319
|
+
mode = self.get_mode(step=step, index=index)
|
|
320
|
+
if mode is None:
|
|
321
|
+
raise ValueError("Mode not defined")
|
|
332
322
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
323
|
+
timing_constraints: ASICTimingConstraintSchema = self._parent()._parent()
|
|
324
|
+
try:
|
|
325
|
+
modeobj = timing_constraints.get_mode(mode)
|
|
326
|
+
except LookupError:
|
|
327
|
+
modeobj = timing_constraints.make_mode(mode)
|
|
328
|
+
return modeobj.add_sdcfileset(design=design, fileset=fileset,
|
|
329
|
+
clobber=clobber,
|
|
330
|
+
step=step, index=index)
|
|
340
331
|
|
|
341
332
|
def get_sdcfileset(self, step: Optional[str] = None, index: Optional[Union[str, int]] = None) \
|
|
342
333
|
-> List[Tuple[str, str]]:
|
|
@@ -350,7 +341,20 @@ class ASICTimingScenarioSchema(NamedSchema):
|
|
|
350
341
|
Returns:
|
|
351
342
|
A list of tuples, where each tuple contains the design name and the SDC fileset name.
|
|
352
343
|
"""
|
|
353
|
-
|
|
344
|
+
import warnings
|
|
345
|
+
warnings.warn("This function is deprecated and will be removed in a future version, "
|
|
346
|
+
"use TimingModeSchema instead", DeprecationWarning, stacklevel=2)
|
|
347
|
+
|
|
348
|
+
mode = self.get_mode(step=step, index=index)
|
|
349
|
+
if mode is None:
|
|
350
|
+
raise ValueError("Mode not defined")
|
|
351
|
+
|
|
352
|
+
timing_constraints: ASICTimingConstraintSchema = self._parent()._parent()
|
|
353
|
+
try:
|
|
354
|
+
modeobj = timing_constraints.get_mode(mode)
|
|
355
|
+
except LookupError:
|
|
356
|
+
modeobj = timing_constraints.make_mode(mode)
|
|
357
|
+
return modeobj.get_sdcfileset(step=step, index=index)
|
|
354
358
|
|
|
355
359
|
def add_check(self,
|
|
356
360
|
check: Union[List[str], str],
|
|
@@ -386,6 +390,30 @@ class ASICTimingScenarioSchema(NamedSchema):
|
|
|
386
390
|
"""
|
|
387
391
|
return self.get("check", step=step, index=index)
|
|
388
392
|
|
|
393
|
+
def _from_dict(self, manifest: Dict,
|
|
394
|
+
keypath: Union[List[str], Tuple[str, ...]],
|
|
395
|
+
version: Optional[Tuple[int, ...]] = None,
|
|
396
|
+
lazyload: LazyLoad = LazyLoad.ON) \
|
|
397
|
+
-> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
|
|
398
|
+
|
|
399
|
+
sdcfileset = None
|
|
400
|
+
if version and version < (0, 53, 0):
|
|
401
|
+
sdcfileset = manifest.pop("sdcfileset", None)
|
|
402
|
+
lazyload = LazyLoad.OFF
|
|
403
|
+
|
|
404
|
+
ret = super()._from_dict(manifest, keypath, version, lazyload)
|
|
405
|
+
|
|
406
|
+
if sdcfileset:
|
|
407
|
+
param = Parameter.from_dict(sdcfileset, keypath=(*keypath, "sdcfileset"),
|
|
408
|
+
version=version)
|
|
409
|
+
for value, step, index in param.getvalues():
|
|
410
|
+
if self.get_mode(step=step, index=index) is None:
|
|
411
|
+
self.set_mode("_importcreated_", step=step, index=index)
|
|
412
|
+
for design, fileset in value:
|
|
413
|
+
self.add_sdcfileset(design, fileset, step=step, index=index)
|
|
414
|
+
|
|
415
|
+
return ret
|
|
416
|
+
|
|
389
417
|
|
|
390
418
|
class ASICTimingConstraintSchema(BaseSchema):
|
|
391
419
|
"""
|
|
@@ -400,7 +428,8 @@ class ASICTimingConstraintSchema(BaseSchema):
|
|
|
400
428
|
def __init__(self):
|
|
401
429
|
super().__init__()
|
|
402
430
|
|
|
403
|
-
EditableSchema(self).insert("default", ASICTimingScenarioSchema())
|
|
431
|
+
EditableSchema(self).insert("scenario", "default", ASICTimingScenarioSchema())
|
|
432
|
+
EditableSchema(self).insert("mode", "default", TimingModeSchema())
|
|
404
433
|
|
|
405
434
|
def add_scenario(self, scenario: ASICTimingScenarioSchema):
|
|
406
435
|
"""
|
|
@@ -426,9 +455,10 @@ class ASICTimingConstraintSchema(BaseSchema):
|
|
|
426
455
|
if scenario.name is None:
|
|
427
456
|
raise ValueError("scenario must have a name")
|
|
428
457
|
|
|
429
|
-
EditableSchema(self).insert(scenario.name, scenario, clobber=True)
|
|
458
|
+
EditableSchema(self).insert("scenario", scenario.name, scenario, clobber=True)
|
|
430
459
|
|
|
431
|
-
def get_scenario(self, scenario: Optional[str] = None)
|
|
460
|
+
def get_scenario(self, scenario: Optional[str] = None) \
|
|
461
|
+
-> Union[ASICTimingScenarioSchema, Dict[str, ASICTimingScenarioSchema]]:
|
|
432
462
|
"""
|
|
433
463
|
Retrieves one or all timing scenarios from the configuration.
|
|
434
464
|
|
|
@@ -452,13 +482,13 @@ class ASICTimingConstraintSchema(BaseSchema):
|
|
|
452
482
|
"""
|
|
453
483
|
if scenario is None:
|
|
454
484
|
scenarios = {}
|
|
455
|
-
for name in self.getkeys():
|
|
456
|
-
scenarios[name] = self.get(name, field="schema")
|
|
485
|
+
for name in self.getkeys("scenario"):
|
|
486
|
+
scenarios[name] = self.get("scenario", name, field="schema")
|
|
457
487
|
return scenarios
|
|
458
488
|
|
|
459
|
-
if not self.valid(scenario):
|
|
489
|
+
if not self.valid("scenario", scenario):
|
|
460
490
|
raise LookupError(f"{scenario} is not defined")
|
|
461
|
-
return self.get(scenario, field="schema")
|
|
491
|
+
return self.get("scenario", scenario, field="schema")
|
|
462
492
|
|
|
463
493
|
def make_scenario(self, scenario: str) -> ASICTimingScenarioSchema:
|
|
464
494
|
"""
|
|
@@ -485,7 +515,7 @@ class ASICTimingConstraintSchema(BaseSchema):
|
|
|
485
515
|
if not scenario:
|
|
486
516
|
raise ValueError("scenario name is required")
|
|
487
517
|
|
|
488
|
-
if self.valid(scenario):
|
|
518
|
+
if self.valid("scenario", scenario):
|
|
489
519
|
raise LookupError(f"{scenario} scenario already exists")
|
|
490
520
|
|
|
491
521
|
scenarioobj = ASICTimingScenarioSchema(scenario)
|
|
@@ -516,7 +546,7 @@ class ASICTimingConstraintSchema(BaseSchema):
|
|
|
516
546
|
constraint = EditableSchema(self.get_scenario(scenario)).copy()
|
|
517
547
|
EditableSchema(constraint).rename(name)
|
|
518
548
|
if insert:
|
|
519
|
-
if self.valid(name):
|
|
549
|
+
if self.valid("scenario", name):
|
|
520
550
|
raise ValueError(f"{name} already exists")
|
|
521
551
|
self.add_scenario(constraint)
|
|
522
552
|
return constraint
|
|
@@ -542,8 +572,170 @@ class ASICTimingConstraintSchema(BaseSchema):
|
|
|
542
572
|
if not scenario:
|
|
543
573
|
raise ValueError("scenario name is required")
|
|
544
574
|
|
|
545
|
-
if not self.valid(scenario):
|
|
575
|
+
if not self.valid("scenario", scenario):
|
|
576
|
+
return False
|
|
577
|
+
|
|
578
|
+
EditableSchema(self).remove("scenario", scenario)
|
|
579
|
+
return True
|
|
580
|
+
|
|
581
|
+
def add_mode(self, mode: TimingModeSchema):
|
|
582
|
+
"""
|
|
583
|
+
Adds a timing mode to the design configuration.
|
|
584
|
+
|
|
585
|
+
This method is responsible for incorporating a new or updated timing mode
|
|
586
|
+
into the system's configuration. If a mode with the same name already
|
|
587
|
+
exists, it will be overwritten (`clobber=True`).
|
|
588
|
+
|
|
589
|
+
Args:
|
|
590
|
+
mode: The :class:`TimingModeSchema` object representing the timing mode
|
|
591
|
+
to add. This object must have a valid name defined via its `name()` method.
|
|
592
|
+
|
|
593
|
+
Raises:
|
|
594
|
+
TypeError: If the provided `mode` argument is not an instance of
|
|
595
|
+
:class:`TimingModeSchema`.
|
|
596
|
+
ValueError: If the `mode` object's `name()` method returns None, indicating
|
|
597
|
+
that the mode does not have a defined name.
|
|
598
|
+
"""
|
|
599
|
+
if not isinstance(mode, TimingModeSchema):
|
|
600
|
+
raise TypeError("mode must be a timing mode object")
|
|
601
|
+
|
|
602
|
+
if mode.name is None:
|
|
603
|
+
raise ValueError("mode must have a name")
|
|
604
|
+
|
|
605
|
+
EditableSchema(self).insert("mode", mode.name, mode, clobber=True)
|
|
606
|
+
|
|
607
|
+
def get_mode(self, mode: Optional[str] = None) \
|
|
608
|
+
-> Union[TimingModeSchema, Dict[str, TimingModeSchema]]:
|
|
609
|
+
"""
|
|
610
|
+
Retrieves one or all timing modes from the configuration.
|
|
611
|
+
|
|
612
|
+
This method provides flexibility to fetch either a specific timing mode
|
|
613
|
+
by its name or a collection of all currently defined modes.
|
|
614
|
+
|
|
615
|
+
Args:
|
|
616
|
+
mode (str, optional): The name (string) of the specific timing mode to retrieve.
|
|
617
|
+
If this argument is omitted or set to None, the method will
|
|
618
|
+
return a dictionary containing all available timing modes.
|
|
619
|
+
|
|
620
|
+
Returns:
|
|
621
|
+
If `mode` is provided: The :class:`TimingModeSchema` object corresponding
|
|
622
|
+
to the specified mode name.
|
|
623
|
+
If `mode` is None: A dictionary where keys are mode names (str) and
|
|
624
|
+
values are their respective :class:`TimingModeSchema` objects.
|
|
625
|
+
|
|
626
|
+
Raises:
|
|
627
|
+
LookupError: If a specific `mode` name is provided but no mode with
|
|
628
|
+
that name is found in the configuration.
|
|
629
|
+
"""
|
|
630
|
+
if mode is None:
|
|
631
|
+
modes = {}
|
|
632
|
+
for name in self.getkeys("mode"):
|
|
633
|
+
modes[name] = self.get("mode", name, field="schema")
|
|
634
|
+
return modes
|
|
635
|
+
|
|
636
|
+
if not self.valid("mode", mode):
|
|
637
|
+
raise LookupError(f"{mode} is not defined")
|
|
638
|
+
return self.get("mode", mode, field="schema")
|
|
639
|
+
|
|
640
|
+
def make_mode(self, mode: str) -> TimingModeSchema:
|
|
641
|
+
"""
|
|
642
|
+
Creates and adds a new timing mode with the specified name.
|
|
643
|
+
|
|
644
|
+
This method initializes a new :class:`TimingModeSchema` object with the given
|
|
645
|
+
name and immediately adds it to the constraint configuration. It ensures that
|
|
646
|
+
a mode with the same name does not already exist, preventing accidental
|
|
647
|
+
overwrites.
|
|
648
|
+
|
|
649
|
+
Args:
|
|
650
|
+
mode (str): The name for the new timing mode. This name must be
|
|
651
|
+
a non-empty string and unique within the current configuration.
|
|
652
|
+
|
|
653
|
+
Returns:
|
|
654
|
+
:class:`TimingModeSchema`: The newly created :class:`TimingModeSchema`
|
|
655
|
+
object.
|
|
656
|
+
|
|
657
|
+
Raises:
|
|
658
|
+
ValueError: If the provided `mode` name is empty or None.
|
|
659
|
+
LookupError: If a mode with the specified `mode` name already exists
|
|
660
|
+
in the configuration.
|
|
661
|
+
"""
|
|
662
|
+
if not mode:
|
|
663
|
+
raise ValueError("mode name is required")
|
|
664
|
+
|
|
665
|
+
if self.valid("mode", mode):
|
|
666
|
+
raise LookupError(f"{mode} mode already exists")
|
|
667
|
+
|
|
668
|
+
modeobj = TimingModeSchema(mode)
|
|
669
|
+
self.add_mode(modeobj)
|
|
670
|
+
return modeobj
|
|
671
|
+
|
|
672
|
+
def copy_mode(self, mode: str, name: str, insert: bool = True) \
|
|
673
|
+
-> TimingModeSchema:
|
|
674
|
+
"""
|
|
675
|
+
Copies an existing timing mode, renames it, and optionally adds it to the design.
|
|
676
|
+
|
|
677
|
+
This method retrieves the mode identified by ``mode``, creates a
|
|
678
|
+
deep copy of it, and renames the copy to ``name``. If ``insert`` is True,
|
|
679
|
+
the new mode is immediately added to the configuration.
|
|
680
|
+
|
|
681
|
+
Args:
|
|
682
|
+
mode (str): The name of the existing mode to be copied.
|
|
683
|
+
name (str): The name to assign to the new copied mode.
|
|
684
|
+
insert (bool, optional): Whether to add the newly created mode
|
|
685
|
+
to the configuration. Defaults to True.
|
|
686
|
+
|
|
687
|
+
Returns:
|
|
688
|
+
TimingModeSchema: The newly created copy of the mode.
|
|
689
|
+
|
|
690
|
+
Raises:
|
|
691
|
+
LookupError: If the source mode specified by ``mode`` does not exist.
|
|
692
|
+
"""
|
|
693
|
+
newmode = EditableSchema(self.get_mode(mode)).copy()
|
|
694
|
+
EditableSchema(newmode).rename(name)
|
|
695
|
+
if insert:
|
|
696
|
+
if self.valid("mode", name):
|
|
697
|
+
raise ValueError(f"{name} already exists")
|
|
698
|
+
self.add_mode(newmode)
|
|
699
|
+
return newmode
|
|
700
|
+
|
|
701
|
+
def remove_mode(self, mode: str) -> bool:
|
|
702
|
+
"""
|
|
703
|
+
Removes a timing mode from the design configuration.
|
|
704
|
+
|
|
705
|
+
This method deletes the specified timing mode from the system's
|
|
706
|
+
configuration.
|
|
707
|
+
|
|
708
|
+
Args:
|
|
709
|
+
mode (str): The name of the timing mode to remove.
|
|
710
|
+
This name must be a non-empty string.
|
|
711
|
+
|
|
712
|
+
Returns:
|
|
713
|
+
bool: True if the mode was successfully removed, False if no
|
|
714
|
+
mode with the given name was found.
|
|
715
|
+
|
|
716
|
+
Raises:
|
|
717
|
+
ValueError: If the provided `mode` name is empty or None.
|
|
718
|
+
"""
|
|
719
|
+
if not mode:
|
|
720
|
+
raise ValueError("mode name is required")
|
|
721
|
+
|
|
722
|
+
if not self.valid("mode", mode):
|
|
546
723
|
return False
|
|
547
724
|
|
|
548
|
-
EditableSchema(self).remove(
|
|
725
|
+
EditableSchema(self).remove("mode", mode)
|
|
549
726
|
return True
|
|
727
|
+
|
|
728
|
+
def _from_dict(self, manifest: Dict,
|
|
729
|
+
keypath: Union[List[str], Tuple[str, ...]],
|
|
730
|
+
version: Optional[Tuple[int, ...]] = None,
|
|
731
|
+
lazyload: LazyLoad = LazyLoad.ON) \
|
|
732
|
+
-> Tuple[Set[Tuple[str, ...]], Set[Tuple[str, ...]]]:
|
|
733
|
+
if version and version < (0, 53, 0):
|
|
734
|
+
manifest.pop("__meta__", None)
|
|
735
|
+
manifest = {
|
|
736
|
+
"scenario": manifest,
|
|
737
|
+
"mode": self.getdict("mode")
|
|
738
|
+
}
|
|
739
|
+
lazyload = LazyLoad.OFF
|
|
740
|
+
|
|
741
|
+
return super()._from_dict(manifest, keypath, version, lazyload)
|