formal equivalence checking - ii - iit bombay

27
Formal Equivalence Checking - II Virendra Singh Associate Professor Computer Architecture and Dependable Systems Lab Dept. of Electrical Engineering Indian Institute of Technology Bombay, Mumbai [email protected] EE 709: Testing & Verification of VLSI Circuits Lecture – 7 (Jan 18, 2012)

Upload: others

Post on 23-Dec-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Formal Equivalence Checking - II - IIT Bombay

Formal Equivalence Checking - II

Virendra Singh Associate Professor

Computer Architecture and Dependable Systems Lab Dept. of Electrical Engineering

Indian Institute of Technology Bombay, Mumbai [email protected]

EE 709: Testing & Verification of VLSI Circuits

Lecture – 7 (Jan 18, 2012)

Page 2: Formal Equivalence Checking - II - IIT Bombay

2

Formal Equivalence Checking

BDD is canonical form of representation

Shannon’s expansion theorem

f(x1, x2, ….xi, ……xn) =

xi.f(x1, x2, … ,xi=1, ……xn) +

xi’. f(x1, x2, … ,xi=0, ……xn)

Jan 18, 2012 EE-709@IITB

f(x1, x2, … ,xi=1, ……xn)

xi

f(x1, x2, … ,xi=0, ……xn)

Page 3: Formal Equivalence Checking - II - IIT Bombay

3

Example OBDD

Initial Graph Reduced Graph

• Canonical representation of Boolean function

For given variable ordering

Two functions equivalent if and only if graphs isomorphic

o Can be tested in linear time

Desirable property: simplest form is canonical.

x2

0 1

x3

x1 (x1+x2)·x3

0 0

x3

0 1

x3

x2

0 1

x3

0 1

x3

x2

x1

Jan 18, 2012 EE-709@IITB

Page 4: Formal Equivalence Checking - II - IIT Bombay

4

Effect of Variable Ordering

Good Ordering Bad Ordering

Linear Growth

0

b3

a3

b2

a2

1

b1

a1

Exponential Growth

a3 a3

a2

b1 b1

a3

b2

b1

0

b3

b2

1

b1

a3

a2

a1

)33

()22

()11

( bababa

Jan 18, 2012 EE-709@IITB

Page 5: Formal Equivalence Checking - II - IIT Bombay

5

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 500,000 node OBDDs

Heuristic ordering methods generally satisfactory

Jan 18, 2012 EE-709@IITB

Page 6: Formal Equivalence Checking - II - IIT Bombay

ROBDD sizes & variable ordering

• Bad News – Finding optimal variable ordering NP-Hard

– Some functions have exponential BDD size for all orders e.g. multiplier

• Good News – Many functions/tasks have reasonable size ROBDDs

– Algorithms remain practical up to 500,000 node OBDDs

– Heuristic ordering methods generally satisfactory

• What works in Practice – Application-specific heuristics e.g. DFS-based ordering for

combinational circuits

– Dynamic ordering based on variable sifting (R. Rudell)

6 Jan 18, 2012 EE-709@IITB

Page 7: Formal Equivalence Checking - II - IIT Bombay

7

Operations with BDD (1/5)

Restriction: A restriction to a function to x=d, denoted f|x=d, where x ϵ var (f), and d ϵ {0,1}, is equal to f after assigning x = d.

Given BDD of f, deriving BDD of f|x=d is simple

Jan 18, 2012 EE-709@IITB

Page 8: Formal Equivalence Checking - II - IIT Bombay

8

Operations with BDD (2/5)

Let v1, v2 denote root nodes of f1, f2 respectively , with var(v1) = x1 and var(v2) = x2

If v1 and v2 are leafs, f1 OP f2 is a leaf node with value val(v1) OP val(v2)

Jan 18, 2012 EE-709@IITB

Page 9: Formal Equivalence Checking - II - IIT Bombay

9

Operations with BDD (3/5)

If x1 = x2 = x, apply shanon’s expansion

f1 OP f2 = x . (f1|x=0 OP f2|x=0) + x’ . (f1|x=1 OP f2|x=1)

Jan 18, 2012 EE-709@IITB

X

BDD for f1|x=0

BDD for f1|x=1

X

BDD for f2|x=0

BDD for f2|x=1

OP

Page 10: Formal Equivalence Checking - II - IIT Bombay

10

Operations with BDD (4/5)

Jan 18, 2012 EE-709@IITB

X

BDD for f1|x=0

BDD for f1|x=1

X

BDD for f2|x=0

BDD for f2|x=1

OP

X

BDD for f1|x=0 OP f2|x=0

BDD for f1|x=1 OP f2|x=1

Page 11: Formal Equivalence Checking - II - IIT Bombay

11

Operations with BDD (5/5)

Else suppose x1 < x2 = x, in variable order

f1 OP f2 = x1 (f1|x1=0 OP f2) + x1’ (f1|x1=1 OP f2)

Jan 18, 2012 EE-709@IITB

X1

BDD for f1|x1=0 OP f2

BDD for f1|x1=1 OP f2

Page 12: Formal Equivalence Checking - II - IIT Bombay

12

Operations with BDD: Example

Jan 18, 2012 EE-709@IITB

X1

BDD for f2|x1=0 OP f2

BDD for

f1|x1=1 OP f2

= + BDD for f2|x1=0 OP f2

=

f1=X1XOR X2 f2=X2

+

Page 13: Formal Equivalence Checking - II - IIT Bombay

13

Operations with BDD: Example

Jan 18, 2012 EE-709@IITB

X1

BDD for f2|x1=0 OP f2

BDD for

f1|x1=1 OP f2

=

f1=X1XOR X2 f2=X2

OP

=

=

Page 14: Formal Equivalence Checking - II - IIT Bombay

14

Operations with BDD: Example

Jan 18, 2012 EE-709@IITB

Page 15: Formal Equivalence Checking - II - IIT Bombay

From circuits to BDD

X1

X2 X2

1 0

1 1 0 0

0 1 X1

X2

1 0

1

0

0

1 X1

X2

1 0

0

1

1

0 X1

X2

1 0

0

0

1

1

X2

1 0

1 0

X1

1 0

1 0

X1

X2

G1

G2

G3

G4

15 Jan 18, 2012 EE-709@IITB

Page 16: Formal Equivalence Checking - II - IIT Bombay

Variants of decision diagrams

• Multiterminal BDDs (MTBDD) – Pseudo Boolean functions Bn N, terminal nodes are integers

• Ordered Kronecker FunctionalDecision Diagrams (OKFDD) – uses XOR in OBDDs

• Binary Moment Diagrams (BMD) – good for arithmetic operations and word-level representation

• Zero-suppressed BDD (ZDD) – good for representing sparse sets

• Partitioned OBDDs (POBDD) – highly compact representation which retains most of the features of ROBDDs

• BDD packages –

– CUDD from Univ. of Colorado, Boulder,

– CMU BDD package from Carnegie Mellon Univ.

– In addition, companies like Intel, Fujitsu, Motorola etc. have their own internal BDD packages

16 Jan 18, 2012 EE-709@IITB

Page 17: Formal Equivalence Checking - II - IIT Bombay

17

Formal Equivalence Checking

A T 0

A

C

B O 1

T 1

T 2

B C

O 2 3

Diff 1

1

0 0

1

1 1

1

1

1

0

• Satisfiability Formulation

– Search for input assignment giving different outputs

• Branch & Bound

– Assign input(s)

– Propagate forced values

– Backtrack when cannot succeed

• Challenge

– Must prove all assignments fail

• Co-NP complete problem

– Typically explore significant fraction of inputs

– Exponential time complexity

Jan 18, 2012 EE-709@IITB

Page 18: Formal Equivalence Checking - II - IIT Bombay

SAT Problem definition

Given a CNF formula, f :

(C1,C2,C3) Conjunction of clauses

(a,b,c) A set of variables, V

Each clause: disjunction of literals over V

C1 C2 C3

a = b = c = 1 ))()(( cbacacba Example :

Does there exist an assignment of Boolean values to the

variables, V which sets at least one literal in each clause

to ‘1’ ?

Jan 18, 2012 EE-709@IITB 18

Page 19: Formal Equivalence Checking - II - IIT Bombay

C1

CONFLICT!

DPLL algorithm for SAT

Given : CNF formula f(v1,v2,..,vk) , and an

ordering function Next_Variable

))()(( bacaba

Example :

C1 C2 C3

1

C3

C2

SAT!

1 c

1

0 b

0

a 0

[Davis, Putnam, Logemann, Loveland 1960,62]

Jan 18, 2012 EE-709@IITB 19

Page 20: Formal Equivalence Checking - II - IIT Bombay

DPLL algorithm: Unit clause rule

Rule: Assign to true any single literal clauses.

)( cba =

0

=

0 c = 1

))()()()()(( edcedeccbacbcaa

))()()(( edcedeccbc

)( ede

Apply Iteratively: Boolean Constraint Propagation (BCP)

Jan 18, 2012 EE-709@IITB 20

Page 21: Formal Equivalence Checking - II - IIT Bombay

Anatomy of a modern SAT solver

SAT

Solver

Search Restarts To correct for bad choices in variable ordering

Restart algorithm “periodically”

Retain some/all recorded clauses

Clause database

management

Discard useless

clauses (e.g. inactive or

large clauses)

Efficient garbage

collection

Conflict-driven

learning

DPLL Algorithm Efficient BCP

Jan 18, 2012 EE-709@IITB 21

Page 22: Formal Equivalence Checking - II - IIT Bombay

Conflict driven search pruning (GRASP)

SAT

Non-chronological backtracking

Conflict-clause recording

xk-1

xk

x2

x1

xj

1

2

Silva & Sakallah ‘95

Jan 18, 2012 EE-709@IITB 22

Page 23: Formal Equivalence Checking - II - IIT Bombay

Variable ordering

• Significantly impacts size of search tree

• Ordering schemes can be static or dymamic

• Conventional wisdom (pre-chaff):

– Satisfy most number of clauses OR

– Maximize BCP

– e.g. DLIS, MOMs, BOHMs etc.

Jan 18, 2012 EE-709@IITB 23

Page 24: Formal Equivalence Checking - II - IIT Bombay

Variable ordering: New ideas

• New wisdom: Recorded clauses key in guiding

search

• Conflict-driven variable ordering:

– Chaff (DAC’01): Pick var. appearing in most number

of recent conflict clauses

– BerkMin (DATE’02): Pick var. involved in most number of recent conflicts

• Semi-static in nature, for efficiency

– Statistics updated on each conflict

• Side-effect: Better cache behavior

Jan 18, 2012 EE-709@IITB 24

Page 25: Formal Equivalence Checking - II - IIT Bombay

Efficient Boolean Constraint Propagation

• Observation: BCP almost 80% of compute time, under clause recording

• Traditional implementation:

– Each clause: Counter for #literals set to false

– Assgn. to variable ‘x’: Update all clauses having x, x

• New Idea: Only need to monitor event when # free literals in a clause goes from 2 to 1

– Need to watch only 2 literals per clause : SATO (Zhang’97),Chaff (DAC’01)

… … … x1 w1 w2 xk

Jan 18, 2012 EE-709@IITB 25

Page 26: Formal Equivalence Checking - II - IIT Bombay

SAT solvers today

• Capacity: – Formulas upto a million variables and 3-4 million

clauses can be solved in few hours

– Only for structured instances e.g. derived from real-world circuits & systems

Tool offerings: Public domain

GRASP : Univ. of Michigan

SATO: Univ. of Iowa

zChaff: Princeton University

BerkMin: Cadence Berkeley Labs.

Commercial PROVER: Prover Technologies

Jan 18, 2012 EE-709@IITB 26

Page 27: Formal Equivalence Checking - II - IIT Bombay

27

Thank you

Jan 18, 2012 EE-709@IITB