GT FV Training
GT FV Training
GT FV Training
Modified: (4/1/2015)
GT FV WG
VPG FV Training
2 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
AGENDA
• Debugging with Conformal
• How to open Interactive mode
• Mapping Manager
• Diagnose Manager
• Hierarchical View
• Aborting Resolution Techniques
• Non-FV’ble Units
• FV Model Basics
• Setting FV Area
• Dir Structure
• FV model dir structure
• FV collaterals dir structure
• FV run area dir structure
• Setting up par FV label
• Misc. Commands/Scripts
• Responsibilities
• Lab Session
• Q&A
VPG FV Training
3 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Formal Verification Basics
• Formal Verification (aka FV/ FEV/ EC) is a verification process that proves the functional
equivalence between two different representations of the same design without using test
vectors
• It ensures the netlist is functionally equivalent to the RTL as the design moves through the
successive design steps or transformations
• The main steps involved in Formal Verification process are:
VPG FV Training
5 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
How Formal Verification Works?
• Design and library information are read in along with other environment related
information for both designs being compared
• Design are broken up in logic cones whose end points (aka key-point) are either registers or
primary outputs ( more will be covered in Next topic)
• Logic cones are paired between two designs using name, functional and topological mapping
• The mathematical functions of cones are compared to see if they are equivalent
R1 r1
Y ≡ Y
X X ≡ X
X
R1 ≡ r1
R2 ≡ r2
R2 ?= r2
Y ?= Y
VPG FV Training
6 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Formal Verification –Pros and Cons
PROS
• Provides fastest functional coverage for the changes made in a design
• Checks the functional equivalence without using simulation test vectors and hence its cost
effective and saves time
• Enables comparison of different views/abstraction levels
• Helps to identify potential Synthesis or ICC issues way ahead of GLS and thus shortens the
design cycle
CONS
• FV does not perform timing checks to ensure that the design will work on the operating
frequency
• As the design complexity increases, design translation and mapping becomes difficult. This
requires time consuming manual mapping
• Most of the FV models assumes that the circuit is purely digital, whereas the modern SOCs
contain many analog components which will not be verified by FV
VPG FV Training
7 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
GT FV FLOW
RTL
Unit FV Synthesis FC FV
PTD
4 Unit FV Runs/Tnet FC FV
Placement
5 FCFV Runs/Tnet
CTS
postCTS psynopt
FC FV
Unit FV
Route Opt
Freeze
Unit FV FC FV
ECOs
TO
VPG FV Training
9 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
SD FV Flow
The following steps are followed in SD team to perform Formal Verification
1. Collaterals i.e., netlist pointers is released in the form of release.info file or by Vault. If
released in release.info file, pointers should have the standard build path
/p/<proj>/build/models/<model name>/build/<par name>/[<version>]/ios/<label name>/<par>.syn.vg*
VPG FV Training
10 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Types of FV
VPG FV Training
11 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV execution in GT
Launch_RTL2Gate_FV
• Developed and owned by GT FV team Most Automated
• Wrapper around DA environment to allow FV Labels organize constraints/
collaterals accordingly
• Provides a single platform to PEO/SFVO/UOs for running RTL2Gate FV
Equicheck
• DA environment
• Invoked by Launch_RTL2Gate_FV
• Can be launched directly Least Automated
Cadence Conformal LEC
• FV tool invoked by Equicheck
VPG FV Training
12 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal LEC
Key points
Key points
Combinatorial logic
VPG FV Training
14 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Basics : compare Points
▪ Compare Point : Each logic cone is driven by multiple drivers but can have only one load. Load of a logic
cone is called compare point.
▪ Not all keys points can be compare points as some key points are not driven by logic cones
❑ PI
❑X
❑Z
▪ Key-points that are driven by logic cones are compare point
❑ PO
❑ DFF
❑ DLAT
❑ BBOX
❑ CUT
VPG FV Training
15 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Flow
Golden Standard Revised
Design Library Design
Setup
Mode Specify constraints
Fix
& design modeling
All No
Mapp
ed
Yes
Specify compare
LEC
parameters
Mode
Compare Designs
Yes
Misco
mpare Diagnose
No
Equivalence
Checking Complete
VPG FV Training
16 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Flow
Running EC in Conformal
VPG FV Training
17 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Commands - Specifying Constraints
Purpose of constraints
– To disable test logic present only in the netlist (i.e. scan)
– To specify relationships between pins
– To constrain un-driven signals
– Mapping info for clock tree ports, duplicated instances(e.g. clocks, resets)
Example of constraints
– Pin/output equivalence
– Pin constraints
– Ignore input/output
– Instance equivalence
– Renaming rule
– Map points
– Prove command
VPG FV Training
18 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Commands – Pin constraints/ Pin equivalence
Pin constraint: Constrains pins to a logic value. You can use this command on primary input pins, or compare two different
designs under certain input constraints. Example, scan constraints
Syntax: ADD PIn Constraints <0 | 1> <primary_pin* ...> [-module <module_name>] [-golden | -revised | -both]
Golden Revised
U1
U1 0
D Q
D Q scan_in 1 s DFF
DFF
CLK scan_en (0)
CLK
addpin
add pinconstraint
constraint00scan_en
scan_en-revised
-revised
Pin Equivalence : Specifies if two boundary module pins are equal or not. Example, cts ports punched at unit level in postcts
Syntax: ADD PIn Equivalences <primary_pin> <secondary_pin> [-module <module_name>][-INPUT_OUTPUT] [-gol | -rev | -both]
U1 U2 U1 U2
D Q D Q D Q D Q
DFF DFF DFF DFF
CLK CLK
CLK_0
addpin
add pinequivalence
equivalenceCLK
CLKCLK_0
CLK_0-revised
-revised
Output equivalence : Specifies if two boundary module pins are equal or not.
Syntax: ADD OUtput Equivalences <primary_pin> <secondary_pin> [-module <module_name>][-INPUT_OUTPUT] [-gol |rev | both]
VPG FV Training
19 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Commands – Ignore input/output, Instance equivalence
Ignore Input: Specifies to ignore any bbox input pins. You can use this command on primary input pins, or compare two
different designs under certain input constraints. Example, scan constraints
Syntax: ADD Ignore Input <primary_pin* ...> [-module <module_name>] [-golden | -revised | -both]
Golden module Revised module
Bbox module Bbox module
port z port z
addignore
add ignoreininport
port–module
–module<bbox
<bboxmodule>
module>-both
-both
Ignore Output: Specifies to ignore boundary ouput pins. Example, dangling output port of a unit
Syntax: ADD IGnore Output <output port> [-module <module_name>] [-gol | -rev | -both]
module module
DFF
z port z port
addignore
add ignoreout
outport
port–module
–module<module>
<module>-both
-both
Instance equivalence : Defines D-latches and D flip-flops as equivalent or inverted equivalences. For eg, used for dops of same
clock domain.
Syntax: ADD INstance Equivalences <instance path > <instance path> [-module <module_name>] [-gol |rev | both]
VPG FV Training
20 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Commands – rename rule, add map points, prove
Conformal does name based mapping. If the RTL and netlist names are different, we can create exceptions
for this by using either of the below 2 conformal commands
Rename Rule: Specifies renaming rules for key points, modules and blackbox pins. For example:
Syntax: ADD REname Rule <rule name> <pattern> <substitution> -<map|pin> [-golden | -revised | -both]
ADD REname Rule test ramdto_dftin_%d ramdto_dftin\[@1\] –map –rev
Prove: Prove if the specified key point is zero/one. For example, used in the case of constant propagation.
Syntax: PROve <0|1> <key point> -<gol/rev>
VPG FV Training
21 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Conformal Flow - LEC mode & Mapping Process
LEC Mode:
• Switching to LEC mode is done by using “set system mode lec” command
• Flattens golden and revised design
Mapping Process:
If these mapping methods are not satisfactory, you can improve them by “add renaming rules “command or
by custom mapping
VPG FV Training
22 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck
VPG FV Training
24 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV Run Area Directory Structure
Unit
.ren .comp
.ma .inst
ame
.unmap
are.rp …
p.do .lec. .do .pro ped.rpt
.do t
map. ve.d
do o
Once equicheck creates all the above files and directories, it invokes Conformal LEC tool and executes the
master dofile file “<design>.verify.do” to run FV.
Note: For debug purposes, please do no edit the dofiles/map files/ref /tar directories in the official area.
Please make a copy of the original area for debug
VPG FV Training
25 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
<design>.verify.do File
//-- Pre-Read Section
set log file log/gacvunit.conf.log -replace
set flatten model -nodff_to_dlat_zero
set flatten model -nodff_to_dlat_feedback
set flatten model -nomap
set flatten model -gated_clock
dofile map/gacvunit.prove.do
VPG FV Training
26 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
<design>.verify.do File (contd)
//-- Report Section
WRIte MApped Points map/gacvunit.conf.gen.map -replace
report black box -both
report unmapped points -summary -Gol
report unmapped points -summary -Rev
report compare data -summary
report floating signals -root -undriven -full -both > reports/gacvunit.undriven.rpt
report environment > reports/gacvunit.summary.rpt
report verification >> reports/gacvunit.summary.rpt
report statistics > reports/gacvunit.statistics.rpt
report messages -nosummary > reports/gacvunit.messages.rpt
report black box -nohidden -both > reports/gacvunit.blackbox.rpt Equicheck
report pin constraint -both > reports/gacvunit.const.rpt Outputs
report pin equivalence > reports/gacvunit.pin.equiv.rpt
report compare data -summary > reports/gacvunit.compare.data.rpt
report compare data -noneq >> reports/gacvunit.compare.data.rpt
report compare data -abort >> reports/gacvunit.compare.data.rpt
report compare data -cut >> reports/gacvunit.compare.data.rpt
report compare data -notcompared >> reports/gacvunit.compare.data.rpt
report unmapped points -Golden > reports/gacvunit.unmapped.rpt
report unmapped points -Revised >> reports/gacvunit.unmapped.rpt
report unmapped points -type pi >> reports/gacvunit.unmapped.rpt
report unmapped points -type po >> reports/gacvunit.unmapped.rpt
report unmapped points -notmapped >> reports/gacvunit.unmapped.rpt
VPG FV Training
27 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – Setup mode
1. dofiles/<design>.notranslate.do
• This file blackboxes any sub-modules in the design
• Populated when @ec/@bb is used for a fub in the hier file of that design
2. dofiles/<design>.read.lib.do
• Reads the default rtl and sd libs (std/ebb/fake libs) used when FV model was built.
readlibrary
read library$PATH/lib/*.lib
$PATH/lib/*.lib-verilog–golden
-verilog–golden
3. dofiles/<design>.build.gol.do
• Reads shared libs (which is common to all units of a FV model) as specified by
/p/<proj>/fv/lib/<fv model name>/<default rtl model>/equate.rtl_lib.file
• Reads all rtl files listed under this design in hier file from rtl pointed by “ref/<design>” link
readdesign
read design$PATH/verilog/*.v
$PATH/verilog/*.v-verilog
-verilog–golden
–golden
4. dofiles/<design>.build.rev.do
• Reads the netlist as pointed by “tar/<design>.vg” link
readdesign
read design$PATH/verilog/*.vg
$PATH/verilog/*.vg-verilog
-verilog–revised
–revised
VPG FV Training
28 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – Setup mode
5. dofiles/<design>.map.do
• Contains all the port equivalences and pin constraints
• Populated by cts file and const file and user proc (map.append or map.replace)
addpin
add pinequivalence
equivalence<primary
<primaryininport>
port><secondary
<secondaryininport>
port>-<gol|rev|both>
-<gol|rev|both>
addout
add outequivalence
equivalence<primary
<primaryout
outport>
port><secondary
<secondaryout
outport>
port>-<gol|rev|both>
-<gol|rev|both>
addpin
add pinconstraints
constraints<input
<inputport>
port>-<gol|rev|both>
-<gol|rev|both>
addignore
add ignoreout
out<output
<outputport>
port>-<gol|rev|both>
-<gol|rev|both>
addignore
add ignoreout
out<output
<outputport>
port>-<gol|rev|both>
-<gol|rev|both>
6. dofiles/<design>.inst.eq.do
• Contains instance equivalences for flops and latches
• Populated by cts file and user proc (inst.equiv.append or inst.equiv.replace)
addinstance
add instanceequivalence
equivalence<primary
<primarylat/dff
lat/dffhier
hierpath>
path><secondary
<secondarylat/dff
lat/dffhier
hier
path>-<gol|rev|both>
path> -<gol|rev|both>
7. dofiles/<design>.rename.rule.do
• If compare points have different names in both designs they can renamed to match and
hence enabling name based mapping by tool
• Populated by user proc (renam.rule.map.append/replace)
addrename
add renamerule
rule<rule
<rulename>
name><pattern>
<pattern><substitution>
<substitution>-<map|pin>
-<map|pin>-<gol|rev>
-<gol|rev>
VPG FV Training
29 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – lec mode
8. dofiles/<design>.lec.map.do
• Contains mapping information for all the key points that should be additionally applied on
top of default name based mapping by the tool
• Populated by cts file and user proc
addmap
add mappoints
points<<gol
golkey
keypoint
pointhier
hierpath>
path><rev
<revkey
keypoint
pointhier
hierpath>
path>-<invert|
-<invert|
noinvert>
noinvert>
9. dofiles/<design>.prove.do
• Populated by cts file and user proc
VPG FV Training
30 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – User PROC
Custom Mapping (aka User PROC) : Any mapping manually provided to the tool by the user
This is achieved by the tool_usr_proc utility in equicheck
The custom mapping is passed to the tool through a user proc that sits in
/p/<proj>/fv/<models>/COLL/PROC/<flow>/<unit>
• The PROC format is <unit>.conf.<rtl2gate|gat2gate|rtl2rtl>.cts.<state>.<action>
User Proc is picked based upon:
• Unit/design name
• State e.g. preread, compare, etc…
Equicheck User Proc states for Conformal:
– preread
– ref.read
– tar.read
– read.lib
– map
– inst.equiv
– rename
– prelec
– lec
– lec.map
– precompare
– compare
– prove
– report
– preexit
Equicheck User Proc actions:
– append
– replace
VPG FV Training
31 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs - Hierarchy file
Mapping and/or compare strategy can be specified with attributes in the design’s hierarchy file. Most
common hierarchy file attributes
• @ec verify at this level
• @bb (strictly not used for unit level FV) black box this design
• @gate_design=<uniquified module name> All the unit collaterals are based on gate_design name
Sample hierarchy file
0 gacunit1 (gacunit) @ec @gate_design=gtvidpar6_gacunit_0
1 noa_muxing @bb
When is it useful?
• When the design is too complex causing the tool to choke and abort
• During ECO’s the UO may request for a fub level FV support
How it works?
Fub level FV is run by adding the @ec attribute on the fub in interest in the hier file before running FV. When
Hier FV is run, equicheck creates another level of directory structure under the work area. The structure
underneath these directories is similar to the regular FV flow
2 FV runs are launched in parallel Unit
• One at the unit level with the fub blackboxed
• One at the fub level unblackboxed Unit fub
VPG FV Training
32 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – CONST file
− Const file pointer:
/p/<proj>/fv/models/<modelname>/COLL/<parname>/<fv_label>/<par>.const
VPG FV Training
33 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – CTS file
− Cts file pointer: /p/<proj>/fv/models/<modelname>/COLL/<parname>/<fv_label>/<par>.cts
− It is created during CTS FV collaterals build by picking up reports from place_prep, clock,
clock_misc stages
− The first line of a particular rtl port will be converted into mapping command in lec.map.do
− The next consecutive lines will be converted into equivalences in map.do
− Syntax:
<fub> {<dir>} <rtl port> <netlist port>
gacvarb {} in cdevrst_b cdevrst_b_cts_1 -> add map points gacvarb1 gacvarb1 -Input pin cdevrst_b cdevrst_b_cts_1
gacvarb {} in cdevrst_b cdevrst_b_cts_5 -> add pin equivalence cdevrst_b_cts_1 cdevrst_b_cts_5 –module gacvarb -rev
gacvarb {} in cdevrst_b cdevrst_b_cts_6 -> add pin equivalence cdevrst_b_cts_1 cdevrst_b_cts_6 –module gacvarb -rev
VPG FV Training
34 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Inputs – bound opt file
− bo_file pointer: /p/<proj>/fv/models/<modelname>/COLL/PROC/<flow>/<par>/par.bo
− It can be created by the user manually to account for DC/ICC boundary optimization
− If a unit input port is unused in RTL, it gets optimized in netlist as shown in diagram
Syntax:
module_name {rtldangin} rtl_pin(netlist pin) both (netlist pin required only if pin names are different)
(Equicheck will automatically add below)
At unit level: tcl_prove_dont_drive <pin_name> -gol
At higher level when module is bboxed: add ignored inputs <pin_name> –module <name> -both
module_name {rtldangout} rtl_pin(netlist pin) both (netlist pin required only if names are different)
(Equicheck will automatically add below)
At unit level: add ignored outputs <pin_name> -gol
At higher level when module is bboxed: tcl_prove_dont_drive <inst/pin_name> -both
VPG FV Training
35 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Outputs
Reports created by Equicheck
− <design>.unmapped.rpt : Check for any unmapped ports or flops here. For example:
Unmapped point (extra):
(R) 971 PI /dt_scanshiften_b_cts_2_21
− <design>.compare.data.rpt: Check for the mismatched logic cones here. For example:
Compared points are: Non-equivalent
(G) + 5238 DFF /gafsrdreqblk1/sf_fifoinpkt_ff_reg[90]
(R) + 28497 DFF /gafsrdreqblk1/sf_fifoinpkt_ff_reg_b84_b85_b89_b90_qreg/U$4
Due to these Non-equivalent points:
[CLOCK]
(G) + 1 PI /crclk
(R) + 817105 AND /gafsrdreqblk1/pwc_clk_gate_3_presplit1/U$1
− <design>.blackbox.rpt
− <design>.const.rpt
− <design>.messages.rpt
− <design>.pin.equiv.rpt
− <design>.statistics.rpt
− <design>.undriven.rpt
VPG FV Training
36 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Vs Conformal
Equicheck takes a set of input files to generate the required tool scripts in the FV run area for the tool to kick
off.
Equicheck Input files Conformal scripts generated from
equicheck input files
The following table lists the input files required to generate each of the tool script for mapping information.
VPG FV Training
37 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Equicheck Command-line Options
Equicheck
-ref <path to reference netlist directory/files>
-tar <path to target netlist directory/files>
-unit <unit name> top level unit or fub name that needs to be verified
-dir <dir name> output directory to be created
-hier Enables hierarchical verification. Default is flat verification
-hier_file <hier file path> Creates a new hier file by default
-cts_file <cts map file path> Overrides default map file
-const_file <const file path> Overrides default const file
-bo_file <bound opt file> Picks boundary optimization file
-recurse_equicheck_search_path recursive searches for RTL files in search path directories
-higher_level_retiming accounts for module name changes in retimed designs
-debug Prints debug information in equate.log file
-stop Sets up equate environment but does not run verification
-restart Launches conformal with for existing dofiles and updates only job result
-help Shows equate help
VPG FV Training
38 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Unit List file
List file contains information about all the units including the instance names and the syn/cts build labels.
A list files looks like….
designtype:(unit|par);
extra_equate: (-ultra on);
fc_bvr: (bbox|unbbox); Full chip behavior whether is bboxed or not
fcfv_bbox_fubs:; specifies the fubs to the blackboxed in FC FV. Eg: fubs in euunit
gate_design:mbcunit; The name of the unit as in the netlist
global_instance:/bdwgtt1/gtgti1/gtsqidi1/mbcunit1;
hier_fv_design:; fubs on which hier FV is run
hier_fv_instance:;
instance:/mbcunit1;
mem:; Memory used
new_hier_node:; Any extra fubs that are to be added in the hier file
par:;
pool: slow; The pool to be used (slow,fast)
report: (0|1); Whether this unit has to be reported in the summary report
rtl_design:mbcunit; rtl design name
runfv:(0|1);
sec:;
status:;
tpt:;
waive_bbox:0;
The attributes in blue are under SFVO’s control while the one in red are under PO’s control
VPG FV Training
39 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Launch_RTL2Gate_FV
VPG FV Training
41 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Launch_RTL2Gate_FV (Cntd)
When no option specified, script launches FV job on the local machine. Default option
VPG FV Training
42 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Other Types of GT SD FV
Datapath FV
XBUF FV
Gate2Gate FV
The goldenized post-retimed netlists are plugged into RTL during unit FV to simplify verification
The following steps are followed in SD team to perform Datapath FV
(-syn|-cts options specify the collateral in the FV model which is picked up for DPFV. Use –syn in early TNETs
when only syn partition collateral is available in FV model. Use –cts once cts partition collateral is available in
FV model and for signoff.)
1. Setup DP FV Runarea (Use –syn in early TNET when only partition syn collateral is available.
Setup_DP_FV –chip –dir <release1_DP> -syn|-cts
2. For each partition, launch DP FV for all the retimed datapath fubs
VPG FV Training
44 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Xbuf FV
GT RTL instantiates “xbuf” parameterized modules (modules with pass through wires) as a mechanism to
specify timing exceptions. GT PV flow uses the xbuf instances in the SD database to automate generation of
timing exception constraints.
XBUF FV is not a functional FV check. It is a flow which uses FV engine to check that the RTL timing
exception intent remains intact throughout RLS build flow to prevent incorrect PV exception constraint
generation.
It’s a RTL2Gate FV. Its run during ECO’s and sometimes at the end of FSO
Xbuf FV is run to verify:
• Xbuf buffer timing path matches between RTL and Netlist
• Xbuf parameters matches between RTL and Netlist
• All the xbufs are bboxed in xbuf FV
VPG FV Training
45 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Gate2Gate FV
Gate2gate FV is a netlist vs netlist FV and it’s a flat FV (no hierarchy underneath)
Its used to verify if
• The correct netlist has been released to FC roll-up
• Netlist released to ECO model for UO’s is same as the FV clean netlist of the prev model
• The DB released by the LPEO is functionally same as the ICC DB
VPG FV Training
46 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics
More information on failing points can be obtained from the below reports
▪ log/<design>.conf.log
▪ reports/<design>.unmapped.rpt
▪ reports/<design>.compare.data.rpt
Note: Unmapped points are different from not-mapped points though they sound similar
VPG FV Training
48 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics (cntd)
For Further debug, open conformal in interactive mode by following the below steps:
❑ `cd` to run directory
❑ GenerateDebugFVDo
❑ Run ‘cmd/<unit>.cmd.debug`
❑ LEC> set gui
VPG FV Training
49 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Mapping Manager
Mapping Manager
LEC
window
Unmapped
Points
Mapping
Mapped Manager
Points Window
Compared
Points
VPG FV Training
50 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Mapping Manager (Cntd)
Extra: Key point that exists only in the Golden design or only in the
Revised design, but does not effect the circuit functionality. Example:
scan_in, scan_out
VPG FV Training
51 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Mapping Manager (Cntd)
Abort: Key points not yet proven equivalent or non-equivalent due to timeout
or other system parameters (yellow-filled circle)
VPG FV Training
52 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Mapping Manager (Cntd)
Comparison results?
• Filtering comparison results
VPG FV Training
53 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Diagnosis Manager (Cntd)
VPG FV Training
54 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Diagnosis Manager (Cntd)
Compared Point
Diagnosis Points
Corresponding Support
Non-corresponding
and not mapped (red)
M Non-corresponding but
mapped (yellow with M) Error Patterns Error Candidates
VPG FV Training
55 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Diagnosis Information
VPG FV Training
56 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Diagnosis Information (Cntd)
VPG FV Training
57 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics - Schematics
VPG FV Training
58 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Debugging Basics – Source Code Manager
VPG FV Training
59 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Abort Resolution Techniques
The steps for resolution depend on the cause of the abort and other factors with the design. This section
describes some advanced techniques on how to resolve aborts.
1. Hierarchical Compare: Achieved by using @ec on the aborting fub in hier file. This helps to breakdown the
aborting logic cones to two hierarchical compares. Very effective way to handles aborts, but introduces
boundary optimization failures
2. Analyze abort: This is used after comparison to automatically recommend steps to resolve the abort points
in your design. This command can also perform the recommendations and re-compare the design, which
might automatically solve the aborts without any further input. Syntax: analyze abort –compare
3. Multi threading: To reduce the time spent on RTL-to-gate comparisons, where aborts on a few key points
can consume a large portion of the time, the parallel analyze abort feature might be more effective. Syntax:
compare –threads 6
4. Partitioning: breaks down large logic cones in the aborting input cone to resolve them. Syntax: add partition
points –abort_cones –all
5. Isolating abort modules: automatically identifies any datapath fubs and applies merging of operators used
to resolve aborts. Syntax:
VPG FV Training
60 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV Model Basics
Before running SD FV, a FV model must first be built by the FV execution owner.
The FV model provides an infrastructure to manage multiple RTL models, multiple partition
RLS Build collaterals, FV global and unit/fub constraints, specific FV abort resolution procs
and facilitate the launch and tracking of Datapath FV, Unit FV and Fullchip FV in a single area
ctec
noa …
h
aub_w
RETIMED clock layo
are RTL syn scan cts eco
NETLIST misc ut
equate.rt <pro
l_lib.file mod mod j>
el1 el2 Chip
label
gtmscp gtmscp …
ar1 ar2
label label
1 2
VPG FV Training
63 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV COLL Directory Structure
COL
L
Renamin
g.rules
HIE HIE
gtmscpar
R R Gtmscpa Gtmscpa
1.const
BUILD BUILD r1.scan. r1.scan
REPORTS REPORTS Gtmscpa Gtmscpa
Tdb.h Rtl_model_p
r1.cts r1.const
ier st_prcs RELEASE_FIL
ES
Rtl_lib_
def_file Releas gtmscp gtmscp
e.info ar1 ar2
label label
1 2
Label1.li
st
VPG FV Training
64 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV Run Area Directory Structure
Run
Area
Section
s
Partitio
ns
VPG FV Training
65 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Setting up FV Par Label
• Each partition can have multiple labels, however only one label will be made default one by
the process owner. SFVO’s are allowed to setup new FV labels.
• All FV utilities are run based on default label if a label is not explicitly specified
• ALL the netlist paths should strictly follow the format “/p/<proj>/build/models/
<model>/<par>/build/ios/<label>/<par>.<flow>.vg[.gz]”
VPG FV Training
67 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV COLLATERALS
Collaterals required for postsyn FV from build area are:
• HIER files
• dt_scanshift report from reports area
• Retimed netlists and svfs for datapath blocks from build ios area
• Resources.syn.rpt files from build reports area
VPG FV Training
68 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Setting up syn FV label
Re-synthesis of any partition will require resetting the postsyn FV collaterals of that partition. This can be
done using the below command
Add_Syn_Par_2_Model
Usage:
Required
− cur_model : current FV model name
− par : partition
− vault
− milestone : Vault milestone name (i.e. TNET2, FSO)
− build_model : build model name (build model checked into FV vault)
− ref_model : reference FV model used to build current FV area (to carry forward changes made in ref
model
Optional
− rep : replaces if the label already exists
− copy : copies the par netlist in the netlist area under the respective partition label
Note: This script will not make the label the default. The Process Owner can only make the label default
VPG FV Training
69 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Setting up CTS FV label
• Re-synthesis of any partition will require resetting the postsyn and postcts FV collaterals of that partition.
• The below script will trace the corresponding syn DB used for the new cts run and builds new syn label
• This script will generate new cts/const files
• It will soft link the syn area HIER file to the cts area hier file
Add_CTS_Par_2_Model command is used to reset them.
Usage:
Required
− cur_model : current FV model name
− par : partition
− vault
− milestone : Vault milestone name
− build_model : Build model checked into FV Vault
− ref_model : reference FV model used to build current FV area (to carry forward changes made in ref
model)
Optional
− rep : replaces if the label already exists
− syn_rep : replaces the postsyn label if it already exists
− copy : copies the par netlist in the netlist area under the respective partition label
Note: This script will not make the label the default. The Process Owner can only make the label default
VPG FV Training
70 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV Area Setup (for private DB)
Setup_RTL2Gate_FV
Usage:
Required:
-par <par> Setup FV area for partition
-chip Setup FV area for chip (par, sec and chip are mutually exclusive)
-syn|cts Setup FV area for chip
Optional :
-par_label <label> Only applicable for par setup. Picks par label other than default label
-dir <dir name> Uses this as the new directory name to set up FV area
Example:
Once the syn/cts collaterals for the label (DB) of interest are generated, the following commands will build
the FV run area:
• cd/p/<proj>/fv/models/<model>/[syn|cts]/work/
• Setup_RTL2Gate_FV –syn|cts –par <par> -[netlist] –dir <name of the directory> -par_label <par label>
Once the area is setup, FV can be launched on all units using the script. (Details of the script usage are given
in the following slides)
• Launch_RTL2Gate_FV –cts|syn –runmode batch –par_label <par label>
VPG FV Training
71 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Useful FV Utilities
Extract_Netlist_FV.pl
• To extract the partition/unit level netlists from FC or sec level netlists
• Usage: Extract_Netlist_FV.pl –[par <par name>|-design <design1>:<design2>] –netlist <FC/sec/par/unit
netlsit> -dir <output dir>
GenFVSummary.pl
• This script is run in the section /partition fv run area.
• Generates FV summary Table
• Usage: GenFVSummary.pl –[par|sec] <name> -[syn|cts]
GenFVSummary.pl –chip –[syn|cts]
FindUnitPar
• To find the partition the unit belongs to
• Usage: FindUnitPar <unitname> [-cts|-syn]
Get_Par_Label
• To get the default FV par label for the partition
• Usage: Get_Par_Label -par <par name> -syn|cts
VPG FV Training
72 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Non-FV’ble Units
• Lcpunits: Due to lcp controller fub duplication that happens during place_prep stage, postcts
FV will fail for lcpunits. Until we get RTL updated to match netlist duplication, this will
remain as failing
• During FSO, new rtl with lcp duplication is released
• Cpunits: During the initial tnets’s cpunits are expected to fail due to existence of clock spines.
However these units are unblackboxed at FC postcts FV, so we don't loose any coverage.
• During FSO, workarounds would be developed to make them FV clean
VPG FV Training
73 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Misc Commands/Scripts
To save a conformal session for later use:
checkpoint <checkpoint_filename> [-protect <password>] [-replace]
lec -restart_checkpoint <checkpoint_filename> [-protect <password>]
Hier files should not have any hierarchies underneath “@dcudp “ fubs, because we will be using retimed
netlist for those instead of rtl sdpv. This sometimes causes”Missing files” error. Below is the script that
removes these hierarchies.
/p/<proj>/fv/bin/dcudp_hier_fix.pl <input .hier file> [output .hier file]
VPG FV Training
74 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
FV Execution Team Responsibilities
SFVO (Section FV Owner)
• Debug any failures and communicate it to Unit/ Process owners if it is a real issue. (rtl fixes, renaming
rules, DC issues, icc issues etc.)
• Work with Unit/ Flow (Syn/ PS/ CTS PEOs)/ Process owners to understand/ fix Structural Design related
issues
• Make sure ‘all units’ are passing at every stage of the flow
• Make sure if all not-mapped points (that are not getting compared) are understood
• Keep the process owner in the loop on ALL failures/ issues
• RTL , netlists and CONST files shouldn’t be modified
• Official runs should not have hacks in map and dofiles dir
Process Owner
• Setup Model/ rtl/ netlist areas
• Make sure all the libraries have been setup
• Make sure all the CTS mapping information is in place
• Make sure global renaming rules are in place
• Run FC FV
• Debug global FV failures
• Keep track of status of all units in all partitions
• Communicate any FV failures to GLS team
• Work with DA/Vendor on any tool/environment issues
VPG FV Training
75 INTEL CONFIDENTIAL, FOR INTERNAL USE ONLY
Q&A
Backups
Thank You