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
|
@@ -103,6 +103,8 @@ def add_require_input(chip, *key, include_library_files=True):
|
|
|
103
103
|
",".join(key),
|
|
104
104
|
step=step, index=index)
|
|
105
105
|
|
|
106
|
+
return bool(keys)
|
|
107
|
+
|
|
106
108
|
|
|
107
109
|
def get_input_files(chip, *key, add_library_files=True):
|
|
108
110
|
'''
|
|
@@ -463,16 +465,12 @@ def record_metric(chip, step, index, metric, value, source, source_unit=None):
|
|
|
463
465
|
Records the metric cell area under 'floorplan0' and notes the source as
|
|
464
466
|
'reports/metrics.json'
|
|
465
467
|
'''
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
if metric_unit:
|
|
473
|
-
value = units.convert(value, from_unit=source_unit, to_unit=metric_unit)
|
|
474
|
-
|
|
475
|
-
chip.set('metric', metric, value, step=step, index=index)
|
|
468
|
+
chip.get("metric", field="schema").record(
|
|
469
|
+
step, index,
|
|
470
|
+
metric,
|
|
471
|
+
value,
|
|
472
|
+
unit=source_unit
|
|
473
|
+
)
|
|
476
474
|
|
|
477
475
|
if source:
|
|
478
476
|
flow = chip.get('option', 'flow')
|
|
@@ -70,24 +70,24 @@ def runtime_options(chip):
|
|
|
70
70
|
opts = get_frontend_options(chip, ['idir', 'ydir', 'define'])
|
|
71
71
|
|
|
72
72
|
cmdlist.append('-verilog')
|
|
73
|
-
cmdlist.
|
|
74
|
-
cmdlist.
|
|
75
|
-
cmdlist.
|
|
73
|
+
cmdlist.extend(['-vdir', VLOG_DIR])
|
|
74
|
+
cmdlist.extend(['-bdir', BSC_DIR])
|
|
75
|
+
cmdlist.extend(['-info-dir', 'reports'])
|
|
76
76
|
cmdlist.append('-u')
|
|
77
77
|
cmdlist.append('-v')
|
|
78
78
|
|
|
79
79
|
cmdlist.append('-show-module-use')
|
|
80
80
|
cmdlist.append('-sched-dot')
|
|
81
81
|
|
|
82
|
-
cmdlist.
|
|
82
|
+
cmdlist.extend(['-g', chip.top(step, index)])
|
|
83
83
|
|
|
84
84
|
bsc_path = ':'.join(opts['ydir'] + ['%/Libraries'])
|
|
85
|
-
cmdlist.
|
|
85
|
+
cmdlist.extend(['-p', bsc_path])
|
|
86
86
|
|
|
87
87
|
for value in opts['idir']:
|
|
88
|
-
cmdlist.
|
|
88
|
+
cmdlist.extend(['-I', value])
|
|
89
89
|
for value in opts['define']:
|
|
90
|
-
cmdlist.
|
|
90
|
+
cmdlist.extend(['-D', value])
|
|
91
91
|
|
|
92
92
|
sources = get_input_files(chip, 'input', 'hll', 'bsv', add_library_files=False)
|
|
93
93
|
if len(sources) != 1:
|
|
@@ -3,7 +3,7 @@ from siliconcompiler import NodeStatus, SiliconCompilerError
|
|
|
3
3
|
from siliconcompiler import utils
|
|
4
4
|
import shutil
|
|
5
5
|
from siliconcompiler.tools._common import get_tool_task
|
|
6
|
-
from siliconcompiler.flowgraph import _get_pruned_node_inputs
|
|
6
|
+
from siliconcompiler.utils.flowgraph import _get_pruned_node_inputs
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
###########################################################################
|
|
@@ -3,7 +3,7 @@ import os
|
|
|
3
3
|
from siliconcompiler import sc_open, SiliconCompilerError
|
|
4
4
|
from siliconcompiler import utils
|
|
5
5
|
from siliconcompiler.tools._common import input_provides, input_file_node_name, get_tool_task
|
|
6
|
-
from siliconcompiler import flowgraph
|
|
6
|
+
from siliconcompiler.utils import flowgraph
|
|
7
7
|
from siliconcompiler import scheduler
|
|
8
8
|
|
|
9
9
|
|
|
@@ -12,7 +12,7 @@ def make_docs(chip):
|
|
|
12
12
|
_make_docs(chip)
|
|
13
13
|
chip.set('option', 'flow', 'asicflow')
|
|
14
14
|
|
|
15
|
-
for step, index in
|
|
15
|
+
for step, index in chip.schema.get("flowgraph", "asicflow", field="schema").get_entry_nodes():
|
|
16
16
|
scheduler._setup_node(chip, step, index)
|
|
17
17
|
|
|
18
18
|
chip.set('arg', 'step', 'import.combine')
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from siliconcompiler.tools.builtin import _common
|
|
2
2
|
import re
|
|
3
3
|
from siliconcompiler.tools.builtin.builtin import set_io_files
|
|
4
|
-
from siliconcompiler import
|
|
4
|
+
from siliconcompiler import SiliconCompilerError
|
|
5
|
+
from siliconcompiler.utils import flowgraph
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
def setup(chip):
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
from siliconcompiler.tools.builtin import _common
|
|
2
|
-
from siliconcompiler.schema import
|
|
2
|
+
from siliconcompiler.schema.parametertype import NodeType
|
|
3
3
|
from siliconcompiler.scheduler import _haltstep
|
|
4
4
|
from siliconcompiler.tools.builtin.builtin import set_io_files
|
|
5
|
-
from siliconcompiler import utils,
|
|
5
|
+
from siliconcompiler import utils, SiliconCompilerError
|
|
6
6
|
|
|
7
7
|
import re
|
|
8
8
|
|
|
9
|
+
from siliconcompiler.utils import flowgraph
|
|
10
|
+
|
|
9
11
|
|
|
10
12
|
def setup(chip):
|
|
11
13
|
'''
|
|
@@ -52,8 +54,8 @@ def _select_inputs(chip, step, index):
|
|
|
52
54
|
raise SiliconCompilerError(
|
|
53
55
|
f"Missing metric for {metric} in {inputs[0]}{inputs[1]}", chip=chip)
|
|
54
56
|
|
|
55
|
-
metric_type = chip.get('metric', metric, field=
|
|
56
|
-
goal =
|
|
57
|
+
metric_type = chip.get('metric', metric, field=None)
|
|
58
|
+
goal = NodeType.normalize(goal, metric_type.get(field='type'))
|
|
57
59
|
if not utils.safecompare(chip, value, op, goal):
|
|
58
60
|
chip.error(f"{step}{index} fails '{metric}' metric: {value}{op}{goal}")
|
|
59
61
|
|
|
@@ -120,15 +120,15 @@ def runtime_options(chip):
|
|
|
120
120
|
step=step, index=index))
|
|
121
121
|
runMain.append("--")
|
|
122
122
|
|
|
123
|
-
runMain.
|
|
123
|
+
runMain.extend(["--target-dir", "chisel-output"])
|
|
124
124
|
else:
|
|
125
125
|
# Use built in driver
|
|
126
126
|
runMain.append("SCDriver")
|
|
127
|
-
runMain.
|
|
127
|
+
runMain.extend(["--module", chip.top(step=step, index=index)])
|
|
128
128
|
|
|
129
|
-
runMain.
|
|
129
|
+
runMain.extend(["--output-file", f"../outputs/{design}.v"])
|
|
130
130
|
|
|
131
|
-
return [
|
|
131
|
+
return [" ".join(runMain)]
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
def post_process(chip):
|
|
@@ -41,9 +41,9 @@ def runtime_options(chip):
|
|
|
41
41
|
blif = f"inputs/{design}.blif"
|
|
42
42
|
options.append(blif)
|
|
43
43
|
|
|
44
|
-
options.
|
|
45
|
-
options.
|
|
46
|
-
options.
|
|
44
|
+
options.extend(['--net_file', f'inputs/{design}.net'])
|
|
45
|
+
options.extend(['--place_file', f'inputs/{design}.place'])
|
|
46
|
+
options.extend(['--route_file', f'inputs/{design}.route'])
|
|
47
47
|
|
|
48
48
|
return options
|
|
49
49
|
|
|
@@ -25,7 +25,7 @@ def setup(chip):
|
|
|
25
25
|
|
|
26
26
|
chip.set('tool', tool, 'task', task, 'threads', utils.get_cores(chip),
|
|
27
27
|
step=step, index=index, clobber=clobber)
|
|
28
|
-
chip.set('tool', tool, 'task', task, 'option',
|
|
28
|
+
chip.set('tool', tool, 'task', task, 'option', [],
|
|
29
29
|
step=step, index=index, clobber=clobber)
|
|
30
30
|
chip.set('tool', tool, 'task', task, 'stdout', 'destination', 'output',
|
|
31
31
|
step=step, index=index)
|
|
@@ -68,19 +68,19 @@ def runtime_options(chip):
|
|
|
68
68
|
|
|
69
69
|
# source files
|
|
70
70
|
for value in opts['ydir']:
|
|
71
|
-
cmdlist.
|
|
71
|
+
cmdlist.extend(['-y', value])
|
|
72
72
|
for value in opts['vlib']:
|
|
73
|
-
cmdlist.
|
|
73
|
+
cmdlist.extend(['-v', value])
|
|
74
74
|
for value in opts['idir']:
|
|
75
75
|
cmdlist.append('-I' + value)
|
|
76
76
|
for value in opts['define']:
|
|
77
77
|
cmdlist.append('-D' + value)
|
|
78
78
|
|
|
79
79
|
# add siliconcompiler specific defines
|
|
80
|
-
cmdlist.append(f"-DSILICONCOMPILER_TRACE_FILE
|
|
80
|
+
cmdlist.append(f"-DSILICONCOMPILER_TRACE_FILE=\"reports/{design}.vcd\"")
|
|
81
81
|
|
|
82
82
|
for value in get_input_files(chip, 'input', 'cmdfile', 'f'):
|
|
83
|
-
cmdlist.
|
|
83
|
+
cmdlist.extend(['-f', value])
|
|
84
84
|
for value in get_input_files(chip, 'input', 'rtl', 'netlist'):
|
|
85
85
|
cmdlist.append(value)
|
|
86
86
|
for value in get_input_files(chip, 'input', 'rtl', 'verilog'):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from siliconcompiler.tools._common import get_tool_task
|
|
2
|
+
from siliconcompiler.tools.icepack.icepack import runtime_options as tool_runtime_options
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
def setup(chip):
|
|
@@ -15,6 +16,10 @@ def setup(chip):
|
|
|
15
16
|
|
|
16
17
|
chip.set('tool', tool, 'exe', tool)
|
|
17
18
|
|
|
18
|
-
chip.set('tool', tool, 'task', task, 'option',
|
|
19
|
+
chip.set('tool', tool, 'task', task, 'option', [], step=step, index=index, clobber=clobber)
|
|
19
20
|
chip.set('tool', tool, 'task', task, 'input', f'{design}.asc', step=step, index=index)
|
|
20
21
|
chip.set('tool', tool, 'task', task, 'output', f'{design}.bit', step=step, index=index)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def runtime_options(chip):
|
|
25
|
+
return tool_runtime_options(chip)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from siliconcompiler.tools._common import input_provides, input_file_node_name, get_tool_task
|
|
2
2
|
|
|
3
3
|
from siliconcompiler.tools.klayout.klayout import setup as setup_tool
|
|
4
|
+
from siliconcompiler.tools.klayout.klayout import runtime_options as tool_runtime_options
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
def make_docs(chip):
|
|
@@ -58,3 +59,7 @@ def setup(chip):
|
|
|
58
59
|
|
|
59
60
|
chip.set('tool', tool, 'task', task, 'output', f'{design}.json',
|
|
60
61
|
step=step, index=index)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def runtime_options(chip):
|
|
65
|
+
return tool_runtime_options(chip)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import pya
|
|
2
|
-
import importlib.util as importlib_util
|
|
3
2
|
import json
|
|
4
3
|
import os
|
|
5
4
|
import shutil
|
|
@@ -172,15 +171,9 @@ def get_write_options(filename, timestamps):
|
|
|
172
171
|
|
|
173
172
|
|
|
174
173
|
def get_schema(manifest):
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
spec = importlib_util.spec_from_file_location(module_name, schema_base)
|
|
179
|
-
module = importlib_util.module_from_spec(spec)
|
|
180
|
-
sys.modules[module_name] = module
|
|
181
|
-
spec.loader.exec_module(module)
|
|
182
|
-
# Return schema
|
|
183
|
-
return module.Schema(manifest=manifest)
|
|
174
|
+
sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
175
|
+
from schema.safeschema import SafeSchema
|
|
176
|
+
return SafeSchema.from_manifest(filepath=manifest)
|
|
184
177
|
|
|
185
178
|
|
|
186
179
|
def generate_metrics():
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from siliconcompiler.tools._common import get_tool_task
|
|
2
|
+
from siliconcompiler.tools.nextpnr.nextpnr import runtime_options as tool_runtime_options
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
def setup(chip):
|
|
@@ -18,7 +19,11 @@ def setup(chip):
|
|
|
18
19
|
chip.set('tool', tool, 'vswitch', '--version')
|
|
19
20
|
chip.set('tool', tool, 'version', '>=0.2', clobber=clobber)
|
|
20
21
|
|
|
21
|
-
chip.set('tool', tool, 'task', task, 'option',
|
|
22
|
+
chip.set('tool', tool, 'task', task, 'option', [], step=step, index=index, clobber=clobber)
|
|
22
23
|
chip.set('tool', tool, 'task', task, 'input', f'{topmodule}.netlist.json',
|
|
23
24
|
step=step, index=index)
|
|
24
25
|
chip.set('tool', tool, 'task', task, 'output', f'{topmodule}.asc', step=step, index=index)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def runtime_options(chip):
|
|
29
|
+
return tool_runtime_options(chip)
|
|
@@ -33,14 +33,14 @@ def runtime_options(chip):
|
|
|
33
33
|
|
|
34
34
|
options = []
|
|
35
35
|
|
|
36
|
-
options.
|
|
37
|
-
options.
|
|
36
|
+
options.extend(['--json', 'inputs/' + topmodule + '.netlist.json'])
|
|
37
|
+
options.extend(['--asc', 'outputs/' + topmodule + '.asc'])
|
|
38
38
|
|
|
39
39
|
if partname == 'ice40up5k-sg48':
|
|
40
|
-
options.
|
|
40
|
+
options.extend(['--up5k', '--package', 'sg48'])
|
|
41
41
|
|
|
42
42
|
for constraint_file in chip.find_files('input', 'constraint', 'pcf', step=step, index=index):
|
|
43
|
-
options.
|
|
43
|
+
options.extend(['--pcf', constraint_file])
|
|
44
44
|
|
|
45
45
|
return options
|
|
46
46
|
|
|
@@ -500,6 +500,10 @@ def define_ppl_params(chip):
|
|
|
500
500
|
['pdk', pdkname, 'var', 'openroad', 'pin_layer_vertical', stackup]):
|
|
501
501
|
chip.add('tool', tool, 'task', task, 'require', ",".join(key),
|
|
502
502
|
step=step, index=index)
|
|
503
|
+
if chip.get('tool', tool, 'task', task, 'file', 'ppl_constraints', step=step, index=index):
|
|
504
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
505
|
+
",".join(['tool', tool, 'task', task, 'file', 'ppl_constraints']),
|
|
506
|
+
step=step, index=index)
|
|
503
507
|
|
|
504
508
|
|
|
505
509
|
def define_pdn_params(chip):
|
|
@@ -797,6 +801,14 @@ def define_sta_params(chip):
|
|
|
797
801
|
set_tool_task_var(chip, param_key='sta_top_n_paths',
|
|
798
802
|
default_value='10',
|
|
799
803
|
schelp='number of paths to report timing for')
|
|
804
|
+
set_tool_task_var(chip, param_key='sta_define_path_groups',
|
|
805
|
+
default_value=True,
|
|
806
|
+
skip=['pdk', 'lib'],
|
|
807
|
+
schelp='true/false, if true will generate path groups for timing reporting')
|
|
808
|
+
set_tool_task_var(chip, param_key='sta_unique_path_groups_per_clock',
|
|
809
|
+
default_value=False,
|
|
810
|
+
skip=['pdk', 'lib'],
|
|
811
|
+
schelp='true/false, if true will generate separate path groups per clock')
|
|
800
812
|
|
|
801
813
|
chip.set('tool', tool, 'task', task, 'var', 'power_corner', get_power_corner(chip),
|
|
802
814
|
step=step, index=index, clobber=False)
|
|
@@ -1040,6 +1052,8 @@ def set_pnr_inputs(chip):
|
|
|
1040
1052
|
|
|
1041
1053
|
design = chip.top()
|
|
1042
1054
|
|
|
1055
|
+
# clear
|
|
1056
|
+
chip.set('tool', tool, 'task', task, 'input', [], step=step, index=index)
|
|
1043
1057
|
if f'{design}.sdc' in input_provides(chip, step, index):
|
|
1044
1058
|
chip.add('tool', tool, 'task', task, 'input', design + '.sdc',
|
|
1045
1059
|
step=step, index=index)
|
|
@@ -1067,6 +1081,9 @@ def set_pnr_outputs(chip):
|
|
|
1067
1081
|
|
|
1068
1082
|
design = chip.top()
|
|
1069
1083
|
|
|
1084
|
+
# clear
|
|
1085
|
+
chip.set('tool', tool, 'task', task, 'output', [], step=step, index=index)
|
|
1086
|
+
|
|
1070
1087
|
chip.add('tool', tool, 'task', task, 'output', design + '.sdc', step=step, index=index)
|
|
1071
1088
|
chip.add('tool', tool, 'task', task, 'output', design + '.vg', step=step, index=index)
|
|
1072
1089
|
chip.add('tool', tool, 'task', task, 'output', design + '.def', step=step, index=index)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from siliconcompiler import NodeStatus
|
|
2
|
-
|
|
3
1
|
from siliconcompiler.tools._common import get_tool_task, has_pre_post_script
|
|
4
2
|
from siliconcompiler.tools._common.asic import get_mainlib
|
|
5
3
|
|
|
@@ -55,24 +53,26 @@ def setup(chip):
|
|
|
55
53
|
'clock_trees'
|
|
56
54
|
])
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
step = chip.get('arg', 'step')
|
|
61
|
-
index = chip.get('arg', 'index')
|
|
62
|
-
tool, task = get_tool_task(chip, step, index)
|
|
63
|
-
if not has_pre_post_script(chip) and \
|
|
64
|
-
chip.get('tool', tool, 'task', task, 'var', 'fin_add_fill',
|
|
65
|
-
step=step, index=index) == ["true"]:
|
|
56
|
+
if chip.get('tool', tool, 'task', task, 'var', 'fin_add_fill',
|
|
57
|
+
step=step, index=index) == ["true"]:
|
|
66
58
|
pdk = chip.get('option', 'pdk')
|
|
67
59
|
stackup = chip.get('option', 'stackup')
|
|
68
60
|
mainlib = get_mainlib(chip)
|
|
69
61
|
libtype = chip.get('library', mainlib, 'asic', 'libarch', step=step, index=index)
|
|
62
|
+
if chip.get('pdk', pdk, 'aprtech', tool, stackup, libtype, 'fill'):
|
|
63
|
+
chip.add('tool', tool, 'task', task, 'require',
|
|
64
|
+
",".join(['pdk', pdk, 'aprtech', tool, stackup, libtype, 'fill']),
|
|
65
|
+
step=step, index=index)
|
|
66
|
+
else:
|
|
67
|
+
if not has_pre_post_script(chip):
|
|
68
|
+
# nothing to do so we can skip
|
|
69
|
+
return "no fill script is available"
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
chip.logger.warning(f'{step}{index} will be skipped since there is nothing to do.')
|
|
74
|
-
return
|
|
71
|
+
chip.set('tool', tool, 'task', task, 'var', 'fin_add_fill', False,
|
|
72
|
+
step=step, index=index)
|
|
75
73
|
|
|
74
|
+
|
|
75
|
+
def pre_process(chip):
|
|
76
76
|
define_ord_files(chip)
|
|
77
77
|
build_pex_corners(chip)
|
|
78
78
|
|
|
@@ -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
|
|
@@ -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 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"
|
|
@@ -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
|
# 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"
|
|
@@ -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
|
# 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"
|
|
@@ -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
|
# 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"
|
|
@@ -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
|
|
@@ -52,4 +52,4 @@ if {
|
|
|
52
52
|
# Task Postamble
|
|
53
53
|
###############################
|
|
54
54
|
|
|
55
|
-
source
|
|
55
|
+
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
|
# 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"
|