Formal Hardware Verification: getting started Mary Sheeran Making - - PowerPoint PPT Presentation

formal hardware verification getting started
SMART_READER_LITE
LIVE PREVIEW

Formal Hardware Verification: getting started Mary Sheeran Making - - PowerPoint PPT Presentation

Formal Hardware Verification: getting started Mary Sheeran Making Formal Verification work Aim for automation (bit level) Find niches where formal methods work well Use assertions/ properties first in sim. and then in FV (the acronym is ABV,


slide-1
SLIDE 1

Formal Hardware Verification: getting started

Mary Sheeran

slide-2
SLIDE 2

Making Formal Verification work

Aim for automation (bit level) Find niches where formal methods work well Use assertions/ properties first in sim. and then in FV (the acronym is ABV, assertion based verif.)

slide-3
SLIDE 3

First question: what exactly do we reason about (in this course)?

Answer: Finite State Machines (or state transition systems) at the bit level Always reasoning about models of circuits Need to be sure conclusions really apply to the final physical circuit

slide-4
SLIDE 4

What is a (gate level) circuit (for us)?

boolean gates clocked state holding elements (d flip-flops) components (or boxes) containing gate level circuits

slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7

Rules

Each cycle contains at least one flip-flop Wires can be split but not joined Single clock Simple synchronous circuits

slide-8
SLIDE 8

and and

  • r

dreq q0 dack D D

slide-9
SLIDE 9

View circuit as a transition system

(dreq, q0, dack)  (dreq’, q0’, dack’) q0’ = dreq dack’ = dreq & (q0 + (¬q0 & dack))

slide-10
SLIDE 10

and and

  • r

dreq q0 dack D D

slide-11
SLIDE 11

dreq q0 dack dack’ q0’ Exercise: draw the contents of the blue box

slide-12
SLIDE 12

So the blue box (which contains only boolean gates) captures everything we need to know about the circuit (assuming we know which signals are states, inputs and outputs).

Sometimes pictured as

(see Magnus’ slide on BMC) Often output is a single OK wire checking a property

in

  • ut

state’ state

slide-13
SLIDE 13

Can view transition relation as state -> state

(dreq, q0, dack)  (dreq’, dreq, dreq & (q0 || (¬q0 & dack))) Exercise: Draw state transition diagram Q: How many states for a start?

slide-14
SLIDE 14

Hint (partial answer)

000 100 110 111 001 101 010 011

slide-15
SLIDE 15

Question

000 100 110 111 001 101 010 011

How many arrows should there be out of each state? Why so? (Complete the diagram in spare time)

slide-16
SLIDE 16

and and

  • r

dreq q0 dack D D 1

Formal tools operate on Netlists

slide-17
SLIDE 17

and and

  • r

dreq q0 dack D D 1

Formal tools operate on Netlists

slide-18
SLIDE 18

input to SMV model checker

MODULE main VAR w1 : boolean; VAR w2 : boolean; VAR w3 : boolean; VAR w4 : boolean; VAR w5 : boolean; VAR i0 : boolean; VAR w6 : boolean; VAR w7 : boolean; VAR w8 : boolean; VAR w9 : boolean; VAR w10 : boolean; DEFINE w4 := 0; DEFINE w5 := i0; ASSIGN init(w3) := w4; ASSIGN next(w3) := w5; DEFINE w7 := !(w3); DEFINE w9 := 1; DEFINE w10 := w5 & w6; ASSIGN init(w8) := w9; ASSIGN next(w8) := w10; DEFINE w6 := w7 & w8; DEFINE w2 := w3 | w6;

MC builds internal representation of transition system

slide-19
SLIDE 19

We reason about models of circuits

Circuits we will design and verify are synchronous with a single clock => very easy move to a formal representation. No worries about accuracy of modelling. In JG as we use it, if the circuit is not at the gate level, a netlist is synthesised to enable formal reasoning (e.g. comparison with the user’s gate level implementation) We have no worries about the accuracy of our modelling

slide-20
SLIDE 20

We reason about models of circuits

Real life circuits typically have multiple clocks => translation to transition system a bit more complicated with a finer view of time. Still a single abstract clock but now the real clocks are viewed as inputs. To reason about finer details of circuits (e.g. gate delays) then a finer degree of modelling is used to get to the transition system. More delay elements in the model. No longer one to one match. Lots of real life circuits also break the rules (e.g. with clocks that depend on each other), leading to special hacks in the formal tools It is also possible (but much harder) to reason about analogue or asynchronous circuits

slide-21
SLIDE 21

Questions?

slide-22
SLIDE 22

Key ideas 1: Binary Decision Diagrams

Vital enabling technology (along with SAT solving) Data structure for representing a Boolean function (current form introduced by Bryant, known earlier) Canonical form (constant time comparison) Used in Symbolic Model Checking Following slides are by Bryant (used with thanks!)

slide-23
SLIDE 23

Decision Structures

Truth Table Decision Tree – Vertex represents decision – Follow green (dashed) line for value 0 – Follow red (solid) line for value 1 – Function value determined by leaf value.

x3 1 x3 x2 1 x3 1 x3 x2 x1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

x1 x2 x3

f

slide-24
SLIDE 24

Variable Ordering

– Assign arbitrary total ordering to variables

  • e.g., x1 < x2 < x3

– Variables must appear in ascending order along all paths

OK Not OK Properties

 No conflicting variable assignments along path  Simplifies manipulation

x1 x2 x3 x1 x3 x3 x2 x1 x1 x1

slide-25
SLIDE 25

Reduction Rule #1

Merge equivalent leaves

a a

x3 1 x3 x2 1 x3 1 x3 x2 x1 x3 x3 x2 x3 1 x3 x2 x1

a

slide-26
SLIDE 26

Reduction Rule #2

y x z x

Merge isomorphic nodes

x3 x3 x2 x3 1 x3 x2 x1 x3 x2 1 x3 x2 x1

y x z x y x z x

slide-27
SLIDE 27

Reduction Rule #3

x3 x2 1 x3 x2 x1

Eliminate Redundant Tests

y x y

x2 1 x3 x1

slide-28
SLIDE 28

Example OBDD

Initial Graph Reduced Graph

  • Canonical representation of Boolean function

 For given variable ordering – Two functions equivalent if and only if graphs isomorphic

  • Can be tested in linear time

– Desirable property: simplest form is canonical.

x2 1 x3 x1 (x1+x2)· x3 x3 1 x3 x2 1 x3 1 x3 x2 x1

slide-29
SLIDE 29

Example Functions

Constants

Unique unsatisfiable function Unique tautology

1

Variable

Treat variable as function 1 x

Typical Function

x2 1 x4 x1

 (x1 ∨ x2 ) ∧ x4  No vertex labeled x3  independent of x3  Many subgraphs shared

slide-30
SLIDE 30

Exercise: make OBDD for

You an label the arcs with 0 and 1 instead of using colours

slide-31
SLIDE 31

Exercise: make OBDD for

How does it look for x1 ⊕ x2 ⊕ x3 ⊕ x4 and for odd parity in general?

slide-32
SLIDE 32

BDD for x1 ⊕ x2 ⊕ x3 ⊕ x4

Odd Parity Linear representation x2 x3 x4 1 x4 x3 x2 x1

slide-33
SLIDE 33

Representing Circuit Functions

b3 b3 a3 Cout b3 b2 b2 a2 b2 b2 a2 b3 a3 S3 b2 b1 b1 a1 b1 b1 a1 b2 a2 S2 b1 a0 a0 b1 a1 S1 b0 1 b0 a0 S0

  • Functions

– All outputs of 4-bit adder – Functions of data inputs

A B Cout S A D D

Shared Representation

 Graph with multiple roots  31 nodes for 4-bit adder  571 nodes for 64-bit adder Linear growth

slide-34
SLIDE 34

Effect of Variable Ordering

Good Ordering Bad Ordering

Linear Growth b3 a3 b2 a2 1 b1 a1 Exponential Growth a3 a3 a2 b1 b1 a3 b2 b1 b3 b2 1 b1 a3 a2 a1

) ( ) ( ) (

3 3 2 2 1 1

b a b a b a ∧ ∨ ∧ ∨ ∧

slide-35
SLIDE 35

Selecting Good Variable Ordering

  • Intractable Problem

– Even when problem represented as OBDD

  • I.e., to find optimum improvement to current ordering
  • Application-Based Heuristics

– Exploit characteristics of application – E.g., Ordering for functions of combinational circuit

  • Traverse circuit graph depth-first from outputs to inputs
  • Assign variables to primary inputs in order encountered
slide-36
SLIDE 36

Dynamic Variable Reordering

– Richard Rudell, Synopsys

  • Periodically Attempt to Improve Ordering for

All BDDs

– Part of garbage collection – Move each variable through ordering to find its best location

  • Has Proved Very Successful

– Time consuming but effective – Especially for sequential circuit analysis

slide-37
SLIDE 37

Sample Function Classes

Function Class Best Worst Ordering Sensitivity ALU (Add/Sub) linear exponential High Symmetric linear quadratic None Multiplication exponential exponential Low

  • General Experience

– Many tasks have reasonable OBDD representations – Algorithms remain practical for up to 100,000 node OBDDs (Note from MS: remember this was written in 1999) – Heuristic ordering methods generally satisfactory

slide-38
SLIDE 38
  • Lower Bound for Multiplication

– Bryant, 1991

  • Integer Multiplier Circuit

– n-bit input words A and B – 2n-bit output word P

  • Boolean function

– Middle bit (n-1) of product

  • Complexity

– Exponential OBDD for all possible variable orderings Multn

  • a0

an-1 b0 bn-1 p0 pn-1 pn p2n-1

Actual Numbers

 40,563,945 BDD nodes to

represent all outputs of 16- bit multiplier

 Grows 2.86x per bit of word

size

Intractable Function

slide-39
SLIDE 39

Symbolic Manipulation with OBDDs

  • Strategy

– Represent data as set of OBDDs

  • Identical variable orderings

– Express solution method as sequence of symbolic operations – Implement each operation by OBDD manipulation

  • Algorithmic Properties

– Arguments are OBDDs with identical variable orderings. – Result is OBDD with same ordering. – “Closure Property”

  • Contrast to Traditional Approaches

– Apply search algorithm directly to problem representation

  • E.g., search for satisfying truth assignment to Boolean expression.
slide-40
SLIDE 40

Arguments I, T, E

 Functions over variables X  Represented as OBDDs

Result

 OBDD representing

composite function

 (I ∧T) ∨ (¬I ∧ E)

Implementation

 Combination of depth-first traversal and dynamic programming.  Worst case complexity product of argument graph sizes.

MUX 1 I → T, E X I T E

If-Then-Else Operation

Concept

  • Basic technique for building OBDD from logic network or

formula.

slide-41
SLIDE 41

1 d c a B3 B4 B2 B5 B1 Argument I

1

Argument T Argument E A4,B3 A5,B4 A3,B2 A6,B2 A2,B2 A3,B4 A5,B2 A6,B5 A1,B1 Recursive Calls b d 1 c a A4 A5 A3 A2 A6 A1

If-Then-Else Execution Example

  • Optimizations

– Dynamic programming – Early termination rules

slide-42
SLIDE 42

1 d c b 1 1 c a A4,B3 A5,B4 A3,B2 A6,B2 A2,B2 A3,B4 A5,B2 A6,B5 A1,B1 Recursive Calls Without Reduction With Reduction C2 C4 C5 C3 C6 C1 0 d c b 1 a

If-Then-Else Result Generation

– Recursive calling structure implicitly defines unreduced BDD – Apply reduction rules bottom-up as return from recursive calls

  • Generates reduced graph
slide-43
SLIDE 43

Restriction Operation

Implementation

 Depth-first traversal.  Complexity near-linear in argument graph size

  • Concept

– Effect of setting function argument xi to constant k (0 or 1). – Also called Cofactor operation (UCB)

k F xi –1 xi +1 xn x1 F [xi =k] Fx equivalent to F [x = 1] Fx equivalent to F [x = 0]

slide-44
SLIDE 44

Derived Operations

Express as combination of If-Then-Else and Restrict Preserve closure property

  • Result is an OBDD with the right variable ordering

Polynomial complexity

  • Although can sometimes improve with special

implementations

slide-45
SLIDE 45

And(F, G)

X F G MUX 1 F → G, 0 X F G X F G MUX 1 F → 1, G X F G 1

Or(F, G) If-Then-Else(F, G, 0) If-Then-Else(F, 1, G)

Derived Algebraic Operations

– Other operations can be expressed in terms of If-Then-Else

slide-46
SLIDE 46

G F xi –1 xi +1 xn x1 x1 xn F [xi =G] x1 xn xi –1 xi +1 xn x1 xi –1 xi +1 xn x1 1 F F

MUX 1

G

Functional Composition

– Create new function by composing functions F and G. – Useful for composing hierarchical modules.

slide-47
SLIDE 47

xi –1 xi +1 xn x1 F ∃

∃ xi F

1 F F xi –1 xi +1 xn x1 xi –1 xi +1 xn x1

Variable Quantification

– Eliminate dependency on some argument through quantification – Combine with AND for universal quantification.

slide-48
SLIDE 48

Generating OBDD from Network

Network Evaluation

Task: Represent output functions of gate network as OBDDs.

A B C T1 T2 Out

Resulting Graphs

A B C T1 T2 Out

1 a 1 c 1 b 1 b a 1 c b c b 1 b a

  • A

← new_var ("a");

  • B

← new_var ("b");

  • C

← new_var ("c");

  • T1 ← And (A, 0, B);
  • T2 ← And (B, C);
  • Out ← Or (T1, T2);
slide-49
SLIDE 49

1 a T1 ← Or (A, C); O2 ← And (T1, B); if (O2 == Out) then Equivalent else Different Alternate Network Evaluation Resulting Graphs

A B C T1 O2 A B C T1 O2

c b 1 b a c 1 1 b 1 a c

Checking Network Equivalence

Task: Do two networks compute same Boolean function? Method: Compute OBDDs for both networks and compare

end of Bryant’s slides, with thanks

slide-50
SLIDE 50

First form of FV Equivalence Checking (EC,CEC)

Boolean network comparison, also known as combinational equivalence checking Straight BDD comparison works for moderately sized circuits. For larger circuits, more sophisticated methods are used. Invisible to user, automatic, effective

slide-51
SLIDE 51

Second form of FV

slide-52
SLIDE 52

Second form of FV

slide-53
SLIDE 53
slide-54
SLIDE 54
slide-55
SLIDE 55
slide-56
SLIDE 56
slide-57
SLIDE 57
slide-58
SLIDE 58
slide-59
SLIDE 59
slide-60
SLIDE 60
slide-61
SLIDE 61
slide-62
SLIDE 62
slide-63
SLIDE 63

Pro and Cons of BDDs

+ Powerful operations (create, manipulate,test) polynomial complexity, composable + Usually stay small enough given good variable order + Provide quantification operations (unlike plain SAT)

  • sometimes explode in size
  • important circuits (multipliers and shifters) are

problematic => yet more special hacks in the tools In practice used together with SAT and other engines

slide-64
SLIDE 64

Questions?

Next step in FV methods: Symbolic Model Checking (week after next) Next week: PSL

slide-65
SLIDE 65

Answer to earlier question

000 100 110 111 001 101 010 011 More questions: Given the initialisation of the state holding elements shown in slide 17, how many initial states are there and why? What are they? Write down the corrresponding binary relation as a set of pairs of states