siliconcompiler 0.32.3__py3-none-any.whl → 0.33.1__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/_common.py +5 -0
- siliconcompiler/_metadata.py +1 -1
- siliconcompiler/apps/sc.py +2 -2
- siliconcompiler/apps/sc_install.py +10 -3
- siliconcompiler/apps/sc_issue.py +1 -1
- siliconcompiler/apps/sc_remote.py +10 -5
- 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 +299 -299
- siliconcompiler/flowgraph.py +803 -515
- siliconcompiler/fpga.py +84 -0
- siliconcompiler/metric.py +479 -0
- siliconcompiler/optimizer/vizier.py +2 -3
- siliconcompiler/package/__init__.py +29 -6
- siliconcompiler/pdk.py +415 -0
- siliconcompiler/record.py +453 -0
- siliconcompiler/remote/client.py +15 -5
- siliconcompiler/remote/schema.py +116 -112
- siliconcompiler/remote/server.py +9 -6
- siliconcompiler/report/dashboard/cli/__init__.py +14 -721
- siliconcompiler/report/dashboard/cli/board.py +899 -0
- siliconcompiler/report/dashboard/web/__init__.py +10 -10
- siliconcompiler/report/dashboard/web/components/__init__.py +5 -4
- siliconcompiler/report/dashboard/web/components/flowgraph.py +3 -3
- siliconcompiler/report/dashboard/web/components/graph.py +6 -3
- siliconcompiler/report/dashboard/web/state.py +1 -1
- siliconcompiler/report/dashboard/web/utils/__init__.py +4 -3
- siliconcompiler/report/html_report.py +2 -3
- siliconcompiler/report/report.py +22 -11
- siliconcompiler/report/summary_image.py +1 -1
- siliconcompiler/report/summary_table.py +3 -3
- siliconcompiler/report/utils.py +21 -14
- siliconcompiler/scheduler/__init__.py +234 -1206
- siliconcompiler/scheduler/run_node.py +2 -1
- siliconcompiler/scheduler/send_messages.py +11 -5
- siliconcompiler/scheduler/slurm.py +11 -44
- siliconcompiler/scheduler/taskscheduler.py +320 -0
- 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 +1416 -0
- siliconcompiler/tools/_common/__init__.py +6 -10
- siliconcompiler/tools/_common/asic.py +5 -5
- siliconcompiler/tools/_common/sdc/sc_constraints.sdc +1 -1
- siliconcompiler/tools/bluespec/convert.py +9 -8
- siliconcompiler/tools/builtin/_common.py +9 -2
- siliconcompiler/tools/builtin/concatenate.py +7 -3
- siliconcompiler/tools/builtin/minimum.py +7 -2
- siliconcompiler/tools/builtin/mux.py +8 -2
- siliconcompiler/tools/builtin/nop.py +7 -2
- siliconcompiler/tools/builtin/verify.py +11 -5
- siliconcompiler/tools/chisel/convert.py +10 -10
- 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/drc.py +2 -2
- siliconcompiler/tools/klayout/klayout_export.py +0 -1
- siliconcompiler/tools/klayout/klayout_show.py +6 -6
- siliconcompiler/tools/klayout/klayout_utils.py +15 -22
- siliconcompiler/tools/netgen/count_lvs.py +2 -2
- siliconcompiler/tools/netgen/lvs.py +1 -1
- siliconcompiler/tools/nextpnr/apr.py +6 -1
- siliconcompiler/tools/nextpnr/nextpnr.py +4 -4
- siliconcompiler/tools/openroad/_apr.py +15 -2
- 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 +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +3 -9
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +75 -1
- siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl +1 -7
- 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 +1 -1
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +3 -3
- siliconcompiler/tools/openroad/scripts/sc_show.tcl +6 -6
- siliconcompiler/tools/opensta/scripts/sc_timing.tcl +10 -0
- siliconcompiler/tools/opensta/timing.py +11 -0
- siliconcompiler/tools/slang/__init__.py +13 -13
- siliconcompiler/tools/slang/elaborate.py +6 -6
- siliconcompiler/tools/slang/lint.py +1 -3
- 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/_xml_constraint.py +8 -8
- 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/prepareLib.py +2 -2
- siliconcompiler/tools/yosys/sc_synth_asic.tcl +111 -63
- siliconcompiler/tools/yosys/screenshot.py +1 -1
- siliconcompiler/tools/yosys/syn_asic.py +7 -7
- siliconcompiler/toolscripts/_tools.json +12 -10
- siliconcompiler/toolscripts/rhel8/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-icarus.sh +10 -3
- siliconcompiler/toolscripts/rhel8/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/rhel8/install-magic.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-montage.sh +1 -1
- siliconcompiler/toolscripts/rhel8/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-slang.sh +11 -4
- siliconcompiler/toolscripts/rhel8/install-surelog.sh +9 -2
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/rhel8/install-verible.sh +11 -3
- siliconcompiler/toolscripts/rhel8/install-verilator.sh +10 -3
- siliconcompiler/toolscripts/rhel8/install-xyce.sh +15 -10
- siliconcompiler/toolscripts/rhel9/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-icarus.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/rhel9/install-magic.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-montage.sh +1 -1
- siliconcompiler/toolscripts/rhel9/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/rhel9/install-opensta.sh +17 -5
- siliconcompiler/toolscripts/rhel9/install-slang.sh +11 -4
- siliconcompiler/toolscripts/rhel9/install-surelog.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/rhel9/install-verible.sh +11 -3
- siliconcompiler/toolscripts/rhel9/install-verilator.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-vpr.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/rhel9/install-xyce.sh +15 -10
- siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +10 -3
- siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +10 -2
- siliconcompiler/toolscripts/rhel9/install-yosys.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +10 -2
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +10 -3
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-montage.sh +1 -1
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +16 -5
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +11 -4
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +10 -2
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +11 -3
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +13 -8
- siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +10 -3
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-montage.sh +1 -1
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +17 -5
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +11 -4
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +11 -3
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +9 -4
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +13 -8
- siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +10 -3
- siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +10 -2
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +12 -4
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +10 -3
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +8 -1
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-montage.sh +1 -1
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +16 -3
- siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +17 -5
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +11 -4
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +10 -2
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +11 -4
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +11 -3
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +9 -4
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +10 -2
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +13 -8
- siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +9 -2
- siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +10 -3
- siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +10 -2
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +9 -2
- siliconcompiler/utils/__init__.py +19 -112
- siliconcompiler/utils/flowgraph.py +244 -0
- siliconcompiler/{issue.py → utils/issue.py} +18 -25
- siliconcompiler/utils/logging.py +3 -4
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/METADATA +9 -8
- siliconcompiler-0.33.1.dist-info/RECORD +488 -0
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/WHEEL +1 -1
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/entry_points.txt +8 -8
- siliconcompiler/schema/schema_obj.py +0 -1936
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +0 -29
- siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +0 -61
- siliconcompiler-0.32.3.dist-info/RECORD +0 -470
- /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/replay.sh.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/{units.py → utils/units.py} +0 -0
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/licenses/LICENSE +0 -0
- {siliconcompiler-0.32.3.dist-info → siliconcompiler-0.33.1.dist-info}/top_level.txt +0 -0
|
@@ -31,11 +31,11 @@ def setup(chip):
|
|
|
31
31
|
chip.set('tool', tool, 'format', 'tcl')
|
|
32
32
|
|
|
33
33
|
# exit automatically in batch mode and not breakpoint
|
|
34
|
-
option = ''
|
|
34
|
+
option = ['-no_init']
|
|
35
35
|
if exit and not chip.get('option', 'breakpoint', step=step, index=index):
|
|
36
|
-
option
|
|
36
|
+
option.append("-exit")
|
|
37
37
|
|
|
38
|
-
option
|
|
38
|
+
option.extend(["-metrics", "reports/metrics.json"])
|
|
39
39
|
chip.set('tool', tool, 'task', task, 'option', option, step=step, index=index)
|
|
40
40
|
|
|
41
41
|
# Input/Output requirements for default asicflow steps
|
|
@@ -8,7 +8,7 @@ utl::push_metrics_stage "sc__poststep__{}"
|
|
|
8
8
|
if { [sc_cfg_tool_task_exists postscript] } {
|
|
9
9
|
foreach sc_post_script [sc_cfg_tool_task_get postscript] {
|
|
10
10
|
puts "Sourcing post script: ${sc_post_script}"
|
|
11
|
-
source
|
|
11
|
+
source $sc_post_script
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
utl::pop_metrics_stage
|
|
@@ -14,7 +14,7 @@ set sc_refdir [sc_cfg_tool_task_get refdir]
|
|
|
14
14
|
# Setup debugging
|
|
15
15
|
###############################
|
|
16
16
|
|
|
17
|
-
source
|
|
17
|
+
source "$sc_refdir/common/debugging.tcl"
|
|
18
18
|
|
|
19
19
|
###############################
|
|
20
20
|
# Setup helper functions
|
|
@@ -47,11 +47,11 @@ set_thread_count [sc_cfg_tool_task_get threads]
|
|
|
47
47
|
# Read Files
|
|
48
48
|
###############################
|
|
49
49
|
|
|
50
|
-
source
|
|
50
|
+
source "$sc_refdir/common/read_liberty.tcl"
|
|
51
51
|
|
|
52
|
-
source
|
|
52
|
+
source "$sc_refdir/common/read_input_files.tcl"
|
|
53
53
|
|
|
54
|
-
source
|
|
54
|
+
source "$sc_refdir/common/read_timing_constraints.tcl"
|
|
55
55
|
|
|
56
56
|
###############################
|
|
57
57
|
# Common Setup
|
|
@@ -81,7 +81,7 @@ utl::push_metrics_stage "sc__prestep__{}"
|
|
|
81
81
|
if { [sc_cfg_tool_task_exists prescript] } {
|
|
82
82
|
foreach sc_pre_script [sc_cfg_tool_task_get prescript] {
|
|
83
83
|
puts "Sourcing pre script: ${sc_pre_script}"
|
|
84
|
-
source
|
|
84
|
+
source $sc_pre_script
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
utl::pop_metrics_stage
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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 and Repair Antennas
|
|
@@ -48,4 +48,4 @@ estimate_parasitics -global_routing
|
|
|
48
48
|
# Task Postamble
|
|
49
49
|
###############################
|
|
50
50
|
|
|
51
|
-
source
|
|
51
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
# Clock tree synthesis
|
|
@@ -66,4 +66,4 @@ estimate_parasitics -placement
|
|
|
66
66
|
# Task Postamble
|
|
67
67
|
###############################
|
|
68
68
|
|
|
69
|
-
source
|
|
69
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
# DETAILED PLACEMENT
|
|
@@ -38,4 +38,4 @@ estimate_parasitics -placement
|
|
|
38
38
|
# Task Postamble
|
|
39
39
|
###############################
|
|
40
40
|
|
|
41
|
-
source
|
|
41
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
# Detailed Routing
|
|
@@ -78,4 +78,4 @@ estimate_parasitics -global_routing
|
|
|
78
78
|
# Task Postamble
|
|
79
79
|
###############################
|
|
80
80
|
|
|
81
|
-
source
|
|
81
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
|
@@ -52,4 +52,4 @@ if {
|
|
|
52
52
|
# Task Postamble
|
|
53
53
|
###############################
|
|
54
54
|
|
|
55
|
-
source
|
|
55
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
# Add fillers
|
|
@@ -24,4 +24,4 @@ estimate_parasitics -placement
|
|
|
24
24
|
# Task Postamble
|
|
25
25
|
###############################
|
|
26
26
|
|
|
27
|
-
source
|
|
27
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
|
@@ -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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
|
@@ -19,13 +19,7 @@ source -echo "$sc_refdir/apr/preamble.tcl"
|
|
|
19
19
|
# Setup Global Connections
|
|
20
20
|
###############################
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
foreach global_connect [sc_cfg_tool_task_get {file} global_connect] {
|
|
24
|
-
puts "Sourcing global connect configuration: ${global_connect}"
|
|
25
|
-
source $global_connect
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
tee -file reports/global_connections.rpt {report_global_connect}
|
|
22
|
+
sc_global_connections
|
|
29
23
|
|
|
30
24
|
###############################
|
|
31
25
|
# Initialize floorplan
|
|
@@ -331,4 +325,4 @@ if { [lindex [sc_cfg_tool_task_get var remove_dead_logic] 0] == "true" } {
|
|
|
331
325
|
# Task Postamble
|
|
332
326
|
###############################
|
|
333
327
|
|
|
334
|
-
source
|
|
328
|
+
source "$sc_refdir/apr/postamble.tcl"
|
|
@@ -9,14 +9,14 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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
|
|
@@ -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"
|
|
@@ -9,7 +9,7 @@ source ./sc_manifest.tcl
|
|
|
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"
|
|
@@ -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}
|
|
@@ -818,3 +874,21 @@ proc sc_report_args { args } {
|
|
|
818
874
|
|
|
819
875
|
puts "$keys(-command) siliconcompiler arguments: $keys(-args)"
|
|
820
876
|
}
|
|
877
|
+
|
|
878
|
+
proc sc_global_connections { args } {
|
|
879
|
+
sta::check_argc_eq0 "sc_global_connections" $args
|
|
880
|
+
|
|
881
|
+
if { [sc_cfg_tool_task_exists {file} global_connect] } {
|
|
882
|
+
set global_connect_files []
|
|
883
|
+
foreach global_connect [sc_cfg_tool_task_get {file} global_connect] {
|
|
884
|
+
if { [lsearch -exact $global_connect_files $global_connect] != -1 } {
|
|
885
|
+
continue
|
|
886
|
+
}
|
|
887
|
+
puts "Loading global connect configuration: ${global_connect}"
|
|
888
|
+
source $global_connect
|
|
889
|
+
|
|
890
|
+
lappend global_connect_files $global_connect
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
tee -file reports/global_connections.rpt {report_global_connect}
|
|
894
|
+
}
|
|
@@ -50,11 +50,5 @@ if { [sc_has_input_files odb "input layout odb"] } {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
# Handle global connect setup
|
|
53
|
-
|
|
54
|
-
foreach global_connect [sc_cfg_tool_task_get {file} global_connect] {
|
|
55
|
-
puts "Loading global connect configuration: ${global_connect}"
|
|
56
|
-
source $global_connect
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
tee -file reports/global_connections.rpt {report_global_connect}
|
|
53
|
+
sc_global_connections
|
|
60
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
|
|
@@ -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
|
|
@@ -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" } {
|
|
@@ -150,6 +150,16 @@ foreach corner $sc_scenarios {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
foreach corner $sc_scenarios {
|
|
154
|
+
set pex_corner [sc_cfg_get constraint timing $corner pexcorner]
|
|
155
|
+
|
|
156
|
+
set input_sdf_file "inputs/${sc_design}.${pex_corner}.sdf"
|
|
157
|
+
if { [file exists $input_sdf_file] } {
|
|
158
|
+
puts "Reading SDF ($corner): $input_sdf_file"
|
|
159
|
+
read_sdf -corner $corner $input_sdf_file
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
153
163
|
###############################
|
|
154
164
|
# Report Metrics
|
|
155
165
|
###############################
|