siliconcompiler 0.32.0__tar.gz → 0.32.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- siliconcompiler-0.32.2/.dockerignore +4 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/Changes +23 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/PKG-INFO +12 -9
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/pyproject.toml +11 -9
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/_common.py +23 -6
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_dashboard.py +7 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_install.py +13 -5
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_remote.py +2 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_show.py +6 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/core.py +34 -16
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/fpgas/lattice_ice40.py +6 -16
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/package/__init__.py +11 -55
- siliconcompiler-0.32.2/siliconcompiler/package/github.py +124 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/package/https.py +6 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/components/__init__.py +2 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/components/flowgraph.py +3 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/utils/__init__.py +5 -2
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/utils.py +3 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/__init__.py +37 -8
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/docker_runner.py +2 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/schema_obj.py +3 -2
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/utils.py +0 -3
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/dynamicgen.py +11 -11
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/fpgaflow_demo.py +0 -2
- siliconcompiler-0.32.2/siliconcompiler/templates/tcl/manifest.tcl.j2 +23 -0
- siliconcompiler-0.32.0/siliconcompiler/templates/tcl/manifest.tcl.j2 → siliconcompiler-0.32.2/siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +17 -30
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/_apr.py +3 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +53 -7
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +19 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +16 -5
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/slang/__init__.py +7 -8
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/sv2v/sv2v.py +4 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/__init__.py +4 -36
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/lec.py +3 -4
- siliconcompiler-0.32.0/siliconcompiler/tools/yosys/syn_asic.tcl → siliconcompiler-0.32.2/siliconcompiler/tools/yosys/sc_synth_asic.tcl +79 -0
- siliconcompiler-0.32.0/siliconcompiler/tools/yosys/syn_fpga.tcl → siliconcompiler-0.32.2/siliconcompiler/tools/yosys/sc_synth_fpga.tcl +78 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/syn_asic.py +26 -10
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/syn_fpga.py +23 -16
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/_tools.json +18 -9
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -1
- siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9/install-vpr.sh +29 -0
- siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +59 -0
- siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +59 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-bluespec.sh +25 -2
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-ghdl.sh +2 -2
- siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +59 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-ghdl.sh +2 -2
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +1 -1
- siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +59 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/__init__.py +9 -15
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/logging.py +1 -1
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/PKG-INFO +12 -9
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/SOURCES.txt +9 -9
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/entry_points.txt +1 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/requires.txt +9 -7
- siliconcompiler-0.32.0/.dockerignore +0 -4
- siliconcompiler-0.32.0/siliconcompiler/fpgas/vpr_example.py +0 -116
- siliconcompiler-0.32.0/siliconcompiler/tools/yosys/sc_syn.tcl +0 -87
- siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -23
- siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +0 -22
- siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -25
- siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +0 -17
- siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +0 -22
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.flake8 +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.gitattributes +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.gitignore +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/LICENSE +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/MANIFEST.in +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/README.md +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/SECURITY.md +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/.gitignore +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/check_library.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/scripts/report_library.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/setup.cfg +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/__main__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/_common.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/asictopflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/screenshotflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/issue.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/libs/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/package/git.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/pdks/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/components/graph.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/state.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/dashboard/viewer.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/html_report.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/report/summary_table.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/schema/schema_cfg.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/sphinx_ext/utils.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/asic_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/email/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/email/general.j2 +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/issue/README.txt +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/issue/run.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/replay.sh.j2 +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/report/sc_report.j2 +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/asic.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/asic_clock.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/_common.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/builtin.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/concatenate.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/build.sbt +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/chisel.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/execute/execute.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/graphviz/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/graphviz/screenshot.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/graphviz/show.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/gtkwave/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/gtkwave/show.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icarus/icarus.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/icepack/icepack.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/export.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/magic.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/montage/montage.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/netgen.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/global_placement.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/repair_design.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_data_physical.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_data_timing.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/slang/elaborate.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/template/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/template/template.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/compile.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/parse.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/verilator/verilator.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vivado/vivado.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/vpr/vpr.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/procs.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/screenshot.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-openroad.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9}/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9}/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel8 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/rhel9}/install-yosys.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu20}/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/rhel9 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu22}/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-bluespec.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu22 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-yosys-moosic.sh +0 -0
- {siliconcompiler-0.32.0/siliconcompiler/toolscripts/ubuntu20 → siliconcompiler-0.32.2/siliconcompiler/toolscripts/ubuntu24}/install-yosys-slang.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/units.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/use.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/asic.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler/utils/showtools.py +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.32.0 → siliconcompiler-0.32.2}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,29 @@ 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.32.2 (2025-03-31)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Minor:**
|
|
15
|
+
|
|
16
|
+
* Expanded tool builds to support arm architectures, where possible.
|
|
17
|
+
* Added tool group descriptions to `sc-install -help`.
|
|
18
|
+
|
|
19
|
+
* Tools:
|
|
20
|
+
|
|
21
|
+
* openroad: added repair design option to repair timing to reduce number of design rule violations.
|
|
22
|
+
* yosys: split the FPGA and ASIC synthesis flows.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
SiliconCompiler 0.32.1 (2025-03-13)
|
|
26
|
+
=========================================
|
|
27
|
+
|
|
28
|
+
**Minor:**
|
|
29
|
+
|
|
30
|
+
* Added github specific url resolver for downloading artifacts from github.
|
|
31
|
+
* Added support to specify step and index for `sc-show` and `sc-dashboard`.
|
|
32
|
+
|
|
33
|
+
|
|
11
34
|
SiliconCompiler 0.32.0 (2025-03-11)
|
|
12
35
|
=========================================
|
|
13
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.32.
|
|
3
|
+
Version: 0.32.2
|
|
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
|
|
@@ -26,7 +26,7 @@ Requires-Python: >=3.8
|
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: aiohttp==3.10.11; python_version <= "3.8"
|
|
29
|
-
Requires-Dist: aiohttp==3.11.
|
|
29
|
+
Requires-Dist: aiohttp==3.11.14; python_version >= "3.9"
|
|
30
30
|
Requires-Dist: requests==2.32.3
|
|
31
31
|
Requires-Dist: PyYAML==6.0.2
|
|
32
32
|
Requires-Dist: pandas>=1.1.5
|
|
@@ -45,10 +45,11 @@ Requires-Dist: fasteners==0.19
|
|
|
45
45
|
Requires-Dist: fastjsonschema==2.21.1
|
|
46
46
|
Requires-Dist: docker==7.1.0
|
|
47
47
|
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
48
|
-
Requires-Dist: orjson==3.10.15
|
|
48
|
+
Requires-Dist: orjson==3.10.15; python_version <= "3.8"
|
|
49
|
+
Requires-Dist: orjson==3.10.16; python_version >= "3.9"
|
|
49
50
|
Requires-Dist: pyslang==8.0.0
|
|
50
51
|
Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
|
|
51
|
-
Requires-Dist: streamlit==1.
|
|
52
|
+
Requires-Dist: streamlit==1.44.0; python_version >= "3.9" and python_full_version != "3.9.7"
|
|
52
53
|
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|
|
53
54
|
Requires-Dist: streamlit-antd-components==0.3.2; python_full_version != "3.9.7"
|
|
54
55
|
Requires-Dist: streamlit_javascript==0.1.5; python_full_version != "3.9.7"
|
|
@@ -58,14 +59,15 @@ Requires-Dist: pytest==8.3.5; extra == "test"
|
|
|
58
59
|
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
|
|
59
60
|
Requires-Dist: pytest-timeout==2.3.1; extra == "test"
|
|
60
61
|
Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
|
|
61
|
-
Requires-Dist: pytest-asyncio==0.
|
|
62
|
+
Requires-Dist: pytest-asyncio==0.26.0; python_version >= "3.9" and extra == "test"
|
|
62
63
|
Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
|
|
63
64
|
Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
|
|
64
|
-
Requires-Dist: responses==0.25.
|
|
65
|
+
Requires-Dist: responses==0.25.7; extra == "test"
|
|
65
66
|
Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
67
|
+
Requires-Dist: logiklib==0.1.0; extra == "test"
|
|
66
68
|
Provides-Extra: lint
|
|
67
|
-
Requires-Dist: flake8==7.
|
|
68
|
-
Requires-Dist: tclint==0.5.
|
|
69
|
+
Requires-Dist: flake8==7.2.0; extra == "lint"
|
|
70
|
+
Requires-Dist: tclint==0.5.4; extra == "lint"
|
|
69
71
|
Requires-Dist: codespell==2.4.1; extra == "lint"
|
|
70
72
|
Provides-Extra: docs
|
|
71
73
|
Requires-Dist: Sphinx==8.2.3; extra == "docs"
|
|
@@ -76,6 +78,7 @@ Provides-Extra: profile
|
|
|
76
78
|
Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
|
|
77
79
|
Provides-Extra: optimizer
|
|
78
80
|
Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
|
|
81
|
+
Dynamic: license-file
|
|
79
82
|
|
|
80
83
|

|
|
81
84
|
|
|
@@ -33,7 +33,7 @@ classifiers = [
|
|
|
33
33
|
requires-python = ">= 3.8"
|
|
34
34
|
dependencies = [
|
|
35
35
|
"aiohttp == 3.10.11; python_version <= '3.8'",
|
|
36
|
-
"aiohttp == 3.11.
|
|
36
|
+
"aiohttp == 3.11.14; python_version >= '3.9'",
|
|
37
37
|
"requests == 2.32.3",
|
|
38
38
|
"PyYAML == 6.0.2",
|
|
39
39
|
"pandas >= 1.1.5",
|
|
@@ -52,12 +52,13 @@ dependencies = [
|
|
|
52
52
|
"fastjsonschema == 2.21.1",
|
|
53
53
|
"docker == 7.1.0",
|
|
54
54
|
"importlib_metadata; python_version < '3.10'",
|
|
55
|
-
"orjson == 3.10.15",
|
|
55
|
+
"orjson == 3.10.15; python_version <= '3.8'",
|
|
56
|
+
"orjson == 3.10.16; python_version >= '3.9'",
|
|
56
57
|
"pyslang == 8.0.0",
|
|
57
58
|
|
|
58
59
|
# dashboard, streamlit does not support 3.9.7
|
|
59
60
|
"streamlit == 1.40.1; python_version <= '3.8'",
|
|
60
|
-
"streamlit == 1.
|
|
61
|
+
"streamlit == 1.44.0; python_version >= '3.9' and python_full_version != '3.9.7'",
|
|
61
62
|
"streamlit_agraph == 0.0.45; python_full_version != '3.9.7'",
|
|
62
63
|
"streamlit-antd-components == 0.3.2; python_full_version != '3.9.7'",
|
|
63
64
|
"streamlit_javascript == 0.1.5; python_full_version != '3.9.7'",
|
|
@@ -93,6 +94,7 @@ targets = "siliconcompiler.targets:get_targets"
|
|
|
93
94
|
[project.entry-points."siliconcompiler.path_resolver"]
|
|
94
95
|
https = "siliconcompiler.package.https:get_resolver"
|
|
95
96
|
git = "siliconcompiler.package.git:get_resolver"
|
|
97
|
+
github = "siliconcompiler.package.github:get_resolver"
|
|
96
98
|
|
|
97
99
|
[project.entry-points."siliconcompiler.docs"]
|
|
98
100
|
linkcode = "siliconcompiler.sphinx_ext:get_codeurl"
|
|
@@ -110,15 +112,16 @@ test = [
|
|
|
110
112
|
"pytest-xdist == 3.6.1",
|
|
111
113
|
"pytest-timeout == 2.3.1",
|
|
112
114
|
"pytest-asyncio == 0.24.0; python_version <= '3.8'",
|
|
113
|
-
"pytest-asyncio == 0.
|
|
115
|
+
"pytest-asyncio == 0.26.0; python_version >= '3.9'",
|
|
114
116
|
"pytest-cov == 5.0.0; python_version <= '3.8'",
|
|
115
117
|
"pytest-cov == 6.0.0; python_version >= '3.9'",
|
|
116
|
-
"responses == 0.25.
|
|
117
|
-
"PyVirtualDisplay == 3.0"
|
|
118
|
+
"responses == 0.25.7",
|
|
119
|
+
"PyVirtualDisplay == 3.0",
|
|
120
|
+
"logiklib == 0.1.0"
|
|
118
121
|
]
|
|
119
122
|
lint = [
|
|
120
|
-
"flake8 == 7.
|
|
121
|
-
"tclint == 0.5.
|
|
123
|
+
"flake8 == 7.2.0",
|
|
124
|
+
"tclint == 0.5.4",
|
|
122
125
|
"codespell == 2.4.1"
|
|
123
126
|
]
|
|
124
127
|
docs = [
|
|
@@ -148,7 +151,6 @@ markers = [
|
|
|
148
151
|
"eda: this test requires EDA tools installed to run. By default these tests will be run nightly, not on push.",
|
|
149
152
|
"quick: always run this test on push, even if it requires EDA tools.",
|
|
150
153
|
"nostrict: don't automatically set [option, strict] parameter for Chip objects in this test.",
|
|
151
|
-
"nolocal: don't use the local data for siliconcompiler_data.",
|
|
152
154
|
"docker: test requires docker",
|
|
153
155
|
]
|
|
154
156
|
testpaths = [
|
|
@@ -98,11 +98,28 @@ def pick_manifest(chip, src_file=None):
|
|
|
98
98
|
if chip.get('option', 'jobname') not in all_manifests[chip.design]:
|
|
99
99
|
jobname = list(all_manifests[chip.design].keys())[0]
|
|
100
100
|
|
|
101
|
+
step, index = chip.get('arg', 'step'), chip.get('arg', 'index')
|
|
102
|
+
if step and not index:
|
|
103
|
+
all_nodes = list(all_manifests[chip.design][jobname].keys())
|
|
104
|
+
try:
|
|
105
|
+
all_nodes.remove((None, None))
|
|
106
|
+
except ValueError:
|
|
107
|
+
pass
|
|
108
|
+
for found_step, found_index in sorted(all_nodes):
|
|
109
|
+
if found_step == step:
|
|
110
|
+
index = found_index
|
|
111
|
+
if index is None:
|
|
112
|
+
index = '0'
|
|
113
|
+
if step and index:
|
|
114
|
+
if (step, index) in all_manifests[chip.design][jobname]:
|
|
115
|
+
return all_manifests[chip.design][jobname][(step, index)]
|
|
116
|
+
else:
|
|
117
|
+
chip.logger.error(f'{step}{index} is not a valid node.')
|
|
118
|
+
return None
|
|
119
|
+
|
|
101
120
|
if (None, None) in all_manifests[chip.design][jobname]:
|
|
102
|
-
|
|
103
|
-
else:
|
|
104
|
-
# pick newest manifest
|
|
105
|
-
manifest = list(sorted(all_manifests[chip.design][jobname].values(),
|
|
106
|
-
key=lambda file: os.stat(file).st_ctime))[-1]
|
|
121
|
+
return all_manifests[chip.design][jobname][None, None]
|
|
107
122
|
|
|
108
|
-
|
|
123
|
+
# pick newest manifest
|
|
124
|
+
return list(sorted(all_manifests[chip.design][jobname].values(),
|
|
125
|
+
key=lambda file: os.stat(file).st_ctime))[-1]
|
|
@@ -63,6 +63,8 @@ To include another chip object to compare to:
|
|
|
63
63
|
if manifest:
|
|
64
64
|
chip.logger.info(f'Loading manifest: {manifest}')
|
|
65
65
|
chip.read_manifest(manifest)
|
|
66
|
+
else:
|
|
67
|
+
manifest = chip.get('option', 'cfg')
|
|
66
68
|
|
|
67
69
|
# Error checking
|
|
68
70
|
design = chip.get('design')
|
|
@@ -70,6 +72,10 @@ To include another chip object to compare to:
|
|
|
70
72
|
chip.logger.error('Design not loaded')
|
|
71
73
|
return 1
|
|
72
74
|
|
|
75
|
+
if not manifest:
|
|
76
|
+
chip.logger.error('Unable to determine job manifest')
|
|
77
|
+
return 2
|
|
78
|
+
|
|
73
79
|
graph_chips = []
|
|
74
80
|
if switches['graph_cfg']:
|
|
75
81
|
for i, name_and_file_path in enumerate(switches['graph_cfg']):
|
|
@@ -86,7 +92,7 @@ To include another chip object to compare to:
|
|
|
86
92
|
raise ValueError(('graph_cfg accepts a max of 2 values, you supplied'
|
|
87
93
|
f' {args} in "-graph_cfg {name_and_file_path}"'))
|
|
88
94
|
if not os.path.isfile(file_path):
|
|
89
|
-
raise ValueError(f'not a valid file path
|
|
95
|
+
raise ValueError(f'not a valid file path: {file_path}')
|
|
90
96
|
graph_chip = siliconcompiler.core.Chip(design='')
|
|
91
97
|
graph_chip.read_manifest(file_path)
|
|
92
98
|
graph_chips.append({
|
|
@@ -139,8 +139,8 @@ def _get_tools_list():
|
|
|
139
139
|
|
|
140
140
|
def _recommended_tool_groups(tools):
|
|
141
141
|
groups = {
|
|
142
|
-
"asic": {"
|
|
143
|
-
"fpga": {"
|
|
142
|
+
"asic": {"sv2v", "yosys", "openroad", "klayout"},
|
|
143
|
+
"fpga": {"sv2v", "yosys", "vpr"},
|
|
144
144
|
"digital-simulation": {"verilator", "icarus", "gtkwave"},
|
|
145
145
|
"analog-simulation": {"xyce"}
|
|
146
146
|
}
|
|
@@ -162,7 +162,13 @@ class HelpFormatter(argparse.ArgumentDefaultsHelpFormatter, argparse.RawDescript
|
|
|
162
162
|
|
|
163
163
|
def main():
|
|
164
164
|
progname = "sc-install"
|
|
165
|
-
|
|
165
|
+
|
|
166
|
+
tools = _get_tools_list()
|
|
167
|
+
group_desc = "\n".join(
|
|
168
|
+
[f" {grp}: {', '.join(grp_tools)}"
|
|
169
|
+
for grp, grp_tools in _recommended_tool_groups(tools).items()])
|
|
170
|
+
|
|
171
|
+
description = f"""
|
|
166
172
|
-----------------------------------------------------------
|
|
167
173
|
SC app install supported tools.
|
|
168
174
|
|
|
@@ -187,14 +193,16 @@ To show the install script:
|
|
|
187
193
|
To system debugging information (this should only be used to debug):
|
|
188
194
|
sc-install -debug_machine
|
|
189
195
|
-----------------------------------------------------------
|
|
196
|
+
Tool groups:
|
|
197
|
+
{group_desc}
|
|
198
|
+
-----------------------------------------------------------
|
|
190
199
|
"""
|
|
200
|
+
|
|
191
201
|
parser = argparse.ArgumentParser(
|
|
192
202
|
prog=progname,
|
|
193
203
|
description=description,
|
|
194
204
|
formatter_class=HelpFormatter)
|
|
195
205
|
|
|
196
|
-
tools = _get_tools_list()
|
|
197
|
-
|
|
198
206
|
if _get_os_name() is None:
|
|
199
207
|
print("Unsupported operating system", file=sys.stderr)
|
|
200
208
|
print_machine_info()
|
|
@@ -97,8 +97,9 @@ To delete a job, use:
|
|
|
97
97
|
chip.logger.error(f'Error: {", ".join(["-"+e for e in exclusive])} are mutually exclusive')
|
|
98
98
|
return 1
|
|
99
99
|
chip_cfg = chip.get('option', 'cfg')
|
|
100
|
-
if chip_cfg and
|
|
100
|
+
if not chip_cfg and any([args[arg] for arg in cfg_only]):
|
|
101
101
|
chip.logger.error(f'Error: -cfg is required for {", ".join(["-"+e for e in cfg_only])}')
|
|
102
|
+
return 2
|
|
102
103
|
if any([args[arg] for arg in cfg_only]) and args['server']:
|
|
103
104
|
chip.logger.error('Error: -server cannot be specified with '
|
|
104
105
|
f'{", ".join(["-"+e for e in cfg_only])}')
|
|
@@ -111,6 +111,8 @@ def main():
|
|
|
111
111
|
if manifest:
|
|
112
112
|
chip.logger.info(f'Loading manifest: {manifest}')
|
|
113
113
|
chip.read_manifest(manifest)
|
|
114
|
+
else:
|
|
115
|
+
manifest = chip.get('option', 'cfg')
|
|
114
116
|
|
|
115
117
|
# Error checking
|
|
116
118
|
design = chip.get('design')
|
|
@@ -120,6 +122,10 @@ def main():
|
|
|
120
122
|
'-cfg, -design, and/or inputs.')
|
|
121
123
|
return 1
|
|
122
124
|
|
|
125
|
+
if not manifest:
|
|
126
|
+
chip.logger.error('Unable to determine job manifest')
|
|
127
|
+
return 2
|
|
128
|
+
|
|
123
129
|
# Read in file
|
|
124
130
|
if filename:
|
|
125
131
|
chip.logger.info(f"Displaying {filename}")
|
|
@@ -203,13 +203,11 @@ class Chip:
|
|
|
203
203
|
|
|
204
204
|
def _add_file_logger(self, filename):
|
|
205
205
|
# Add a file handler for logging
|
|
206
|
-
logformat = self.logger.handlers[0].formatter
|
|
207
|
-
|
|
208
206
|
file_handler = logging.FileHandler(filename)
|
|
209
|
-
file_handler.setFormatter(logformat)
|
|
210
|
-
|
|
211
207
|
self.logger.addHandler(file_handler)
|
|
212
208
|
|
|
209
|
+
self._init_logger_formats()
|
|
210
|
+
|
|
213
211
|
return file_handler
|
|
214
212
|
|
|
215
213
|
###########################################################################
|
|
@@ -227,13 +225,35 @@ class Chip:
|
|
|
227
225
|
else:
|
|
228
226
|
in_run = False
|
|
229
227
|
|
|
228
|
+
# Save in run flag
|
|
229
|
+
self.logger._in_run = in_run
|
|
230
|
+
self.logger._in_step = step
|
|
231
|
+
self.logger._in_index = index
|
|
232
|
+
|
|
233
|
+
self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
|
|
234
|
+
|
|
235
|
+
if not self.logger.hasHandlers():
|
|
236
|
+
stream_handler = logging.StreamHandler(stream=sys.stdout)
|
|
237
|
+
# Save console handler
|
|
238
|
+
self.logger._console = stream_handler
|
|
239
|
+
self.logger.addHandler(stream_handler)
|
|
240
|
+
|
|
241
|
+
self.logger._support_color = ColorStreamFormatter.supports_color(stream_handler)
|
|
242
|
+
|
|
243
|
+
self._init_logger_formats(loglevel=loglevel)
|
|
244
|
+
|
|
245
|
+
def _init_logger_formats(self, loglevel=None):
|
|
246
|
+
if not loglevel:
|
|
247
|
+
self.schema.get('option', 'loglevel',
|
|
248
|
+
step=self.logger._in_step, index=self.logger._in_index)
|
|
249
|
+
|
|
230
250
|
level_format = '%(levelname)-7s'
|
|
231
251
|
log_format = [level_format]
|
|
232
252
|
if loglevel == 'debug':
|
|
233
253
|
log_format.append('%(funcName)-10s')
|
|
234
254
|
log_format.append('%(lineno)-4s')
|
|
235
255
|
|
|
236
|
-
if
|
|
256
|
+
if self.logger._in_run:
|
|
237
257
|
max_column_width = 20
|
|
238
258
|
# Figure out how wide to make step and index fields
|
|
239
259
|
max_step_len = 1
|
|
@@ -249,6 +269,9 @@ class Chip:
|
|
|
249
269
|
|
|
250
270
|
jobname = self.get('option', 'jobname')
|
|
251
271
|
|
|
272
|
+
step = self.logger._in_step
|
|
273
|
+
index = self.logger._in_index
|
|
274
|
+
|
|
252
275
|
if step is None:
|
|
253
276
|
step = '-' * max(max_step_len // 4, 1)
|
|
254
277
|
if index is None:
|
|
@@ -266,19 +289,13 @@ class Chip:
|
|
|
266
289
|
log_format.append('%(message)s')
|
|
267
290
|
stream_logformat = log_formatprefix + ' | '.join(log_format[1:])
|
|
268
291
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
self.logger.addHandler(stream_handler)
|
|
272
|
-
|
|
273
|
-
for handler in self.logger.handlers:
|
|
274
|
-
if ColorStreamFormatter.supports_color(handler):
|
|
292
|
+
for handler in self.logger.handlers.copy():
|
|
293
|
+
if handler == self.logger._console and self.logger._support_color:
|
|
275
294
|
formatter = ColorStreamFormatter(log_formatprefix, level_format, stream_logformat)
|
|
276
295
|
else:
|
|
277
296
|
formatter = LoggerFormatter(log_formatprefix, level_format, stream_logformat)
|
|
278
297
|
handler.setFormatter(formatter)
|
|
279
298
|
|
|
280
|
-
self.logger.setLevel(schema_utils.translate_loglevel(loglevel))
|
|
281
|
-
|
|
282
299
|
###########################################################################
|
|
283
300
|
def _init_codecs(self):
|
|
284
301
|
# Custom error handlers used to provide warnings when invalid characters
|
|
@@ -3239,9 +3256,10 @@ class Chip:
|
|
|
3239
3256
|
if sc_step and sc_index:
|
|
3240
3257
|
search_nodes.append((sc_step, sc_index))
|
|
3241
3258
|
elif sc_step:
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3259
|
+
if flow is not None:
|
|
3260
|
+
for check_step, check_index in nodes_to_execute(self, flow):
|
|
3261
|
+
if sc_step == check_step:
|
|
3262
|
+
search_nodes.append((check_step, check_index))
|
|
3245
3263
|
else:
|
|
3246
3264
|
if flow is not None:
|
|
3247
3265
|
for nodes in _get_flowgraph_execution_order(self,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
from siliconcompiler.utils import register_sc_data_source
|
|
1
|
+
from siliconcompiler import Chip, FPGA
|
|
3
2
|
|
|
4
3
|
|
|
5
4
|
####################################################
|
|
@@ -13,22 +12,13 @@ def setup():
|
|
|
13
12
|
yosys + nextpnr
|
|
14
13
|
'''
|
|
15
14
|
|
|
16
|
-
vendor = 'lattice'
|
|
17
|
-
|
|
18
|
-
lut_size = '4'
|
|
19
|
-
|
|
20
15
|
all_fpgas = []
|
|
21
16
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
]
|
|
25
|
-
|
|
26
|
-
for part_name in all_part_names:
|
|
27
|
-
fpga = siliconcompiler.FPGA(part_name, package='siliconcompiler_data')
|
|
28
|
-
register_sc_data_source(fpga)
|
|
17
|
+
for part_name in ("ice40up5k-sg48",):
|
|
18
|
+
fpga = FPGA(part_name)
|
|
29
19
|
|
|
30
|
-
fpga.set('fpga', part_name, 'vendor',
|
|
31
|
-
fpga.set('fpga', part_name, 'lutsize',
|
|
20
|
+
fpga.set('fpga', part_name, 'vendor', 'lattice')
|
|
21
|
+
fpga.set('fpga', part_name, 'lutsize', 4)
|
|
32
22
|
|
|
33
23
|
all_fpgas.append(fpga)
|
|
34
24
|
|
|
@@ -37,5 +27,5 @@ def setup():
|
|
|
37
27
|
|
|
38
28
|
#########################
|
|
39
29
|
if __name__ == "__main__":
|
|
40
|
-
for fpga in setup(
|
|
30
|
+
for fpga in setup(Chip('<fpga>')):
|
|
41
31
|
fpga.write_manifest(f'{fpga.design}.json')
|
|
@@ -10,9 +10,6 @@ import functools
|
|
|
10
10
|
import time
|
|
11
11
|
from pathlib import Path
|
|
12
12
|
|
|
13
|
-
from github import Github
|
|
14
|
-
import github.Auth
|
|
15
|
-
|
|
16
13
|
from siliconcompiler.utils import get_plugins
|
|
17
14
|
|
|
18
15
|
|
|
@@ -219,58 +216,6 @@ def register_python_data_source(chip,
|
|
|
219
216
|
ref=ref)
|
|
220
217
|
|
|
221
218
|
|
|
222
|
-
def register_private_github_data_source(chip,
|
|
223
|
-
package_name,
|
|
224
|
-
repository,
|
|
225
|
-
release,
|
|
226
|
-
artifact):
|
|
227
|
-
gh = Github(auth=github.Auth.Token(__get_github_auth_token(package_name)))
|
|
228
|
-
repo = gh.get_repo(repository)
|
|
229
|
-
|
|
230
|
-
if not release:
|
|
231
|
-
release = repo.get_latest_release().tag_name
|
|
232
|
-
|
|
233
|
-
url = None
|
|
234
|
-
for repo_release in repo.get_releases():
|
|
235
|
-
if repo_release.tag_name == release:
|
|
236
|
-
for asset in repo_release.assets:
|
|
237
|
-
if asset.name == artifact:
|
|
238
|
-
url = asset.url
|
|
239
|
-
|
|
240
|
-
if not url:
|
|
241
|
-
raise ValueError(f'Unable to find release asset: {repository}/{release}/{artifact}')
|
|
242
|
-
|
|
243
|
-
chip.register_source(
|
|
244
|
-
package_name,
|
|
245
|
-
path=url,
|
|
246
|
-
ref=release)
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
def __get_github_auth_token(package_name):
|
|
250
|
-
token_name = package_name.upper()
|
|
251
|
-
for tok in ('#', '$', '&', '-', '=', '!', '/'):
|
|
252
|
-
token_name = token_name.replace(tok, '')
|
|
253
|
-
|
|
254
|
-
search_env = (
|
|
255
|
-
f'GITHUB_{token_name}_TOKEN',
|
|
256
|
-
'GITHUB_TOKEN',
|
|
257
|
-
'GIT_TOKEN'
|
|
258
|
-
)
|
|
259
|
-
|
|
260
|
-
token = None
|
|
261
|
-
for env in search_env:
|
|
262
|
-
token = os.environ.get(env, None)
|
|
263
|
-
|
|
264
|
-
if token:
|
|
265
|
-
break
|
|
266
|
-
|
|
267
|
-
if not token:
|
|
268
|
-
raise ValueError('Unable to determine authorization token for GitHub, '
|
|
269
|
-
f'please set one of the following environmental variables: {search_env}')
|
|
270
|
-
|
|
271
|
-
return token
|
|
272
|
-
|
|
273
|
-
|
|
274
219
|
@functools.lru_cache(maxsize=1)
|
|
275
220
|
def __get_python_module_mapping():
|
|
276
221
|
mapping = {}
|
|
@@ -298,3 +243,14 @@ def __get_python_module_mapping():
|
|
|
298
243
|
mapping.setdefault(module, []).append(dist_name)
|
|
299
244
|
|
|
300
245
|
return mapping
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
def register_private_github_data_source(chip,
|
|
249
|
+
package_name,
|
|
250
|
+
repository,
|
|
251
|
+
release,
|
|
252
|
+
artifact):
|
|
253
|
+
chip.register_source(
|
|
254
|
+
package_name,
|
|
255
|
+
path=f"github+private://{repository}/{release}/{artifact}",
|
|
256
|
+
ref=release)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from fasteners import InterProcessLock
|
|
3
|
+
from github import Github, Auth
|
|
4
|
+
from github.GithubException import UnknownObjectException
|
|
5
|
+
from urllib.parse import urlparse
|
|
6
|
+
from siliconcompiler.package import get_download_cache_path
|
|
7
|
+
from siliconcompiler.package import aquire_data_lock, release_data_lock
|
|
8
|
+
from siliconcompiler.package.https import _http_resolver
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def get_resolver(url):
|
|
12
|
+
if url.scheme in ("github",):
|
|
13
|
+
return github_any_resolver
|
|
14
|
+
if url.scheme in ("github+private",):
|
|
15
|
+
return github_private_resolver
|
|
16
|
+
return None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def github_any_resolver(chip, package, path, ref, url, fetch):
|
|
20
|
+
data_path, data_path_lock = get_download_cache_path(chip, package, ref)
|
|
21
|
+
|
|
22
|
+
if not fetch:
|
|
23
|
+
return data_path, False
|
|
24
|
+
|
|
25
|
+
# Acquire lock
|
|
26
|
+
data_lock = InterProcessLock(data_path_lock)
|
|
27
|
+
aquire_data_lock(data_path, data_lock)
|
|
28
|
+
|
|
29
|
+
if os.path.exists(data_path):
|
|
30
|
+
release_data_lock(data_lock)
|
|
31
|
+
return data_path, False
|
|
32
|
+
|
|
33
|
+
try:
|
|
34
|
+
return _github_resolver(chip, package, path, ref, url, data_lock)
|
|
35
|
+
except UnknownObjectException:
|
|
36
|
+
return github_private_resolver(chip, package, path, ref, url, fetch, data_lock=data_lock)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def github_private_resolver(chip, package, path, ref, url, fetch, data_lock=None):
|
|
40
|
+
data_path, data_path_lock = get_download_cache_path(chip, package, ref)
|
|
41
|
+
|
|
42
|
+
if not fetch:
|
|
43
|
+
return data_path, False
|
|
44
|
+
|
|
45
|
+
if not data_lock:
|
|
46
|
+
# Acquire lock
|
|
47
|
+
data_lock = InterProcessLock(data_path_lock)
|
|
48
|
+
aquire_data_lock(data_path, data_lock)
|
|
49
|
+
|
|
50
|
+
if os.path.exists(data_path):
|
|
51
|
+
release_data_lock(data_lock)
|
|
52
|
+
return data_path, False
|
|
53
|
+
|
|
54
|
+
gh = Github(auth=Auth.Token(__get_github_auth_token(package)))
|
|
55
|
+
|
|
56
|
+
return _github_resolver(chip, package, path, ref, url, data_lock, gh=gh)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def _github_resolver(chip, package, path, ref, url, data_lock, gh=None):
|
|
60
|
+
if not gh:
|
|
61
|
+
gh = Github()
|
|
62
|
+
|
|
63
|
+
url_parts = (url.netloc, *url.path.split("/")[1:])
|
|
64
|
+
|
|
65
|
+
if len(url_parts) != 4:
|
|
66
|
+
raise ValueError(
|
|
67
|
+
f"{path} is not in the proper form: <owner>/<repository>/<version>/<artifact>")
|
|
68
|
+
|
|
69
|
+
repository = "/".join(url_parts[0:2])
|
|
70
|
+
release = url_parts[2]
|
|
71
|
+
artifact = url_parts[3]
|
|
72
|
+
|
|
73
|
+
release_url = __get_release_url(gh, repository, release, artifact)
|
|
74
|
+
|
|
75
|
+
return _http_resolver(chip, package, release_url, ref, urlparse(release_url), data_lock)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def __get_release_url(gh, repository, release, artifact):
|
|
79
|
+
if artifact == f"{release}.zip":
|
|
80
|
+
return f"https://github.com/{repository}/archive/refs/tags/{release}.zip"
|
|
81
|
+
if artifact == f"{release}.tar.gz":
|
|
82
|
+
return f"https://github.com/{repository}/archive/refs/tags/{release}.tar.gz"
|
|
83
|
+
|
|
84
|
+
repo = gh.get_repo(repository)
|
|
85
|
+
|
|
86
|
+
if not release:
|
|
87
|
+
release = repo.get_latest_release().tag_name
|
|
88
|
+
|
|
89
|
+
url = None
|
|
90
|
+
for repo_release in repo.get_releases():
|
|
91
|
+
if repo_release.tag_name == release:
|
|
92
|
+
for asset in repo_release.assets:
|
|
93
|
+
if asset.name == artifact:
|
|
94
|
+
url = asset.url
|
|
95
|
+
|
|
96
|
+
if not url:
|
|
97
|
+
raise ValueError(f'Unable to find release asset: {repository}/{release}/{artifact}')
|
|
98
|
+
|
|
99
|
+
return url
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def __get_github_auth_token(package_name):
|
|
103
|
+
token_name = package_name.upper()
|
|
104
|
+
for tok in ('#', '$', '&', '-', '=', '!', '/'):
|
|
105
|
+
token_name = token_name.replace(tok, '')
|
|
106
|
+
|
|
107
|
+
search_env = (
|
|
108
|
+
f'GITHUB_{token_name}_TOKEN',
|
|
109
|
+
'GITHUB_TOKEN',
|
|
110
|
+
'GIT_TOKEN'
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
token = None
|
|
114
|
+
for env in search_env:
|
|
115
|
+
token = os.environ.get(env, None)
|
|
116
|
+
|
|
117
|
+
if token:
|
|
118
|
+
break
|
|
119
|
+
|
|
120
|
+
if not token:
|
|
121
|
+
raise ValueError('Unable to determine authorization token for GitHub, '
|
|
122
|
+
f'please set one of the following environmental variables: {search_env}')
|
|
123
|
+
|
|
124
|
+
return token
|
|
@@ -35,6 +35,12 @@ def http_resolver(chip, package, path, ref, url, fetch):
|
|
|
35
35
|
release_data_lock(data_lock)
|
|
36
36
|
return data_path, False
|
|
37
37
|
|
|
38
|
+
return _http_resolver(chip, package, path, ref, url, data_lock)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _http_resolver(chip, package, path, ref, url, data_lock):
|
|
42
|
+
data_path, _ = get_download_cache_path(chip, package, ref)
|
|
43
|
+
|
|
38
44
|
extract_from_url(chip, package, path, ref, url, data_path)
|
|
39
45
|
|
|
40
46
|
release_data_lock(data_lock)
|