siliconcompiler 0.28.3__tar.gz → 0.28.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/Changes +22 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/PKG-INFO +16 -3
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/pyproject.toml +21 -4
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/_metadata.py +1 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc_dashboard.py +1 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/core.py +93 -55
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/fpgas/vpr_example.py +8 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/package.py +3 -2
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/__init__.py +9 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/components/__init__.py +13 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph.py +4 -3
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_node_tab.py +4 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/layouts/vertical_flowgraph_sac_tabs.py +4 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/state.py +3 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/summary_table.py +1 -2
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/utils.py +1 -2
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/__init__.py +2 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/sphinx_ext/dynamicgen.py +6 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/_common/__init__.py +44 -6
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/_common/asic.py +79 -23
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/genfasm/genfasm.py +7 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/ghdl/convert.py +7 -0
- siliconcompiler-0.28.4/siliconcompiler/tools/klayout/convert_drc_db.py +60 -0
- siliconcompiler-0.28.4/siliconcompiler/tools/klayout/drc.py +156 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/export.py +2 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/klayout.py +0 -1
- siliconcompiler-0.28.4/siliconcompiler/tools/klayout/klayout_convert_drc_db.py +182 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/operations.py +2 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/screenshot.py +2 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/show.py +4 -4
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/magic/drc.py +21 -0
- siliconcompiler-0.28.4/siliconcompiler/tools/magic/extspice.py +40 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/magic/magic.py +29 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/magic/sc_drc.tcl +2 -12
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/magic/sc_extspice.tcl +3 -15
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/openroad.py +44 -2
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_apr.tcl +15 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_floorplan.tcl +55 -9
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +10 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_procs.tcl +3 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_route.tcl +8 -2
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_screenshot.tcl +0 -5
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +36 -6
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/surelog/__init__.py +12 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/verilator/compile.py +27 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/verilator/verilator.py +9 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/vpr.py +18 -0
- siliconcompiler-0.28.3/siliconcompiler/tools/yosys/syn_asic_fpga_shared.tcl → siliconcompiler-0.28.4/siliconcompiler/tools/yosys/procs.tcl +23 -0
- siliconcompiler-0.28.4/siliconcompiler/tools/yosys/sc_screenshot.tcl +104 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/sc_syn.tcl +7 -9
- siliconcompiler-0.28.4/siliconcompiler/tools/yosys/screenshot.py +153 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/syn_asic.py +3 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/syn_asic.tcl +1 -3
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/syn_fpga.tcl +3 -2
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/_tools.json +3 -3
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/utils/__init__.py +30 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/utils/showtools.py +4 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler.egg-info/PKG-INFO +16 -3
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler.egg-info/SOURCES.txt +6 -1
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler.egg-info/requires.txt +2 -2
- siliconcompiler-0.28.3/siliconcompiler/tools/magic/extspice.py +0 -19
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/.dockerignore +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/.flake8 +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/.gitattributes +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/.gitignore +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/.readthedocs.yaml +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/CONTRIBUTING.md +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/LICENSE +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/MANIFEST.in +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/README.md +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/SECURITY.md +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/scripts/.gitignore +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/scripts/profile_sc.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/scripts/report_library.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/setup.cfg +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/__main__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/_common.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/_common.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc_install.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc_issue.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc_remote.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc_server.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/sc_show.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/apps/smake.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/checklists/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/checklists/oh_tapeout.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/data/RobotoMono/LICENSE.txt +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/data/RobotoMono/RobotoMono-Regular.ttf +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/data/RobotoMono/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/data/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/data/heartbeat.v +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/data/logo.png +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flowgraph.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/_common.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/asicflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/asictopflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/dvflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/fpgaflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/generate_openroad_rcx.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/lintflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/screenshotflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/showflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/signoffflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/flows/synflow.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/fpgas/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/fpgas/lattice_ice40.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/issue.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/asap7sc7p5t.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/gf180mcu.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/nangate45.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/sg13g2_stdcell.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/sky130hd.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/libs/sky130io.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/pdks/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/pdks/asap7.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/pdks/freepdk45.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/pdks/gf180.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/pdks/ihp130.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/pdks/skywater130.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/client.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/schema.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/cancel_job.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/check_progress.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/check_server.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/delete_job.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/get_results.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/requests/remote_run.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/cancel_job.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/check_progress.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/check_server.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/delete_job.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/get_results.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/remote/server_schema/responses/remote_run.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/components/flowgraph.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/components/graph.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/layouts/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/layouts/_common.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/utils/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/utils/file_utils.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/viewer.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/html_report.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/report.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/summary_image.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/docker_runner.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/run_node.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/send_messages.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/slurm.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/validation/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/scheduler/validation/email_credentials.json +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/schema/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/schema/schema_cfg.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/schema/schema_obj.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/schema/utils.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/sphinx_ext/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/sphinx_ext/schemagen.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/sphinx_ext/utils.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/asap7_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/asic_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/fpgaflow_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/freepdk45_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/gf180_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/ihp130_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/targets/skywater130_demo.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/email/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/email/general.j2 +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/email/summary.j2 +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/issue/README.txt +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/issue/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/issue/run.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/report/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/report/bootstrap.min.css +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/report/bootstrap.min.js +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/report/bootstrap_LICENSE.md +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/report/sc_report.j2 +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/slurm/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/slurm/run.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/tcl/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/templates/tcl/manifest.tcl.j2 +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/_common/sdc/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/_common/sdc/sc_constraints.sdc +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/_common/tcl/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/bambu/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/bambu/bambu.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/bambu/convert.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/bluespec/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/bluespec/bluespec.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/bluespec/convert.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/_common.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/builtin.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/concatenate.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/join.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/maximum.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/minimum.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/mux.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/nop.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/builtin/verify.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/chisel/SCDriver.scala +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/chisel/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/chisel/build.sbt +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/chisel/chisel.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/chisel/convert.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/execute/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/execute/exec_input.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/execute/execute.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/genfasm/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/genfasm/bitstream.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/ghdl/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/ghdl/ghdl.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/icarus/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/icarus/compile.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/icarus/icarus.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/icepack/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/icepack/bitstream.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/icepack/icepack.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/klayout_export.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/klayout_operations.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/klayout_show.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/klayout/klayout_utils.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/magic/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/magic/sc_magic.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/montage/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/montage/montage.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/montage/tile.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/netgen/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/netgen/count_lvs.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/netgen/lvs.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/netgen/netgen.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/netgen/sc_lvs.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/nextpnr/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/nextpnr/apr.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/nextpnr/nextpnr.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/cts.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/dfm.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/export.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/floorplan.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/physyn.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/place.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/rcx_bench.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/rcx_extract.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/route.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/screenshot.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_cts.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_dfm.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_export.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_physyn.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_rcx_bench.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_rcx_extract.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/scripts/sc_write.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/show.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/templates/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/openroad/templates/pex.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/report_libraries.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/scripts/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/scripts/sc_procs.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/scripts/sc_timing.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/opensta/timing.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/slang/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/slang/lint.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/surelog/parse.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/surelog/templates/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/surelog/templates/output.v +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/sv2v/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/sv2v/convert.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/sv2v/sv2v.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/template/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/template/template.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/verilator/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/verilator/lint.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/verilator/parse.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/bitstream.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/place.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/route.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/scripts/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/scripts/sc_bitstream.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/scripts/sc_place.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/scripts/sc_route.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/scripts/sc_run.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/scripts/sc_syn_fpga.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/syn_fpga.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vivado/vivado.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/_json_constraint.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/_xml_constraint.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/place.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/route.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/screenshot.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/vpr/show.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/xdm/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/xdm/convert.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/xyce/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/xyce/simulate.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/lec.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/prepareLib.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/sc_lec.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/syn_fpga.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/syn_strategies.tcl +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/techmaps/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/templates/__init__.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/templates/abc.const +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/tools/yosys/yosys.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/_tools.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-chisel.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-ghdl.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-icarus.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-klayout.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-magic.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-montage.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-netgen.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-openroad.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-slang.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-surelog.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-sv2v.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-verible.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-verilator.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-xyce.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel8/install-yosys.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-chisel.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-ghdl.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-icarus.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-klayout.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-magic.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-montage.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-netgen.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-slang.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-surelog.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-sv2v.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-verible.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-verilator.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-xdm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-xyce.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/rhel9/install-yosys.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-magic.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-montage.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-slang.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-verible.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-magic.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-montage.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-slang.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-verible.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-magic.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-montage.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-slang.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-verible.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/units.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/use.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/utils/asic.py +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler.egg-info/dependency_links.txt +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler.egg-info/entry_points.txt +0 -0
- {siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler.egg-info/top_level.txt +0 -0
|
@@ -8,6 +8,28 @@ 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.28.4 (2024-10-28)
|
|
12
|
+
=========================================
|
|
13
|
+
|
|
14
|
+
**Major:**
|
|
15
|
+
|
|
16
|
+
* Added testing support for Python 3.13.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
**Minor:**
|
|
20
|
+
|
|
21
|
+
* Added support to allow dashboard to auto select an open port if not specified.
|
|
22
|
+
|
|
23
|
+
* Tools:
|
|
24
|
+
|
|
25
|
+
* openroad: updated minimum version to support database markers and added support to save clock routing.
|
|
26
|
+
* surelog: ensure its require list is complete to properly detect changes in inputs.
|
|
27
|
+
* yosys: added screenshot task.
|
|
28
|
+
* klayout: added drc task to run DRC and convert_drc_db task to convert a klayout DRC database to openroads.
|
|
29
|
+
* vpr: added `vpr_device_code` support.
|
|
30
|
+
* magic: added support for uncompressing LEF files.
|
|
31
|
+
|
|
32
|
+
|
|
11
33
|
SiliconCompiler 0.28.3 (2024-10-14)
|
|
12
34
|
=========================================
|
|
13
35
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: siliconcompiler
|
|
3
|
-
Version: 0.28.
|
|
3
|
+
Version: 0.28.4
|
|
4
4
|
Summary: A compiler framework that automates translation from source code to silicon.
|
|
5
5
|
Author-email: Andreas Olofsson <andreas.d.olofsson@gmail.com>
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -9,6 +9,19 @@ Project-URL: Documentation, https://docs.siliconcompiler.com
|
|
|
9
9
|
Project-URL: Repository, https://github.com/siliconcompiler/siliconcompiler
|
|
10
10
|
Project-URL: Issues, https://github.com/siliconcompiler/siliconcompiler/issues
|
|
11
11
|
Project-URL: Discussion, https://github.com/siliconcompiler/siliconcompiler/discussions
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Operating System :: MacOS
|
|
22
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
|
|
24
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
12
25
|
Requires-Python: >=3.8
|
|
13
26
|
Description-Content-Type: text/markdown
|
|
14
27
|
License-File: LICENSE
|
|
@@ -31,7 +44,7 @@ Requires-Dist: fastjsonschema==2.20.0
|
|
|
31
44
|
Requires-Dist: docker==7.1.0
|
|
32
45
|
Requires-Dist: importlib_metadata; python_version < "3.10"
|
|
33
46
|
Requires-Dist: sc-surelog==1.84.1
|
|
34
|
-
Requires-Dist: orjson==3.10.
|
|
47
|
+
Requires-Dist: orjson==3.10.10
|
|
35
48
|
Requires-Dist: streamlit==1.39.0
|
|
36
49
|
Requires-Dist: streamlit_agraph==0.0.45
|
|
37
50
|
Requires-Dist: streamlit-antd-components==0.3.2
|
|
@@ -51,7 +64,7 @@ Requires-Dist: codespell==2.3.0; extra == "test"
|
|
|
51
64
|
Provides-Extra: docs
|
|
52
65
|
Requires-Dist: Sphinx==8.1.3; extra == "docs"
|
|
53
66
|
Requires-Dist: pip-licenses==5.0.0; extra == "docs"
|
|
54
|
-
Requires-Dist: pydata-sphinx-theme==0.
|
|
67
|
+
Requires-Dist: pydata-sphinx-theme==0.16.0; extra == "docs"
|
|
55
68
|
Requires-Dist: sc-leflib>=0.2.0; extra == "docs"
|
|
56
69
|
Provides-Extra: profile
|
|
57
70
|
Requires-Dist: gprof2dot==2024.6.6; extra == "profile"
|
|
@@ -15,6 +15,21 @@ authors = [
|
|
|
15
15
|
]
|
|
16
16
|
description = "A compiler framework that automates translation from source code to silicon."
|
|
17
17
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Environment :: Console",
|
|
20
|
+
"License :: OSI Approved :: Apache Software License",
|
|
21
|
+
"Programming Language :: Python :: 3.8",
|
|
22
|
+
"Programming Language :: Python :: 3.9",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Operating System :: POSIX :: Linux",
|
|
28
|
+
"Operating System :: MacOS",
|
|
29
|
+
"Operating System :: Microsoft :: Windows",
|
|
30
|
+
"Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
|
|
31
|
+
"Topic :: Software Development :: Build Tools"
|
|
32
|
+
]
|
|
18
33
|
requires-python = ">= 3.8"
|
|
19
34
|
dependencies = [
|
|
20
35
|
"aiohttp == 3.10.10",
|
|
@@ -36,7 +51,7 @@ dependencies = [
|
|
|
36
51
|
"docker == 7.1.0",
|
|
37
52
|
"importlib_metadata; python_version < '3.10'",
|
|
38
53
|
"sc-surelog == 1.84.1",
|
|
39
|
-
"orjson == 3.10.
|
|
54
|
+
"orjson == 3.10.10",
|
|
40
55
|
"streamlit == 1.39.0",
|
|
41
56
|
"streamlit_agraph == 0.0.45",
|
|
42
57
|
"streamlit-antd-components == 0.3.2",
|
|
@@ -83,7 +98,7 @@ test = [
|
|
|
83
98
|
docs = [
|
|
84
99
|
"Sphinx == 8.1.3",
|
|
85
100
|
"pip-licenses == 5.0.0",
|
|
86
|
-
"pydata-sphinx-theme == 0.
|
|
101
|
+
"pydata-sphinx-theme == 0.16.0",
|
|
87
102
|
"sc-leflib >= 0.2.0"
|
|
88
103
|
]
|
|
89
104
|
profile = [
|
|
@@ -111,7 +126,9 @@ markers = [
|
|
|
111
126
|
"nolocal: don't use the local data for siliconcompiler_data.",
|
|
112
127
|
"docker: test requires docker",
|
|
113
128
|
]
|
|
114
|
-
testpaths =
|
|
129
|
+
testpaths = [
|
|
130
|
+
"tests"
|
|
131
|
+
]
|
|
115
132
|
timeout = "180"
|
|
116
133
|
asyncio_default_fixture_loop_scope = "function"
|
|
117
134
|
|
|
@@ -139,7 +156,7 @@ paths = ["siliconcompiler/tools/openroad/scripts"]
|
|
|
139
156
|
indent = 2
|
|
140
157
|
|
|
141
158
|
[tool.codespell]
|
|
142
|
-
skip = './build/*,*.json,*.xml,./siliconcompiler/templates/report/bootstrap.min.js,./tests/utils/test_utils.py'
|
|
159
|
+
skip = './build/*,*.json,*.xml,./siliconcompiler/templates/report/bootstrap.min.js,./tests/utils/test_utils.py,./tests/tools/data/klayout_pdk/interposer.drc'
|
|
143
160
|
count = true
|
|
144
161
|
quiet-level = 3
|
|
145
162
|
ignore-words-list = 'synopsys,inout,subtile,FRAM,dffer,dffers'
|
|
@@ -88,7 +88,7 @@ To include another chip object to compare to:
|
|
|
88
88
|
'cfg_path': os.path.abspath(file_path)
|
|
89
89
|
})
|
|
90
90
|
|
|
91
|
-
chip.
|
|
91
|
+
chip.dashboard(wait=True, port=switches['port'], graph_chips=graph_chips)
|
|
92
92
|
|
|
93
93
|
return 0
|
|
94
94
|
|
|
@@ -1363,7 +1363,7 @@ class Chip:
|
|
|
1363
1363
|
basename = str(pathlib.PurePosixPath(*path_paths[0:n]))
|
|
1364
1364
|
endname = str(pathlib.PurePosixPath(*path_paths[n:]))
|
|
1365
1365
|
|
|
1366
|
-
import_name =
|
|
1366
|
+
import_name = utils.get_hashed_filename(basename, package=package)
|
|
1367
1367
|
if import_name not in collected_files:
|
|
1368
1368
|
continue
|
|
1369
1369
|
|
|
@@ -2051,6 +2051,30 @@ class Chip:
|
|
|
2051
2051
|
dot.graph_attr['ranksep'] = '0.75'
|
|
2052
2052
|
dot.attr(bgcolor=background)
|
|
2053
2053
|
|
|
2054
|
+
subgraphs = {
|
|
2055
|
+
"graphs": {
|
|
2056
|
+
"sc-inputs": {
|
|
2057
|
+
"graphs": {},
|
|
2058
|
+
"nodes": []
|
|
2059
|
+
}
|
|
2060
|
+
},
|
|
2061
|
+
"nodes": []
|
|
2062
|
+
}
|
|
2063
|
+
for node, info in nodes.items():
|
|
2064
|
+
if info['is_input']:
|
|
2065
|
+
subgraph_temp = subgraphs["graphs"]["sc-inputs"]
|
|
2066
|
+
else:
|
|
2067
|
+
subgraph_temp = subgraphs
|
|
2068
|
+
|
|
2069
|
+
for key in node.split(".")[0:-1]:
|
|
2070
|
+
if key not in subgraph_temp["graphs"]:
|
|
2071
|
+
subgraph_temp["graphs"][key] = {
|
|
2072
|
+
"graphs": {},
|
|
2073
|
+
"nodes": []
|
|
2074
|
+
}
|
|
2075
|
+
subgraph_temp = subgraph_temp["graphs"][key]
|
|
2076
|
+
subgraph_temp["nodes"].append(node)
|
|
2077
|
+
|
|
2054
2078
|
with dot.subgraph(name='inputs') as input_graph:
|
|
2055
2079
|
input_graph.graph_attr['cluster'] = 'true'
|
|
2056
2080
|
input_graph.graph_attr['color'] = background
|
|
@@ -2062,34 +2086,72 @@ class Chip:
|
|
|
2062
2086
|
fontcolor=fontcolor, fontsize=fontsize, ordering="in",
|
|
2063
2087
|
penwidth=penwidth, fillcolor=fillcolor, shape="box")
|
|
2064
2088
|
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
input_graph_nodes.graph_attr['color'] = background
|
|
2089
|
+
def make_node(graph, node, prefix):
|
|
2090
|
+
info = nodes[node]
|
|
2068
2091
|
|
|
2069
|
-
# add nodes
|
|
2070
2092
|
shape = "oval" if not show_io else "Mrecord"
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2093
|
+
task_label = f"\\n ({info['task']})" if info['task'] is not None else ""
|
|
2094
|
+
if show_io:
|
|
2095
|
+
input_labels = [f"<{ikey}> {ifile}" for ifile, ikey in info['inputs'].items()]
|
|
2096
|
+
output_labels = [f"<{okey}> {ofile}" for ofile, okey in info['outputs'].items()]
|
|
2097
|
+
center_text = f"\\n {node.replace(prefix, '')} {task_label} \\n\\n"
|
|
2098
|
+
labelname = "{"
|
|
2099
|
+
if input_labels:
|
|
2100
|
+
labelname += f"{{ {' | '.join(input_labels)} }} |"
|
|
2101
|
+
labelname += center_text
|
|
2102
|
+
if output_labels:
|
|
2103
|
+
labelname += f"| {{ {' | '.join(output_labels)} }}"
|
|
2104
|
+
labelname += "}"
|
|
2105
|
+
else:
|
|
2106
|
+
labelname = f"{node.replace(prefix, '')}{task_label}"
|
|
2107
|
+
|
|
2108
|
+
graph.node(node, label=labelname, bordercolor=fontcolor, style='filled',
|
|
2109
|
+
fontcolor=fontcolor, fontsize=fontsize, ordering="in",
|
|
2110
|
+
penwidth=penwidth, fillcolor=fillcolor, shape=shape)
|
|
2111
|
+
|
|
2112
|
+
graph_idx = 0
|
|
2113
|
+
|
|
2114
|
+
def get_node_count(graph_info):
|
|
2115
|
+
nodes = len(graph_info["nodes"])
|
|
2116
|
+
|
|
2117
|
+
for subgraph in graph_info["graphs"]:
|
|
2118
|
+
nodes += get_node_count(graph_info["graphs"][subgraph])
|
|
2119
|
+
|
|
2120
|
+
return nodes
|
|
2121
|
+
|
|
2122
|
+
def build_graph(graph_info, parent, prefix):
|
|
2123
|
+
nonlocal graph_idx
|
|
2124
|
+
|
|
2125
|
+
for subgraph in graph_info["graphs"]:
|
|
2126
|
+
if get_node_count(graph_info["graphs"][subgraph]) > 1:
|
|
2127
|
+
graph = graphviz.Digraph(name=f"cluster_{graph_idx}")
|
|
2128
|
+
graph_idx += 1
|
|
2129
|
+
|
|
2130
|
+
graph.graph_attr['rankdir'] = rankdir
|
|
2131
|
+
graph.attr(bgcolor=background)
|
|
2132
|
+
|
|
2133
|
+
if subgraph == "sc-inputs":
|
|
2134
|
+
graph.attr(style='invis')
|
|
2135
|
+
else:
|
|
2136
|
+
graph.attr(color=fontcolor)
|
|
2137
|
+
graph.attr(style='rounded')
|
|
2138
|
+
graph.attr(shape='oval')
|
|
2139
|
+
graph.attr(label=subgraph)
|
|
2140
|
+
graph.attr(labeljust='l')
|
|
2141
|
+
graph.attr(fontcolor=fontcolor)
|
|
2142
|
+
graph.attr(fontsize=str(int(fontsize) + 2))
|
|
2084
2143
|
else:
|
|
2085
|
-
|
|
2144
|
+
graph = parent
|
|
2145
|
+
|
|
2146
|
+
build_graph(graph_info["graphs"][subgraph], graph, f"{prefix}{subgraph}.")
|
|
2147
|
+
|
|
2148
|
+
if graph is not parent:
|
|
2149
|
+
parent.subgraph(graph)
|
|
2086
2150
|
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
fontcolor=fontcolor, fontsize=fontsize, ordering="in",
|
|
2092
|
-
penwidth=penwidth, fillcolor=fillcolor, shape=shape)
|
|
2151
|
+
for subnode in graph_info["nodes"]:
|
|
2152
|
+
make_node(parent, subnode, prefix)
|
|
2153
|
+
|
|
2154
|
+
build_graph(subgraphs, dot, "")
|
|
2093
2155
|
|
|
2094
2156
|
for edge0, edge1, weight in edges:
|
|
2095
2157
|
dot.edge(f'{edge0}{out_label_suffix}', f'{edge1}{in_label_suffix}', weight=str(weight))
|
|
@@ -2394,7 +2456,7 @@ class Chip:
|
|
|
2394
2456
|
|
|
2395
2457
|
abspath = dirs[(package, path)]
|
|
2396
2458
|
if abspath:
|
|
2397
|
-
filename =
|
|
2459
|
+
filename = utils.get_hashed_filename(posix_path, package=package)
|
|
2398
2460
|
dst_path = os.path.join(directory, filename)
|
|
2399
2461
|
if os.path.exists(dst_path):
|
|
2400
2462
|
continue
|
|
@@ -2466,7 +2528,7 @@ class Chip:
|
|
|
2466
2528
|
|
|
2467
2529
|
abspath = files[(package, path)]
|
|
2468
2530
|
if abspath:
|
|
2469
|
-
filename =
|
|
2531
|
+
filename = utils.get_hashed_filename(posix_path, package=package)
|
|
2470
2532
|
dst_path = os.path.join(directory, filename)
|
|
2471
2533
|
if verbose:
|
|
2472
2534
|
self.logger.info(f"Copying {abspath} to '{directory}' directory")
|
|
@@ -2702,12 +2764,12 @@ class Chip:
|
|
|
2702
2764
|
return hashlist
|
|
2703
2765
|
|
|
2704
2766
|
###########################################################################
|
|
2705
|
-
def
|
|
2767
|
+
def dashboard(self, wait=True, port=None, graph_chips=None):
|
|
2706
2768
|
'''
|
|
2707
2769
|
Open a session of the dashboard.
|
|
2708
2770
|
|
|
2709
2771
|
The dashboard can be viewed in any webbrowser and can be accessed via:
|
|
2710
|
-
http://localhost
|
|
2772
|
+
http://localhost:<port>/
|
|
2711
2773
|
|
|
2712
2774
|
Args:
|
|
2713
2775
|
wait (bool): If True, this call will wait in this method
|
|
@@ -2718,7 +2780,7 @@ class Chip:
|
|
|
2718
2780
|
{'chip': chip object, 'name': chip name}
|
|
2719
2781
|
|
|
2720
2782
|
Examples:
|
|
2721
|
-
>>> chip.
|
|
2783
|
+
>>> chip.dashboard()
|
|
2722
2784
|
Opens a sesison of the dashboard.
|
|
2723
2785
|
'''
|
|
2724
2786
|
if self._dash:
|
|
@@ -3143,6 +3205,7 @@ class Chip:
|
|
|
3143
3205
|
self.set('option', 'nodisplay', False, clobber=True)
|
|
3144
3206
|
self.set('option', 'continue', True, clobber=True)
|
|
3145
3207
|
self.set('option', 'quiet', False, clobber=True)
|
|
3208
|
+
self.set('option', 'clean', True, clobber=True)
|
|
3146
3209
|
self.set('arg', 'step', None, clobber=True)
|
|
3147
3210
|
self.set('arg', 'index', None, clobber=True)
|
|
3148
3211
|
self.unset('option', 'to')
|
|
@@ -3237,31 +3300,6 @@ class Chip:
|
|
|
3237
3300
|
|
|
3238
3301
|
return os.path.join(*dirlist)
|
|
3239
3302
|
|
|
3240
|
-
#######################################
|
|
3241
|
-
def __get_imported_filename(self, pathstr, package=None):
|
|
3242
|
-
''' Utility to map collected file to an unambiguous name based on its path.
|
|
3243
|
-
|
|
3244
|
-
The mapping looks like:
|
|
3245
|
-
path/to/file.ext => file_<md5('path/to/file.ext')>.ext
|
|
3246
|
-
'''
|
|
3247
|
-
path = pathlib.PurePosixPath(pathstr)
|
|
3248
|
-
ext = ''.join(path.suffixes)
|
|
3249
|
-
|
|
3250
|
-
# strip off all file suffixes to get just the bare name
|
|
3251
|
-
barepath = path
|
|
3252
|
-
while barepath.suffix:
|
|
3253
|
-
barepath = pathlib.PurePosixPath(barepath.stem)
|
|
3254
|
-
filename = str(barepath.parts[-1])
|
|
3255
|
-
|
|
3256
|
-
if not package:
|
|
3257
|
-
package = ''
|
|
3258
|
-
else:
|
|
3259
|
-
package = f'{package}:'
|
|
3260
|
-
path_to_hash = f'{package}{str(path)}'
|
|
3261
|
-
pathhash = hashlib.sha1(path_to_hash.encode('utf-8')).hexdigest()
|
|
3262
|
-
|
|
3263
|
-
return f'{filename}_{pathhash}{ext}'
|
|
3264
|
-
|
|
3265
3303
|
def error(self, msg):
|
|
3266
3304
|
'''
|
|
3267
3305
|
Raises error.
|
|
@@ -43,6 +43,14 @@ def setup():
|
|
|
43
43
|
|
|
44
44
|
fpga.set('fpga', part_name, 'vendor', vendor)
|
|
45
45
|
|
|
46
|
+
# Part name is specified per architecture file. Device code specifies
|
|
47
|
+
# which <fixed_layout> name to use when running VPR. These examples
|
|
48
|
+
# use the following names:
|
|
49
|
+
if (part_name == 'example_arch_X005Y005'):
|
|
50
|
+
fpga.set('fpga', part_name, 'var', 'vpr_device_code', 'fpga_beta')
|
|
51
|
+
else:
|
|
52
|
+
fpga.set('fpga', part_name, 'var', 'vpr_device_code', part_name)
|
|
53
|
+
|
|
46
54
|
fpga.set('fpga', part_name, 'lutsize', lut_size)
|
|
47
55
|
|
|
48
56
|
arch_root = os.path.join(flow_root, 'arch', part_name)
|
|
@@ -88,7 +88,8 @@ def _path(chip, package, download_handler):
|
|
|
88
88
|
chip._packages[package] = data_path
|
|
89
89
|
return data_path
|
|
90
90
|
|
|
91
|
-
raise SiliconCompilerError(f'Extracting {package} data to {data_path} failed'
|
|
91
|
+
raise SiliconCompilerError(f'Extracting {package} data to {data_path} failed',
|
|
92
|
+
chip=chip)
|
|
92
93
|
|
|
93
94
|
|
|
94
95
|
def path(chip, package):
|
|
@@ -188,7 +189,7 @@ def clone_synchronized(chip, package, data, data_path):
|
|
|
188
189
|
elif url.scheme in ['git', 'git+https']:
|
|
189
190
|
chip.logger.error('Failed to authenticate. Please use a token or ssh.')
|
|
190
191
|
else:
|
|
191
|
-
|
|
192
|
+
chip.logger.error(str(e))
|
|
192
193
|
|
|
193
194
|
|
|
194
195
|
def clone_from_git(chip, package, data, repo_path):
|
{siliconcompiler-0.28.3 → siliconcompiler-0.28.4}/siliconcompiler/report/dashboard/__init__.py
RENAMED
|
@@ -12,6 +12,7 @@ import atexit
|
|
|
12
12
|
import shutil
|
|
13
13
|
import fasteners
|
|
14
14
|
import signal
|
|
15
|
+
import socketserver
|
|
15
16
|
|
|
16
17
|
from siliconcompiler.report.dashboard import utils
|
|
17
18
|
|
|
@@ -25,6 +26,8 @@ class Dashboard():
|
|
|
25
26
|
pass
|
|
26
27
|
|
|
27
28
|
def __init__(self, chip, port=None, graph_chips=None):
|
|
29
|
+
if not port:
|
|
30
|
+
port = Dashboard.get_next_port()
|
|
28
31
|
if not port:
|
|
29
32
|
port = Dashboard.__port
|
|
30
33
|
|
|
@@ -172,3 +175,9 @@ class Dashboard():
|
|
|
172
175
|
|
|
173
176
|
if os.path.exists(self.__directory):
|
|
174
177
|
shutil.rmtree(self.__directory)
|
|
178
|
+
|
|
179
|
+
@staticmethod
|
|
180
|
+
def get_next_port():
|
|
181
|
+
with socketserver.TCPServer(("localhost", 0), None) as s:
|
|
182
|
+
return s.server_address[1]
|
|
183
|
+
return None
|
|
@@ -194,7 +194,7 @@ def setup_page():
|
|
|
194
194
|
menu_items=SC_MENU)
|
|
195
195
|
|
|
196
196
|
|
|
197
|
-
def file_viewer(chip, path, header_col_width=0.89):
|
|
197
|
+
def file_viewer(chip, path, page_key=None, header_col_width=0.89):
|
|
198
198
|
if not path:
|
|
199
199
|
streamlit.error('Select a file')
|
|
200
200
|
return
|
|
@@ -243,14 +243,25 @@ def file_viewer(chip, path, header_col_width=0.89):
|
|
|
243
243
|
|
|
244
244
|
file_section = streamlit.container()
|
|
245
245
|
|
|
246
|
+
if page_key:
|
|
247
|
+
if state.get_key(page_key) is None:
|
|
248
|
+
state.set_key(page_key, 1)
|
|
249
|
+
index = state.get_key(page_key)
|
|
250
|
+
else:
|
|
251
|
+
index = 1
|
|
252
|
+
|
|
246
253
|
page = sac.pagination(
|
|
247
254
|
align='center',
|
|
255
|
+
index=index,
|
|
248
256
|
jump=True,
|
|
249
257
|
show_total=True,
|
|
250
258
|
page_size=page_size,
|
|
251
259
|
total=max_pages,
|
|
252
260
|
disabled=max_pages < state.get_key(state.MAX_FILE_LINES_TO_SHOW))
|
|
253
261
|
|
|
262
|
+
if page_key:
|
|
263
|
+
state.set_key(page_key, page)
|
|
264
|
+
|
|
254
265
|
start_idx = (page - 1) * state.get_key(state.MAX_FILE_LINES_TO_SHOW)
|
|
255
266
|
end_idx = start_idx + state.get_key(state.MAX_FILE_LINES_TO_SHOW)
|
|
256
267
|
file_show = file_data[start_idx:end_idx]
|
|
@@ -465,6 +476,7 @@ def node_file_tree_viewer(chip, step, index):
|
|
|
465
476
|
|
|
466
477
|
if selected and os.path.isfile(selected):
|
|
467
478
|
state.set_key(state.SELECTED_FILE, selected)
|
|
479
|
+
state.set_key(state.SELECTED_FILE_PAGE, None)
|
|
468
480
|
|
|
469
481
|
|
|
470
482
|
def node_viewer(chip, step, index, metric_dataframe, height=None):
|
|
@@ -80,9 +80,10 @@ def layout():
|
|
|
80
80
|
components.manifest_viewer(chip)
|
|
81
81
|
|
|
82
82
|
with tabs["File Viewer"]:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
components.file_viewer(
|
|
84
|
+
chip,
|
|
85
|
+
state.get_key(state.SELECTED_FILE),
|
|
86
|
+
page_key=state.SELECTED_FILE_PAGE)
|
|
86
87
|
|
|
87
88
|
if "Design Preview" in tabs:
|
|
88
89
|
with tabs["Design Preview"]:
|
|
@@ -103,7 +103,10 @@ def layout():
|
|
|
103
103
|
components.manifest_viewer(chip)
|
|
104
104
|
|
|
105
105
|
if tab_selected == "File Viewer":
|
|
106
|
-
components.file_viewer(
|
|
106
|
+
components.file_viewer(
|
|
107
|
+
chip,
|
|
108
|
+
state.get_key(state.SELECTED_FILE),
|
|
109
|
+
page_key=state.SELECTED_FILE_PAGE)
|
|
107
110
|
|
|
108
111
|
if tab_selected == "Design Preview":
|
|
109
112
|
components.file_viewer(chip, f'{chip.getworkdir()}/{chip.design}.png')
|
|
@@ -96,7 +96,10 @@ def layout():
|
|
|
96
96
|
components.manifest_viewer(chip)
|
|
97
97
|
|
|
98
98
|
if tab_selected == "File Viewer":
|
|
99
|
-
components.file_viewer(
|
|
99
|
+
components.file_viewer(
|
|
100
|
+
chip,
|
|
101
|
+
state.get_key(state.SELECTED_FILE),
|
|
102
|
+
page_key=state.SELECTED_FILE_PAGE)
|
|
100
103
|
|
|
101
104
|
if tab_selected == "Design Preview":
|
|
102
105
|
components.file_viewer(chip, f'{chip.getworkdir()}/{chip.design}.png')
|
|
@@ -16,6 +16,7 @@ SELECTED_FLOWGRAPH_NODE = "selected_flowgraph_node"
|
|
|
16
16
|
SELECTED_SELECTOR_NODE = "selected_selector_node"
|
|
17
17
|
NODE_SOURCE = "node_source"
|
|
18
18
|
SELECTED_FILE = "selected_file"
|
|
19
|
+
SELECTED_FILE_PAGE = "selected_file_page"
|
|
19
20
|
LOADED_CHIPS = "loaded_chips"
|
|
20
21
|
UI_WIDTH = "ui_width"
|
|
21
22
|
MANIFEST_FILE = "manifest_file"
|
|
@@ -73,6 +74,7 @@ def init():
|
|
|
73
74
|
_add_default(SELECTED_SELECTOR_NODE, None)
|
|
74
75
|
_add_default(NODE_SOURCE, None)
|
|
75
76
|
_add_default(SELECTED_FILE, None)
|
|
77
|
+
_add_default(SELECTED_FILE_PAGE, None)
|
|
76
78
|
_add_default(LOADED_CHIPS, {})
|
|
77
79
|
_add_default(MANIFEST_FILE, None)
|
|
78
80
|
_add_default(MANIFEST_LOCK, None)
|
|
@@ -80,7 +82,7 @@ def init():
|
|
|
80
82
|
_add_default(IS_RUNNING, False)
|
|
81
83
|
_add_default(GRAPH_JOBS, None)
|
|
82
84
|
_add_default(UI_WIDTH, None)
|
|
83
|
-
_add_default(APP_LAYOUT, "
|
|
85
|
+
_add_default(APP_LAYOUT, "vertical_flowgraph_sac_tabs")
|
|
84
86
|
_add_default(APP_RERUN, None)
|
|
85
87
|
_add_default(APP_RUNNING_REFRESH, 2 * 1000)
|
|
86
88
|
_add_default(APP_STOPPED_REFRESH, 30 * 1000)
|
|
@@ -12,10 +12,9 @@ def _show_summary_table(chip, flow, flowgraph_nodes, show_all_indices):
|
|
|
12
12
|
'''
|
|
13
13
|
|
|
14
14
|
# Display data
|
|
15
|
-
max_line_width = 135
|
|
16
15
|
column_width = 15
|
|
17
16
|
|
|
18
|
-
max_line_width = max(
|
|
17
|
+
max_line_width = max(2 * column_width, int(0.95*shutil.get_terminal_size().columns))
|
|
19
18
|
|
|
20
19
|
nodes, _, metrics, metrics_unit, metrics_to_show, _ = \
|
|
21
20
|
_collect_data(chip, flow, flowgraph_nodes)
|
|
@@ -143,8 +143,7 @@ def _get_flowgraph_path(chip, flow, nodes_to_execute, only_include_successful=Fa
|
|
|
143
143
|
end_nodes = _get_flowgraph_exit_nodes(chip, flow, steps=flowgraph_steps)
|
|
144
144
|
for node in end_nodes:
|
|
145
145
|
if only_include_successful:
|
|
146
|
-
if chip.get('record', 'status', step=node[0], index=node[1])
|
|
147
|
-
NodeStatus.SUCCESS:
|
|
146
|
+
if NodeStatus.is_success(chip.get('record', 'status', step=node[0], index=node[1])):
|
|
148
147
|
selected_nodes.add(node)
|
|
149
148
|
to_search.append(node)
|
|
150
149
|
else:
|
|
@@ -898,6 +898,7 @@ def _run_executable_or_builtin(chip, step, index, version, toolpath, workdir, ru
|
|
|
898
898
|
|
|
899
899
|
cmd_start_time = time.time()
|
|
900
900
|
proc = subprocess.Popen(cmdlist,
|
|
901
|
+
stdin=subprocess.DEVNULL,
|
|
901
902
|
stdout=stdout_writer,
|
|
902
903
|
stderr=stderr_writer,
|
|
903
904
|
preexec_fn=preexec_fn)
|
|
@@ -1118,6 +1119,7 @@ def _check_tool_version(chip, step, index, run_func=None):
|
|
|
1118
1119
|
cmdlist = [exe]
|
|
1119
1120
|
cmdlist.extend(veropt)
|
|
1120
1121
|
proc = subprocess.run(cmdlist,
|
|
1122
|
+
stdin=subprocess.DEVNULL,
|
|
1121
1123
|
stdout=subprocess.PIPE,
|
|
1122
1124
|
stderr=subprocess.STDOUT,
|
|
1123
1125
|
universal_newlines=True)
|
|
@@ -343,6 +343,8 @@ class DynamicGen(SphinxDirective):
|
|
|
343
343
|
type_heading = "Variables"
|
|
344
344
|
elif type == "file":
|
|
345
345
|
type_heading = "Files"
|
|
346
|
+
elif type == "dir":
|
|
347
|
+
type_heading = "Directories"
|
|
346
348
|
|
|
347
349
|
table = [[strong('Parameters'), strong('Help')]]
|
|
348
350
|
for key, params in cfg.items():
|
|
@@ -657,6 +659,9 @@ class ToolGen(DynamicGen):
|
|
|
657
659
|
'''Display config under `eda, <modname>` in a single table.'''
|
|
658
660
|
cfg = chip.getdict('tool', toolname, 'task', taskname)
|
|
659
661
|
schema = Schema(cfg=cfg)
|
|
662
|
+
for vals, step, index in schema._getvals('require'):
|
|
663
|
+
schema.set('require', sorted(set(vals)),
|
|
664
|
+
step=step, index=index)
|
|
660
665
|
schema.prune()
|
|
661
666
|
pruned = schema.cfg
|
|
662
667
|
table = build_schema_value_table(pruned, self.env.docname,
|
|
@@ -789,6 +794,7 @@ class ToolGen(DynamicGen):
|
|
|
789
794
|
key_path = ['tool', '<tool>', 'task', '<task>']
|
|
790
795
|
self._document_free_params(cfg, 'var', key_path + ['var'], reference_prefix, s)
|
|
791
796
|
self._document_free_params(cfg, 'file', key_path + ['file'], reference_prefix, s)
|
|
797
|
+
self._document_free_params(cfg, 'dir', key_path + ['dir'], reference_prefix, s)
|
|
792
798
|
|
|
793
799
|
def _handle_setup(self, chip, module):
|
|
794
800
|
setup = self.get_setup_method(module)
|