siliconcompiler 0.31.0__tar.gz → 0.31.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/Changes +14 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/PKG-INFO +15 -17
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/README.md +14 -16
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/pyproject.toml +4 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc_install.py +19 -1
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/core.py +1 -1
- siliconcompiler-0.31.0/siliconcompiler/package.py → siliconcompiler-0.31.1/siliconcompiler/package/__init__.py +62 -176
- siliconcompiler-0.31.1/siliconcompiler/package/git.py +81 -0
- siliconcompiler-0.31.1/siliconcompiler/package/https.py +93 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/__init__.py +19 -10
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/docker_runner.py +3 -3
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/run_node.py +3 -3
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/schema/schema_obj.py +7 -11
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/tcl/manifest.tcl.j2 +1 -1
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +3 -5
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/genfasm/genfasm.py +1 -1
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/rdlroute.py +4 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +3 -3
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -13
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/vpr.py +86 -6
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/_tools.json +3 -3
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler.egg-info/PKG-INFO +15 -17
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler.egg-info/SOURCES.txt +3 -1
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler.egg-info/entry_points.txt +4 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/.dockerignore +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/.flake8 +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/.gitattributes +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/.gitignore +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/LICENSE +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/MANIFEST.in +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/SECURITY.md +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/scripts/.gitignore +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/scripts/check_library.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/scripts/report_library.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/setup.cfg +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/__main__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/_common.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/asictopflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/screenshotflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/fpgas/vpr_example.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/issue.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/libs/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/pdks/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/components/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/components/graph.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/state.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/dashboard/viewer.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/html_report.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/summary_table.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/schema/schema_cfg.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/sphinx_ext/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/sphinx_ext/utils.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/asic_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/email/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/email/general.j2 +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/issue/README.txt +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/issue/run.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/replay/replay.sh.j2 +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/report/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/report/sc_report.j2 +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/asic.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/asic_clock.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/_common.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/builtin.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/concatenate.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/chisel/build.sbt +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/chisel/chisel.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/execute/execute.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/icarus/icarus.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/icepack/icepack.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/export.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/klayout.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/magic.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/montage/montage.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/netgen/netgen.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/_apr.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/global_placement.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/repair_design.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/template/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/template/template.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/verilator/parse.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/verilator/verilator.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vivado/vivado.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/lec.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/procs.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/sc_syn.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/screenshot.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/syn_asic.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/syn_fpga.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/units.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/use.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/utils/__init__.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/utils/asic.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/utils/logging.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler.egg-info/requires.txt +0 -0
- {siliconcompiler-0.31.0 → siliconcompiler-0.31.1}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,20 @@ The changes in each SiliconCompiler release version are described below. Commit
|
|
|
8
8
|
version shown in (). Where applicable, the contributors that suggested a given
|
|
9
9
|
feature are shown in [].
|
|
10
10
|
|
|
11
|
+
SiliconCompiler 0.31.1 (2025-03-06)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Minor:**
|
|
15
|
+
|
|
16
|
+
* Fixed tcl manifest to correctly reflect the data types from the schema.
|
|
17
|
+
* Added end of install status message to `sc-install`.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
* Tools:
|
|
21
|
+
|
|
22
|
+
* vpr: updated to v9.0 and added timing metrics extraction.
|
|
23
|
+
|
|
24
|
+
|
|
11
25
|
SiliconCompiler 0.31.0 (2025-03-03)
|
|
12
26
|
=========================================
|
|
13
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.31.
|
|
3
|
+
Version: 0.31.1
|
|
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
|
|
@@ -99,19 +99,19 @@ SiliconCompiler is a modular hardware build system ("make for silicon"). The pro
|
|
|
99
99
|
|
|
100
100
|
| Type | Supported|
|
|
101
101
|
|------|----------|
|
|
102
|
-
|**Design Languages**| C, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec
|
|
102
|
+
|**Design Languages**| C, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec, [MLIR](https://en.wikipedia.org/wiki/MLIR_(software))
|
|
103
103
|
|**Simulation Tools**| Verilator, Icarus, GHDL, Xyce
|
|
104
104
|
|**Synthesis**| Yosys, Vivado, Synopsys, Cadence
|
|
105
|
-
|**ASIC APR**|
|
|
105
|
+
|**ASIC APR**| OpenROAD, Synopsys, Cadence
|
|
106
106
|
|**FPGA APR**| VPR, nextpnr, Vivado
|
|
107
|
-
|**Layout Viewer**| Klayout,
|
|
108
|
-
|**DRC/LVS**| Magic, Synopsys, Siemens
|
|
109
|
-
|**PDKs**| sky130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16
|
|
107
|
+
|**Layout Viewer**| Klayout, OpenROAD, Cadence, Synopsys
|
|
108
|
+
|**DRC/LVS**| Klayout, Magic, Synopsys, Siemens
|
|
109
|
+
|**PDKs**| sky130, ihp130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16
|
|
110
110
|
|
|
111
111
|
# Getting Started
|
|
112
112
|
|
|
113
113
|
SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and
|
|
114
|
-
Linux platforms. For working Python 3.8-3.
|
|
114
|
+
Linux platforms. For working Python 3.8-3.13 environment, just use pip.
|
|
115
115
|
|
|
116
116
|
```sh
|
|
117
117
|
python3 -m pip install --upgrade siliconcompiler
|
|
@@ -166,17 +166,15 @@ A. Olofsson, W. Ransohoff, N. Moroze, "[Invited: A Distributed Approach to Silic
|
|
|
166
166
|
Bibtex:
|
|
167
167
|
```
|
|
168
168
|
@inproceedings{10.1145/3489517.3530673,
|
|
169
|
-
author = {Olofsson, Andreas and Ransohoff, William and Moroze, Noah},
|
|
170
|
-
title = {A Distributed Approach to Silicon Compilation: Invited},
|
|
171
|
-
year = {2022},
|
|
172
|
-
booktitle = {Proceedings of the 59th ACM/IEEE Design Automation Conference},
|
|
173
|
-
pages = {1343–1346},
|
|
174
|
-
location = {San Francisco, California}
|
|
169
|
+
author = {Olofsson, Andreas and Ransohoff, William and Moroze, Noah},
|
|
170
|
+
title = {A Distributed Approach to Silicon Compilation: Invited},
|
|
171
|
+
year = {2022},
|
|
172
|
+
booktitle = {Proceedings of the 59th ACM/IEEE Design Automation Conference},
|
|
173
|
+
pages = {1343–1346},
|
|
174
|
+
location = {San Francisco, California}
|
|
175
175
|
}
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
|
|
180
178
|
# Installation
|
|
181
179
|
|
|
182
180
|
Complete installation instructions are available in the [Installation Guide](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html).
|
|
@@ -194,14 +192,14 @@ python3 -m pip install -e .[docs,test] # Optional install step for generating d
|
|
|
194
192
|
|
|
195
193
|
Installation instructions for all external tools can be found in the
|
|
196
194
|
[External Tools](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html#external-tools) section
|
|
197
|
-
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools.
|
|
195
|
+
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools, which can be accessed via [sc-install](https://docs.siliconcompiler.com/en/latest/reference_manual/apps.html#apps-sc-install-ref).
|
|
198
196
|
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
197
|
|
|
200
198
|
# Contributing
|
|
201
199
|
|
|
202
200
|
SiliconCompiler is an open-source project and welcomes contributions. To find out
|
|
203
201
|
how to contribute to the project, see our
|
|
204
|
-
[Contributing Guidelines
|
|
202
|
+
[Contributing Guidelines](./CONTRIBUTING.md).
|
|
205
203
|
|
|
206
204
|
# Issues / Bugs
|
|
207
205
|
|
|
@@ -17,19 +17,19 @@ SiliconCompiler is a modular hardware build system ("make for silicon"). The pro
|
|
|
17
17
|
|
|
18
18
|
| Type | Supported|
|
|
19
19
|
|------|----------|
|
|
20
|
-
|**Design Languages**| C, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec
|
|
20
|
+
|**Design Languages**| C, Verilog, SV, VHDL, Chisel, Migen/Amaranth, Bluespec, [MLIR](https://en.wikipedia.org/wiki/MLIR_(software))
|
|
21
21
|
|**Simulation Tools**| Verilator, Icarus, GHDL, Xyce
|
|
22
22
|
|**Synthesis**| Yosys, Vivado, Synopsys, Cadence
|
|
23
|
-
|**ASIC APR**|
|
|
23
|
+
|**ASIC APR**| OpenROAD, Synopsys, Cadence
|
|
24
24
|
|**FPGA APR**| VPR, nextpnr, Vivado
|
|
25
|
-
|**Layout Viewer**| Klayout,
|
|
26
|
-
|**DRC/LVS**| Magic, Synopsys, Siemens
|
|
27
|
-
|**PDKs**| sky130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16
|
|
25
|
+
|**Layout Viewer**| Klayout, OpenROAD, Cadence, Synopsys
|
|
26
|
+
|**DRC/LVS**| Klayout, Magic, Synopsys, Siemens
|
|
27
|
+
|**PDKs**| sky130, ihp130, gf180, asap7, freepdk45, gf12lp, gf22fdx, intel16
|
|
28
28
|
|
|
29
29
|
# Getting Started
|
|
30
30
|
|
|
31
31
|
SiliconCompiler is available as wheel packages on PyPI for macOS, Windows and
|
|
32
|
-
Linux platforms. For working Python 3.8-3.
|
|
32
|
+
Linux platforms. For working Python 3.8-3.13 environment, just use pip.
|
|
33
33
|
|
|
34
34
|
```sh
|
|
35
35
|
python3 -m pip install --upgrade siliconcompiler
|
|
@@ -84,17 +84,15 @@ A. Olofsson, W. Ransohoff, N. Moroze, "[Invited: A Distributed Approach to Silic
|
|
|
84
84
|
Bibtex:
|
|
85
85
|
```
|
|
86
86
|
@inproceedings{10.1145/3489517.3530673,
|
|
87
|
-
author = {Olofsson, Andreas and Ransohoff, William and Moroze, Noah},
|
|
88
|
-
title = {A Distributed Approach to Silicon Compilation: Invited},
|
|
89
|
-
year = {2022},
|
|
90
|
-
booktitle = {Proceedings of the 59th ACM/IEEE Design Automation Conference},
|
|
91
|
-
pages = {1343–1346},
|
|
92
|
-
location = {San Francisco, California}
|
|
87
|
+
author = {Olofsson, Andreas and Ransohoff, William and Moroze, Noah},
|
|
88
|
+
title = {A Distributed Approach to Silicon Compilation: Invited},
|
|
89
|
+
year = {2022},
|
|
90
|
+
booktitle = {Proceedings of the 59th ACM/IEEE Design Automation Conference},
|
|
91
|
+
pages = {1343–1346},
|
|
92
|
+
location = {San Francisco, California}
|
|
93
93
|
}
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
96
|
# Installation
|
|
99
97
|
|
|
100
98
|
Complete installation instructions are available in the [Installation Guide](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html).
|
|
@@ -112,14 +110,14 @@ python3 -m pip install -e .[docs,test] # Optional install step for generating d
|
|
|
112
110
|
|
|
113
111
|
Installation instructions for all external tools can be found in the
|
|
114
112
|
[External Tools](https://docs.siliconcompiler.com/en/stable/user_guide/installation.html#external-tools) section
|
|
115
|
-
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools.
|
|
113
|
+
of the user guide. We have included shell setup scripts (Ubuntu) for most of the supported tools, which can be accessed via [sc-install](https://docs.siliconcompiler.com/en/latest/reference_manual/apps.html#apps-sc-install-ref).
|
|
116
114
|
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
115
|
|
|
118
116
|
# Contributing
|
|
119
117
|
|
|
120
118
|
SiliconCompiler is an open-source project and welcomes contributions. To find out
|
|
121
119
|
how to contribute to the project, see our
|
|
122
|
-
[Contributing Guidelines
|
|
120
|
+
[Contributing Guidelines](./CONTRIBUTING.md).
|
|
123
121
|
|
|
124
122
|
# Issues / Bugs
|
|
125
123
|
|
|
@@ -90,6 +90,10 @@ scsetup = "siliconcompiler.utils.showtools:setup"
|
|
|
90
90
|
[project.entry-points."siliconcompiler.target"]
|
|
91
91
|
targets = "siliconcompiler.targets:get_targets"
|
|
92
92
|
|
|
93
|
+
[project.entry-points."siliconcompiler.path_resolver"]
|
|
94
|
+
https = "siliconcompiler.package.https:get_resolver"
|
|
95
|
+
git = "siliconcompiler.package.git:get_resolver"
|
|
96
|
+
|
|
93
97
|
[project.entry-points."siliconcompiler.docs"]
|
|
94
98
|
linkcode = "siliconcompiler.sphinx_ext:get_codeurl"
|
|
95
99
|
targets = "siliconcompiler.sphinx_ext:targets"
|
|
@@ -101,6 +101,19 @@ def print_machine_info():
|
|
|
101
101
|
print("Scripts: ", _get_tool_script_dir())
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
def __print_summary(successful, failed):
|
|
105
|
+
max_len = 64
|
|
106
|
+
print("#"*max_len)
|
|
107
|
+
if successful:
|
|
108
|
+
msg = f"Installed: {', '.join(sorted(successful))}"
|
|
109
|
+
print(f"# {msg}")
|
|
110
|
+
|
|
111
|
+
if failed:
|
|
112
|
+
msg = f"Failed to install: {failed}"
|
|
113
|
+
print(f"# {msg}")
|
|
114
|
+
print("#"*max_len)
|
|
115
|
+
|
|
116
|
+
|
|
104
117
|
def _get_tool_script_dir():
|
|
105
118
|
return Path(siliconcompiler.__file__).parent / "toolscripts"
|
|
106
119
|
|
|
@@ -242,6 +255,7 @@ To system debugging information (this should only be used to debug):
|
|
|
242
255
|
args.tool.extend(tool_groups[group])
|
|
243
256
|
|
|
244
257
|
tools_handled = set()
|
|
258
|
+
tools_completed = set()
|
|
245
259
|
for tool in args.tool:
|
|
246
260
|
if tool in tools_handled:
|
|
247
261
|
continue
|
|
@@ -250,9 +264,14 @@ To system debugging information (this should only be used to debug):
|
|
|
250
264
|
show_tool(tool, tools[tool])
|
|
251
265
|
else:
|
|
252
266
|
if not install_tool(tool, tools[tool], args.build_dir, args.prefix):
|
|
267
|
+
__print_summary(tools_completed, tool)
|
|
253
268
|
return 1
|
|
269
|
+
else:
|
|
270
|
+
tools_completed.add(tool)
|
|
254
271
|
|
|
255
272
|
if not args.show:
|
|
273
|
+
__print_summary(tools_completed, None)
|
|
274
|
+
|
|
256
275
|
msgs = []
|
|
257
276
|
for env, path in (
|
|
258
277
|
("PATH", "bin"),
|
|
@@ -262,7 +281,6 @@ To system debugging information (this should only be used to debug):
|
|
|
262
281
|
os.path.expandvars(os.path.expanduser(p))
|
|
263
282
|
for p in os.getenv(env, "").split(":")
|
|
264
283
|
]
|
|
265
|
-
print(envs)
|
|
266
284
|
if check_path not in envs:
|
|
267
285
|
msgs.extend([
|
|
268
286
|
"",
|
|
@@ -2950,7 +2950,7 @@ class Chip:
|
|
|
2950
2950
|
elif os.path.isfile(results_html):
|
|
2951
2951
|
_open_html_report(self, results_html)
|
|
2952
2952
|
else:
|
|
2953
|
-
self.
|
|
2953
|
+
self.dashboard(wait=False)
|
|
2954
2954
|
|
|
2955
2955
|
###########################################################################
|
|
2956
2956
|
def clock(self, pin, period, jitter=0, mode='global'):
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import os
|
|
2
|
-
import requests
|
|
3
|
-
import tarfile
|
|
4
|
-
import zipfile
|
|
5
|
-
from git import Repo, GitCommandError
|
|
6
2
|
from urllib.parse import urlparse
|
|
7
3
|
import importlib
|
|
8
|
-
import shutil
|
|
9
4
|
import re
|
|
10
5
|
from siliconcompiler import SiliconCompilerError
|
|
11
6
|
from siliconcompiler.utils import default_cache_dir, _resolve_env_vars
|
|
12
7
|
import json
|
|
13
8
|
from importlib.metadata import distributions, distribution
|
|
14
9
|
import functools
|
|
15
|
-
import fasteners
|
|
16
10
|
import time
|
|
17
11
|
from pathlib import Path
|
|
18
|
-
from io import BytesIO
|
|
19
12
|
|
|
20
13
|
from github import Github
|
|
21
14
|
import github.Auth
|
|
22
15
|
|
|
16
|
+
from siliconcompiler.utils import get_plugins
|
|
17
|
+
|
|
23
18
|
|
|
24
19
|
def get_cache_path(chip):
|
|
25
20
|
cache_path = chip.get('option', 'cachedir')
|
|
@@ -33,10 +28,45 @@ def get_cache_path(chip):
|
|
|
33
28
|
return cache_path
|
|
34
29
|
|
|
35
30
|
|
|
36
|
-
def
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
def get_download_cache_path(chip, package, ref):
|
|
32
|
+
cache_path = get_cache_path(chip)
|
|
33
|
+
if not os.path.exists(cache_path):
|
|
34
|
+
os.makedirs(cache_path, exist_ok=True)
|
|
35
|
+
|
|
36
|
+
if ref is None:
|
|
37
|
+
raise SiliconCompilerError(f'Reference is required for cached data: {package}', chip=chip)
|
|
38
|
+
|
|
39
|
+
return \
|
|
40
|
+
os.path.join(cache_path, f'{package}-{ref}'), \
|
|
41
|
+
os.path.join(cache_path, f'{package}-{ref}.lock')
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _file_path_resolver(chip, package, path, ref, url):
|
|
45
|
+
return os.path.abspath(path.replace('file://', ''))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _python_path_resolver(chip, package, path, ref, url):
|
|
49
|
+
return path_from_python(chip, url.netloc)
|
|
39
50
|
|
|
51
|
+
|
|
52
|
+
def _get_path_resolver(path):
|
|
53
|
+
url = urlparse(path)
|
|
54
|
+
|
|
55
|
+
for resolver in get_plugins("path_resolver"):
|
|
56
|
+
func = resolver(url)
|
|
57
|
+
if func:
|
|
58
|
+
return func, url
|
|
59
|
+
|
|
60
|
+
if url.scheme == "file":
|
|
61
|
+
return _file_path_resolver, url
|
|
62
|
+
|
|
63
|
+
if url.scheme == "python":
|
|
64
|
+
return _python_path_resolver, url
|
|
65
|
+
|
|
66
|
+
raise ValueError(f"{path} is not supported")
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def _path(chip, package):
|
|
40
70
|
# Initially try retrieving data source from schema
|
|
41
71
|
data = {}
|
|
42
72
|
data['path'] = chip.get('package', 'source', package, 'path')
|
|
@@ -48,48 +78,13 @@ def _path(chip, package, download_handler):
|
|
|
48
78
|
|
|
49
79
|
data['path'] = _resolve_env_vars(chip, data['path'], None, None)
|
|
50
80
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if data['path'].startswith('file://') or os.path.exists(data['path']):
|
|
55
|
-
path = os.path.abspath(data['path'].replace('file://', ''))
|
|
56
|
-
chip.logger.info(f'Found {package} data at {path}')
|
|
57
|
-
chip._packages[package] = path
|
|
58
|
-
return path
|
|
59
|
-
elif data['path'].startswith('python://'):
|
|
60
|
-
path = path_from_python(chip, url.netloc)
|
|
61
|
-
chip.logger.info(f'Found {package} data at {path}')
|
|
62
|
-
chip._packages[package] = path
|
|
63
|
-
return path
|
|
64
|
-
|
|
65
|
-
# location of the python package
|
|
66
|
-
cache_path = get_cache_path(chip)
|
|
67
|
-
if not os.path.exists(cache_path):
|
|
68
|
-
os.makedirs(cache_path, exist_ok=True)
|
|
69
|
-
project_id = f'{package}-{data.get("ref")}'
|
|
70
|
-
if url.scheme not in ['git', 'git+https', 'https', 'git+ssh', 'ssh'] or not project_id:
|
|
71
|
-
raise SiliconCompilerError(
|
|
72
|
-
f'Could not find data path in package {package}: {data["path"]}',
|
|
73
|
-
chip=chip)
|
|
74
|
-
|
|
75
|
-
data_path = os.path.join(cache_path, project_id)
|
|
76
|
-
|
|
77
|
-
if download_handler:
|
|
78
|
-
download_handler(chip,
|
|
79
|
-
package,
|
|
80
|
-
data,
|
|
81
|
-
url,
|
|
82
|
-
data_path,
|
|
83
|
-
os.path.join(cache_path, f'{project_id}.lock'))
|
|
84
|
-
|
|
85
|
-
if os.path.exists(data_path):
|
|
86
|
-
if package not in chip._packages:
|
|
87
|
-
chip.logger.info(f'Saved {package} data to {data_path}')
|
|
88
|
-
chip._packages[package] = data_path
|
|
89
|
-
return data_path
|
|
81
|
+
if os.path.exists(data['path']):
|
|
82
|
+
# Path is already a path
|
|
83
|
+
return os.path.abspath(data['path'])
|
|
90
84
|
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
path_resolver, url = _get_path_resolver(data['path'])
|
|
86
|
+
|
|
87
|
+
return path_resolver(chip, package, data['path'], data['ref'], url)
|
|
93
88
|
|
|
94
89
|
|
|
95
90
|
def path(chip, package):
|
|
@@ -102,40 +97,25 @@ def path(chip, package):
|
|
|
102
97
|
path: Location of data source on the local system
|
|
103
98
|
"""
|
|
104
99
|
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
if package not in chip._packages:
|
|
101
|
+
changed = False
|
|
102
|
+
data_path = _path(chip, package)
|
|
107
103
|
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
if isinstance(data_path, tuple) and len(data_path) == 2:
|
|
105
|
+
data_path, changed = data_path
|
|
110
106
|
|
|
111
|
-
|
|
107
|
+
if os.path.exists(data_path):
|
|
108
|
+
if package not in chip._packages and changed:
|
|
109
|
+
chip.logger.info(f'Saved {package} data to {data_path}')
|
|
110
|
+
else:
|
|
111
|
+
chip.logger.info(f'Found {package} data at {data_path}')
|
|
112
112
|
|
|
113
|
-
# check cached package data source
|
|
114
|
-
if os.path.exists(data_path):
|
|
115
|
-
chip.logger.info(f'Found cached {package} data at {data_path}')
|
|
116
|
-
if url.scheme in ['git', 'git+https', 'ssh', 'git+ssh']:
|
|
117
|
-
try:
|
|
118
|
-
repo = Repo(data_path)
|
|
119
|
-
if repo.untracked_files or repo.index.diff("HEAD"):
|
|
120
|
-
chip.logger.warning('The repo of the cached data is dirty.')
|
|
121
|
-
_release_data_lock(data_lock)
|
|
122
|
-
chip._packages[package] = data_path
|
|
123
|
-
return
|
|
124
|
-
except GitCommandError:
|
|
125
|
-
chip.logger.warning('Deleting corrupted cache data.')
|
|
126
|
-
shutil.rmtree(path)
|
|
127
|
-
else:
|
|
128
|
-
_release_data_lock(data_lock)
|
|
129
113
|
chip._packages[package] = data_path
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if url.scheme in ['git', 'git+https', 'ssh', 'git+ssh']:
|
|
134
|
-
clone_synchronized(chip, package, data, data_path)
|
|
135
|
-
elif url.scheme == 'https':
|
|
136
|
-
extract_from_url(chip, package, data, data_path)
|
|
114
|
+
else:
|
|
115
|
+
raise SiliconCompilerError(f'Unable to locate {package} data in {data_path}',
|
|
116
|
+
chip=chip)
|
|
137
117
|
|
|
138
|
-
|
|
118
|
+
return chip._packages[package]
|
|
139
119
|
|
|
140
120
|
|
|
141
121
|
def __get_filebased_lock(data_lock):
|
|
@@ -143,7 +123,7 @@ def __get_filebased_lock(data_lock):
|
|
|
143
123
|
return Path(f'{base}.sc_lock')
|
|
144
124
|
|
|
145
125
|
|
|
146
|
-
def
|
|
126
|
+
def aquire_data_lock(data_path, data_lock):
|
|
147
127
|
# Wait a maximum of 10 minutes for other processes to finish
|
|
148
128
|
max_seconds = 10 * 60
|
|
149
129
|
try:
|
|
@@ -168,7 +148,7 @@ def _aquire_data_lock(data_path, data_lock):
|
|
|
168
148
|
'please delete it.')
|
|
169
149
|
|
|
170
150
|
|
|
171
|
-
def
|
|
151
|
+
def release_data_lock(data_lock):
|
|
172
152
|
# Check if file based locking method was used
|
|
173
153
|
lock_file = __get_filebased_lock(data_lock)
|
|
174
154
|
if lock_file.exists():
|
|
@@ -178,100 +158,6 @@ def _release_data_lock(data_lock):
|
|
|
178
158
|
data_lock.release()
|
|
179
159
|
|
|
180
160
|
|
|
181
|
-
def clone_synchronized(chip, package, data, data_path):
|
|
182
|
-
url = urlparse(data['path'])
|
|
183
|
-
try:
|
|
184
|
-
clone_from_git(chip, package, data, data_path)
|
|
185
|
-
except GitCommandError as e:
|
|
186
|
-
if 'Permission denied' in repr(e):
|
|
187
|
-
if url.scheme in ['ssh', 'git+ssh']:
|
|
188
|
-
chip.logger.error('Failed to authenticate. Please setup your git ssh.')
|
|
189
|
-
elif url.scheme in ['git', 'git+https']:
|
|
190
|
-
chip.logger.error('Failed to authenticate. Please use a token or ssh.')
|
|
191
|
-
else:
|
|
192
|
-
chip.logger.error(str(e))
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
def clone_from_git(chip, package, data, repo_path):
|
|
196
|
-
url = urlparse(data['path'])
|
|
197
|
-
if url.scheme in ['git', 'git+https'] and url.username:
|
|
198
|
-
chip.logger.warning('Your token is in the data source path and will be stored in the '
|
|
199
|
-
'schema. If you do not want this set the env variable GIT_TOKEN '
|
|
200
|
-
'or use ssh for authentication.')
|
|
201
|
-
if url.scheme in ['git+ssh', 'ssh']:
|
|
202
|
-
chip.logger.info(f'Cloning {package} data from {url.netloc}:{url.path[1:]}')
|
|
203
|
-
# Git requires the format git@github.com:org/repo instead of git@github.com/org/repo
|
|
204
|
-
repo = Repo.clone_from(f'{url.netloc}:{url.path[1:]}',
|
|
205
|
-
repo_path,
|
|
206
|
-
recurse_submodules=True)
|
|
207
|
-
else:
|
|
208
|
-
if os.environ.get('GIT_TOKEN') and not url.username:
|
|
209
|
-
url = url._replace(netloc=f'{os.environ.get("GIT_TOKEN")}@{url.hostname}')
|
|
210
|
-
url = url._replace(scheme='https')
|
|
211
|
-
chip.logger.info(f'Cloning {package} data from {url.geturl()}')
|
|
212
|
-
repo = Repo.clone_from(url.geturl(), repo_path, recurse_submodules=True)
|
|
213
|
-
chip.logger.info(f'Checking out {data["ref"]}')
|
|
214
|
-
repo.git.checkout(data["ref"])
|
|
215
|
-
for submodule in repo.submodules:
|
|
216
|
-
submodule.update(init=True)
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
def extract_from_url(chip, package, data, data_path):
|
|
220
|
-
url = urlparse(data['path'])
|
|
221
|
-
data_url = data.get('path')
|
|
222
|
-
headers = {}
|
|
223
|
-
if os.environ.get('GIT_TOKEN') or url.username:
|
|
224
|
-
headers['Authorization'] = f'token {os.environ.get("GIT_TOKEN") or url.username}'
|
|
225
|
-
if "github" in data_url:
|
|
226
|
-
headers['Accept'] = 'application/octet-stream'
|
|
227
|
-
data_url = data['path']
|
|
228
|
-
if data_url.endswith('/'):
|
|
229
|
-
data_url = f"{data_url}{data['ref']}.tar.gz"
|
|
230
|
-
chip.logger.info(f'Downloading {package} data from {data_url}')
|
|
231
|
-
response = requests.get(data_url, stream=True, headers=headers)
|
|
232
|
-
if not response.ok:
|
|
233
|
-
raise SiliconCompilerError(f'Failed to download {package} data source.', chip=chip)
|
|
234
|
-
|
|
235
|
-
fileobj = BytesIO(response.content)
|
|
236
|
-
try:
|
|
237
|
-
with tarfile.open(fileobj=fileobj, mode='r|gz') as tar_ref:
|
|
238
|
-
tar_ref.extractall(path=data_path)
|
|
239
|
-
except tarfile.ReadError:
|
|
240
|
-
fileobj.seek(0)
|
|
241
|
-
# Try as zip
|
|
242
|
-
with zipfile.ZipFile(fileobj) as zip_ref:
|
|
243
|
-
zip_ref.extractall(path=data_path)
|
|
244
|
-
|
|
245
|
-
if 'github' in url.netloc and len(os.listdir(data_path)) == 1:
|
|
246
|
-
# Github inserts one folder at the highest level of the tar file
|
|
247
|
-
# this compensates for this behavior
|
|
248
|
-
gh_url = urlparse(data_url)
|
|
249
|
-
|
|
250
|
-
repo = gh_url.path.split('/')[2]
|
|
251
|
-
|
|
252
|
-
ref = gh_url.path.split('/')[-1]
|
|
253
|
-
if repo.endswith('.git'):
|
|
254
|
-
ref = data['ref']
|
|
255
|
-
elif ref.endswith('.tar.gz'):
|
|
256
|
-
ref = ref[0:-7]
|
|
257
|
-
elif ref.endswith('.tgz'):
|
|
258
|
-
ref = ref[0:-4]
|
|
259
|
-
else:
|
|
260
|
-
ref = ref.split('.')[0]
|
|
261
|
-
|
|
262
|
-
if ref.startswith('v'):
|
|
263
|
-
ref = ref[1:]
|
|
264
|
-
|
|
265
|
-
github_folder = f"{repo}-{ref}"
|
|
266
|
-
|
|
267
|
-
if github_folder in os.listdir(data_path):
|
|
268
|
-
# This moves all files one level up
|
|
269
|
-
git_path = os.path.join(data_path, github_folder)
|
|
270
|
-
for data_file in os.listdir(git_path):
|
|
271
|
-
shutil.move(os.path.join(git_path, data_file), data_path)
|
|
272
|
-
os.removedirs(git_path)
|
|
273
|
-
|
|
274
|
-
|
|
275
161
|
def path_from_python(chip, python_package, append_path=None):
|
|
276
162
|
try:
|
|
277
163
|
module = importlib.import_module(python_package)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import shutil
|
|
2
|
+
|
|
3
|
+
import os.path
|
|
4
|
+
|
|
5
|
+
from git import Repo, GitCommandError
|
|
6
|
+
from fasteners import InterProcessLock
|
|
7
|
+
|
|
8
|
+
from siliconcompiler.package import get_download_cache_path
|
|
9
|
+
from siliconcompiler.package import aquire_data_lock, release_data_lock
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_resolver(url):
|
|
13
|
+
if url.scheme in ("git", "git+https", "git+ssh", "ssh"):
|
|
14
|
+
return git_resolver
|
|
15
|
+
return None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def git_resolver(chip, package, path, ref, url):
|
|
19
|
+
data_path, data_path_lock = get_download_cache_path(chip, package, ref)
|
|
20
|
+
|
|
21
|
+
# Acquire lock
|
|
22
|
+
data_lock = InterProcessLock(data_path_lock)
|
|
23
|
+
aquire_data_lock(data_path, data_lock)
|
|
24
|
+
|
|
25
|
+
if os.path.exists(data_path):
|
|
26
|
+
try:
|
|
27
|
+
repo = Repo(data_path)
|
|
28
|
+
if repo.untracked_files or repo.index.diff("HEAD"):
|
|
29
|
+
chip.logger.warning('The repo of the cached data is dirty.')
|
|
30
|
+
release_data_lock(data_lock)
|
|
31
|
+
return data_path, False
|
|
32
|
+
except GitCommandError:
|
|
33
|
+
chip.logger.warning('Deleting corrupted cache data.')
|
|
34
|
+
shutil.rmtree(data_path)
|
|
35
|
+
|
|
36
|
+
clone_synchronized(chip, package, path, ref, url, data_path)
|
|
37
|
+
|
|
38
|
+
release_data_lock(data_lock)
|
|
39
|
+
|
|
40
|
+
return data_path, True
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def clone_synchronized(chip, package, path, ref, url, data_path):
|
|
44
|
+
try:
|
|
45
|
+
clone_from_git(chip, package, path, ref, url, data_path)
|
|
46
|
+
except GitCommandError as e:
|
|
47
|
+
if 'Permission denied' in repr(e):
|
|
48
|
+
if url.scheme in ['ssh', 'git+ssh']:
|
|
49
|
+
chip.logger.error('Failed to authenticate. Please setup your git ssh.')
|
|
50
|
+
elif url.scheme in ['git', 'git+https']:
|
|
51
|
+
chip.logger.error('Failed to authenticate. Please use a token or ssh.')
|
|
52
|
+
else:
|
|
53
|
+
chip.logger.error(str(e))
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def clone_from_git(chip, package, path, ref, url, data_path):
|
|
57
|
+
if url.scheme in ['git', 'git+https'] and url.username:
|
|
58
|
+
chip.logger.warning('Your token is in the data source path and will be stored in the '
|
|
59
|
+
'schema. If you do not want this set the env variable GIT_TOKEN '
|
|
60
|
+
'or use ssh for authentication.')
|
|
61
|
+
if url.scheme in ['git+ssh']:
|
|
62
|
+
chip.logger.info(f'Cloning {package} data from {url.netloc}:{url.path[1:]}')
|
|
63
|
+
# Git requires the format git@github.com:org/repo instead of git@github.com/org/repo
|
|
64
|
+
repo = Repo.clone_from(f'{url.netloc}/{url.path[1:]}',
|
|
65
|
+
data_path,
|
|
66
|
+
recurse_submodules=True)
|
|
67
|
+
elif url.scheme in ['ssh']:
|
|
68
|
+
chip.logger.info(f'Cloning {package} data from {path}')
|
|
69
|
+
repo = Repo.clone_from(path,
|
|
70
|
+
data_path,
|
|
71
|
+
recurse_submodules=True)
|
|
72
|
+
else:
|
|
73
|
+
if os.environ.get('GIT_TOKEN') and not url.username:
|
|
74
|
+
url = url._replace(netloc=f'{os.environ.get("GIT_TOKEN")}@{url.hostname}')
|
|
75
|
+
url = url._replace(scheme='https')
|
|
76
|
+
chip.logger.info(f'Cloning {package} data from {url.geturl()}')
|
|
77
|
+
repo = Repo.clone_from(url.geturl(), data_path, recurse_submodules=True)
|
|
78
|
+
chip.logger.info(f'Checking out {ref}')
|
|
79
|
+
repo.git.checkout(ref)
|
|
80
|
+
for submodule in repo.submodules:
|
|
81
|
+
submodule.update(init=True)
|