ECE 667 Synthesis and Verification of Digital Systems

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Factorization of DSP Transforms using Taylor Expansion Diagram
Based on text by S. Mourad "Priciples of Electronic Systems" Digital Testing: Design Representation and Fault Detection
Chapter 2 Logic Circuits.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
SYMBOLIC MODEL CHECKING: STATES AND BEYOND J.R. Burch E.M. Clarke K.L. McMillan D. L. Dill L. J. Hwang Presented by Rehana Begam.
1 Don´t Care Minimization of *BMDs: Complexity and Algorithms Christoph Scholl Marc Herbstritt Bernd Becker Institute of Computer Science Albert-Ludwigs-University.
Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits using Binary Moment Diagrams” by.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
ECE 667 Student Presentation Gayatri Prabhu [1]. *PHDD: An Efficient Graph Representation for Floating Point Circuit Verification – Y. Chen, R. Bryant,
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Department of Electrical and Computer Engineering M.A. Basith, T. Ahmad, A. Rossi *, M. Ciesielski ECE Dept. Univ. Massachusetts, Amherst * Univ. Bretagne.
Spring 07, Feb 13 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Binary Decision Diagrams Vishwani D. Agrawal James.
DATE-2002TED1 Taylor Expansion Diagrams: A Compact Canonical Representation for Symbolic Verification M. Ciesielski, P. Kalla, Z. Zeng B. Rouzeyre Electrical.
Logic Synthesis Part II
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Boolean Functions and their Representations
Rolf Drechlser’s slides used
1 FRAIGs: Functionally Reduced And-Inverter Graphs Adapted from the paper “FRAIGs: A Unifying Representation for Logic Synthesis and Verification”, by.
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
Equivalence Verification of Polynomial Datapaths with Fixed-Size Bit-Vectors using Finite Ring Algebra Namrata Shekhar, Priyank Kalla, Florian Enescu,
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
ENGG3190 Logic Synthesis “Binary Decision Diagrams” BDDs Winter 2014 S. Areibi School of Engineering University of Guelph.
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
IT University of Copenhagen Lecture 8: Binary Decision Diagrams 1. Classical Boolean expression representations 2. If-then-else Normal Form (INF) 3. Binary.
1 High-Level Design Verification using Taylor Expansion Diagrams: First Results Priyank Kalla ECE Department University of Utah Maciej Ciesielski ECE Department.
By Tariq Bashir Ahmad Taylor Expansion Diagrams (TED) Adapted from the paper M. Ciesielski, P. Kalla, Z. Zeng, B. Rouzeyre,”Taylor Expansion Diagrams:
Chapter 2: Boolean Algebra and Logic Functions
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
Binary Decision Diagrams (BDDs)
CSI-2111 Computer Architecture Ipage Revision  Objective : To examine basic concepts of: –2.1 Numbering Systems –2.2 Binary Numbers –2.3 Boolean.
Electrical and Computer Engineering Muhammad Noman Ashraf Optimization of Data-Flow Computations Using Canonical TED Representation M. Ciesielski, D. Gomez-Prado,Q.
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
Exploiting Vanishing Polynomials for Equivalence Verification of Fixed-Size Arithmetic Datapaths Namrata Shekhar, Priyank Kalla, Florian Enescu, Sivaram.
SIMULATION BOUNDS FOR EQUIVALENCE VERIFICATION OF ARITHMETIC DATAPATHS WITH FINITE WORD-LENGTH OPERANDS Namrata Shekhar, Priyank Kalla, M. Brandon Meredith.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Verifying Programs with BDDs Topics Representing Boolean functions with Binary Decision Diagrams Application to program verification class-bdd.ppt
Binary decision diagrams (BDD’s) Compact representation of a logic function ROBDD’s (reduced ordered BDD’s) are a canonical representation: equivalence.
R. Johnsonbaugh Discrete Mathematics 5 th edition, 2001 Chapter 9 Boolean Algebras and Combinatorial Circuits.
Functional Modeling.
1 ECE 545—Digital System Design with VHDL Lecture 1 Digital Logic Refresher Part A – Combinational Logic Building Blocks.
Karnaugh Maps Not in textbook. Karnaugh Maps K-maps provide a simple approach to reducing Boolean expressions from a input-output table. The output from.
1 Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits with Binary Moment Diagrams” by Randal.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Test complexity of TED operations Use canonical property of TED for - Software Verification - Algorithm Equivalence check - High Level Synthesis M ac iej.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
IT 60101: Lecture #121 Foundation of Computing Systems Lecture 13 Trees: Part VIII.
Chapter 2: Boolean Algebra and Logic Functions
ECE 331 – Digital System Design
Fundamentals & Ethics of Information Systems IS 201
EEL 3705 / 3705L Digital Logic Design
Basics Combinational Circuits Sequential Circuits
LPSAT: A Unified Approach to RTL Satisfiability
Faster Logic Manipulation for Large Designs
Binary Decision Diagrams
Chapter 2 Introduction to Logic Circuits
Binary Decision Diagrams
Digital Fundamentals Floyd Chapter 4 Tenth Edition
A logic function f in n inputs x1, x2, ...xn and
A logic function f in n inputs x1, x2, ...xn and
Verifying Programs with BDDs Sept. 22, 2006
ECA1212 Introduction to Electrical & Electronics Engineering Chapter 8: Digital Electronics – Combinational Logic by Muhazam Mustapha, November 2011.
10 Design Verification and Test
Presentation transcript:

ECE 667 Synthesis and Verification of Digital Systems Word-level (decision) Diagrams BMDs, TEDs

Outline Review of design representations common representations of Boolean and arithmetic functions Motivation for word-level diagrams RTL synthesis, verification and verification Need more abstract representation Higher level “decision” diagrams Binary Moment Diagram (BMD) – word level Taylor Expansion Diagram (TED) – symbolic level ECE 667 - Synthesis & Verification - Word-level Diagrams

Motivation (Verification) Equivalence checking Logic, RTL, behavioral, algorithmic Difficulty: different levels of abstraction Current approaches Structural (cut points) Functional (canonical BDDs) Not efficient for designs with arithmetic components Q: how to perform verification of dataflow designs w/out bit-blasting A: a canonical representation on a higher level of abstraction (BMD,TED) B A s1 1 F1 D ak bk > + * - A B s2 1 F2 bk ak * - D ECE 667 - Synthesis & Verification - Word-level Diagrams

Motivation (Synthesis) Typical design flow: single DFG extracted “what you write is what you get” Better design space exploration Canonical representation Not required for synthesis, but useful in design space exploration C, C++, HDL DFG extraction High Level Synthesis RTL HDL Functional specification DFG extraction ECE 667 - Synthesis & Verification - Word-level Diagrams

Design Representations Boolean functions ( f : B  B ) Truth table, Karnaugh map SoP, PoS, ESoP Reed-Muller expansions (XOR-based) Decision diagrams (BDD, ZDD, etc.) Arithmetic functions ( f : B  Int ) Binary Moment Diagrams (*BMD, K*BMD, *PHDD) Multi-terminal, Algebraic Decision Diagrams (ADD) Arithmetic functions (f : Int  Int ) Taylor Expansion Diagrams (TED) ECE 667 - Synthesis & Verification - Word-level Diagrams

Canonical Representations Each minimal, canonical representation is characterized by Decomposition type Shannon, Davio, moment decomposition, Taylor exp., etc. Reduction rules Redundant nodes, isomorphic sub-graphs, etc. Composition method (“APPLY”, or compose rule) What they represent Boolean functions (f : B  B) Arithmetic functions (f : B  Int ) Algebraic expressions (f : Int  Int ) ECE 667 - Synthesis & Verification - Word-level Diagrams

Decomposition Types f = x fx + (1-x) fx’ = fx’ + x fx Shannon expansion (used in BDDs) f = x fx + x’ fx’ Moment decomposition (BMD): replace x’=1-x, f = x fx + (1-x) fx’ = fx’ + x fx where fx = fx - fx’ also called positive Davio decomposition Derivation of Negative Davio: Add and subtract fx to Shannon expansion, then group by (1-x): fx - fx + x fx + (1-x) fx’ = fx - (1-x) fx + (1-x) fx’ = fx + (1-x) (fx’ – fx) ECE 667 - Synthesis & Verification - Word-level Diagrams

Binary Moment Diagrams (*BMD) Devised for word-level operations, arithmetic Based on modified Shannon expansion (positive Davio) f = x fx + x’ fx’ = x fx + (1-x) fx’ = fx’ + x (fx - fx’ ) = fx’ + x fx where fx’ = fx=0, is zero moment f x = (fx - fx’ ) is first moment, first derivative Additive and multiplicative weights on edges (*BMD) ECE 667 - Synthesis & Verification - Word-level Diagrams

*BMD - Construction *BMD BMD Unsigned integer: X = 8x3 + 4x2 + 2x1 + x0 X(x3=1) = 8 + 4x2 + 2x1 + x0 X(x3=0) = 4x2 + 2x1 + x0 Xx3 = 8 x3 1 x0 x1 x2 2 4 x3 8 *BMD x2 x1 x0 4 2 1 8 BMD Multiplicative edges ECE 667 - Synthesis & Verification - Word-level Diagrams

*BMD - Word Level Representation Efficiently modeling symbolic word-level operators Word level 4 1 x0 x1 x2 2 y0 y1 y2 X+Y X Y 1 x0 x1 x2 y0 y1 y2 2 4 Word level ECE 667 - Synthesis & Verification - Word-level Diagrams

Limitations of *BMD *BMD requires bit-level expansion works on Boolean fundamentals modeled with constant and first moment only BMD representation of F = X2 , X={x2, x1, x0} 1 x0 x1 x2 2 4 8 ECE 667 - Synthesis & Verification - Word-level Diagrams

Are BDDs and *BMDs sufficiently High Level? Both are canonical for fixed variable order BDDs Good for equivalence checking and SAT Inefficient for large arithmetic circuits (multipliers) BMDs Efficient for word-level operators Less compact for Boolean logic than BDDs Good for equivalence checking, but not for SAT Insufficient for high-order arithmetic expressions ECE 667 - Synthesis & Verification - Word-level Diagrams

Symbolic Level Representation Can we devise a more general representation than “word-level” *BMD ? X + Y 1 X Y Symbolic level X Y 1 X Y Symbolic level ECE 667 - Synthesis & Verification - Word-level Diagrams

Taylor Expansion Diagram (TED) Function F treated as a continuous function Taylor Expansion (around x=0): F(x) = F(0) + x F’(0) + ½ x2 F’’(0) + … Notation: F0(x) = F(x=0) 0-child - - - - - - F1(x) = F’(x=0) 1-child ---------- F2(x) = ½ F’’(x=0) 2-child ====== etc. F(x) = F0(x) + x F1(x) + x2 F2(x) + … x F0(x) F1(x) F2(x) … F(x) ECE 667 - Synthesis & Verification - Word-level Diagrams

Construction - Your First TED F = A2B + 2C + 3 A F0(A) = F|A=0 = 2C + 3 A F1(A) = F’|A=0 = 2AB|A=0 = 0 H F2(A) = ½ F’’|A=0 = B B G= 2C + 3 B H0(B) = B|B=0 = 0 C H1(B) = B’ = 1 3 2 1 C G0(C) = (2C+3)|C=0 = 3 G1(C) = (2C+3)’ = 2 (normalization will move weights from terminals to edges) ECE 667 - Synthesis & Verification - Word-level Diagrams

TED – a few Examples (A+B)C +1 1 B C A (A+B)(A+2C) 1 B C A 2 1 x0 x1 x2 x3 2 4 8 16 64 ECE 667 - Synthesis & Verification - Word-level Diagrams

TED Reduction Rules - 1 Eliminate redundant nodes: a f a b f g b g a) Nodes with all empty edges b) with only a constant term a f a b f g b g f = 0 a2 + 0 a + g(b) = g(b), independent of a f = 0 a2 + 0 a + 0 = 0 ECE 667 - Synthesis & Verification - Word-level Diagrams

TED Reduction Rules - 2 (A2 + 5A + 6)(B + C) 2 . M e r g e i s o m o r p h i c s u b g r a p h s ( i d e n t i c a l n o d e s ) (A2 + 5A + 6)(B + C) A B C 1 6 5 A B C 1 6 5 ECE 667 - Synthesis & Verification - Word-level Diagrams

TED Normalization TED is normalized if 2(A + B + 3) 2A + 2B + 6 there are no more than two terminal nodes: 0 and 1 weights of edges of a given node must be relatively prime (to allow sharing isomorphic graphs) 2(A + B + 3) 3 B A 1 2 2A + 2B + 6 2 6 B A 3 B A 1 2 normalized ECE 667 - Synthesis & Verification - Word-level Diagrams

Normalization - Example (A2 + 5A + 6)(B + C) A B C 1 6 5 A B C 5 1 6 A B C 1 6 5 ECE 667 - Synthesis & Verification - Word-level Diagrams

TED: Composition (APPLY operation) Recursive composition of nodes, starting at the top u f x v g y OP h = f OP g q z OP = (+, - , •) = Operation depends on relative order of variables x, y if x = y, then z = x, and h(x) = f(x) OP g(x) = f0(x) OP g0(y) + x [f1(x) OP g1(y)] + x2 [f2(x) OP g2], … if x > y, then z = x, and h(x) = f0(x) OP g(y) + x [f1(x) OP g(y)] + x2 [f2(x) OP g], … else …. ECE 667 - Synthesis & Verification - Word-level Diagrams

APPLY Operation - Example A+B 1 4 3 A B C A+2C 1 6 5 A 2 3•5 4•6 A 1•1 = B B 3•1 0•1 1•1 * + 0•5 1•5 C C 1•5 1•0 1•2 0•0 0•2 1•0 1•2 1 C A B (A+B)(A+2C) 0+7 8+7 B 0+0 0+2 1 C B 8 1 C 7 2 + = 2 2 ECE 667 - Synthesis & Verification - Word-level Diagrams

Properties of TED Canonical (if ordered, reduced, normalized) Linear for polynomials of arbitrary degree Can contain word-level, and Boolean variables TEDs can be manipulated (add, mult) using simple APPLY operator, similar to BDD or BMD: f = g + h; APPLY(+, g, h) f = g * h; APPLY(*, g, h) f = g – h; APPLY(+, g, APPLY(*, -1, h)) ECE 667 - Synthesis & Verification - Word-level Diagrams

Properties of TED Canonical Compact Linear for polynomials of arbitrary degree TED for Xk, k = const, with n bits, has k(n-1)+1 nodes. Can contain symbolic, word-level, and Boolean variables It is not a Decision Diagram n = 4, k = 2 1 x0 x1 x2 x3 2 4 8 16 64 X2=(8x3+4x2+2x1+x0)2 ECE 667 - Synthesis & Verification - Word-level Diagrams

TED for Boolean logic Needed to model arithmetic-Boolean interface Same as *BMD for Boolean logic 1 x -1 x’ = (1-x) NOT AND 1 x y x y = x y OR x  y = (x + y – x y) 1 x y -1 XOR x 1 y -2 x  y = (x + y – 2 x y) ECE 667 - Synthesis & Verification - Word-level Diagrams

TED for Arithmetic Circuits Arithmetic circuits contain related word-level (A, B) and Boolean (ak, bk) variables A = [ an-1, …, ak , …,a0 ] = 2(k+1)Ahi + 2k ak + Alo Ahi Alo 1 2k 2(k+1) Ahi ak Alo B A s1 1 F1 D ak bk > + * - s1 = ak (1-bk) ECE 667 - Synthesis & Verification - Word-level Diagrams

Applications to RTL Verification Equivalence checking with TEDs interacting word-level and Boolean variables A = [an-1, …,ak,…,a0] = [Ahi,ak,Alo], B = [bn-1, …,bk,…,b0] = [Bhi,bk,Blo] B A s1 1 F1 D ak bk > + * - A B s2 1 F2 bk ak * - D F1 = s1(A+B)(A-B) + (1-s1)D s1 = (ak > bk) = ak (1-bk) F2 = (1-s2) (A2-B2) + s2 D s2 = ak’  bk = 1 - ak + ak bk ECE 667 - Synthesis & Verification - Word-level Diagrams

RTL Verification – cont’d. 1 ak Ahi D bk Bhi Alo Blo 2k 22k+2 2k+2 -2k+2 -22k+2 -1 F1 = F2 2k+1 Related word-level and Boolean variables F1 = s1(A+B)(A-B) + (1-s1)D A = [Ahi, ak, Alo] B = [Bhi, bk, Blo] s1 = (ak > bk) = ak (1-bk) This is a common (isomorphic) TED for both designs: TED(F1)  TED(F2) ECE 667 - Synthesis & Verification - Word-level Diagrams

Verification of Algorithmic Specifications Use TED to prove equivalence: IFFTi=Ci A0 A1 A3 A2 B0 B1 B2 B3 FFT(A) FFT(B) x FAB1 FAB2 FAB3 IFFT0 IFFT1 IFFT3 IFFT2 InvFFT(FAB)  A[0:3] B[0:3] C0 C1 C2 C3 Conv(A,B) ECE 667 - Synthesis & Verification - Word-level Diagrams

Summary Features of TED Applications Open problems Canonical, minimal, normalized Compact (linear for polynomials) Represents word-level blocks and Boolean logic Applications Equivalence checking, RTL verification Symbolic simulation (representation) Algorithm verification Open problems Satisfiability, functional test generation Finite precision arithmetic ECE 667 - Synthesis & Verification - Word-level Diagrams