Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contents
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Simple PLE Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attributes Affecting the PLE Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading the LEF Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loading the Capacitance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reviewing Consistency Between the LEF and Capacitance Table File . . . . . . . . . . .
Checking the Physical Layout Estimation Information . . . . . . . . . . . . . . . . . . . . . . . .
Setting the Appropriate Synthesis Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading the Floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting Files for Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Script for Simple PLE Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
15
16
16
18
19
19
21
22
25
27
28
3
Spatial Flow
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attributes Affecting the Spatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting up the Spatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading the LEF Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loading the Capacitance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reviewing Consistency Between the LEF and Capacitance Table File . . . . . . . . . . .
August 2011
30
31
32
32
33
34
35
36
36
38
41
42
44
45
4
RC-P Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attributes Affecting the RC-P Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting up the RC-P Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reading the LEF Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loading the Capacitance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reviewing Consistency Between the LEF and Capacitance Table File . . . . . . . . . . .
Setting the Appropriate Synthesis Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loading the Encounter Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking the Physical Layout Estimation Information . . . . . . . . . . . . . . . . . . . . . . . .
Reading the Floorplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synthesizing, Estimating, and Optimizing for Silicon . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting Files for Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Script for RC-P Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
50
52
52
53
55
56
56
57
57
59
62
63
65
66
A
Terminology
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
August 2011
73
1
Introduction
August 2011
August 2011
August 2011
DEF
Floorplan
File
Synthesis
Libraries
Encounter
Configuration
File
RTL
Files
Constraint
File
RTL Compiler
LEF
Libraries
SDC
Constraints
Capacitance
Table File
Gate-Level
Netlist
Files
DEF
File
Encounter
Database
Files added
for physical
Optional file
The following file is required for the three physical-related flows.
LEF The LEF libraries are the physical libraries that contain information such as layer,
via, placement site type, routing design rules, process information, and standard cell and
macro cell definitions.
The following file is optional but recommended for the three physical-related flows.
August 2011
DEF DEF files are ASCII files that contain information that represent the design at any
point during the layout process. In RTL Compiler, the DEF is primarily used for floorplan
information.
The following file is optional and can be only used in the RC-Physical flow:
August 2011
(rc/>)
root
designs
dex
messages
design_name
object_types
ENC
operating_conditions
PLC
dft
wireload_models
wireload_selections
instances_comb
libcells
instances_hier
physical_cells
instances_seq
nets
operating_conditions
physical
blockages
port_busses_in
gcells
port_busses_out
hdl_libraries
library_name
PHYS
constants
libraries
wireload_models
wireload_selections
libcells
groups
layers
ports_in
pcells
ports_out
pdomains
subdesigns
timing
regions
rows
tracks
August 2011
10
The designs directory can have several subdirectories each representing a design in
memory.
The hdl_libraries directory contain information about the ChipWare and third party
libraries, and about the Verilog modules and/or VHDL architectures and entities that
were read using the read_hdl command.
The messages directory contains all information for all messages that can be displayed
during an RTL Compiler session. Physical-related messages are stored in the ENC,
PHYS, and PLC subdirectories.
The object_types directory lists all attributes for all database objects (designs,
subdesigns, pins, and so on) in the design hierarchy.
As shown in Figure 1-2 on page 10, each design also has several objects. The physical
engine uses and updates physical-specific attributes on the following object types:
Root
Design
Pin
Note: These attributes apply to objects in the pins_in and pins_out directories
subdirectories of objects in the instances_comb, instances_hier, and
instances_seq directories.
Net
Port
Subdesign
Instance
Note: These attributes apply to objects in the instances_comb, instances_hier,
and instances_seq directories.
August 2011
11
blockages contain information about the blockages defined in the DEF file.
gcells contain information about the global routing cells (gcells). Gcells are derived
from the GCELLGRID statements in the DEF file.
groups contain information about the groups defined in the DEF file.
layers contain information about the metal layers defined in the LEF or capacitance
table file.
pcells contain information about the physical cells (pcells) instantiated in the
COMPONENTS section of the DEF file. Pcells are not instantiated in the netlist.
pdomains contain physical information about the power domains defined in the DEF file.
rows contain information about the rows defined in the DEF file.
tracks contain track (or routing grid) information for each layer. The information is
based on the TRACKS statements in the DEF file.
August 2011
12
2
Simple PLE Flow
Overview on page 14
Tasks on page 16
Reviewing Consistency Between the LEF and Capacitance Table File on page 19
August 2011
13
Overview
The simple PLE flow does not differ much from the generic flow except that you will be using
LEF files and capacitance tables to drive synthesis. Any steps that overlap with the generic
flow will not be covered in this chapter. Refer to Using Encounter RTL Compiler for more
information on the generic flow.
Figure 2-1 Simple PLE Flow
Start
Target
libraries
LEF
libraries
Capacitance
file
HDL
files
Modify source
DEF
file
Read floorplan
SDC
constraints
Apply constraints
Synthesize
Task added for
Physical
Optional task
August 2011
Analyze
Export design
14
No
Meet
constraints?
Yes
Object
Type
Default
aspect_ratio
design
float
1.0
cap_table_file
root
string
interconnect_mode
root
string
lef_library
root
string
lef_stop_on_error
root
boolean
false
lib_lef_consistency_check_enable
root
boolean
true
number_of_routing_layers
design
integer
shrink_factor
root
float
use_area_from_lef
root
boolean
utilization
layer
float
August 2011
15
wireload
true
Tasks
The tasks below list only those that are different from the generic flow or illustrate a new step.
Reviewing Consistency Between the LEF and Capacitance Table File on page 19
You only read in the technology LEF file (containing only the metal routing layer
information without the standard cell/macro definitions).
For best results, always use all available LEF files (standard cell, macro and technology LEF).
To import LEF files, use the lef_library attribute. Specify all LEF files, the technology
library and the cell libraries. It is a good practice to specify the technology LEF file first.
The following example imports a technology and cell library LEF files.
rc:/> set_attribute lef_library {tech.lef cell.lef}
August 2011
16
RTL Compiler will check whether the following definitions are in the LEF file:
CAPACITANCE CPERSQ
EDGECAPACITANCE
RESISTANCE RPERSQ
SITE
WIDTH
If any of these definitions are missing, RTL Compiler will issue a warning message.
If there is at least one MACRO definition in the LEF file, RTL Compiler checks if all the cells in
the timing library have a corresponding definition in the LEF library. Any cells that are defined
in the timing library but not in the LEF will be marked as avoid (they will not be used during
synthesis) and a warning message will be issued. To turn off this consistency checking, set
the lib_lef_consistency_check_enable attribute to false:
rc:/> set_attribute lib_lef_consistency_check_enable false /
The resistance and capacitance information can be found in the capacitance table file.
RTL Compiler supports LEF 5.3 and above. Refer to the LEF/DEF Language Reference
for more information on LEF files.
Troubleshooting Tips
Only one LEF file seems to be imported
Check if the lef_library attribute was set more than once or was part of a loop.
In the following example, the existing LEF file is replaced because it specifies the files
separately with two set_attribute commands as opposed to a Tcl list with one
set_attribute command.
rc:/> set_attribute lef_library tech.lef
rc:/> set_attribute lef_library cell.lef
August 2011
17
It is recommended to specify both LEF and capacitance table files. However, you can specify
the LEF files only, if the capacitance table files are not available.
Scaling factors are used to align a design with a particular process. A capacitance table is
process specific where as a scaling factor is design specific. The scaling factors are provided
to be consistent with Encounter. Only use a scaling factor if it will also be used in the backend.
RTL Compiler will check if the following definitions are in the capacitance table file:
PROCESS_VARIATION
BASIC_CAP_TABLE
width
Cc
Carea
Cfrg
If any of these definitions are missing, RTL Compiler will issue a warning message. It will
purposely disregard the EXTENDED_CAP_TABLE section because the PLE is intended to
synchronize with a view of the design where fast extractors are typically used.
Tip
For best results, the corner for the capacitance table file used should match the
corner for the timing library. That is typically max or worst.
August 2011
18
Number of Layers RTL Compiler will check to determine if the number of layers
defined in the LEF and the capacitance table files are equal.
If the LEF has more layers than the capacitance table, then an error message will be
issued and you will need to manually check both of the files to resolve the inconsistency.
If the capacitance table has more layers than the LEF, a warning message will be issue
and the number of routing layers will be set to the number specified in the capacitance
table.
Width of Layers RTL Compiler will check to determine if the width of the layers
defined in the LEF and the capacitance table files are equal. A warning will only be issued
if the width difference defined in the two files is greater than 10%.
RTL Compiler reports the inconsistencies in the log file. You should review the log file. For
example, check for messages PHYS 24 through 27.
To report the physical layout estimation information for the design, once all physical data
has been read in, use the following command:
report ple
As shown in Figure 2-2 on page 20, this command reports information like aspect ratio, shrink
factor, site size, layer names, direction of layers, capacitance, resistance, and area. It also
shows the source that it used to extract the physical information.
The report header contains an Interconnect mode line which indicates that you are
running in PLE mode. In this case, the value is set to global because you run the report before
the design is synthesized.
August 2011
19
:
:
:
:
:
:
1.00
1.00
1.00
1.00
1.00
5.70 um (from lef [tech+cell])
Capacitance
Layer
/ Length
Name
Direction Utilization (pF/micron)
-----------------------------------------------M1
H
1.00
0.000274
M2
V
1.00
0.000242
M3
H
1.00
0.000242
M4
V
1.00
0.000242
M5
H
1.00
0.000242
M6
V
1.00
0.000304
Resistance
Layer
/ Length
Name
Direction Utilization (ohm/micron)
------------------------------------------------Metal1
H
1.00
0.439130
Metal2
V
1.00
0.360714
Metal3
H
1.00
0.360714
Metal4
V
1.00
0.360714
Metal5
H
1.00
0.360714
Metal6
V
1.00
0.102273
Area
Layer
/ Length
Name
Direction Utilization
(micron)
------------------------------------------------Metal1
H
1.00
0.230000
Metal2
V
1.00
0.280000
Metal3
H
1.00
0.280000
Metal4
V
1.00
0.280000
Metal5
H
1.00
0.280000
Metal6
V
1.00
0.440000
Data source:
cap_table_file
Data source:
lef_library
Data source:
lef_library
rc:/>
August 2011
20
In ple mode, you use Physical Layout Estimation (PLE) to drive synthesis. PLE is the
process of using physical information, such as LEF libraries, to provide better closure
with back-end tools
When you read in LEF libraries, the interconnect_mode attribute is automatically set to
ple.
Note: If you want to use wireload mode, you must manually set the interconnect_mode
attribute to wireload after loading the LEF libraries.
For this flow, do not change the setting.
August 2011
21
The die or block bounding box determines the placement area and therefore influences
the net length.
Pin and macro locations influence the standard cell placement and thus the net length.
RTL Compiler supports DEF 5.3 and above. Refer to the LEF/DEF Language Reference
for more information on DEF files.
RTL Compiler will perform a consistency check between the DEF and the Verilog netlist and
issue relevant messages if necessary. For example:
Parsing DEF file...
Warning : A DEF component does not exist in the netlist. [PHYS-171]
: The component IOPADS_INST/Pcornerll does not exist.
: This message has a default max print count of 25, which can be
changed by setting the max_print attribute.
Warning : A DEF component does not exist in the netlist. [PHYS-171]
: The component IOPADS_INST/Pcornerlr does not exist.
...
Done parsing DEF file.
The DEF file must define the die size. For better synthesis results, you should also have the
pin, macro locations, and standard cell placement specified in the DEF, although it is not
required.
Figure 2-3 on page 23 shows an example of DEF statistics printed after the DEF file has been
processed.
August 2011
22
Explanation
Tip
Cover
A component that has a location and is a part of A large number of cover cells can indicate that
a cover macro. A COVER component cannot be the DEF file is not a floorplan but instead
moved.
could be the DEF for a fully placed design.
Fixed
A component that has a location and that cannot All components in a floorplan DEF should be
be moved by automatic tools.
set as fixed to avoid unwanted movement
during placement
Physical
A component that is instantiated in the DEF but A large number of physical components can
not in the netlist.
indicate that the DEF is not a floorplan DEF.
Placed
A component that has a location and that cannot These components are not expected in a
be moved by automatic tools.
floorplan.
Unplaced
August 2011
23
Explanation
Tip
Cover
Fixed
Placed
Unplaced
August 2011
24
The Interconnect mode in the report header is still set to global because in the simple
PLE flow the design is synthesized without placement information.
The report shows the total count of cells mapped against the hierarchical blocks, the
combined cell area in each of the blocks and the top level design. The Cell Area numbers
are based on the information in the LEF libraries. The Net Area refers to the estimated postroute net area and is based on the minimum wire widths defined in the LEF and capacitance
table files and the area of the design blocks.
August 2011
25
To get an overall report containing slack information, instance count, area information,
cell power, runtime, and host name information, use the report qor command.
rc:/> report qor
============================================================
Generated by:
Encounter(R) RTL Compiler version
...
Interconnect mode:
global
Area mode:
physical library
============================================================
Timing
-------Clock Period
-------------vclk01 5000.0
vclk02 6000.0
vclk1 5000.0
vclk2 5000.0
Cost
Critical
Violating
Group
Path Slack
TNS
Paths
-------------------------------------default
No paths
0
vclk01
No paths
0
vclk02
No paths
0
vclk1
-543.9
-615
2
vclk2
2021.0
0
0
-------------------------------------Total
-615
2
Instance Count
-------------Leaf Instance Count
Sequential Instance Count
Combinational Instance Count
Hierarchical Instance Count
4983
546
4437
26
1292895.607
1218171.484
39.53%
4527.609 nW
151413275.127 nW
151417802.736 nW
Max Fanout
Min Fanout
Average Fanout
Terms to net ratio
Terms to instance ratio
Runtime
Hostname
540 (scan_enI)
0 (n_3)
2.5
3.5
3.9
202.34 seconds
rcae005
Since you performed physical synthesis and started with a floorplan, the report also contains
the floorplan utilization in %.
August 2011
26
Netlist (.v)
Timing derate file (.derate.tcl) generated when RTL Compiler changed the default
timing derate values
August 2011
27
August 2011
28
3
Spatial Flow
Overview on page 30
Tasks on page 32
Reviewing Consistency Between the LEF and Capacitance Table File on page 35
August 2011
29
Overview
In addition to using technology information and cell areas from the LEF libraries, and parasitic
resistance and capacitance values from the LEF libraries or capacitance tables, the RC-Spatial
flow uses a rapid placement to better estimate long wires in your design. This improves the
accuracy of the core synthesis optimization engine during RTL-to-gate synthesis.
This flow is useful for blocks or chips with simple floorplans.
Figure 3-1 Spatial Flow
Start
Target
libraries
LEF
libraries
Capacitance
file
HDL
files
Modify source
DEF
file
Read floorplan
SDC
constraints
Apply constraints
August 2011
Export design
30
No
Meet
constraints?
Yes
Object
Type
Default
aspect_ratio
design
float
1.0
cap_table_file
root
string
encounter_executable
root
init_core_utilization
design
float
interconnect_mode
root
string
lef_library
root
string
lef_stop_on_error
root
boolean
false
lib_lef_consistency_check_enable
root
boolean
true
number_of_routing_layers
design
integer
pqos_ignore_msv
root
boolean
false
pqos_ignore_scan_chains
root
boolean
false
qos_report_power
root
boolean
false
scale_of_cap_per_unit_length
root
float
1.0
scale_of_res_per_unit_length
root
float
1.0
shrink_factor
root
float
use_area_from_lef
root
boolean
utilization
layer
float
August 2011
31
wireload
true
Tasks
The tasks below list only those that are different from the generic flow or illustrate a new step.
Reviewing Consistency Between the LEF and Capacitance Table File on page 35
To specify the Encounter executable that you want to use for the
synthesize -spatial command, set the following root attribute:
set_attribute encounter_executable path_to_soc_executable /
If this attribute is not set, the following (default) search order is used:
1. ENCOUNTER environment variable
2. PATH environment variable
3. CDS_SYNTH_ROOT environment variable
August 2011
32
You only read in the technology LEF file (containing only the metal routing layer
information without the standard cell/macro definitions).
For best results, always use all available LEF files (standard cell, macro and technology LEF).
To import LEF files, use the lef_library attribute. Specify all LEF files, the technology
library and the cell libraries. It is a good practice to specify the technology LEF file first.
The following example imports a technology and cell library LEF files.
rc:/> set_attribute lef_library {tech.lef cell.lef}
Use the get_attribute command to confirm the list of imported LEF files:
rc:/> get_attribute lef_library
tech.lef
cell.lef
RTL Compiler will check whether the following definitions are in the LEF file:
CAPACITANCE CPERSQ
EDGECAPACITANCE
RESISTANCE RPERSQ
SITE
WIDTH
If any of these definitions are missing, RTL Compiler will issue a warning message.
If there is at least one MACRO definition in the LEF file, RTL Compiler checks if all the cells in
the timing library have a corresponding definition in the LEF library. Any cells that are defined
in the timing library but not in the LEF will be marked as avoid (they will not be used during
August 2011
33
The resistance and capacitance information can be found in the capacitance table file.
RTL Compiler supports LEF 5.3 and above. Refer to the LEF/DEF Language Reference
for more information on LEF files.
Troubleshooting Tips
Only one LEF file seems to be imported
Check if the lef_library attribute was set more than once or was part of a loop.
In the following example, the existing LEF file is replaced because it specifies the files
separately with two set_attribute commands as opposed to a Tcl list with one
set_attribute command.
rc:/> set_attribute lef_library tech.lef
rc:/> set_attribute lef_library cell.lef
It is recommended to specify both LEF and capacitance table files. However, you can specify
the LEF files only, if the capacitance table files are not available.
Scaling factors are used to align a design with a particular process. A capacitance table is
process specific where as a scaling factor is design specific. The scaling factors are provided
to be consistent with Encounter. Only use a scaling factor if it will also be used in the backend.
August 2011
34
PROCESS_VARIATION
BASIC_CAP_TABLE
width
Cc
Carea
Cfrg
If any of these definitions are missing, RTL Compiler will issue a warning message. It will
purposely disregard the EXTENDED_CAP_TABLE section because the PLE is intended to
synchronize with a view of the design where fast extractors are typically used.
Tip
For best results, the corner for the capacitance table file used should match the
corner for the timing library. That is typically max or worst.
Number of Layers RTL Compiler will check to determine if the number of layers
defined in the LEF and the capacitance table files are equal.
If the LEF has more layers than the capacitance table, then an error message will be
issued and you will need to manually check both of the files to resolve the inconsistency.
If the capacitance table has more layers than the LEF, a warning message will be issue
and the number of routing layers will be set to the number specified in the capacitance
table.
Width of Layers RTL Compiler will check to determine if the width of the layers
defined in the LEF and the capacitance table files are equal. A warning will only be issued
if the width difference defined in the two files is greater than 10%.
RTL Compiler reports the inconsistencies in the log file. You should review the log file. For
example, check for messages PHYS 24 through 27.
August 2011
35
In ple mode, you use Physical Layout Estimation (PLE) to drive synthesis. PLE is the
process of using physical information, such as LEF libraries, to provide better closure
with back-end tools
When you read in LEF libraries, the interconnect_mode attribute is automatically set to
ple.
Note: If you want to use wireload mode, you must manually set the interconnect_mode
attribute to wireload after loading the LEF libraries.
For this flow, do not change the setting.
To report the physical layout estimation information for the design, once all physical data
has been read in, use the following command:
report ple
As shown in Figure 3-2 on page 37, this command reports information like aspect ratio, shrink
factor, site size, layer names, direction of layers, capacitance, resistance, and area. It also
shows the source that it used to extract the physical information.
The report header contains an Interconnect mode line which indicates that you are
running in PLE mode. In this case, the value is set to global because you run the report before
the design is synthesized.
August 2011
36
:
:
:
:
:
:
1.00
1.00
1.00
1.00
1.00
5.70 um (from lef [tech+cell])
Capacitance
Layer
/ Length
Name
Direction Utilization (pF/micron)
-----------------------------------------------M1
H
1.00
0.000274
M2
V
1.00
0.000242
M3
H
1.00
0.000242
M4
V
1.00
0.000242
M5
H
1.00
0.000242
M6
V
1.00
0.000304
Resistance
Layer
/ Length
Name
Direction Utilization (ohm/micron)
------------------------------------------------Metal1
H
1.00
0.439130
Metal2
V
1.00
0.360714
Metal3
H
1.00
0.360714
Metal4
V
1.00
0.360714
Metal5
H
1.00
0.360714
Metal6
V
1.00
0.102273
Area
Layer
/ Length
Name
Direction Utilization
(micron)
------------------------------------------------Metal1
H
1.00
0.230000
Metal2
V
1.00
0.280000
Metal3
H
1.00
0.280000
Metal4
V
1.00
0.280000
Metal5
H
1.00
0.280000
Metal6
V
1.00
0.440000
Data source:
cap_table_file
Data source:
lef_library
Data source:
lef_library
rc:/>
August 2011
37
The die or block bounding box determines the placement area and therefore influences
the net length.
Pin and macro locations influence the standard cell placement and thus the net length.
RTL Compiler supports DEF 5.3 and above. Refer to the LEF/DEF Language Reference
for more information on DEF files.
RTL Compiler will perform a consistency check between the DEF and the Verilog netlist and
issue relevant messages if necessary. For example:
Parsing DEF file...
Warning : A DEF component does not exist in the netlist. [PHYS-171]
: The component IOPADS_INST/Pcornerll does not exist.
: This message has a default max print count of 25, which can be
changed by setting the max_print attribute.
Warning : A DEF component does not exist in the netlist. [PHYS-171]
: The component IOPADS_INST/Pcornerlr does not exist.
...
Done parsing DEF file.
The DEF file must define the die size. For better synthesis results, you should also have the
pin, macro locations, and standard cell placement specified in the DEF, although it is not
required.
Figure 3-3 on page 39 shows an example of DEF statistics printed after the DEF file has been
processed.
August 2011
38
Explanation
Tip
Cover
A component that has a location and is a part of A large number of cover cells can indicate that
a cover macro. A COVER component cannot be the DEF file is not a floorplan but instead
moved.
could be the DEF for a fully placed design.
Fixed
A component that has a location and that cannot All components in a floorplan DEF should be
be moved by automatic tools.
set as fixed to avoid unwanted movement
during placement
Physical
A component that is instantiated in the DEF but A large number of physical components can
not in the netlist.
indicate that the DEF is not a floorplan DEF.
Placed
A component that has a location and that cannot These components are not expected in a
be moved by automatic tools.
floorplan.
Unplaced
August 2011
39
Explanation
Tip
Cover
Fixed
Placed
Unplaced
August 2011
40
To improve the modeling of the long wires and thus add more physical reality to the cost
functions used for optimization, use the following command:
sythesize -to_mapped -spatial
Important
You must have access to the Encounter place and route tool to run this command
option.
This command performs a fast coarse-grained placement to get a better estimate of the long
wires.
For a verification-friendly flow, you can break up the synthesis steps as follows:
synthesize -to_generic
synthesize -to_mapped -no_incremental
synthesize -to_mapped -incremental
synthesize -to_mapped -spatial
synthesize -to_mapped -spatial -incremental
August 2011
41
The Interconnect mode in the report header is now set to spatial because the design
was synthesized using fast placement information.
The report shows the total count of cells mapped against the hierarchical blocks, the
combined cell area in each of the blocks and the top level design. The Cell Area numbers
are based on the information in the LEF libraries. The Net Area refers to the estimated postroute net area and is based on the minimum wire widths defined in the LEF and capacitance
table files and the area of the design blocks.
August 2011
42
To get an overall report containing slack information, instance count, area information,
cell power, runtime, and host name information, use the report qor command.
rc:/> report qor
============================================================
Generated by:
Encounter(R) RTL Compiler version
...
Interconnect mode:
spatial
Area mode:
physical library
============================================================
Timing
-------Clock Period
-------------vclk01 5000.0
vclk02 6000.0
vclk1 5000.0
vclk2 5000.0
Cost
Critical
Violating
Group
Path Slack
TNS
Paths
-------------------------------------default
No paths
0
vclk01
No paths
0
vclk02
No paths
0
vclk1
-1731.7
-3672
19
vclk2
2273.9
0
0
--------------------------------------Total
-3672
19
Instance Count
-------------Leaf Instance Count
Sequential Instance Count
Combinational Instance Count
Hierarchical Instance Count
5720
546
5174
26
1343795.081
1220742.791
41.16%
4306.242 nW
154232405.582 nW
154236711.824 nW
Max Fanout
Min Fanout
Average Fanout
Terms to net ratio
Terms to instance ratio
Runtime
Hostname
540 (scan_enI)
0 (DTMF_INST/n_197)
2.6
3.6
4.0
77 seconds
rcae005
August 2011
43
Netlist (.v)
Timing derate file (.derate.tcl) generated when RTL Compiler changed the
default timing derate values
August 2011
44
August 2011
45
August 2011
46
4
RC-P Flow
Overview on page 48
Tasks on page 52
Reviewing Consistency Between the LEF and Capacitance Table File on page 56
August 2011
47
Overview
In addition to using technology information and cell areas from the LEF libraries, and parasitic
resistance and capacitance values from the LEF libraries or capacitance tables, the RC-P
flow uses a complete placement and considers congestion and legal placement as a cost
function during the RTL-to-gates phase, to create a better netlist. This flow ensures both the
best accuracy and the most predictable closure with back-end tools.
Specifically, the physical flow will:
Use physical process information along with areas and fanout to dynamically derive wire
length
Calculate load and delay using average resistance (in OHMs per micron) and
capacitance (in pF per micron) per unit length. The resistance and capacitance are
derived from the process technology information.
Alternatively, extracted resistance and capacitance parasitic information is used when
available.
Calculate wire area in microns using the average net width from the process technology
information
Use a Silicon Virtual Prototype to predict the physical effects on the quality of silicon
August 2011
48
LEF
libraries
Capacitance
file
HDL
files
Modify source
Perform incremental
optimization with
synthesize
-to_placed
-incremental
No
Meet
constraints?
Yes
Optional task
Export design
August 2011
49
Object
Type
Default
aspect_ratio
design
float
1.0
auto_super_thread
root
boolean
true
cap_table_file
root
string
congestion_avoid
libcell
boolean
false
congestion_effort
root
string
off
def_output_escape_multibit
root
boolean
true
def_output_version
root
string
5.7
enc_assign_buffer
root
string
none
enc_assign_removal
root
boolean
false
enc_force_place_incr
root
boolean
false
enc_gzip_interface_files
root
boolean
true
enc_in_place_opt
root
boolean
false
enc_launch_servers
root
string
enc_module_plan
root
boolean
true
enc_opt_drv
root
boolean
false
enc_pre_place_opt
root
boolean
false
enc_temp_dir
root
string
enc_timing_driven_place
root
boolean
enc_user_contsraint_file
root
string
enc_user_mode_file
root
string
encounter_executable
root
init_core_utilization
design
float
interconnect_mode
root
string
lef_library
root
string
lef_stop_on_error
root
boolean
August 2011
50
true
wireload
false
Attribute Name
Object
Type
Default
lib_lef_consistency_check_enable
root
boolean
true
number_of_routing_layers
design
integer
phys_fix_multi_height_cells
root
boolean
false
phys_ignore_special_nets
design
boolean
false
pqos_ignore_msv
root
boolean
false
pqos_ignore_scan_chains
root
boolean
false
pqos_placement_effort
root
string
no_value
qos_report_power
root
boolean
false
scale_of_cap_per_unit_length
root
float
1.0
scale_of_res_per_unit_length
root
float
1.0
shrink_factor
root
float
use_area_from_lef
root
boolean
utilization
layer
float
August 2011
51
true
Tasks
The tasks below list only those that are different from the generic synthesis flow or illustrate
a new step.
Reviewing Consistency Between the LEF and Capacitance Table File on page 56
To specify the Encounter executable that you want to use for the RC-P flow, set the
following root attribute:
set_attribute encounter_executable path_to_soc_executable /
If this attribute is not set, the following (default) search order is used:
1. ENCOUNTER environment variable
2. PATH environment variable
3. CDS_SYNTH_ROOT environment variable
August 2011
52
You only read in the technology LEF file (containing only the metal routing layer
information without the standard cell/macro definitions).
For best results, always use all available LEF files (standard cell, macro and technology LEF).
To import LEF files, use the lef_library attribute. Specify all LEF files, the technology
library and the cell libraries. It is a good practice to specify the technology LEF file first.
The following example imports a technology and cell library LEF files.
rc:/> set_attribute lef_library {tech.lef cell.lef}
Use the get_attribute command to confirm the list of imported LEF files:
rc:/> get_attribute lef_library
tech.lef
cell.lef
RTL Compiler will check whether the following definitions are in the LEF file:
CAPACITANCE CPERSQ
EDGECAPACITANCE
RESISTANCE RPERSQ
SITE
WIDTH
If any of these definitions are missing, RTL Compiler will issue a warning message.
If there is at least one MACRO definition in the LEF file, RTL Compiler checks if all the cells in
the timing library have a corresponding definition in the LEF library. Any cells that are defined
in the timing library but not in the LEF will be marked as avoid (they will not be used during
August 2011
53
RTL Compiler supports LEF 5.3 and above. Refer to the LEF/DEF Language Reference
for more information on LEF files.
Troubleshooting Tips
Only one LEF file seems to be imported
Check if the lef_library attribute was set more than once or was part of a loop.
In the following example, the existing LEF file is replaced because it specifies the files
separately with two set_attribute commands as opposed to a Tcl list with one
set_attribute command.
rc:/> set_attribute lef_library tech.lef
rc:/> set_attribute lef_library cell.lef
August 2011
54
It is recommended to specify both LEF and capacitance table files. However, you can specify
the LEF files only, if the capacitance table files are not available.
Scaling factors are used to align a design with a particular process. A capacitance table is
process specific where as a scaling factor is design specific. The scaling factors are provided
to be consistent with Encounter. Only use a scaling factor if it will also be used in the
back-end.
RTL Compiler will check if the following definitions are in the capacitance table file:
PROCESS_VARIATION
BASIC_CAP_TABLE
width
Cc
Carea
Cfrg
If any of these definitions are missing, RTL Compiler will issue a warning message. It will
purposely disregard the EXTENDED_CAP_TABLE section because the PLE is intended to
synchronize with a view of the design where fast extractors are typically used.
Tip
For best results, the corner for the capacitance table file used should match the
corner for the timing library. That is typically max or worst.
August 2011
55
Number of Layers RTL Compiler will check to determine if the number of layers
defined in the LEF and the capacitance table files are equal.
If the LEF has more layers than the capacitance table, then an error message will be
issued and you will need to manually check both of the files to resolve the inconsistency.
If the capacitance table has more layers than the LEF, a warning message will be issued
and the number of routing layers will be set to the number specified in the capacitance
table.
Width of Layers RTL Compiler will check to determine if the width of the layers
defined in the LEF and the capacitance table files are equal. A warning will only be issued
if the width difference defined in the two files is greater than 10%.
RTL Compiler reports the inconsistencies in the log file. You should review the log file. For
example, check for messages PHYS 24 through 27.
In ple mode, you use Physical Layout Estimation (PLE) to drive synthesis. PLE is the
process of using physical information, such as LEF libraries, to provide better closure
with back-end tools
When you read in LEF libraries, the interconnect_mode attribute is automatically set to
ple.
Note: If you want to use wireload mode, you must manually set the interconnect_mode
attribute to wireload after loading the LEF libraries.
Do not change the setting for the RC-P flow.
August 2011
56
Tip
If you load an Encounter configuration file, you do not need to load the timing library,
LEF library, capacitance table file, RTL or netlist, and constraints.
set_attribute library
set_attribute lef_library
set_attribute cap_table_file
read_hdl
set SDC
read_encounter config
To report the physical layout estimation information for the design, once all physical data
has been read in, use the following command:
report ple
As shown in Figure 4-2 on page 58, this command reports information like aspect ratio, shrink
factor, site size, layer names, direction of layers, capacitance, resistance, and area. It also
shows the source that it used to extract the physical information.
The report header contains an Interconnect mode line which indicates that you are
running in PLE mode. In this case, the value is set to global because you run the report before
the design is synthesized.
August 2011
57
:
:
:
:
:
:
1.00
1.00
1.00
1.00
1.00
5.70 um (from lef [tech+cell])
Capacitance
Layer
/ Length
Name
Direction Utilization (pF/micron)
-----------------------------------------------M1
H
1.00
0.000274
M2
V
1.00
0.000242
M3
H
1.00
0.000242
M4
V
1.00
0.000242
M5
H
1.00
0.000242
M6
V
1.00
0.000304
Resistance
Layer
/ Length
Name
Direction Utilization (ohm/micron)
------------------------------------------------Metal1
H
1.00
0.439130
Metal2
V
1.00
0.360714
Metal3
H
1.00
0.360714
Metal4
V
1.00
0.360714
Metal5
H
1.00
0.360714
Metal6
V
1.00
0.102273
Area
Layer
/ Length
Name
Direction Utilization
(micron)
------------------------------------------------Metal1
H
1.00
0.230000
Metal2
V
1.00
0.280000
Metal3
H
1.00
0.280000
Metal4
V
1.00
0.280000
Metal5
H
1.00
0.280000
Metal6
V
1.00
0.440000
Data source:
cap_table_file
Data source:
lef_library
Data source:
lef_library
rc:/>
August 2011
58
RTL Compiler supports DEF 5.3 and above. Refer to the LEF/DEF Language Reference
for more information on DEF files.
RTL Compiler will perform a consistency check between the DEF and the Verilog netlist and
issue relevant messages if necessary. For example:
Parsing DEF file...
Warning : A DEF component does not exist in the netlist. [PHYS-171]
: The component IOPADS_INST/Pcornerll does not exist.
: This message has a default max print count of 25, which can be
changed by setting the max_print attribute.
Warning : A DEF component does not exist in the netlist. [PHYS-171]
: The component IOPADS_INST/Pcornerlr does not exist.
...
Done parsing DEF file.
The DEF file must define the die size. For better synthesis results, you should also have the
pin, macro locations, and standard cell placement specified in the DEF, although it is not
required. After reading the DEF you can view the floorplan in the GUI.
Figure 4-3 on page 60 shows an example of DEF statistics printed after the DEF file has been
processed.
August 2011
59
Explanation
Tip
Cover
A component that has a location and is a part of A large number of cover cells can indicate that
a cover macro. A COVER component cannot be the DEF file is not a floorplan but instead
moved.
could be the DEF for a fully placed design.
Fixed
A component that has a location and that cannot All components in a floorplan DEF should be
be moved by automatic tools.
set as fixed to avoid unwanted movement
during placement
Physical
A component that is instantiated in the DEF but A large number of physical components can
not in the netlist.
indicate that the DEF is not a floorplan DEF.
Placed
A component that has a location and that cannot These components are not expected in a
be moved by automatic tools.
floorplan.
Unplaced
August 2011
60
Explanation
Tip
Cover
Fixed
Placed
Unplaced
August 2011
61
To synthesize the design while using the full power of Silicon Virtual Prototyping (SVP),
use the following command:
synthesize -to_placed
Placement
Trial route
Parasitic extraction
The detailed placement information and the resistance and capacitance parasitics are then
used for delay calculation and annotation of physical delays.
The synthesize -to_placed command will operate in incremental mode if the standard
cells are placed. Virtual buffering will be performed by default.
The synthesize -to_placed command will not work with encrypted netlists.Therefore,
decrypt your netlist before using this command.
Important
You will need an RC 400 license to execute the command and access to an
Encounter executable of version 8.1 or later. However, it is highly recommended that
you use the same versions of Encounter and RTL Compiler.
For a verification-friendly flow, you can break up the synthesis steps as follows:
synthesize -to_generic
synthesize -to_mapped -no_incremental
synthesize -to_mapped -incremental
synthesize -to_placed
synthesize -to_placed -incremental
See Attributes Affecting the RC-P Flow for a list of attributes that affect the result of the
synthesize -to_placed command.
August 2011
62
The Interconnect mode in the report header is now set to placement because the
design is synthesized using detailed placement information.
The report shows the total count of cells mapped against the hierarchical blocks, the
combined cell area in each of the blocks and the top level design. The Cell Area numbers
are based on the information in the LEF libraries. The Net Area refers to the estimated
post-route net area and is based on the minimum wire widths defined in the LEF and
capacitance table files and the area of the design blocks.
August 2011
63
To get an overall report containing slack information, instance count, area information,
cell power, runtime, and host name information, use the report qor command.
rc:/> report qor
============================================================
Generated by:
Encounter(R) RTL Compiler version
...
Interconnect mode:
placement
Area mode:
physical library
============================================================
Timing
-------Clock Period
-------------vclk01 5000.0
vclk02 6000.0
vclk1 5000.0
vclk2 5000.0
Cost
Critical
Violating
Group
Path Slack
TNS
Paths
--------------------------------------default
No paths
0
vclk01
No paths
0
vclk02
No paths
0
vclk1
-1683.1
-2853
17
vclk2
2340.8
0
0
--------------------------------------Total
-2853
17
Instance Count
-------------Leaf Instance Count
Sequential Instance Count
Combinational Instance Count
Hierarchical Instance Count
5699
546
5153
26
1340683.252
1220489.984
41.08%
4305.304 nW
157594103.325 nW
157598408.630 nW
Max Fanout
Min Fanout
Average Fanout
Terms to net ratio
Terms to instance ratio
Runtime
Hostname
540 (scan_enI)
0 (DTMF_INST/n_197)
2.6
3.6
4.0
79 seconds
rcae006
446549.55 um
71.84 um
H: 0.83% V: 1.85%
August 2011
64
Netlist (.v)
Timing derate file (.derate.tcl) generated when RTL Compiler changed the default
timing derate values
Note: The full DEF file that is generated is the exact same DEF file that was loaded or
generated by synthesize -to_placed. However, RTL Compiler generates the
information for the Scan DEF file (.scan.def). Although the scan chains will be re-ordered
in the back-end once the placement is determined, any scan reordering done in synthesis is
based on the current placement. This placement may not be carried forward. For example,
the placement will change if more optimization is done in RTL Compiler. There will always be
slight adjustments to the scan order, which are best accomplished in the back-end. The scan
DEF file is generated for continual convergence: getting closer to the final result with each
reordering.
Use the -basename option to specify both an output directory and a custom basename:
rc:/> write_design -encounter -basename output/final
August 2011
65
August 2011
66
A
Terminology
Abbreviations on page 68
Glossary on page 69
August 2011
67
Abbreviations
DEF
LEF
PLE
R/C
Resistance/Capacitance (parasitics)
RC-P
SDC
SPEF
SVP
WLM
August 2011
68
Glossary
Term
Origin
Definition
BLOCKAGES
DEF
CLASS
DEF
congestion
tool
density screen
FENCE
DEF
FILL
DEF
gcell
GCELLGRID
DEF
GROUPS
DEF
August 2011
69
GUIDE
DEF
HALO
DEF
MACRO
LEF
morphing
RC
OBS
LEF
PARTIAL (placement
blockage)
DEF
pcell
pdomain
tool
PIN
DEF
PITCH
LEF
porosity
tool
process shrink
PUSHDOWN
August 2011
REGION
DEF
Rho
capacitance
table
ROW
DEF
ShrinkFactor
capacitance
table
SOFT (placement
blockage)
DEF
SLOTS
DEF
SPACING
LEF
SPECIALNETS
DEF
steiner tree
TRACKS
DEF
utilization
tool
August 2011
71
August 2011
72
Index
A
attributes
def_file 24, 40, 61
C
capacitance table file, info used 18, 35, 55
cells
reporting cell count 25, 42
commands
read_def 22, 38, 59
read_encounter 57
synthesize -to_placed 62
write_encounter design 27, 44, 65
D
design information hierarchy 10
P
physical information
in design hierarchy
August 2011
10
73
August 2011
74