Documente Academic
Documente Profesional
Documente Cultură
RTL RTL
or or Functional
Gate Gate Checks v v2
1 ISO
A B
100% Independent vector-less Validation, generation & analysis Structural and functional LP checks
verification of implementation of constraints
LP design implementation
RTL Gate Transistor Shorter design cycles with Verification
improved timing constraints
CDC & Ext Checks LP Equivalence Checking
New Products
o
1
o
2
Automated RTL2GDS ECO solution Physical Correlation & Architectural & Economic Forecasting
Identifies and generates ECO fix Predictability with final Lower IC Cost & Expedite TTM
backend
Congestion Analysis & Opto
(Congestion Relief)
4 August 6, 2009 Cadence Confidential
I N VE N TI V E CONFIDENTIAL
Crash Course on
Equivalency Checking
Specify Constraints
and Design Modeling Setup Mode
Compare Designs
yes
Miscompare? Diagnose
no
Equivalence Checking
Complete
6 August 6, 2009 Cadence Confidential
Mapping! What is that?
Main window
Unmapped
points
Mapped
points
Compared
points
RTL Design
For Ease of Verification
RTL Design For Ease of Verification
BAD - q[A];
// (1) out-of-range condition
GOOD - q[(A > 4) ? 0: A)];
// (2) No out-of-range
• Structural Similarity
– How closely does RTL structure match the netlist
• Designs with higher structural similarity between RTL
and netlist are easier to verify
• Synthesis can restructure code. For examples:
– Resource sharing
– Map unsigned operators to signed operators
• Minimize structural differences between RTL and netlist
by:
– Using Verilog 2K to code signed arithmetics
– Using explicit grouping (such as in additions) with parenthesis
– Manually code resource sharing
Datapath Resource
Architecture Sharing
LE C
Boundary Phase
Optimization Inversion
• Synthesis tools like RC and DC can group several datapath operators into a
single datapath unit which called datapath module. These modules can be
synthetic or they can be instantiated components such as DW modules
• For Design Compiler, these modules are reported in the resource report
with string DP_OP as naming convention
LEC
DC Final
RTL
RTL DC Script Gate
Script
Original Flow
DC + MDP Final
RTL
RTL DC Script Gate
Script
New Flow
EC Intermediate
LEC
L Gate
• RC verification flow
– Only one intermediate netlist between RTL code and the final
netlist
– Two LEC comparisons: RTL-to-Intermediate & Intermediate-to-
Final
– Better support of advanced (datapath) optimizations
– LEC-friendly netlist by 'write_hdl –lec’
• additional datapath info (as comments) about architecture changes
•Synthesize with no
write_hdl -lec Final ungrouping
New Flow RTL Gate
•Output Intermediate &
Final Netlist
•Perform RTL2Gate
LEC Intermediate
Gate
LEC
•Perform Gate2Gate
read_hdl
elaborate First netlist generated
read_sdc with “-lec” option
synthesize -to_mapped
write_hdl -lec > intermediate.v
write_do_lec -revised intermediate.v > rtl2map.do
Do not ungroup before
[ungroup in any way] first netlist
<no more datapath architecture change>
Abort Resolution
Resolving Aborts
• Hierarchical Comparison
– Check that hierarchical comparison is used
– For module containing abort, check that it has no submodules
that can be further hierarchically compared
• For datapath intensive design
– Check that MDP has been used (Analyze datapath –module)
– Check that datapath analysis are successful
• Abort Analysis
– Check that LEC’s abort analysis has been used (analyze abort)
• Multithreading
– Check that multithreading is used for abort analysis
• Parallel Comparison
LEC> compare –threads #
• Best for large gate-to-gate comparisons, where the comparison can
be distributed to multiple comparison threads
*Obsoletes the previous method of parallel comparisons using the command Run Parallel Compare
Radix-8
Unsigned Divider
High Effort
Analysis
ECO Automation
Synthesis
Back-end ECO
Test Insertion
P&R
P&R Delete/add connections
Map to spare gates
Which logic
cones are affected?
New RTL Old Netlist
EC Old DEF ECO Route/DRV/SI
(R2) (G1) OR
Difficult to
identify
How can I get Create
where to fix!
Manual the smallest ECO
Editing Final Netlist
possible Cmd
(New DEF)
change?
What type/many
EC New Netlist spare cells are
Front-end ECO
Complete Capability
– Only flow that provides RTL2GDS ECO flow
Old Gate/DEF New RTL w/ ECO Predictable Closure
– Single-pass integrated flow ensures functionality
and timing requirements are met
Encounter ECO – Power domain awareness allows ECO for low
power designs that use multiple power domains
Front-end Functional Fast time-to-market
ECO – Automated flow with minimal manual
intervention
Back-end Physical
ECO implementation – Post-mask ECO flow helps manufacturing to
start while providing ECO flexibility at a late
stage
Reduced Cost
– Improved designer productivity
GDSII
– Flexibility to do ECO with frozen metal layers
reduces manufacturing cost
Back-end ECO
Test Insertion
SOCE
P&R
Pre-mask ECO
ECO placement & routing
Post-mask ECO
New Netlist Old Netlist DEF GA/SG mapping & eco
(G2) (G1) (G1) routing
• Reduces Costs
– Improves designer productivity
– Offers flexibility to do ECO with metal-only layers thus reducing manufacturing
cost
netlist (G2)
– Should be equivalent
• Compare old netlist (G1) to new
netlist (G2) Conformal
ECO
– Identify non-equivalent modules
– Identify non-equivalent logic cones
Non-Equiv
to prepare for patch generation Report
o1
o2
Conformal ECO
o3 o1
o2’
o3
O1
ECO
O3 • Compare Designs
• Extract ECO
New Synthesis Netlist (G2) • Generate minimal patch
55 August 6, 2009 Cadence Confidential
Analyze ECO
ANAlyze Eco
<patch_filename>
[-REPlace]
[-EFFort <HIGH | LOW | MEDIUM | SUPER | ULTRA>]
[-PRESERVE_clock]
(LEC Mode)
// Command: compare
================================================================
Compared points PO DFF Total
--------------------------------------------------------------------------------
Equivalent 38 100 138
--------------------------------------------------------------------------------
Non-equivalent 0 2 2
================================================================
// Warning: There are extra POs in Golden
// Command: analyze eco patch.v -rep
// Grouping
// Note: 1 group(s) added
// Note: 0 library cell(s) is in the patch
// Note: 17 primitive(s) are in the patch
DESCRIPTION
Writes out an RTL Compiler script (cfm_eco_rc.tcl) in the working directory
that will optimize the patches and execute the script.
RTL-GDS
RTL Metal
• Three online
tutorials
– EC Jumpstart
– Debug Techniques
– Custom EC
• Each 2 hour
tutorial includes:
– slides with audio
– videos
– quizzes
• User-driven
• Post questions,
tips, answers
• CoreComp group
has been posting
a ‘tip of the
month’
– Easy to sign up
for automated
notification
• Complete
– All required design files are included
– All synthesis log and report files are included
– Hard coded paths are removed/recoded
– Validate environmental settings (e.g., TCL, or env)
• Small
– Isolate to the problem module or region
– Remove any files that are not needed for the testcase
– A clean dofile to execute the testcase
• Validate
– Double check with the latest production release and include the
log file results
Debugging Tips
Debugging Nonequivalent Key Points (NEQ)
Main
window
Mapping
Manager
Unmapped
Points
Mapped
Points
Compared
Points
• To display only
nonequivalent
results:
• 1. Choose Class
—Disable All
• 2. Choose Class
— Non-
Equivalent
• To display the
Diagnosis Manager:
1. Click left to select a
nonequivalent point
(red-filled circle).
2. Click right and
select Diagnose.
•
Compared Point
Corresponding Support
Noncorresponding Support
Noncorresponding,
and not mapped (red)
M Noncorresponding but
mapped (yellow with M)
Error Candidates
83 August 6, 2009 Cadence Confidential
Diagnosis Manager (continued)
– Color-coded support
points
– Cross-highlighting of
support key point
and error pattern
1 1 seq1
A 1 0 0 D
0 Q
seq0 DFF
D Q 1
REVISED Q CP
DFF
Path to Error Candidate
CP (highlighted)
1 1 0
Noncorresponding B
support points
Error Candidate
85 August 6, 2009 Cadence Confidential
Schematic Viewer
Diagnosis Manager
Double-click any gate to
display the Source
Code Manager.
Golden Revised
Example
LEC> analyze noneq -verbose
Analyzing nonequivalent compared points:
(G) +5 DFF /u2
(R) +5 DFF /u2
The clock of DFF in Golden is not gated.
The clock of DFF in Revised is gated.
CK CK
D
DFF
EN
MUX DFF
D DFF
EN
Golden Revised
92 August 6, 2009 Cadence Confidential
Debugging with Analyze Nonequivalent (continued)
• Example of Sequential Constants
• Design constraints on a data port can cause a
sequential constant.
LEC> analyze noneq 170 –revised
// Command: analyze noneq 170 –revised
Analyzing non-equivalent compared points:
(G) + 167 PO /wbm_sel_o[0] Problem
(R) + 170 PO /wbm_sel_o[0]
Following constraints may be necessary:
Constant 1: (g) 1026 DFF /wbm/sel_o_reg[0]
Analysis of non-equivalent compared points: Solution:
Sequential constant. (Occurrence: 1) LEC> remodel -seq_constant
SETUP> set flatten model -seq_constant
Unknown reason. (Occurrence: 1)
1’b1 1’b1
PO PO
DFF
CLK
in1 in1
Golden Revised
93 August 6, 2009 Cadence Confidential
Analyze Setup
• ANAlyze DAtapath
• [-MODULE [-RESOURCEFILE <filename>]]
• [-MERGE | -NOMERGE]
• [-NOSHARE | -SHARE]
• [-EFFort <MEDium | HIgh>]
• [-NOADDERTREE | -ADDERTREE]
• [-Verbose]
• Performs arithmetic analysis automatically. Defined in Setup mode
• The analyze abort command analyzes the abort points and recommends
actions to help solve them. This command also provides useful information
for further investigation in case the abort point cannot be diagnosed. This
command must be used in the LEC mode.
• Syntax
ANAlyze Abort [-All | <<gate_id | instance_pathname |
pin_pathname> [-Golden | -Revised]> | -Number
<number>] [-Summary | -Verbose | -Compare –Threads ]
[-CLass <Abort | Notcompared>]
• The following commands run abort analysis after the initial comparison and
resolve the aborts:
compare
analyze abort –compare –threads 4
– Design recommendations
• Redefine definitions for multipliers such as DW02_mult.
• Recode RTL to remove don’t cares.
• Use general constraint encoding.
• Use higher effort of the analyze datapath command.
• Use analyze datapath -share for resource sharing.
• Use add partition point.
• Use key point partitioning.
• Use analyze abort -compare to resolve aborts.