Professional Documents
Culture Documents
mm
40
40
60
80
100
120
60
Department
80
1 / 48
40
60
40
60
80
100
120
80
1 / 48
mm
2 / 48
Equivalence Checking
mm
40
60
80
100
120
80
3 / 48
Equivalence Checking
Validate that the implementation of a module is consistent
with the specification
mm
40
60
80
100
120
80
4 / 48
40
60
80
100
120
40
60
80
5 / 48
40
60
80
100
120
40
60
F =ABC
Reduced, Ordered BDDs (ROBDDs) are canonical
80
6 / 48
40
60
80
100
120
40
60
80
7 / 48
40
60
80
100
120
Figure modified
from Wikipedia
40
60
80
8 / 48
40
60
80
100
120
Figure modified
from Wikipedia
40
60
80
9 / 48
40
60
80
100
120
40
60
80
10 / 48
Probabilistic Verification
Concept of arithmetic simulation
Transform Boolean
function
so that operations
mm
40
60 or circuit80
100
120
performed on arithmetic (rather than Boolean) variables
Evaluate specification and implementation for a random
arithmetic vector (result called a hash code)
If40hash codes are different, the two are definitely not
equivalent
If hash codes are the same, there is a small probability of error
(that is, the two may not be equivalent)
60
error e =
1
m,
11 / 48
40
40
60
80
100
function graph is divided into k layers
each layer is strongly ordered
two layers can have different ordering
Example: F = (a1 a2 a3 a4 ) (a1 a3 a2 a4 )
120
60
80
12 / 48
40
60
80
100
120
13 / 48
40
60
80
100
120
Negate
the disjunction of the terms
40
14 / 48
Circuit to CNF
mm
40
60
80
d (a + b)
100
120
e (c.d)
Clauses: 40
(a + b + d)
(a + d)
(b + d)
Clauses:
(c + d + e)
(d + e)
(c + e)
60
80
15 / 48
60
80
16 / 48
Functional Partitioning
If F1 and F2 are never true at the same time, then 1 and 2
form orthogonal partitions
mm
40
60
80
100
120
60
80
17 / 48
10
rewriting
RTL to RTL equivalence checking
Verified large multiplier designs like Booth, Wallace Tree and
40
many optimized multipliers using this rewriting technique
VERIFIRE
Dedicated Arithmetic Circuit Checker
60
Iterative engine
Returns error trace if proof not found
Maintains an expanding rule base for expression minimization
Incomplete, but efficient, engine
18 / 48
40
60
80
100
120
40
60
80
19 / 48
11
Results on Multipliers
mm
40
60
80
100
120
Wallace Tree
4x4
8x8
16x16
60
32x32
64x64
Verifire
14s
18s
25s
40s
60s
Commercial Tool 1
10s
18s
unfinished
unfinished
unfinished
Commercial Tool 2
9s
16s
unfinished
unfinished
unfinished
80
20 / 48
40
60
80
100
120
60
80
21 / 48
12
Symbolic Simulation
mm
40
60
80
100
120
80
22 / 48
40
60
80
100
120
40
60
OUT
pulse fans out to array READ/WRITE control signals
80
Equivalence checking does not work
ECE Department, University of Texas at Austin
23 / 48
13
Scalar Simulation
To prove that the circuit is a NAND gate, exhaustive simulation
n
requires
mm 2 vectors
40
60
80
100
120
40
60 Antecedent
A
A
A
80 A
=
=
=
=
0
0
1
1
(t0,t1)
(t0,t1)
(t0,t1)
(t0,t1)
and
and
and
and
B
B
B
B
=
=
=
=
0
1
0
1
(t0,t1)
(t0,t1)
(t0,t1)
(t0,t1)
Consequent
C is 1 (t1,t2)
C is 1 (t1,t2)
C is 1 (t1,t2)
C is 0 (t1,t2)
24 / 48
Ternary Simulation
Using three values (0, 1, X), N-input NAND requires N+1 vectors
mm
40
60
80
100
120
to verify
40
60
Antecedent
A = 0 (t0,t1) and B = X
A = X and B = 0 (t0,t1)
80 A = 1 (t0,t1) and B = 1 (t0,t1)
Consequent
C is 1 (t1,t2)
C is 1 (t1,t2)
C is 0 (t1,t2)
25 / 48
14
Symbolic Simulation
Exhaustive
Verification:
N-input
1 vector
mm
40
60 NAND requires
80
100 and N
variables
120
40
60
26 / 48
mm
40
60
80
Based on VOSS (from CMU/UBC)
100
120
Trajectory formulas
Boolean expressions with the temporal next-time operator
Ternary values states represented by a Boolean encoding
40
Properties
of type: Antecedent = Consequent
Antecedent, Consequent are trajectory formulas
Antecedent sets up stimulus, state of the circuit
Consequent specifies constraint on the state sequence
Used
to verify PowerPC arrays at Motorola/Freescale in 8
60
10% of the design time
Bugs found during array equivalence checking
80
27 / 48
15
Design Verification
Digital systems similar to reactive programs
Digital systems receive inputs and produce outputs in a
mm
40
60
80
100
120
continuous interaction with their environment
Behavior of digital systems is concurrent because each gate in
the system simultaneously evaluating its output as a function
of its inputs
40
28 / 48
60
80
100
120
40
60
80
29 / 48
16
Operators
Referring to paths
A: For every path
mm E: There40
exists a path 60
80
100
120
Examples
40
EF60Y
(True)
EG R
(True)
80
AG(R+G)
(False)
ECE Department, University of Texas at Austin
30 / 48
mm
60
31 / 48
17
40
60
80
100
120
40
60
80
32 / 48
40
60
80
33 / 48
18
40
60
80
100
120
34 / 48
40
60
80
100
120
40
60
80
35 / 48
19
mm
40
60
80
100
120
40
PSL/Sugar
Core based on Boolean and Temporal logic
Layer of user-friendly syntactic sugar
Comes
in three flavors
60
Verilog
VHDL
GDL
Reference
Manual:
80
http://www.eda.org/vfv/docs/PSL-v1.1.pdf
ECE Department, University of Texas at Austin
36 / 48
40
60
80
100
120
SVA
Assertions: Predicates placed in program
Immediate and Concurrent Assertions
40
assert,
assume, cover, expect constructs
Immediate Assertions
assert (a == b);
60
Concurrent Assertions
assert property (@(posedge clk) req | ack);
80
37 / 48
20
120
38 / 48
Program Slicing
mm
40
60
80
100
120
A Slice of a Design
Represents behavior of the design with respect to a given set
of
40 variables (or slicing criterion)
Proposed for use in software in 1984 (Weiser)
Slice generated by a control/data flow analysis of the program
code
60
Slicing
is done on the structure of the design, so scales well
Static analysis
80
39 / 48
21
40
60
80
100
120
40
60
80
40 / 48
40
60
80
100
120
40
60
80
41 / 48
22
40
60
80
100
120
40
60
80
42 / 48
40
60
80
100
120
80
43 / 48
23
40
60
80
100
120
44 / 48
40
60
80
45 / 48
24
40
60
80
100
120
46 / 48
40
60
80
100
120
40
60
80
47 / 48
25
120
Instruction
l.ld
l.lws
l.sd
l.sll
l.srl
l.ror
l.mfspr
l.mtspr
SMV time
(seconds)
35.85
33.91
38.32
26.81
27.83
27.83
226.97
212.27
Memory Usage
(KB)
29104
28873
30941
23771
23771
26919
50696
48627
48 / 48