LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS

Size: px
Start display at page:

Download "LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS"

Transcription

1 LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS

2 LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS by Gary D. Hachtel University of Colorado Fabio Somenzi University of Colorado KLUWER ACADEMIC PUBLISHERS NEW YORK, BOSTON, DORDRECHT, LONDON, MOSCOW

3 ebook ISBN: Print ISBN: Kluwer Academic Publishers New York, Boston, Dordrecht, London, Moscow Print 1996 Kluwer Academic Publishers Dordrecht All rights reserved No part of this ebook may be reproduced or transmitted in any form or by any means, electronic, mechanical, recording, or otherwise, without written consent from the Publisher Created in the United States of America Visit Kluwer Online at: and Kluwer's ebookstore at:

4 To: Linda, Jordan, and Kira, and Chiara and Laura.

5 Contents I Introduction 1 1 Introduction 1.1 VLSI: Opportunity and Challenge Manufacturing Technology Design technology Why VLSI 1.2 VLSI Processes 1.3 Design Styles Design Decomposition Overview of Optimal Logic Synthesis Logic (Circuit) Design Styles 10 Area-Time Tradeoff Curves The Technology Independent View A Bit-Serial Full Adder Circuit The Technology Dependent View Technology Mapping Testing Is What I Fabricated What I Wanted? Graph Models and Finite State Machines Successors and Predecessors 1.5 Graph Algorithms and Complexity Complexity Computing the Product of Sets of Sets Longest Paths Backtracing Complexity of Computing the Longest Path 1.6 Asymptotic Complexity (or just complexity) Worst Case Asymptotic Upper Bound Complexity Complexity of Algorithms Practical Complexities Brief Summary of MOS Device Behavior Notes Summary Problems

6 viii CONTENTS 2 A Quick Tour of Logic Synthesis with the Help of a Simple Example 2.1 A Simple Case Conversion Circuit 2.2 First Refinement 2.3 The Transform Block The CC Block An Optimized Transform Block 2.4 The Command Interpreter Checking for Equality Optimizing the Command Interpreter Technology Mapping Problems II Two Level Logic Synthesis 73 3 Boolean Algebras 3.1 Sets, Relations, and Functions Sets Relations Reflexive Binary Relations Functions 3.2 Partial Orders Boolean Functions Partially Ordered Sets Hasse Diagrams The Meet and Join Operations Totally Ordered Sets, Well-Ordered Sets, and Induction Lattices Definition of Boolean Algebras Examples and Properties of Boolean Algebras Boolean Formulae Boolean Functions Boole s Expansion Theorem The Minterm Canonical Form 99 Pseudo-Boolean Functions 101 The Boolean Algebra of Boolean Functions Atoms of a Boolean Algebra 3.4 Don t Care Conditions as Boolean Function Algebra Intervals Satisfiability Don t Care Conditions Observability Don t Care Conditions Deriving Don t Cares From and Interval Specification 3.5 Incomplete Specification of Boolean Functions Incompletely Specified Switching Functions Incompletely Specified Boolean Functions 3.6 Notes 3.7 Summary 3.8 Problems

7 CONTENTS 4 Synthesis of Two-Level Circuits 4.1 Design Optimality 4.2 Two-Level Logic Cost Functions for Two-Level Implementations Minimality and Testability 4.3 Sums of Products and Products of Sums 4.4 Implicants and Prime Implicants Quine s Prime Implicant Theorem 4.5 Iterated Consensus Consensus and Implications: A Digression The Tabular Method of Computing the Prime Implicants Iterated Consensus in General Recursive Computation of Prime Implicants Selecting a Subset of Primes The Unate Covering Problem Reduction Techniques Essential Columns or Variables Row or Constraint Dominance Column or Variable Dominance Systematically Exploring the Search Space Computation of the Lower Bound 4.9 The Branch-and-Bound Algorithm Choice of the Splitting Variable Examples of Splitting and Lower Bounding The Unate Covering Problem as an Integer Linear Program 4.10 Multiple Output Functions Notes Summary Problems Multiple-Output Primes Formulating the Covering Problem Incompletely Specified Multiple-Output Functions 5 Heuristic Minimization of Two-Level Circuits 5.1 Local Search Local Search Applied to Logic Minimization A Simple Local Search Algorithm for Logic Minimization 5.2 Checking for Equivalence and Tautology Unate Functions Additional Speed-Up Techniques for Tautology Checking Examples of Tautology Checks 5.3 Choosing the Right Direction Recursive Complementation Using the OFF-set in the Expansion Identifying Essential Primes Multiple-Valued Logics ix

8 x CONTENTS Notes Summary Problems Binary Decision Diagrams (BDDs) 6.1 Representing Logic Functions with BDDs Why Ordering is Important Binary Decision Diagrams by Way of Examples Formal Definition of BDDs How to Build the BDD for Reduced BDDs Design Considerations for a BDD Package Algorithms The ITE Algorithm Complement Edges The Computed Table Conditioning of the ITE Calls The ITE_CONSTANT Algorithm Notes Summary Problems III Models of Sequential Systems Models of Sequential Systems Introduction to Finite State Machines Synthesis of Finite State Machines FSMs: Definitions, Notation, and Examples Examples Incomplete Specification 7.4 FSM Minimization for Completely Specified Machines Identifying the Equivalent States of an FSM State Equivalence Checking: the Partition/Refinement Approach Finding the Reduced Machine Moore Machines and DFAs The Iterative Collapsing Approach Summary of State Equivalence Checking Methods 7.5 Graph Algorithms for FSM Traversal Shortest Paths Graphs, Subgraphs, and Components Graph Traversal Breadth First Search Traversal Depth First Search Finding the SCCs of a Directed Graph Models of Sequential Systems FSTs: Strings, Runs, Reachability and Products Finite State Transition Structures

9 CONTENTS NFAs and FSTs as Labeled Digraphs Strings, Tapes and Runs of FSTs Product of FSTs 7.8 FSM Equivalence Checking Strings which Distinguish Two Machines Building the Product Machine Equivalence Identification by Isomorphism 7.9 Reachability Analysis FSM Traversal Using Binary Decision Diagrams 7.10 Symbolic FSM State Traversal Transition Relations and Symbolic Image Computation 7.11 Notes 7.12 Summary 7.13 Problems 8 Synthesis and Verification of Finite State Machines 8.1 Minimization of Incompletely Specified Machines Finding the Compatible Pairs Finding the Maximal Compatibles Finding the Prime Compatibles Setting up the Covering Problem Forming the Reduced Table 8.2 The Binate Covering Problem Formulation of BCP Reduction Techniques Choice of the Splitting Variable and Bounding Maximal independent set. Choice of the branching column Infeasible problems. An Example of Reductions 8.3 State Encoding Practical Encoding Algorithms 8.4 Decomposition and Encoding Notes Notes Summary Problems Partitions Partitions with Substitution Property Computation of the S.P. Partitions General Decomposition and State Encoding xi

10 xii CONTENTS 9 Finite Automata 9.1 Finite Automata and Regular Languages String Acceptance Languages of Finite Automata Complements of Languages Examples 9.2 DFA Synthesis Determinization of FSTs and FAs The Subset Construction The Deterministic Image Automata Formal Verification with L-Automata Languages 9.5 Language Containment Notes Summary Problems Lifting Acceptance Conditions to a Product L-Automaton Example of Product L-Automaton BDD Representation of Cycle Sets and Recur Edges The Language Containment Algorithm Example of Containment Check IV Multilevel Logic Synthesis Multi-Level Logic Synthesis 10.1 Introduction Networks and Algebraic Operations 10.2 Representation Issues and Choices Alternate Node Representations 10.3 Representing Switching Functions in Factored Form Factored Forms Algebraic and Boolean Expressions Algebraic and Boolean Factored Forms Value of a Factorization Equivalent, Maximal, and Optimum Factorizations Size, Unateness, and Cofactors of a Factored Form 10.4 Division 10.5 Kernels and Co-Kernels Computation of Co-Kernels and Kernels 10.6 Heuristic Factoring Algorithms Generic Factoring Algorithm Quick Factor Good Factor Boolean Factor Summary of Factoring Algorithms

11 CONTENTS xiii Rectangle Covering 10.7 Decomposition and Restructuring Algebraic Resubstitution Selective Node Elimination Extraction 10.8 Notes 10.9 Summary Problems 11 Multi-Level Minimization 11.1 Introduction 11.2 Boolean Networks Network Cost 11.3 Don t Cares in Multi-Level Networks Satisfiability Don t Cares Observability Don t Cares Use of Don t Cares in Minimization Internal and External Don t Cares External Satisfiability Don t Care Conditions External Observability Don t Care Conditions Internal Satisfiability Don t Cares Observability Don t Cares Computing ODCs with the Boolean Difference Prime and Irredundant Networks Two-Level Minimization with Multi-Level Don t Cares Notes Summary Problems 12 Automatic Test Generation for Combinational Circuits 12.1 Introduction 12.2 Faults and Fault Models 12.3 Automatic Test Generation Excitation and Sensitization A Simple Test Generation Algorithm Implications and Backtracking Choice of the Decision Variables Putting the Pieces Together Redundancy Removal Notes Summary Problems

12 xiv 13 Technology Mapping 13.1 Graph Covering and Technology Mapping 13.2 Choice of Base Functions 13.3 Creating the Subject Graph 13.4 The DAG-Covering Problem 13.5 Tree Covering by Dynamic Programming 13.6 Decomposition 13.7 Delay Optimization and Graph Covering 13.8 Notes 13.9 Summary Problems A ASCII Codes B Supplementary Problems Bibliography Index CONTENTS

13 List of Figures MOS gates. 8 A six-transistor gate array cell. A three-input NAND gate obtained from the cell of Figure 1.2 Organization of a channeled gate array Two-input look-up table for FPGAs (Field Programmable Gate Arrays). Area-Delay tradeoff curves. Bit-serial adder circuit Bit-serial adder circuit after technology mapping. Bit-serial adder circuit with fault asserted. Finite State Machine for Majority Circuit. A simple directed graph Logic Graph of 1-bit full adder. The gate outputs are the vertices of the graph and the nets connecting gate outputs to gate inputs are the edges of the graph. Procedure for Intersecting 2 sets of sets. A weighted directed acyclic graph. A function in the set and also in the set The FSM corresponding to the driver circuit of Figure 1.1 (middle) Complex CMOS gate for Problem 1. Solution of Problem 1. Circuit for Problem 4. Procedure LEVELIZE Interface of the example circuit. Block diagram for LUNC. Block diagram for the transform block. Procedure CHANGECASE Block diagram for the CC block. Circuit schematic for the optimized transform block. Block diagram for the command interpreter. Procedure SWITCH Circuit schematic for an equality checker. Circuit schematic for the optimized command interpreter Circuit schematic for the technology-mapped decoder of the command interpreter

14 xvi LIST OF FIGURES Iterative scheme for the 8-bit comparator of Problem 3. Circuit for Problem 4. Venn Diagrams for illustrating set inclusion. Matrix and graph representations of a binary relation. Illustration of image and preimage. Examples of posets. Examples of lattices. The Boolean algebra defined over the power sets of and The Boolean algebra of the Boolean functions of two variables over B = {0,1}. The interval (represented by solid lines) A simple example relating intervals in a Boolean function algebra to satisfiability and observability don t care conditions. Hasse Diagram for Problem 14. Hasse Diagram for Problem 18. Lattice for Problem 18. Partially ordered set (poset) for Problem 26 Partially ordered set (poset) for Problem 27. Hasse Diagrams for Problem 31. Hasse Diagram for Problem 32. Lattice for Problem 33. Lattice of the Boolean functions of one variable over the Boolean algebra (Problem 58.) Tradeoff of area for speed for optimal designs. NMOS NAND-NAND PLA. Tabular Method Applied to Tabular Method Applied to an Incompletely Specified Function. Example of Recursion Tree for the Computation of Prime Implicants. A Function with a Cyclic Core. Algorithm for computing an MIS. Recursion Tree for a Covering Problem. Example of Search Tree. Branch-and-Bound Algorithm for the Unate Covering Problem. A search tree produced by Procedure BCP A Two-Output Function that Illustrates the Importance of Sharing Common Terms. Two Implementations for the Multiple-Output Function of Figure Tabular Method Applied to the Multiple-Output Function of Figure Recursion Tree for Problem 14. Recursion Tree for Problem A Pictorial Representation of Local Search. A Convex Optimization Problem. A Non-Convex Optimization Problem

15 LIST OF FIGURES xvii A Function with an Initial Cover (a) and after the Expansion of an Implicant (b). A Function and an Initial Cover Illustrating Output Expansion. The Cover of Figure 5.5 after the Expansion of an Output Part. A Function and an Initial Cover Illustrating Input Reduction. Simple Minimization Loop. A Circuit that is Simplified by MAKE_SPARSE. Example where the Directions in which Cubes are Expanded Matters. (a): Initial Cover. (b): After Reduction. (c): After Expansion in the Right Direction. The Interconnection of Sub-Circuits Gives Rise to Encoding Problems A MUX circuit and the corresponding BDD. A binary decision diagram. Another BDD. An optimal BDD BDDs for typical functions. Partial BDD after expansion with respect to Partial BDD after expansion with respect to and Final BDD. Non-reduced BDD. Two isomorphic subgraphs. Merging two isomorphic subgraphs. Elimination of a redundant node. BDD illustrating the advantages of a good ordering. BDD illustrating the drawbacks of a bad ordering. Shared BDD. Two-argument operators expressed in terms of ITE. Pseudo-code of the ITE algorithm Example of application of ITE Equivalent pairs of functions. Pseudo-code of the ITE_CONSTANT algorithm. An example of computation by ITE_CONSTANT. BDDs and ITE BDD for Problem 1. Solution for Problem 1. BDD for Problem 2. Solution for Problem 3. Solution for Problem 4. Pseudo-code of the APPLY algorithm. Pseudo-code of the OR operation. Solution for Problem Simple Sequential Circuit. State Transition Graph for the Circuit of Figure 7.1. Simplified FSM Design Flow. An FSM with Redundant States

16 xviii LIST OF FIGURES A Finite State Machine. Example of State Transition Graph Tabular Representations of FSMs STG of the symbolic LUNC FSM Example of Incompletely Specified FSM. Machine Equivalent to the One of Figure 7.9. The STG of a simple FSM. The STG of an FSM equivalent to the one of Figure Procedure for Finding Equivalent States of an FSM. The STG of an FSM in which all state pairs are equivalent. Flow Table for a Completely Specified Mealy Machine. Flow Table for a Completely Specified Moore Machine. Result of Reducing the FSM of Figure First Collapsed Flow Table. Second Collapsed Flow Table. A simple undirected graph. A digraph and its strong components A directed graph representing the connectivity of the circuit of Figure Procedure for basic Breadth First Search. A directed acyclic graph. Algorithm for Depth First Search Traversal of graph G = (V, E) from start vertex (first call) DAG with nodes labeled by Recursive procedure for depth first search, modified to identify SCCs. Algorithm for popping the SCC stack in DFS_SCC DAG with labeled edges. Procedure for finding shortest paths in a weighted graph. A weighted directed acyclic graph. Models of finite-state transition systems. A Finite State Transition Structure. The STGs of Tables 7.2 and 7.3. NFA example with The FST of the Mead-Conway Traffic Controller. Product of FSTs. Product of Nondeterministic FSTs. Product Machine for Equivalence Checking. Encoded Product Machine for Equivalence Checking. Product of two equivalent FSMs. Procedure for equivalence checking a product machine. Procedure for finding a shortest error trace. A simple BDD representing the characteristic function of the set S. Two non-equivalent FSMs Product of the Two FSMs of Figure The STGs of two equivalent FSMs. The STG of a modulo 3 counter

17 LIST OF FIGURES xix The STG of an FSM to be minimized. 315 Procedure for finding 1-equivalent states of an FSM. 316 Procedure for finding equivalent states of an FSM. 317 A Completely Specified Flow Table. 319 STG for the Flow Table of Figure A Completely Specified Flow Table. 321 Minimized Flow Table for Figure Flow Table for Problem A simple directed graph. 322 Another simple undirected graph. 322 Partial labeling of directed acyclic graph An incompletely specified Moore machine. Another incompletely specified Moore machine. Reduced machine obtained from the one of Figure 8.2. Machine obtained from the one of Figure 8.2 by state splitting. A flow table and its compatibility table. A flow table to illustrate the computation of prime classes. Compatibility table for the flow table of Figure 8.6. Prime compatibles for the flow table of Figure 8.6. Algorithm for computing prime compatibles. Reduced flow table obtained from the one of Figure 8.6. Reduced flow table obtained from the one of Figure 8.10 by heuristic choices of the next state entries. Branch and bound algorithm for binate covering. Example FSM for the discussion of state encoding. Attraction graph for the FSM of Figure Attraction graph produced by the fanout-oriented algorithm of MUS- TANG. An assignment derived by the fanout-oriented algorithm. An assignment derived by the fanin-oriented algorithm. Example of FSM with parallel decomposition. Components of the FSM of Figure Structure of the parallel decomposition. Structure of the serial decomposition. Example of FSM with serial decomposition. Independent component for the FSM of Figure First step in the construction of the dependent component. Second step in the construction of the dependent component. Example FSM for the computation of the S.P. partitions. S.P. partition lattice for the example of Figure Example FSM for encoding based on partition pairs. Schematic for the encoding of the machine of Figure An incompletely specified flow table. Compatibility table for the flow table of Figure Search tree for Problem

18 xx LIST OF FIGURES Result of minimizing the flow table of Figure 8.30 using maximal compatibles only. Flow table for Problem 7. Compatibility table for the flow table of Figure Covering table for Problem 7. Search tree for the covering problem of Figure Result of minimizing the flow table of Figure Flow table for Problem 9. Matrices S and Z for Problem 9. Attraction graph for the fanout-oriented algorithm. Encoding for the fanout-oriented algorithm Matrices and X for Problem Attraction graph for the fanin-oriented algorithm. Encoding for the fanin-oriented algorithm Physical implementation of a Finite Automaton. A DFA accepting all strings ending in 111. An NFA (Nondeterministic Finite Automaton). Procedure for deciding string acceptance An NFA (top) and DFA (bottom) accepting the language of Example A DFA abstracted from the modulo 3 counter of Problem 5 of Page The complement of the DFA of Figure A simple DFA. Binary Parse Tree for Rule for constructing an NFA which accepts the product of two regular languages. Incorrect rule for constructing an NFA which accepts the product of two regular languages. Rule for constructing an NFA which accepts the union of two regular languages. Rule for constructing an NFA which accepts the closure of two regular languages. NFA whose language is DFA whose language is Algorithm SUBSET_CONSTRUCTION for determinizing a given NFA. An FST and its deterministic image. An L-automaton for expressing a safety property in formal verification. An L-automaton recognizing a class of tapes (infinite strings with at most two inputs after an unless there is an intervening ). An L-automaton recognizing a tapes containing an infinite number of substrings. Illustration of and Automata Accepting and An example of a product automaton. ProcedureLANGUAGE_CONTAINMENT. Illustration of non-containment in cycle set

19 LIST OF FIGURES xxi Language containment test on the product automaton of Figure Flow table equivalent Moore machine for Problem A DFA for recognizing a certain string. 400 The DFA for Problem An L-automaton expressing a liveness property in formal verification. 402 A simple L-automaton Example of Local Optimization Another Example of Local Optimization Example of Circuit Restructuring Example of Boolean Network A CMOS Complex Gate Implementing 10.6 A Simple Gate Implementation of 10.7 NAND and NOR Decompositions Factoring Tree for 10.9 Weak Division Algorithm Procedure GEN_FACTOR Procedures QUICK_FACTOR, QUICK_DIVISOR, and ONE_LEVEL-0_KERNEL Procedure for good factorization Procedure BOOL_FACTOR Procedure QUICK-EXTRACTION Factoring Tree for Problem Factoring Tree for Problem Boolean Network for Problem Boolean Network for Problem 24 after Resubstitution Boolean Network for Problem 26 after Extraction Example for Boolean Network. (Input and Output Elements are Buffers and are Considered Part of the Network.) 459 An Example Network for the Computation of Observability Don t Cares.467 Network for Problem Boolean Network for Problem 4. Simplified Boolean Network for Problem 4. Boolean Network for Problem 6. Simplified Boolean Network for Problem 6. Circuit for Problem A short-circuit in a CMOS inverter Stuck-at faults Equivalent faults A simple combinational circuit Another simple combinational circuit A redundant combinational circuit A combinational circuit Use of compound values Frontier element (G4) and unjustified element (G1) Decision tree for the example of Figure

20 xxii LIST OF FIGURES 12.11Example of implications Another example of implications Schneider s example ATPG example Decision tree for the example of Figure Example of backtrace A redundant circuit Irredundant circuit derived from the one of Figure Circuit with multiple redundancies that cannot be simultaneously removed Circuit where the removal of one redundancy exposes another redundancy Circuit of Figure after the removal of the only redundancy Circuit of Figure after the removal of the remaining redundancy A 2-bit carry-skip adder Combinational circuit for Problems A decision tree for Problem Combinational circuit for Problems A decision tree for Problem Circuit for Problem Circuit for Problem Decision tree for Problem Circuit of Figure after removal of one redundancy Circuit of Figure after removal of one redundancy (top) and after further removal of the inverter pair (bottom) Circuit for Problem Circuit for Problem Circuit of Figure after removal of input of Gate 2 connected to stuck-at Circuit of Figure after removal of stuck-at Circuit of Figure after removal of input of Gate 5 connected to stuck-at Splitting a DAG into a Forest of Trees. A Subject Tree and its Matches. The Two Possible Patterns for a Four-Input NAND Gate. Two Possible Decompositions of the Same Circuit. Library Patterns for Four-Input NOR and Three-Input OR. Library of Pattern Trees. Best Solution Trace. Final Cover. Modified Library of Pattern Trees Best Modified Solution Trace Modified Final Cover Boolean Network for Problem Boolean Network for Problems 4 and

21 LIST OF FIGURES xxiii A.1 Table of ASCII Codes. 523 B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 Boolean Network for Problem 13. Boolean Network for Problem 14. Boolean Network for Problem 15. Boolean Network for Problem 16. Circuit for Problem 17. Circuit for Problem 18. Circuit for Problem 19. Circuit for Problem 20. Circuit for Problem

22 List of Tables Data trace for Procedure LONGEST_PATH 30 Comparative growth of log, polynomial, polylog, and exponential functions 37 Computing times on a 10MIP s computer, assuming unit coefficients for each complexity function 37 Data trace for Procedure LONGEST_PATH, applied to Figure Mapping of a simple function Mapping of a two Boolean formulae representing the same Boolean function Partial data trace for Procedure SHORTEST_PATH, applied to the graph of Figure 7.31 The mapping for a deterministic FST with initial state A The mapping for a nondeterministic FST with initial state A Data trace for procedure shortest_path Cube Intersection Table. Extended Cube Intersection Table

23 Preface

24 xxviii Genesis of the Book This book grew from courses taught at the University of Colorado (Boulder) and at the Universidad Politecnica de Madrid, Spain. As the title suggests, we were motivated by two disparate objectives. First, the VLSI CAD group at Boulder was given the responsibility for teaching a course which satisfied the ABET requirement for an upper division algorithms and discrete mathematics course in a EE or ECE curriculum. Hence we started looking for an appropriate book, and taught trial courses from various books including [241], [162], and [190]. While each of these books had their individual strengths, there were always significant areas that were neglected. Second, logic synthesis has matured as a field to the point of almost universal designer acceptance and is used in every major IC design/production house worldwide. Further, the younger field of formal verification, perhaps spurred on by the infamous Pentium bug, appears to be following a trajectory very much like that taken by logic synthesis over the last decade. Consequently, we wanted an orderly integration of modern developments in logic synthesis and formal verification, into the traditional subject matter of Switching and Finite Automata Theory. This clearly eliminated texts like [241], [190], and [146]. The book that came closest to our requirements was Kohavi s book [162]. Although this text was excellent and long lived, it is now outdated, since it does not deal many modern developments in discrete mathematics that were significant to bringing VLSI CAD to its current advanced state. Thus we decided to occupy the niche previously filled by the Kohavi book [162] and supplement the coverage with recent theoretical developments most significant to the emergence of automatic synthesis and verification tools during the nineties. As an example of the aforementioned integration, consider the problem of formally verifying that two distinct FSMs are or are not equivalent. The solution of this problem for problems of practical size was due to the efforts of Coudert, Madre, and McMillan [70, 194]. The solution rested on ingenious interweaving of BDDs (Binary Decision Diagrams) and the state equivalence theory covered in [162]. Boolean function manipulation using BDDs evolved from the work of Bryant in 1986 [47], and is not covered in previous comparable textbooks. Other examples of recent theoretical advances which had profound effects on the development of automatic synthesis tools are : Complexity theory and the development of optimal complexity algorithms like Tarjan s strong components algorithm; The unate recursive paradigm, and its various applications in the industry standard ESPRESSO program for logic minimization [37, 39, 250]; Branch and bound algorithms with lower bound pruning that has proved to be exceptionally powerful for such disparate logic synthesis applications as twolevel logic minimization and state minimization of Finite State Machines [228]; The Kerneling theory of Brayton and McMullen, [38], which led to efficient and widely adopted algebraic methods for restructuring a circuit so minimization techniques could be more powerfully applied;

25 Preface xxix The PODEM algorithm for automatic test pattern generation, [116], and the learning/implication heuristic used to make it widely applicable, [122]; The development and deployment of the theory of don t care conditions, [15], [204]; The deployment of BDD-based symbolic processing as discussed above along with modified ATPG techniques which made sequential synthesis and ATPG practical for large circuits, [63]; It was very difficult for a VLSI CAD group to teach switching theory without covering these subjects. Consequently, we wanted a book which met ABET requirements and had the above developments woven into the fabric of the theory. Equally important was the emergence over the last decade of widely applicable public domain logic synthesis and verification tools, such as ESPRESSO, MIS, SIS, VIS, SMV, BOLD, as well as commercial tools such as SYNOPSIS design compiler, The CADENCE, VIEWLOGIC, IBM (BOOLEDOZER) and MENTOR synthesis tool suites, and Lucent (FormalCheck) and IBM (RULEBASED) verification packages. Many of the solved and unsolved (an answer book is available) problems are based on using easily available tools. All tools used in the book can be obtained from anonymous FTP from the following web sites: IC.berkeley.edu, vlsi.colorado.edu. Also available from the latter site is a link to the NABLE (Network-enabled Action Based Learning Environment) suite of Java applets, which implements and animates many of algorithms discussed in this book. Among those treated are, minimization of boolean functions with K-maps, the binate covering problem, FSM equivalence checking, and Algebraic Factorization. More algorithms will be added on a yearly basis. Thus we wanted the book to reflect the concurrent evolution of switching and automata theory, and of VLSI Logic Synthesis and Verification, over the last decade, while also providing the necessary background in Boolean algebras and discrete mathematics. Our objective from the onset was a senior course, with enough depth to be of interest to first year graduate students as well. It is quite likely that any student who takes a job in the still burgeoning (at publication time INTEL was still planning two $1B fabrication sites) semiconductor industry will use one or more of these tools. Some students may eventually be involved in the design of the tools themselves. A persistent focus of the book is hands-on relation of actual design tools to the theoretical material. Whenever possible, the algorithms covered in the text are the subject of one or more problems based on the use of available synthesis programs. An appendix describes the details of the installation and use of the software at our institution. Problems. The book contains a large collection of solved problems. This is because we generate new homework problems every semester, as part of the development of

26 xxx Preface the course. We also have another equally large collection of solved problems which will go into the Instructor s Manual. We plan to maintain this manual in the Colorado web site quoted above. Thus it should continue to grow over the years as a resource for all users of the book. Many solved problems require the use of software tools. Much of the assigned work involves the use of Berkeley s sequential/combinational synthesis program SIS- 1.2 [250] and Berkeley-CU-UT formal verification program VIS Whenever possible, the algorithms covered in the text are the subject of one or more problems based on the use of synthesis or verification programs. Itineraries It would be difficult for undergraduates at most institutions to cover the entire book in one semester. We describe here some sample itineraries for efficaciously traversing the book. The Logic Design Option skips Chapters 6-9, and possibly 3 (our experience is that students find this chapter appealing). The Algorithms and Discrete Mathematics Option skips Chapter 2, 5, 8, 12, and 13. Finally, the graduate Introduction to Synthesis and Verification Option takes well prepared and motivated graduate students through the whole text. Convention When theorems have obvious proofs, or are well known theorems from the literature whose proofs are outside the scope of the present text, we omit the proof. In the latter case we give a citation in which the proof may be found. Notation

27 Preface xxxi Pseudo-Code Conventions We shall adopt the following further notation for pseudo-code description of algorithms and formal procedures. The beginning and end of the statement blocks of procedures, or if or else blocks, or of for, foreach, while, or other loop or branching structures are denoted by matching braces, as in the C/C++ programming languages. Comments are either denoted by /* */ as in C, or are set to the far right of pseudo-code statements without such delimiters when the context is clear. Semicolons will be used as statement separators only generally they are omitted at the end of a line of pseudo-code.

28 xxxii Preface Acknowledgments We acknowledge the impact of a career s worth of association with Bob Brayton. We acknowledge the impact of a previous book-experience with Bob Brayton, Alberto Sangiovanni-Vincentelli, and Curt McMullen, and of an aborted (so far) book attempt with Bob, Alberto, and Rick Rudell (Rick McGeer may yet save that book). In both of these former endeavors, Carl Harris is to be recognized for his gentle, enlightened, and persistent persuasion. The help of John Hayes was valuable in giving us early feedback on book direction. We acknowledge the many contributions of University of Colorado students and associates, whose work is featured in this book to name just a few: Karen Bartlett, Chris Morrison, Reily Jacoby, Hyunwoo Cho, Sehwoong Jeong, June Rho. In-Ho Moon helped by proofing several chapters of the last draft. We are also indebted in this regard to many other colleagues and friends among others, Richard Newton, Srinivas Devadas, Kurt Keutzer, Aart DeGeus, Randy Bryant, Louise Trevillyan, and Giovanni DeMicheli were particularly impactful. We acknowledge the impact of numerous summer seminars, first at IBM Yorktown, and then rotating between Boulder, Berkeley, and Stanford. The indefatigable help of our administrative assistants Helen Frey, Karen Schneider, and Ruth Major must also be acknowledged. Penultimately, we acknowledge the support (over the last decade) of the National Science Foundation, in particular that of our friend and mentor, Bob Grafton, who helped us see the dawning of a new era in the advent of Computer Aided Verification. Finally, we acknowledge the patience and appetite for learning shown by our undergraduate students in enduring some very rough drafts.

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado. LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS by Gary D. Hachtel University of Colorado Fabio Somenzi University of Colorado Springer Contents I Introduction 1 1 Introduction 5 1.1 VLSI: Opportunity and

More information

Unit 4: Formal Verification

Unit 4: Formal Verification Course contents Unit 4: Formal Verification Logic synthesis basics Binary-decision diagram (BDD) Verification Logic optimization Technology mapping Readings Chapter 11 Unit 4 1 Logic Synthesis & Verification

More information

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique Example As an Example, let s consider the formula: F(x,y,z) = x y z + x yz + x yz + xyz + xy z The complete sum of

More information

Binary Decision Diagrams and Symbolic Model Checking

Binary Decision Diagrams and Symbolic Model Checking Binary Decision Diagrams and Symbolic Model Checking Randy Bryant Ed Clarke Ken McMillan Allen Emerson CMU CMU Cadence U Texas http://www.cs.cmu.edu/~bryant Binary Decision Diagrams Restricted Form of

More information

ECE260B CSE241A Winter Logic Synthesis

ECE260B CSE241A Winter Logic Synthesis ECE260B CSE241A Winter 2007 Logic Synthesis Website: /courses/ece260b-w07 ECE 260B CSE 241A Static Timing Analysis 1 Slides courtesy of Dr. Cho Moon Introduction Why logic synthesis? Ubiquitous used almost

More information

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2 Synthesis The Y-diagram Revisited Structural Behavioral More abstract designs Physical CAD for VLSI 2 1 Structural Synthesis Behavioral Physical CAD for VLSI 3 Structural Processor Memory Bus Behavioral

More information

CSE241 VLSI Digital Circuits UC San Diego

CSE241 VLSI Digital Circuits UC San Diego CSE241 VLSI Digital Circuits UC San Diego Winter 2003 Lecture 05: Logic Synthesis Cho Moon Cadence Design Systems January 21, 2003 CSE241 L5 Synthesis.1 Kahng & Cichy, UCSD 2003 Outline Introduction Two-level

More information

COPYRIGHTED MATERIAL INDEX

COPYRIGHTED MATERIAL INDEX INDEX Absorption law, 31, 38 Acyclic graph, 35 tree, 36 Addition operators, in VHDL (VHSIC hardware description language), 192 Algebraic division, 105 AND gate, 48 49 Antisymmetric, 34 Applicable input

More information

Design of Framework for Logic Synthesis Engine

Design of Framework for Logic Synthesis Engine Design of Framework for Logic Synthesis Engine Tribikram Pradhan 1, Pramod Kumar 2, Anil N S 3, Amit Bakshi 4 1 School of Information technology and Engineering, VIT University, Vellore 632014, Tamilnadu,

More information

Multi-valued Logic Synthesis. Robert K Brayton Sunil P Khatri University of California Berkeley, CA brayton,

Multi-valued Logic Synthesis. Robert K Brayton Sunil P Khatri University of California Berkeley, CA brayton, Multi-valued Logic Synthesis Robert K Brayton Sunil P Khatri University of California Berkeley, CA 9470 brayton, linus @iceecsberkeleyedu Abstract We survey some of the methods used for manipulating, representing,

More information

A New Algorithm to Create Prime Irredundant Boolean Expressions

A New Algorithm to Create Prime Irredundant Boolean Expressions A New Algorithm to Create Prime Irredundant Boolean Expressions Michel R.C.M. Berkelaar Eindhoven University of technology, P.O. Box 513, NL 5600 MB Eindhoven, The Netherlands Email: michel@es.ele.tue.nl

More information

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007 VLSI System Design Part II : Logic Synthesis (1) Oct.2006 - Feb.2007 Lecturer : Tsuyoshi Isshiki Dept. Communications and Integrated Systems, Tokyo Institute of Technology isshiki@vlsi.ss.titech.ac.jp

More information

About the Author. Dependency Chart. Chapter 1: Logic and Sets 1. Chapter 2: Relations and Functions, Boolean Algebra, and Circuit Design

About the Author. Dependency Chart. Chapter 1: Logic and Sets 1. Chapter 2: Relations and Functions, Boolean Algebra, and Circuit Design Preface About the Author Dependency Chart xiii xix xxi Chapter 1: Logic and Sets 1 1.1: Logical Operators: Statements and Truth Values, Negations, Conjunctions, and Disjunctions, Truth Tables, Conditional

More information

Introduction. Sungho Kang. Yonsei University

Introduction. Sungho Kang. Yonsei University Introduction Sungho Kang Yonsei University Outline VLSI Design Styles Overview of Optimal Logic Synthesis Model Graph Algorithm and Complexity Asymptotic Complexity Brief Summary of MOS Device Behavior

More information

Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics

Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics 1 Instructor: Priyank Kalla Department of Electrical and Computer Engineering University of Utah, Salt Lake City, UT 84112 Email: kalla@ece.utah.edu

More information

Boolean Reasoning. The Logic of Boolean Equations. Frank Markham Brown Air Force Institute of Technology

Boolean Reasoning. The Logic of Boolean Equations. Frank Markham Brown Air Force Institute of Technology Boolean Reasoning The Logic of Boolean Equations by Frank Markham Brown Air Force Institute of Technology ff Kluwer Academic Publishers Boston/Dordrecht/London Contents Preface Two Logical Languages Boolean

More information

Cofactoring-Based Upper Bound Computation for Covering Problems

Cofactoring-Based Upper Bound Computation for Covering Problems TR-CSE-98-06, UNIVERSITY OF MASSACHUSETTS AMHERST Cofactoring-Based Upper Bound Computation for Covering Problems Congguang Yang Maciej Ciesielski May 998 TR-CSE-98-06 Department of Electrical and Computer

More information

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne Two-level Logic Synthesis and Optimization Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers

More information

Additional Slides to De Micheli Book

Additional Slides to De Micheli Book Additional Slides to De Micheli Book Sungho Kang Yonsei University Design Style - Decomposition 08 3$9 0 Behavioral Synthesis Resource allocation; Pipelining; Control flow parallelization; Communicating

More information

Heuristic Minimization of Boolean Relations Using Testing Techniques

Heuristic Minimization of Boolean Relations Using Testing Techniques Heuristic Minimization of Boolean Relations Using Testing Techniques Abhijit Ghosh Srinivas Devadas A. Richard Newton Department of Electrical Engineering and Coniputer Sciences University of California,

More information

ECE260B CSE241A Winter Logic Synthesis

ECE260B CSE241A Winter Logic Synthesis ECE260B CSE241A Winter 2005 Logic Synthesis Website: / courses/ ece260bw05 ECE 260B CSE 241A Static Timing Analysis 1 Slides courtesy of Dr. Cho Moon Introduction Why logic synthesis? Ubiquitous used almost

More information

Advanced Digital Logic Design EECS 303

Advanced Digital Logic Design EECS 303 Advanced Digital Logic Design EECS 303 http://ziyang.eecs.northwestern.edu/eecs303/ Teacher: Robert Dick Office: L477 Tech Email: dickrp@northwestern.edu Phone: 847 467 2298 Outline 1. 2. 2 Robert Dick

More information

DISCRETE MATHEMATICS

DISCRETE MATHEMATICS DISCRETE MATHEMATICS WITH APPLICATIONS THIRD EDITION SUSANNA S. EPP DePaul University THOIVISON * BROOKS/COLE Australia Canada Mexico Singapore Spain United Kingdom United States CONTENTS Chapter 1 The

More information

PROBLEM SOLVING WITH FORTRAN 90

PROBLEM SOLVING WITH FORTRAN 90 David R. Brooks PROBLEM SOLVING WITH FORTRAN 90 FOR SCIENTISTS AND ENGINEERS Springer Contents Preface v 1.1 Overview for Instructors v 1.1.1 The Case for Fortran 90 vi 1.1.2 Structure of the Text vii

More information

Binary Decision Diagrams (BDD)

Binary Decision Diagrams (BDD) Binary Decision Diagrams (BDD) Contents Motivation for Decision diagrams Binary Decision Diagrams ROBDD Effect of Variable Ordering on BDD size BDD operations Encoding state machines Reachability Analysis

More information

LOGIC AND DISCRETE MATHEMATICS

LOGIC AND DISCRETE MATHEMATICS LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University

More information

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract Don't Cares in Multi-Level Network Optimization Hamid Savoj University of California Berkeley, California Department of Electrical Engineering and Computer Sciences Abstract An important factor in the

More information

Introductory Combinatorics

Introductory Combinatorics Introductory Combinatorics Third Edition KENNETH P. BOGART Dartmouth College,. " A Harcourt Science and Technology Company San Diego San Francisco New York Boston London Toronto Sydney Tokyo xm CONTENTS

More information

Homework 3 Handout 19 February 18, 2016

Homework 3 Handout 19 February 18, 2016 CSEE E6861y Prof. Steven Nowick Homework 3 Handout 19 February 18, 2016 This homework is due at the beginning of class on Thursday, March 3. NOTE: A correct answer without adequate explanation or derivation

More information

Minimization of Multiple-Valued Functions in Post Algebra

Minimization of Multiple-Valued Functions in Post Algebra Minimization of Multiple-Valued Functions in Post Algebra Elena Dubrova Yunjian Jiang Robert Brayton Department of Electronics Dept. of Electrical Engineering and Computer Sciences Royal Institute of Technology

More information

Digital System Design with SystemVerilog

Digital System Design with SystemVerilog Digital System Design with SystemVerilog Mark Zwolinski AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo

More information

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay Lecture 40 VLSI Design Verification: An Introduction Hello. Welcome to the advance

More information

SYNTHESIS OF FINITE STATE MACHINES: LOGIC OPTIMIZATION

SYNTHESIS OF FINITE STATE MACHINES: LOGIC OPTIMIZATION SYNTHESIS OF FINITE STATE MACHINES: LOGIC OPTIMIZATION SYNTHESIS OF FINITE STATE MACHINES: LOGIC OPTIMIZATION Tiziano Villa University of California/Berkeley Timothy Kam Intel Corporation Robert K. Brayton

More information

SIS: A System for Sequential Circuit Synthesis

SIS: A System for Sequential Circuit Synthesis SIS: A System for Sequential Circuit Synthesis Electronics Research Laboratory Memorandum No. UCB/ERL M92/41 Ellen M. Sentovich Kanwar Jit Singh Luciano Lavagno Cho Moon Rajeev Murgai Alexander Saldanha

More information

MATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE

MATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE MATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE A Modern Approach to Discrete Mathematics SIXTH EDITION Judith L. Gersting University of Hawaii at Hilo W. H. Freeman and Company New York Preface Note to the

More information

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001 Research Collection Other Conference Item Formal background and algorithms Author(s): Biere, Armin Publication Date: 2001 Permanent Link: https://doi.org/10.3929/ethz-a-004239730 Rights / License: In Copyright

More information

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Introduction to Algorithms Preface xiii 1 Introduction 1 1.1 Algorithms 1 1.2 Analyzing algorithms 6 1.3 Designing algorithms 1 1 1.4 Summary 1 6

More information

Boolean Representations and Combinatorial Equivalence

Boolean Representations and Combinatorial Equivalence Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving

More information

Don t Cares and Multi-Valued Logic Network Minimization

Don t Cares and Multi-Valued Logic Network Minimization Don t Cares and Multi-Valued Logic Network Minimization Yunian Jiang Robert K. Brayton Department of Electrical Engineering and Computer Sciences University of California, Berkeley wiang,brayton @eecs.berkeley.edu

More information

A Boolean Paradigm in Multi-Valued Logic Synthesis

A Boolean Paradigm in Multi-Valued Logic Synthesis A Boolean Paradigm in Multi-Valued Logic Synthesis Abstract Alan Mishchenko Department of ECE Portland State University alanmi@ece.pd.edu Optimization algorithms used in binary multi-level logic synthesis,

More information

VERILOG QUICKSTART. Second Edition. A Practical Guide to Simulation and Synthesis in Verilog

VERILOG QUICKSTART. Second Edition. A Practical Guide to Simulation and Synthesis in Verilog VERILOG QUICKSTART A Practical Guide to Simulation and Synthesis in Verilog Second Edition VERILOG QUICKSTART A Practical Guide to Simulation and Synthesis in Verilog Second Edition James M. Lee SEVA Technologies

More information

Formal Verification using Probabilistic Techniques

Formal Verification using Probabilistic Techniques Formal Verification using Probabilistic Techniques René Krenz Elena Dubrova Department of Microelectronic and Information Technology Royal Institute of Technology Stockholm, Sweden rene,elena @ele.kth.se

More information

CONTENTS Equivalence Classes Partition Intersection of Equivalence Relations Example Example Isomorphis

CONTENTS Equivalence Classes Partition Intersection of Equivalence Relations Example Example Isomorphis Contents Chapter 1. Relations 8 1. Relations and Their Properties 8 1.1. Definition of a Relation 8 1.2. Directed Graphs 9 1.3. Representing Relations with Matrices 10 1.4. Example 1.4.1 10 1.5. Inverse

More information

L3: Representations of functions

L3: Representations of functions L3: Representations of functions Representations of Boolean functions Boolean expression Two level sum of product form, factorized form Truth tables Karnaugh maps Cubes (MIN,MAX) notation positional cube

More information

Computational Discrete Mathematics

Computational Discrete Mathematics Computational Discrete Mathematics Combinatorics and Graph Theory with Mathematica SRIRAM PEMMARAJU The University of Iowa STEVEN SKIENA SUNY at Stony Brook CAMBRIDGE UNIVERSITY PRESS Table of Contents

More information

Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis

Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis Amit Goel Department of ECE, Carnegie Mellon University, PA. 15213. USA. agoel@ece.cmu.edu Randal E. Bryant Computer

More information

Boolean Algebra and Logic Gates

Boolean Algebra and Logic Gates Boolean Algebra and Logic Gates Binary logic is used in all of today's digital computers and devices Cost of the circuits is an important factor Finding simpler and cheaper but equivalent circuits can

More information

THE DESIGNER S GUIDE TO VERILOG-AMS

THE DESIGNER S GUIDE TO VERILOG-AMS THE DESIGNER S GUIDE TO VERILOG-AMS THE DESIGNER S GUIDE BOOK SERIES Consulting Editor Kenneth S. Kundert Books in the series: The Designer s Guide to Verilog-AMS ISBN: 1-00-80-1 The Designer s Guide to

More information

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1 Table of Contents About the Authors... iii Introduction... xvii Chapter 1: System Software... 1 1.1 Concept of System Software... 2 Types of Software Programs... 2 Software Programs and the Computing Machine...

More information

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 01 Introduction Welcome to the course on Hardware

More information

SOFTWARE FOR THE MINIMIZATION OF THE COMBINATIONAL LOGIC FUNCTIONS

SOFTWARE FOR THE MINIMIZATION OF THE COMBINATIONAL LOGIC FUNCTIONS SOFTWARE FOR THE MINIMIZATION OF THE COMBINATIONAL LOGIC FUNCTIONS Rotar Dan Vasile Alecsandri University, Bacau, Romania Abstract An important component of the command and control circuit for the mechatronic

More information

Software for The Minimization of The Combinational Logic Functions

Software for The Minimization of The Combinational Logic Functions Software for The Minimization of The Combinational Logic Functions Rotar Dan Vasile Alecsandri University, Calea Marasesti 57, cod: 65, Bacau, Romania, drotar@ub.ro; drotarubro@yahoo.com ABSTRACT An important

More information

VLSI Test Technology and Reliability (ET4076)

VLSI Test Technology and Reliability (ET4076) VLSI Test Technology and Reliability (ET4076) Lecture 4(part 2) Testability Measurements (Chapter 6) Said Hamdioui Computer Engineering Lab Delft University of Technology 2009-2010 1 Previous lecture What

More information

ICS 252 Introduction to Computer Design

ICS 252 Introduction to Computer Design ICS 252 Introduction to Computer Design Logic Optimization Eli Bozorgzadeh Computer Science Department-UCI Hardware compilation flow HDL RTL Synthesis netlist Logic synthesis library netlist Physical design

More information

4.1.2 Merge Sort Sorting Lower Bound Counting Sort Sorting in Practice Solving Problems by Sorting...

4.1.2 Merge Sort Sorting Lower Bound Counting Sort Sorting in Practice Solving Problems by Sorting... Contents 1 Introduction... 1 1.1 What is Competitive Programming?... 1 1.1.1 Programming Contests.... 2 1.1.2 Tips for Practicing.... 3 1.2 About This Book... 3 1.3 CSES Problem Set... 5 1.4 Other Resources...

More information

Topological Structure and Analysis of Interconnection Networks

Topological Structure and Analysis of Interconnection Networks Topological Structure and Analysis of Interconnection Networks Network Theory and Applications Volume 7 Managing Editors: Ding-Zhu Du, University of Minnesota, U.S.A. and Cauligi Raghavendra, University

More information

Contents. 1 Introduction. 2 Searching and Traversal Techniques. Preface... (vii) Acknowledgements... (ix)

Contents. 1 Introduction. 2 Searching and Traversal Techniques. Preface... (vii) Acknowledgements... (ix) Contents Preface... (vii) Acknowledgements... (ix) 1 Introduction 1.1 Algorithm 1 1.2 Life Cycle of Design and Analysis of Algorithm 2 1.3 Pseudo-Code for Expressing Algorithms 5 1.4 Recursive Algorithms

More information

Functional Test Generation for Delay Faults in Combinational Circuits

Functional Test Generation for Delay Faults in Combinational Circuits Functional Test Generation for Delay Faults in Combinational Circuits Irith Pomeranz and Sudhakar M. Reddy + Electrical and Computer Engineering Department University of Iowa Iowa City, IA 52242 Abstract

More information

Model Checking I Binary Decision Diagrams

Model Checking I Binary Decision Diagrams /42 Model Checking I Binary Decision Diagrams Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 523 2/42 Binary Decision Diagrams Ordered binary decision diagrams

More information

ABC basics (compilation from different articles)

ABC basics (compilation from different articles) 1. AIG construction 2. AIG optimization 3. Technology mapping ABC basics (compilation from different articles) 1. BACKGROUND An And-Inverter Graph (AIG) is a directed acyclic graph (DAG), in which a node

More information

EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley

EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley Boolean Function Representations Syntactic: e.g.: CNF, DNF (SOP), Circuit Semantic: e.g.: Truth table, Binary

More information

COE 561 Digital System Design & Synthesis Introduction

COE 561 Digital System Design & Synthesis Introduction 1 COE 561 Digital System Design & Synthesis Introduction Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Outline Course Topics Microelectronics Design

More information

CHAPTER 1 BOOLEAN ALGEBRA CONTENTS

CHAPTER 1 BOOLEAN ALGEBRA CONTENTS pplied R&M Manual for Defence Systems Part D - Supporting Theory HPTER 1 OOLEN LGER ONTENTS Page 1 INTRODUTION 2 2 NOTTION 2 3 XIOMS ND THEOREMS 3 4 SET THEORY 5 5 PPLITION 6 Issue 1 Page 1 hapter 1 oolean

More information

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for? Computer Engineering and Networks Overview Discrete Event Systems - Verification of Finite Automata Lothar Thiele Introduction Binary Decision Diagrams Representation of Boolean Functions Comparing two

More information

Two-Level Logic Optimization ( Introduction to Computer-Aided Design) School of EECS Seoul National University

Two-Level Logic Optimization ( Introduction to Computer-Aided Design) School of EECS Seoul National University Two-Level Logic Optimization (4541.554 Introduction to Computer-Aided Design) School of EECS Seoul National University Minimization of Two-Level Functions Goals: Minimize cover cardinality Minimize number

More information

Chapter 8. 8 Minimization Techniques. 8.1 Introduction. 8.2 Single-Output Minimization Design Constraints

Chapter 8. 8 Minimization Techniques. 8.1 Introduction. 8.2 Single-Output Minimization Design Constraints 8 Minimization Techniques 8.1 Introduction The emphasis is on clean, irredundant, minimal designs has been dramatically affected by the evolution of LSI [VLSI] technology. There are instances where a minimal

More information

A Toolbox for Counter-Example Analysis and Optimization

A Toolbox for Counter-Example Analysis and Optimization A Toolbox for Counter-Example Analysis and Optimization Alan Mishchenko Niklas Een Robert Brayton Department of EECS, University of California, Berkeley {alanmi, een, brayton}@eecs.berkeley.edu Abstract

More information

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS Contents i SYLLABUS osmania university UNIT - I CHAPTER - 1 : BASIC VERILOG HDL Introduction to HDLs, Overview of Digital Design With Verilog HDL, Basic Concepts, Data Types, System Tasks and Compiler

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER Gate-Level Minimization BME28 Logic Circuits Yalçın İŞLER islerya@yahoo.com http://me.islerya.com Complexity of Digital Circuits Directly related to the complexity of the algebraic expression we use to

More information

Functional extension of structural logic optimization techniques

Functional extension of structural logic optimization techniques Functional extension of structural logic optimization techniques J. A. Espejo, L. Entrena, E. San Millán, E. Olías Universidad Carlos III de Madrid # e-mail: { ppespejo, entrena, quique, olias}@ing.uc3m.es

More information

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece5745 RTL to

More information

CS8803: Advanced Digital Design for Embedded Hardware

CS8803: Advanced Digital Design for Embedded Hardware CS883: Advanced Digital Design for Embedded Hardware Lecture 2: Boolean Algebra, Gate Network, and Combinational Blocks Instructor: Sung Kyu Lim (limsk@ece.gatech.edu) Website: http://users.ece.gatech.edu/limsk/course/cs883

More information

Assign auniquecodeto each state to produce a. Given jsj states, needed at least dlog jsje state bits. (minimum width encoding), at most jsj state bits

Assign auniquecodeto each state to produce a. Given jsj states, needed at least dlog jsje state bits. (minimum width encoding), at most jsj state bits State Assignment The problem: Assign auniquecodeto each state to produce a logic level description. Given jsj states, needed at least dlog jsje state bits (minimum width encoding), at most jsj state bits

More information

On the Relation between SAT and BDDs for Equivalence Checking

On the Relation between SAT and BDDs for Equivalence Checking On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda 1 Rolf Drechsler 2 Alex Orailoglu 1 1 Computer Science & Engineering Department University of California, San Diego La Jolla,

More information

The Verilog Hardware Description Language, Fifth Edition

The Verilog Hardware Description Language, Fifth Edition The Verilog Hardware Description Language, Fifth Edition The Verilog Hardware Description Language, Fifth Edition Donald E. Thomas ECE Department Carnegie Mellon University Pittsburgh, PA Philip R. Moorby

More information

Gate-Level Minimization. section instructor: Ufuk Çelikcan

Gate-Level Minimization. section instructor: Ufuk Çelikcan Gate-Level Minimization section instructor: Ufuk Çelikcan Compleity of Digital Circuits Directly related to the compleity of the algebraic epression we use to build the circuit. Truth table may lead to

More information

M.Sc. (Computer Science) I Year Assignments for May Paper I DATA STRUCTURES Assignment I

M.Sc. (Computer Science) I Year Assignments for May Paper I DATA STRUCTURES Assignment I Paper I DATA STRUCTURES (DMCS 01) 1. Explain in detail about the overview of Data structures. 2. Explain circular linked list and double-linked list. 3. Explain CPU scheduling in Multiprogramming Environment.

More information

Introduction to Algorithms Third Edition

Introduction to Algorithms Third Edition Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Introduction to Algorithms Third Edition The MIT Press Cambridge, Massachusetts London, England Preface xiü I Foundations Introduction

More information

On Computing Minimum Size Prime Implicants

On Computing Minimum Size Prime Implicants On Computing Minimum Size Prime Implicants João P. Marques Silva Cadence European Laboratories / IST-INESC Lisbon, Portugal jpms@inesc.pt Abstract In this paper we describe a new model and algorithm for

More information

Fundamentals of Discrete Mathematical Structures

Fundamentals of Discrete Mathematical Structures Fundamentals of Discrete Mathematical Structures THIRD EDITION K.R. Chowdhary Campus Director JIET School of Engineering and Technology for Girls Jodhpur Delhi-110092 2015 FUNDAMENTALS OF DISCRETE MATHEMATICAL

More information

To illustrate what is intended the following are three write ups by students. Diagonalization

To illustrate what is intended the following are three write ups by students. Diagonalization General guidelines: You may work with other people, as long as you write up your solution in your own words and understand everything you turn in. Make sure to justify your answers they should be clear

More information

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Program verification. Generalities about software Verification Model Checking. September 20, 2016 Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,

More information

END-TERM EXAMINATION

END-TERM EXAMINATION (Please Write your Exam Roll No. immediately) Exam. Roll No... END-TERM EXAMINATION Paper Code : MCA-205 DECEMBER 2006 Subject: Design and analysis of algorithm Time: 3 Hours Maximum Marks: 60 Note: Attempt

More information

Advanced Digital Logic Design EECS 303

Advanced Digital Logic Design EECS 303 Advanced Digital Logic Design EECS 303 http://ziyang.eecs.northwestern.edu/eecs303/ Teacher: Robert Dick Office: L477 Tech Email: dickrp@northwestern.edu Phone: 847 467 2298 Outline 1. Finite state machines

More information

Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams

Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams Randal E. Bryant Fujitsu Laboratories, Ltd. 5 Kamikodanaka, Nakahara-ku Kawasaki 2, Japan June, 992 Ordered Binary Decision Diagrams

More information

SECTION A. (i) The Boolean function in sum of products form where K-map is given below (figure) is:

SECTION A. (i) The Boolean function in sum of products form where K-map is given below (figure) is: SECTION A 1. Fill in the blanks: (i) The Boolean function in sum of products form where K-map is given below (figure) is: C B 0 1 0 1 0 1 A A (ii) Consider a 3-bit error detection and 1-bit error correction

More information

(DMTCS 01) Answer Question No.1 is compulsory (15) Answer One question from each unit (4 15=60) 1) a) State whether the following is True/False:

(DMTCS 01) Answer Question No.1 is compulsory (15) Answer One question from each unit (4 15=60) 1) a) State whether the following is True/False: (DMTCS 01) M.Tech. DEGREE EXAMINATION, DECEMBER - 2015 (Examination at the end of First Year) COMPUTER SCIENCE Paper - I : Data structures Time : 03 Hours Maximum Marks : 75 Answer Question No.1 is compulsory

More information

ECE 3060 VLSI and Advanced Digital Design

ECE 3060 VLSI and Advanced Digital Design ECE 3060 VLSI and Advanced Digital Design Lecture 16 Technology Mapping/Library Binding Outline Modeling and problem analysis Rule-based systems for library binding Algorithms for library binding structural

More information

Synthesis and Optimization of Digital Circuits

Synthesis and Optimization of Digital Circuits Synthesis and Optimization of Digital Circuits Dr. Travis Doom Wright State University Computer Science and Engineering Outline Introduction Microelectronics Micro economics What is design? Techniques

More information

COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05

COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05 COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05 Unit 1 : LINEAR DATA STRUCTURES Introduction - Abstract Data Types (ADT), Arrays and its representation Structures, Stack, Queue, Circular

More information

ECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis

ECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis ECE 5775 (Fall 17) High-Level Digital Design Automation Binary Decision Diagrams Static Timing Analysis Announcements Start early on Lab 1 (CORDIC design) Fixed-point design should not have usage of DSP48s

More information

Logic Model Checking

Logic Model Checking Logic Model Checking Lecture Notes 17:18 Caltech 101b.2 January-March 2005 Course Text: The Spin Model Checker: Primer and Reference Manual Addison-Wesley 2003, ISBN 0-321-22862-6, 608 pgs. checking omega

More information

SEPP: a New Compact Three-Level Logic Form

SEPP: a New Compact Three-Level Logic Form SEPP: a New Compact Three-Level Logic Form Valentina Ciriani Department of Information Technologies Università degli Studi di Milano, Italy valentina.ciriani@unimi.it Anna Bernasconi Department of Computer

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

Symbolic Manipulation of Boolean Functions Using a Graphical Representation. Abstract

Symbolic Manipulation of Boolean Functions Using a Graphical Representation. Abstract Symbolic Manipulation of Boolean Functions Using a Graphical Representation Randal E. Bryant 1 Dept. of Computer Science Carnegie-Mellon University Abstract In this paper we describe a data structure for

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Sequential Circuit Test Generation Using Decision Diagram Models

Sequential Circuit Test Generation Using Decision Diagram Models Sequential Circuit Test Generation Using Decision Diagram Models Jaan Raik, Raimund Ubar Department of Computer Engineering Tallinn Technical University, Estonia Abstract A novel approach to testing sequential

More information

On the Verification of Sequential Equivalence

On the Verification of Sequential Equivalence 686 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL 22, NO 6, JUNE 2003 On the Verification of Sequential Equivalence Jie-Hong R Jiang and Robert K Brayton, Fellow, IEEE

More information

Introduction to Sets and Logic (MATH 1190)

Introduction to Sets and Logic (MATH 1190) Introduction to Sets and Logic () Instructor: Email: shenlili@yorku.ca Department of Mathematics and Statistics York University Dec 4, 2014 Outline 1 2 3 4 Definition A relation R from a set A to a set

More information