siliconcompiler 0.36.1__tar.gz → 0.36.2__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.36.1 → siliconcompiler-0.36.2}/Changes +14 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/PKG-INFO +2 -2
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/pyproject.toml +1 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/asic.py +4 -4
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/design.py +6 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/package/__init__.py +3 -2
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/project.py +30 -14
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/filesetschema.py +9 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/pathschema.py +16 -10
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tool.py +3 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/keplerformal/lec.py +2 -2
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/export.py +1 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/_apr.py +69 -11
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/power_grid.py +1 -1
- siliconcompiler-0.36.2/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +25 -0
- siliconcompiler-0.36.2/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +3 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/__init__.py +9 -9
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/place.py +1 -2
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/syn_asic.py +4 -4
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/syn_fpga.py +7 -8
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/_tools.json +4 -4
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/logging.py +6 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler.egg-info/PKG-INFO +2 -2
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler.egg-info/requires.txt +1 -1
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -23
- siliconcompiler-0.36.1/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -1
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/.dockerignore +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/.flake8 +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/.gitattributes +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/.gitignore +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/LICENSE +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/MANIFEST.in +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/README.md +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/SECURITY.md +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/scripts/.gitignore +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/scripts/methods.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/scripts/requirements.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/setup.cfg +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/sc_install.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/checklist.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/asic_component.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/asic_floorplan.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/asic_pins.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/asic_timing.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/fpga_timing.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/constraints/timing_mode.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/heartbeat.sdc +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/email/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/email/general.j2 +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/issue/README.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/issue/run.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/replay/replay.sh.j2 +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/demos/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/demos/asic_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/demos/fpga_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/highresscreenshotflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/fpga.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/library.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/metrics/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/metrics/asic.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/metrics/fpga.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/package/git.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/package/github.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/package/https.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/pdk.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/cli/board.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/state.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/docker.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/error.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/scheduler.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/schedulernode.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/taskscheduler.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/_metadata.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/baseschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/docs/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/docs/schemagen.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/docs/utils.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/docschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/editableschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/journal.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/namedschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/parameter.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/parametertype.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/parametervalue.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/safeschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/cmdlineschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/dependencyschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/metric.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/option.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/packageschema.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/record.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schematic.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/filter.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/importfiles.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/keplerformal/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/scripts/klayout_export.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/scripts/klayout_show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/global_placement.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/power_grid_analysis.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/repair_design.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/surfer/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/surfer/show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/__init__.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/curation.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/issue.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/multiprocessing.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/paths.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/settings.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/utils/units.py +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler.egg-info/SOURCES.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,20 @@ 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.2 (2026-01-16)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Minor:**
|
|
15
|
+
|
|
16
|
+
* Corrected auto dataroot behavior when setting abs paths.
|
|
17
|
+
* Corrected logging during check_filepaths on design objects to ensure errors are printed.
|
|
18
|
+
* Added `.get_library` to Project to allow access to imported libraries.
|
|
19
|
+
|
|
20
|
+
* Tools:
|
|
21
|
+
|
|
22
|
+
* openroad: added option to bypass SDC loading.
|
|
23
|
+
|
|
24
|
+
|
|
11
25
|
SiliconCompiler 0.36.1 (2026-01-10)
|
|
12
26
|
=========================================
|
|
13
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.36.
|
|
3
|
+
Version: 0.36.2
|
|
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
|
|
@@ -38,7 +38,7 @@ 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.7
|
|
42
42
|
Requires-Dist: fasteners>=0.20
|
|
43
43
|
Requires-Dist: pandas>=1.1.5
|
|
44
44
|
Requires-Dist: psutil>=5.8.0
|
|
@@ -244,7 +244,7 @@ class ASIC(Project):
|
|
|
244
244
|
if pdk not in self.getkeys("library"):
|
|
245
245
|
error = True
|
|
246
246
|
self.logger.error(f"{pdk} library has not been loaded")
|
|
247
|
-
elif not isinstance(self.
|
|
247
|
+
elif not isinstance(self.get_library(pdk), PDK):
|
|
248
248
|
error = True
|
|
249
249
|
self.logger.error(f"{pdk} must be a PDK")
|
|
250
250
|
|
|
@@ -432,7 +432,7 @@ class ASIC(Project):
|
|
|
432
432
|
if not self.get("asic", "pdk") and self.get("asic", "mainlib"):
|
|
433
433
|
mainlib = None
|
|
434
434
|
if self._has_library(self.get("asic", "mainlib")):
|
|
435
|
-
mainlib = self.
|
|
435
|
+
mainlib = self.get_library(self.get("asic", "mainlib"))
|
|
436
436
|
if mainlib:
|
|
437
437
|
mainlib_pdk = mainlib.get("asic", "pdk")
|
|
438
438
|
if mainlib_pdk:
|
|
@@ -530,7 +530,7 @@ class ASICTask(Task):
|
|
|
530
530
|
raise ValueError("mainlib has not been defined in [asic,mainlib]")
|
|
531
531
|
if mainlib not in self.project.getkeys("library"):
|
|
532
532
|
raise LookupError(f"{mainlib} has not been loaded")
|
|
533
|
-
return self.project.
|
|
533
|
+
return self.project.get_library(mainlib)
|
|
534
534
|
|
|
535
535
|
@property
|
|
536
536
|
def pdk(self) -> PDK:
|
|
@@ -540,7 +540,7 @@ class ASICTask(Task):
|
|
|
540
540
|
raise ValueError("pdk has not been defined in [asic,pdk]")
|
|
541
541
|
if pdk not in self.project.getkeys("library"):
|
|
542
542
|
raise LookupError(f"{pdk} has not been loaded")
|
|
543
|
-
return self.project.
|
|
543
|
+
return self.project.get_library(pdk)
|
|
544
544
|
|
|
545
545
|
def set_asic_var(self,
|
|
546
546
|
key: str,
|
|
@@ -694,7 +694,12 @@ class Design(DependencySchema, LibrarySchema):
|
|
|
694
694
|
if dataroot is ...:
|
|
695
695
|
dataroot = None
|
|
696
696
|
else:
|
|
697
|
-
|
|
697
|
+
if option in ['idir', 'libdir']:
|
|
698
|
+
try:
|
|
699
|
+
dataroot = self._get_active_dataroot(dataroot)
|
|
700
|
+
except ValueError as e:
|
|
701
|
+
if any(not os.path.isabs(v) for v in value):
|
|
702
|
+
raise e
|
|
698
703
|
|
|
699
704
|
with self.active_dataroot(dataroot):
|
|
700
705
|
if list in typelist and not clobber:
|
|
@@ -72,9 +72,10 @@ class Resolver:
|
|
|
72
72
|
self.__cacheid = None
|
|
73
73
|
|
|
74
74
|
if self.__root and hasattr(self.__root, "logger"):
|
|
75
|
-
|
|
75
|
+
rootlogger = self.__root.logger
|
|
76
76
|
else:
|
|
77
|
-
|
|
77
|
+
rootlogger = MPManager.logger()
|
|
78
|
+
self.__logger = rootlogger.getChild(f"resolver-{self.name}")
|
|
78
79
|
|
|
79
80
|
@staticmethod
|
|
80
81
|
def populate_resolvers() -> None:
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
-
import sys
|
|
4
3
|
import uuid
|
|
5
4
|
|
|
6
5
|
import os.path
|
|
@@ -28,7 +27,7 @@ from siliconcompiler.schema_support.pathschema import PathSchemaBase
|
|
|
28
27
|
|
|
29
28
|
from siliconcompiler.report.dashboard.cli import CliDashboard
|
|
30
29
|
from siliconcompiler.scheduler import Scheduler, SCRuntimeError
|
|
31
|
-
from siliconcompiler.utils.logging import
|
|
30
|
+
from siliconcompiler.utils.logging import get_stream_handler
|
|
32
31
|
from siliconcompiler.utils import get_file_ext
|
|
33
32
|
from siliconcompiler.utils.multiprocessing import MPManager
|
|
34
33
|
from siliconcompiler.utils.paths import jobdir, workdir
|
|
@@ -143,12 +142,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
143
142
|
self.__logger = MPManager.logger().getChild(f"project_{uuid.uuid4().hex}")
|
|
144
143
|
self.__logger.setLevel(logging.INFO)
|
|
145
144
|
|
|
146
|
-
self._logger_console =
|
|
147
|
-
if SCColorLoggerFormatter.supports_color(sys.stdout):
|
|
148
|
-
self._logger_console.setFormatter(SCColorLoggerFormatter(SCLoggerFormatter()))
|
|
149
|
-
else:
|
|
150
|
-
self._logger_console.setFormatter(SCLoggerFormatter())
|
|
151
|
-
|
|
145
|
+
self._logger_console = get_stream_handler(self, in_run=False, step=None, index=None)
|
|
152
146
|
self.__logger.addHandler(self._logger_console)
|
|
153
147
|
|
|
154
148
|
def __init_dashboard(self):
|
|
@@ -225,7 +219,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
225
219
|
if not self.valid("library", design_name):
|
|
226
220
|
raise KeyError(f"{design_name} design has not been loaded")
|
|
227
221
|
|
|
228
|
-
return self.
|
|
222
|
+
return self.get_library(design_name)
|
|
229
223
|
|
|
230
224
|
@property
|
|
231
225
|
def option(self) -> OptionSchema:
|
|
@@ -482,7 +476,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
482
476
|
if not self._has_library(src_lib):
|
|
483
477
|
continue
|
|
484
478
|
|
|
485
|
-
if not self.
|
|
479
|
+
if not self.get_library(src_lib).has_fileset(src_fileset):
|
|
486
480
|
self.logger.error(f"{src_fileset} is not a valid fileset in {src_lib}")
|
|
487
481
|
error = True
|
|
488
482
|
continue
|
|
@@ -496,7 +490,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
496
490
|
continue
|
|
497
491
|
|
|
498
492
|
if dst_fileset and \
|
|
499
|
-
not self.
|
|
493
|
+
not self.get_library(dst_lib).has_fileset(dst_fileset):
|
|
500
494
|
self.logger.error(f"{dst_fileset} is not a valid fileset in {dst_lib}")
|
|
501
495
|
error = True
|
|
502
496
|
continue
|
|
@@ -715,7 +709,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
715
709
|
if dst_lib:
|
|
716
710
|
if not self._has_library(dst_lib):
|
|
717
711
|
raise KeyError(f"{dst_lib} is not a loaded library")
|
|
718
|
-
dst_obj = self.
|
|
712
|
+
dst_obj = self.get_library(dst_lib)
|
|
719
713
|
else:
|
|
720
714
|
dst_obj = None
|
|
721
715
|
if not dst_fileset:
|
|
@@ -844,7 +838,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
844
838
|
|
|
845
839
|
if isinstance(src_dep, str):
|
|
846
840
|
if self._has_library(src_dep):
|
|
847
|
-
src_dep = self.
|
|
841
|
+
src_dep = self.get_library(src_dep)
|
|
848
842
|
else:
|
|
849
843
|
src_dep_name = src_dep
|
|
850
844
|
src_dep = None
|
|
@@ -875,7 +869,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
875
869
|
if not self._has_library(alias_dep):
|
|
876
870
|
raise KeyError(f"{alias_dep} has not been loaded")
|
|
877
871
|
|
|
878
|
-
alias_dep = self.
|
|
872
|
+
alias_dep = self.get_library(alias_dep)
|
|
879
873
|
|
|
880
874
|
if alias_dep is not None:
|
|
881
875
|
if isinstance(alias_dep, Design):
|
|
@@ -894,6 +888,28 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
894
888
|
else:
|
|
895
889
|
return self.add("option", "alias", alias)
|
|
896
890
|
|
|
891
|
+
def get_library(self, library: str) -> NamedSchema:
|
|
892
|
+
"""
|
|
893
|
+
Retrieves a library by name from the project.
|
|
894
|
+
|
|
895
|
+
Args:
|
|
896
|
+
library (str): The name of the library to retrieve.
|
|
897
|
+
|
|
898
|
+
Returns:
|
|
899
|
+
NamedSchema: The `NamedSchema` object representing the library.
|
|
900
|
+
|
|
901
|
+
Raises:
|
|
902
|
+
KeyError: If the specified library is not found in the project.
|
|
903
|
+
TypeError: If the provided `library` is not a string.
|
|
904
|
+
"""
|
|
905
|
+
if not isinstance(library, str):
|
|
906
|
+
raise TypeError("library must be a string")
|
|
907
|
+
|
|
908
|
+
if not self._has_library(library):
|
|
909
|
+
raise KeyError(f"{library} is not a valid library")
|
|
910
|
+
|
|
911
|
+
return self.get("library", library, field="schema")
|
|
912
|
+
|
|
897
913
|
def _has_library(self, library: Union[str, NamedSchema]) -> bool:
|
|
898
914
|
"""
|
|
899
915
|
Checks if a library with the given name exists and is loaded in the project.
|
{siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/filesetschema.py
RENAMED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import contextlib
|
|
2
2
|
|
|
3
|
+
import os.path
|
|
4
|
+
|
|
3
5
|
from pathlib import Path
|
|
4
6
|
|
|
5
7
|
from typing import List, Tuple, Optional, Union, Iterable, Set
|
|
@@ -118,8 +120,14 @@ class FileSetSchema(PathSchema):
|
|
|
118
120
|
ext = utils.get_file_ext(filename)
|
|
119
121
|
filetype = utils.get_default_iomap().get(ext, ext)
|
|
120
122
|
|
|
123
|
+
try:
|
|
124
|
+
dataroot = self._get_active_dataroot(dataroot)
|
|
125
|
+
except ValueError as e:
|
|
126
|
+
if not os.path.isabs(filename):
|
|
127
|
+
raise e
|
|
128
|
+
|
|
121
129
|
# adding files to dictionary
|
|
122
|
-
with self.active_dataroot(
|
|
130
|
+
with self.active_dataroot(dataroot):
|
|
123
131
|
if clobber:
|
|
124
132
|
return self.set('fileset', fileset, 'file', filetype, filename)
|
|
125
133
|
else:
|
{siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/schema_support/pathschema.py
RENAMED
|
@@ -11,7 +11,9 @@ from siliconcompiler.schema.parameter import Parameter, Scope
|
|
|
11
11
|
from siliconcompiler.schema.utils import trim
|
|
12
12
|
|
|
13
13
|
from siliconcompiler.package import Resolver
|
|
14
|
+
from siliconcompiler.utils.logging import get_stream_handler
|
|
14
15
|
from siliconcompiler.utils.paths import collectiondir, cwdirsafe
|
|
16
|
+
from siliconcompiler.utils.multiprocessing import MPManager
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
class PathSchemaBase(BaseSchema):
|
|
@@ -19,6 +21,15 @@ class PathSchemaBase(BaseSchema):
|
|
|
19
21
|
Schema extension to add simpler find_files and check_filepaths
|
|
20
22
|
'''
|
|
21
23
|
|
|
24
|
+
def __getlogger(self, logger_name: str) -> logging.Logger:
|
|
25
|
+
schema_root = self._parent(root=True)
|
|
26
|
+
root_logger = getattr(schema_root, "logger", MPManager.logger())
|
|
27
|
+
logger = root_logger.getChild(logger_name)
|
|
28
|
+
if not logger.handlers:
|
|
29
|
+
logger.addHandler(get_stream_handler(schema_root, in_run=False, step=None, index=None))
|
|
30
|
+
logger.setLevel(logging.INFO)
|
|
31
|
+
return logger
|
|
32
|
+
|
|
22
33
|
def find_files(self, *keypath: str,
|
|
23
34
|
missing_ok: bool = False,
|
|
24
35
|
step: Optional[str] = None, index: Optional[Union[int, str]] = None) \
|
|
@@ -69,13 +80,10 @@ class PathSchemaBase(BaseSchema):
|
|
|
69
80
|
True if all file paths are valid, otherwise False.
|
|
70
81
|
'''
|
|
71
82
|
schema_root = self._parent(root=True)
|
|
72
|
-
logger = getattr(schema_root,
|
|
73
|
-
"logger",
|
|
74
|
-
logging.getLogger("siliconcompiler.check_filepaths"))
|
|
75
83
|
|
|
76
84
|
return super()._check_filepaths(
|
|
77
85
|
ignore_keys=ignore_keys,
|
|
78
|
-
logger=
|
|
86
|
+
logger=self.__getlogger("check_filepaths"),
|
|
79
87
|
collection_dir=collectiondir(schema_root),
|
|
80
88
|
cwd=cwdirsafe(schema_root))
|
|
81
89
|
|
|
@@ -121,13 +129,11 @@ class PathSchemaBase(BaseSchema):
|
|
|
121
129
|
>>> hashlist = hash_files('input', 'rtl', 'verilog')
|
|
122
130
|
Computes, stores, and returns hashes of files in :keypath:`input, rtl, verilog`.
|
|
123
131
|
'''
|
|
124
|
-
schema_root = self._parent(root=True)
|
|
125
|
-
logger = getattr(schema_root,
|
|
126
|
-
"logger",
|
|
127
|
-
logging.getLogger("siliconcompiler.hash_files"))
|
|
128
|
-
|
|
129
132
|
if verbose:
|
|
130
|
-
|
|
133
|
+
self.__getlogger("hash_files").info(
|
|
134
|
+
f"Computing hash value for [{','.join([*self._keypath, *keypath])}]")
|
|
135
|
+
|
|
136
|
+
schema_root = self._parent(root=True)
|
|
131
137
|
|
|
132
138
|
hashes = super()._hash_files(*keypath,
|
|
133
139
|
missing_ok=missing_ok,
|
|
@@ -997,7 +997,7 @@ class Task(NamedSchema, PathSchema, DocsSchema):
|
|
|
997
997
|
open(stderr_file, 'w') as stderr_writer:
|
|
998
998
|
if stderr_file == stdout_file:
|
|
999
999
|
stderr_writer.close()
|
|
1000
|
-
stderr_writer =
|
|
1000
|
+
stderr_writer = stdout_writer
|
|
1001
1001
|
|
|
1002
1002
|
with contextlib.redirect_stderr(stderr_writer), \
|
|
1003
1003
|
contextlib.redirect_stdout(stdout_writer):
|
|
@@ -1009,6 +1009,8 @@ class Task(NamedSchema, PathSchema, DocsSchema):
|
|
|
1009
1009
|
finally:
|
|
1010
1010
|
with sc_open(stdout_file) as stdout_reader, \
|
|
1011
1011
|
sc_open(stderr_file) as stderr_reader:
|
|
1012
|
+
if stdout_file == stderr_file:
|
|
1013
|
+
stderr_reader = None
|
|
1012
1014
|
read_stdio(stdout_reader, stderr_reader)
|
|
1013
1015
|
|
|
1014
1016
|
if resource:
|
|
@@ -37,7 +37,7 @@ class LECTask(Task):
|
|
|
37
37
|
libcorners = scenario.get_libcorner(self.step, self.index)
|
|
38
38
|
delay_model = self.project.get("asic", "delaymodel")
|
|
39
39
|
for asiclib in self.project.get("asic", "asiclib"):
|
|
40
|
-
lib = self.project.
|
|
40
|
+
lib = self.project.get_library(asiclib)
|
|
41
41
|
for corner in libcorners:
|
|
42
42
|
if not lib.valid("asic", "libcornerfileset", corner, delay_model):
|
|
43
43
|
continue
|
|
@@ -64,7 +64,7 @@ class LECTask(Task):
|
|
|
64
64
|
libcorners = scenario.get_libcorner(self.step, self.index)
|
|
65
65
|
delay_model = self.project.get("asic", "delaymodel")
|
|
66
66
|
for asiclib in self.project.get("asic", "asiclib"):
|
|
67
|
-
lib = self.project.
|
|
67
|
+
lib = self.project.get_library(asiclib)
|
|
68
68
|
for corner in libcorners:
|
|
69
69
|
if not lib.valid("asic", "libcornerfileset", corner, delay_model):
|
|
70
70
|
continue
|
|
@@ -98,7 +98,7 @@ class ExportTask(KLayoutTask, ScreenshotParams):
|
|
|
98
98
|
lib_requires_stream = False
|
|
99
99
|
|
|
100
100
|
req_set = False
|
|
101
|
-
libobj = self.project.
|
|
101
|
+
libobj = self.project.get_library(lib)
|
|
102
102
|
for s in sc_stream_order:
|
|
103
103
|
for fileset in libobj.get("asic", "aprfileset"):
|
|
104
104
|
if libobj.valid("fileset", fileset, "file", s):
|
|
@@ -1218,6 +1218,10 @@ class APRTask(OpenROADTask):
|
|
|
1218
1218
|
"used to indicate if global routing information should be loaded",
|
|
1219
1219
|
defvalue=False)
|
|
1220
1220
|
|
|
1221
|
+
self.add_parameter("load_sdcs", "bool",
|
|
1222
|
+
"used to indicate if SDC files should be loaded before APR",
|
|
1223
|
+
defvalue=True)
|
|
1224
|
+
|
|
1221
1225
|
self.add_parameter("global_connect_fileset", "[(str,str)]",
|
|
1222
1226
|
"list of libraries and filesets to generate connects from")
|
|
1223
1227
|
|
|
@@ -1264,6 +1268,18 @@ class APRTask(OpenROADTask):
|
|
|
1264
1268
|
"""
|
|
1265
1269
|
self.set("var", "ord_heatmap_bins", (x, y), step=step, index=index)
|
|
1266
1270
|
|
|
1271
|
+
def set_openroad_loadsdcs(self, enable: bool,
|
|
1272
|
+
step: Optional[str] = None, index: Optional[str] = None) -> None:
|
|
1273
|
+
"""
|
|
1274
|
+
Enables or disables loading SDC files before APR.
|
|
1275
|
+
|
|
1276
|
+
Args:
|
|
1277
|
+
enable: True to load SDC files, False to disable.
|
|
1278
|
+
step: The specific step to apply this configuration to.
|
|
1279
|
+
index: The specific index to apply this configuration to.
|
|
1280
|
+
"""
|
|
1281
|
+
self.set("var", "load_sdcs", enable, step=step, index=index)
|
|
1282
|
+
|
|
1267
1283
|
def set_openroad_powercorner(self, corner: str,
|
|
1268
1284
|
step: Optional[str] = None, index: Optional[str] = None) -> None:
|
|
1269
1285
|
"""
|
|
@@ -1334,6 +1350,7 @@ class APRTask(OpenROADTask):
|
|
|
1334
1350
|
self.add_required_key("var", "ord_enable_images")
|
|
1335
1351
|
self.add_required_key("var", "ord_heatmap_bins")
|
|
1336
1352
|
self.add_required_key("var", "load_grt_setup")
|
|
1353
|
+
self.add_required_key("var", "load_sdcs")
|
|
1337
1354
|
|
|
1338
1355
|
if not self.get("var", "global_connect_fileset"):
|
|
1339
1356
|
self.__import_globalconnect_filesets()
|
|
@@ -1346,9 +1363,20 @@ class APRTask(OpenROADTask):
|
|
|
1346
1363
|
libcorners = set()
|
|
1347
1364
|
for scenario in self.project.constraint.timing.get_scenario().values():
|
|
1348
1365
|
libcorners.update(scenario.get_libcorner(self.step, self.index))
|
|
1366
|
+
self.add_required_key(scenario, "pexcorner")
|
|
1367
|
+
self.add_required_key(scenario, "libcorner")
|
|
1368
|
+
if scenario.get_check(self.step, self.index):
|
|
1369
|
+
self.add_required_key(scenario, "check")
|
|
1370
|
+
mode = scenario.get_mode(self.step, self.index)
|
|
1371
|
+
if mode:
|
|
1372
|
+
self.add_required_key(scenario, "mode")
|
|
1373
|
+
if self.get("var", "load_sdcs"):
|
|
1374
|
+
mode_obj = self.project.constraint.timing.get_mode(mode)
|
|
1375
|
+
self.add_required_key(mode_obj, "sdcfileset")
|
|
1376
|
+
|
|
1349
1377
|
delay_model = self.project.get("asic", "delaymodel")
|
|
1350
1378
|
for asiclib in self.project.get("asic", "asiclib"):
|
|
1351
|
-
lib = self.project.
|
|
1379
|
+
lib = self.project.get_library(asiclib)
|
|
1352
1380
|
for corner in libcorners:
|
|
1353
1381
|
if not lib.valid("asic", "libcornerfileset", corner, delay_model):
|
|
1354
1382
|
continue
|
|
@@ -1362,24 +1390,53 @@ class APRTask(OpenROADTask):
|
|
|
1362
1390
|
|
|
1363
1391
|
def __import_globalconnect_filesets(self):
|
|
1364
1392
|
for lib in self.project.get("asic", "asiclib"):
|
|
1365
|
-
libobj = self.project.
|
|
1393
|
+
libobj = self.project.get_library(lib)
|
|
1366
1394
|
if libobj.valid("tool", "openroad", "global_connect_fileset"):
|
|
1367
1395
|
for fileset in libobj.get("tool", "openroad", "global_connect_fileset"):
|
|
1368
1396
|
self.add_openroad_globalconnectfileset(lib, fileset)
|
|
1369
1397
|
|
|
1370
1398
|
def _set_reports(self, task_reports: List[str]):
|
|
1371
|
-
|
|
1399
|
+
skip_reports = set(self.get("var", "skip_reports"))
|
|
1400
|
+
|
|
1401
|
+
if not self.get("var", "load_sdcs"):
|
|
1402
|
+
skip_reports.update((
|
|
1403
|
+
"setup",
|
|
1404
|
+
"hold",
|
|
1405
|
+
"unconstrained",
|
|
1406
|
+
"clock_skew",
|
|
1407
|
+
"fmax",
|
|
1408
|
+
"check_setup",
|
|
1409
|
+
"clock_placement",
|
|
1410
|
+
"clock_trees"))
|
|
1411
|
+
|
|
1412
|
+
self.set("var", "reports", set(task_reports).difference(skip_reports))
|
|
1372
1413
|
|
|
1373
1414
|
if "power" in self.get("var", "reports"):
|
|
1374
1415
|
self.add_required_key("var", "power_corner")
|
|
1375
1416
|
|
|
1376
1417
|
def _add_pnr_inputs(self):
|
|
1377
|
-
if
|
|
1378
|
-
self.
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1418
|
+
if self.get("var", "load_sdcs"):
|
|
1419
|
+
if f"{self.design_topmodule}.sdc" in self.get_files_from_input_nodes():
|
|
1420
|
+
self.add_input_file(ext="sdc")
|
|
1421
|
+
else:
|
|
1422
|
+
for lib, fileset in self.project.get_filesets():
|
|
1423
|
+
if lib.has_file(fileset=fileset, filetype="sdc"):
|
|
1424
|
+
self.add_required_key(lib, "fileset", fileset, "file", "sdc")
|
|
1425
|
+
|
|
1426
|
+
modes = set()
|
|
1427
|
+
for scenario in self.project.constraint.timing.get_scenario().values():
|
|
1428
|
+
mode = scenario.get_mode(self.step, self.index)
|
|
1429
|
+
if mode:
|
|
1430
|
+
modes.add(mode)
|
|
1431
|
+
self.add_required_key(scenario, "mode")
|
|
1432
|
+
mode_obj = self.project.constraint.timing.get_mode(mode)
|
|
1433
|
+
self.add_required_key(mode_obj, "sdcfileset")
|
|
1434
|
+
|
|
1435
|
+
for mode in modes:
|
|
1436
|
+
mode_obj = self.project.constraint.timing.get_mode(mode)
|
|
1437
|
+
for lib, fileset in mode_obj.get_sdcfileset():
|
|
1438
|
+
libobj = self.project.get_library(lib)
|
|
1439
|
+
self.add_required_key(libobj, "fileset", fileset, "file", "sdc")
|
|
1383
1440
|
|
|
1384
1441
|
if f"{self.design_topmodule}.odb" in self.get_files_from_input_nodes():
|
|
1385
1442
|
self.add_input_file(ext="odb")
|
|
@@ -1389,14 +1446,15 @@ class APRTask(OpenROADTask):
|
|
|
1389
1446
|
pass
|
|
1390
1447
|
|
|
1391
1448
|
def _add_pnr_outputs(self):
|
|
1392
|
-
self.
|
|
1449
|
+
if self.get("var", "load_sdcs"):
|
|
1450
|
+
self.add_output_file(ext="sdc")
|
|
1393
1451
|
self.add_output_file(ext="vg")
|
|
1394
1452
|
self.add_output_file(ext="lec.vg")
|
|
1395
1453
|
self.add_output_file(ext="def")
|
|
1396
1454
|
self.add_output_file(ext="odb")
|
|
1397
1455
|
|
|
1398
1456
|
for lib in self.project.get("asic", "asiclib"):
|
|
1399
|
-
libobj = self.project.
|
|
1457
|
+
libobj = self.project.get_library(lib)
|
|
1400
1458
|
for celltype in ["decap", "tie", "filler", "tap", "endcap", "antenna", "physicalonly"]:
|
|
1401
1459
|
if libobj.valid("asic", "cells", celltype) and \
|
|
1402
1460
|
libobj.get("asic", "cells", celltype):
|
{siliconcompiler-0.36.1 → siliconcompiler-0.36.2}/siliconcompiler/tools/openroad/power_grid.py
RENAMED
|
@@ -94,7 +94,7 @@ class PowerGridTask(APRTask, OpenROADSTAParameter, OpenROADPSMParameter):
|
|
|
94
94
|
|
|
95
95
|
def __import_pdn_filesets(self):
|
|
96
96
|
for lib in self.project.get("asic", "asiclib"):
|
|
97
|
-
libobj = self.project.
|
|
97
|
+
libobj = self.project.get_library(lib)
|
|
98
98
|
if libobj.valid("tool", "openroad", "power_grid_fileset"):
|
|
99
99
|
for fileset in libobj.get("tool", "openroad", "power_grid_fileset"):
|
|
100
100
|
self.add_openroad_powergridfileset(lib, fileset)
|
siliconcompiler-0.36.2/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
# Read timing constraints
|
|
3
|
+
###############################
|
|
4
|
+
|
|
5
|
+
if { [sc_cfg_tool_task_get var load_sdcs] } {
|
|
6
|
+
if { [file exists "inputs/${sc_topmodule}.sdc"] } {
|
|
7
|
+
set sdc "inputs/${sc_topmodule}.sdc"
|
|
8
|
+
puts "Reading SDC: ${sdc}"
|
|
9
|
+
read_sdc $sdc
|
|
10
|
+
} else {
|
|
11
|
+
set sdcs [sc_cfg_get_fileset $sc_designlib [sc_cfg_get option fileset] sdc]
|
|
12
|
+
if { [llength $sdcs] > 0 } {
|
|
13
|
+
foreach sdc $sdcs {
|
|
14
|
+
puts "Reading SDC: ${sdc}"
|
|
15
|
+
read_sdc $sdc
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
# fall back on default auto generated constraints file
|
|
19
|
+
set sdc [sc_cfg_tool_task_get var opensta_generic_sdc]
|
|
20
|
+
puts "Reading SDC: ${sdc}"
|
|
21
|
+
utl::warn FLW 1 "Defaulting back to default SDC"
|
|
22
|
+
read_sdc "${sdc}"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -273,7 +273,7 @@ class VPRTask(Task):
|
|
|
273
273
|
self.add_required_key(lib, "fileset", fileset, "file", "sdc")
|
|
274
274
|
self.set("var", "enable_timing_analysis", True)
|
|
275
275
|
|
|
276
|
-
fpga = self.project.
|
|
276
|
+
fpga = self.project.get_library(self.project.get("fpga", "device"))
|
|
277
277
|
self.add_required_key(fpga, "tool", "vpr", "devicecode")
|
|
278
278
|
self.add_required_key(fpga, "tool", "vpr", "clock_model")
|
|
279
279
|
self.add_required_key(fpga, "tool", "vpr", "archfile")
|
|
@@ -287,7 +287,7 @@ class VPRTask(Task):
|
|
|
287
287
|
def runtime_options(self):
|
|
288
288
|
options = super().runtime_options()
|
|
289
289
|
|
|
290
|
-
fpga = self.project.
|
|
290
|
+
fpga = self.project.get_library(self.project.get("fpga", "device"))
|
|
291
291
|
|
|
292
292
|
options.extend(["--device", fpga.get("tool", "vpr", "devicecode")])
|
|
293
293
|
|
|
@@ -393,17 +393,17 @@ class VPRTask(Task):
|
|
|
393
393
|
for report in glob.glob("*.rpt"):
|
|
394
394
|
shutil.move(report, 'reports')
|
|
395
395
|
|
|
396
|
-
fpga = self.project.get("fpga", "device")
|
|
396
|
+
fpga = self.project.get_library(self.project.get("fpga", "device"))
|
|
397
397
|
|
|
398
398
|
dff_cells = []
|
|
399
|
-
if
|
|
400
|
-
dff_cells =
|
|
399
|
+
if fpga.valid("tool", "yosys", "registers"):
|
|
400
|
+
dff_cells = fpga.get("tool", "yosys", "registers")
|
|
401
401
|
brams_cells = []
|
|
402
|
-
if
|
|
403
|
-
brams_cells =
|
|
402
|
+
if fpga.valid("tool", "yosys", "brams"):
|
|
403
|
+
brams_cells = fpga.get("tool", "yosys", "brams")
|
|
404
404
|
dsps_cells = []
|
|
405
|
-
if
|
|
406
|
-
dsps_cells =
|
|
405
|
+
if fpga.valid("tool", "yosys", "dsps"):
|
|
406
|
+
dsps_cells = fpga.get("tool", "yosys", "dsps")
|
|
407
407
|
|
|
408
408
|
stat_extract = re.compile(r' \s*(.*)\s*:\s*([0-9]+)')
|
|
409
409
|
lut_match = re.compile(r'([0-9]+)-LUT')
|
|
@@ -48,8 +48,7 @@ class PlaceTask(VPRTask):
|
|
|
48
48
|
if files:
|
|
49
49
|
pcf_file = files[0]
|
|
50
50
|
|
|
51
|
-
fpga = self.project.
|
|
52
|
-
field="schema")
|
|
51
|
+
fpga = self.project.get_library(self.project.get("fpga", "device"))
|
|
53
52
|
map_file = fpga.find_files("tool", "vpr", "constraintsmap")
|
|
54
53
|
|
|
55
54
|
constraints_map = load_constraints_map(map_file)
|
|
@@ -39,7 +39,7 @@ class _ASICTask(ASICTask, YosysTask):
|
|
|
39
39
|
|
|
40
40
|
delaymodel = self.project.get("asic", "delaymodel")
|
|
41
41
|
for lib in self.project.get("asic", "asiclib"):
|
|
42
|
-
lib_obj = self.project.
|
|
42
|
+
lib_obj = self.project.get_library(lib)
|
|
43
43
|
for corner in self.get("var", "synthesis_corner"):
|
|
44
44
|
if lib_obj.get("asic", "libcornerfileset", corner, delaymodel):
|
|
45
45
|
self.add_required_key(lib_obj, "asic", "libcornerfileset", corner, delaymodel)
|
|
@@ -81,7 +81,7 @@ class _ASICTask(ASICTask, YosysTask):
|
|
|
81
81
|
# Generate synthesis_libraries for Yosys use
|
|
82
82
|
fileset_map = []
|
|
83
83
|
for lib in self.project.get("asic", "asiclib"):
|
|
84
|
-
lib_obj = self.project.
|
|
84
|
+
lib_obj = self.project.get_library(lib)
|
|
85
85
|
for corner in self.get("var", "synthesis_corner"):
|
|
86
86
|
for fileset in lib_obj.get("asic", "libcornerfileset", corner, delaymodel):
|
|
87
87
|
fileset_map.append((lib_obj, fileset))
|
|
@@ -696,7 +696,7 @@ class ASICSynthesis(_ASICTask, YosysTask):
|
|
|
696
696
|
self.add_output_file(ext="vg", clobber=True)
|
|
697
697
|
self.add_output_file(ext="netlist.json")
|
|
698
698
|
|
|
699
|
-
mainlib = self.project.
|
|
699
|
+
mainlib = self.project.get_library(self.project.get("asic", "mainlib"))
|
|
700
700
|
|
|
701
701
|
if self.get('var', 'abc_constraint_driver') is not None:
|
|
702
702
|
self.add_required_key("var", "abc_constraint_driver")
|
|
@@ -799,7 +799,7 @@ class ASICSynthesis(_ASICTask, YosysTask):
|
|
|
799
799
|
|
|
800
800
|
def _get_clock_period(self):
|
|
801
801
|
mainlib = self.project.get("asic", "mainlib")
|
|
802
|
-
clock_units_multiplier = self.project.
|
|
802
|
+
clock_units_multiplier = self.project.get_library(mainlib).get(
|
|
803
803
|
"tool", "yosys", "abc_clock_multiplier") / 1000
|
|
804
804
|
|
|
805
805
|
_, period = self.get_clock()
|