Design Verification: Yland Ba
Design Verification: Yland Ba
Design Verification
Simulation used for 1) design verification: verify the correctness of the design
and 2) test verification.
Design verification:
Specification
Critical or
"risky" parts
Response of spec are
analysis Design(netlist) checked.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
1 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Design Verification
Design verification involves verifying
• Function
• Timing (Static Timing Analysis can also be used instead of simulation)
The verification vectors needed for each of these are usually different.
The functional test patterns for sequential circuits are more likely to possess
lower fault coverage.
Particularly when the specification of the transition graph is incomplete,
making it difficult to use stategies such as "test all transitions in the state
diagram".
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
2 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Test Evaluation
A fault simulator is used in the development of manufacturing tests:
List of Remove
modeled faults tested faults Test Delete
compactor vectors
Test Add
Fault low generator vectors
coverage?
Adequate
Stop
Verification patterns are used as input to fault simulator and their coverage
under some fault model is determined.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
3 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Test Evaluation
The fault simulator can also, with the help of a test generator, produce a set
of vectors with a given fault coverage for manufacturing test.
If no fault list is supplied, the fault simulator will generate the fault list for
the specified fault model.
The fault simulator result can also be used for compaction -- removal of vec-
tors that do not detect any additional faults.
Having this information allows the "best" vectors to be selected and can
further reduce the test set size.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
4 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
5 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Signal States
Pure combinational logic can be modeled with two states, [0,1].
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
6 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Signal States
3-state logic is pessimistic.
Here, the output of the mux can be uniquely determined if a symbolic
simulation was performed (not practical for large circuits).
1 1
X X
X X
X 1
X X
X X
1 1
1 Z->X 0
1->0 1->0
Z interpreted as state before node floated or X if charge sharing occurs.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
7 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Timing
Signals experience two types of delays
• Inertial delay: Time interval between an input change and output change
of a gate.
• Propagation delay (transport delay): Time interval between output change
and arrival at the input of a gate.
VDD VDD
a
0 ns
a b V DD
b
0
NAND V
NAND DD SPICE
0
VDD
0-delay
0
VDD
unit-delay
0
0 5
Unit delay: All gates have one unit of delay.
This allows circuits with feedback to be simulated since the proper
sequencing of signals is maintained.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
8 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Timing
Multiple-delay: All delays modeled as multiples of some time unit, e.g. 1 ns.
Each gate has a rising delay, dr, and a falling delay, df, which is the delay
from input to output change.
VDD
a
0 ns
VDD
b
0
V
NAND DD SPICE
0
VDD multiple-delay
0
VDD minmax-delay
0
0 5
Here, dr = df = 5ns. b falling at time 3 indicates output will be 1 at 8ns. At
time 3, simulator indicates output is unknown, X.
Minmax-delay: Statistical model that uses dmin and dmax to account for pro-
cess variations.
Here, dmin=2 and dmax=5 which results in ambiguity interval (2,5).
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
9 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Timing
Transmission lines: Interconnect gives rise to delay, i.e., gate output does not
instantaneously change "driven" gate inputs.
Propagation delay can be implemented at gate inputs to allow separate
modeling of delay at each fanout branch.
Propagation delay can also be modeled by treating the entire fanout net
as a circuit element, similar to the treatment of gates.
A Propagation delay
B E
G
C C’ F
D
Switching delay
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
10 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
For digital circuits, only certain discrete values of signals are meaningful, i.e.
the transients can be skipped.
Compiled Simulation
Circuit is described in an HDL.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
11 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Compiled Simulation
Levelization example:
A
B G4
C G8
D G1 Circuit is levelized.
G5
F Gates at a level have
G3 inputs only from
H G7
E lower levels
G G2 G9
I G6 G10
J
Level 0 Level 1 Level 2 Level 3 Level 4
Signals treated as variables, gates translated to opcodes for AND, OR, etc.
For each vector, code is repeatedly executed until steady state is achieved
(handles feedback).
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
12 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Compiled Simulation
Step 1: Levelize circuit and produce compiled code.
Step 2: Initialize data variables (FFs and other memory).
Step 3: For each input vector
Set PI variables
Repeat until steady-state or maximum iteration count reached
Execute compiled code.
Report or save variable values.
Adv:
Good when 2-state (0,1) simulation is sufficient, e.g., high level design
verification.
It’s fast!
Disadv:
Recompilation needed for design changes.
All nodes are evaluated including gates with steady-state values.
Typically, only 1%-10% of the gates actually change state.
Multiple delay, min-max delay are difficult to implement.
Cannot model glitches, race conditions, i.e. timing problems.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
13 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Event-Driven Simulation
Good match for discrete-event simulation.
Events (changes in signal values) cause new events (future changes in other
signal values).
A 0
B 0 G4
C 0 G8
D 0 G1
G5
F 1
G3
H 1 G7
E
G 1 G2 G9
I 1 G6 G10
J 1
Level 0 Level 1 Level 2 Level 3 Level 4
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
14 (11/26/07)
RE COUNT
UN
1966
VLSI Design Verification and Test Simulation CMPE 646
Event-Driven Simulation
Gates whose inputs change go on the activity list.
Activity
a1 t+max list
e
2 1/0 t+0 c=0 d, e
c
g 1/0/1 t+1
2 2
d 0/1 t+2 d=1 e=0 f, g
f 0/1
b1 4 t+3
t t+4 g=0
0 2 4 6 8
gates driving
Timing wheel these outputs
Simulation involves evaluating a gate on the activity list.
If output changes, then gates at fanout added to activity list.
Adv:
Computationally efficient.
Ability to simulate arbitrary delays via event scheduling.
Event scheduler responsible for distributing events to the appropri-
ate list.
UMBC
YLAND BA
AR L
M
TI
U M B C
F
IVERSITY O
MO
15 (11/26/07)
RE COUNT
UN
1966