2 Verification Hierarchy
2 Verification Hierarchy
Spring 2023/2024
Verification Hierarchy
2
Observability
and Controllability
Observability and Controllability
Observability: Indicates the ease
at which the verification engineer
can identify when the design acts
appropriately versus when it
demonstrates incorrect behavior.
Controllability: Indicates the ease
at which the verification engineer
creates the specific scenarios that
are of interest.
4
Levels of Observability
Black Box
Inputs DUV Outputs
White Box
Inputs DUV Outputs
Monitor
5
Black Box Verification
Inputs DUV Outputs
The black box has inputs, outputs, and performs some (well
documented) function.
To verify a black box, you need to understand the function.
The verification code utilizes only the external interfaces.
The internal signals and state remain in the dark.
Pros:
– No knowledge of the actual implementation is required.
– Ability to predict functional results based on inputs alone ensures that the
reference model remains independent from the DUV implementation.
– Verification code is less sensitive to changes inside the DUV.
Cons:
– Difficult to locate source of problem, only exposes effects. (If at all! Remember,
not all bugs propagate to the outputs.)
– Lacks controllability and observability.
6
White Box Verification
Inputs DUV Outputs
For white box verification the internal facilities of the DUV are
known, visible and utilised for verification.
Pros:
– Full visibility and controllability of internal signals.
Can identify and cover corner cases.
Can detect bugs as soon as they occur.
– Quickly possible to set up interesting conditions.
Cons:
– Danger to follow the implementation/design instead of the specification.
– Sensitive to changes in the DUV (implementation).
– Too many details make it hard to create and maintain.
7
Grey Box Verification
Inputs DUV Outputs
Monitor
11
Pros and Cons of Hierarchical Design
Pros
– Breaks the design into manageable pieces
– Allow designers to focus on single function /
aspect of the design
Cons
– More interfaces to specify / design / verify
– Integration issues
12
Verification at different Design Levels
Volume
system system
of testing
top
unit
top
Bugs Time
total Operating
System and
found Application
S/W
unit unit
top
system
Time
13
Levels of Verification
Verification usually adapts to and takes
advantage of the hierarchical design stages and
boundaries
Common levels of verification
– Designer level (block level)
– Unit level
– (Core level)
– Chip level
– System level
– Hardware / software co-verification
14
Designer (Block) Level Verification
Used for verification of single blocks and
macros
Usually, done by the designer him/herself
Main goal – Sanity checking and
certification for a given block
Ranges from a simple test of basic
functionality to complete verification
environments
The common level for formal verification
15
Unit Level Verification
16
Core Level Verification
18
System Level Verification
The purpose of this level of verification is
to confirm
– Interconnection
– Integration
– System design
Verification focuses on the interactions
between the components of the system
rather then the functionality of each
individual component
19
HW / SW Co-Verification
Combines the system level hardware with
the code that runs on it
Combines techniques from the hardware
verification and software testing domains
This combination creates many issues
– Different verification / testing techniques
– Different modes of operation
– Different speed
Beyond the scope of this course
20
Which Level To Choose?
21
Which Level To Choose?
22
Fundamentals of
Simulation-based
Verification
The Strategy of
Driving & Checking
Strategy of Verification
24
The Yin-Yang of Verification
Drivers
Driver
25
Comments on Yin and Yang
This perfect harmony does not always exist
– Not all failing conditions are equal
Same bug can lead under different failing conditions to
different failures (with big difference in consequences)
– We cannot (or don’t want to) detect all incorrect
behaviors
Some are not important enough
For others we have safety nets
The right balance is a function of the level of
verification and specific needs
– Example: Block vs Chip level verification – difference
in drivers and checkers and in focus of verification.
26
The Black Box Example
Design Under
Inputs Verification Outputs
(DUV)
27
Verification of the Black Box
Black box since we don’t look inside it
– What does this mean?
The black box may have a complete documentation
… or not
To verify a black box the verification engineer must
– understand the function and be able to
– predict the output based on the inputs.
It is important that the verification team obtain the
input, output and functional description of the black
box from a source other than the HDL designer
– Standard specification
– High-level design
– Other designer that interfaces with the black box
– …
28
Driving the Black Box
We can start planning the stimuli even before
the complete specification of the DUV is given
The definition of the inputs can provide
information and hints on
– The interface
– The functionality
This information can lead to first set of stimuli
More stimuli will be added as we learn more
details on the DUV
29
Checking Strategies
In microelectronic system design there are
five main sources of checkers
– The inputs and outputs of the design
(specification)
– The architecture of the design
– The microarchitecture of the design
– The implementation of the design
– The context of the design (up the hierarchy)
Note that the source of checkers and their
implementation are two different issues
30
Checking Based On the DUV I/O
DUV Function
DUV
Inputs DUV(Input) = Output Outputs
31
Checking Based On the Architecture
Example instruction stream:
SUB R7 R1 R2
BRZ R7 L
32
Checking Based On the
Architecture and Microarchitecture
34
Driving and Checking
35