GSFGSDFG
GSFGSDFG
For
orma
mall A
Ass
sse
ert
rtio
ion
n base
basedd VeVeri
rifi
fica
cati
tion
on
in Ind
ndust
ustri
ria
al Sett
ttin
ing
g
All o k J ain
A ai n Raj
Raj S. Mitr
Mit r a
Cadenc
adencee Design
esig n Systems
Syst ems Texas Instruments
Instr uments
Noida Bangalore
Jaso
Jasonn Ba
Baumg
umgaartne
rtn er Pallab Dasgupta
IB M
IBM Indian Institute
Institu te of Techno
Technolog
logyy
Auu s t i n
A Kharagpur
Desi
sign
gn Au
Auto
tomati
mation
on Con
onferenc
ferencee, San Diego,
Diego , Ju
June
ne 8,
8, 2007
Ag
A g en
endda
Introduction to Formal Verification
■ Model Checking
● CTL Model Checking
● LTL Model Checking
Properties
Formal
Assertion Does property hold
Based on the RTL design?
Verification
RTL design
Benefits
■ Does not require user to provide test vectors
■ Does exhaustive verification
Ag
A g en
endda
Introduction to Formal Assertion Based Verification
■ What is the problem statement?
■ Temporal Logics
● LTL and CTL
● PSL and SVA
■ Model Checking
● CTL Model Checking
● LTL Model Checking
■ Symbolic Model Checking
● BDD and SAT based techniques
■ Ab
Abstractions
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
Tempo
mpora
rall Lo
Logic
gics
s
Logic extended with the notion of time
Tradeo
radeoffff betw
betwee
een
n expre
express
ssiibili
bility and
and com
complexi
plexity of verifi
verifica
catition
on
Xp
Fp
Gp
pUq
p Wq
Time
LTL
LTL - Exa
xample
mples
s
Safety
afety Propert ies - G ¬(Critical1 ∧ Critical2)
Pro perties
■ Something bad never happens
Liveness - F (Re
(Req1 ∨ Req2)
■ Something Good will eventually happen
Fairness - G (Re
(Req1 F Critical1)
■ If something is requested, it eventually gets scheduled
Strong
tr ong ir ness - GF (Re
Fairness (Req1 ∧ ¬ Critical2) GF Critical1
■ If something is repeatedly requested, it repeatedly gets scheduled
Com
ompu
putatio
tationn Tree
Tree Lo
Logi
gic
c (CT
(CTL)
A form of Branching Time Temporal Logic
AG
A G p - On all pa th s , the property holds globally
p aths
Com
ompu
puta
tati
tion
on Tree
Tree Lo
Logi
gic
c
■ AG
AGEF (resetState)
■ A powerful and useful resetability test
Strong
tro ng fairn
fairneess
■ Cannot be specified in CTL
Com
ompari
pariso
sonn betwee
between
n LTL and
and CTL
Expressibility
■ Neither is superior to the other
■ LTL
LTL - Stron
trongg fairne
fairness
ss CTL - Deadloc
eadlock
k
■ CTL* - Superset
uperset of bot
both LTL
LTL and
and CTL
CTL
Verification Complexity
■ LTL
LTL - Expon
xponen
entitial
al in
in size of
of form
formula
ula
■ CTL – Linear
Linear in
in size ofof form
formula
ula
Compositional Verification
■ LTL
LTL – Yes CTL – No
Am
Amenable to Simulation
■ LTL
LTL – Yes CTL – No
Preference
reference in the industry
industry – LTL
LTL flav
flavor
or
Com
ompari
pariso
sonn betwee
between
n LTL and
and CTL
L TL CTL
Expressibility
Strong Fairness Deadlock
(CTL* superset of LTL and CTL)
Verification
rif ication Comple
ompl exity
xit y
Exponential Linear
(in size of formula)
Composit
ompo sition
ionaal Ve
Verification
rif ication Yes No
Am
A m enab
en abll e to
t o Si
Simm u l ati
at i o n Yes No
Preference
reference in the indus
industr
try
y – LTL
LTL flav
flavor
or
Ind
ndus
ustr
tria
iall La
L ang
ngua
uage
gess
Limitations of LTL and CTL
■ Mainly academic languages for experts
■ Unreadable by average user
■ Open to mis-interpretation
■ Sometimes un-intuitive to express properties
Industrial Languages
■ Property Specification Languages (PSL)
■ System Verilog Assertions (SVA)
■ Extending LTL with notion of sequences
● PSL al
also has
has a CTL flavor
avor - Not used very often
often
Ov er v i ew o f PSL
Boolean Expressions
■ expressi ons Verilog xor VHDL
HDL expressions How
■ PSL/Sugar functions: rose(), fell(), prev(), ... When
What
Temporal
mpo ral Operato
perators
rs
■ always , never , next , until , before, eventually , abort , ...
■ @ -> |-> |=> ; { } [* ] [= ] [-> ] && & | :
Verification Directives
■ assert , assume, restrict , cover , ...
Modeling Const
Construc
ructs
ts
■ HD s tatements used to model the environment
HDLL statements
Invariants
Som
Something
ing that should never happen!
For example
le:: An und
underflow s hould
hould never
never occur
Verification
Directive
How Temporal
When Operator Boolean
What Expression
assert_
ssert_no_
no_unde rflow : assert never (rea
underflow readd && emp ty );
mpty
How When What
label (to apply) (expression (to check)
should
be true) This assertion
should hold
ho ld at
at
every
every ti
time
me step
assert_
ssert_no_
no_underflow : assert never (rea
underflow readd AND emp ty );
empty
Cond
ondit
itio
iona
nall Be
Beha
havi
vior
or
Example
le:: If A receive
ceivess a Grant,
nt, the
then B does not
assert_if_GntA_no_GntB : assert
always (G (Gnt
ntAA -> ! GntB)
GntB ) @(pos
poseedge clk)
clk ) ;
assert_if_GntA_no_GntB : assert property (@(posedge clk)
(GntA) |-> (! GntB))
GntB)) ;
Implication A t t h e ri
At r i si ng clk,
operatorr (-
operato (->)
>) if GntA is high ,
expresses then GntB
GntB must mu st
“ if..
if....then” be low
GntA
if i f if if if if i f if
then then
GntB
clk
Mul
ulti
ti--Cyc
ycle
le Con
Condi
diti
tion
ona
al Be
B eha
havi
vior
or
Example
le:: A Grant is alwa
lways follow
llowed by Bus
Busy
y
asse
assert
rt_b
_bus
usy_
y_aft
after_G
er_Gnt
nt : assert
always (GntA OR GntB
GntB)) -> n ext Busy @(risi
(rising
ng_e
_edg
dgee (clk
(clk))
)) ;
assert_busy_after_Gnt : assert property (@(posedge clk)
(GntA || GntB) |=> (Busy)
(Busy))) ;
Impli cation
Implicati on (->)
(->) and
‘next’ t ogethe
ogetherr
express multi-cycle
conditional
GntA behavior
i f i f
GntB then
i f
then
GntA
GntB
clk
Compo
ompound
und Asse
A sserti
rtions
ons
Example: If Request
Request is followed by Grant, then next is Busy, and
and next is Done
Done
{ ReqA
ReqA;; GntA
GntA}} |=> {Busy
{Busy;; Done
Done}} @(posedge clk)
clk ) ; The two
asserti
assertions
ons are
ReqA i f i f i f i f i f i f i f i f equivalent.
next next next next next next
GntA i f i f i f i f i f i f
then then
Properties
PSL/SVA
Model Does property hold
Checking on the RTL design?
Model Checking
■ Does the model satisfy the property?
■ Does not require any test vectors
■ Does exhaustive verification
How do
doees Mod
Modeel Che
Check
ckin
ingg wor
w ork?
k?
x
x x
x
x
x
x
Model Checking
x x
x
x
x
■ Requires no test vectors
x ■ Works on entire state
x
x
space
■ Breadth first search
p [0]
FSM Model
p [1]
r =1
r =0 r =0
0 1 2 3 CTL Property
r =1 EF (p = 2)
Start state
Starti
arting from start state,
state, can
can the coun
countter even
eventtual
ually cou
count
nt upt
upto 2
CTL Mode
Mod el Chec
Chec k i n g
Evaluate the CTL property on the model
■ Evaluate EF (p = 2) on the FSM
r =1
r =0 r =0
0 1 2 3
r =1
Least
Least fixed
f ixed Point
p [0]
p [1]
FSM Model
r =1
r =0
CTL Property
r =0 EF (p = 2)
0 1 2 3
r =1
CTL Mod
Modeel Che
Check
ckin
ingg on
o n the
t he bu
bugg
ggy
y de
d esi
sign
gn
Evaluate the CTL property on the buggy model
■ Evaluate EF (p = 2) on the buggy FSM
r =1
Least
Least fixed
f ixed Point
r =0
r =0
0 1 2 2
r =1
Buchi
uchi Automata
utomata
■ Ac
Accepting state is visited infinitely often
-aut om
omaata for de
desi
sign
gn
r =1 r
t [1]
t [0]
r =0 r =0
0 1 2 3
r =1
(r =0,t=1) (r =0,t=2)
(r =1,t=0) (t=0)
(t=0)
-aut om
omaata for de
desi
sign
gn
(r =0,t=1) (r =0,t=2)
(r =1,t=0) (t=0)
(t=0)
Inva
Invalid Behavior – (r =1,t=1) ………
L(D)
L(D) – Set of all val
valid beh
behav
aviiors of
of the des
desiign
-aut om
omaata fo
forr pro
p rope
pert
rty
y
Every LTL property can be expressed as ω-automata
F (t = 2)
Al
Alternatively eventually! (t == 2)
t≠2
t=2
■ *
(t ≠ 2) (t = 2) (true)
ω
■ …........................................ (t = 2) ……………………………..
…..
L(P)
L(P) – Set of all val
valid beh
behav
aviiors of
of the prop
property
erty
LTL Mod
Modeel Check
Checkin
ing
g
LTL Model Checking is Language Containment
(r =1,t=0)
(t 0)
(t 0)
Cross
(r =1,t≠0) (r =0,t≠2)
(r =0,t=1) (r =0,t=2)
Product
(r =1,t=0) (t=0) (t=0)
t≠2
Complement Empty Language?
t=2
t=2
LTL
LT L Mod
Modeel Che
Check
ckin
ingg on
o n our
o ur Exa
xamp
mple
le
F (t = 2)
(r 1,t 0) (r =0,t 1)
(t 0) t≠2
(r =1,t=0) (t 0)
(r =1,t≠0) (r =0,t≠2)
t=2
(r =0,t=1) (r =0,t=2)
(r =1,t=0) (t=0)
(t=0)
Will obtain a CEX – (r =1, t=0)ω
Ad
Add a constraint – G (r = 0) or alw
always(r == 0)
Constraints are used to model environment and limit behaviors
L(C)
L(C) – Set of all beha
behaviors
viors of
of the con
constrai
straint
nt
Check L(C) ∩ L(D) ∩ L(P) = ∅. Property will pass
Com
ompl
ple
exi
xity
ty of Model
Model Che
Check
ckin
ingg
CTL Model Checking
■ Evaluate property over the FSM structure
■ Notion of fixed point computation
■ Complexity is linear in the size of the formula
LTL Model Checking
■ Notion of ω-automata
■ Translate design and property to ω-automata
■ Then LTL model check is simply a graph problem
■ Complexity is exponential in the size of the formula
What problem remains? The State Explosion Problem
■ Complexity is linear in the number of states in design
■ Exponential in number of state bits in the design
Ag
A g en
endda
Introduction to Formal Assertion Based Verification
■ What is the problem statement?
■ Temporal Logics
● LTL and CTL
● PSL and SVA
■ Model Checking
● CTL Model Checking
● LTL Model Checking
■ Symbolic Model Checking
● BDD and SAT based techniques
■ Ab
Abstractions
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
Bina
Bi nary
ry Deci
cisi
sion
on Dia
iagr
gra
ams
a
b
a
0 1
a b c out b b
0 1
0 0 0 0
0 0 1 1 c c c c
0 1 0 0 0 1
0 1 1 1
1 0 0 0 0 1 0 1 0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 1
Bina
Bi nary
ry Deci
cisi
sion
on Dia
iagr
gra
ams
out
Reduced Order BDD (ROBDD)
Merge isomorphic nodes
a Remove redundant tests
b b
out
c c c c
a
0 1 0 1 0 1 1 1 b
0 1
BDD base
basedd Sym
Symbo
bolilic
c Mod
Modeel Check
Checkin
ing
g
Build a symbolic FSM model using BDDs
Properties
PSL/SVA
Symbolic Does property hold
Model on the RTL design?
Checking
p1
p0 n0
p0
p1 n1
r =1 n1 n1 n1
r =0 r =0 n0 n0
00 01 10 11
r =1
0 1
r =0 r =0
00 01 10 11
r =1
r
p1
n1 p1
p0
r ( 0
n0
1
AND
A ND n1 n1 n1
) = p0
1 0
n0 n0
0 1
B DD Base
Basedd Mo d el Check
heckii n g
Benefits
■ Al
All operations can be done symbolically
■ Av
Avoids upfront state explosion of explicit FSM
However, not a magic solution
■ Size of BDD dependent on variable order
■ Exam
xample – for an n-bit adde
adder
r
● Best order
order is line
linear,
ar, Worst is
is expon
exponen
entitial
al
■ Finding the optimal order is a very hard problem
● NP-complete problem
(¬a ∨ b) ∧ (¬b ∨ c ∨ d)
a g
b
c p
p0
p1 p2 p3 … pk
p0
■ Ab
Abstractions
Ag
A g en
endda
Introduction to Formal Assertion Based Verification
■ What is the problem statement?
■ Temporal Logics
● LTL and CTL
● PSL and SVA
■ Model Checking
● CTL Model Checking
● LTL Model Checking
■ Symbolic Model Checking
● BDD and SAT based techniques
■ Ab
Abstractions
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
Ab
A b s t r ac
actt i o n
Throw away information that is not required for proof
Ab
Abstraction is key to scaling capacity of model checking
One of most important abstraction
■ “Localization" abstraction
■ Throws away information not relevant to the given property
G (p Xp)
Make g a pseudo-input
Interpolation
■ SAT based Unbounded Model Checking
■ Uses
ses over-app
over-approxim
roximate
ate reacha
reachabil
biliity analysis
analysis
Ind
ndus
ustr
tria
iall For
Forma
mall ABV
A BV Too
ools
ls
Various Commercial Tools
■ Caden
adence
ce – Incisive
Incisive Formal
ormal Veri
Verififier
er
■ Synopsy
ynopsyss – Magell
agellan
an
■ Mentor – 0-in
■ Jasp
Jasper
er – Jasp
JasperG
erGold
old
■ OneSpin, Real-Intent, Averant, Axiom
Combination of Symbolic Model Checking and Abstractions
● Memory Controller
● SoCC
oC Conne
onnecti
ctivit
vity
y
● SoCP
oC Performan
erformancece
Ab
Abstraction is the key
■ Au
Automatic
■ Manual
An
Analysis is important (apriori and dynamic)
■ For handling formal proof complexity
■ For predictability of FV usage and results
Realility
ty Bi
Bites!
tes!
80% of medium / large sized modules experience state explosion
■ For one or more assertions
■ No golden abstraction(s) apply across all designs
70% of initial counter-examples are spurious
■ More so because of incorrect constraints, rather than incorrect
assertions
■ Decomposition in practical scenarios lacks formalism
50-70% of time is consumed in modeling / setup / coding
■ Rest is tool run time
■ Execution
● An
Analyzing indeterminate results
● Ad
Adding / Removing / Optimizing Constraints
● Identification and Closure of False Failures
● Itera
Iteratition
ons
s could
could be large – due
due to adho
adhoc
c cons
constr
traint
aint updates
updates
■ Closure
losure – Signoff
ignoff
● Coverage analysis, Verification report
Al
All the above are inter-related
■ Closure has no meaning if results are indeterminate
■ Indeterminate results point to lack of proper abstraction
■ Lack of proper abstraction results from improper planning
For
orma
mall Ve
Veri
rifi
fica
cati
tion
on Deci
cisi
sion
onss
Ab
Abstraction decision
■ Identify sweet spots (control versus data path)
■ What parts of the design need to be abstracted out?
Modeling decision
■ Choosing the correct way of modeling the property
■ Complex SERE’s versus simple properties
Property decision
■ Which lan
langu
guag
age
e ? Whi
Which
ch AI
AIP’s ? Gl
Glue logic
logic ?
Tool specific Decision
■ Chose the correct FV engine
■ Chose correct tool (abstraction) options
For
orma
mall Veri
Verifi
fica
cati
tion
on Pla
lann
nnin
ingg
Predict the problems in advance
■ Based on design knowledge, tool, experience, etc
Predict
■ Ap
Approximate design complexity (design analysis)
■ Ap
Approximate proof complexity (related to constraints and logic cone of
assertions)
Decide
■ Whether to partition or not ? Where to partition ?
■ Ab
Abstraction mechanism associated with the partitioning
■ How to code assertions / constraints properly?
No gain!”
Fun
unct
ctio
iona
nall Pa
Part
rtit
itio
ioni
ning
ng
As
Assume guarantee reasoning
■ DUV is block A
● assert p A; assume pB p A
■ DUV is block B
● assert pB; assume p A
A B
pB
Using Protocol AIP’s
■ at master interface
● assume prop_slave* , assert prop_master*
■ at slave interface
● assume prop_master*, assert prop_slave*
Fun
unct
ctio
ional
nal As
Assu
sume–
me–G
Guara
uarant
nte
ee
Properties can be coded in layers (bottom up fashion)
Ap
Application:
■ Prove the correctness of lower level properties
■ Ap
Apply them as constraints thereafter to prove higher level properties
■ Example : Arbitration validation:
● Memory Controller
● SoCC
oC Conne
onnecti
ctivit
vity
y
● SoCP
oC Performan
erformancece
■ Av
Avoid integers, counters
Pro
rope
pert
rtyy Cod
Codin
ing
g Gui
Guide
deliline
ness
Guideline
uidelines
s – try the
these
se templat
emplates
es for each
each propert
property
y
■ Can it be written as “condition should/shouldn’t always happen”
■ Can it be written as
● prev_state (implies)
(implies) current_state
■ Can it be written using ‘event
‘event bounded
bounded window’
window’ – something
something happening
happening
between two specified events
■ Can it be written without using number of clocks (i.e. counter)
Event1 Event2
Event1 Event2
P P P P
as s er t f r am e as s er t i ndo
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
■ Methodology
● Planning for Formal Verification
● Property Coding Guidelines
● Formal Verification Flow
■ Case Studies
● Protocol Compliance : Bridge Validation
● Ar
Arbitration
● Interrupt Sorter
● Memory Controller
● SoCC
oC Conne
onnecti
ctivit
vity
y
● SoCP
oC Performan
erformancece
M R Model +
o e O D
d f
i
n Properties
i e
f v e
y e c
a t
h r o
s e C m
s o p
u m n o
m o s s
p d t e
r , Model Checker
t
i e a
o l i
n b A
n o
s r s
t Stuck ? None of the
a r
a YES
s c Ab
Abstractions working
s t Indeterminate
Indeterminate
e ,
r
t
i
o Results
Results
n
s
YES NO
cex Bug Hunting
Spurious
Spurious PASS (Directed Closure ?
NO Simulation
NO YES assisted MC)
Bug Hunti
unting
ng Mode
To find silicon bugs, or when the overall proof procedure does not
yield results
Functional Partitioning
■ Break design state space into logical sub-spaces
Directed simulation
■ Guide the system to known states
Formal Verification
■ To explore for bugs in the logical partition, separately
■ Usually apply this technique with some over-constraints
Bug
Bu g Hun
Hunti
ting
ng Examp
xample:
le: De
Dealiling
ng wi
with
th FIFO’s
Interesting points to check: Overflow/Underflow
■ If possible, “reduce FIFO depth / width”
■ Else light-weight simulation to “reach near corner points”
(a) Dynamic Simulation
(c ) Ap
(c) Apply FV from this
to Bring System to a state onwards
Known State
Rd ptr
● Memory Controller
● SoCC
oC Conne
onnecti
ctivit
vity
y
● SoCP
oC Performan
erformancece
■ Ad
Address Decoding ■ FSM state / transition
■ Ar
Arbitration bounds, FIFO full / empty)
■ Performance / Latency
Qualifier Variables
■ Ad
Add extra information to transaction (Address, Data)
Every protocol can be decomposed into functional layers
■ At
Atomic Transactions: basic transactions like read / write
● Handshake mechanism: Something holds until something else happens
● Basic definition for start / end of request, response
■ Complex Transactions: adds extra sequential information
● e.g. to bind atomic transactions in a “Burst mode”
● Basic definition involves start / end of transaction ‘windows’
■ Ordering: remember history of pipelined events
■ Out of order execution: properties for inter-thread transitions
Seri
riaal Pro
roto
toco
cols
ls
DATA & CONTROL shared on same transmission line
■ Difficult to separate
“rem
“remem
embe
beriring
ng”” previous
previous train
train of sign
signals
als – need
needs
s an FSM
FSM
■ E.g. Whether a train of 10 bits is a pre-amble or a post-amble
Increasi
Increasing effect
effect of
of history
history on
on current state deco
decoding
ding
Parallelism
Semantic (threads, Semantic
Information
Layer bursts) Layer
As
Assertions in a particular
level depends on those
AXI-OCP
A XI-OCP Br
Bridge
Characteristics:
■ 1 AXI interface, 3 OCP-2.0 1 OCP
Interfaces AXI
A XI AXI-OCP
A XI-OCP
AXI-OCP
A XI-OCP
■ Flop Count : 560 2 OCP
Bridge
Bridge
■ Pipeline depth (AXI) : 5
3 OCP
■ Threads Supported
isolation
Initialization: Use Simulation
● Use Addresses to restrict
■ 2 cycles IDLE after primary reset
other paths
is asserted
AXI-OCP
A XI-OCP Br
Bridge
Verification:
AI
AIPs used for AXI and 1 OCP
■ AXI
A XI
AXI-OCP
A XI-OCP
AXI-OCP
A XI-OCP
OCP Assu
As su me:
Master 2
Properties Bridge
Bridge
■ First prove each path is
Assu
As su me:
3 Slave
independent Properties
■ “If ad
address/thr
thread-id
-id is Prove: Other Signals
A3/
A3/T3, then MCmd
Cmd at Slave
Properties Prove:
OCP interface
face 1 & 2 is
is master
Properties
alwa
lways IDLE
DLE”
Handling indeterminate proofs:
■ Ap
Apply assume-
■ Reduce pipeline depth, # threads
guarantee
■ Prove each burst type separately,
■ Prove assertions in
simulation
AXI-OCP
A XI-OCP Br
Bridge
Project Statistics:
■ Number
umber of Assert
Assertiions : 125
125
■ Number of Constraints : 60
■ Number of Restrictions : 15
■ Total Time : 3 weeks (Tool runtime: 35%)
Sample Results
■ BUGS / Anomalies
● “Data was presented on the OCP port even prior to the corresponding
command acceptance on AXI”
● “Sequence of generated addresses incorrect for incrementing bursts”
I2C Con
Contr
trol
oller
ler [Gorai et al, DAC-
DAC-2
2006]
OCP I2C
The Event window where RRDY could be cleared divided into 4 parts
■ Based on Set Flags & Stop conditions
■ Ar
Arbitration Exceptions:
■ Protocol compliance check
● Bypass
■ Ar
Arbitration Check
● Configuration register
Bypass Check
OCP A r b i t er
OCP1
Modeling:
1
■ Protocol Compliance Check OCP2
● As
Assume-guarantee 2
■ Bypass Check OCP
OCP
OCP3 Ar
A
● Whenever there is request from Arrrbbiitter
A er
7
OCP3 to dedicated slave, it must
get serviced with zero-cycle OCP4
delay
■ Ar
Arbitration Check
Bypass Check
● Disable Configuration reg
Identify serviced masters:
● Disable Bypass
■ Check for ByteEn pass-through
■ Define events: Start / End of
■ Tie ByteEn to unique values (to
Requests
identify master requests)
■ Map the 10 requests on Slave
OCP1
OCP
OCP
Ar
A
Arrrbbiitter
A er
OCP4
Model
Model ‘reque
‘r equests
sts’’ as - Model ‘grants’ as
as considered
considered
considered by arbiter by arbite
arbit er
- Map ‘10’
‘10’ grants to ‘4’ grants
Characteristics:
■ Sorting between 32/48/96 interrupts (configurable)
■ Mask and Priority configurable for each interrupt
■ OCP Interface (for configuration)
■ Flop Count : 785 (for 32 interrupts)
■ Output after 8 clock cycles (sorting in groups of 4)
Scope of FV:
Disabled
■ Protocol compliance check
■ Sorting Algorithm Verification In t er r u p t s Sorting
Sorting w i n n er
Al
A
Alllggoorriitthhm
A m
OCP
0 1 1 0
Prop_s
i
Int
nteerr
rrupt
upt Cont
ontro
rolllle
er
Challenges
■ Mask & priority registers programmable via OCP interface
● Many combinations possible
Solutions:
■ Prove integrity of OCP data writes to internal registers
■ Then apply stability constraints on register
■ For intra-class checks, tie-off other interrupts
■ For inter-class checks, constrain values within each class to be same
■ Compare expected winner (computed by Verilog function) with actual
winner
Memo
mory
ry Con
ontr
trol
olle
ler
r
Characteristics:
■ Interface to SARAM core
■ Handshaking (with stall) with other bank-controllers
■ Total number of request buses (cpu, dma etc.) :9
■ Fixed Intra as well inter priority between requests
■ Pipelined CPU requests, DMA burst requests
■ Flop Count : 3500
■ Embedded SARAM, BIST controller
Scope of FV: Serialization check
● “Order of grants must be same as the requests”
● End-to-end property, encompasses all behavior of controller (mux, stall,
arbitration, etc.)
Memo
mory
ry Con
ontr
trol
olle
ler
r
SARAM
SARAM channel
channel
SARAM Cores
Ar
A r b i t r ati
at i o n l o g i c Strobe & inputs Output Stall Signals
Serialization
Stall
Stall behavio
behavior r
● As
Assume a floating primary input signaling their stall behavior
■ Identify and code assertions for internal points
Results:
■ More than 30 bugs found, most of them corner cases (related to flush
● As
Assertions : 215, Constraints : 12
● Total Time : 8 weeks (Tool runtime: 50%)
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
■ Methodology
● Planning for Formal Verification
● Property Coding Guidelines
● Formal Verification Flow
■ Case Studies
● Protocol Compliance : Bridge Validation
● Ar
Arbitration
● Interrupt Sorter
● Memory Controller
● SoCC
oC Conne
onnecti
ctivit
vity
y
● SoCP
oC Performan
erformancece
Connectivity Description:
■ Interface Definition: Port, direction, width, high/low, etc.
■ Conne
onnecti
ctivit
vity
y table: IP
IPx-Porty
x-Porty to IPa-P
IPa-Portb
ortb
Results:
■ Properties: ~ 5000 (at top-level of a 5M gate chip)
■ Time: 6 hours
■ Note: not
not chec
checking
king for val
validity
dity of
of xls itself,
tself, nor
nor IP functi
function
onali
ality
ty
To be done: Interrupt and Clock-reset connectivities
SoC Conne
onnectivity
ctivity Verifica
rification
tion
Track 1
PSL
RTL
Formal
Manual / Automated
Verification
Flow Generates RTL
Track 2
Connectivity related
bugs found
SoC Ba
Bandwidth
ndwidth Ve
Verifica
rification
tion [Bhat
[B hatia
ia et al, DAC-20
DAC-2007
07]]
D
Memory bandwidth validation: i
s
p
C
a
DMA l m E
a n J
■ Multiple masters accessing the g P
y e
U r i E
a n
n e G
memory subsystem Memory
Traffic
i
t
I
/
F
Controller
■ Master starvation affects system
performance
Interconnect
■ Traditional methods: simulation,
Verif
Verificatio
ication
n SS + Master
Master Mod els + PSL
Master
Mast
Ma er 1
ster
Mast
Master
er 2 Ch0 DUT
DB
M
.
. U Master
Mast er 2 Ch 1 Interconnect
. X
DI
SEL
EMIF
MIF
Master
Mast er 3
Master
Master
Mast er 4
Master
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
■ Complexities of High-End Processors
■ Al
Algorithmic Methods for Reducing Verification Complexity
■ Processor Verification Case Studies
● Sequential Equivalence Checking (SEC)
● Load-Store Verification
Dual
Dual pSerie
pSeriess CPU
CPU
SMT core (2 virtual procs/core)
64 bit PowerPC
276 million transistors
8-way superscalar
Split L1 Cache (64k I & 32k D) per core
1.92MB shared
shared L2 Cache
Cache >2.0 GHz
GHz
Size: 389 sq mm
2313 signal I/Os
>>1,000,000 Lines HDL
POWE
POWER
R arch itectur
it ecture:
e:
Symmetric multithreading
Out-of-order dispatch and execution
Various address translation modes
Virtualization support
Weakly ordered memory coherency
Moo
oore
re’s
’s La
Law:
w: A
AND
ND It’
It ’ s Get
Gettt i n g Ug
Ugll i er
Complexity increases for POWER5, POWER6,
POWER7, …
■ Al
Alleviated by modularity
● N identical proc cores on chip
■ Al
Alleviated by increased RAM size
Increase in speed
■ Contributes significantly to HDL
complexity
■ CEC methodology requires 1:1 latch
■ Desig
Designn HDL
HDL becomes diffidif ficul
cult-to-pa
t-to-pars
rsee bit-le
bi t-level
vel representatio
representationn
● Industrial FPU: 15,000 lines VHDL vs. 500 line ref model
Satisfi
atisfiab
abiility Modulo
odulo The
Theori
ories
es replaces word-lev
ord-level
el operati
operation
ons
s by
by
function-preserving, yet more abstract, Boolean predicates
■ Replace complex arithmetic by arbitrary simple (uninterpreted) function
…
Com
ompl
ple
exi
xiti
tie
es of
o f Hig
High-
h-E
End Pro
roce
cess
ssor
ors
s
Difficult
ifficul t to find place
placess to attempt
ttempt such abstractions on
high-
hig h-eend de
d esigns
sign s
■ Word-level info lost on highly-optimized, pipelined, bit-sliced designs
● Designs are tuned to the extent that they are “ almost wrong”
wrong” R. Kaivola
Ab
Abstractions may miss critical bugs
■ Remov
emoval
al of bitve
bitvector
ctor nonli
nonline
neari
aritities
es are lossy
ossy
● May mi
miss bugs
bugs due
due to roun
roundi
ding
ng mode
modes,
s, overfl
overflow,
ow, … if not careful
“Dispat
spatch to Com
Compl
pleti
etion
on”” proofs for
for processors
processors as compl
complex
ex as Pent
entium,
um,
POW
POWER,
ER, … are
are intractable given today’s technologies
■ Ad
Addition of sequential redundancy
■ Loss of word-level and isomorphic characteristics
“ Automatic Genera
Generalize
lizedd Phase
Phase Abstraction for
f or Formal Ve
Verification”
rifi cation” ICC
ICCAD05
AD05
Sequ
queent
ntial
ial Redu
dund
nda
anc
ncyy
High-end designs use sequential redundancy to minimize propagation delays
Pervasive logic sequential, yet disabled, logic intertwined with all latches
■ Increases #state elements; breaks isomorphisms, word-level properties
Counterexample
Design +
Trace consistent with
Properties
Original Design
50000 registers
Redundancy SixthSense
Problem Removal
Redundancy-
decomposition Engine
removed
via synergistic
40000 registers trace
transforms All transformations
are transparent to the user
Localization
Redundancy-
Engine
All results are in terms removed,
of original design localized trace
150 registers
Reachability
Engine
Redu
duci
cing
ng Ve
Veri
rifi
fica
cati
tion
on Com
Compl
ple
exi
xity
ty
Au
Automated techniques are continually increasing in capacity
However, for complex proofs, manual techniques are critical to push the
capacity barrier
■ Choi
hoice of
of testbench
testbench boun
bounda
dariries
es
■ Manual abstractions to reduce design complexity
■ Underapp
nderapproxi
roxim
mation
ations
s and
and overapproxim
overapproximati
ation
ons
s
■ Strategic development of constraints and properties
The
The best
best strat
strateg
egy
y often
often depe
depend
nds
s upon
upon som
some
e know
knowlledge
edge of
of avai
availabl
able algo
algos
s
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
■ Complexities of High-End Processors
■ Al
Algorithmic Methods for Reducing Verification Complexity
■ Processor Verification Case Studies
■ Input assumptions
● May be represented as constraints
● Or may be overridden by random drivers
■ Properties to be checked
● Coverage metrics, assertions, equivalence vs. ref model
■ Initialization information
● Initial states impact reachable states which impacts pass
pass vs fail
fail
Pro
roce
cess
ssor
or Ve
Veri
rifi
fica
cati
tion
on Con
Conce
cept
ptss
Verifying a proc component is basically the same as verifying any design
■ However, due to high-performance logic, verifying architectural
properti
properties
es typically
typically requir
requires
es a Tes
Testben
tbench
ch which is too large for proofs
proofs
Options:
1. Develop unit-level Testbench without worrying about proof feasibility
2. Develop minimal Testbench encompassing only functionality to be
verified
Pro
roce
cess
ssor
or Ve
Veri
rifi
fica
cati
tion
on Con
Conce
cept
ptss
1. Develop unit-level Testbench without worrying about proof feasibility
■ Unit-l
nit-lev
evel
el testbenc
testbenche
hes
s often
often bui
built for
for si
sim regardl
regardles
ess
s
● Use of synthesizable language reusable for FV, emulation, …
Easier for
fo r non
n on-e
-exp
xperts
erts to leverage (S(S)F
)FV
V
■ Manual abstraction is time-
time-consuming and difficult
d ifficult
■ Even if using experts to abstract, disperses formal spec effort
Highe
igh er cha nc e of pro
ch ance proo
ofs, corner
corner-cas
-cas e bu
bug s on smaller
s maller Te
Testbench
st bench
■ Data Pref
Prefetch
etch is much
much smal
smalller tha
than
n enti
entire
re Load
Load-Store
-Store Unit
Unit!!
Basi
Ba sic
c CP
CPU Ar
Arch
chit
iteect
ctur
ure
e
Load-
Store
Unit (LSU)
Floating
Instr Instr Point Global
Fetch Decode Unit (FPU) Completion
Unit Unit Unit
Fixed-
(IFU) (IDU) (GCU)
Point
Unit (FXU)
Branch
Execution
Unit (BXU)
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
■ Complexities of High-End Processors
■ Al
Algorithmic Methods for Reducing Verification Complexity
■ Processor Verification Case Studies
■ Power optimizations
■ Ad
Addition of test and run-time monitoring logic
Inputs =?
Initialized
NEW Design
Ps eu d o Cas e-St u d y : SEC
Due to synthesis limitations, transforms often done manually
■ Entail risk of (late) error introduction
■ Subop
uboptitim
maliti
alities
es tolerated to mi
minimi
nimize error
error risk
risk
Without
hout SEC
SEC, functi
unction
onal
al verif
verif is rerun upo
upon
n HD
HDL mod
modiificat
cation
■ CPU-months of simulation regressions
■ FV testsu
testsuitite
es re-run
re-run
Ps eu d o Cas e-St u d y : SEC
SEC also useful for:
■ Reference-model style verification
● Less circuit-like model serves as extensive “property set”
Stall
Ins
nstr
truct
uctio
ion
n Dis
ispa
patc
tch:
h: Veri
rifi
fica
cati
tion
on Goa
oals
ls
Verify that Dispatched instructions follow program order, despite:
■ Stalls
■ Flushes (which roll back the Dispatch flow to prior Instr Tag)
■ Branch
ranch Mispredicts
spredicts (sim
(similar to Fl
Flushe
ushes)
s)
■ Rejects (which force re-issue of instructions)
■ Bypass path
Inst
nstruct
ruction
ion Disp
ispaatch: Logi
Logicc Bound
B ounda
arie
riess
First choice: what logic to include in Testbench?
■ Indep
Indepen
ende
dent
nt veri
veriff of Ins
Instr
tr Buffer, Stagi
taging Logic,
Logic, Di
Dispatch
spatch Logic
Logic attrac
attractitive
ve
from size perspective, but hard to express desired properties
● Decided to include these all in a single testbench
■ Thoug
houghh infrequ
infrequenentt duri
during
ng norm
normal
al exec
executi
ution
on,, this
this log
logiic mus
mustt react
react to
Rejects, Stalls, Flushes at any point in time
● Hence drove these as completely random bits
Ins
nstr
truc
ucti
tion
on Dis
Dispa
patc
tch:
h: Inp
Input
ut Mode
Modeliling
ng
Second choice: how to model input behavior
■ Needed to carefully model certain instruction bits to denote type
● Branch vs. Regular types
Short
hortcu
cutt poss
possiible since
since this log
logiic trea
treatted most
ost instr
nstruc
uctition
on bits
bits as data
data
■ If Testbench included execution units, shortcut would not be possible
Ins
nstru
truct
ctio
ion
n Dis
Dispa
patch
tch:: Proo
Prooff Comp
Comple
lexi
xity
ty
Philosophy: “don’t be precise where unnecessary for a given testbench”
is very powerful for enabling proofs
■ Instr Dispatch
spatch requires
requires prec
preciise Instr Tag modeling due to flushes; does
not care about decoded instr
■ Some downstream Execution Units don’t care about Instr Tag; require
canno
cannott be reused
reused at high
higher
er leve
levell, where
where overcon
overconstr
straint
aints
s are not
not present
present
Ins
nstru
truct
ctio
ion
n Dis
Dispa
patch
tch:: Proo
Prooff Comp
Comple
lexi
xity
ty
Semi-Formal Verification was main work-horse in this verification effort
■ Wrung out dozens of bugs
● Corner-cases due to Flushes, Stalls, Bypass, …
■ For
For SFV
SFV, biasing
biasing of
of random
random stim
stimulus im
import
portan
antt to ena
enable
ble sim
sim to provi
provide
de
a reasonable sampling of state space
● Neede
eeded
d to bias
bias dow
down
n tran
transfers
sfers from
from IFU,
IFU, else Instr Buffer
uffer always
always full
full
Param
arameterizing
eterizing size of
of Instr Buffer small
smaller,
er, setti
setting more deco
decode
ded
d instr
bits constant helped enable proofs
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
■ Complexities of High-End Processors
■ Al
Algorithmic Methods for Reducing Verification Complexity
■ Processor Verification Case Studies
. s
’
r h r
t c t
Instr s t s
n e n
Fetch I F I Instr
ICache Buffer
State
Machine
Mispr
Mispred
edic
ictt Flus
Flush
h Instructions
Branch To
Instr
Execution Execution
Pipeline
Unit Units
Fet c h -Han g Cas e St
St u d y
Suspe
uspected:
cted: Ins
Insttr Fetch St
State Mac
Machine
hine (IF
(IFSM) can
can enter
enter ilillegal
egal hang state
■ With unde
underconst
rconstrrained
ained Test
Testbenbench,
ch, checked
checked whether
whether IFS
IFSMM could enter a
state whe
where
re it did not
not init
initiiate Instr
Instr Fetch afte
fter InitFe
InitFetch
tch com
command
and
■ Discov
scovered
ered a hang
hang state – yet
yet could
could not
not readi
readily extr
extrap
apolate
olate the
the tiny
tiny
counterexample to one of the entire IFU+IDU
● Exhibited input timings thought to be illegal
● Yet designer was able to discern a scenario which, if producible, could lead
to deadlock
Fet c h -Han g Cas e St
St u d y
Given extrapolated scenario, next attempted to produce that scenario on
larger IFU+IDU components
■ Interfaces at this level were very easy to drive
● Ab
Abstracted the ICache to contain a small program
Strea
tream
m A hits branch to B,
B, Branch resolve
resolv ed Hang state
Hang s tate
predicted
predicted “ not taken”
taken” “taken” entered
time
Inli
nline
ne A fetch concur
con current
rent w/ Inli
nline
ne A dispa
disp atch Hang not
branch-to-B dispatch concurrent
concur rent w/ B fetch
fetch broken?
Fet c h -Han g Cas e St
St u d y
Const
onstraine
rainedd B MC run exposed the
BM th e dea
deadlo
dlock
ck sit
situa
uatio
tion!
n!
A
Ad
ddress B exactly same address as in-line instructions from A
from A which
spurious
spuriouslly mad
made
e it through
through Instr Buffe
uffer
■ Other conditions required, e.g. no spuriously dispatched branches
● Repl
eplaced
aced Inst
nstr Buffer
uffer wi
with small
smaller
er tim
timing-accu
ng-accurate
rate abstr
abstracti
action
on
● Still intractable due to depth, size of Fetch logic
■ Al
Also verified SW fix: strategic no-op injection
● Clearly wanted to inject as few as possible for optimality
● Modeled by adding constraints over instruction stream being executed
Guard bits rounding modes sticky bits used to control rounding errors
FPU
FPU Case
Case Stud
Stu d y
Highly-reusable methodology developed for FPU verification
164 bit
2e_addend 2e_prod
mantissa addend ..00
mantissa product …00
+/- a+b
cnt lea
leadin
ding
g 0’s co
copy
py and
and round
round
Leading zero’s can happen, e.g.,
1.101011
– 1.10100
1.1010011
S Exp Frac Final IEEE result = 0.000010
FPU Co mp
mpll ex i t y Issues
Iss ues
Certain portions of FPU intractable for formal methods
■ E.g., align
alignm
ment-
ent-sh
shiifter,
fter, multipli
ultiplier
er
■ Case-splitting
● Restrict operands each subproblem solved very fast
● Utilize batch runs subproblems verified in parallel
■ Ap
Apply automatic model reduction techniques
● Redundancy removal, retiming, phase abstraction…
● These render a combinational problem for each case
FPU Ca
Cas e-Sp l i t t i n g
Four distinct cases distinguished in Ref-FPU
■ Based on difference between product, addend exponent
δ = e prod − ec where e prod ( = e a + eb − bias ) is the product exponent
and ec is the addend exponent
Manda
andatory
tory for
for drive
driverr to adhe
adhere
re to
to protoco
protocoll, else wi
will spurious
spuriouslly break
break logi
logic
Ad
Adhering to protocol requires either:
■ Building reference model for each interface, indicating what coherence
state it has for each valid address
● Safe, but dramatically increases Testbench size!
Al
Allow arbitrary activity to be driven to other addresses
■ Will generate illegal stimuli, but cache should still behave properly for
checked address
Other tricks:
■ Parameterize RAM! Caches often are VERY large
■ Can limit # addresses that can be written to, but need to take care that
exercise sectoring, N-way associativity, …
As
A s s o c i at
atii v i t y Cas
Casee Stu
St u d y
N-way associative caches may map M>N addresses to N locations
■ When loading N+1 ’th address, need to cast a line out
N+1’th
■ Victim line often chosen using Least-Recently Used (LRU) algo
Verify: newly-accessed entry not cast out until every other entry accessed
■ If entry i is cast
cast out,
out, chec
check
k that
that bitve
bitvector
ctor is all 1’s
Weaker
eaker pseudo
pseudo-LR
-LRUU may onl
only guar
guarant
antee:
ee: no cast
castou
outt unt
until J accesses
■ Zero count upon access of entry i
■ As
Assert counter never increments beyond J
Ad
A d d r es
esss -Dat
-Dataa Con
Co n s i s t en
enccy
Many portions of LSU need to nontrivially align data and address
■ Data prefetch, load miss queues: delay between address and data
entering logic
●Many timing windows capable of breaking logic
■ Cache needs to properly assemble sectors of data for writes to memory
■ Ad
Address translator logic maps virtual to real addresses
■ Tag each word of quad-word stores with specific code, validate that
Drive poisoned data values if known that they should not be transmitted
Pari
rity
ty / Err
rror
or Detecti
tection
on Cor
orrectn
rectne
ess
Error code schemes are based upon algorithms:
■ Properly diagnose <I bit error code errors, <J data bit errors
■ Properly correct <K bit data errors
Howev
owever,
er, faulty
faulty prefetch
prefetch logi
ogic can
can brea
break
k functi
function
onali
ality
ty
■ Generati
eneration
on of ill
illegal
egal prefetch addres
addresse
ses
s checkstop
■ May be responsible for address-data propagation
■ An
And bad prefetching can easily hurt performance
Pre
refe
fetch
tch Corre
orrectne
ctness
ss
Genera
enerattion of ilillegal
egal prefetch addre
address
sses
es checkstop
■ Most
ost prefetchi
prefetching is requir
required
ed not
not to cross add
address
ress barri
barriers
ers
● E.g. must be done to same page as actually-accessed addr
■ Can restri
restrict
ct address
address stream bei
being gene
generat
rated
ed,, or mon
moniitor addr
addr strea
stream
m,
and
and vali
valida
datte that prefetch
prefetch requests
requests stay wi
within same
same pag
page e
Al
Also wish to verify that prefetch initiates prefetches when it should, does
not when it shouldn’t
■ Often done using a reference model or set of properties to encode
spe
specific
cific prefetch
prefetching
ing algori
lgorithm
thm
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
■ Design Intent Verification
D
Design
esi gn IInte
sign nt
nte
nt eent
nt Design
Verification
Specification
Specification
Design
Design
Implementation
Implementation
D
Design
esi gn IInte
sign nt
nte
nt eent
nt
Modeling
Modeling
Design Intent
Verification
This ste
s tep
p is be
becoming
comingg ve
becomin very
ry
important
impor tant in pra
pr actice – why?
Wha
hatt is
i s de
d esi
sign
gn int
inteent ve
veri
rific
ficaati
tion
on?
?
Design Intent
■ A set of abstract high-level global safety and liveness requirements
Design Intent Modeling
■ Developing a set of high-level component models that mimic the
expected behavior of the components
Design Intent Verification
■ The models taken together should satisfy the design intent
Traditional: With
ithout
out intent
intent verif
verifica
icatio
tionn
Comp
Comp--11 Comp
Comp--11
Specs
Specs Design
Design
Comp
Comp--22 Comp
Comp--22
Desig
Designnn Intent
ent Specs
Spe Specs
Specs Design
Design
Desig
De sign
Design Int
Intent Specs
cs
Specs Integrated
Integrated
(English)
(English) Design
Design
Comp
Comp--kk Comp
Comp--kk
Specs
Specs Design
Design
Sub
Su b - system
Design
Design of
Tech
Tech.. Specs
the parts
(English)
Design Verification
This ve
v erif
rification
ication ta
t ask is large
l arge a
la nd compl
and co mple
ex
Emerging: Wit
ithh inte
in tent
nt ve
v eri
rifi
fica
cati
tion
on
Comp
Comp--11 Comp
Comp--11
Specs
Specs Design
Design
Desig
Design
Desig
De nnIntent
sign IntentSpecs
Specs
Spe cs Integrated
Integrated
(English)
(English) Design
Design
Comp
Comp--kk Comp
Comp--kk
Specs
Specs Design
Design
Sub - system
Design
Design of
Tech. Specs
the parts
(English)
Comp
Comp--11 Verif .
Desig
De sign
nn Intent F--Model
Specs
Design
Design
Desig Intent of the
(Formal Specs)
(Formal Specs) parts
parts
Comp-
Comp
Comp-
Comp --kk
F--Model
Specs
Sub -system Integrated
Design
Design
Desig n Intent
sign Design
Models
Verification
- Verification
Can
Can be done
don e before
befor
beforee implementation
im plementation
Int
nteent Veri
rifi
fica
cati
tion
on – Everywhere?
Digital design verification
■ Micro-architectural properties (SVA / PSL)
■ RTL properties (SVA / PSL), RTL blocks
Mixed-signal design verification
■ Integrated power mgmt chips (LDOs, buck converters, battery charger)
■ Modeling options include VerilogA, VerilogAMS
Embedded systems
■ Safety critical properties
■ Modeling options include Matlab, UML statecharts
Desi
sign
gn Int
nteent Veri
rifi
fica
cati
tion
on – Why?
Practical considerations
■ Components are out-sourced, and integrated into the design at the end
(sometimes as black-boxes)
Helps in developing the component specs before implementation
Discrete Models
Continuous
Contin uous M
ontinuous odels
Models
Models
Boolean
Boolean Logic
Logi c
Hybrid Models
Hybrid Models System
Temporal
mporal Logi
Temporal
Te c
L ogic
Logic
Type Formal FSM
specs Equations
Satisfiability
Core Hybrid
ybri d Automata
Hybrid
Synthesizability Problems
Formal coverage
Model Checkin
Checkingg
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
■ Design Intent Verification
Valid Invalid
The role of ve
v erif
rification
ication is
i s to check
c heck
whether the valid
valid beha
behavio
viorsrs w.
w .r.t the
specification covers all behaviors of o f
the implementatio
implementation n
Implementation
Implementation
In othe
oth er words
wo rds,, the set
set of be
b ehaviors not exhibit
xhi bite
ed by the
t he
impleme
imp lementation
ntation covers
implementation co vers
cove rs the inva
inv alid behaviors
invalid behaviors of the
t he specification
specifi cation
specifica tion
Veri
rifi
fica
cati
tion
on as co
cove
vera
rage
ge
Implementation
Implementation
If:
If :
• is a function
funct ion that
t hat captu
captures
res exactly
exactly th
thee set of all
all behavio
behaviors
rs
of the
t he given impl
impleementation, and
and
• is the
t he specification,
specification,
Then
hen the verific
verificaation proble
probl em is to che
ch eck for
fo r the
th e validity
validity of
A b u g i s a wi
w i t n es
esss f o r
Verification Methodologies
as a witness for R ∧¬ A
A bug is a trace that acts as
: Specific
Specificaatio n
Properties
Verification
1 2 k
: Implementatio
Implementationn
Model checking:
checking : is a set set of logic blocks or st ate machines
machines
Simulation: is a set set of
o f execut
executaable black boxes
bo xes
Design
sig n inte
int ent cove
cov erage:
rage: is a set set of loc
locaal properties
pr operties over the
th e is
Two key
key pr
probl
oble
ems
: Specific
Specificaatio n
What should
shou ld be our appro ach whe
wh en
Properties consists
consis ts of state machines
machines for some
compone
compon ents, properties for some
Verification compon
com pone ents and executable
executa
execut able black
boxes for tthe
he rest?
rest?
1 2 k
: Impl ementatio
mentationn
Sample
mpl e property
pro
propperty
propeerty : If the
th e counter is not rese
reset,
t, then the next
next va
v alue of
the count
counteer di
differs
ffers from
fr om th
thee present va
value
lue by e
exactly
xactly one
on e bit
bit..
G( r s t ( a1 Xa1 ) ( a2 Xa2 ))
Mod
odeel ch
cheeck
ckin
ing
g as co
cove
vera
rage
ge ana
analy
lysi
siss
G( r s t ( a1 Xa1 ) ( a2 Xa2 ))
The block
The blo ck a
block rbitrates
rbi trates between
arbitrates between
r1 and
and r2 to assert g1 or g2,
g 2,
and between r3 and and r4 to
assert g3 or g4
The lilines
nes d1/d2
d1/d2 indic
ind ica
ate whethe
wheth er the
t he page request
requested
requesteed
ed by
b y the
tth
hee
high
hig h / low pri
priori
ority
ty de
d evic
vicee is available
available in the cache
cache
• If the
th ere is a cache hit then d1 is asserted
asserted within
wit hin two cycles
cyc les
• If the
th ere is a cache
cache miss then d1 is asserted
asserted after fetch
fetching
ing the page
from memory
[Source: A Ro
Roa
admap for
for Fo
Form
rma
al Prop
Property
rty Verifica
rificattion
ion, Sprin
Springe
ger,
r, 2006]
A r c h i t ec
Ar ectt u r al Pr
Proo p er
ertt y
M
M11 and
and M 2 have high
M2 hi
higgher
er
higher
her
priori
pri ority
ty over M3
M3 and
and M4
A p age
ag e req
r equu est
es t ed b y M1/M2 is
i s eit
ei t h er s erv
er v ed w i t h i n t w o c y c l es
(cach
(cachee hit)
hi t) or served
s erved when th thee page is readyready.. In the latter case , no
page should
sho uld be b e served
served to the
t he low priori
pri ority
ty devices in between.
between.
G[ r1 V r2 ⇒ XX[ d1 V X( ¬d2 U d1 ) ] ]
One possib
poss ible
le arch
archite
itect
cture
ure
G[ r1
r 1 V r2 XX[ d1
XX[
V X( d2 U d1 )]]
Write properties
properties on individual
indiv idual blocks that together
together prove t h e
archite
rchit ectural property
Deve
velo
lopin
pingg blo
b lock
ck spe
specs
cs
Target :
A1:
A 1: G[ r1
r 1 V r2 XX[[ d
XX d11
V X( d2 d2 U d1 )]]
Ar
A r b i t er:
er :
R1: G[ r1 V r2 Xa ]
R2: G[ z3 V z4 Xb ]
Cache Block
Bl ock:: Mask:
R3: G[ a X[
X[ w U d1 ]] R5: G[
G[ r3 w z3 ]
R4: G[ b Xd 2]
d2 R6: G[ r4 w zz4
4]
Desi
sign
gn Int
nteent Cov
oveerage
Ar
A r c h . Spec
Sp ecss:
A1:
A 1: G[ r1 r 1 V rr2
2 XX[[ d
XX d11
V X( d2 d2 U d1 )]]
RTL
RTL Specs:
Specs
Spe cs::
R1: G[ r1 V r2 Xa ]
R2: G[ z3 V z4 Xb ]
R3: G[ a X[
X[ w U d1 ]]
R4: G[ b X d2 ]
R5: G[ r3 w z3 ]
Is it pos
possib
sible
le to have an impleme
im plementation
ntation R6: G[ r4 w z4 ]
that
th at satisfi
satis fies
es R1,
R
R11,, …,
…, R6
R6,
R6,, but
bu t refut
refutes
es A1?
r efutes A 1?
… if not,
n ot, then all
all invalid
in valid behavio
behaviors
rs are not covered
c overed by the
RTL
RTL specs,
sp ecs, and we needneed to add more
mo re RTL
RTL properti
pro perties
es
In t h i s c as e, we have a g ap ! !
A 1: G[ r1
A1: r 1 V r2 XX[ d1
d 1 V X(
X( d2 U d1 ) ]]
Gap: G[ r1
r 1 V r2
r2 XX[ ( d 1 Xd1) V d1 V X( d2 U d1 ) ]]
[Source: A Ro
Roa
admap for
for Fo
Form
rma
al Prop
Property
rty Verifica
rificattion
ion, Sprin
Springe
ger,
r, 2006]
The Cor
orre
rect
ct Arc
A rchi
hite
tect
ctur
ure
e
Target :
A1:
A 1: G[ r1
r 1 V r2 XX[
XX[ d1
d1
V X( d 2 U d1 )]]
d2
Ar
A r b i t er:
er :
R1: G[ r1 V r2 Xa ]
R2: G[ r3 V r4 Xb ]
Cache Block
Bl ock:: Mask:
R3: G[ a X[
X[ w U d1 ]] R5: G[ b w z]
R4: G[ z X d2 ]
… th
this
is ti
time
me R1,…
R1,…,R
,R5
5 covers
cov ers A1
A1
Int
nteent Cov
oveerage Pro
Probl
ble
em: Formally…
Given:
A ∨ ¬
¬R can be represented as:
[Source: A Ro
Roa
admap for
for Fo
Form
rma
al Prop
Property
rty Verifica
rificattion
ion, Sprin
Springe
ger,
r, 2006]
Th e In t eg r ated
t ed Flow
Flo
Fl ow
t System-level
n
e t Ar
A r c h Spec
Sp ecs
s test pla
pl an
m n
e e Intent
n
i m
f e Coverage
e
r n
i
f
n e
g r Block-level
i .
s c test plans
e e
D p Intent
S
Coverage V
+ B
n A
o c
t i
i
a m
l
u a
n
i y
m
Unit S D
ni t leve
levell specs
: Specif
Specif ication Ad
A d v ant
an t ages
ag es :
• Scalable
Properties • Can
an be don
donee top down,
do
dowwn,
n, before
before
befor e impleme
impl ementatio
ntation
implementatio n
Verification Disadvantages :
• Requires more
mor e user
user invol
iinvo
nvolveme
vement
nt
lvement
lveme
1 2 k
: Properties for M 1 … Mk
: Specific
Specificaation
tio n
Pure Design
Design Intent
Int ent Coverage
ntent
Properties
Verification
Ad
A d v ant
an t ages
ag es :
• Less user invol veme
vement
nt 1 2 k
Disadvantages :
: State
State m/c for M1 … Mk
• Capacity limit
limitaation
tionss
Pur
uree Mod
Model
el Checki
Checking
ng
Betw een Int
Betwe nteent Cov
oveerage and
and Mod
odeel Check
heckin
ing
hecking
hecki g
ng
: Specif
Specification
ication
Properties Ap
A p p r o ach
ac h -1:
•Find th
thee gap, T,
T, between
between anand
d
Verification
the properties
properties of Mi +1 … Mk
1 2 k •Model che
ch eck T on M1 … Mi
: State
State m/c for M1 … Mi and
an d
properties for M i +1 … Mk Ap
A p p r o ach
ac h -2:
•Tra
Trans
nslate
late M1 … Mi into th e prop
propeerty
Hybr
ybrid
id Desig
signn Intent Coverage
domain
• Use pure desig
designn intent
in tent cove
cov erage
[Source: Das
Das et. al. What
What lies
l ies between Desig
Designn Intent Coverage and
and
Model Checkin
Check ing?
g? DATE
DA TE 2006
2006]]
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
■ Design Intent Verification
Consistency issues:
■ Verification is vacuous when R is unsatisfiable
■ Verification is vacuous when A is valid
Completeness issues:
■ Verification closure depends on the completeness of A –
– have I
written enough properties?
Form
ormaal Cons
Consis
iste
tenc
ncy
y Ana
A naly
lysis
sis – Why?
A
Arre my properties correct?
■ Debugging formal specifications can be quite hard
■ Codi
oding errors
errors – new
new langu
anguag
ages,
es, alien
alien seman
semanttics
■ Logical errors
A
Am
m I checking the right property on the right design?
■ A typical BUS protocol consists of:
● Properties over individual components: master, slave, arbiter
● Global properties
Model checking:
■ Does
oes the
the produc
productt of the
the com
compo
pone
nent
nt state
state mach
machiines
nes log
logiically
cally im
imply each
each
of the formal properties?
Design intent coverage:
■ Do the properties of the component modules together imply the
architectural properties of the design?
Logical implication ≡ Satis
tisfia
fiability
ility / Valid
lidity
ity
Satisfiabi
Satisfiabilit
lityy and Realiz
Realizabi
abilit
lityy for
forms
ms the basis
basis of reasonin
reasoningg about
specifications
Unsatisfiable Specification
When the master is not in the IDLE or WAIT states, the request line, req, should be
kept high
The master lowers the request line, req, sometime
`define
defi ne IDLE
IDLE 3’b000
`define
`defi ne WAIT 3’b
3’b00
000
0
property ReqHighDuringTransfer ;
@ (posedge c l k )
(state
(st atee != ‘IDLE || state
(stat stat e != ‘WAIT) |-> r eq ;
endproperty
property ReqIsSometimesLow ;
@ (posedge c l k )
##[0:
##[0:$]
$] ! r eq ;
endproperty
The Cor
orrect
rect Specif
Specific
ica
ati
tion
on
When the master is not in the IDLE or WAIT states, the rrequest
equest line, req, should be
kept high
The master lowers the request line, req, sometime
`define
`defi ne IDLE 3’b
3’b00
000
0
`define
`defi ne WAIT 3’b
3’b00
000
0
property ReqHighDuringTransfer ;
@ (posedge c l k )
(state
(stat e != ‘IDLE
‘IDLE & & state
st ate != ‘WAIT) |-> r eq ;
endproperty
property ReqIsSometimesLow ;
@ (posedge c l k )
##[0:
##[0:$]
$] ! r eq ;
endproperty
Vacuity
When the gnt signal is high, the master should not be in the IDLE or WAIT
states
property UseBusWhenGranted;
@ (posedge c l k )
g n t |-> (st
(state
ate != ‘IDLE || state
stat e != ‘WAIT) ;
st ate
endproperty
Whenever the high-priority request, hreq, arrives, the grant, hgnt, is given for
one cycle
property HighPriorityGrant ;
hreq hgnt
@ (posedge c l k ) Ar
A r b i t er
hreq |-> ##1 hgnt ##1 ! hgnt ;
endproperty
property Gnt
Gn t ;
@ (posedge c l k )
r eq |-> ##[1:
##[1:$]
$] g n t ;
##[1:$] r eq gnt
Ar
A r b i t er
endproperty
property LowReqAfterGnt ;
@ (posedge c l k )
g n t |-> ##1 ! r eq ;
endproperty
property LowReqAfterGnt ;
r eq gnt
@ (posedge c l k ) Ar
A r b i t er
g n t |-> ##1 ! r eq ;
endproperty
Paradox:
■ If I had a formal definition of the coverage goal, then that its elf could become the
formal specification!!
Solution:
■ Evaluate the formal property specification with some structural coverage metric
■ The structural coverage metric should be such that:
● Low coverage indicates gaps in the specification, and I need mor e
properties
● High coverage does not necessarily mean that I have enough properties
Typ
ypees of
o f Coverage
Coverage Appro
App roa
ach
chees
Mutation-based Approaches
■ A given implementation is used as the reference
Fault-based Approaches
■ A given fault model is used as the reference
Design Intent Coverage
■ A higher level specification is used as the reference
Mutation -b ased Cove
Cov errage
age
Specification :
00 State: (g1,
(g 1,g2)
g2)
(g1,g2) P1: g1 is never asserted in consecutive cycles
property NoConsecutiveG1;
NoConsecutiveG1;
NoConsecutive G1;
@ (posedge clk) g1 |-> ##1 !g1 ;
10 01
endproperty
Ab
A b s t r act
ac t FSM of
of a P2: g2 is never asserted in consecutive cycles
Round -robin Arbiter
Ap
A p p r o ach
ac h es :
Falsity coverage: Mutate the FS
FSM and
and check whethe
w hetherr the truth
tr uth of
any property
pr operty cha
ch anges.
Vacuity coverage: Mut
utate
ate th
thee FS
FSM
M and check
ch eck whether
wh ether any
any pro
p roperty
perty
becomes vacuous.
[Ref: Hos
Hoskote
kote et.al.
t.al. DAC 1999, Chockler
Chockler et.al.
t.al. CAV 2001]
Mutation -base
basedd Fals
lsit
ity
y Cov
oveerage
s0
00 State: (g1,
(g 1,g2)
g2)
(g1,g2) Specification :
P1: g1 is never asserted in consecutive cycles
s1 s2 P2: g2 is never asserted in consecutive cycles
10 01
Ab
A b s t r act
ac t FSM of
of a
Round -robin Arbiter
s0 s0
10 P1 fail
fails.
s. 00
The value of g1
g 1 at
at s0
s 0 is covere
cov ered
d
co vered
covered
s1 s2 s1 s2
10 01 P2 fail
fails.
s. 11 01
The value of g2
g 2 at
at s1
s 1 is covere
cov ered
d
co vered
covered
Mutant -1 Mutant -2
(g1 fli
flipped
pped at s0) (g2 fli
flipped
pped at s1)
Mutation -base
basedd Vacu
cuit
ity
y Cov
oveerage
Specification :
s0
00 State: (g1,
(g 1,g2)
g2)
(g1,g2) P1: g1 is never
never asserted
asserted in conse
cons ecutive
cut ive
ve cycle
co nsecutive
consecuti cycl es
cycles
property NoConsecutiveG1;
NoConsecutiveG
NoConsecutiveG1;1;
s1 s2
@ (posedge clk) g1 |-> ##1 !g1 ;
10 01 endproperty
Ab
A b s t r act
ac t FSM of
of a P2: g2 is never
never asserted
asserted in conse
cons ecutive
cut ive
ve cycle
co nsecutive
consecuti cycl es
cycles
Round -robin Arbiter
Falsi
Falsity
ty coverage
s0 No property
pr
prooperty
perty fails.
00 The value of g1g 1 at s1 is no
nott covered
ccov
overed
covere
ered
d
s1 s2
00 01 Vacuity coverage
P1
P1 is satisf ied vacuo
va cuously
vacuou usly.
sly..
cuously.
Mutant -3 The value of g1 g 1 at
at s1
s 1 is covere
cov ered
d
co vered
covered
(g1 fli
flipped
pped at s1)
What doe
do es mut
m uta
ati
tion
on co
covera
verage
ge mea
mean?
If mutations on many parts of the implementation do not affect the truth
of the
the prope
propert
rtiies,
es, the
then
n it is like
likelly that
that our
our spec
speciifica
ficatition
on does
does not
not cover
cover
those behaviors that are exhibited by those parts of the implementation
■ Extensions to transition coverage, path coverage, etc
00 01 00 01
10 11 10 11
[Ref: A Ro
Roa
admap for
for Fo
Form
rma
al Prop
Property
rty Verif
Verifica
icattion
ion, Sprin
Springe
ger,
r, 2006]
St uc
uckk -at Faul
Faultt Cove
Cov erage
Output Fault Coverage:
■ A stuck-at fault on a non-input y is covered if there exists some scenario
where the specification forces y to take the opposite value
Input Fault Coverage:
■ A stuck-at fault on a input x is covered if we cannot realize the
specification without reading that input x
[Ref: Das
Das, et.al.,
t.al., VLSI 2005]
Exampl
xamplee: Out
utpu
putt Faul
ultt Cov
oveerage
Memory arbiter: mem-arbiter(input r 1, r 2 ; output g1, g2)
r1 g1
Priority of g1: G ((r1 ∧ r2) X g1)
Ar
A r b i t er g2
r2
Mutex: G (¬g1 ∨ ¬
¬g2)
g2 s-a-0 is not covered – we can have a valid implementation that never asserts g2 !!
r1 g1
Priority of g1: G ((r1 ∧ r2) X g1)
No starvation: G ((¬r1 ∧ r2) X g2) Ar
A r b i t er g2
r2
Mutex: G (¬g1 ∨ ¬
¬g2)
t System-level
n
e t Ar
A r c h Spec
Sp ecs
s test pla
pl an
m n
e e Intent
n
i m
f e Coverage
e
r n
i
f
n e
g r Block-level
i .
s c test plans
e e
D p Intent
S
Coverage V
+ B
n A
o c
t i
i
a m
l
u a
n
i y
m
Uni
nitt level specs S D
Unit level Va
Valilidatio
dationn
(Sim
(Simululatio
ationn + FPV
FPV))
Dyn
ynaami
micc Pro
roperty
perty Veri
rifi
ficatio
cationn (DPV)
[Source: A Ro
Roa
admap for Fo
Form
rma
al Prop
Property
rty Verifica
rificattion
ion, Sprin
Springe
ger,
r, 2006]
The not
notion
ion of con
conte
text
xt
Two types of properties:
■ Inv
nvari
arian
ants
ts – prop
properti
erties
es that mus
mustt hold alway
always
s
● Example: An
An arbiter must never assert two grants at the same time (mutex)
■ Context sensitive properties
● Example: In a burst mode transfer, addresses wrap around the 2KB
address boundaries
■ Many definitions:
● Implication vacuity
● Expli
xplici
citt specifi
specifica
cattion of coverage
coverage go
goals
als – suc
such
h as
as cover
cover properti
properties
es in SV
SVA
● Gaming definitions
Imp
mplic
lica
mpli ati
tion
cati on va
vacui
cuity
ty
Property: If the request r is asserted, then the grant g must be asserted
in the next two cycles, unless r is lowered in between.
property
pro perty P;
P;
@ (posedge c l k )
r |-> ##1
##1 (g or (!g &&
& & !r)
! r) or ((!g
((!g && r) ##1
##1 g) ;
endproperty
If r is asserted and the DUT does not assert g in the next cycle, then we
should drive r again to check the remaining part of the property
■ Otherwise, the real intent of the property is not checked
Property -dr
driv
ive
en test gene
genera
rati
tion
on?
?
It’s a game …
Two types of games – same players, but the winning conditions are different
■ Vacuity games
■ Realizability games
[Ref: Baner
nerjee, et.al.
et.al.,, DAC 2006]
Vac u i t y Gam
Gam es
In any round of the game, the inputs written by Player -1 (TB) is vacuous iff P
is satisfied under these inputs regardless of the values of the outputs in that
round
■ Player -1 (T
(Test
est bench
b ench))
● It loses if in any round it writes vacuous
vacuous inputs
iin
nputs
puts
● It wins if
i f in any round it writes non -vacuous input
in puts
s and
inputs and yet the
property
pro perty is satisfied or refuted
The values written in a round re-defines the property for the next round
[Ref: Baner
nerjee, et.al.
t.al.,, DAC 2006]
Realizability Games
Problem with unreceptive specifications
■ In some round of the game, the property for the next round may become
unrealizable, but satisfiable
■ This means that Player -1 (TB) has a winning strategy from that round
r ound – if it uses
that strategy then the property for some future round will become unsatisfiable
[Ref: Baner
nerjee, et.al.
t.al.,, DAC 2006]
Example – t i c -t ac -t o e
X ? X X : Environment
Enviro nment
0 : DUT
0 X
? 0
• Open
n Game
Open
Ope Game at
at start
s tart:: DUT
DUT has a strate
str ategy
gy to wi
winn
Specific
pecificaatio
tionn is rea
realiza
lizable
ble
• DUT make
UT makess a mistake
mis take:: Occupi
Occu pie
es row
r ow 2, column
colu mn 1
co lumn
Specific
pecificaatio
tionn is
i s unrea
u nrealiza
lizable
ble
• Int
nteellllig
igeent Test -bench
bench:: for
f orces
ces DUT
DUT to de
d efea
featt
defeat
defea
Cruc
rucial
ial Move:
Move: Occu
Occupyi
pying
ng centra
centr al squa
squ are
Int
nteegr
graati
tion
on int
i nto
o Te
Test Env
Envir
iron
onme
ment
nt
As
A ssssert
As
A er
ertttiioonn Mon
er Mo
Mon
Mo nniittoor r
++
Game
Ga me
me Oracle
Game
Ga Oracl
Oraclee
Oracle
Test
Test
DUT
DUT Bench
Bench
Ag
A g en
endda
Introduction to Formal Verification
Case Studies from TI: Protocol & Control Logic Verification
Case Studies from IBM: Formal Processor Verification
Verification Closure: Coverage Analysis & Integration with Simulation
■ Design Intent Verification
Design
Desi gn Intent
(Formal Properties) Test
Generator Integrated
+ Design
Uncovered
Uncovered behavior
behaviorss
As
A s s er
ertt i o n
Monitor
Coverage
An
A n al
alyy zer
Simulation
Simul ation + DP
DPV Platfo
Platform
rm
Sub
ub-syst
-system
em Specs
Specs Sub-system
(Formal) Modules
Sub-syst
ub-systeem Acc
Acce eptance Testi
Testing
ng
(simulatio
(simu lation
n + FPV
FPV)
References
1. Banerjee
Banerj ee,, A., B.Pal,
B.Pal, S.Das,
S.Das, A.Kumar
A.Ku mar,, P.Da
P.Dasg
sgup
upta,
ta, Test
Test Generatio
Generationn Games
Games from
fr om
orm al Specificatio ns, DAC 2006.
Forma 2006.
2. Basu,
Basu , P.,
P., S.Da
S.Das,
s, A.Banerj
A .Banerjee
ee,, P.Da
P.Dasg
sgup
upta,
ta, P.P.Chakrabart
P.P.Chakrabart i, C.R.Mohan
C.R.Mohan,, L.Fix,
L.Fix ,
R.Armoni, Design
sig n Intent Coverage
Coverage – A New
New Paradigm
Paradigm f or Formal Property
Verification. IEEE
IEEE Trans.
Trans . on CAD, Oct 2006.
6. Das,
Das, S., P.Basu,
P.Basu, A.Banerj
A .Banerjee
ee,, P.Da
P.Dasg
sgup
upta,
ta, P.P.
P.P.Chakr
Chakrabart
abarti,
i, C.R.Mohan
C.R.Mohan,, L.Fix,
L.Fix ,
R.Armoni, Formal Veri
Verific
fication
ation Coverage:
overage: Comput ing the covera
co verage
ge gap between
between
temporal specifications, ICCAD 2004.
temporal
7. Das,
Das, S., A.Banerjee
A.Banerj ee,, P.Basu
P.Basu,, P.Da
P.Dasg
sgup
upta,
ta, P.P.
P.P.Chakr
Chakrabart
abarti,
i, C.R.Mohan
C.R.Mohan,, L.Fix,
L.Fix ,
Formal method s for
fo r analyzing
analyzing the
t he completeness
completeness of an asserti
assertion
on su ite against
against a
References
8. Das,
Das, S., P.Basu
P.Basu,, P.Da
P.Dasg
sgup
upta,
ta, P.P.C
P.P.Chakr
hakrabart
abarti,
i, What lies between
between design intent
int ent
coverage and model checkin g? DATE 2006.
2006.
9. Dasg
Dasgup
upta,
ta, P., A Road
Ro adm
m ap f o r For
Fo r m al Pro
Pr o p ert
er t y Veri at i o n , Springer 2006.
Ver i f i c ati
10. Dill, D.L., Trace Theory
Theory forf or Automatic
Aut omatic Hierarch ierarchical
ical Verif
Verificatio
icatio n of Speed-
Speed-
independent ircui ts, ACM
independent c ircuits, A CM Dis
Di s t i n g u i s h ed Dis
Di s s ert
er t ati
at i o n s , MIT Pres
Pr esss , 1989.
11. Hoskote, Y., T.Kam, P.H.Ho, X.Zao, Coverage estimation fo r symboli
symb olic
c model
checking, DAC 1999.
1999.
12. Pnueli, A., R.Rosner, On the
th e synthesis
syn thesis of reactive modul e, ACM
o f a reactive A CM Sym
Sy m p o s i u m o n
Princip
rin ciples
les of Programmin
rog ramming
g Language
L anguages,
s, 198
1989 9.