siliconcompiler 0.36.2__tar.gz → 0.36.3__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.2 → siliconcompiler-0.36.3}/Changes +12 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/PKG-INFO +2 -2
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/pyproject.toml +1 -1
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/.gitignore +1 -0
- siliconcompiler-0.36.3/scripts/class_hierarchy.py +128 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/project.py +6 -4
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/baseschema.py +7 -4
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docschema.py +3 -3
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/editableschema.py +1 -1
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/namedschema.py +6 -6
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/cmdlineschema.py +5 -3
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tool.py +4 -2
- siliconcompiler-0.36.3/siliconcompiler/tools/builtin/wait.py +16 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/export.py +0 -2
- siliconcompiler-0.36.3/siliconcompiler/tools/klayout/merge.py +95 -0
- siliconcompiler-0.36.3/siliconcompiler/tools/klayout/scripts/klayout_merge.py +79 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/_tools.json +4 -4
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/PKG-INFO +2 -2
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/SOURCES.txt +4 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/requires.txt +1 -1
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.dockerignore +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.flake8 +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.gitattributes +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.gitignore +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/LICENSE +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/MANIFEST.in +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/README.md +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/SECURITY.md +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/methods.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/scripts/requirements.txt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/setup.cfg +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_install.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/asic.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/checklist.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_component.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_floorplan.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_pins.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/asic_timing.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/fpga_timing.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/constraints/timing_mode.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/heartbeat.pcf +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/heartbeat.sdc +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/tech_flops.lib +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/tech_flops.v +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/vtr_primitives.lib +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000.xml +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_constraint_map.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_rr_graph.xml +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/demo_fpga/z1000_yosys_config.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/heartbeat.sdc +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/general.j2 +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/README.txt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/issue/run.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/replay.sh.j2 +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/data/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/demos/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/demos/asic_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/demos/fpga_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/design.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/highresscreenshotflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/fpga.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/library.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/metrics/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/metrics/asic.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/metrics/fpga.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/git.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/github.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/package/https.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/pdk.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/cli/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/cli/board.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/flowgraph.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/components/graph.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/_common.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/state.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/utils/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/utils/file_utils.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/dashboard/web/viewer.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/docker.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/error.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/scheduler.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/schedulernode.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/taskscheduler.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/_metadata.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/schemagen.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/docs/utils.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/journal.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/parameter.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/parametertype.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/parametervalue.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/safeschema.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/dependencyschema.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/filesetschema.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/metric.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/option.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/packageschema.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/pathschema.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/record.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schematic.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/filter.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/importfiles.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/template/SCDriver.scala +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/chisel/template/build.sbt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/keplerformal/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/keplerformal/lec.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_export.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_operations.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/scripts/klayout_utils.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_drc.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_extspice.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/magic/scripts/sc_magic.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/netgen/scripts/sc_lvs.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/_apr.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/global_placement.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/power_grid_analysis.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/repair_design.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_irdrop.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surfer/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/surfer/show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/lec_asic.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/procs.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_lec.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_synth_asic.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/sc_synth_fpga.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/scripts/syn_strategies.tcl +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-xdm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-opensta.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-vpr.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-wildebeest.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-keplerformal.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-surfer.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-wildebeest.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-keplerformal.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-surfer.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-wildebeest.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/__init__.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/curation.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/issue.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/logging.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/multiprocessing.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/paths.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/settings.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/utils/units.py +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,18 @@ 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.3 (2026-01-21)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Minor:**
|
|
15
|
+
|
|
16
|
+
* Tools:
|
|
17
|
+
|
|
18
|
+
* builtin: added wait task to better handle stalling flow progress
|
|
19
|
+
* klayout: added merge task to provide a simple interface for merging multiple GDSs
|
|
20
|
+
* pyslang: updated to v10.0.0
|
|
21
|
+
|
|
22
|
+
|
|
11
23
|
SiliconCompiler 0.36.2 (2026-01-16)
|
|
12
24
|
=========================================
|
|
13
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.36.
|
|
3
|
+
Version: 0.36.3
|
|
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
|
|
@@ -43,7 +43,7 @@ Requires-Dist: fasteners>=0.20
|
|
|
43
43
|
Requires-Dist: pandas>=1.1.5
|
|
44
44
|
Requires-Dist: psutil>=5.8.0
|
|
45
45
|
Requires-Dist: Jinja2>=2.11.3
|
|
46
|
-
Requires-Dist: pyslang==
|
|
46
|
+
Requires-Dist: pyslang==10.0.0
|
|
47
47
|
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
48
48
|
Requires-Dist: streamlit==1.46.1; python_full_version != "3.9.7"
|
|
49
49
|
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import inspect
|
|
3
|
+
import importlib
|
|
4
|
+
from argparse import ArgumentParser
|
|
5
|
+
|
|
6
|
+
try:
|
|
7
|
+
import graphviz
|
|
8
|
+
_has_graphviz = True
|
|
9
|
+
except ModuleNotFoundError:
|
|
10
|
+
_has_graphviz = False
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# Import all the classes
|
|
14
|
+
from siliconcompiler import (Project, ASIC, FPGA, Lint, Sim, Design, PDK,
|
|
15
|
+
Flowgraph, Checklist, StdCellLibrary, FPGADevice,
|
|
16
|
+
Task, ShowTask, ScreenshotTask, Schematic)
|
|
17
|
+
from siliconcompiler.asic import ASICTask
|
|
18
|
+
from siliconcompiler.constraints import (ASICTimingConstraintSchema, ASICAreaConstraint,
|
|
19
|
+
ASICComponentConstraints, ASICPinConstraints,
|
|
20
|
+
FPGAComponentConstraints, FPGAPinConstraints,
|
|
21
|
+
FPGATimingConstraintSchema)
|
|
22
|
+
from siliconcompiler.schema_support import metric, record, option
|
|
23
|
+
from siliconcompiler.library import ToolLibrarySchema
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def generate_class_hierarchy(classes, output_file="class_hierarchy"):
|
|
27
|
+
"""
|
|
28
|
+
Generates a class inheritance graph using graphviz.
|
|
29
|
+
"""
|
|
30
|
+
if not _has_graphviz:
|
|
31
|
+
raise RuntimeError("Graphviz is not installed."
|
|
32
|
+
" Please install it to generate class hierarchy graphs.")
|
|
33
|
+
|
|
34
|
+
dot = graphviz.Digraph('SiliconCompiler Class Hierarchy',
|
|
35
|
+
comment='SiliconCompiler Class Hierarchy')
|
|
36
|
+
dot.attr('graph', rankdir='RL', concentrate='true')
|
|
37
|
+
dot.attr('node', shape='box', style='rounded,filled')
|
|
38
|
+
|
|
39
|
+
SCHEMA_COLOR = "#fff8dc" # cornsilk
|
|
40
|
+
SCHEMA_SUPPORT_COLOR = "#add8e6" # lightblue
|
|
41
|
+
DEFAULT_COLOR = "#d3d3d3" # lightgrey
|
|
42
|
+
|
|
43
|
+
# Classes exposed at the top-level of the siliconcompiler package
|
|
44
|
+
TOP_LEVEL_CLASSES = {
|
|
45
|
+
'Project', 'ASIC', 'FPGA', 'Lint', 'Sim', 'Design', 'PDK',
|
|
46
|
+
'Flowgraph', 'Checklist', 'StdCellLibrary', 'FPGADevice',
|
|
47
|
+
'Task', 'ShowTask', 'ScreenshotTask', 'Schematic'
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
added_nodes = set()
|
|
51
|
+
|
|
52
|
+
all_mro_classes = set()
|
|
53
|
+
for cls in classes:
|
|
54
|
+
mro = [c for c in inspect.getmro(cls) if 'siliconcompiler' in c.__module__ or c is cls]
|
|
55
|
+
all_mro_classes.update(mro)
|
|
56
|
+
|
|
57
|
+
# Create a subgraph for top-level classes to cluster them
|
|
58
|
+
with dot.subgraph(name='cluster_api') as c:
|
|
59
|
+
c.attr(label='SiliconCompiler API', style='filled', color='#f0f0f0', fontcolor='black')
|
|
60
|
+
|
|
61
|
+
for cls in all_mro_classes:
|
|
62
|
+
if cls.__name__ not in added_nodes:
|
|
63
|
+
module_name = cls.__module__
|
|
64
|
+
if module_name.startswith('siliconcompiler.schema.'):
|
|
65
|
+
color = SCHEMA_COLOR
|
|
66
|
+
elif module_name.startswith('siliconcompiler.schema_support.'):
|
|
67
|
+
color = SCHEMA_SUPPORT_COLOR
|
|
68
|
+
else:
|
|
69
|
+
color = DEFAULT_COLOR
|
|
70
|
+
|
|
71
|
+
# Add node to the cluster or the main graph
|
|
72
|
+
if cls.__name__ in TOP_LEVEL_CLASSES:
|
|
73
|
+
c.node(cls.__name__, fillcolor=color)
|
|
74
|
+
else:
|
|
75
|
+
dot.node(cls.__name__, fillcolor=color)
|
|
76
|
+
added_nodes.add(cls.__name__)
|
|
77
|
+
edges = []
|
|
78
|
+
for cls in all_mro_classes:
|
|
79
|
+
for base in cls.__bases__:
|
|
80
|
+
if 'siliconcompiler' not in base.__module__:
|
|
81
|
+
continue
|
|
82
|
+
if (base.__name__, cls.__name__) in edges:
|
|
83
|
+
continue
|
|
84
|
+
edges.append((base.__name__, cls.__name__))
|
|
85
|
+
# Add edge
|
|
86
|
+
dot.edge(f"{base.__name__}:w", f"{cls.__name__}:e")
|
|
87
|
+
# Save the dot file and render a PNG
|
|
88
|
+
try:
|
|
89
|
+
dot.render(output_file, view=False, format='png', cleanup=True)
|
|
90
|
+
print(f"Generated class hierarchy graph at {output_file}.png")
|
|
91
|
+
except graphviz.ExecutableNotFound:
|
|
92
|
+
print("Graphviz executable not found. Please install it and add it to your PATH.")
|
|
93
|
+
print("On Debian/Ubuntu: sudo apt-get install graphviz")
|
|
94
|
+
print("On macOS (with Homebrew): brew install graphviz")
|
|
95
|
+
|
|
96
|
+
with open(f"{output_file}.dot", 'w') as f:
|
|
97
|
+
f.write(dot.source)
|
|
98
|
+
print(f"Generated dot file at {output_file}.dot")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
if __name__ == "__main__":
|
|
102
|
+
parser = ArgumentParser(
|
|
103
|
+
description="Generate a class inheritance graph for SiliconCompiler classes.")
|
|
104
|
+
parser.add_argument("cls", nargs="?",
|
|
105
|
+
help="A specific class to graph in module/ClassName format "
|
|
106
|
+
"(e.g., siliconcompiler/Project).")
|
|
107
|
+
parser.add_argument("--output", default="class_hierarchy",
|
|
108
|
+
help="Output file name without extension.")
|
|
109
|
+
args = parser.parse_args()
|
|
110
|
+
|
|
111
|
+
if args.cls:
|
|
112
|
+
module, cls_name = args.cls.split("/")
|
|
113
|
+
classes_to_graph = [getattr(importlib.import_module(module), cls_name)]
|
|
114
|
+
else:
|
|
115
|
+
# The list of classes from methods.py
|
|
116
|
+
classes_to_graph = [
|
|
117
|
+
Project, ASIC, FPGA, Lint, Sim,
|
|
118
|
+
Design, PDK, Flowgraph, Checklist, StdCellLibrary, FPGADevice, Schematic,
|
|
119
|
+
Task, ShowTask, ScreenshotTask,
|
|
120
|
+
ASICTask,
|
|
121
|
+
ASICTimingConstraintSchema, ASICAreaConstraint, ASICComponentConstraints,
|
|
122
|
+
ASICPinConstraints, FPGAComponentConstraints, FPGAPinConstraints,
|
|
123
|
+
FPGATimingConstraintSchema,
|
|
124
|
+
metric.MetricSchema, record.RecordSchema, option.OptionSchema,
|
|
125
|
+
ToolLibrarySchema
|
|
126
|
+
]
|
|
127
|
+
|
|
128
|
+
generate_class_hierarchy(classes_to_graph, args.output)
|
|
@@ -4,7 +4,7 @@ import uuid
|
|
|
4
4
|
|
|
5
5
|
import os.path
|
|
6
6
|
|
|
7
|
-
from typing import Union, List, Tuple, TextIO, Optional, Dict, Set
|
|
7
|
+
from typing import Type, Union, List, Tuple, TextIO, Optional, Dict, Set, TypeVar
|
|
8
8
|
|
|
9
9
|
from siliconcompiler.schema import BaseSchema, NamedSchema, EditableSchema, Parameter, Scope, \
|
|
10
10
|
__version__ as schema_version, \
|
|
@@ -33,6 +33,8 @@ from siliconcompiler.utils.multiprocessing import MPManager
|
|
|
33
33
|
from siliconcompiler.utils.paths import jobdir, workdir
|
|
34
34
|
from siliconcompiler.flows.showflow import ShowFlow
|
|
35
35
|
|
|
36
|
+
TProject = TypeVar("TProject", bound="Project")
|
|
37
|
+
|
|
36
38
|
|
|
37
39
|
class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
38
40
|
"""
|
|
@@ -236,7 +238,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
236
238
|
return self.get("option", field="schema")
|
|
237
239
|
|
|
238
240
|
@classmethod
|
|
239
|
-
def convert(cls, obj: "Project") ->
|
|
241
|
+
def convert(cls: Type[TProject], obj: "Project") -> TProject:
|
|
240
242
|
"""
|
|
241
243
|
Converts a project from one type to another (e.g., Project to Sim).
|
|
242
244
|
|
|
@@ -526,7 +528,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
526
528
|
f"{', '.join([f'{step}/{index}' for step, index in breakpoints])}")
|
|
527
529
|
self.__dashboard.stop()
|
|
528
530
|
|
|
529
|
-
def run(self) ->
|
|
531
|
+
def run(self) -> TProject:
|
|
530
532
|
'''
|
|
531
533
|
Executes the compilation flow defined in the project's flowgraph.
|
|
532
534
|
|
|
@@ -1238,7 +1240,7 @@ class Project(PathSchemaBase, CommandLineSchema, BaseSchema):
|
|
|
1238
1240
|
return None
|
|
1239
1241
|
|
|
1240
1242
|
# Create copy of project to avoid changing user project
|
|
1241
|
-
proj
|
|
1243
|
+
proj = self.copy()
|
|
1242
1244
|
proj.set_flow(ShowFlow(task))
|
|
1243
1245
|
|
|
1244
1246
|
# Setup options:
|
|
@@ -26,12 +26,15 @@ import os.path
|
|
|
26
26
|
|
|
27
27
|
from enum import Enum, auto
|
|
28
28
|
from functools import cache
|
|
29
|
-
from typing import Dict, Type, Tuple, Union, Set, Callable, List, Optional,
|
|
29
|
+
from typing import Dict, Type, Tuple, TypeVar, Union, Set, Callable, List, Optional, \
|
|
30
|
+
TextIO, Iterable, Any
|
|
30
31
|
|
|
31
32
|
from .parameter import Parameter, NodeValue
|
|
32
33
|
from .journal import Journal
|
|
33
34
|
from ._metadata import version
|
|
34
35
|
|
|
36
|
+
TSchema = TypeVar('TSchema', bound='BaseSchema')
|
|
37
|
+
|
|
35
38
|
|
|
36
39
|
class LazyLoad(Enum):
|
|
37
40
|
"""
|
|
@@ -286,10 +289,10 @@ class BaseSchema:
|
|
|
286
289
|
|
|
287
290
|
# Manifest methods
|
|
288
291
|
@classmethod
|
|
289
|
-
def from_manifest(cls,
|
|
292
|
+
def from_manifest(cls: Type[TSchema],
|
|
290
293
|
filepath: Union[None, str] = None,
|
|
291
294
|
cfg: Union[None, Dict] = None,
|
|
292
|
-
lazyload: bool = True) ->
|
|
295
|
+
lazyload: bool = True) -> TSchema:
|
|
293
296
|
'''
|
|
294
297
|
Create a new schema based on the provided source files.
|
|
295
298
|
|
|
@@ -849,7 +852,7 @@ class BaseSchema:
|
|
|
849
852
|
return manifest
|
|
850
853
|
|
|
851
854
|
# Utility functions
|
|
852
|
-
def copy(self, key: Optional[Tuple[str, ...]] = None) ->
|
|
855
|
+
def copy(self: TSchema, key: Optional[Tuple[str, ...]] = None) -> TSchema:
|
|
853
856
|
"""
|
|
854
857
|
Returns a copy of this schema.
|
|
855
858
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
from typing import Union, List
|
|
1
|
+
from typing import Type, Union, List
|
|
2
2
|
|
|
3
|
-
from .baseschema import BaseSchema
|
|
3
|
+
from .baseschema import BaseSchema, TSchema
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class DocsSchema(BaseSchema):
|
|
@@ -11,7 +11,7 @@ class DocsSchema(BaseSchema):
|
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
@classmethod
|
|
14
|
-
def make_docs(cls) -> Union[
|
|
14
|
+
def make_docs(cls: Type[TSchema]) -> Union[TSchema, List[TSchema]]:
|
|
15
15
|
"""Generate the documentation representation for this schema.
|
|
16
16
|
|
|
17
17
|
By default, this method returns a standard instance of the class itself.
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
# SC dependencies outside of its directory, since it may be used by tool drivers
|
|
5
5
|
# that have isolated Python environments.
|
|
6
6
|
|
|
7
|
-
from typing import Dict, Tuple, Optional, Set, Union, List
|
|
7
|
+
from typing import Dict, Tuple, Optional, Set, Type, Union, List
|
|
8
8
|
|
|
9
|
-
from .baseschema import BaseSchema, LazyLoad
|
|
9
|
+
from .baseschema import BaseSchema, LazyLoad, TSchema
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class NamedSchema(BaseSchema):
|
|
@@ -76,11 +76,11 @@ class NamedSchema(BaseSchema):
|
|
|
76
76
|
return cfg.get("__meta__", {}).get("name", None)
|
|
77
77
|
|
|
78
78
|
@classmethod
|
|
79
|
-
def from_manifest(cls,
|
|
79
|
+
def from_manifest(cls: Type[TSchema],
|
|
80
80
|
filepath: Union[None, str] = None,
|
|
81
81
|
cfg: Union[None, Dict] = None,
|
|
82
82
|
lazyload: bool = True,
|
|
83
|
-
name: Optional[str] = None):
|
|
83
|
+
name: Optional[str] = None) -> TSchema:
|
|
84
84
|
'''
|
|
85
85
|
Create a new schema based on the provided source files.
|
|
86
86
|
|
|
@@ -115,8 +115,8 @@ class NamedSchema(BaseSchema):
|
|
|
115
115
|
|
|
116
116
|
return super()._from_dict(manifest, keypath, version=version, lazyload=lazyload)
|
|
117
117
|
|
|
118
|
-
def copy(self, key: Optional[Tuple[str, ...]] = None) ->
|
|
119
|
-
copy
|
|
118
|
+
def copy(self: TSchema, key: Optional[Tuple[str, ...]] = None) -> TSchema:
|
|
119
|
+
copy = super().copy(key=key)
|
|
120
120
|
|
|
121
121
|
if key and key[-1] != "default":
|
|
122
122
|
copy.__name = key[-1]
|
{siliconcompiler-0.36.2 → siliconcompiler-0.36.3}/siliconcompiler/schema_support/cmdlineschema.py
RENAMED
|
@@ -4,12 +4,14 @@ import sys
|
|
|
4
4
|
|
|
5
5
|
import os.path
|
|
6
6
|
|
|
7
|
-
from typing import Set, List, Optional, Union
|
|
7
|
+
from typing import Set, List, Optional, Type, Union, TypeVar
|
|
8
8
|
|
|
9
9
|
from siliconcompiler.schema import BaseSchema, EditableSchema, Parameter, Scope, PerNode
|
|
10
10
|
from siliconcompiler.schema.utils import trim
|
|
11
11
|
from siliconcompiler import _metadata
|
|
12
12
|
|
|
13
|
+
TCmdSchema = TypeVar("TCmdSchema", bound="CommandLineSchema")
|
|
14
|
+
|
|
13
15
|
|
|
14
16
|
class CommandLineSchema(BaseSchema):
|
|
15
17
|
'''
|
|
@@ -68,14 +70,14 @@ class CommandLineSchema(BaseSchema):
|
|
|
68
70
|
EditableSchema(self).insert("cmdarg", name, Parameter(type, **kwargs))
|
|
69
71
|
|
|
70
72
|
@classmethod
|
|
71
|
-
def create_cmdline(cls,
|
|
73
|
+
def create_cmdline(cls: Type[TCmdSchema],
|
|
72
74
|
progname: Optional[str] = None,
|
|
73
75
|
description: Optional[str] = None,
|
|
74
76
|
switchlist: Optional[Union[List[str], Set[str]]] = None,
|
|
75
77
|
version: Optional[str] = None,
|
|
76
78
|
print_banner: bool = True,
|
|
77
79
|
use_cfg: bool = False,
|
|
78
|
-
use_sources: bool = True) ->
|
|
80
|
+
use_sources: bool = True) -> TCmdSchema:
|
|
79
81
|
"""
|
|
80
82
|
Creates an SC command line interface.
|
|
81
83
|
|
|
@@ -53,7 +53,8 @@ if TYPE_CHECKING:
|
|
|
53
53
|
from siliconcompiler.scheduler import SchedulerNode
|
|
54
54
|
from siliconcompiler import Project
|
|
55
55
|
|
|
56
|
-
TTask = TypeVar('TTask')
|
|
56
|
+
TTask = TypeVar('TTask', bound='Task')
|
|
57
|
+
TShowTask = TypeVar('TShowTask', bound='ShowTask')
|
|
57
58
|
|
|
58
59
|
|
|
59
60
|
class TaskError(Exception):
|
|
@@ -2177,7 +2178,8 @@ class ShowTask(Task):
|
|
|
2177
2178
|
cls.register_task(c)
|
|
2178
2179
|
|
|
2179
2180
|
@classmethod
|
|
2180
|
-
def get_task(cls, ext: Optional[str]) ->
|
|
2181
|
+
def get_task(cls: Type[TShowTask], ext: Optional[str]) -> \
|
|
2182
|
+
Union[Optional[TShowTask], Set[Type[TShowTask]]]:
|
|
2181
2183
|
"""
|
|
2182
2184
|
Retrieves a suitable show task instance for a given file extension.
|
|
2183
2185
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from siliconcompiler.tools.builtin import BuiltinTask
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Wait(BuiltinTask):
|
|
5
|
+
'''
|
|
6
|
+
A wait task that stalls the flow until all inputs are available.
|
|
7
|
+
'''
|
|
8
|
+
def __init__(self):
|
|
9
|
+
super().__init__()
|
|
10
|
+
|
|
11
|
+
def _set_io_files(self):
|
|
12
|
+
# No file IO needed for wait task
|
|
13
|
+
return
|
|
14
|
+
|
|
15
|
+
def task(self):
|
|
16
|
+
return "wait"
|
|
@@ -79,8 +79,6 @@ class ExportTask(KLayoutTask, ScreenshotParams):
|
|
|
79
79
|
self.add_output_file(ext="lyt")
|
|
80
80
|
self.add_output_file(ext="lyp")
|
|
81
81
|
|
|
82
|
-
self.add_required_key("var", "stream")
|
|
83
|
-
|
|
84
82
|
sc_stream_order = [default_stream, *[s for s in ("gds", "oas") if s != default_stream]]
|
|
85
83
|
req_set = False
|
|
86
84
|
for s in sc_stream_order:
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
from typing import Optional, Union
|
|
2
|
+
|
|
3
|
+
from siliconcompiler.tools.klayout import KLayoutTask
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Merge(KLayoutTask):
|
|
7
|
+
"""
|
|
8
|
+
Klayout task to merge multiple GDS files and provide prefixing for cell names.
|
|
9
|
+
"""
|
|
10
|
+
def __init__(self):
|
|
11
|
+
super().__init__()
|
|
12
|
+
|
|
13
|
+
self.add_parameter("reference", "(<fs,input>,str,str)",
|
|
14
|
+
"Reference fileset or input node for merge operation, structured as "
|
|
15
|
+
"(fs, library name, fileset) or (input, step, index)")
|
|
16
|
+
self.add_parameter("merge", "[(<fs,input>,str,str,str)]",
|
|
17
|
+
"Fileset or input node to be merge with prefix, structured as "
|
|
18
|
+
"(fs, library name, fileset) or (input, step, index) along with prefix "
|
|
19
|
+
"string")
|
|
20
|
+
|
|
21
|
+
def __fix_type(self, type: str) -> str:
|
|
22
|
+
if type == "fileset":
|
|
23
|
+
return "fs"
|
|
24
|
+
return type
|
|
25
|
+
|
|
26
|
+
def set_klayout_reference(self, type: str, source0: str, source1: str,
|
|
27
|
+
step: Optional[str] = None,
|
|
28
|
+
index: Optional[Union[str, int]] = None):
|
|
29
|
+
"""
|
|
30
|
+
Sets the reference file for the merge operation.
|
|
31
|
+
Args:
|
|
32
|
+
type (str): The reference fileset or input node.
|
|
33
|
+
source0 (str): The first part of the source (library name or step).
|
|
34
|
+
source1 (str): The second part of the source (fileset name or index).
|
|
35
|
+
step (Optional[str]): The specific step to apply this configuration to.
|
|
36
|
+
index (Optional[Union[str, int]]): The specific index to apply this configuration to.
|
|
37
|
+
"""
|
|
38
|
+
self.set("var", "reference", (self.__fix_type(type), source0, source1),
|
|
39
|
+
step=step, index=index)
|
|
40
|
+
|
|
41
|
+
def add_klayout_merge(self, type: str, source0: str, source1: str, prefix: str,
|
|
42
|
+
step: Optional[str] = None,
|
|
43
|
+
index: Optional[Union[str, int]] = None, clobber: bool = False):
|
|
44
|
+
"""
|
|
45
|
+
Adds a file to be merged with the reference file.
|
|
46
|
+
Args:
|
|
47
|
+
type (str): The fileset or input node to be merged.
|
|
48
|
+
prefix (str): The prefix to apply during the merge.
|
|
49
|
+
source0 (str): The first part of the source (library name or step).
|
|
50
|
+
source1 (str): The second part of the source (fileset name or index).
|
|
51
|
+
step (Optional[str]): The specific step to apply this configuration to.
|
|
52
|
+
index (Optional[Union[str, int]]): The specific index to apply this configuration to.
|
|
53
|
+
clobber (bool, optional): If True, overwrites the existing list of merge files.
|
|
54
|
+
If False, appends to the list. Defaults to False.
|
|
55
|
+
"""
|
|
56
|
+
if clobber:
|
|
57
|
+
self.set("var", "merge", (self.__fix_type(type), source0, source1, prefix),
|
|
58
|
+
step=step, index=index)
|
|
59
|
+
else:
|
|
60
|
+
self.add("var", "merge", (self.__fix_type(type), source0, source1, prefix),
|
|
61
|
+
step=step, index=index)
|
|
62
|
+
|
|
63
|
+
def task(self) -> str:
|
|
64
|
+
return 'merge'
|
|
65
|
+
|
|
66
|
+
def setup(self) -> None:
|
|
67
|
+
super().setup()
|
|
68
|
+
|
|
69
|
+
self.set_script("klayout_merge.py")
|
|
70
|
+
|
|
71
|
+
self.add_required_key("var", "reference")
|
|
72
|
+
self.add_required_key("var", "merge")
|
|
73
|
+
|
|
74
|
+
if self.get("var", "reference"):
|
|
75
|
+
ref_type, ref_source0, ref_source1 = self.get("var", "reference")
|
|
76
|
+
if ref_type == 'input':
|
|
77
|
+
step, index = ref_source0, ref_source1
|
|
78
|
+
self.add_input_file(
|
|
79
|
+
self.compute_input_file_node_name(f"{self.design_topmodule}.gds",
|
|
80
|
+
step, index))
|
|
81
|
+
else:
|
|
82
|
+
lib_name, fileset = ref_source0, ref_source1
|
|
83
|
+
self.add_required_key("library", lib_name, "fileset", fileset, "file", "gds")
|
|
84
|
+
for merge_entry in self.get("var", "merge"):
|
|
85
|
+
merge_type, merge_source0, merge_source1, _ = merge_entry
|
|
86
|
+
if merge_type == 'input':
|
|
87
|
+
step, index = merge_source0, merge_source1
|
|
88
|
+
self.add_input_file(
|
|
89
|
+
self.compute_input_file_node_name(f"{self.design_topmodule}.gds",
|
|
90
|
+
step, index))
|
|
91
|
+
else:
|
|
92
|
+
lib_name, fileset = merge_source0, merge_source1
|
|
93
|
+
self.add_required_key("library", lib_name, "fileset", fileset, "file", "gds")
|
|
94
|
+
|
|
95
|
+
self.add_output_file(ext="gds")
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import pya
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
import os.path
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
if __name__ == "__main__":
|
|
8
|
+
# SC_ROOT provided by CLI
|
|
9
|
+
sys.path.append(SC_KLAYOUT_ROOT) # noqa: F821
|
|
10
|
+
sys.path.append(SC_TOOLS_ROOT) # noqa: F821
|
|
11
|
+
sys.path.append(SC_ROOT) # noqa: F821
|
|
12
|
+
|
|
13
|
+
from klayout_utils import (
|
|
14
|
+
technology,
|
|
15
|
+
get_schema,
|
|
16
|
+
generate_metrics
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
from klayout_operations import (
|
|
20
|
+
read_layout,
|
|
21
|
+
write_stream
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
schema = get_schema(manifest='sc_manifest.json')
|
|
25
|
+
|
|
26
|
+
# Extract info from manifest
|
|
27
|
+
sc_step = schema.get('arg', 'step')
|
|
28
|
+
sc_index = schema.get('arg', 'index')
|
|
29
|
+
sc_tool = 'klayout'
|
|
30
|
+
sc_task = 'merge'
|
|
31
|
+
|
|
32
|
+
design_name = schema.get('option', 'design')
|
|
33
|
+
fileset = schema.get("option", "fileset")[0]
|
|
34
|
+
design = schema.get("library", design_name, "fileset", fileset, "topmodule")
|
|
35
|
+
|
|
36
|
+
ref_type, ref_source0, ref_source1 = schema.get("tool", sc_tool, "task", sc_task,
|
|
37
|
+
"var", "reference",
|
|
38
|
+
step=sc_step, index=sc_index)
|
|
39
|
+
if ref_type == 'input':
|
|
40
|
+
step, index = ref_source0, ref_source1
|
|
41
|
+
input_file = os.path.join('inputs', f"{design}.{ref_source0}{ref_source1}.gds")
|
|
42
|
+
else:
|
|
43
|
+
input_file = schema.get("library", ref_source0, "fileset", ref_source1, "file", "gds")[0]
|
|
44
|
+
|
|
45
|
+
merge_files = []
|
|
46
|
+
for merge_type, merge_source0, merge_source1, prefix in \
|
|
47
|
+
schema.get("tool", sc_tool, "task", sc_task, "var", "merge",
|
|
48
|
+
step=sc_step, index=sc_index):
|
|
49
|
+
if merge_type == 'input':
|
|
50
|
+
merge_file = os.path.join('inputs', f"{design}.{merge_source0}{merge_source1}.gds")
|
|
51
|
+
else:
|
|
52
|
+
merge_file = schema.get("library", merge_source0, "fileset", merge_source1,
|
|
53
|
+
"file", "gds")[0]
|
|
54
|
+
merge_files.append((prefix, merge_file))
|
|
55
|
+
|
|
56
|
+
tech = technology(design, schema)
|
|
57
|
+
base_layout = read_layout(input_file)
|
|
58
|
+
top_cell = base_layout.top_cell()
|
|
59
|
+
base_layout.technology_name = tech.name
|
|
60
|
+
|
|
61
|
+
for prefix, merge_file in merge_files:
|
|
62
|
+
print(f"[INFO] Merging file '{merge_file}' with prefix '{prefix}'")
|
|
63
|
+
merge_layout = read_layout(merge_file)
|
|
64
|
+
|
|
65
|
+
merge_top = merge_layout.top_cell()
|
|
66
|
+
|
|
67
|
+
new_cell_name = f"{prefix}{merge_top.name}"
|
|
68
|
+
if base_layout.cell(new_cell_name):
|
|
69
|
+
print(f"[WARN] Cell '{new_cell_name}' already exists in base layout. Skipping.")
|
|
70
|
+
continue
|
|
71
|
+
print(f"[INFO] Adding cell '{merge_top.name}' as '{new_cell_name}'")
|
|
72
|
+
new_cell = base_layout.create_cell(new_cell_name)
|
|
73
|
+
new_cell.copy_tree(merge_top)
|
|
74
|
+
cell_inst = pya.CellInstArray(new_cell.cell_index(), pya.Trans())
|
|
75
|
+
top_cell.insert(cell_inst)
|
|
76
|
+
|
|
77
|
+
write_stream(base_layout, f"outputs/{design}.gds", True)
|
|
78
|
+
|
|
79
|
+
generate_metrics()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"openroad": {
|
|
3
3
|
"git-url": "https://github.com/The-OpenROAD-Project/OpenROAD.git",
|
|
4
|
-
"git-commit": "
|
|
4
|
+
"git-commit": "11bd3ead9d12211b72706ac7c8653234cc136b8b",
|
|
5
5
|
"docker-cmds": [
|
|
6
6
|
"# Remove OR-Tools files",
|
|
7
7
|
"RUN rm -f $SC_PREFIX/Makefile $SC_PREFIX/README.md",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"opensta": {
|
|
19
19
|
"git-url": "https://github.com/parallaxsw/OpenSTA.git",
|
|
20
|
-
"git-commit": "
|
|
20
|
+
"git-commit": "dda887bc6e5160fd7c15489cc5845eaff72b5252",
|
|
21
21
|
"auto-update": true
|
|
22
22
|
},
|
|
23
23
|
"netgen": {
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
},
|
|
169
169
|
"keplerformal": {
|
|
170
170
|
"git-url": "https://github.com/keplertech/kepler-formal.git",
|
|
171
|
-
"git-commit": "
|
|
171
|
+
"git-commit": "d647673f3b3960256069a79e8d92d36a3b89d9a4",
|
|
172
172
|
"auto-update": false
|
|
173
173
|
}
|
|
174
|
-
}
|
|
174
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.36.
|
|
3
|
+
Version: 0.36.3
|
|
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
|
|
@@ -43,7 +43,7 @@ Requires-Dist: fasteners>=0.20
|
|
|
43
43
|
Requires-Dist: pandas>=1.1.5
|
|
44
44
|
Requires-Dist: psutil>=5.8.0
|
|
45
45
|
Requires-Dist: Jinja2>=2.11.3
|
|
46
|
-
Requires-Dist: pyslang==
|
|
46
|
+
Requires-Dist: pyslang==10.0.0
|
|
47
47
|
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
48
48
|
Requires-Dist: streamlit==1.46.1; python_full_version != "3.9.7"
|
|
49
49
|
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|