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
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Do fill
|
|
@@ -18,7 +18,7 @@ source -echo "$sc_refdir/apr/preamble.tcl"
|
|
|
18
18
|
set sc_libtype [sc_cfg_get library $sc_mainlib asic libarch]
|
|
19
19
|
|
|
20
20
|
if {
|
|
21
|
-
|
|
21
|
+
[lindex [sc_cfg_tool_task_get var fin_add_fill] 0] == "true" &&
|
|
22
22
|
[sc_cfg_exists pdk $sc_pdk aprtech openroad $sc_stackup $sc_libtype fill]
|
|
23
23
|
} {
|
|
24
24
|
set sc_fillrules \
|
|
@@ -33,4 +33,4 @@ estimate_parasitics -global_routing
|
|
|
33
33
|
# Task Postamble
|
|
34
34
|
###############################
|
|
35
35
|
|
|
36
|
-
source
|
|
36
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
set dont_use_args []
|
|
15
15
|
|
|
@@ -87,4 +87,4 @@ sc_set_dont_use
|
|
|
87
87
|
|
|
88
88
|
estimate_parasitics -placement
|
|
89
89
|
|
|
90
|
-
source
|
|
90
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Pin access
|
|
@@ -70,4 +70,4 @@ estimate_parasitics -global_routing
|
|
|
70
70
|
# Task Postamble
|
|
71
71
|
###############################
|
|
72
72
|
|
|
73
|
-
source
|
|
73
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# FLOORPLANNING
|
|
@@ -331,4 +331,4 @@ if { [lindex [sc_cfg_tool_task_get var remove_dead_logic] 0] == "true" } {
|
|
|
331
331
|
# Task Postamble
|
|
332
332
|
###############################
|
|
333
333
|
|
|
334
|
-
source
|
|
334
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Macro placement constraints
|
|
16
16
|
###############################
|
|
17
17
|
foreach script [sc_cfg_tool_task_get file rtlmp_constraints] {
|
|
18
18
|
puts "Sourcing macro placement constraints: $script"
|
|
19
|
-
source
|
|
19
|
+
source $script
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
# Need to check if we have any macros before performing macro placement,
|
|
@@ -117,4 +117,4 @@ sc_print_macro_information
|
|
|
117
117
|
# Task Postamble
|
|
118
118
|
###############################
|
|
119
119
|
|
|
120
|
-
source
|
|
120
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Report Metrics
|
|
@@ -19,4 +19,4 @@ source -echo "$sc_refdir/apr/preamble.tcl"
|
|
|
19
19
|
# Task Postamble
|
|
20
20
|
###############################
|
|
21
21
|
|
|
22
|
-
source
|
|
22
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
if { [sc_design_has_placeable_ios] } {
|
|
15
15
|
###############################
|
|
@@ -38,4 +38,4 @@ if { [sc_design_has_placeable_ios] } {
|
|
|
38
38
|
# Task Postamble
|
|
39
39
|
###############################
|
|
40
40
|
|
|
41
|
-
source
|
|
41
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Error checking
|
|
@@ -122,4 +122,4 @@ if { [llength $pdn_blockages] > 0 } {
|
|
|
122
122
|
# Task Postamble
|
|
123
123
|
###############################
|
|
124
124
|
|
|
125
|
-
source
|
|
125
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Buffer ports
|
|
@@ -70,4 +70,4 @@ estimate_parasitics -placement
|
|
|
70
70
|
# Task Postamble
|
|
71
71
|
###############################
|
|
72
72
|
|
|
73
|
-
source
|
|
73
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Timing Repair
|
|
16
16
|
###############################
|
|
17
17
|
|
|
18
18
|
set parasitics_stage -placement
|
|
19
|
-
if {
|
|
19
|
+
if { [sc_check_version 20073] && [grt::have_routes] } {
|
|
20
20
|
set parasitics_stage -global_routing
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -159,4 +159,4 @@ estimate_parasitics $parasitics_stage
|
|
|
159
159
|
# Task Postamble
|
|
160
160
|
###############################
|
|
161
161
|
|
|
162
|
-
source
|
|
162
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
###############################
|
|
8
8
|
# Task Preamble
|
|
9
9
|
###############################
|
|
10
10
|
|
|
11
11
|
set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
12
|
-
source
|
|
12
|
+
source "$sc_refdir/apr/preamble.tcl"
|
|
13
13
|
|
|
14
14
|
###############################
|
|
15
15
|
# Generate LEF
|
|
@@ -122,4 +122,4 @@ foreach net [sc_psm_check_nets] {
|
|
|
122
122
|
# Task Postamble
|
|
123
123
|
###############################
|
|
124
124
|
|
|
125
|
-
source
|
|
125
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -116,7 +116,7 @@ proc sc_detailed_placement { args } {
|
|
|
116
116
|
lappend dpl_args "-disallow_one_site_gaps"
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
set incremental_route
|
|
119
|
+
set incremental_route [expr { [sc_check_version 20073] && [grt::have_routes] }]
|
|
120
120
|
|
|
121
121
|
if { $incremental_route } {
|
|
122
122
|
global_route -start_incremental
|
|
@@ -411,12 +411,18 @@ proc sc_psm_check_nets { } {
|
|
|
411
411
|
# Save an image
|
|
412
412
|
###########################
|
|
413
413
|
|
|
414
|
-
proc sc_save_image { title path { pixels 1000 } } {
|
|
414
|
+
proc sc_save_image { title path { gif false } { pixels 1000 } } {
|
|
415
415
|
utl::info FLW 1 "Saving \"$title\" to $path"
|
|
416
416
|
|
|
417
417
|
save_image -resolution [sc_image_resolution $pixels] \
|
|
418
418
|
-area [sc_image_area] \
|
|
419
419
|
$path
|
|
420
|
+
|
|
421
|
+
if { $gif } {
|
|
422
|
+
save_animated_gif -add \
|
|
423
|
+
-resolution [sc_image_resolution $pixels] \
|
|
424
|
+
-area [sc_image_area]
|
|
425
|
+
}
|
|
420
426
|
}
|
|
421
427
|
|
|
422
428
|
###########################
|
|
@@ -480,6 +486,9 @@ proc sc_image_setup_default { } {
|
|
|
480
486
|
gui::set_display_controls "Misc/Scale bar" visible true
|
|
481
487
|
gui::set_display_controls "Misc/Highlight selected" visible true
|
|
482
488
|
gui::set_display_controls "Misc/Detailed view" visible true
|
|
489
|
+
if { [sc_check_version 21574] } {
|
|
490
|
+
gui::set_display_controls "Misc/Labels" visible true
|
|
491
|
+
}
|
|
483
492
|
}
|
|
484
493
|
|
|
485
494
|
###########################
|
|
@@ -597,6 +606,22 @@ proc sc_has_input_files { type key } {
|
|
|
597
606
|
return [expr { [sc_get_input_files $type $key] != [] }]
|
|
598
607
|
}
|
|
599
608
|
|
|
609
|
+
proc sc_path_group { args } {
|
|
610
|
+
sta::parse_key_args "sc_path_group" args \
|
|
611
|
+
keys {-name -to -from} \
|
|
612
|
+
flags {}
|
|
613
|
+
|
|
614
|
+
sta::check_argc_eq0 "sc_path_group" $args
|
|
615
|
+
|
|
616
|
+
if { [llength $keys(-from)] == 0 } {
|
|
617
|
+
return
|
|
618
|
+
}
|
|
619
|
+
if { [llength $keys(-to)] == 0 } {
|
|
620
|
+
return
|
|
621
|
+
}
|
|
622
|
+
group_path -name $keys(-name) -from $keys(-from) -to $keys(-to)
|
|
623
|
+
}
|
|
624
|
+
|
|
600
625
|
proc sc_setup_sta { } {
|
|
601
626
|
set sta_early_timing_derate [lindex [sc_cfg_tool_task_get var sta_early_timing_derate] 0]
|
|
602
627
|
set sta_late_timing_derate [lindex [sc_cfg_tool_task_get var sta_late_timing_derate] 0]
|
|
@@ -609,6 +634,37 @@ proc sc_setup_sta { } {
|
|
|
609
634
|
set_timing_derate -late $sta_late_timing_derate
|
|
610
635
|
}
|
|
611
636
|
|
|
637
|
+
# Create path groups
|
|
638
|
+
if {
|
|
639
|
+
[lindex [sc_cfg_tool_task_get var sta_define_path_groups] 0] == "true" &&
|
|
640
|
+
[llength [sta::path_group_names]] == 0
|
|
641
|
+
} {
|
|
642
|
+
sc_path_group -name in2out -from [all_inputs -no_clocks] -to [all_outputs]
|
|
643
|
+
|
|
644
|
+
if {
|
|
645
|
+
[llength [all_clocks]] == 1 ||
|
|
646
|
+
[lindex [sc_cfg_tool_task_get var sta_unique_path_groups_per_clock] 0] == "false"
|
|
647
|
+
} {
|
|
648
|
+
sc_path_group -name in2reg -from [all_inputs -no_clocks] -to [all_registers]
|
|
649
|
+
sc_path_group -name reg2reg -from [all_registers] -to [all_registers]
|
|
650
|
+
sc_path_group -name reg2out -from [all_registers] -to [all_outputs]
|
|
651
|
+
} else {
|
|
652
|
+
foreach clock [all_clocks] {
|
|
653
|
+
set clk_name [get_property $clock name]
|
|
654
|
+
sc_path_group -name in2reg.${clk_name} \
|
|
655
|
+
-from [all_inputs -no_clocks] \
|
|
656
|
+
-to [all_registers -clock $clock]
|
|
657
|
+
sc_path_group -name reg2reg.${clk_name} \
|
|
658
|
+
-from [all_registers -clock $clock] \
|
|
659
|
+
-to [all_registers -clock $clock]
|
|
660
|
+
sc_path_group -name reg2out.${clk_name} \
|
|
661
|
+
-from [all_registers -clock $clock] \
|
|
662
|
+
-to [all_outputs]
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
utl::info FLW 1 "Timing path groups: [sta::path_group_names]"
|
|
667
|
+
|
|
612
668
|
# Check timing setup
|
|
613
669
|
if { [sc_cfg_tool_task_check_in_list check_setup var reports] } {
|
|
614
670
|
tee -file "reports/check_timing_setup.rpt" {check_setup -verbose}
|
|
@@ -28,7 +28,7 @@ if { [sc_cfg_tool_task_check_in_list setup var reports] } {
|
|
|
28
28
|
"report_tns"
|
|
29
29
|
report_tns_metric -setup
|
|
30
30
|
|
|
31
|
-
if { [sc_check_version 19519] } {
|
|
31
|
+
if { [sc_check_version 19519] && [llength [all_clocks]] > 0 } {
|
|
32
32
|
tee -quiet -file reports/timing/setup.histogram.rpt \
|
|
33
33
|
"report_timing_histogram -num_bins 20 -setup"
|
|
34
34
|
}
|
|
@@ -48,7 +48,7 @@ if { [sc_cfg_tool_task_check_in_list hold var reports] } {
|
|
|
48
48
|
|
|
49
49
|
report_tns_metric -hold
|
|
50
50
|
|
|
51
|
-
if { [sc_check_version 19519] } {
|
|
51
|
+
if { [sc_check_version 19519] && [llength [all_clocks]] > 0 } {
|
|
52
52
|
tee -quiet -file reports/timing/hold.histogram.rpt \
|
|
53
53
|
"report_timing_histogram -num_bins 20 -hold"
|
|
54
54
|
}
|
|
@@ -5,7 +5,7 @@ set sc_resolution \
|
|
|
5
5
|
|
|
6
6
|
sc_image_setup_default
|
|
7
7
|
|
|
8
|
-
sc_save_image "screenshot" "outputs/${sc_design}.png" $sc_resolution
|
|
8
|
+
sc_save_image "screenshot" "outputs/${sc_design}.png" false $sc_resolution
|
|
9
9
|
|
|
10
10
|
gui::restore_display_controls
|
|
11
11
|
|
|
@@ -14,5 +14,5 @@ if {
|
|
|
14
14
|
[lindex [sc_cfg_tool_task_get {var} include_report_images] 0]
|
|
15
15
|
== "true"
|
|
16
16
|
} {
|
|
17
|
-
source
|
|
17
|
+
source "${sc_refdir}/sc_write_images.tcl"
|
|
18
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Adopted from https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/3f9740e6b3643835e918d78ae1d377d65af0f0fb/flow/scripts/save_images.tcl
|
|
2
2
|
|
|
3
|
-
proc sc_image_heatmap { name ident image_name title { allow_bin_adjust 1 } } {
|
|
3
|
+
proc sc_image_heatmap { name ident image_name title { gif false } { allow_bin_adjust 1 } } {
|
|
4
4
|
set ord_heatmap_bins_x [lindex [sc_cfg_tool_task_get var ord_heatmap_bins_x] 0]
|
|
5
5
|
set ord_heatmap_bins_y [lindex [sc_cfg_tool_task_get var ord_heatmap_bins_y] 0]
|
|
6
6
|
|
|
@@ -49,7 +49,7 @@ proc sc_image_heatmap { name ident image_name title { allow_bin_adjust 1 } } {
|
|
|
49
49
|
|
|
50
50
|
gui::set_display_controls "Heat Maps/${name}" visible true
|
|
51
51
|
|
|
52
|
-
sc_save_image "$title heatmap" reports/images/heatmap/${image_name}
|
|
52
|
+
sc_save_image "$title heatmap" reports/images/heatmap/${image_name} $gif
|
|
53
53
|
|
|
54
54
|
gui::set_display_controls "Heat Maps/${name}" visible false
|
|
55
55
|
}
|
|
@@ -125,6 +125,13 @@ proc sc_image_irdrop { net corner } {
|
|
|
125
125
|
return
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
set gif false
|
|
129
|
+
if { [sc_check_version 21574] } {
|
|
130
|
+
set gif true
|
|
131
|
+
}
|
|
132
|
+
if { $gif } {
|
|
133
|
+
save_animated_gif -start "reports/images/heatmap/irdrop/${net}.${corner}.gif"
|
|
134
|
+
}
|
|
128
135
|
foreach layer [[ord::get_db_tech] getLayers] {
|
|
129
136
|
if { [$layer getRoutingLevel] == 0 } {
|
|
130
137
|
continue
|
|
@@ -136,10 +143,26 @@ proc sc_image_irdrop { net corner } {
|
|
|
136
143
|
gui::set_heatmap IRDrop Layer $layer_name
|
|
137
144
|
gui::set_heatmap IRDrop rebuild
|
|
138
145
|
|
|
146
|
+
set label ""
|
|
147
|
+
if { [sc_check_version 21574] } {
|
|
148
|
+
set box [[ord::get_db_block] getDieArea]
|
|
149
|
+
set x [ord::dbu_to_microns [$box xMax]]
|
|
150
|
+
set y [ord::dbu_to_microns [$box yMin]]
|
|
151
|
+
set label [add_label -position "$x $y" -anchor "bottom right" -color white $layer_name]
|
|
152
|
+
}
|
|
153
|
+
|
|
139
154
|
sc_image_heatmap "IR Drop" \
|
|
140
155
|
"IRDrop" \
|
|
141
156
|
"irdrop/${net}.${corner}.${layer_name}.png" \
|
|
142
|
-
"IR drop for $net on $layer_name for $corner"
|
|
157
|
+
"IR drop for $net on $layer_name for $corner" \
|
|
158
|
+
$gif
|
|
159
|
+
|
|
160
|
+
if { $label != "" } {
|
|
161
|
+
gui::delete_label $label
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if { $gif } {
|
|
165
|
+
save_animated_gif -end
|
|
143
166
|
}
|
|
144
167
|
}
|
|
145
168
|
|
|
@@ -154,6 +177,7 @@ proc sc_image_routing_congestion { } {
|
|
|
154
177
|
"Routing" \
|
|
155
178
|
"routing_congestion.png" \
|
|
156
179
|
"routing congestion" \
|
|
180
|
+
0 \
|
|
157
181
|
0
|
|
158
182
|
}
|
|
159
183
|
|
|
@@ -170,6 +194,7 @@ proc sc_image_estimated_routing_congestion { } {
|
|
|
170
194
|
"RUDY" \
|
|
171
195
|
"estimated_routing_congestion.png" \
|
|
172
196
|
"estimated routing congestion" \
|
|
197
|
+
0 \
|
|
173
198
|
0
|
|
174
199
|
} err
|
|
175
200
|
unsuppress_message GRT 10
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
##############################
|
|
8
8
|
# Schema Helper functions
|
|
@@ -48,5 +48,5 @@ read_lef $sc_techlef
|
|
|
48
48
|
set_thread_count [sc_cfg_tool_task_get threads]
|
|
49
49
|
|
|
50
50
|
utl::set_metrics_stage "sc__step__{}"
|
|
51
|
-
source
|
|
51
|
+
source "${sc_refdir}/rcx/sc_${sc_task}.tcl"
|
|
52
52
|
utl::pop_metrics_stage
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
##############################
|
|
8
8
|
# Schema Adapter
|
|
@@ -39,7 +39,7 @@ set sc_macrolibs [sc_get_asic_libraries macro]
|
|
|
39
39
|
# Setup debugging
|
|
40
40
|
###############################
|
|
41
41
|
|
|
42
|
-
source
|
|
42
|
+
source "$sc_refdir/common/debugging.tcl"
|
|
43
43
|
|
|
44
44
|
###############################
|
|
45
45
|
# Source helper functions
|
|
@@ -85,7 +85,7 @@ utl::push_metrics_stage "sc__prestep__{}"
|
|
|
85
85
|
if { [sc_cfg_tool_task_exists prescript] } {
|
|
86
86
|
foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
|
|
87
87
|
puts "Sourcing pre script: ${sc_pre_script}"
|
|
88
|
-
source
|
|
88
|
+
source $sc_pre_script
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
utl::pop_metrics_stage
|
|
@@ -160,7 +160,7 @@ utl::push_metrics_stage "sc__poststep__{}"
|
|
|
160
160
|
if { [sc_cfg_tool_task_exists postscript] } {
|
|
161
161
|
foreach sc_post_script [sc_cfg_tool_task_get postscript] {
|
|
162
162
|
puts "Sourcing post script: ${sc_post_script}"
|
|
163
|
-
source
|
|
163
|
+
source $sc_post_script
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
utl::pop_metrics_stage
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Reading SC Schema
|
|
3
3
|
###############################
|
|
4
4
|
|
|
5
|
-
source ./sc_manifest.tcl
|
|
5
|
+
source ./sc_manifest.tcl
|
|
6
6
|
|
|
7
7
|
##############################
|
|
8
8
|
# Schema Adapter
|
|
@@ -20,7 +20,7 @@ set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
|
20
20
|
# Setup debugging
|
|
21
21
|
###############################
|
|
22
22
|
|
|
23
|
-
source
|
|
23
|
+
source "$sc_refdir/common/debugging.tcl"
|
|
24
24
|
|
|
25
25
|
###############################
|
|
26
26
|
# Setup helper functions
|
|
@@ -58,11 +58,11 @@ set_thread_count [sc_cfg_tool_task_get threads]
|
|
|
58
58
|
# Read Files
|
|
59
59
|
###############################
|
|
60
60
|
|
|
61
|
-
source
|
|
61
|
+
source "$sc_refdir/common/read_liberty.tcl"
|
|
62
62
|
|
|
63
|
-
source
|
|
63
|
+
source "$sc_refdir/common/read_input_files.tcl"
|
|
64
64
|
|
|
65
|
-
source
|
|
65
|
+
source "$sc_refdir/common/read_timing_constraints.tcl"
|
|
66
66
|
|
|
67
67
|
###############################
|
|
68
68
|
# Common Setup
|
|
@@ -84,7 +84,7 @@ utl::push_metrics_stage "sc__prestep__{}"
|
|
|
84
84
|
if { [sc_cfg_tool_task_exists prescript] } {
|
|
85
85
|
foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
|
|
86
86
|
puts "Sourcing pre script: ${sc_pre_script}"
|
|
87
|
-
source
|
|
87
|
+
source $sc_pre_script
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
utl::pop_metrics_stage
|
|
@@ -102,7 +102,7 @@ if { [llength $openroad_dont_touch] > 0 } {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
if { $sc_task == "screenshot" } {
|
|
105
|
-
source
|
|
105
|
+
source "$sc_refdir/common/screenshot.tcl"
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
if { [lindex [sc_cfg_tool_task_get {var} show_exit] 0] == "true" } {
|
|
@@ -32,7 +32,7 @@ def setup(chip):
|
|
|
32
32
|
|
|
33
33
|
chip.set('tool', tool, 'exe', 'sta')
|
|
34
34
|
chip.set('tool', tool, 'vswitch', '-version')
|
|
35
|
-
chip.set('tool', tool, 'version', '>=v2.
|
|
35
|
+
chip.set('tool', tool, 'version', '>=v2.6.2', clobber=False)
|
|
36
36
|
chip.set('tool', tool, 'format', 'tcl')
|
|
37
37
|
|
|
38
38
|
targetlibs = get_libraries(chip, 'logic')
|
|
@@ -44,3 +44,19 @@ proc sc_display_report { report } {
|
|
|
44
44
|
close $fid
|
|
45
45
|
puts $report_content
|
|
46
46
|
}
|
|
47
|
+
|
|
48
|
+
proc sc_path_group { args } {
|
|
49
|
+
sta::parse_key_args "sc_path_group" args \
|
|
50
|
+
keys {-name -to -from} \
|
|
51
|
+
flags {}
|
|
52
|
+
|
|
53
|
+
sta::check_argc_eq0 "sc_path_group" $args
|
|
54
|
+
|
|
55
|
+
if { [llength $keys(-from)] == 0 } {
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
if { [llength $keys(-to)] == 0 } {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
group_path -name $keys(-name) -from $keys(-from) -to $keys(-to)
|
|
62
|
+
}
|