siliconcompiler 0.29.1__tar.gz → 0.29.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.29.1 → siliconcompiler-0.29.2}/Changes +17 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/PKG-INFO +5 -5
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/pyproject.toml +4 -4
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc_install.py +1 -1
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/core.py +10 -5
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/__init__.py +2 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/_common/asic.py +70 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +2 -2
- siliconcompiler-0.29.2/siliconcompiler/tools/gtkwave/__init__.py +39 -0
- siliconcompiler-0.29.2/siliconcompiler/tools/gtkwave/scripts/sc_show.tcl +34 -0
- siliconcompiler-0.29.2/siliconcompiler/tools/gtkwave/show.py +70 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/icarus/compile.py +4 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/_apr.py +9 -1
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/global_placement.py +23 -2
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
- siliconcompiler-0.29.2/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +89 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +4 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +7 -1
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/procs.tcl +38 -2
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/write_images.tcl +10 -1
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/verilator/compile.py +11 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/verilator/verilator.py +1 -1
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/_tools.json +6 -1
- siliconcompiler-0.29.2/siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +40 -0
- siliconcompiler-0.29.2/siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +28 -0
- siliconcompiler-0.29.2/siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +28 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
- siliconcompiler-0.29.2/siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +29 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/utils/showtools.py +3 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler.egg-info/PKG-INFO +5 -5
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler.egg-info/SOURCES.txt +7 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler.egg-info/requires.txt +4 -4
- siliconcompiler-0.29.1/siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +0 -26
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/.dockerignore +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/.flake8 +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/.gitattributes +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/.gitignore +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/LICENSE +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/MANIFEST.in +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/README.md +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/SECURITY.md +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/scripts/.gitignore +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/scripts/check_library.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/scripts/report_library.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/setup.cfg +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/__main__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc_dashboard.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/utils/replay.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/apps/utils/summarize.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/_common.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/asictopflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/drcflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/interposerflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/screenshotflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/fpgas/vpr_example.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/issue.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/libs/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/optimizer/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/optimizer/vizier.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/package.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/pdks/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/components/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/components/graph.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/state.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/dashboard/viewer.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/html_report.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/summary_table.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/report/utils.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/docker_runner.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/schema/schema_cfg.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/schema/schema_obj.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/sphinx_ext/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/sphinx_ext/dynamicgen.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/sphinx_ext/utils.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/asic_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/interposer_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/email/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/email/general.j2 +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/issue/README.txt +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/issue/run.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/replay/replay.py.j2 +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/replay/requirements.txt +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/replay/setup.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/report/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/report/sc_report.j2 +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/_common/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/bambu/bambu.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/_common.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/builtin.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/concatenate.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/chisel/build.sbt +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/chisel/chisel.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/execute/execute.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/genfasm/genfasm.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/ghdl/convert.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/icarus/icarus.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/icepack/icepack.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/convert_drc_db.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/drc.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/export.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/klayout.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/operations.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/screenshot.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/klayout/show.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/drc.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/extspice.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/magic.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/sc_drc.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/sc_extspice.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/montage/montage.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/netgen/netgen.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/antenna_repair.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/clock_tree_synthesis.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/detailed_placement.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/detailed_route.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/endcap_tapcell_insertion.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/fillercell_insertion.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/fillmetal_insertion.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/global_route.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/init_floorplan.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/macro_placement.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/metrics.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/pin_placement.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/power_grid.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/rdlroute.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/repair_design.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/repair_timing.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/debugging.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/reports.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/common/write_data.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/rcx/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/scripts/sc_show.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/write_data.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/check_library.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/surelog/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/template/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/template/template.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/verilator/parse.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vivado/vivado.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/vpr/vpr.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/lec.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/procs.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/sc_screenshot.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/sc_syn.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/screenshot.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/syn_asic.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/syn_asic.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/syn_fpga.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/units.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/use.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/utils/__init__.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/utils/asic.py +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,23 @@ The changes in each SiliconCompiler release version are described below. Commit
|
|
|
8
8
|
version shown in (). Where applicable, the contributors that suggested a given
|
|
9
9
|
feature are shown in [].
|
|
10
10
|
|
|
11
|
+
SiliconCompiler 0.29.2 (2025-01-16)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Major:**
|
|
15
|
+
|
|
16
|
+
* Added gtkwave show task to allow for vcd viewing.
|
|
17
|
+
* Removed enablement for conda-eda as this is no longer a supported project.
|
|
18
|
+
|
|
19
|
+
**Minor:**
|
|
20
|
+
|
|
21
|
+
* Allow passing a file path to `.register_source` to make it easier to handle retive path to the current file.
|
|
22
|
+
|
|
23
|
+
* Tools:
|
|
24
|
+
|
|
25
|
+
* openroad: added support for mutli-bit flipflop mapping and initial support for scan chain insertion, correct pin ordering from constraints.
|
|
26
|
+
|
|
27
|
+
|
|
11
28
|
SiliconCompiler 0.29.1 (2025-01-09)
|
|
12
29
|
=========================================
|
|
13
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.29.
|
|
3
|
+
Version: 0.29.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
|
|
@@ -46,7 +46,7 @@ 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
48
|
Requires-Dist: sc-surelog==1.84.1
|
|
49
|
-
Requires-Dist: orjson==3.10.
|
|
49
|
+
Requires-Dist: orjson==3.10.14
|
|
50
50
|
Requires-Dist: streamlit==1.40.1; python_version <= "3.8"
|
|
51
51
|
Requires-Dist: streamlit==1.41.1; python_version >= "3.9" and python_full_version != "3.9.7"
|
|
52
52
|
Requires-Dist: streamlit_agraph==0.0.45; python_full_version != "3.9.7"
|
|
@@ -58,10 +58,10 @@ Requires-Dist: pytest==8.3.4; extra == "test"
|
|
|
58
58
|
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
|
|
59
59
|
Requires-Dist: pytest-timeout==2.3.1; extra == "test"
|
|
60
60
|
Requires-Dist: pytest-asyncio==0.24.0; python_version <= "3.8" and extra == "test"
|
|
61
|
-
Requires-Dist: pytest-asyncio==0.25.
|
|
61
|
+
Requires-Dist: pytest-asyncio==0.25.2; python_version >= "3.9" and extra == "test"
|
|
62
62
|
Requires-Dist: pytest-cov==5.0.0; python_version <= "3.8" and extra == "test"
|
|
63
63
|
Requires-Dist: pytest-cov==6.0.0; python_version >= "3.9" and extra == "test"
|
|
64
|
-
Requires-Dist: responses==0.25.
|
|
64
|
+
Requires-Dist: responses==0.25.5; extra == "test"
|
|
65
65
|
Requires-Dist: PyVirtualDisplay==3.0; extra == "test"
|
|
66
66
|
Provides-Extra: lint
|
|
67
67
|
Requires-Dist: flake8==7.1.1; extra == "lint"
|
|
@@ -78,7 +78,7 @@ Provides-Extra: examples
|
|
|
78
78
|
Requires-Dist: migen==0.9.2; extra == "examples"
|
|
79
79
|
Requires-Dist: lambdalib==0.3.2; extra == "examples"
|
|
80
80
|
Provides-Extra: optimizer
|
|
81
|
-
Requires-Dist: google-vizier[jax]==0.1.
|
|
81
|
+
Requires-Dist: google-vizier[jax]==0.1.21; python_version >= "3.10" and extra == "optimizer"
|
|
82
82
|
|
|
83
83
|

|
|
84
84
|
|
|
@@ -53,7 +53,7 @@ dependencies = [
|
|
|
53
53
|
"docker == 7.1.0",
|
|
54
54
|
"importlib_metadata; python_version < '3.10'",
|
|
55
55
|
"sc-surelog == 1.84.1",
|
|
56
|
-
"orjson == 3.10.
|
|
56
|
+
"orjson == 3.10.14",
|
|
57
57
|
|
|
58
58
|
# dashboard, streamlit does not support 3.9.7
|
|
59
59
|
"streamlit == 1.40.1; python_version <= '3.8'",
|
|
@@ -106,10 +106,10 @@ test = [
|
|
|
106
106
|
"pytest-xdist == 3.6.1",
|
|
107
107
|
"pytest-timeout == 2.3.1",
|
|
108
108
|
"pytest-asyncio == 0.24.0; python_version <= '3.8'",
|
|
109
|
-
"pytest-asyncio == 0.25.
|
|
109
|
+
"pytest-asyncio == 0.25.2; python_version >= '3.9'",
|
|
110
110
|
"pytest-cov == 5.0.0; python_version <= '3.8'",
|
|
111
111
|
"pytest-cov == 6.0.0; python_version >= '3.9'",
|
|
112
|
-
"responses == 0.25.
|
|
112
|
+
"responses == 0.25.5",
|
|
113
113
|
"PyVirtualDisplay == 3.0"
|
|
114
114
|
]
|
|
115
115
|
lint = [
|
|
@@ -131,7 +131,7 @@ examples = [
|
|
|
131
131
|
"lambdalib == 0.3.2"
|
|
132
132
|
]
|
|
133
133
|
optimizer = [
|
|
134
|
-
"google-vizier[jax] == 0.1.
|
|
134
|
+
"google-vizier[jax] == 0.1.21; python_version >= '3.10'"
|
|
135
135
|
]
|
|
136
136
|
|
|
137
137
|
[tool.setuptools]
|
|
@@ -126,7 +126,7 @@ def _recommended_tool_groups(tools):
|
|
|
126
126
|
groups = {
|
|
127
127
|
"asic": {"surelog", "sv2v", "yosys", "openroad", "klayout"},
|
|
128
128
|
"fpga": {"surelog", "sv2v", "yosys", "vpr"},
|
|
129
|
-
"digital-simulation": {"verilator", "icarus"},
|
|
129
|
+
"digital-simulation": {"verilator", "icarus", "gtkwave"},
|
|
130
130
|
"analog-simulation": {"xyce"}
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -500,6 +500,9 @@ class Chip:
|
|
|
500
500
|
'dependency-caching-rebase')
|
|
501
501
|
"""
|
|
502
502
|
|
|
503
|
+
if os.path.isfile(path):
|
|
504
|
+
path = os.path.dirname(os.path.abspath(path))
|
|
505
|
+
|
|
503
506
|
preset_path = self.get('package', 'source', name, 'path')
|
|
504
507
|
preset_ref = self.get('package', 'source', name, 'ref')
|
|
505
508
|
if preset_path and preset_path != path or preset_ref and preset_ref != ref:
|
|
@@ -3200,6 +3203,7 @@ class Chip:
|
|
|
3200
3203
|
sc_step = self.get('arg', 'step')
|
|
3201
3204
|
sc_index = self.get('arg', 'index')
|
|
3202
3205
|
sc_job = self.get('option', 'jobname')
|
|
3206
|
+
flow = self.get('option', 'flow')
|
|
3203
3207
|
|
|
3204
3208
|
has_filename = filename is not None
|
|
3205
3209
|
# Finding last layout if no argument specified
|
|
@@ -3210,14 +3214,15 @@ class Chip:
|
|
|
3210
3214
|
if sc_step and sc_index:
|
|
3211
3215
|
search_nodes.append((sc_step, sc_index))
|
|
3212
3216
|
elif sc_step:
|
|
3213
|
-
for check_step, check_index in nodes_to_execute(self,
|
|
3217
|
+
for check_step, check_index in nodes_to_execute(self, flow):
|
|
3214
3218
|
if sc_step == check_step:
|
|
3215
3219
|
search_nodes.append((check_step, check_index))
|
|
3216
3220
|
else:
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
+
if flow is not None:
|
|
3222
|
+
for nodes in _get_flowgraph_execution_order(self,
|
|
3223
|
+
flow,
|
|
3224
|
+
reverse=True):
|
|
3225
|
+
search_nodes.extend(nodes)
|
|
3221
3226
|
|
|
3222
3227
|
for ext in self._showtools.keys():
|
|
3223
3228
|
if extension and extension != ext:
|
|
@@ -5,6 +5,7 @@ from siliconcompiler.tools.chisel import chisel
|
|
|
5
5
|
from siliconcompiler.tools.execute import execute
|
|
6
6
|
from siliconcompiler.tools.genfasm import genfasm
|
|
7
7
|
from siliconcompiler.tools.ghdl import ghdl
|
|
8
|
+
from siliconcompiler.tools import gtkwave
|
|
8
9
|
from siliconcompiler.tools.icarus import icarus
|
|
9
10
|
from siliconcompiler.tools.icepack import icepack
|
|
10
11
|
from siliconcompiler.tools.klayout import klayout
|
|
@@ -38,6 +39,7 @@ def get_tools():
|
|
|
38
39
|
execute,
|
|
39
40
|
genfasm,
|
|
40
41
|
ghdl,
|
|
42
|
+
gtkwave,
|
|
41
43
|
icarus,
|
|
42
44
|
icepack,
|
|
43
45
|
klayout,
|
|
@@ -135,6 +135,76 @@ def set_tool_task_var(chip,
|
|
|
135
135
|
return value
|
|
136
136
|
|
|
137
137
|
|
|
138
|
+
def set_tool_task_lib_var(chip,
|
|
139
|
+
param_key,
|
|
140
|
+
default_value=None,
|
|
141
|
+
schelp=None,
|
|
142
|
+
option_key=None,
|
|
143
|
+
lib_key=None):
|
|
144
|
+
'''
|
|
145
|
+
Set parameter from libraries -> option -> default_value
|
|
146
|
+
'''
|
|
147
|
+
step = chip.get('arg', 'step')
|
|
148
|
+
index = chip.get('arg', 'index')
|
|
149
|
+
tool, task = get_tool_task(chip, step, index)
|
|
150
|
+
|
|
151
|
+
if schelp:
|
|
152
|
+
chip.set('tool', tool, 'task', task, 'var', param_key,
|
|
153
|
+
schelp, field='help')
|
|
154
|
+
|
|
155
|
+
if not option_key:
|
|
156
|
+
option_key = f'{tool}_{param_key}'
|
|
157
|
+
require_key, value = pick_key(chip, [('option', 'var', option_key)], step=step, index=index)
|
|
158
|
+
|
|
159
|
+
def check_value(val):
|
|
160
|
+
if isinstance(val, (list, tuple, set)):
|
|
161
|
+
return len(val) > 0
|
|
162
|
+
return val is not None
|
|
163
|
+
|
|
164
|
+
if check_value(value):
|
|
165
|
+
chip.set('tool', tool, 'task', task, 'var', param_key, value,
|
|
166
|
+
step=step, index=index, clobber=False)
|
|
167
|
+
|
|
168
|
+
if require_key:
|
|
169
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
170
|
+
','.join(('option', option_key)),
|
|
171
|
+
step=step, index=index)
|
|
172
|
+
|
|
173
|
+
return value
|
|
174
|
+
|
|
175
|
+
# Add library key
|
|
176
|
+
if not lib_key:
|
|
177
|
+
lib_key = f'{tool}_{param_key}'
|
|
178
|
+
lib_keys = []
|
|
179
|
+
for lib in get_libraries(chip, 'logic'):
|
|
180
|
+
if chip.valid('library', lib, 'option', 'var', lib_key) and \
|
|
181
|
+
chip.get('library', lib, 'option', 'var', lib_key):
|
|
182
|
+
lib_keys.append(('library', lib, 'option', 'var', lib_key))
|
|
183
|
+
|
|
184
|
+
values = set()
|
|
185
|
+
for lib_key in lib_keys:
|
|
186
|
+
chip.add('tool', tool, 'task', task, 'require', ','.join(lib_key), step=step, index=index)
|
|
187
|
+
|
|
188
|
+
get_step = step
|
|
189
|
+
get_index = index
|
|
190
|
+
|
|
191
|
+
if chip.get(*lib_key, field='pernode') == 'never':
|
|
192
|
+
get_step = None
|
|
193
|
+
get_index = None
|
|
194
|
+
|
|
195
|
+
values.update(chip.get(*lib_key, step=get_step, index=get_index))
|
|
196
|
+
|
|
197
|
+
if check_value(values):
|
|
198
|
+
chip.set('tool', tool, 'task', task, 'var', param_key, values,
|
|
199
|
+
step=step, index=index, clobber=False)
|
|
200
|
+
|
|
201
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
202
|
+
','.join(['tool', tool, 'task', task, 'var', param_key]),
|
|
203
|
+
step=step, index=index)
|
|
204
|
+
|
|
205
|
+
return values
|
|
206
|
+
|
|
207
|
+
|
|
138
208
|
def get_tool_task_var(chip,
|
|
139
209
|
param_key,
|
|
140
210
|
option_key=None,
|
|
@@ -49,8 +49,8 @@ proc sc_collect_pin_constraints {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
set side_pin_order []
|
|
52
|
-
|
|
53
|
-
lappend side_pin_order {*}$
|
|
52
|
+
foreach index [lsort -integer [dict keys $pins]] {
|
|
53
|
+
lappend side_pin_order {*}[dict get $pins $index]
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
set pin_layer_ordering [dict create]
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'''
|
|
2
|
+
GTKWave is a fully featured GTK+ based wave viewer for Unix, Win32, and
|
|
3
|
+
Mac OSX which reads LXT, LXT2, VZT, FST, and GHW files as well as standard
|
|
4
|
+
Verilog VCD/EVCD files and allows their viewing.
|
|
5
|
+
|
|
6
|
+
Documentation: https://gtkwave.github.io/gtkwave/
|
|
7
|
+
|
|
8
|
+
Sources: https://github.com/gtkwave/gtkwave
|
|
9
|
+
|
|
10
|
+
Installation: https://github.com/gtkwave/gtkwave
|
|
11
|
+
'''
|
|
12
|
+
|
|
13
|
+
from siliconcompiler.tools._common import \
|
|
14
|
+
get_tool_task
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def setup(chip):
|
|
18
|
+
step = chip.get('arg', 'step')
|
|
19
|
+
index = chip.get('arg', 'index')
|
|
20
|
+
tool, task = get_tool_task(chip, step, index)
|
|
21
|
+
|
|
22
|
+
chip.set('tool', tool, 'exe', 'gtkwave')
|
|
23
|
+
chip.set('tool', tool, 'vswitch', '--version')
|
|
24
|
+
chip.set('tool', tool, 'version', '>=v3.3.116', clobber=False)
|
|
25
|
+
chip.set('tool', tool, 'format', 'tcl', clobber=False)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
################################
|
|
29
|
+
# Version Check
|
|
30
|
+
################################
|
|
31
|
+
def parse_version(stdout):
|
|
32
|
+
# First line: GTKWave Analyzer v3.3.116 (w)1999-2023 BSI
|
|
33
|
+
return stdout.split()[2]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def normalize_version(version):
|
|
37
|
+
if version[0] == 'v':
|
|
38
|
+
return version[1:]
|
|
39
|
+
return version
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
# Reading SC Schema
|
|
3
|
+
###############################
|
|
4
|
+
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
|
+
|
|
7
|
+
##############################
|
|
8
|
+
# Schema Adapter
|
|
9
|
+
###############################
|
|
10
|
+
|
|
11
|
+
set sc_step [sc_cfg_get arg step]
|
|
12
|
+
set sc_index [sc_cfg_get arg index]
|
|
13
|
+
set sc_flow [sc_cfg_get option flow]
|
|
14
|
+
set sc_tool [sc_cfg_get flowgraph $sc_flow $sc_step $sc_index tool]
|
|
15
|
+
set sc_task [sc_cfg_get flowgraph $sc_flow $sc_step $sc_index task]
|
|
16
|
+
|
|
17
|
+
###############################
|
|
18
|
+
# Source pre-scripts
|
|
19
|
+
###############################
|
|
20
|
+
|
|
21
|
+
if { [sc_cfg_tool_task_exists prescript] } {
|
|
22
|
+
foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
|
|
23
|
+
puts "Sourcing pre script: ${sc_pre_script}"
|
|
24
|
+
source $sc_pre_script
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
###############################
|
|
29
|
+
# Handle exit
|
|
30
|
+
###############################
|
|
31
|
+
|
|
32
|
+
if { [lindex [sc_cfg_tool_task_get {var} show_exit] 0] == "true" } {
|
|
33
|
+
exit
|
|
34
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
from siliconcompiler.tools.gtkwave import setup as tool_setup
|
|
4
|
+
from siliconcompiler.tools._common import \
|
|
5
|
+
add_require_input, get_tool_task, input_provides
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def setup(chip):
|
|
9
|
+
'''
|
|
10
|
+
Show a VCD file.
|
|
11
|
+
'''
|
|
12
|
+
|
|
13
|
+
tool_setup(chip)
|
|
14
|
+
|
|
15
|
+
step = chip.get('arg', 'step')
|
|
16
|
+
index = chip.get('arg', 'index')
|
|
17
|
+
tool, task = get_tool_task(chip, step, index)
|
|
18
|
+
|
|
19
|
+
chip.set('tool', tool, 'task', task, 'threads', os.cpu_count(),
|
|
20
|
+
step=step, index=index)
|
|
21
|
+
|
|
22
|
+
chip.set('tool', tool, 'task', task, 'refdir',
|
|
23
|
+
'tools/gtkwave/scripts',
|
|
24
|
+
step=step, index=index, package='siliconcompiler')
|
|
25
|
+
|
|
26
|
+
chip.set('tool', tool, 'task', task, 'refdir',
|
|
27
|
+
'tools/gtkwave/scripts',
|
|
28
|
+
step=step, index=index, package='siliconcompiler')
|
|
29
|
+
chip.set('tool', tool, 'task', task, 'script', 'sc_show.tcl',
|
|
30
|
+
step=step, index=index)
|
|
31
|
+
|
|
32
|
+
if f'{chip.top()}.vcd' in input_provides(chip, step, index):
|
|
33
|
+
chip.set('tool', tool, 'task', task, 'input', f'{chip.top()}.vcd', step=step, index=index)
|
|
34
|
+
elif chip.valid('tool', tool, 'task', task, 'var', 'show_filepath') and \
|
|
35
|
+
chip.get('tool', tool, 'task', task, 'var', 'show_filepath', step=step, index=index):
|
|
36
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
37
|
+
",".join(['tool', tool, 'task', task, 'var', 'show_filepath']),
|
|
38
|
+
step=step, index=index)
|
|
39
|
+
else:
|
|
40
|
+
add_require_input(chip, 'input', 'waveform', 'vcd')
|
|
41
|
+
|
|
42
|
+
chip.set('tool', tool, 'task', task, 'var', 'show_exit', False,
|
|
43
|
+
step=step, index=index, clobber=False)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def runtime_options(chip):
|
|
47
|
+
step = chip.get('arg', 'step')
|
|
48
|
+
index = chip.get('arg', 'index')
|
|
49
|
+
tool, task = get_tool_task(chip, step, index)
|
|
50
|
+
|
|
51
|
+
options = []
|
|
52
|
+
|
|
53
|
+
threads = chip.get('tool', tool, 'task', task, 'threads', step=step, index=index)
|
|
54
|
+
if threads:
|
|
55
|
+
options.append(f'--cpu={threads}')
|
|
56
|
+
|
|
57
|
+
script = chip.find_files('tool', tool, 'task', task, 'script', step=step, index=index)[0]
|
|
58
|
+
options.append(f'--script={script}')
|
|
59
|
+
|
|
60
|
+
if os.path.exists(f'inputs/{chip.top()}.vcd'):
|
|
61
|
+
dump = f'inputs/{chip.top()}.vcd'
|
|
62
|
+
elif chip.valid('tool', tool, 'task', task, 'var', 'show_filepath') and \
|
|
63
|
+
chip.get('tool', tool, 'task', task, 'var', 'show_filepath', step=step, index=index):
|
|
64
|
+
dump = chip.get('tool', tool, 'task', task, 'var', 'show_filepath',
|
|
65
|
+
step=step, index=index)[0]
|
|
66
|
+
else:
|
|
67
|
+
dump = chip.find_files('input', 'waveform', 'vcd', step=step, index=index)[0]
|
|
68
|
+
options.append(f'--dump={dump}')
|
|
69
|
+
|
|
70
|
+
return options
|
|
@@ -75,6 +75,10 @@ def runtime_options(chip):
|
|
|
75
75
|
cmdlist.append('-I' + value)
|
|
76
76
|
for value in opts['define']:
|
|
77
77
|
cmdlist.append('-D' + value)
|
|
78
|
+
|
|
79
|
+
# add siliconcompiler specific defines
|
|
80
|
+
cmdlist.append(f"-DSILICONCOMPILER_TRACE_FILE=\\\"reports/{design}.vcd\\\"")
|
|
81
|
+
|
|
78
82
|
for value in get_input_files(chip, 'input', 'cmdfile', 'f'):
|
|
79
83
|
cmdlist.append('-f ' + value)
|
|
80
84
|
for value in get_input_files(chip, 'input', 'rtl', 'netlist'):
|
|
@@ -5,7 +5,7 @@ from siliconcompiler import utils
|
|
|
5
5
|
from siliconcompiler.tools._common import input_provides, add_common_file, \
|
|
6
6
|
get_tool_task, record_metric
|
|
7
7
|
from siliconcompiler.tools._common.asic import get_mainlib, set_tool_task_var, get_libraries, \
|
|
8
|
-
CellArea
|
|
8
|
+
CellArea, set_tool_task_lib_var
|
|
9
9
|
from siliconcompiler.tools.openroad import setup as tool_setup
|
|
10
10
|
|
|
11
11
|
|
|
@@ -894,6 +894,14 @@ def define_ord_params(chip):
|
|
|
894
894
|
require=['key'],
|
|
895
895
|
schelp='number of Y bins to use for heatmap image generation')
|
|
896
896
|
|
|
897
|
+
set_tool_task_lib_var(chip, param_key='scan_chain_cells',
|
|
898
|
+
default_value=None,
|
|
899
|
+
schelp='cells to use for scan chain insertion')
|
|
900
|
+
|
|
901
|
+
set_tool_task_lib_var(chip, param_key='multibit_ff_cells',
|
|
902
|
+
default_value=None,
|
|
903
|
+
schelp='multibit flipflop cells')
|
|
904
|
+
|
|
897
905
|
|
|
898
906
|
def define_ord_files(chip):
|
|
899
907
|
step = chip.get('arg', 'step')
|
{siliconcompiler-0.29.1 → siliconcompiler-0.29.2}/siliconcompiler/tools/openroad/global_placement.py
RENAMED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from siliconcompiler.tools._common import get_tool_task
|
|
2
2
|
from siliconcompiler.tools.openroad._apr import setup as apr_setup
|
|
3
|
-
from siliconcompiler.tools.openroad._apr import set_reports, set_pnr_inputs, set_pnr_outputs
|
|
3
|
+
from siliconcompiler.tools.openroad._apr import set_reports, set_pnr_inputs, set_pnr_outputs, \
|
|
4
|
+
set_tool_task_var
|
|
4
5
|
from siliconcompiler.tools.openroad._apr import \
|
|
5
6
|
define_ord_params, define_sta_params, define_sdc_params, \
|
|
6
|
-
define_gpl_params, define_grt_params, define_rsz_params
|
|
7
|
+
define_gpl_params, define_grt_params, define_rsz_params, \
|
|
8
|
+
define_ppl_params
|
|
7
9
|
from siliconcompiler.tools.openroad._apr import build_pex_corners, define_ord_files
|
|
8
10
|
from siliconcompiler.tools.openroad._apr import extract_metrics
|
|
9
11
|
|
|
@@ -35,6 +37,7 @@ def setup(chip):
|
|
|
35
37
|
define_gpl_params(chip)
|
|
36
38
|
define_grt_params(chip)
|
|
37
39
|
define_rsz_params(chip)
|
|
40
|
+
define_ppl_params(chip)
|
|
38
41
|
|
|
39
42
|
set_reports(chip, [
|
|
40
43
|
'setup',
|
|
@@ -48,6 +51,24 @@ def setup(chip):
|
|
|
48
51
|
'power_density'
|
|
49
52
|
])
|
|
50
53
|
|
|
54
|
+
set_tool_task_var(chip, param_key='enable_multibit_clustering',
|
|
55
|
+
default_value=False,
|
|
56
|
+
schelp='true/false, when true multibit clustering will be performed.')
|
|
57
|
+
|
|
58
|
+
set_tool_task_var(chip, param_key='enable_scan_chains',
|
|
59
|
+
default_value=False,
|
|
60
|
+
schelp='true/false, when true scan chains will be inserted.')
|
|
61
|
+
|
|
62
|
+
set_tool_task_var(chip, param_key='scan_enable_port_pattern',
|
|
63
|
+
schelp='pattern of the scan chain enable port.',
|
|
64
|
+
skip=['pdk', 'lib'])
|
|
65
|
+
set_tool_task_var(chip, param_key='scan_in_port_pattern',
|
|
66
|
+
schelp='pattern of the scan chain in port.',
|
|
67
|
+
skip=['pdk', 'lib'])
|
|
68
|
+
set_tool_task_var(chip, param_key='scan_out_port_pattern',
|
|
69
|
+
schelp='pattern of the scan chain out port.',
|
|
70
|
+
skip=['pdk', 'lib'])
|
|
71
|
+
|
|
51
72
|
|
|
52
73
|
def pre_process(chip):
|
|
53
74
|
define_ord_files(chip)
|
|
@@ -17,7 +17,7 @@ source -echo "$sc_refdir/apr/preamble.tcl"
|
|
|
17
17
|
###############################
|
|
18
18
|
|
|
19
19
|
if { [llength [all_clocks]] > 0 } {
|
|
20
|
-
sc_set_dont_use -clock
|
|
20
|
+
sc_set_dont_use -clock -report dont_use.clock_tree_synthesis
|
|
21
21
|
|
|
22
22
|
# Clone clock tree inverters next to register loads
|
|
23
23
|
# so cts does not try to buffer the inverted clocks.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
# Reading SC Schema
|
|
3
|
+
###############################
|
|
4
|
+
|
|
5
|
+
source ./sc_manifest.tcl > /dev/null
|
|
6
|
+
|
|
7
|
+
###############################
|
|
8
|
+
# Task Preamble
|
|
9
|
+
###############################
|
|
10
|
+
|
|
11
|
+
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
+
source -echo "$sc_refdir/apr/preamble.tcl"
|
|
13
|
+
|
|
14
|
+
set dont_use_args []
|
|
15
|
+
|
|
16
|
+
if { [lindex [sc_cfg_tool_task_get var enable_scan_chains] 0] == "true" } {
|
|
17
|
+
lappend dont_use_args -scanchain
|
|
18
|
+
}
|
|
19
|
+
if { [lindex [sc_cfg_tool_task_get var enable_multibit_clustering] 0] == "true" } {
|
|
20
|
+
lappend dont_use_args -multibit
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
sc_set_dont_use {*}$dont_use_args -report dont_use.global_placement
|
|
24
|
+
|
|
25
|
+
###############################
|
|
26
|
+
# Scan Chain Preparation
|
|
27
|
+
###############################
|
|
28
|
+
|
|
29
|
+
if { [lindex [sc_cfg_tool_task_get var enable_scan_chains] 0] == "true" } {
|
|
30
|
+
set dft_args []
|
|
31
|
+
if { [sc_cfg_tool_task_get var scan_in_port_pattern] != [] } {
|
|
32
|
+
lappend dft_args -scan_in_name_pattern \
|
|
33
|
+
[lindex [sc_cfg_tool_task_get var scan_in_port_pattern] 0]
|
|
34
|
+
}
|
|
35
|
+
if { [sc_cfg_tool_task_get var scan_out_port_pattern] != [] } {
|
|
36
|
+
lappend dft_args -scan_out_name_pattern \
|
|
37
|
+
[lindex [sc_cfg_tool_task_get var scan_out_port_pattern] 0]
|
|
38
|
+
}
|
|
39
|
+
if { [sc_cfg_tool_task_get var scan_enable_port_pattern] != [] } {
|
|
40
|
+
lappend dft_args -scan_enable_name_pattern \
|
|
41
|
+
[lindex [sc_cfg_tool_task_get var scan_enable_port_pattern] 0]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
set_dft_config -clock_mixing clock_mix {*}$dft_args
|
|
45
|
+
tee -file reports/scan_chain_config.rpt {report_dft_config}
|
|
46
|
+
scan_replace
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
###############################
|
|
50
|
+
# Perform multi-bit clustering
|
|
51
|
+
###############################
|
|
52
|
+
|
|
53
|
+
if { [lindex [sc_cfg_tool_task_get var enable_multibit_clustering] 0] == "true" } {
|
|
54
|
+
cluster_flops
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
###############################
|
|
58
|
+
# Global Placement
|
|
59
|
+
###############################
|
|
60
|
+
|
|
61
|
+
sc_global_placement
|
|
62
|
+
|
|
63
|
+
###############################
|
|
64
|
+
# Scan Chain Finalize
|
|
65
|
+
###############################
|
|
66
|
+
|
|
67
|
+
if { [lindex [sc_cfg_tool_task_get var enable_scan_chains] 0] == "true" } {
|
|
68
|
+
tee -file reports/scan_chain.rpt {preview_dft -verbose}
|
|
69
|
+
insert_dft
|
|
70
|
+
|
|
71
|
+
set new_ios [sc_get_unplaced_io_nets]
|
|
72
|
+
if { [llength $new_ios] > 0 } {
|
|
73
|
+
foreach net $new_ios {
|
|
74
|
+
utl::report "New IO net [$net getName]"
|
|
75
|
+
}
|
|
76
|
+
utl::warn FLW 1 "Scan chain generated new ports, rerunning pin placement"
|
|
77
|
+
sc_pin_placement
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
###############################
|
|
82
|
+
# Task Postamble
|
|
83
|
+
###############################
|
|
84
|
+
|
|
85
|
+
sc_set_dont_use
|
|
86
|
+
|
|
87
|
+
estimate_parasitics -placement
|
|
88
|
+
|
|
89
|
+
source -echo "$sc_refdir/apr/postamble.tcl"
|
|
@@ -28,6 +28,8 @@ estimate_parasitics -placement
|
|
|
28
28
|
# Repair DRVs
|
|
29
29
|
###############################
|
|
30
30
|
|
|
31
|
+
sc_set_dont_use -scanchain -multibit -report dont_use.repair_drv
|
|
32
|
+
|
|
31
33
|
set repair_design_args []
|
|
32
34
|
|
|
33
35
|
set rsz_cap_margin [lindex [sc_cfg_tool_task_get {var} rsz_cap_margin] 0]
|
|
@@ -43,6 +45,8 @@ repair_design \
|
|
|
43
45
|
-verbose \
|
|
44
46
|
{*}$repair_design_args
|
|
45
47
|
|
|
48
|
+
sc_set_dont_use
|
|
49
|
+
|
|
46
50
|
###############################
|
|
47
51
|
# Tie-off cell insertion
|
|
48
52
|
###############################
|
|
@@ -34,6 +34,9 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_setup_repair] 0] != "true" } {
|
|
|
34
34
|
# Setup Repair
|
|
35
35
|
###############################
|
|
36
36
|
|
|
37
|
+
# Enable ffs for resizing
|
|
38
|
+
sc_set_dont_use -scanchain -multibit -report dont_use.repair_timing.setup
|
|
39
|
+
|
|
37
40
|
estimate_parasitics -placement
|
|
38
41
|
|
|
39
42
|
repair_timing \
|
|
@@ -45,6 +48,9 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_setup_repair] 0] != "true" } {
|
|
|
45
48
|
{*}$repair_timing_args
|
|
46
49
|
|
|
47
50
|
sc_detailed_placement
|
|
51
|
+
|
|
52
|
+
# Restore dont use
|
|
53
|
+
sc_set_dont_use
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
if { [lindex [sc_cfg_tool_task_get var rsz_skip_hold_repair] 0] != "true" } {
|
|
@@ -55,7 +61,7 @@ if { [lindex [sc_cfg_tool_task_get var rsz_skip_hold_repair] 0] != "true" } {
|
|
|
55
61
|
estimate_parasitics -placement
|
|
56
62
|
|
|
57
63
|
# Enable hold cells
|
|
58
|
-
sc_set_dont_use -hold
|
|
64
|
+
sc_set_dont_use -hold -scanchain -multibit -report dont_use.repair_timing.hold
|
|
59
65
|
|
|
60
66
|
repair_timing \
|
|
61
67
|
-hold \
|