Professional Documents
Culture Documents
Conformal LEC: Logic Equivalence Checker
Conformal LEC: Logic Equivalence Checker
3 CADENCE CONFIDENTIAL
Overview of Verplex formal
verification tools
4 CADENCE CONFIDENTIAL
Formal verification
5 CADENCE CONFIDENTIAL
Functional Closure
Verplex enables you to obtain the Golden Verplex ensures that the functionality of the
RTL that meets the functional specifications final layout matches that of the Golden RTL
Functional
Specification Final
Layout
Logical
Structural
consistency
consistency RTL
RTL
RTL
Blocks
Blocks
Blocks Structural
Semantic Implementation
Verification consistency
consistency
Clock
Clock
Property synchronization
synchronization Checking
Golden
RTL
6 CADENCE CONFIDENTIAL
VERPLEX Conformal Solution Overview
Design Flow
Pre-Defined
Checks
(automatic)
Fail Debug
HDL Proof
design engine
Pass
Done
SPICE
Verilog ®
or CDL
12 CADENCE CONFIDENTIAL
LEC usage
Introduction to LEC
Getting familiar with LEC
LEC modes of operation
LEC flow
A typical session (flat compare)
Hierarchical compare
13 CADENCE CONFIDENTIAL
Getting familiar with LEC
Batch mode:
UNIX % lec -dofile <batch_file> -nogui
Exiting LEC
LEC> exit -force
LEC automatically closes all windows upon exit
15 CADENCE CONFIDENTIAL
GUI environment
Read lib Read design Mode
Read Design
window
LEC Design
hierarchy
window Golden Revised
Selected file area
Browser
16 CADENCE CONFIDENTIAL
Command: 3-2-1 convention
Most three-word commands can be abbreviated
Example:
SETUP> add pin constraint 0 scan_en
can be written as:
SETUP> add pi c 0 scan_en
17 CADENCE CONFIDENTIAL
Add/Delete/Report convention
18 CADENCE CONFIDENTIAL
Convenient features
19 CADENCE CONFIDENTIAL
Online help and documentation
20 CADENCE CONFIDENTIAL
LEC usage
Introduction to LEC
Getting familiar with LEC
LEC flow
Hierarchical compare
21 CADENCE CONFIDENTIAL
Modes of operation
SETUP mode
Saving LEC transcript to a log file
Specifying black boxes
Reading libraries and designs
Specifying design constraints
Specifying modeling directives
LEC mode
Mapping process
Resolving unmapped key points
Compare process
Debugging non-equivalent key points
Report run statistics
22 CADENCE CONFIDENTIAL
Switching modes of operation
GUI: click
23 CADENCE CONFIDENTIAL
LEC usage
Introduction to LEC
Getting familiar with LEC
LEC modes of operation
LEC flow
24 CADENCE CONFIDENTIAL
LEC flow
ASIC
ASIC
Golden Lib Revised Fix design
Setup Lib
mode
Specify constraints
& other parameters
No
All mapped ?
Yes
LEC Compare key points
mode
Yes
Differences ? Debug
No
Equivalence
established
25 CADENCE CONFIDENTIAL
LEC usage
Introduction to LEC
Getting familiar with LEC
LEC modes of operation
LEC flow
26 CADENCE CONFIDENTIAL
A typical session (flat compare)
27 CADENCE CONFIDENTIAL
Saving LEC transcript to a log file
Example 1:
set log
set log file
file logfile
logfile -replace
-replace
...
...
Example 2:
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION -replace
-replace
...
...
28 CADENCE CONFIDENTIAL
A typical session (flat compare)
29 CADENCE CONFIDENTIAL
Black box
Module types
RAM, ROM, analog, behavioral, or
any module you don’t want to verify
Allows wildcard(*) specification
Black box connections are verified
ALU CTRL
RAM
30 CADENCE CONFIDENTIAL
Specifying black boxes
Execute black boxing command before module is
read in
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION –replace
–replace
setenv LIB
setenv LIB /user1/lib/verilog/
/user1/lib/verilog/
add notranslate
add notranslate module
module *ram*
*ram* hstm
hstm -full
-full -both
-both
read library
read library $LIB/verilog/*.v
$LIB/verilog/*.v -verilog
-verilog –both
–both
...
...
31 CADENCE CONFIDENTIAL
Reporting black boxes
SETUP> report
SETUP> report black
black box
box
SYSTEM: (G
SYSTEM: (G R)
R) ram8x256
ram8x256
SYSTEM: (G
SYSTEM: (G R)
R) hstm
hstm
32 CADENCE CONFIDENTIAL
A typical session (flat compare)
33 CADENCE CONFIDENTIAL
Supported formats
Library
Verilog (standard simulation libraries)
Liberty™
Design (Synthesizable RTL, gate, transistor)
Verilog
VHDL
SPICE
34 CADENCE CONFIDENTIAL
Reading Verilog library & design:
Syntax
Read library:
read library <filename …>
[-verilog | -liberty]
[-replace | -append]
[-both | -golden | -revised]
Read design:
read design <filename …>
[-file <verilog_command_file>]
[-verilog | -verilog2k]
[-golden | -revised]
35 CADENCE CONFIDENTIAL
Reading Verilog library & design:
Method 1
Reading files via command line
Allows wildcard (*) specification
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION –replace
–replace
setenv LIB
setenv LIB /user1/lib/verilog/
/user1/lib/verilog/
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
read library
read library $LIB/*.v
$LIB/*.v -verilog
-verilog -revised
-revised
read design
read design cpu_gate.v
cpu_gate.v -verilog
-verilog -revised
-revised
...
...
36 CADENCE CONFIDENTIAL
Reading Verilog library & design:
Method 2
Reading files via Verilog command file
LEC reads only library cells being instantiated
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION –replace
–replace
setenv LIB
setenv LIB /user1/lib/verilog/
/user1/lib/verilog/
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog –golden
–golden
read design
read design -file
-file verilog.vc
verilog.vc -verilog
-verilog -revised
-revised
...
...
Content: Syntax:
-y-y$LIB
$LIB <File>...
<File>... DesignData
Design DataFile
File
cpu_gate.v
cpu_gate.v -v-v<File>...
<File>... ListofofLibrary
List LibraryFiles
Files
-y-y<Directory>...
<Directory>... LibraryDirectory(s)
Library Directory(s)
+incdir+<dir_name>...
+incdir+<dir_name>... Includesyntax:
General
Include Directories
Directories
+libext+<extension>...File
+libext+<extension>... FileExtension
Extensione.g e.g".v"
".v"
-yd<Directory>...
-yd <Directory>... DesignDirectory(s)
Design Directory(s)
37 CADENCE CONFIDENTIAL
Reading VHDL design: Syntax
38 CADENCE CONFIDENTIAL
Reading VHDL design: Example
Content of mb_lock.vhd:
LIBRARY MB_LIB;
LIBRARY MB_LIB;
LIBRARY DP_LIB;
LIBRARY DP_LIB;
USE MB_LIB.ATTRIBUTES.ALL;
USE MB_LIB.ATTRIBUTES.ALL;
USE DP_LIB.MISC_PKG.ALL;
USE DP_LIB.MISC_PKG.ALL;
...
...
read design
read design -vhdl
-vhdl RTL/mb_lock.vhd
RTL/mb_lock.vhd –golden
–golden \\
-map MB_LIB
-map MB_LIB /user1/lib/vhdl/
/user1/lib/vhdl/ \\
-mapfile DP_LIB
-mapfile DP_LIB ./vhdl_lib/misc_pkg.vhd
./vhdl_lib/misc_pkg.vhd
...
...
39 CADENCE CONFIDENTIAL
Reading mixed languages
Mixed-language: Libraries
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION –replace
–replace
setenv LIB
setenv LIB /user1/lib/
/user1/lib/
read library
read library $LIB/verilog/*.v
$LIB/verilog/*.v -verilog
-verilog -golden
-golden
read library
read library $LIB/vhdl/*.lib
$LIB/vhdl/*.lib -liberty
-liberty -append
-append -golden
-golden
...
...
Mixed-language: Designs
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION –replace
–replace
setenv LIB
setenv LIB /user1/lib/
/user1/lib/
read library
read library $LIB/verilog/*.v
$LIB/verilog/*.v -verilog
-verilog -golden
-golden
read design
read design RTL/core.vhd
RTL/core.vhd -vhdl
-vhdl -noelab
-noelab -golden
-golden
read design
read design RTL/top.v
RTL/top.v -verilog
-verilog -golden
-golden
...
...
40 CADENCE CONFIDENTIAL
HDL rule checks
Non-GUI mode
SETUP> report rule check <rule_name> -verbose
GUI mode
Click to
open
41 CADENCE CONFIDENTIAL
HDL rule check categories
42 CADENCE CONFIDENTIAL
A typical session (flat compare)
43 CADENCE CONFIDENTIAL
Design constraints
What are design constraints?
User’s inputs to control part of a design’s logic
Purpose of constraints
To disable test logic (for example; scan and JTAG)
To specify one-hot or one-cold conditions
To specify relationships between pins
To constrain undriven signals
Example of constraints
Pin constraint
Instance constraint
Pin equivalence
Tied signal
Undriven signal
44 CADENCE CONFIDENTIAL
Pin constraint
Specify the mode of circuit operation under which comparison
will take place (for example; functional vs. scan operation)
0 U1
U1
D Q
D Q scan_in 1 s DFF
DFF
CLK scan_en (0)
CLK
Golden Revised
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION -replace
-replace
add notranslate
add notranslate module
module *sram*
*sram* -library
-library -both
-both
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc -verilog
-verilog -revised
-revised
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
...
...
45 CADENCE CONFIDENTIAL
Instance constraint
Ties U1 DFF
U1 output to 0
U1
D Q 0
D Q
DFF
DFF
CLK
CLK
...
...
add instance
add instance constraint
constraint 00 U1
U1 -revised
-revised
...
...
46 CADENCE CONFIDENTIAL
Pin equivalence
U1 U2 U1 U2
D Q D Q D Q D Q
DFF DFF DFF DFF
CLK CLK
CLK_n
...
...
add pin
add pin equivalence
equivalence CLK –invert CLK_n
CLK –invert CLK_n -revised
-revised
...
...
47 CADENCE CONFIDENTIAL
Tied signal
GND
U1 SET U1 SET
D Q D Q
DFF DFF
CLK CLK
...
...
add tied
add tied signal
signal 00 GND
GND -net
-net -revised
-revised
...
...
48 CADENCE CONFIDENTIAL
Undriven signals
Z U1 0 U1
D D
DFF DFF
CLK CLK
...
...
set undriven
set undriven signal
signal 00 -revised
-revised
...
...
49 CADENCE CONFIDENTIAL
A typical session (flat compare)
50 CADENCE CONFIDENTIAL
Modeling directives
In SETUP mode, user can specify directives to
influence the way LEC models the design
Modeling directives are needed to handle
modeling styles specific to vendors’ libraries or
synthesis tools
Modeling options:
Latch folding Sequential merge (clock
Gated-clock and data logic cones )
Sequential redundancy Grounded clock
Sequential constant DFF direct feedback
Latch transparent
51 CADENCE CONFIDENTIAL
Latch folding: Problem
D Q D Q
DFF latch latch
CLK CLK
CLK
Golden Revised
52 CADENCE CONFIDENTIAL
Latch folding: Solution
D Q D Q D Q
DFF latch latch DFF
Golden Revised
...
...
set flatten
set flatten model
model -latch_fold
-latch_fold
...
...
53 CADENCE CONFIDENTIAL
Latch folding (master): Problem
SET SET
D Q D Q
DFF latch latch
CLK CLK
Golden Revised
54 CADENCE CONFIDENTIAL
Latch folding (master): Solution
D Q D Q D Q
DFF latch latch DFF
Golden Revised
...
...
set flatten
set flatten model
model -latch_fold_master
-latch_fold_master
set flatten
set flatten model
model -latch_fold
-latch_fold
...
...
55 CADENCE CONFIDENTIAL
Gated-clock: Problem
en D Q
Q latch DFF
D DFF
en
CLK
CLK
Golden Revised
56 CADENCE CONFIDENTIAL
Gated-clock: Solution
Q
Q en D Q
D DFF latch DFF D DFF
en en
CLK CLK CLK
Golden Revised
...
...
set flatten
set flatten model –gated_clock
model –gated_clock
...
...
57 CADENCE CONFIDENTIAL
Sequential redundancy: Problem
D PO D
DFF DFF PO
CLK CLK
RST RST
Golden Revised
58 CADENCE CONFIDENTIAL
Sequential redundancy: Solution
D PO D D PO
PO
DFF DFF DFF
CLK CLK CLK
RST RST RST
Golden Revised
...
...
set flatten
set flatten model –seq_redundant
model –seq_redundant
...
...
59 CADENCE CONFIDENTIAL
Sequential constant: Problem
1’b1 1’b1 PO
PO
DFF
CLK
in1 in1
Golden Revised
60 CADENCE CONFIDENTIAL
Sequential constant: Solution
Golden Revised
...
...
set flatten
set flatten model –seq_constant
model –seq_constant
...
...
61 CADENCE CONFIDENTIAL
Latch transparent: Problem
IN OUT
latch IN OUT
1’b1
Golden Revised
62 CADENCE CONFIDENTIAL
Latch transparent: Solution
IN OUT
Latch IN OUT IN OUT
1’b1
Golden Revised
...
...
set flatten
set flatten model –latch_transparent
model –latch_transparent
...
...
63 CADENCE CONFIDENTIAL
Sequential merge (clock cone):
Problem
D0
DFF
D0 D1
DFF DFF
D1
DFF
CLK
DFF
CLK
Golden Revised
64 CADENCE CONFIDENTIAL
Sequential merge (clock cone):
Solution
Merge a group of functionally equivalent sequential
elements into one:
D0
DFF
D0 D1 D0
DFF DFF DFF
D1 D1
DFF DFF
CLK CLK
DFF
CLK
Golden Revised
...
...
set flatten
set flatten model –seq_merge
model –seq_merge
...
...
65 CADENCE CONFIDENTIAL
Sequential merge: Problem
D0
DFF DFF
D0
DFF DFF
CLK
DFF
CLK
Golden Revised
66 CADENCE CONFIDENTIAL
Sequential merge: Solution
Merge a group of functionally equivalent sequential
elements into one
This directive is more "expensive" than -seq_merge
D0
DFF DFF
D0 D0
DFF DFF DFF DFF
CLK CLK
DFF
CLK
Golden Revised
...
...
set flatten
set flatten model –all_seq_merge
model –all_seq_merge
...
...
67 CADENCE CONFIDENTIAL
Grounded clock: Problem
By default, LEC converts a DFF with clock signal
disabled to a D-latch
Might cause mapping/comparing problem!
Actual designs After LEC default modeling
D D
Golden DFF DFF
D D
Revised DFF DLAT
68 CADENCE CONFIDENTIAL
Grounded clock: Solution
Instruct LEC not to turn DFF with disabled clock into a D-latch:
D D
Golden DFF DFF
D D
Revised DLAT DFF
...
...
set flatten
set flatten model –nodff_to_dlat_zero
model –nodff_to_dlat_zero
...
...
69 CADENCE CONFIDENTIAL
DFF direct feedback: Problem
By default, LEC converts a DFF to a D-latch when
there is a direct feedback from the Q port to the D port
Causes mapping/comparing problem!
Designs with LEC constraint After LEC default modeling
A A
B D Q B D Q
Golden DFF DFF
CLK CLK
D Q D Q
Revised DFF DLAT
CLK CLK
70 CADENCE CONFIDENTIAL
DFF direct feedback: Solution
Instruct LEC not to model a DFF with direct feedback into a D-latch:
A A
B D Q B D Q
Golden DFF DFF
CLK CLK
D Q D Q
Revised DLAT DFF
CLK CLK
...
...
set flatten
set flatten model –nodff_to_dlat_feedback
model –nodff_to_dlat_feedback
...
...
71 CADENCE CONFIDENTIAL
A typical session (flat compare)
72 CADENCE CONFIDENTIAL
Switching to LEC mode
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION -replace
-replace
add notranslate
add notranslate module
module *sram*
*sram* -library
-library -both
-both
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc -verilog
-verilog -revised
-revised
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
set flatten
set flatten model
model -latch_fold
-latch_fold
set system
set system mode
mode lec
lec
...
...
73 CADENCE CONFIDENTIAL
Modeling messages
LEC generates modeling messages after you
change mode to LEC
Transcript window
// Command:
// Command: set
set system
system mode
mode lec
lec
// Processing
// Processing golden
golden ...
...
// Modeling
// Modeling golden
golden ...
...
// Warning:
// Warning: converted
converted 7878 XX assignment(s)
assignment(s) as
as don’t
don’t care(s)
care(s)
// Processing
// Processing revised
revised ...
...
// Modeling
// Modeling revised
revised ...
...
// Folded
// Folded 340
340 dlat(s)
dlat(s) into
into 170
170 dff(s)
dff(s)
74 CADENCE CONFIDENTIAL
A typical session (flat compare)
75 CADENCE CONFIDENTIAL
Mapping process
76 CADENCE CONFIDENTIAL
What are key points?
Key Points: primary inputs(PI), primary
outputs(PO), DFFs, D-latches, black boxes, Z
gates, cut gates
Design consists of combinational logic cones
bounded by key points
Logic cones
Key points
77 CADENCE CONFIDENTIAL
What is key point mapping?
Pairing corresponding key points: PI’s, PO’s,
DFFs, D-latches, black boxes, Z gates, cut gates
Golden Revised
Key points
Combinatorial logic
78 CADENCE CONFIDENTIAL
Why is mapping necessary?
Golden Revised
Key points
Combinatorial logic
79 CADENCE CONFIDENTIAL
How is mapping done?
Name-based: Mapping based strictly on instance
pathnames (or net names) of key points
/core/fd0 /core/fd0
A A
D D
B DFF B
B DFF
CK CK
Golden Revised
Function-based: Mapping based on function and
structure of logic cones
/core/fd0 /core_fd[0]
A A
D D
B DFF B DFF
CK CK
Golden Revised
80 CADENCE CONFIDENTIAL
Mapping options
81 CADENCE CONFIDENTIAL
Mapping messages
82 CADENCE CONFIDENTIAL
Analyze mapping messages:
Mapping takes too long
Problem: Mapping takes too long
Mapping seems to hang and LEC displays this message
Transcript window
...
...
// Warning:
// Warning: more
more than
than 1/3
1/3 of
of the
the key
key points
points have
have mis-matched
mis-matched names
names
...
...
Default mapping
Name-based followed by function-based mapping
Function-based mapping is taking a long time
83 CADENCE CONFIDENTIAL
Analyze mapping messages:
Mapping takes too long
Solution:
Interrupt the mapping process: Ctrl-C on UNIX terminal
Remap using the "name only“ method:
LEC> delete mapped points -all
LEC> set mapping method -name only
LEC> map key points
84 CADENCE CONFIDENTIAL
Mapping messages
The following message is displayed after mapping:
Transcript window
...
...
// Mapping
Mapping key points ……
key points
//
// Warning: Golden has 144
144 unmapped
unmapped key
key points
points
// Warning: Golden has
// Warning:
Warning: Revised
Revised has
has 144
144 unmapped
unmapped key
key points
points
//
...
...
Unmapped points:
points:
Unmapped
================================================================================
================================================================================
Golden:
Golden:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Unmapped points
points DFF DFF Total
Unmapped Total
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Not-mapped 144 144
Not-mapped 144 144
================================================================================
================================================================================
Revised:
Revised:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Unmapped points
points DFF DFF Total
Unmapped Total
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Not-mapped 144 144
Not-mapped 144 144
================================================================================
================================================================================
// Warning:
Warning: Key
Key point
point mapping
mapping is
is incomplete
incomplete
//
85 CADENCE CONFIDENTIAL
Analyze mapping messages:
Incomplete mapping
Problem: Incomplete mapping
Mapping process ends with the message
Transcript window
...
...
// Warning:
// Warning: Key
Key point
point mapping
mapping is
is incomplete
incomplete
...
...
86 CADENCE CONFIDENTIAL
Add renaming rule
Command usage:
add renaming rule <rule_id> <search_string> \
<replacement_string> [-golden | -revised]
Renaming rule structures
%d - matches 1 or more digits (0-9)
#(expr) - expr evaluates to a constant integer
%s - matches 1 or more alpha-numeric characters
Refer to the Reference Manual for more renaming structures
The escape character " \ "
You must prefix the following special characters with "\" if they
are used in the search_string as a normal character
% . * ^ $ | ( ) [ ] / \
87 CADENCE CONFIDENTIAL
Add renaming rule: Example
Unmapped points in Golden Unmapped points in Revised
/fifo_reg[0][0] /fifo_0__reg[0]
/fifo_reg[0][1] /fifo_0__reg[1]
/fifo_reg[0][2] /fifo_0__reg[2]
88 CADENCE CONFIDENTIAL
Mapping Manager
LEC
window
Unmapped
Points
Mapping
Mapped Manager
Points
Compared
Points
89 CADENCE CONFIDENTIAL
Categories of unmapped points
90 CADENCE CONFIDENTIAL
Resolving incomplete mapping:
Technique 1
Using Mapping
Manager to
create
renaming rules
Tips
Preference Sort
by name
91 CADENCE CONFIDENTIAL
Resolving incomplete mapping:
Technique 2
Write out unmapped key points to files, then define
renaming rules based on the output files
Write out all unmapped key points as seen by LEC
LEC> test renaming rule -map
Transcript window
=========================================
=========================================
Test name
Test name mapping
mapping results
results
----------------------------------------------
----------------------------------------------
Golden-Revised pair:
Golden-Revised pair: 25 25
PI:
PI: 21
21
PO:
PO: 22
DFF:
DFF: 22
Golden-Revised group:
Golden-Revised group: 1515 (280
(280 key
key points)
points)
Golden single:
Golden single: 10
10
Revised single:
Revised single: 12
12
=========================================
=========================================
92 CADENCE CONFIDENTIAL
Resolving incomplete mapping:
Technique 2 (cont'd)
LEC> test renaming rule -print group -file \
group.list -replace
Content of group.list:
Key point
Key point groups:
groups: 15
15
(G) 437
(G) 437 DFF
DFF /syndrm/macreg/q_reg[4]
/syndrm/macreg/q_reg[4]
(G) 439
(G) 439 DFF
DFF /syndrm/macreg/q_reg[2]
/syndrm/macreg/q_reg[2]
(R) 383
(R) 383 DFF
DFF /syndrm/macreg/q_reg(4)/g2/i0
/syndrm/macreg/q_reg(4)/g2/i0
(R) 385
(R) 385 DFF
DFF /syndrm/macreg/q_reg(2)/g2/i0
/syndrm/macreg/q_reg(2)/g2/i0
(G)
(G) 445
445 DFF
DFF /syndrm/macreg_1/q_reg[4]
/syndrm/macreg_1/q_reg[4]
(G)
(G) 447
447 DFF
DFF /syndrm/macreg_1/q_reg[2]
/syndrm/macreg_1/q_reg[2]
(R)
(R) 463
463 DFF
DFF /syndrm/macreg_1/q_reg(4)/g2/i0
/syndrm/macreg_1/q_reg(4)/g2/i0
(R)
(R) 465
465 DFF
DFF /syndrm/macreg_1/q_reg(2)/g2/i0
/syndrm/macreg_1/q_reg(2)/g2/i0
...
...
93 CADENCE CONFIDENTIAL
Resolving incomplete mapping:
Technique 2 (cont'd)
LEC> test renaming rule -print single -file single.list \
-replace
Content of single.list:
Golden un-grouped
Golden un-grouped single
single key
key point:
point: 10
10
(G) 2554
(G) 2554 DFF
DFF /rtn_data/xramBO_reg_2_/U$1
/rtn_data/xramBO_reg_2_/U$1
(G) 2555
(G) 2555 DFF
DFF /rtn_data/xramBO_reg_1_/U$1
/rtn_data/xramBO_reg_1_/U$1
(G) 2556
(G) 2556 DFF
DFF /rtn_data/xramBR_reg_31_/U$1
/rtn_data/xramBR_reg_31_/U$1
(G) 2557
(G) 2557 DFF
DFF /rtn_data/xramBR_reg_30_/U$1
/rtn_data/xramBR_reg_30_/U$1
...
...
Revised un-grouped
Revised un-grouped single
single key
key point:
point: 12
12
(R) 6993
(R) 6993 DFF
DFF /array_byte_reg_7_/Vpx/U$1/i0
/array_byte_reg_7_/Vpx/U$1/i0
(R) 6994
(R) 6994 DFF
DFF /base_addr1_reg_9_/Vpx/U$1/i0
/base_addr1_reg_9_/Vpx/U$1/i0
(R) 6995
(R) 6995 DFF
DFF /array_byte_reg_4_/Vpx/U$1/i0
/array_byte_reg_4_/Vpx/U$1/i0
(R) 6996
(R) 6996 DFF
DFF /request_reg_16_/Vpx8/U$1/i0
/request_reg_16_/Vpx8/U$1/i0
...
...
94 CADENCE CONFIDENTIAL
Mapping is an iterative process
Iterative process
Add rules incrementally
Continue the mapping process with command:
LEC> map key point
Note: LEC will skip the existing mapped points
Example:
LEC> add renaming rule rule1 ...
LEC> map key points
...
LEC> add renaming rule rule3 ...
LEC> add renaming rule rule4 ...
LEC> map key points
...
95 CADENCE CONFIDENTIAL
Notes on renaming rules
Rules are order dependent
To view rules:
report renaming rule
To delete a rule:
delete renaming rule <rule_id>
"test renaming rule" can test:
A rule before adding
All rules added
Built-in renaming rules
Renaming Rule GUI window can be used to edit rule(s)
96 CADENCE CONFIDENTIAL
Test renaming rule
97 CADENCE CONFIDENTIAL
Test renaming rule (cont'd)
98 CADENCE CONFIDENTIAL
Built-in renaming rules
99 CADENCE CONFIDENTIAL
Renaming Rule GUI window
You can add, test, and edit rules in the
Renaming Rule GUI window
Golden Revised
1
/u0/u1/c_reg[5] /u0/c_reg(5)/I1/U$1
answer: add renaming rule r1 "u1\/" "" -golden
Note: Trailing characters for library cells are tripped automatically ( /I1/U$1 )
2
Golden Revised
/u0/u1/c_reg[1] /u0_u1_c_.ram1_reg
D Q
/fd0
D Q PO
DFF
/bb0
IN_0 OUT_0
IN_1 OUT_1
BLACK BOX
Golden Revised
...
...
// Command:
Command: compare
compare
//
================================================================================
================================================================================
Compared points
points PO DFF DLAT BBOX
BBOX Total
Compared PO DFF DLAT Total
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Equivalent 22 146 22 11 151
Equivalent 146 151
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Non-equivalent
Non-equivalent 00 22 00 00 22
================================================================================
================================================================================
Left-click to select
a compared point.
Then right-click to
select "Sort by
Support Size“
from pull-down
menu
Left-click to select
a non-equivalent
point (red-filled
circle).
Then right-click,
choose "Diagnose"
Compared Point
Diagnosis Points
Corresponding Support
Non-corresponding Support
Non-corresponding,
and not mapped (red)
M Non-corresponding, but
mapped (yellow with M) Error Patterns Error Candidates
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)
Non-corresponding 1 1 0
B
Support
Error Candidate
Corresponding
gates on
Golden and
Revised are
highlighted
Signal can be
traced across
modules
Report:
Total CPU runtime
Memory usage
set log
set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION -replace
-replace
add notranslate
add notranslate module
module *sram*
*sram* -library
-library -both
-both
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc -verilog
-verilog -revised
-revised
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
set flatten
set flatten model
model -latch_fold
-latch_fold
add renaming
add renaming rule
rule rule0
rule0 "abc
"abc "xyz"
"xyz" -map
-map -revised
-revised
add renaming
add renaming rule
rule rule1
rule1 "xyz"
"xyz" "C"
"C" -map
-map -golden
-golden
set system
set system mode
mode lec
lec
add compare
add compare points
points -all
-all
compare
compare
usage
usage
...
...
Introduction to LEC
Getting familiar with LEC
LEC flow
Hierarchical compare
TOP TOP
U3 U4 U3 U4
U1 U2 A B U1 U2 X
Golden Revised
TOP TOP
U3 U4 U3 U4
U1 U2 A B U1 U2 X
Golden Revised
set log
set log file
file hier.log
hier.log -replace
-replace
read design
read design rtl.v
rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc gate.v
gate.v -revised
-revised
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
write hier
write hier dofile
dofile hier.dofile
hier.dofile -constraint
-constraint -noexact
-noexact -replace
-replace
dofile hier.dofile
dofile hier.dofile
...
...
set system
set system mode
mode setup
setup
//
//
// Comparing
// Comparing module ’U2’
module ’U2’
//
//
set root
set root module
module U2
U2 -golden
-golden
set root
set root module
module U2
U2 -revised
-revised
add pin
add pin equivalences
equivalences SE_0
SE_0 SE_1
SE_1 -revised
-revised
add pin
add pin equivalences
equivalences SE_0
SE_0 SE_2
SE_2 -revised
-revised
add pin
add pin equivalences
equivalences SE_0
SE_0 SE_3
SE_3 -revised
-revised
add pin
add pin constraint
constraint 00 SE_0
SE_0 -revised
-revised
report black
report black box
box -NOHidden
-NOHidden
set system
set system mode
mode lec
lec
add compare
add compare points
points -all
-all
compare
compare
save hier_compare
save hier_compare leclec result
result
add black
add black box
box U2
U2 -module
-module -golden
-golden
add black
add black box
box U2
U2 -module
-module -revised
-revised
...
...
Golden Revised
TOP TOP
XYZ XYZ
ABC ABC
ABC ABC_scan
Method 1:
Use module renaming rule to fix module name differences
set log
set log file
file hier.log
hier.log -replace
-replace
read design
read design rtl.v
rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc gate.v
gate.v -revised
-revised
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
add renaming
add renaming rule
rule m1
m1 "%s_%d$"
"%s_%d$" "@1"
"@1" -module
-module -revised
-revised
add renaming
add renaming rule
rule m2
m2 "%s_scan$"
"%s_scan$" "@1"
"@1" -module
-module -revised
-revised
write hier
write hier dofile
dofile hier.dofile
hier.dofile -constraint
-constraint -noexact
-noexact -replace
-replace
dofile hier.dofile
dofile hier.dofile
Method 2:
Use uniquify command (explained later)
SETUP> uniquify XYZ -golden
set log
set log file
file hier.log
hier.log -replace
-replace
read design
read design rtl.v
rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc gate.v
gate.v -ver
-ver -rev
-rev
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
add renaming
add renaming rule
rule m1
m1 %s_%d$
%s_%d$ @1
@1 -module
-module -revised
-revised
add renaming
add renaming rule
rule m2
m2 %s_scan$
%s_scan$ @1
@1 -module
-module -revised
-revised
add renaming
add renaming rule
rule r1
r1 "d_in\[%d\]"
"d_in\[%d\]" "d_in_@1"
"d_in_@1" -pin
-pin -bbox
-bbox <module_name>
<module_name>
write hier
write hier dofile
dofile hier.dofile
hier.dofile -constraint
-constraint -replace
-replace
dofile hier.dofile
dofile hier.dofile
read design
read design rtl.v
rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc gate.v
gate.v -ver
-ver -rev
-rev Transcript Window
add pin constraint 0 scan_en -revised
add pin constraint 0 scan_en -revised
uniquify foo
uniquify foo -golden
-golden
write hier
write hier dofile
dofile hier.dofile
hier.dofile -constraint
-constraint -noexact
-noexact -replace
-replace
dofile hier.dofile
dofile hier.dofile
Golden Revised
SETUP> write hier dofile hier.dofile -constraint -noexact
Transcript Window
// Warning:
// Warning: Module
Module ’B’
’B’ used
used in
in Golden
Golden module
module ’A’
’A’ 11 times,
times, but
but in
in Revised
Revised
module ’A’
module ’A’ 22 times
times (non-balance).
(non-balance). Skip
Skip ’B’
’B’
...
...
11 modules
modules are
are not
not output
output for
for hierarchical
hierarchical compare
compare due
due to
to non-balanced
non-balanced
instantiations
instantiations
...
...
A Revised
B
B
Golden
read design
read design rtl.v
rtl.v -verilog
-verilog -golden
-golden
read design
read design -file
-file verilog.vc
verilog.vc gate.v
gate.v -ver
-ver -rev
-rev
add pin
add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
resolve CC -golden
resolve -golden
write hier
write hier dofile
dofile hier.dofile
hier.dofile -constraint
-constraint -replace
-replace
dofile hier.dofile
dofile hier.dofile
U1 U1
B
U2 U2
A A
A A_BAR
A A
Hierarchical Compare
145 CADENCE CONFIDENTIAL
Exercise answer
1. UNIX % cd ~/lec_labs/setup/single_language
2. Type "lec" to start GUI LEC
3. Read VHDL design (./RTL/mult_sign_oper.vhd) along with its pkg
libraries all in one command. mult_sign_oper.vhd uses DPAK_LIB,
FCTN_LIB, and IEEE libraries.
Use the –mapfile option to map the file
./vhdl_lib/dpak_unit/minimum_pkg.vhd for DPAK_LIB library
Use the –map option to map the whole directory ./vhdl_lib/common/ for
FCTN_LIB library.
4. Read the library ./verilog_lib/lib.v for the revised design
5. Read the revised design ./synthesis/multiplier_oper.gate.v
6. Click LEC icon to switch to LEC mode
7. Compare design from Run Menu
8. Use File Menu to save the commands you entered into a dofile. Exit LEC
from File Menu
Note: Solution is in the back of the manual and current working directory
1. UNIX% cd ~/lec_labs/setup/vcfile_bbox
2. Create Verilog command files to:
a. Read in Golden design (./RTL/golden.v) and its library elements in
./lib/std/ and ./lib/mem/ directories
b. Read in Revised design (./GATES/revised.v) and its library
elements in ./lib/std/ and ./lib/mem/ directories
3. Start LEC
4. Issue commands to black box library modules that have "rom" and "ram" in
their names (for both Golden and Revised)
5. Read Golden design and libraries via Verilog command file format
6. Read Revised design and libraries via Verilog command file format
7. Exit LEC
Note: Solution is in the back of the manual and current working directory
Mapping Manager
5. Create renaming rules to resolve unmapped key points. After rule(s) are
specified, continue mapping with the command "map key point"
6. Make sure all key points are mapped
7. Exit LEC
Note: Solution is in the back of the manual and current working directory
Mapping Manager
Mapping Manager
Diagnosis Manager
Lab1
Lab1
read design
read design -vhdl
-vhdl ./RTL/mult_sign_oper.vhd
./RTL/mult_sign_oper.vhd -gold
-gold -map
-map FCTN_LIB
FCTN_LIB \\
./vhdl_lib/common -mapfile
./vhdl_lib/common -mapfile DPAK_LIB
DPAK_LIB \\
./vhdl_lib/dpak_unit/minimum_pkg.vhd
./vhdl_lib/dpak_unit/minimum_pkg.vhd
read library
read library verilog_lib/lib.v
verilog_lib/lib.v -revised
-revised
read design
read design synthesis/multiplier_oper.gate.v
synthesis/multiplier_oper.gate.v -verilog
-verilog -revise
-revise
set system
set system mode
mode lec
lec
add compare
add compare point –all
point –all
compare
compare
Lab22
Lab
add notranslate
add notranslate modules
modules *rom*
*rom* -library –both
-library –both
add notranslate
add notranslate modules
modules *ram*
*ram* -library –both
-library –both
read design
read design golden.vc
golden.vc –f–f golden.vc –verilog -golden
golden.vc –verilog -golden
read design
read design revised.vc
revised.vc –f–f revised.vc –verilog -revised
revised.vc –verilog -revised
set system
set system mode
mode lec
lec
add compare
add compare point –all
point –all
compare
compare
Lab3
Lab3
read design
read design golden_rtl.v –verilog –golden
golden_rtl.v –verilog –golden
read library
read library lib.v –verilog
lib.v –verilog
read design
read design revised_gate.v –verilog –revised
revised_gate.v –verilog –revised
set mapping
set mapping method –name only
method –name only
set system
set system mode
mode lec
lec
add renaming
add renaming rule
rule R1
R1 macreg_0%d
macreg_0%d macreg_@1
macreg_@1 -revised
-revised
add renaming
add renaming rule
rule R2
R2 hcount
hcount del_hcount
del_hcount -revised
-revised
add renaming
add renaming rule
rule R3
R3 synvalid1\/regout
synvalid1\/regout synvalid1/del_regout
synvalid1/del_regout -revised
-revised
map key
map key points
points
Lab4
Lab4
Non-equivalentoccurs
Non-equivalent occursininrevised_gate.v
revised_gate.vwhen
whenan
an"OR"
"OR"gate
gateisispurposely
purposelyreplaced
replacedby
byaa
"NOR"gate.
"NOR" gate.
Lab5
Lab5
set log
set log file
file hier.log
hier.log -replace
-replace
read design
read design -golden
-golden golden.v
golden.v -verilog
-verilog
read library
read library lib.v
lib.v -verilog
-verilog
read design
read design -revised
-revised revised.v
revised.v -verilog
-verilog
write hier
write hier dofile
dofile hr.do
hr.do -replace
-replace
dofile hr.do
dofile hr.do
Lab6
Lab6
set log
set log file
file hier.log
hier.log -replace
-replace
read design
read design -golden
-golden golden.v
golden.v -verilog
-verilog
read library
read library lib.v
lib.v -verilog
-verilog
read design
read design -revised
-revised revised.v
revised.v -verilog
-verilog
// These
// These renaming
renaming rules
rules will
will fix
fix module
module mapping
mapping problems
problems
//add renaming
//add renaming rule
rule rule1
rule1 %s_scan$
%s_scan$ @1
@1 -module
-module -revised
-revised
//add renaming
//add renaming rule
rule rule2
rule2 %s_%d$
%s_%d$ @1
@1 -module
-module -revised
-revised
write hier
write hier dofile
dofile hr.do
hr.do -replace
-replace
dofile hr.do
dofile hr.do
Set log
Set log file
file logfile.$LEC_VERSION
logfile.$LEC_VERSION -replace
-replace
Add notranslate
Add notranslate module
module *sram*
*sram* -library
-library -both
-both
Read design
Read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
Read design
Read design -file
-file verilog.vc
verilog.vc -verilog –revised
-verilog –revised
//Note: The
//Note: The read
read design
design above
above can
can be
be replaced
replaced by
by
//Any of
//Any of the
the examples
examples explained
explained in
in this
this manual
manual
Add pin
Add pin constraint
constraint 00 scan_en
scan_en -revised
-revised
Set flatten
Set flatten model
model -latch_fold
-latch_fold
Set flatten
Set flatten model –seq_redundant
model –seq_redundant
Report floating
Report floating signals
signals -undriven
-undriven -full –both
-full –both
Set mapping
Set mapping method
method -name
-name only
only
//The above
//The above commands
commands are
are the
the same
same for
for both
both flat
flat and
and hier
hier dofiles
dofiles
Add black
Add black box
box U2
U2 -both
-both
Write hier
Write hier dofile
dofile hier.dofile –constraint –noexact
hier.dofile –constraint –noexact -replace
-replace
dofile hier.dofile
dofile hier.dofile
Usage
Usage
1. LEC-1 review
2. Mapping Problems
3. Debugging & Diagnosis Tips
4. Multipliers
5. Resolving abort key points
6. RTL coding guidelines
7. Labs
SETUP mode
Specifying black boxes
Reading libraries and designs
Specifying design constraints
Specifying modeling directives
LEC mode
Mapping process
Resolving unmapped key points
Compare process
Debugging non-equivalent key points
No
All mapped ?
Yes
LEC Compare key points
mode
Yes
Differences ? Debug
No
Equivalence
established
Key points
Combinatorial logic
Black boxes
Module pins
Phase inversion
Solutions:
Manual mapping
Add mapping point <golden_bbox> <rev_bbox>
Solution:
Apply renaming rule to the pin
Syntax: add renaming rule name_name \
<search_string> <replace_string> -pin -bbox \
<module_name> [-golden|-revised]
RST
S
IN D Q OUT
Golden U1_reg
CLK
R
S
IN D Q OUT
Revised U1_reg
CLK
R
RST
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
read design
read design cpu_netlist.vg
cpu_netlist.vg -verilog
-verilog -revised
-revised
set mapping
set mapping method
method -phase
-phase
set system
set system mode
mode lec
lec
...
...
Compared Point
Diagnosis Points
Corresponding Support
Non-corresponding Support
Non-corresponding,
and not mapped (red)
M Non-corresponding, but
mapped (yellow with M) Error Patterns Error Candidates
Operand swapping
Solution:
Match multiplier architectures
Swap operands
Manual
set multiplier implementation
Disadvantage
User’s knowledge of the Revised architecture
Operator ordering
Multiplier - refer to the Multiplier section
z = a * b * c * d; z = (a * b) * (c * d);
a b c d a b c d
× × ×
×
×
×
z
a b c d a b c d
× × ×
×
×
×
z
compare
compare
//”set compare
//”set compare effort
effort auto”
auto” will
will automatically
automatically switch
switch to
to super
super compare
compare
effort to
effort to aborted
aborted key
key points
points
report compare
report compare data
data -abort
-abort
set compare
set compare effort
effort high
high
compare
compare
...
...
Hierarchical compare
0 Iteration 1
0 AB = 00
0 Iteration 2
1 AB = 01
1 Iteration 3
0 AB = 10
1 Iteration 4
1 AB = 11
set compare
set compare effort
effort high
high
compare
compare
report compare
report compare data
data -abort
-abort >> aborts.high
aborts.high
set compare
set compare option
option -partition
-partition key
key //This
//This command
command is
is not
not documented
documented
compare
compare
...
...
read design
read design cpu_rtl.v
cpu_rtl.v -verilog
-verilog -golden
-golden
read design
read design -f
-f verilog.vc
verilog.vc -verilog
-verilog -revised
-revised
set system
set system mode
mode lec
lec
add compare
add compare points
points -all
-all
compare
compare
report compare
report compare data
data -abort
-abort
set system
set system mode
mode setup
setup
add partition
add partition key_point
key_point -pin
-pin aa bb
write partition
write partition dofile
dofile partition.dofile
partition.dofile -replace
-replace
dofile partition.dofile
dofile partition.dofile
...
...
Before
Golden Revised
assign p = (x * y);
assign pm = (p & mask);
assign pmo = (pm + offset); After
Golden Revised
Mapping Manager
Mapping Manager
Mapping Manager
Mapping Manager
Mapping Manager
Diagnosis Manager
7. Starting from the compare point (dark blue DFF), trace the fan-in logic
to find the source of the logic difference. LEC (3.4.0.a or later) trims the
similar logic for easier debugging, but it might be hard to see the logic
connection at first. To have LEC open more gates to get a better picture of
the circuit, click to highlight the compare point then right click → Fan-in Cone
→ Close → Right click again → Fan-in Cone → Open to EQ/Key Points. Do
this for both the Golden and the Revised schematics.
Note: The solution is at the end of this section and current working
directory.
1. Start LEC :
Unix% cd ~/lec2_labs/hier_compare/mod_map_uniquify
2. Read golden.v for the Golden design.
3. Read the Revised library lib.vpx.v.
4. Read revised.v as the Revised design
5. Generate hierarchical compare script.
6. Instead of using add renaming rule, use uniquify command to
fix mapping problem for the modules being instantiated more than once (7
modules).
7. Re-generate hierarchical compare script.
Verify that the generated script includes 7 modules for hierarchical
compare.
Note: The solution is at the end of this section and current working
directory.
231 CADENCE CONFIDENTIAL
8. Labs
Lab 7
OBJECTIVE: Debug non-equivalent key points
using
hierarchical compare
technique
1. Unix % cd ~/lec2_labs/debug_neq/debug_via_hier, start
LEC.
2. Execute the dofile init.do.
3. Try debugging to pinpoint the error gate.
4. If you haven’t pinpointed the error gate, try narrowing down the
non-equivalent module using a hierarchical compare.
a) Switch to SETUP mode.
b) set gui off
c) Generate a hierarchical compare script, and then execute the script.
Note that one module will be reported non-equivalent.
5. Set root module to the non-equivalent module, and then start
232 comparing this module flat. CADENCE CONFIDENTIAL
8. Labs
Lab 7 (cont’d)
Sort the non-equivalent key points by size with the command:
diagnose -summary -sort size.
From the report, find the key points with smaller cone size to
diagnose. Note these key points by their ID number, and then invoke
the Mapping Manager to start the diagnosis process. From the
schematic window, you should be able to see that the Revised design
has an extra inverter.
7. Exit LEC.
Note: Solution is at the end of this section and current working
directory.
Lab1:Add
Lab1: Addrenaming
renamingrules
rulestotocomplete
completemapping
mappingkey
keypoints
points
add notranslate
notranslate module
module regfile_9x30
regfile_9x30 regfile_9x64
regfile_9x64 -lib
-lib
add
read library
library lib/baselib.v
lib/baselib.v lib/lib.v
lib/lib.v lib/regfile_9x30.v
lib/regfile_9x30.v lib/regfile_9x64.v
lib/regfile_9x64.v
read
read design
design golden.v
golden.v
read
read design
design revised.v
revised.v -rev
-rev
read
set undriven
undriven signal
signal 00
set
add pin
add pin constraint
constraint 00 scan_en
scan_en -rev
-rev
set mapping
mapping method
method -name
-name only
only
set
set system
system mode
mode lec
lec
set
add renaming
renaming rule
rule R1
R1 \/
\/ __ -gold
-gold
add
add renaming
renaming rule
rule R2
R2 \/
\/ __ -rev
-rev
add
map key
key point
point
map
8. Labs
234 CADENCE CONFIDENTIAL
Lab solutions
Lab2:2:Mapping
Lab Mappingblack
blackbox
boxpins
pins
add notranslate
notranslate module
module DP_SRAM*
DP_SRAM*
add
add search path ./rtl/ -gold
add search path ./rtl/ -gold
read library
library lib/*.v
lib/*.v -gold
-gold
read
read design
design -f
-f rtl/filelist
rtl/filelist -root
-root PCI
PCI -gold
-gold
read
read library
library lib/lib.vpx.v
lib/lib.vpx.v -rev
-rev
read
read design
read design gate/PCI.gv
gate/PCI.gv -root
-root PCI
PCI -rev
-rev
set flatten
flatten model
model -nodff_to_dlat_feedback
-nodff_to_dlat_feedback
set
set undriven
undriven signal
signal 00
set
add renaming
renaming rule
rule R1
R1 reg_%d
reg_%d reg[@1]
reg[@1] -rev
-rev //this
//this rule
rule speeds
speeds up
up the
the mapping
mapping process
process
add
add renaming
renaming rule
rule R2
R2 in_I
in_I in
in -pin
-pin -bbox
-bbox DP_SRAM_ADDR_LENGTH5_SIZE32_1
DP_SRAM_ADDR_LENGTH5_SIZE32_1 -rev -rev
add
add renaming
renaming rule
rule R3
R3 inA
inA in
in -pin
-pin -bbox
-bbox DP_SRAM_ADDR_LENGTH5_SIZE32_1
DP_SRAM_ADDR_LENGTH5_SIZE32_1 -rev -rev
add
set mapping
mapping method
method -nobbox_name_match
-nobbox_name_match
set
set sys
sys mode
mode lec
lec
set
add compare
compare point
point -all
-all
add
compare
compare
8. Labs
235 CADENCE CONFIDENTIAL
Lab solutions
Lab3:3:Debug
Lab Debugnon-equivalent
non-equivalentkey
keypoints
pointsthrough
throughthe
theDiagnosis
DiagnosisManager
Manager
add notranslate
notranslate module
module DP_SRAM*
DP_SRAM*
add
add search
search path
path ./rtl/
./rtl/ -gold
-gold
add
read library
library lib/*.v
lib/*.v -gold
-gold
read
read design
design -f
-f rtl/filelist
rtl/filelist -root
-root PCI
PCI -gold
-gold
read
read library
library lib/lib.vpx.v
lib/lib.vpx.v -rev
-rev
read
read design
design gate/PCI.gv
gate/PCI.gv -root
-root PCI
PCI -rev
-rev
read
set flatten
flatten model
model -nodff_to_dlat_feedback
-nodff_to_dlat_feedback
set
add renaming
renaming rule
rule R1
R1 reg_%d
reg_%d reg[@1]
reg[@1] -rev
-rev //this
//this rule
rule speeds
speeds up
up the
the mapping
mapping process
process
add
add renaming
renaming rule
rule R2
R2 isr_bit3_0_reg%d_%d
isr_bit3_0_reg%d_%d isr_bit3_0_reg[@2]
isr_bit3_0_reg[@2] -rev
-rev
add
set mapping
mapping method
method -nobbox_name_match
-nobbox_name_match
set
set sys
sys mode
mode lec
lec
set
add compare
compare point
point -all
-all
add
compare
compare
8. Labs
236 CADENCE CONFIDENTIAL
Lab solutions
Lab4:4:Debug
Lab Debugnon-equivalent
non-equivalentkey
keypoints
points
The output
output data_out[31]the
data_out[31]the BBOX
BBOX bridge/pci_target_unit_fifos/pciw_ram
bridge/pci_target_unit_fifos/pciw_ram is
is disconneted
disconneted
The
on the revised design.
on the revised design.
8. Labs
237 CADENCE CONFIDENTIAL
Lab solutions
Lab5: Mapping
Lab5: Mappingmodules
moduleswith
withrenaming
renamingrules
rules
read design
design golden.v
golden.v
read
read library lib.v -rev
-rev
read library lib.v
read design
design revised.v
revised.v -rev
-rev
read
add renaming rule R1 %s_scan$ @1 -module
-module -rev
-rev
add renaming rule R1 %s_scan$ @1
add renaming rule R2 %s_%d$ @1 -module -rev
add renaming rule R2 %s_%d$ @1 -module -rev
write hier
hier dofile
dofile hier.do
hier.do -noexact
-noexact -constraint
-constraint -replace
-replace
write
//dofile hier.do
hier.do
//dofile
Lab6:6: Mapping
Lab Mappingmodules
moduleswith
withuniquify
uniquifycommand
command
read design
design golden.v
golden.v
read
read library
library lib.vpx.v
lib.vpx.v -rev
-rev
read
read design revised.v -rev
read design revised.v -rev
uniquify lrp
lrp -gold
-gold
uniquify
uniquify burp
burp -gold
-gold
uniquify
write hier dofile hier.do -noexact
-noexact -constraint
-constraint -replace
-replace
write hier dofile hier.do
//dofile hier.do
//dofile hier.do
8. Labs
238 CADENCE CONFIDENTIAL
Lab solutions
Lab7:7: Debug
Lab Debugnon-equivalent
non-equivalentkey
keypoints
pointsusing
usinghierarchical
hierarchicalcompare
comparetechnique
technique
add notranslate
notranslate module
module DP_SRAM*
DP_SRAM*
add
add search
search path
path ./rtl/
./rtl/ -gold
-gold
add
read library
library lib/*.v
lib/*.v -gold
-gold
read
read design
design -f
-f rtl/filelist
rtl/filelist -root
-root PCI
PCI -gold
-gold
read
read library
library lib/lib.vpx.v
lib/lib.vpx.v -rev
-rev
read
read design
design gate/PCI.gv
gate/PCI.gv -root
-root PCI
PCI -rev
-rev
read
set flatten
flatten model
model -nodff_to_dlat_feedback
-nodff_to_dlat_feedback
set
add renaming
renaming rule
rule R1
R1 reg_%d
reg_%d reg[@1]
reg[@1] -rev
-rev //this
//this rule
rule speeds
speeds up
up the
the mapping
mapping process
process
add
set mapping
mapping method
method -nobbox_name_match
-nobbox_name_match
set
write hier
hier dofile
dofile hier.do
hier.do -noexact
-noexact -constraint
-constraint -replace
-replace
write
dofile hier.do
hier.do
dofile
set root
root module
module PCI_TARGET32_SM
PCI_TARGET32_SM -both
-both //non-equivalent
//non-equivalent module
module needs
needs to
to be
be diagnosed
diagnosed
set
set sys
sys mode
mode lec
lec
set
add compare
compare point
point -all
-all
add
compare
compare
diagnose -summary
-summary -sort
-sort size
size
diagnose
//diagnose the
the NEQ
NEQ key
key point
point bc0_out
bc0_out will
will show
show very
very obviousely
obviousely that
that there
there is
is
//diagnose
//an extra inverter in the revised logic cone, which causes NEQ
//an extra inverter in the revised logic cone, which causes NEQ
8. Labs
239 CADENCE CONFIDENTIAL