siliconcompiler 0.29.3__tar.gz → 0.29.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/Changes +16 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/PKG-INFO +5 -5
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/README.md +1 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/pyproject.toml +3 -3
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc_install.py +18 -3
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/client.py +3 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/__init__.py +9 -3
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/__init__.py +1 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/_common/asic.py +3 -0
- siliconcompiler-0.29.4/siliconcompiler/tools/_common/asic_clock.py +101 -0
- siliconcompiler-0.29.4/siliconcompiler/tools/bambu/convert.py +159 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/_apr.py +11 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/init_floorplan.py +7 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/macro_placement.py +1 -2
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/pin_placement.py +0 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +3 -2
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +1 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +1 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +24 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +2 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +1 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -13
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/slang/__init__.py +1 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/verilator/verilator.py +1 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/__init__.py +26 -23
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/procs.tcl +17 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/syn_asic.py +12 -65
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/syn_asic.tcl +6 -51
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/_tools.json +2 -2
- {siliconcompiler-0.29.3/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.29.4/siliconcompiler/toolscripts/rhel8}/install-yosys.sh +1 -1
- siliconcompiler-0.29.4/siliconcompiler/toolscripts/rhel9/install-openroad.sh +34 -0
- {siliconcompiler-0.29.3/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.29.4/siliconcompiler/toolscripts/rhel9}/install-yosys.sh +1 -1
- {siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.29.4/siliconcompiler/toolscripts/ubuntu20}/install-yosys.sh +1 -1
- {siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.29.4/siliconcompiler/toolscripts/ubuntu22}/install-yosys.sh +1 -1
- {siliconcompiler-0.29.3/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.29.4/siliconcompiler/toolscripts/ubuntu24}/install-yosys.sh +1 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/utils/__init__.py +2 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler.egg-info/PKG-INFO +5 -5
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler.egg-info/SOURCES.txt +2 -1
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler.egg-info/requires.txt +3 -3
- siliconcompiler-0.29.3/siliconcompiler/tools/bambu/convert.py +0 -78
- siliconcompiler-0.29.3/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/.dockerignore +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/.flake8 +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/.gitattributes +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/.gitignore +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/LICENSE +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/MANIFEST.in +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/SECURITY.md +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/scripts/.gitignore +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/scripts/check_library.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/scripts/report_library.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/setup.cfg +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/__main__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/core.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/_common.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/asictopflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/screenshotflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/fpgas/vpr_example.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/issue.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/libs/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/package.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/pdks/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/components/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/components/graph.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/state.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/dashboard/viewer.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/html_report.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/summary_table.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/docker_runner.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/schema/schema_cfg.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/schema/schema_obj.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/sphinx_ext/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/sphinx_ext/utils.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/asic_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/email/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/email/general.j2 +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/issue/README.txt +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/issue/run.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/report/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/report/sc_report.j2 +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- /siliconcompiler-0.29.3/siliconcompiler/tools/bambu/bambu.py → /siliconcompiler-0.29.4/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/bambu → siliconcompiler-0.29.4/siliconcompiler/tools/bluespec}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/bluespec → siliconcompiler-0.29.4/siliconcompiler/tools/builtin}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/_common.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/builtin.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/concatenate.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/builtin → siliconcompiler-0.29.4/siliconcompiler/tools/chisel}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/chisel/build.sbt +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/chisel/chisel.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/chisel → siliconcompiler-0.29.4/siliconcompiler/tools/execute}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/execute/execute.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/execute → siliconcompiler-0.29.4/siliconcompiler/tools/genfasm}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/genfasm → siliconcompiler-0.29.4/siliconcompiler/tools/ghdl}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/ghdl → siliconcompiler-0.29.4/siliconcompiler/tools/icarus}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/icarus/icarus.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/icarus → siliconcompiler-0.29.4/siliconcompiler/tools/icepack}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/icepack/icepack.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/icepack → siliconcompiler-0.29.4/siliconcompiler/tools/klayout}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/export.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/klayout.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/klayout → siliconcompiler-0.29.4/siliconcompiler/tools/magic}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/magic/magic.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/magic → siliconcompiler-0.29.4/siliconcompiler/tools/montage}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/montage/montage.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/montage → siliconcompiler-0.29.4/siliconcompiler/tools/netgen}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/netgen/netgen.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/netgen → siliconcompiler-0.29.4/siliconcompiler/tools/nextpnr}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/global_placement.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/repair_design.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/nextpnr → siliconcompiler-0.29.4/siliconcompiler/tools/openroad/templates}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/openroad/templates → siliconcompiler-0.29.4/siliconcompiler/tools/opensta/scripts}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/opensta/scripts → siliconcompiler-0.29.4/siliconcompiler/tools/surelog/templates}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/surelog/templates → siliconcompiler-0.29.4/siliconcompiler/tools/sv2v}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/sv2v → siliconcompiler-0.29.4/siliconcompiler/tools/template}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/template/template.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/template → siliconcompiler-0.29.4/siliconcompiler/tools/verilator}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/verilator/parse.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/verilator → siliconcompiler-0.29.4/siliconcompiler/tools/vivado/scripts}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vivado/vivado.py +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/vivado/scripts → siliconcompiler-0.29.4/siliconcompiler/tools/vpr}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/vpr/vpr.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/lec.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/sc_syn.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/screenshot.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/syn_fpga.tcl +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/vpr → siliconcompiler-0.29.4/siliconcompiler/tools/yosys/techmaps}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.29.3/siliconcompiler/tools/yosys/techmaps → siliconcompiler-0.29.4/siliconcompiler/tools/yosys/templates}/__init__.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/units.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/use.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/utils/asic.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/utils/logging.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,22 @@ 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.29.4 (2025-02-06)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Minor:**
|
|
15
|
+
|
|
16
|
+
* Added helper function to allow tasks to handle clock information in a uniform method.
|
|
17
|
+
* Improved feedback on unsupported platforms during `sc-install`.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
* Tools:
|
|
21
|
+
|
|
22
|
+
* bambu: updates to better handle platform and clock information.
|
|
23
|
+
* openroad: added recover_power option support.
|
|
24
|
+
* yosys: switch to use builtin `keep_hierarchy` to speedup compile times.
|
|
25
|
+
|
|
26
|
+
|
|
11
27
|
SiliconCompiler 0.29.3 (2025-01-28)
|
|
12
28
|
=========================================
|
|
13
29
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.29.
|
|
3
|
+
Version: 0.29.4
|
|
4
4
|
Summary: A compiler framework that automates translation from source code to silicon.
|
|
5
5
|
Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -38,7 +38,7 @@ Requires-Dist: psutil>=5.8.0
|
|
|
38
38
|
Requires-Dist: Pillow==10.4.0; python_version <= "3.8"
|
|
39
39
|
Requires-Dist: Pillow==11.1.0; python_version >= "3.9"
|
|
40
40
|
Requires-Dist: GitPython==3.1.44
|
|
41
|
-
Requires-Dist: lambdapdk>=0.1.
|
|
41
|
+
Requires-Dist: lambdapdk>=0.1.47
|
|
42
42
|
Requires-Dist: PyGithub==2.5.0
|
|
43
43
|
Requires-Dist: urllib3>=1.26.0
|
|
44
44
|
Requires-Dist: fasteners==0.19
|
|
@@ -58,7 +58,7 @@ Requires-Dist: pytest==8.3.4; extra == "test"
|
|
|
58
58
|
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
|
|
59
59
|
Requires-Dist: pytest-timeout==2.3.1; extra == "test"
|
|
60
60
|
Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
|
|
61
|
-
Requires-Dist: pytest-asyncio==0.25.
|
|
61
|
+
Requires-Dist: pytest-asyncio==0.25.3; python_version >= "3.9" and extra == "test"
|
|
62
62
|
Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
|
|
63
63
|
Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
|
|
64
64
|
Requires-Dist: responses==0.25.6; extra == "test"
|
|
@@ -66,7 +66,7 @@ Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
|
66
66
|
Provides-Extra: lint
|
|
67
67
|
Requires-Dist: flake8==7.1.1; extra == "lint"
|
|
68
68
|
Requires-Dist: tclint==0.5.0; extra == "lint"
|
|
69
|
-
Requires-Dist: codespell==2.4.
|
|
69
|
+
Requires-Dist: codespell==2.4.1; extra == "lint"
|
|
70
70
|
Provides-Extra: docs
|
|
71
71
|
Requires-Dist: Sphinx==8.1.3; extra == "docs"
|
|
72
72
|
Requires-Dist: pip-licenses==5.0.0; extra == "docs"
|
|
@@ -195,7 +195,7 @@ python3 -m pip install -e .[docs,test] # Optional install step for generating d
|
|
|
195
195
|
Installation instructions for all external tools can be found in the
|
|
196
196
|
[External Tools](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html#external-tools) section
|
|
197
197
|
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools.
|
|
198
|
-
See the [./
|
|
198
|
+
See the [./siliconcompiler/toolscripts](./siliconcompiler/toolscripts) directory for a complete set of scripts and [./siliconcompiler/toolscripts/_tools.json](./siliconcompiler/toolscripts/_tools.json) for the currently recommended tool versions.
|
|
199
199
|
|
|
200
200
|
# Contributing
|
|
201
201
|
|
|
@@ -113,7 +113,7 @@ python3 -m pip install -e .[docs,test] # Optional install step for generating d
|
|
|
113
113
|
Installation instructions for all external tools can be found in the
|
|
114
114
|
[External Tools](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html#external-tools) section
|
|
115
115
|
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools.
|
|
116
|
-
See the [./
|
|
116
|
+
See the [./siliconcompiler/toolscripts](./siliconcompiler/toolscripts) directory for a complete set of scripts and [./siliconcompiler/toolscripts/_tools.json](./siliconcompiler/toolscripts/_tools.json) for the currently recommended tool versions.
|
|
117
117
|
|
|
118
118
|
# Contributing
|
|
119
119
|
|
|
@@ -45,7 +45,7 @@ dependencies = [
|
|
|
45
45
|
"Pillow == 10.4.0; python_version <= '3.8'",
|
|
46
46
|
"Pillow == 11.1.0; python_version >= '3.9'",
|
|
47
47
|
"GitPython == 3.1.44",
|
|
48
|
-
"lambdapdk >= 0.1.
|
|
48
|
+
"lambdapdk >= 0.1.47",
|
|
49
49
|
"PyGithub == 2.5.0",
|
|
50
50
|
"urllib3 >= 1.26.0", # Required for PyGithub
|
|
51
51
|
"fasteners == 0.19",
|
|
@@ -106,7 +106,7 @@ test = [
|
|
|
106
106
|
"pytest-xdist == 3.6.1",
|
|
107
107
|
"pytest-timeout == 2.3.1",
|
|
108
108
|
"pytest-asyncio == 0.24.0; python_version <= '3.8'",
|
|
109
|
-
"pytest-asyncio == 0.25.
|
|
109
|
+
"pytest-asyncio == 0.25.3; python_version >= '3.9'",
|
|
110
110
|
"pytest-cov == 5.0.0; python_version <= '3.8'",
|
|
111
111
|
"pytest-cov == 6.0.0; python_version >= '3.9'",
|
|
112
112
|
"responses == 0.25.6",
|
|
@@ -115,7 +115,7 @@ test = [
|
|
|
115
115
|
lint = [
|
|
116
116
|
"flake8 == 7.1.1",
|
|
117
117
|
"tclint == 0.5.0",
|
|
118
|
-
"codespell == 2.4.
|
|
118
|
+
"codespell == 2.4.1"
|
|
119
119
|
]
|
|
120
120
|
docs = [
|
|
121
121
|
"Sphinx == 8.1.3",
|
|
@@ -73,16 +73,18 @@ def show_tool(tool, script):
|
|
|
73
73
|
def _get_os_name():
|
|
74
74
|
machine_info = _get_machine_info()
|
|
75
75
|
system = machine_info.get('system', "").lower()
|
|
76
|
-
distro = machine_info.get('distro', "").lower()
|
|
77
|
-
osversion = machine_info.get('osversion', "").lower()
|
|
78
76
|
if system == 'linux':
|
|
77
|
+
distro = machine_info.get('distro', "").lower()
|
|
79
78
|
if distro == 'ubuntu':
|
|
79
|
+
osversion = machine_info.get('osversion', "").lower()
|
|
80
80
|
version, _ = osversion.split('.')
|
|
81
81
|
return f"{distro}{version}"
|
|
82
82
|
elif distro == 'rocky':
|
|
83
|
+
osversion = machine_info.get('osversion', "").lower()
|
|
83
84
|
version, _ = osversion.split('.')
|
|
84
85
|
return f"rhel{version}"
|
|
85
86
|
elif distro == 'rhel':
|
|
87
|
+
osversion = machine_info.get('osversion', "").lower()
|
|
86
88
|
version, _ = osversion.split('.')
|
|
87
89
|
return f"rhel{version}"
|
|
88
90
|
return None
|
|
@@ -134,6 +136,10 @@ def _recommended_tool_groups(tools):
|
|
|
134
136
|
for group, group_tools in groups.items():
|
|
135
137
|
if all([tool in tools for tool in group_tools]):
|
|
136
138
|
filter_groups[group] = group_tools
|
|
139
|
+
else:
|
|
140
|
+
missing = sorted([tool for tool in group_tools if tool not in tools])
|
|
141
|
+
filter_groups[group] = f"{group} group is not available for {_get_os_name()} " \
|
|
142
|
+
f"due to lack of support for the following tools: {', '.join(missing)}"
|
|
137
143
|
return filter_groups
|
|
138
144
|
|
|
139
145
|
|
|
@@ -172,6 +178,11 @@ To system debugging information (this should only be used to debug):
|
|
|
172
178
|
|
|
173
179
|
tools = _get_tools_list()
|
|
174
180
|
|
|
181
|
+
if _get_os_name() is None:
|
|
182
|
+
print("Unsupported operating system", file=sys.stderr)
|
|
183
|
+
print_machine_info()
|
|
184
|
+
return 1
|
|
185
|
+
|
|
175
186
|
tool_choices = ChoiceOptional(tools.keys())
|
|
176
187
|
parser.add_argument(
|
|
177
188
|
"tool",
|
|
@@ -220,7 +231,11 @@ To system debugging information (this should only be used to debug):
|
|
|
220
231
|
args.tool = list(args.tool)
|
|
221
232
|
if args.group:
|
|
222
233
|
for group in args.group:
|
|
223
|
-
|
|
234
|
+
if isinstance(tool_groups[group], str):
|
|
235
|
+
print(tool_groups[group], file=sys.stderr)
|
|
236
|
+
return 1
|
|
237
|
+
else:
|
|
238
|
+
args.tool.extend(tool_groups[group])
|
|
224
239
|
|
|
225
240
|
tools_handled = set()
|
|
226
241
|
for tool in args.tool:
|
|
@@ -477,6 +477,9 @@ service, provided by SiliconCompiler, is not intended to process proprietary IP.
|
|
|
477
477
|
# Flush file to ensure everything is written
|
|
478
478
|
upload_file.flush()
|
|
479
479
|
|
|
480
|
+
# We no longer need the collected files
|
|
481
|
+
shutil.rmtree(self.__chip._getcollectdir(jobname=self.__chip.get('option', 'jobname')))
|
|
482
|
+
|
|
480
483
|
if 'pre_upload' in remote_status:
|
|
481
484
|
self.__logger.info(remote_status['pre_upload']['message'])
|
|
482
485
|
time.sleep(remote_status['pre_upload']['delay'])
|
|
@@ -1628,8 +1628,14 @@ def _launch_nodes(chip, nodes_to_run, processes, local_processes):
|
|
|
1628
1628
|
# Update dashboard if the manifest changed
|
|
1629
1629
|
chip._dash.update_manifest()
|
|
1630
1630
|
|
|
1631
|
-
|
|
1632
|
-
|
|
1631
|
+
if len(running_nodes) == 1:
|
|
1632
|
+
# if there is only one node running, just join the thread
|
|
1633
|
+
running_node = list(running_nodes.keys())[0]
|
|
1634
|
+
processes[running_node]["proc"].join()
|
|
1635
|
+
elif len(running_nodes) > 1:
|
|
1636
|
+
# if there are more than 1, join the first with a timeout
|
|
1637
|
+
running_node = list(running_nodes.keys())[0]
|
|
1638
|
+
processes[running_node]["proc"].join(timeout=0.1)
|
|
1633
1639
|
|
|
1634
1640
|
|
|
1635
1641
|
def _process_completed_nodes(chip, processes, running_nodes):
|
|
@@ -1949,7 +1955,7 @@ def check_node_inputs(chip, step, index):
|
|
|
1949
1955
|
step=check_step, index=check_index)
|
|
1950
1956
|
|
|
1951
1957
|
if check_hash != prev_hash:
|
|
1952
|
-
print_warning(key)
|
|
1958
|
+
print_warning(key, "file hash")
|
|
1953
1959
|
return False
|
|
1954
1960
|
else:
|
|
1955
1961
|
# check timestamps on current files
|
|
@@ -194,6 +194,9 @@ def set_tool_task_lib_var(chip,
|
|
|
194
194
|
|
|
195
195
|
values.update(chip.get(*lib_key, step=get_step, index=get_index))
|
|
196
196
|
|
|
197
|
+
if default_value and not check_value(values):
|
|
198
|
+
values = default_value
|
|
199
|
+
|
|
197
200
|
if check_value(values):
|
|
198
201
|
chip.set('tool', tool, 'task', task, 'var', param_key, values,
|
|
199
202
|
step=step, index=index, clobber=False)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from siliconcompiler.utils import sc_open
|
|
3
|
+
from siliconcompiler.tools._common.asic import get_tool_task
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def __get_clock_data(chip, clock_units_multiplier=1):
|
|
7
|
+
step = chip.get('arg', 'step')
|
|
8
|
+
index = chip.get('arg', 'index')
|
|
9
|
+
|
|
10
|
+
period = None
|
|
11
|
+
# get clock information from sdc files
|
|
12
|
+
if chip.valid('input', 'constraint', 'sdc'):
|
|
13
|
+
for sdc in chip.find_files('input', 'constraint', 'sdc', step=step, index=index):
|
|
14
|
+
lines = []
|
|
15
|
+
with sc_open(sdc) as f:
|
|
16
|
+
lines = f.read().splitlines()
|
|
17
|
+
|
|
18
|
+
# collect simple variables in case clock is specified with a variable
|
|
19
|
+
re_var = r"[A-Za-z0-9_]+"
|
|
20
|
+
re_num = r"[0-9\.]+"
|
|
21
|
+
sdc_vars = {}
|
|
22
|
+
for line in lines:
|
|
23
|
+
tcl_variable = re.findall(fr"^\s*set\s+({re_var})\s+({re_num}|\${re_var})", line)
|
|
24
|
+
if tcl_variable:
|
|
25
|
+
var_name, var_value = tcl_variable[0]
|
|
26
|
+
sdc_vars[f'${var_name}'] = var_value
|
|
27
|
+
|
|
28
|
+
# TODO: handle line continuations
|
|
29
|
+
for line in lines:
|
|
30
|
+
clock_period = re.findall(fr"create_clock\s.*-period\s+({re_num}|\${re_var})",
|
|
31
|
+
line)
|
|
32
|
+
if clock_period:
|
|
33
|
+
convert_period = clock_period[0]
|
|
34
|
+
while isinstance(convert_period, str) and convert_period[0] == "$":
|
|
35
|
+
if convert_period in sdc_vars:
|
|
36
|
+
convert_period = sdc_vars[convert_period]
|
|
37
|
+
else:
|
|
38
|
+
break
|
|
39
|
+
if isinstance(convert_period, str) and convert_period[0] == "$":
|
|
40
|
+
chip.logger.warning('Unable to identify clock period from '
|
|
41
|
+
f'{clock_period[0]}.')
|
|
42
|
+
continue
|
|
43
|
+
else:
|
|
44
|
+
try:
|
|
45
|
+
clock_period = float(convert_period)
|
|
46
|
+
except TypeError:
|
|
47
|
+
continue
|
|
48
|
+
|
|
49
|
+
clock_period = clock_period * clock_units_multiplier
|
|
50
|
+
|
|
51
|
+
if period is None:
|
|
52
|
+
period = clock_period
|
|
53
|
+
else:
|
|
54
|
+
period = min(period, clock_period)
|
|
55
|
+
|
|
56
|
+
if period is not None:
|
|
57
|
+
return period, None, [('input', 'constraint', 'sdc')]
|
|
58
|
+
|
|
59
|
+
if period is None:
|
|
60
|
+
keys = []
|
|
61
|
+
key_pin = None
|
|
62
|
+
# get clock information from defined clocks
|
|
63
|
+
for pin in chip.getkeys('datasheet', 'pin'):
|
|
64
|
+
for mode in chip.getkeys('datasheet', 'pin', pin, 'type'):
|
|
65
|
+
if chip.get('datasheet', 'pin', pin, 'type', mode) == 'clock':
|
|
66
|
+
clock_period = min(chip.get('datasheet', 'pin', pin, 'tperiod', mode)) * 1e9
|
|
67
|
+
|
|
68
|
+
if period is None:
|
|
69
|
+
period = clock_period
|
|
70
|
+
keys = [
|
|
71
|
+
('datasheet', 'pin', pin, 'type', mode),
|
|
72
|
+
('datasheet', 'pin', pin, 'tperiod', mode)
|
|
73
|
+
]
|
|
74
|
+
key_pin = pin
|
|
75
|
+
else:
|
|
76
|
+
if clock_period < period:
|
|
77
|
+
period = clock_period
|
|
78
|
+
keys = [
|
|
79
|
+
('datasheet', 'pin', pin, 'type', mode),
|
|
80
|
+
('datasheet', 'pin', pin, 'tperiod', mode)
|
|
81
|
+
]
|
|
82
|
+
key_pin = pin
|
|
83
|
+
return period, key_pin, keys
|
|
84
|
+
|
|
85
|
+
return None, None, []
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def add_clock_requirements(chip):
|
|
89
|
+
_, _, keys = __get_clock_data(chip)
|
|
90
|
+
|
|
91
|
+
step = chip.get('arg', 'step')
|
|
92
|
+
index = chip.get('arg', 'index')
|
|
93
|
+
tool, task = get_tool_task(chip, step, index)
|
|
94
|
+
for key in keys:
|
|
95
|
+
chip.add('tool', tool, 'task', task, 'require', ','.join(key),
|
|
96
|
+
step=step, index=index)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def get_clock_period(chip, clock_units_multiplier=1):
|
|
100
|
+
period, name, _ = __get_clock_data(chip, clock_units_multiplier=clock_units_multiplier)
|
|
101
|
+
return name, period
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import re
|
|
3
|
+
import shutil
|
|
4
|
+
from siliconcompiler.utils import sc_open
|
|
5
|
+
from siliconcompiler.tools._common.asic import set_tool_task_var, set_tool_task_lib_var, get_mainlib
|
|
6
|
+
from siliconcompiler.tools._common.asic_clock import get_clock_period, add_clock_requirements
|
|
7
|
+
from siliconcompiler.tools._common import \
|
|
8
|
+
add_frontend_requires, add_require_input, get_frontend_options, get_input_files, \
|
|
9
|
+
get_tool_task, has_input_files, record_metric
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def make_docs(chip):
|
|
13
|
+
from siliconcompiler.targets import freepdk45_demo
|
|
14
|
+
chip.use(freepdk45_demo)
|
|
15
|
+
chip.input('<design>.c')
|
|
16
|
+
return setup(chip)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def setup(chip):
|
|
20
|
+
'''
|
|
21
|
+
Performs high level synthesis to generate a verilog output
|
|
22
|
+
'''
|
|
23
|
+
|
|
24
|
+
if not has_input_files(chip, 'input', 'hll', 'c') and \
|
|
25
|
+
not has_input_files(chip, 'input', 'hll', 'llvm'):
|
|
26
|
+
return "no files in [input,hll,c] or [input,hll,llvm]"
|
|
27
|
+
|
|
28
|
+
step = chip.get('arg', 'step')
|
|
29
|
+
index = chip.get('arg', 'index')
|
|
30
|
+
tool, task = get_tool_task(chip, step, index)
|
|
31
|
+
|
|
32
|
+
# Standard Setup
|
|
33
|
+
refdir = 'tools/' + tool
|
|
34
|
+
chip.set('tool', tool, 'exe', 'bambu')
|
|
35
|
+
chip.set('tool', tool, 'vswitch', '--version')
|
|
36
|
+
chip.set('tool', tool, 'version', '>=2024.03', clobber=False)
|
|
37
|
+
|
|
38
|
+
chip.set('tool', tool, 'task', task, 'refdir', refdir,
|
|
39
|
+
step=step, index=index,
|
|
40
|
+
package='siliconcompiler', clobber=False)
|
|
41
|
+
|
|
42
|
+
# Input/Output requirements
|
|
43
|
+
chip.add('tool', tool, 'task', task, 'output', chip.top() + '.v', step=step, index=index)
|
|
44
|
+
|
|
45
|
+
add_clock_requirements(chip)
|
|
46
|
+
|
|
47
|
+
# Schema requirements
|
|
48
|
+
add_require_input(chip, 'input', 'hll', 'c')
|
|
49
|
+
add_require_input(chip, 'input', 'hll', 'llvm')
|
|
50
|
+
add_frontend_requires(chip, ['idir', 'define'])
|
|
51
|
+
|
|
52
|
+
set_tool_task_var(chip, 'device',
|
|
53
|
+
schelp="Device to use during bambu synthesis")
|
|
54
|
+
set_tool_task_lib_var(chip, 'memorychannels', default_value=1,
|
|
55
|
+
schelp="Number of memory channels available")
|
|
56
|
+
|
|
57
|
+
# Require clock conversion factor, from library units to ns
|
|
58
|
+
mainlib = get_mainlib(chip)
|
|
59
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
60
|
+
','.join(['library', mainlib, 'option', 'var', 'bambu_clock_multiplier']),
|
|
61
|
+
step=step, index=index)
|
|
62
|
+
|
|
63
|
+
set_tool_task_var(chip, 'clock_multiplier',
|
|
64
|
+
schelp="Clock multiplier used to convert library units to ns")
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
################################
|
|
68
|
+
# Custom runtime options
|
|
69
|
+
################################
|
|
70
|
+
def runtime_options(chip):
|
|
71
|
+
step = chip.get('arg', 'step')
|
|
72
|
+
index = chip.get('arg', 'index')
|
|
73
|
+
tool, task = get_tool_task(chip, step, index)
|
|
74
|
+
|
|
75
|
+
cmdlist = []
|
|
76
|
+
|
|
77
|
+
opts = get_frontend_options(chip, ['idir', 'define'])
|
|
78
|
+
|
|
79
|
+
for value in opts['idir']:
|
|
80
|
+
cmdlist.append('-I' + value)
|
|
81
|
+
for value in opts['define']:
|
|
82
|
+
cmdlist.append('-D' + value)
|
|
83
|
+
for value in get_input_files(chip, 'input', 'hll', 'c'):
|
|
84
|
+
cmdlist.append(value)
|
|
85
|
+
if not has_input_files(chip, 'input', 'hll', 'c'):
|
|
86
|
+
# Only use llvm if C is empty
|
|
87
|
+
for value in get_input_files(chip, 'input', 'hll', 'llvm'):
|
|
88
|
+
cmdlist.append(value)
|
|
89
|
+
|
|
90
|
+
cmdlist.append('--soft-float')
|
|
91
|
+
cmdlist.append('--memory-allocation-policy=NO_BRAM')
|
|
92
|
+
|
|
93
|
+
mem_channels = int(chip.get('tool', tool, 'task', task, 'var', 'memorychannels',
|
|
94
|
+
step=step, index=index)[0])
|
|
95
|
+
if mem_channels > 0:
|
|
96
|
+
cmdlist.append(f'--channels-number={mem_channels}')
|
|
97
|
+
|
|
98
|
+
mainlib = get_mainlib(chip)
|
|
99
|
+
clock_multiplier = float(chip.get('library', mainlib, 'option', 'var',
|
|
100
|
+
'bambu_clock_multiplier')[0])
|
|
101
|
+
clock_name, period = get_clock_period(chip, clock_units_multiplier=clock_multiplier)
|
|
102
|
+
if clock_name:
|
|
103
|
+
cmdlist.append(f'--clock-name={clock_name}')
|
|
104
|
+
if period:
|
|
105
|
+
cmdlist.append(f'--clock-period={period}')
|
|
106
|
+
|
|
107
|
+
cmdlist.append('--disable-function-proxy')
|
|
108
|
+
|
|
109
|
+
device = chip.get('tool', tool, 'task', task, 'var', 'device',
|
|
110
|
+
step=step, index=index)
|
|
111
|
+
if device:
|
|
112
|
+
cmdlist.append(f'--device={device[0]}')
|
|
113
|
+
|
|
114
|
+
cmdlist.append(f'--top-fname={chip.top(step, index)}')
|
|
115
|
+
|
|
116
|
+
return cmdlist
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
################################
|
|
120
|
+
# Post_process (post executable)
|
|
121
|
+
################################
|
|
122
|
+
def post_process(chip):
|
|
123
|
+
''' Tool specific function to run after step execution
|
|
124
|
+
'''
|
|
125
|
+
step = chip.get('arg', 'step')
|
|
126
|
+
index = chip.get('arg', 'index')
|
|
127
|
+
|
|
128
|
+
shutil.copy2(f'{chip.top(step, index)}.v', os.path.join('outputs', f'{chip.top()}.v'))
|
|
129
|
+
|
|
130
|
+
ff = re.compile(fr"Total number of flip-flops in function {chip.top(step, index)}: (\d+)")
|
|
131
|
+
area = re.compile(r"Total estimated area: (\d+)")
|
|
132
|
+
fmax = re.compile(r"Estimated max frequency \(MHz\): (\d+\.?\d*)")
|
|
133
|
+
slack = re.compile(r"Minimum slack: (\d+\.?\d*)")
|
|
134
|
+
|
|
135
|
+
log_file = f"{step}.log"
|
|
136
|
+
with sc_open(log_file) as log:
|
|
137
|
+
for line in log:
|
|
138
|
+
ff_match = ff.findall(line)
|
|
139
|
+
area_match = area.findall(line)
|
|
140
|
+
fmax_match = fmax.findall(line)
|
|
141
|
+
slack_match = slack.findall(line)
|
|
142
|
+
if ff_match:
|
|
143
|
+
record_metric(chip, step, index, "registers", int(ff_match[0]), log_file)
|
|
144
|
+
if area_match:
|
|
145
|
+
record_metric(chip, step, index, "cellarea", float(area_match[0]), log_file,
|
|
146
|
+
source_unit='um^2')
|
|
147
|
+
if fmax_match:
|
|
148
|
+
record_metric(chip, step, index, "fmax", float(fmax_match[0]), log_file,
|
|
149
|
+
source_unit='MHz')
|
|
150
|
+
if slack_match:
|
|
151
|
+
slack_ns = float(slack_match[0])
|
|
152
|
+
if slack_ns >= 0:
|
|
153
|
+
record_metric(chip, step, index, "setupwns", 0, log_file,
|
|
154
|
+
source_unit='ns')
|
|
155
|
+
else:
|
|
156
|
+
record_metric(chip, step, index, "setupwns", slack_ns, log_file,
|
|
157
|
+
source_unit='ns')
|
|
158
|
+
record_metric(chip, step, index, "setupslack", slack_ns, log_file,
|
|
159
|
+
source_unit='ns')
|
|
@@ -148,6 +148,10 @@ def extract_metrics(chip):
|
|
|
148
148
|
|
|
149
149
|
metrics_file = "reports/metrics.json"
|
|
150
150
|
|
|
151
|
+
if not os.path.exists(metrics_file):
|
|
152
|
+
chip.logger.warning("OpenROAD metrics file is missing")
|
|
153
|
+
return
|
|
154
|
+
|
|
151
155
|
def get_metric_sources(metric):
|
|
152
156
|
metric_sources = [metrics_file]
|
|
153
157
|
if metric in metric_reports:
|
|
@@ -572,6 +576,13 @@ def define_rsz_params(chip):
|
|
|
572
576
|
default_value='100',
|
|
573
577
|
schelp='percentage of violating nets to attempt to repair (0 - 100)')
|
|
574
578
|
|
|
579
|
+
set_tool_task_var(chip, param_key='rsz_skip_recover_power',
|
|
580
|
+
default_value=False,
|
|
581
|
+
schelp='skip power recovery')
|
|
582
|
+
set_tool_task_var(chip, param_key='rsz_recover_power',
|
|
583
|
+
default_value=100,
|
|
584
|
+
schelp='percentage of paths to attempt to recover power (0 - 100)')
|
|
585
|
+
|
|
575
586
|
step = chip.get('arg', 'step')
|
|
576
587
|
index = chip.get('arg', 'index')
|
|
577
588
|
tool, task = get_tool_task(chip, step, index)
|
{siliconcompiler-0.29.3 → siliconcompiler-0.29.4}/siliconcompiler/tools/openroad/init_floorplan.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from siliconcompiler.tools._common import input_provides, add_common_file, get_tool_task
|
|
2
|
-
from siliconcompiler.tools._common.asic import set_tool_task_var
|
|
2
|
+
from siliconcompiler.tools._common.asic import set_tool_task_var, get_mainlib
|
|
3
3
|
|
|
4
4
|
from siliconcompiler.tools.openroad._apr import setup as apr_setup
|
|
5
5
|
from siliconcompiler.tools.openroad._apr import set_reports, set_pnr_inputs, set_pnr_outputs
|
|
@@ -74,6 +74,8 @@ def setup(chip):
|
|
|
74
74
|
'power'
|
|
75
75
|
])
|
|
76
76
|
|
|
77
|
+
mainlib = get_mainlib(chip)
|
|
78
|
+
|
|
77
79
|
# Setup required
|
|
78
80
|
for component in chip.getkeys('constraint', 'component'):
|
|
79
81
|
for key in chip.getkeys('constraint', 'component', component):
|
|
@@ -92,6 +94,10 @@ def setup(chip):
|
|
|
92
94
|
chip.add('tool', tool, 'task', task, 'require',
|
|
93
95
|
','.join(['constraint', ifp]),
|
|
94
96
|
step=step, index=index)
|
|
97
|
+
if chip.valid('library', mainlib, 'option', 'file', 'openroad_tracks'):
|
|
98
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
99
|
+
','.join(['library', mainlib, 'option', 'file', 'openroad_tracks']),
|
|
100
|
+
step=step, index=index)
|
|
95
101
|
|
|
96
102
|
|
|
97
103
|
def pre_process(chip):
|
|
@@ -91,5 +91,6 @@ if { [llength $openroad_dont_touch] > 0 } {
|
|
|
91
91
|
# set don't touch list
|
|
92
92
|
set_dont_touch $openroad_dont_touch
|
|
93
93
|
}
|
|
94
|
-
tee -file reports/dont_touch.start.rpt {report_dont_touch}
|
|
95
|
-
tee -file reports/dont_use.start.rpt {report_dont_use}
|
|
94
|
+
tee -quiet -file reports/dont_touch.start.rpt {report_dont_touch}
|
|
95
|
+
tee -quiet -file reports/dont_use.start.rpt {report_dont_use}
|
|
96
|
+
tee -file reports/global_connections.start.rpt {report_global_connect}
|
|
@@ -33,6 +33,7 @@ foreach pdnconfig [sc_cfg_tool_task_get {file} pdn_config] {
|
|
|
33
33
|
|
|
34
34
|
lappend pdn_files $pdnconfig
|
|
35
35
|
}
|
|
36
|
+
tee -quiet -file reports/power_grid_configuration.rpt {pdngen -report_only}
|
|
36
37
|
pdngen -failed_via_report "reports/${sc_design}_pdngen_failed_vias.rpt"
|
|
37
38
|
|
|
38
39
|
###############################
|
|
@@ -20,6 +20,7 @@ set rsz_hold_slack_margin [lindex [sc_cfg_tool_task_get {var} rsz_hold_slack_mar
|
|
|
20
20
|
set rsz_slew_margin [lindex [sc_cfg_tool_task_get {var} rsz_slew_margin] 0]
|
|
21
21
|
set rsz_cap_margin [lindex [sc_cfg_tool_task_get {var} rsz_cap_margin] 0]
|
|
22
22
|
set rsz_repair_tns [lindex [sc_cfg_tool_task_get {var} rsz_repair_tns] 0]
|
|
23
|
+
set rsz_recover_power [lindex [sc_cfg_tool_task_get {var} rsz_recover_power] 0]
|
|
23
24
|
|
|
24
25
|
set repair_timing_args []
|
|
25
26
|
if { [lindex [sc_cfg_tool_task_get {var} rsz_skip_pin_swap] 0] == "true" } {
|
|
@@ -77,6 +78,29 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_hold_repair] 0] != "true" } {
|
|
|
77
78
|
sc_set_dont_use
|
|
78
79
|
}
|
|
79
80
|
|
|
81
|
+
if { [lindex [sc_cfg_tool_task_get var rsz_skip_recover_power] 0] != "true" } {
|
|
82
|
+
###############################
|
|
83
|
+
# Recover power
|
|
84
|
+
###############################
|
|
85
|
+
|
|
86
|
+
estimate_parasitics -placement
|
|
87
|
+
|
|
88
|
+
# Enable cells
|
|
89
|
+
sc_set_dont_use -hold -scanchain -multibit -report dont_use.repair_timing.power
|
|
90
|
+
|
|
91
|
+
repair_timing \
|
|
92
|
+
-recover_power $rsz_recover_power \
|
|
93
|
+
-verbose \
|
|
94
|
+
-setup_margin $rsz_setup_slack_margin \
|
|
95
|
+
-hold_margin $rsz_hold_slack_margin \
|
|
96
|
+
{*}$repair_timing_args
|
|
97
|
+
|
|
98
|
+
sc_detailed_placement
|
|
99
|
+
|
|
100
|
+
# Restore dont use
|
|
101
|
+
sc_set_dont_use
|
|
102
|
+
}
|
|
103
|
+
|
|
80
104
|
global_connect
|
|
81
105
|
|
|
82
106
|
# estimate for metrics
|
|
@@ -758,6 +758,7 @@ proc sc_set_dont_use { args } {
|
|
|
758
758
|
}
|
|
759
759
|
|
|
760
760
|
if { [info exists keys(-report)] } {
|
|
761
|
-
|
|
761
|
+
puts "Dont use report: reports/$keys(-report).rpt"
|
|
762
|
+
tee -quiet -file reports/$keys(-report).rpt {report_dont_use}
|
|
762
763
|
}
|
|
763
764
|
}
|