Title: FEV And Netlists
1FEV And Netlists
- Erik Seligman
- CS 510, Lecture 5, January 2009
2Goals
- Review how logic changes in synthesis
- Understand how to make RTL-netlist FEV work
- Mainly looking at synthesized netlists
- Grab Bag of cool techniques for FEV
- Look at interesting corner cases
3Synthesized Netlist Basics
- Synthesized netlists built from cell library
- Cells hide transistor-level logic
- Delivered with behavioral descriptions
- Library owners certify correctness
- Be sure you have a library!
- FEVing full block at transistor level is
expensive - Cell and custom FEV is separate process
4Custom Cell FEV
- Typically done by specialized team
- FEV tools like have special functionality
- LEC custom
- abstract logic
- Users have to give many hints to tool
- Transistor, pin directions
- Which nodes are meant to hold state
- Domino precharge nodes
5State Negation And Replication
6Are these equivalent?
a
f1
f2
b
out
ck
a
f3
f4
out
b
ck
7Yes- State Negation is OK
a
f1
f2
b
out
ck
a
f3
f4
out
b
ck
add mapped point f2 f4 inv OR set mapping method
-phase
8Are these equivalent?
a
f2
b
out
ck
a
f2_1
b
out
ck
f2_2
9Yes- State Replication
a
f2
b
out
ck
a
f2_1
b
out
ck
f2_2
add instance equivalence f2_1 f2_2 rev
10Dont Forget Key Point Mapping (One
Representative)
a
f2
b
out
ck
a
f2_1
b
out
ck
f2_2
add instance equivalence f2_1 f2_2 rev add
renaming rule r1 f2 f2_1 -gold
11Pin Replication Also Common
a
f2
b
out
ck
a
f2_1
b
out
ck1
f2_2
ck2
add pin equivalence ck1 ck2 rev add renaming
rule r2 ck ck1 -gold
12Scan Chains and FEV
13What Is A Scan Chain?
- Enable observation of internal states
- Critical for post-silicon debug
- May enable setting internal states as well
- May involve all (full scan) or some states
- Do this by creating serial chain
- Minimize need for additional pins
- Cost Extra wires more complex flops
14Logic Example (no scan)
f1
f2
a
out1
ck
f3
f4
out2
b
ck
15Logic Scan Chain
sen
si
f1
f2
a
out1
ck
so
f3
f4
b
out2
ck
16Handling scan chains in FEV
- Be careful! Scan in netlists, but not RTL
- Scan insertion is during synthesis
- Identify scan enable conditions
- May be simple scan enable pin
- Or combination of pins / states
- Use FEV constraints to disable in netlist
- add pin constraint 0 scan_en rev
- Plan to address verification hole!
- Gate-level simulation of netlist
- Or custom scripts to walk chains
17Clock Gating
18What is Clock Gating?
- Goal Power Reduction
- Stop clock to inactive flops
- No clock change ? No switching power
- Automatically inserted in synthesis
- Thus in netlist but not RTL
19Enabled Flop (no clk gating)
en
ff
a
out
ck
20Enabled Flop Clock Gating
a
ff
out
ck
en
DLAT
set flatten model gated_clock
21Black Boxes
22What is a Black Box?
- Area of logic to ignore for FEV
- Usually a Verilog module instance
- Why ignore some logic?
- Non-FEVable analog circuits
- Hard IP externally supplied block you trust
- Divide conquer different ownership
- What is verified?
- Drivers of bbox input pins
- Recipients of bbox outputs
- Internals are ignored be careful!
23Black Box Example
TOP
YELLOW
a
c
b
add black box /top/yellow both
24Black Box Example
TOP
YELLOW
a
c
b
- TOP.YELLOW is a single key point
- But mapped only if a, b, and c have matches
- Verify fails if logic driving a or b mismatches
25Dont Care (DC) Space
26Are these equal?
a
or
b
a
xor
b
27What if we see source RTL
a
or
out
b
a
xor
out
b
case (a,b) 2b00 out0 2b01 out1
2b10 out1 endcase
28What if we see source RTL
a
or
out
b
a
xor
out
b
case (a,b) 2b00 out0 2b01 out1
2b10 out1 endcase
Unspecified case is a Dont-Care (DC)
29Dont Care Cases
- Often result from underspecified RTL
- Synthesis has freedom to choose values
- Can optimize for area, timing, etc.
- FEV tools can handle automatically
- BUT DCs only come from GOLD model
- DC in REV model is an error (E)
- Asymmetry between GOLD and REV!
30Watch out for confusion!
RTL
FEV-clean
FEV-clean
Netlist1
Netlist2
FEV mismatches
31Pipeline Retiming
32Are these equivalent?
f3
a
out
b
f2
a
out
b
f1
33Are these equivalent?
f3
a
out
b
f2
a
out
b
f1
- Yes, in a sequential sense.
- Logic moved across flop Pipeline Retiming
34Pipeline Retiming and FEV
- Retiming violates state matching
- Shouldnt expect combo FEV tool to handle
- BUT recent tools can handle some cases
- FEV tools aware of synthesis techniques
- Internally push logic along pipeline to match
- add module attribute m1 pipeline_retime
- Many limitations, be careful
- Retiming must be isolated to one module
- Can cause runtime/memory complexity
- Need sequential FEV for more general cases
35References / Further Reading
- Scan
- http//en.wikipedia.org/wiki/Scan_chain
- http//web.cecs.pdx.edu/greenwd/ch03art.pdf
- Clock Gating
- http//www.eng.auburn.edu/vagrawal/COURSE/E6270_F
all07/PROJECT/LUO/snug2000.pdf - http//www.chipdesignmag.com/display.php?articleId
915 - Pipeline Retiming
- http//www.cdnusers.org/community/encounter/resour
ces/resources_imp/verif/Dtp_cdnlive2005_1207_Emban
ath.pdf - http//www.cdnusers.org/Portals/0/cdnlive/na2006/2
.3/2.3_paper.pdf