siliconcompiler 0.32.2__py3-none-any.whl → 0.33.0__py3-none-any.whl
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/__init__.py +19 -2
- siliconcompiler/_metadata.py +3 -2
- siliconcompiler/apps/sc.py +2 -2
- siliconcompiler/apps/sc_install.py +3 -3
- siliconcompiler/apps/sc_issue.py +1 -1
- siliconcompiler/apps/sc_remote.py +4 -4
- siliconcompiler/apps/sc_show.py +2 -2
- siliconcompiler/apps/utils/replay.py +5 -3
- siliconcompiler/asic.py +120 -0
- siliconcompiler/checklist.py +150 -0
- siliconcompiler/core.py +319 -345
- siliconcompiler/{templates → data/templates}/replay/replay.sh.j2 +2 -2
- siliconcompiler/flowgraph.py +803 -515
- siliconcompiler/fpga.py +84 -0
- siliconcompiler/metric.py +420 -0
- siliconcompiler/optimizer/vizier.py +2 -3
- siliconcompiler/package/__init__.py +29 -6
- siliconcompiler/pdk.py +415 -0
- siliconcompiler/record.py +449 -0
- siliconcompiler/remote/client.py +61 -19
- siliconcompiler/remote/schema.py +116 -112
- siliconcompiler/remote/server.py +3 -5
- siliconcompiler/report/__init__.py +3 -2
- siliconcompiler/report/dashboard/__init__.py +61 -170
- siliconcompiler/report/dashboard/cli/__init__.py +79 -0
- siliconcompiler/report/dashboard/cli/board.py +895 -0
- siliconcompiler/report/dashboard/web/__init__.py +196 -0
- siliconcompiler/report/dashboard/{components → web/components}/__init__.py +9 -8
- siliconcompiler/report/dashboard/{components → web/components}/flowgraph.py +3 -3
- siliconcompiler/report/dashboard/{components → web/components}/graph.py +7 -4
- siliconcompiler/report/dashboard/{layouts → web/layouts}/__init__.py +3 -3
- siliconcompiler/report/dashboard/{layouts → web/layouts}/_common.py +1 -1
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph.py +5 -5
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_node_tab.py +6 -6
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_sac_tabs.py +6 -6
- siliconcompiler/report/dashboard/{state.py → web/state.py} +1 -1
- siliconcompiler/report/dashboard/{utils → web/utils}/__init__.py +4 -3
- siliconcompiler/report/dashboard/{viewer.py → web/viewer.py} +4 -4
- siliconcompiler/report/html_report.py +2 -3
- siliconcompiler/report/report.py +13 -7
- siliconcompiler/report/summary_image.py +1 -1
- siliconcompiler/report/summary_table.py +3 -3
- siliconcompiler/report/utils.py +11 -10
- siliconcompiler/scheduler/__init__.py +153 -286
- siliconcompiler/scheduler/run_node.py +2 -1
- siliconcompiler/scheduler/send_messages.py +4 -4
- siliconcompiler/scheduler/slurm.py +2 -2
- siliconcompiler/schema/__init__.py +19 -2
- siliconcompiler/schema/baseschema.py +493 -0
- siliconcompiler/schema/cmdlineschema.py +250 -0
- siliconcompiler/{sphinx_ext → schema/docs}/__init__.py +3 -1
- siliconcompiler/{sphinx_ext → schema/docs}/dynamicgen.py +63 -81
- siliconcompiler/{sphinx_ext → schema/docs}/schemagen.py +73 -85
- siliconcompiler/{sphinx_ext → schema/docs}/utils.py +12 -13
- siliconcompiler/schema/editableschema.py +136 -0
- siliconcompiler/schema/journalingschema.py +238 -0
- siliconcompiler/schema/namedschema.py +41 -0
- siliconcompiler/schema/packageschema.py +101 -0
- siliconcompiler/schema/parameter.py +791 -0
- siliconcompiler/schema/parametertype.py +323 -0
- siliconcompiler/schema/parametervalue.py +736 -0
- siliconcompiler/schema/safeschema.py +37 -0
- siliconcompiler/schema/schema_cfg.py +109 -1789
- siliconcompiler/schema/utils.py +5 -68
- siliconcompiler/schema_obj.py +119 -0
- siliconcompiler/tool.py +1308 -0
- siliconcompiler/tools/_common/__init__.py +8 -10
- siliconcompiler/tools/_common/sdc/sc_constraints.sdc +1 -1
- siliconcompiler/tools/bluespec/convert.py +7 -7
- siliconcompiler/tools/builtin/_common.py +1 -1
- siliconcompiler/tools/builtin/concatenate.py +2 -2
- siliconcompiler/tools/builtin/minimum.py +1 -1
- siliconcompiler/tools/builtin/mux.py +2 -1
- siliconcompiler/tools/builtin/nop.py +1 -1
- siliconcompiler/tools/builtin/verify.py +6 -4
- siliconcompiler/tools/chisel/convert.py +4 -4
- siliconcompiler/tools/genfasm/bitstream.py +3 -3
- siliconcompiler/tools/ghdl/convert.py +1 -1
- siliconcompiler/tools/icarus/compile.py +4 -4
- siliconcompiler/tools/icepack/bitstream.py +6 -1
- siliconcompiler/tools/klayout/convert_drc_db.py +5 -0
- siliconcompiler/tools/klayout/klayout_export.py +0 -1
- siliconcompiler/tools/klayout/klayout_utils.py +3 -10
- siliconcompiler/tools/nextpnr/apr.py +6 -1
- siliconcompiler/tools/nextpnr/nextpnr.py +4 -4
- siliconcompiler/tools/openroad/_apr.py +17 -0
- siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
- siliconcompiler/tools/openroad/rdlroute.py +3 -3
- siliconcompiler/tools/openroad/scripts/apr/postamble.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/preamble.tcl +5 -5
- siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +4 -4
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +4 -4
- siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +4 -4
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +58 -2
- siliconcompiler/tools/openroad/scripts/common/reports.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/common/screenshot.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/common/write_images.tcl +28 -3
- siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +4 -4
- siliconcompiler/tools/openroad/scripts/sc_show.tcl +7 -7
- siliconcompiler/tools/opensta/__init__.py +1 -1
- siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
- siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
- siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
- siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
- siliconcompiler/tools/opensta/timing.py +6 -2
- siliconcompiler/tools/slang/__init__.py +10 -10
- siliconcompiler/tools/surelog/parse.py +4 -4
- siliconcompiler/tools/sv2v/convert.py +20 -3
- siliconcompiler/tools/verilator/compile.py +2 -2
- siliconcompiler/tools/verilator/verilator.py +3 -3
- siliconcompiler/tools/vpr/place.py +1 -1
- siliconcompiler/tools/vpr/route.py +4 -4
- siliconcompiler/tools/vpr/screenshot.py +1 -1
- siliconcompiler/tools/vpr/show.py +5 -5
- siliconcompiler/tools/vpr/vpr.py +24 -24
- siliconcompiler/tools/xdm/convert.py +2 -2
- siliconcompiler/tools/xyce/simulate.py +1 -1
- siliconcompiler/tools/yosys/sc_synth_asic.tcl +104 -90
- siliconcompiler/tools/yosys/syn_asic.py +13 -4
- siliconcompiler/toolscripts/_tools.json +12 -7
- siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-icarus.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
- siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
- siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-verible.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-verilator.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-icarus.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-magic.sh +1 -2
- siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
- siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
- siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
- siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-verilator.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +1 -2
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +2 -2
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +1 -3
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +2 -2
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -0
- siliconcompiler/utils/__init__.py +8 -112
- siliconcompiler/utils/flowgraph.py +339 -0
- siliconcompiler/{issue.py → utils/issue.py} +7 -4
- siliconcompiler/utils/logging.py +86 -33
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/METADATA +10 -8
- siliconcompiler-0.33.0.dist-info/RECORD +487 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/WHEEL +1 -1
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/entry_points.txt +8 -8
- siliconcompiler/schema/schema_obj.py +0 -1936
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -27
- siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +0 -59
- siliconcompiler-0.32.2.dist-info/RECORD +0 -464
- /siliconcompiler/{templates → data/templates}/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/email/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/email/general.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/email/summary.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/issue/README.txt +0 -0
- /siliconcompiler/{templates → data/templates}/issue/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/issue/run.sh +0 -0
- /siliconcompiler/{templates → data/templates}/replay/replay.py.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/replay/requirements.txt +0 -0
- /siliconcompiler/{templates → data/templates}/replay/setup.sh +0 -0
- /siliconcompiler/{templates → data/templates}/report/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/report/bootstrap.min.css +0 -0
- /siliconcompiler/{templates → data/templates}/report/bootstrap.min.js +0 -0
- /siliconcompiler/{templates → data/templates}/report/bootstrap_LICENSE.md +0 -0
- /siliconcompiler/{templates → data/templates}/report/sc_report.j2 +0 -0
- /siliconcompiler/{templates → data/templates}/slurm/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/slurm/run.sh +0 -0
- /siliconcompiler/{templates → data/templates}/tcl/__init__.py +0 -0
- /siliconcompiler/{templates → data/templates}/tcl/manifest.tcl.j2 +0 -0
- /siliconcompiler/report/dashboard/{utils → web/utils}/file_utils.py +0 -0
- /siliconcompiler/{units.py → utils/units.py} +0 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/licenses/LICENSE +0 -0
- {siliconcompiler-0.32.2.dist-info → siliconcompiler-0.33.0.dist-info}/top_level.txt +0 -0
|
@@ -5,6 +5,8 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo apt-get install -y git wget
|
|
9
|
+
|
|
8
10
|
mkdir -p deps
|
|
9
11
|
cd deps
|
|
10
12
|
|
|
@@ -15,8 +17,6 @@ git submodule update --init --recursive
|
|
|
15
17
|
|
|
16
18
|
./install_apt_packages.sh
|
|
17
19
|
|
|
18
|
-
sudo apt-get install -y libtbb-dev
|
|
19
|
-
|
|
20
20
|
args=
|
|
21
21
|
if [ ! -z ${PREFIX} ]; then
|
|
22
22
|
args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
|
|
@@ -10,6 +10,8 @@ sudo apt-get install -y build-essential gcc g++ make cmake automake autoconf bis
|
|
|
10
10
|
liblapack-dev liblapack64-dev libfftw3-dev libsuitesparse-dev libopenmpi-dev libboost-all-dev \
|
|
11
11
|
libnetcdf-dev libmatio-dev gfortran libfl-dev libtool python3-venv
|
|
12
12
|
|
|
13
|
+
sudo apt-get install -y wget
|
|
14
|
+
|
|
13
15
|
mkdir -p deps
|
|
14
16
|
cd deps
|
|
15
17
|
|
|
@@ -5,12 +5,14 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo apt-get install -y git
|
|
9
|
+
|
|
8
10
|
mkdir -p deps
|
|
9
11
|
cd deps
|
|
10
12
|
|
|
11
13
|
python3 -m venv .yosys-slang --clear
|
|
12
14
|
. .yosys-slang/bin/activate
|
|
13
|
-
python3 -m pip install cmake
|
|
15
|
+
python3 -m pip install cmake==3.31.6
|
|
14
16
|
|
|
15
17
|
git clone $(python3 ${src_path}/_tools.py --tool yosys-slang --field git-url) yosys-slang
|
|
16
18
|
cd yosys-slang
|
|
@@ -7,9 +7,7 @@ sudo apt-get install -y build-essential clang bison flex libreadline-dev \
|
|
|
7
7
|
xdot pkg-config python3 libftdi-dev \
|
|
8
8
|
qtbase5-dev python3-dev libboost-all-dev cmake libeigen3-dev
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
set -e
|
|
10
|
+
sudo apt-get install -y git
|
|
13
11
|
|
|
14
12
|
# Get directory of script
|
|
15
13
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
6
|
+
|
|
7
|
+
sudo apt-get install -y git build-essential wget
|
|
8
|
+
sudo apt-get install -y tcl-dev tcl-tclreadline \
|
|
9
|
+
bison flex libfl-dev zlib1g-dev automake autotools-dev
|
|
10
|
+
|
|
11
|
+
mkdir -p deps
|
|
12
|
+
cd deps
|
|
13
|
+
|
|
14
|
+
python3 -m venv .opensta --clear
|
|
15
|
+
. .opensta/bin/activate
|
|
16
|
+
python3 -m pip install cmake==3.31.6
|
|
17
|
+
|
|
18
|
+
if [ ! -z ${PREFIX} ]; then
|
|
19
|
+
cmake_args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
|
|
20
|
+
config_prefix="--prefix=$PREFIX"
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# eigen
|
|
24
|
+
mkdir -p eigen3
|
|
25
|
+
cd eigen3
|
|
26
|
+
git clone --depth=1 -b 3.4 https://gitlab.com/libeigen/eigen.git
|
|
27
|
+
cd eigen
|
|
28
|
+
mkdir build
|
|
29
|
+
cd build
|
|
30
|
+
cmake $cmake_args ..
|
|
31
|
+
make -j$(nproc)
|
|
32
|
+
sudo make install
|
|
33
|
+
|
|
34
|
+
cd ../../..
|
|
35
|
+
# cudd
|
|
36
|
+
mkdir -p cudd
|
|
37
|
+
cd cudd
|
|
38
|
+
git clone --depth=1 -b 3.0.0 https://github.com/The-OpenROAD-Project/cudd.git
|
|
39
|
+
cd cudd
|
|
40
|
+
autoreconf
|
|
41
|
+
./configure $config_prefix
|
|
42
|
+
make -j$(nproc)
|
|
43
|
+
sudo make install
|
|
44
|
+
|
|
45
|
+
cd ../..
|
|
46
|
+
#swig
|
|
47
|
+
wget -O swig.tar.gz https://github.com/swig/swig/archive/v4.1.0.tar.gz
|
|
48
|
+
tar xfz swig.tar.gz
|
|
49
|
+
cd swig-4.1.0
|
|
50
|
+
|
|
51
|
+
wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz
|
|
52
|
+
./Tools/pcre-build.sh
|
|
53
|
+
|
|
54
|
+
./autogen.sh
|
|
55
|
+
./configure $config_prefix
|
|
56
|
+
make -j$(nproc)
|
|
57
|
+
sudo make -j$(nproc) install
|
|
58
|
+
|
|
59
|
+
cd ../..
|
|
60
|
+
# opensta
|
|
61
|
+
git clone $(python3 ${src_path}/_tools.py --tool opensta --field git-url) opensta
|
|
62
|
+
cd opensta
|
|
63
|
+
git checkout $(python3 ${src_path}/_tools.py --tool opensta --field git-commit)
|
|
64
|
+
git submodule update --init --recursive
|
|
65
|
+
|
|
66
|
+
mkdir -p build
|
|
67
|
+
cd build
|
|
68
|
+
cmake .. $cmake_args
|
|
69
|
+
make -j$(nproc)
|
|
70
|
+
sudo make install
|
|
71
|
+
|
|
72
|
+
cd -
|
|
@@ -5,12 +5,14 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo apt-get install -y git build-essential
|
|
9
|
+
|
|
8
10
|
mkdir -p deps
|
|
9
11
|
cd deps
|
|
10
12
|
|
|
11
13
|
python3 -m venv .slang --clear
|
|
12
14
|
. .slang/bin/activate
|
|
13
|
-
python3 -m pip install cmake
|
|
15
|
+
python3 -m pip install cmake==3.31.6
|
|
14
16
|
|
|
15
17
|
git clone $(python3 ${src_path}/_tools.py --tool slang --field git-url) slang
|
|
16
18
|
cd slang
|
|
@@ -11,13 +11,15 @@ sudo apt-get install -y build-essential cmake git pkg-config \
|
|
|
11
11
|
python3-orderedmultidict python3-psutil python3-dev \
|
|
12
12
|
default-jre lcov zlib1g-dev
|
|
13
13
|
|
|
14
|
+
sudo apt-get install -y git
|
|
15
|
+
|
|
14
16
|
mkdir -p deps
|
|
15
17
|
cd deps
|
|
16
18
|
|
|
17
19
|
python3 -m venv .surelog --clear
|
|
18
20
|
. .surelog/bin/activate
|
|
19
21
|
python3 -m pip install --upgrade pip
|
|
20
|
-
python3 -m pip install cmake
|
|
22
|
+
python3 -m pip install cmake==3.31.6
|
|
21
23
|
python3 -m pip install orderedmultidict
|
|
22
24
|
|
|
23
25
|
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|
|
@@ -5,6 +5,8 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo apt-get install -y git wget
|
|
9
|
+
|
|
8
10
|
mkdir -p deps
|
|
9
11
|
cd deps
|
|
10
12
|
|
|
@@ -15,8 +17,6 @@ git submodule update --init --recursive
|
|
|
15
17
|
|
|
16
18
|
./install_apt_packages.sh
|
|
17
19
|
|
|
18
|
-
sudo apt-get install -y libtbb-dev
|
|
19
|
-
|
|
20
20
|
args=
|
|
21
21
|
if [ ! -z ${PREFIX} ]; then
|
|
22
22
|
args="-DCMAKE_INSTALL_PREFIX=$PREFIX"
|
|
@@ -10,6 +10,8 @@ sudo apt-get install -y build-essential gcc g++ make cmake automake autoconf bis
|
|
|
10
10
|
liblapack-dev liblapack64-dev libfftw3-dev libsuitesparse-dev libopenmpi-dev libboost-all-dev \
|
|
11
11
|
libnetcdf-dev libmatio-dev gfortran libfl-dev libtool python3-venv
|
|
12
12
|
|
|
13
|
+
sudo apt-get install -y wget
|
|
14
|
+
|
|
13
15
|
mkdir -p deps
|
|
14
16
|
cd deps
|
|
15
17
|
|
|
@@ -5,12 +5,14 @@ set -e
|
|
|
5
5
|
# Get directory of script
|
|
6
6
|
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
7
|
|
|
8
|
+
sudo apt-get install -y git
|
|
9
|
+
|
|
8
10
|
mkdir -p deps
|
|
9
11
|
cd deps
|
|
10
12
|
|
|
11
13
|
python3 -m venv .yosys-slang --clear
|
|
12
14
|
. .yosys-slang/bin/activate
|
|
13
|
-
python3 -m pip install cmake
|
|
15
|
+
python3 -m pip install cmake==3.31.6
|
|
14
16
|
|
|
15
17
|
git clone $(python3 ${src_path}/_tools.py --tool yosys-slang --field git-url) yosys-slang
|
|
16
18
|
cd yosys-slang
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import contextlib
|
|
2
|
-
import hashlib
|
|
3
2
|
import os
|
|
4
3
|
import re
|
|
5
4
|
import psutil
|
|
6
5
|
import shutil
|
|
7
|
-
from pathlib import Path
|
|
6
|
+
from pathlib import Path
|
|
8
7
|
from jinja2 import Environment, FileSystemLoader
|
|
8
|
+
from siliconcompiler.schema.parametervalue import PathNodeValue
|
|
9
9
|
|
|
10
10
|
import sys
|
|
11
11
|
if sys.version_info < (3, 10):
|
|
@@ -231,7 +231,9 @@ def sc_open(path, *args, **kwargs):
|
|
|
231
231
|
def get_file_template(path,
|
|
232
232
|
root=os.path.join(
|
|
233
233
|
os.path.dirname(
|
|
234
|
-
os.path.dirname(os.path.abspath(__file__))),
|
|
234
|
+
os.path.dirname(os.path.abspath(__file__))),
|
|
235
|
+
'data',
|
|
236
|
+
'templates')):
|
|
235
237
|
if os.path.isabs(path):
|
|
236
238
|
root = os.path.dirname(path)
|
|
237
239
|
path = os.path.basename(path)
|
|
@@ -325,31 +327,6 @@ def grep(chip, args, line):
|
|
|
325
327
|
return line
|
|
326
328
|
|
|
327
329
|
|
|
328
|
-
#######################################
|
|
329
|
-
def _resolve_env_vars(chip, filepath, step, index):
|
|
330
|
-
if not filepath:
|
|
331
|
-
return None
|
|
332
|
-
|
|
333
|
-
env_save = os.environ.copy()
|
|
334
|
-
|
|
335
|
-
os.environ.update(get_env_vars(chip, step, index))
|
|
336
|
-
resolved_path = os.path.expandvars(filepath)
|
|
337
|
-
|
|
338
|
-
os.environ.clear()
|
|
339
|
-
os.environ.update(env_save)
|
|
340
|
-
|
|
341
|
-
resolved_path = os.path.expanduser(resolved_path)
|
|
342
|
-
|
|
343
|
-
# variables that don't exist in environment get ignored by `expandvars`,
|
|
344
|
-
# but we can do our own error checking to ensure this doesn't result in
|
|
345
|
-
# silent bugs
|
|
346
|
-
envvars = re.findall(r'\$\{?(\w+)\}?', resolved_path)
|
|
347
|
-
for var in envvars:
|
|
348
|
-
chip.logger.warning(f'Variable {var} in {filepath} not defined in environment')
|
|
349
|
-
|
|
350
|
-
return resolved_path
|
|
351
|
-
|
|
352
|
-
|
|
353
330
|
#######################################
|
|
354
331
|
def get_env_vars(chip, step, index):
|
|
355
332
|
'''
|
|
@@ -373,69 +350,6 @@ def get_env_vars(chip, step, index):
|
|
|
373
350
|
return schema_env
|
|
374
351
|
|
|
375
352
|
|
|
376
|
-
###########################################################################
|
|
377
|
-
def find_sc_file(chip, filename, missing_ok=False, search_paths=None, step=None, index=None):
|
|
378
|
-
"""
|
|
379
|
-
Returns the absolute path for the filename provided.
|
|
380
|
-
|
|
381
|
-
Searches the for the filename provided and returns the absolute path.
|
|
382
|
-
If no valid absolute path is found during the search, None is returned.
|
|
383
|
-
|
|
384
|
-
Shell variables ('$' followed by strings consisting of numbers,
|
|
385
|
-
underscores, and digits) are replaced with the variable value.
|
|
386
|
-
|
|
387
|
-
Args:
|
|
388
|
-
filename (str): Relative or absolute filename.
|
|
389
|
-
missing_ok (bool): If False, error out if no valid absolute path
|
|
390
|
-
found, rather than returning None.
|
|
391
|
-
search_paths (list): List of directories to search under instead of
|
|
392
|
-
the defaults.
|
|
393
|
-
step (str): Step name
|
|
394
|
-
index (str): Index
|
|
395
|
-
|
|
396
|
-
Returns:
|
|
397
|
-
Returns absolute path of 'filename' if found, otherwise returns
|
|
398
|
-
None.
|
|
399
|
-
|
|
400
|
-
Examples:
|
|
401
|
-
>>> chip._find_sc_file('flows/asicflow.py')
|
|
402
|
-
Returns the absolute path based on the sc installation directory.
|
|
403
|
-
|
|
404
|
-
"""
|
|
405
|
-
|
|
406
|
-
if not filename:
|
|
407
|
-
return None
|
|
408
|
-
|
|
409
|
-
# Replacing environment variables
|
|
410
|
-
filename = _resolve_env_vars(chip, filename, step, index)
|
|
411
|
-
|
|
412
|
-
# If we have an absolute path, pass-through here
|
|
413
|
-
if os.path.isabs(filename) and os.path.exists(filename):
|
|
414
|
-
return filename
|
|
415
|
-
|
|
416
|
-
# Otherwise, search relative to search_paths
|
|
417
|
-
if search_paths is None:
|
|
418
|
-
search_paths = [chip.cwd]
|
|
419
|
-
|
|
420
|
-
searchdirs = ', '.join([str(p) for p in search_paths])
|
|
421
|
-
chip.logger.debug(f"Searching for file {filename} in {searchdirs}")
|
|
422
|
-
|
|
423
|
-
result = None
|
|
424
|
-
for searchdir in search_paths:
|
|
425
|
-
if not os.path.isabs(searchdir):
|
|
426
|
-
searchdir = os.path.join(chip.cwd, searchdir)
|
|
427
|
-
|
|
428
|
-
abspath = os.path.abspath(os.path.join(searchdir, filename))
|
|
429
|
-
if os.path.exists(abspath):
|
|
430
|
-
result = abspath
|
|
431
|
-
break
|
|
432
|
-
|
|
433
|
-
if result is None and not missing_ok:
|
|
434
|
-
chip.error(f"File {filename} was not found")
|
|
435
|
-
|
|
436
|
-
return result
|
|
437
|
-
|
|
438
|
-
|
|
439
353
|
def get_plugins(system, name=None):
|
|
440
354
|
'''
|
|
441
355
|
Search for python modules with a specific function
|
|
@@ -470,32 +384,14 @@ def truncate_text(text, width):
|
|
|
470
384
|
return text
|
|
471
385
|
|
|
472
386
|
|
|
473
|
-
def get_hashed_filename(path, package=None
|
|
387
|
+
def get_hashed_filename(path, package=None):
|
|
474
388
|
'''
|
|
475
389
|
Utility to map collected file to an unambiguous name based on its path.
|
|
476
390
|
|
|
477
391
|
The mapping looks like:
|
|
478
|
-
path/to/file.ext => file_<hash('path/to
|
|
392
|
+
path/to/file.ext => file_<hash('path/to')>.ext
|
|
479
393
|
'''
|
|
480
|
-
|
|
481
|
-
ext = ''.join(path.suffixes)
|
|
482
|
-
|
|
483
|
-
# strip off all file suffixes to get just the bare name
|
|
484
|
-
barepath = path
|
|
485
|
-
while barepath.suffix:
|
|
486
|
-
barepath = PurePosixPath(barepath.stem)
|
|
487
|
-
filename = str(barepath.parts[-1])
|
|
488
|
-
|
|
489
|
-
if not package:
|
|
490
|
-
package = ''
|
|
491
|
-
else:
|
|
492
|
-
package = f'{package}:'
|
|
493
|
-
|
|
494
|
-
path_to_hash = f'{package}{str(path)}'
|
|
495
|
-
|
|
496
|
-
pathhash = hash(path_to_hash.encode('utf-8')).hexdigest()
|
|
497
|
-
|
|
498
|
-
return f'{filename}_{pathhash}{ext}'
|
|
394
|
+
return PathNodeValue.generate_hashed_path(path, package)
|
|
499
395
|
|
|
500
396
|
|
|
501
397
|
def get_cores(chip, physical=False):
|