Академический Документы
Профессиональный Документы
Культура Документы
40
40
60
80
100
120
60
Department
80
1 / 43
40
60
40
60
80
100
120
80
1 / 43
mm
2 / 43
Equivalence Checking
mm
40
60
80
100
120
80
3 / 43
Equivalence Checking
Validate that the implementation of a module is consistent
with the specification
mm
40
60
80
Can use simulation or formal techniques
Combinational or sequential modules
100
120
80
4 / 43
40
60
80
100
120
40
60
80
5 / 43
40
60
80
100
120
40
60
F =ABC
Reduced, Ordered BDDs (ROBDDs) are canonical
80
6 / 43
40
60
80
100
120
40
60
80
7 / 43
40
60
80
100
120
Figure modified
from Wikipedia
40
60
80
8 / 43
40
60
80
100
120
Figure modified
from Wikipedia
40
60
80
9 / 43
40
60
80
100
120
10 / 43
40
60
80
100
120
Negate
the disjunction of the terms
40
11 / 43
Circuit to CNF
mm
40
60
80
100
d (a + b)
e (c.d)
Clauses: 40
(a + b + d)
(a + d)
(b + d)
Clauses:
(c + d + e)
(d + e)
(c + e)
120
60
80
12 / 43
60
80
13 / 43
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
14 / 43
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
15 / 43
40
60
80
100
120
40
60
80
16 / 43
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
17 / 43
40
60
80
100
120
60
80
18 / 43
Symbolic Simulation
mm
40
60
80
100
120
80
19 / 43
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
20 / 43
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)
21 / 43
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)
22 / 43
Symbolic Simulation
Exhaustive
Verification:
N-input
1 vector
mm
40
60 NAND requires
80
100 and N
variables
120
40
60
23 / 43
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
24 / 43
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
25 / 43
60
80
100
120
40
60
80
26 / 43
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
27 / 43
60
28 / 43
40
60
80
100
120
29 / 43
Synopsys Magellan
A Hybrid Verification Tool
Functional verification
tool
mm
40
60
80
100
120
60
80
30 / 43
Magellan Flow
mm
40
60
80
100
120
40
60
80
31 / 43
120
Concurrent Assertions
assert property (@(posedge clk) req | ack);
ECE Department, University of Texas at Austin
32 / 43
120
33 / 43
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
34 / 43
40
60
80
100
120
40
60
80
35 / 43
40
60
80
100
120
40
60
80
36 / 43
40
60
80
100
120
40
60
80
37 / 43
40
60
80
100
120
80
38 / 43
40
60
80
100
120
39 / 43
40
60
80
40 / 43
40
60
80
100
120
41 / 43
40
60
80
100
120
40
60
80
42 / 43
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
43 / 43