DCT 2009.06 SG
DCT 2009.06 SG
DCT 2009.06 SG
Design Compiler
Topographical/Graphical
Workshop
Student Guide
10-I-013-SSG-002 2009.06
www.synopsys.com
Copyright Notice and Proprietary Information
Copyright © 2009 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and
proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a
license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the
software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic,
mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by
the license agreement.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks (™)
AFGen, Apollo, Astro, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, Columbia,Columbia-CE, Cosmos, CosmosEnterprise,
CosmosLE, CosmosScope, CosmosSE, DC Expert, DC Professional, DC Ultra, Design Analyzer, Design Vision,
DesignerHDL, Direct Silicon Access, Discovery, Encore, Galaxy, HANEX, HDL Compiler, Hercules, Hierarchical
Optimization Technology, HSIMplus, HSPICE-Link, iN-Tandem, i-Virtual Stepper, Jupiter, Jupiter-DP, JupiterXT,
JupiterXT-ASIC, Liberty, Libra-Passport,Library Compiler, Magellan, Mars, Mars-Rail, Milkyway, ModelSource, Module
Compiler, Planet, Planet-PL, Polaris, Power Compiler, Raphael, Raphael-NES,Saturn, Scirocco, Scirocco-i, Star-RCXT,
Star-SimXT, Taurus, TSUPREM-4, VCS Express, VCSi, VHDL Compiler, VirSim, and VMC are trademarks of Synopsys,
Inc.
SystemC is a trademark of the Open SystemC Initiative and is used under license. ARM and AMBA are registered
trademarks of ARM Limited. Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
All other product or company names may be trademarks of their respective owners.
2009.06
Name
Company
Job Responsibilities
EDA Experience
Main Goal(s) and Expectations for this Course
i -2
Restrooms Smoking
Meals Recycling
i -3
i -4
i -5
i -6
The
The Power
Power of Tcl
The PowerofofTcl
3 workshops Tcl
3 workshops
Design Compiler 1 atat333skill
workshops
levels
at 3skill
skilllevels
levels
PrimeTime 2: PrimeTime 2:
PrimeTime 1 Debugging & Constraining
Debugging Constraints
Custom Clocks
PrimeTime:
Signal Integrity
i -7
The entire Synopsys Customer Education Services course offering can be found at:
http://training.synopsys.com
Synopsys Customer Education Services offers workshops in two formats: The “classic”
workshops, delivered at one of our centers, and the virtual classes, that are offered conveniently
over the web. Both flavors are delivered live by expert Synopsys instructors.
In addition, a number of workshops are also offered as OnDemand playback training for FREE!
Visit the following link to view the available workshops:
http://solvnet.synopsys.com/training
(see under “Tool and Methodology Training”)
DAY
1
1 DC-T Physical Elements
3 Typical Flows
4 Handling Congestion
i -9
Definition of
Recommendation
Acronyms
i - 10
DAY
1
1 DC-T Physical Elements
3 Typical Flows
4 Handling Congestion
1- 2
Reduces iterations
Milkyway
1- 4
There is no DC-Topographical License.
Average 2.8%
%
# of Designs
1- 5
Average 5.8%
%
# of Designs
1- 6
1- 7
1- 9
Milkyway
Reference
Libraries
1- 10
Technology {
Describes metal layer name = "cb1314 "
technology for the physical cells dielectric = 3.73e-05
unitTimeName = "ns"
timePrecision = 1000
Number and name designations unitLengthName = "micron“
for each layer/via …
}
Dielectric constant for technology Layer "METAL" {
layerNumber = 14
Physical and electrical maskName
pitch
= "metal1"
= 0.41
characteristics of each layer/via defaultWidth = 0.16
minWidth = 0.16
Design rules for each layer/Via …
1- 12
# TECHNOLOGY=1314max
# CONDUCTOR cm4 { THICKNESS=0.90 WMIN=0.44 SMIN=0.46 RPSQ=0.060}
# CONDUCTOR cm3 { THICKNESS=0.35 WMIN=0.20 SMIN=0.21 RPSQ=0.081}
# CONDUCTOR cm2 { THICKNESS=0.35 WMIN=0.20 SMIN=0.21 RPSQ=0.081}
# CONDUCTOR cm { THICKNESS=0.26 WMIN=0.16 SMIN=0.18 RPSQ=0.109}
# CONDUCTOR poly { THICKNESS=0.18 WMIN=0.13 SMIN=0.20 RPSQ=10.965}
1- 13
1- 14
Macros such as
memory cells
Technology File
Refines net UDSM
TLUplus files RC calculation
Mapping File
Maps layer
Optional – from your floorplanner names
1- 16
link
extract_physical_constraints ${DESIGN_NAME}.def
1- 17
Extract_physical_constraints -- floorplan
Set_tlu_plus_files – tluplus, mapping
create_mw_lib – tech file, physical files
write_physical_constraints -output
${RESULTS_DIR}/${DESIGN_NAME}.mapped.physical_constraints.tcl
write_sdf ${RESULTS_DIR}/${DESIGN_NAME}.mapped.sdf
Why is write –format ddc
set write_sdc_output_lumped_net_capacitance false especially good for DC-T?
set write_sdc_output_net_resistance false
write_sdc -nosplit ${RESULTS_DIR}/${DESIGN_NAME}.mapped.sdc
exit
1- 18
dc_shell-topo> start_gui
1- 19
Logical
Hierarchy
1- 20
To display
objects
1- 21
1- 22
1- 23
1- 24
What is typed in the shell is echoed in the GUI, and vice versa
1- 25
1- 26
1- 27
Learning Objectives:
1- 28
DAY
1
1 DC-T Physical Elements
3 Typical Flows
4 Handling Congestion
After completing this unit and labs, you should be able to:
List the physical input files you need to provide
Describe how those files are read in
List the actions to be taken on the design
Configure and generate ‘seed scripts’ validated by
Synopsys
Modify those ‘seed scripts’ to a particular design
2- 2
Physical files
Physical Library
Associated files
– Technology file
– TLUplus file
– Mapping file
Optional: floorplan
You read all physical files into the database for
the chip you are designing: your Milkyway
Design Library.
2- 3
Three steps
Create it
Tech File
Create
Open it once
Check it Physical
Library
2- 4
Specify
TLUplus
Min
Max
TLUplus
set_tlu_plus_files -max_tluplus $TLUPLUS_MAX_FILE \ files
-min_tluplus $TLUPLUS_MIN_FILE \
-tech2itf_map $MAP_FILE
check_tlu_plus_files
Mapping
file
2- 5
Specify Floorplan
DC-T extracts data from it
extract_physical_constraints ${DESIGN_NAME}.def
Or
Specify physical constraints with Tcl
source physical_constraints_${DESIGN_NAME}.tcl
2- 6
Configure it
Or use the
default
2- 7
Choose the
appropriate
settings
2- 8
set DESIGN_REF_DATA_PATH "" ;# Absolute path prefix variable for library/design data.
# Use this variable to prefix the common absolute path to
# the common variables defined below.
# Absolute paths are mandatory for hierarchical RM flow.
##########################################################################################
# Library Setup Variables A list of
##########################################################################################
variables
# For the following variables, use a blank space to separate multiple entries # Example: set
TARGET_LIBRARY_FILES "lib1.db lib2.db lib3.db"
set ADDITIONAL_SEARCH_PATH "" ;# Additional search path to be added to the default search path
set MIN_LIBRARY_FILES "" ;# List of max min library pairs "max1 min1 max2 min2 max3
min3"...
set MW_REFERENCE_LIB_DIRS "" ;# Milkyway reference libraries (include IC Compiler ILMs here)
set MW_REFERENCE_CONTROL_FILE "" ;# Reference Control file to define the MW ref libs
if {[shell_is_in_topographical_mode]} {
open_mw_lib $mw_design_library
check_library
extract_physical_constraints ${DESIGN_NAME}.def
write_physical_constraints -output
${RESULTS_DIR}/${DESIGN_NAME}.mapped.physical_constraints.tcl
write_parasitics -output
${RESULTS_DIR}/${DESIGN_NAME}.mapped.spef
write_sdf ${RESULTS_DIR}/${DESIGN_NAME}.mapped.sdf
report_congestion >
${REPORTS_DIR}/${DESIGN_NAME}.mapped.congestion.rpt
exit
Consistency check
between logical and
check_tlu_plus_files physical libraries
2- 16
2- 17
30 minutes
Learning Objectives:
After completing this lab, you should be able to:
Run the RMgen utility
Adapt the seed scripts to your design
Run Design Compiler Topographical
Describe the benefits of using Reference
Methodology scripts
2- 18
DAY
1
1 DC-T Physical Elements
3 Typical Flows
4 Handling Congestion
3- 3
Handoff 3- 4
Often, not all of the metal layers in a given process are used
Tell DC-T to ignore the unused metal layers Ask the
set_ignored_layers physical team
-min_routing_layer ;# ignore all layers below this layer which layers
-max_routing_layer ;# ignore all layers above this layer are unused
Makes RC estimation and congestion analysis more realistic
dc_shell-topo> report_ignored_layers
Ignored layers in congestion analysis and RC estimation: METAL5 METAL6
Min_routing_layer: METAL
Max_routing_layer: METAL4
3- 5
Ignoring metal layers can also impact QoR and Correlation.
DC-T actions:
Extracts physical constraints from .def file
Applies to design
Saved when .ddc is written out
You can view constraints:
In the GUI layout window
With report_physical_constraints
Both report… and write…
You can write out to a .tcl file: display only what you
read in.
write_physical_constraints
3- 6
3- 7
3- 8
write_physical_constraints -output
${RSLT_DIR}/${name}.map.physical_constraints.tcl
write_parasitics -output
${RESULTS_DIR}/${DESIGN_NAME}.mapped.spef Performs virtual route
if compile_ultra
report_area -physical was done without the
report_congestion –congestion option
3- 9
3- 10
Put the complete set of ports into the RTL so that everything downstream is in agreement with it
GUI layout window, report_physical_congestion, write_physical_congestion
DFT Flow:
Include your test ports in your RTL code, if possible
Save run time at this
Low Power Flow: early stage of design
set_power_prediction false
Supply your standard Power Intent; enable power optimization: leakage and dynamic
3- 11
3- 12
List of DCT supported floorplan constraints
width width
height
height
3- 13
3- 14
(600,200)
(300,200)
set_placement_area \ set_rectilinear_outline \
-coordinate {0 0 600 0 600 200 \
-coordinate {0 0 600 400}
300 200 300 400 0 400}
3- 15
Port_N
Port_M
set_port_side –side {B} Port_M
3- 16
create_placement_blockage \
(300,280)
-name Blockage \
Blockage RAM
-bbox \
(50,160)
{50 160 300 280} (400,140)
PortA: (0, 40)
3- 17
3- 18
Core placement area is a possibility; so is cell location (for a key RAM or two). 2.
Aspect ratio, utilization, port side 1.
3- 19
A X
B Y
CLK
A X
B Y
CLK
link
Link loads ICC ILMs from the foreach ICC_ILM_NAME ${ICC_ILM_HIER_DESIGNS} {
Milkway library. dc_setup.tcl lappend link_library ${ICC_ILM_NAME}.ILM
}
set_physical_hierarchy [sub_instances_of -hierarchy -of_references
${DDC_HIER_DESIGNS} ${DESIGN_NAME}]
Tell DC-T:
extract_physical_constraints ${DESIGN_NAME}.top_level.def Do not optimize
Do propagate the timing
compile_ultra –scan –gate_clock
Handoff 3- 21
3- 22
Constraining
Automatic High Fanout Synthesis
Black boxes
3- 23
3- 24
Location of fanout
influences buffering
set_ahfs_options
-default
-optimize_buffer_trees
-hf_threshold [Integer] ( default: 100)
-mf_threshold [Integer] ( default: -1)
-remove_effort [none(default)|medium|high]
-enable_port_punching[true(default) | false]
-default_reference [ buffer_lib_name]
3- 26
By default, if buffers exist on HFNs, they will be removed only if the path is critical and new
AFHS trees will be built.
-remove_effort high removes all buffers/inverters from HF nets and builds new AHFS tree
3- 28
become available.
Black box is most important – you want to replace them with complete components when they 2.
None 1.
3- 29
30 minutes
3- 30
DAY
1
1 DC-T Physical Elements
3 Typical Flows
4 Handling Congestion
4- 2
Modify floorplan
Solution:
Resynthesize DC-Graphical
Recode RTL Can optimize netlist to handle congestion
4- 3
report_congestion_options -all
4- 5
dc_shell-topo> report_congestion
****************************************
Report : congestion
Design : ORCA_TOP
4- 6
4- 8
4- 9
4- 10
compile_ultra –congestion requires DC-G licensing.
4- 11
4- 13
4- 14
1 Click
2 Select
3 Apply
4- 16
Congested
Grid
MUX
Grid A
compile_ultra –congestion
Grid B
Grid A
Grid C
4- 17
Congestion Optimization capability primarily helps address scenarios where the design's RTL
logic structures result in congestion. This standard cell congestion is often caused by the topology
of the netlist. Minimizing the resulting congestion for such designs often require significant netlist
topology changes that can not be performed during place and route stage. For this design,
significant slicing of the muxes is needed to make big improvements in congestion and this is best
done early in the flow .i.e. during synthesis.
The Congestion-based Optimization in Design Compiler Graphical minimizes the impact of
congestion due to design RTL choice and constraints by performing congestion-aware logic-based
netlist optimizations during synthesis with minimal impact on other QoR aspects like timing and
area. Also, there is no need to change user constraints or restrict cell selection as this feature is
tuned to work with all available target library cells and identify the optimal structure and mapping
to generate a netlist topology with reduced congestion. The Design Compiler Graphical congestion
optimization feature is enabled by the -congestion option of synthesis command compile_ultra.
The congestion optimization capability is supported in conjunction with Test and Power flows.
For example
Lookup table logic (coded as case statements) can create highly connected sub graphs in the
netlist with its many-to-many mapping topology
Large MUX structures (many ways to select, large busses) cause many high-fanout nets
4- 18
30 minutes
4- 19
DAY
1
1 DC-T Physical Elements
3 Typical Flows
4 Handling Congestion
5- 2
5- 3
5- 4
Situation
Floorplan object names are based on post-compile netlist
Affected by
change_names
Compilation with automatic ungrouping
Floorplan is read into DC-T and applied to pre-compile RTL
Constraints on unrecognized objects are ignored
5- 5
Issue
Is floorplan the correct one?
Are there mistakes in the floorplan?
Solution
1. Load design and floorplan
2. View the floorplan prior to compiling: need
1. Linked design 2009.06
2. Physical constraints applied before opening layout view
3. Fix the floorplan if needed
5- 7
5- 8
5- 9
Found Found
Non Only Only
Variable Matched Matching in in
Group Values Values DCT_en ICC_en Total
------------------------------------------------------------------
HIERARCHY* 1 0 0 0 1
_Variable* 1 0 0 0 1
__err* 1 0 0 0 1
__mwui* 0 0 2 0 2
access* 0 1 0 0 1
alib* 1 0 0 0 1
allow* 1 0 0 0 1
annotation* 1 0 0 0 1
...
------------------------------------------------------------------
Total 396 9 328 430 1136
Text in blue is clickable for the HTML report; enabling to sort data,
expand table and get details on mismatches.
5- 10
Matched Values: matched count. How many variables are matched
Non Matching Values: variable with differences. How many variables mismatch
Found Only in DCT_en: variables found just in file 1. DCT_en are the first 6 characters of input
file 1.
Found Only in ICC_en: variables found just in file 2. ICC_en are the first 6 characters of input file
2.
./cc_html/ index.html have the same format as this text table, but titles are clickable to sort, ‘…’ is
clickable to expand and <var_name>* is clickable for more details (full variable name and also
details on the mismatch).
Found Found
Non Only Only
Matched Matching In In
Command Values Values DCT_en ICC_en Total
--------------------------------------------------------------------
create_clock 0 1 0 0 1
current_design 1 0 0 0 1
remove_wire_load_model 0 0 1 0 1
set_cell_parent_cluster 0 0 0 7 7
set_dont_touch 27 0 0 0 27
set_dont_use 27 0 0 0 27
set_tlu_plus_files 0 0 0 1 1
set_units 1 0 0 0 1
--------------------------------------------------------------------
Total 56 1 1 8 66
Text in blue is clickable for the HTML report; enabling to sort data
and get details on mismatches.
5- 11
Mateched Values: matched count. How many commands are matched
Non Matching Values: commands with differences. How many commands mismatch
Found Only in DCT_en: commands found just in file 1. DCT_en are the first 6 characters of input
file 1.
Found Only in ICC_en: commands found just in file 2. ICC_en are the first 6 characters of input
file 2.
./cc_html/ index.html have the same format as this text table, but titles are clickable to sort, ‘…’ is
clickable to expand and <command_name> is clickable for more details (list of mismatches).
– Mission
– Test
– Standby
– Etc
5- 12
Corner N
Corner N
Parasitics
(TLU+)
Design
Compiler Graphical
5- 13
set fuzzy_matching_enabled
Viewing a Floorplan prior to compile_ultra
Available in 2009.06; for earlier versions,
use Solvnet script
Correlation with ICC
Solvnet checklist
Automatic Consistency Checking
Solvnet script
Additional power with MCMM
5- 14
2. Empower Yourself:
solvnet.synopsys.com
Online technical information and
access to support resources
Documentation & Media
CS- 2
CS- 4
CS- 5
CS- 6
CS- 7