ENGG3190 Logic Synthesis “Multi Level Logic” (Part II) Winter 2014 S. Areibi School of Engineering University of Guelph.

Slides:



Advertisements
Similar presentations
Logic Gates.
Advertisements

Minimization of Circuits
Node Optimization. Simplification Represent each node in two level form Use espresso to minimize each node Several simplification procedures which vary.
1 EECS 219B Spring 2001 Node minimization Andreas Kuehlmann.
The BDS Circuit Synthesis System What it Does and Doesn’t Do.
Prof. Sin-Min Lee Department of Computer Science
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
ECE Synthesis & Verification 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits Introduction to Logic Synthesis.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
A Robust Algorithm for Approximate Compatible Observability Don’t Care (CODC) Computation Nikhil S. Saluja University of Colorado Boulder, CO Sunil P.
Logic Gate Level Part 2. Constructing Boolean expression from truth table First method: write nonparenthesized OR of ANDs Each AND is a 1 in the result.
Multilevel Logic Minimization -- Introduction. ENEE 6442 Outline > Multi-level minimization: technology independent local optimization. > What to optimize:
Boolean Functions and their Representations
ECE Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based.
Logic Synthesis 3 1 Logic Synthesis Part III Maciej Ciesielski Univ. of Massachusetts Amherst, MA.
1 COMP541 Combinational Logic - II Montek Singh Aug 27, 2014.
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
Propositional Calculus Math Foundations of Computer Science.
Sequential circuit design
Computer Organization and Assembly Language: Chapter 7 The Karnaugh Maps September 30, 2013 By Engineer. Bilal Ahmad.
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
Binary Logic and Gates COE 202 Digital Logic Design Dr. Aiman El-Maleh
CS231 Fundamentals1 Fundamentals What kind of data do computers work with? – Deep down inside, it’s all 1s and 0s What can you do with 1s and 0s? – Boolean.
EEE324 Digital Electronics Ian McCrumRoom 5B18, Lecture 4: Boolean Algebra.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
CS1Q Computer Systems Lecture 8
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect19: Multi Level Logic Minimization.
Combinational Logic 1.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. Circuit Optimization Logic and Computer Design Fundamentals.
Circuit Minimization. It is often uneconomical to realize a logic directly from the first logic expression that pops into your head. Canonical sum and.
Gate-Level Minimization
Ch. 8: Hamilton Equations of Motion Sect. 8.1: Legendre Transformations Lagrange Eqtns of motion: n degrees of freedom (d/dt)[(∂L/∂q i )] - (∂L/∂q i )
June 10, 2002© Howard Huang1 Number systems To get started, we’ll discuss one of the fundamental concepts underlying digital computer design:
Computer Systems 1 Fundamentals of Computing Simplifying Boolean Expressions.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
1Sequential circuit design Acknowledgement: Most of the following slides are adapted from Prof. Kale's slides at UIUC, USA by Erol Sahin and Ruken Cakici.
Chapter 3 Special Section Focus on Karnaugh Maps.
1 COMP541 Combinational Logic - 3 Montek Singh Jan 21, 2015.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Revision Mid 1 Prof. Sin-Min Lee Department of Computer Science.
CO5023 Building Circuits from Truth Tables. Build the following… Let’s say we want a circuit which acts as described by the following truth table: We.
1 Using Don’t Cares - full_simplify command Major command in SIS - uses SDC, ODC, XDC Key Questions: How do we represent XDC to a network? How do we relate.
Logic Gates and Boolean Algebra Introduction to Logic II.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
LOGIC CIRCUITLOGIC CIRCUIT. Goal To understand how digital a computer can work, at the lowest level. To understand what is possible and the limitations.
Sequential Circuit Design 05 Acknowledgement: Most of the following slides are adapted from Prof. Kale's slides at UIUC, USA.
CHAPTER 2 Boolean algebra and Logic gates
EET 1131 Unit 5 Boolean Algebra and Reduction Techniques
COMP541 Combinational Logic - 3
Lecture 6: Universal Gates
DeMorgan’s Theorem DeMorgan’s 2nd Theorem
COMP541 Combinational Logic - 3
Dr. Clincy Professor of CS
A Boolean Paradigm in Multi-Valued Logic Synthesis
Dr. Clincy Professor of CS
Lecture 6: Universal Gates
Multi-Level Minimization
Lecture 13 Logistics Last lecture Today HW4 up, due on Wednesday PLDs
Dr. Clincy Professor of CS
Lecture 6: Universal Gates
CS Chapter 3 (3A and ) – Part 3 of 5
Dr. Clincy Professor of CS
From now on: Combinatorial Circuits:
Chapter 3 Special Section
CMSC250 Fall 2018 Circuits 1 1.
CS 140 Lecture 6: Other Types of Gates
COMP541 Combinational Logic - 3
Laws & Rules of Boolean Algebra
Circuit Simplification and
Presentation transcript:

ENGG3190 Logic Synthesis “Multi Level Logic” (Part II) Winter 2014 S. Areibi School of Engineering University of Guelph

Outline Implicit Don’t CaresImplicit Don’t Cares How they arise due to structureHow they arise due to structure Types and flavors of Don’t CaresTypes and flavors of Don’t Cares –Satisfiability Don’t Cares –Controllability Don’t Cares –Observability Don’t Cares SummarySummary 2

3 Logic Optimization methods Logic Optimization Multi-level logic (standard cells) Multi-level logic (standard cells) Two-level logic (PLA) Exact (QM) Heuristic (espresso) Heuristic (espresso) Structural (SIS) Structural (SIS) Functional (AC, Kurtis) Functional (AC, Kurtis) Functional (BDD-based) Functional (BDD-based) algebraic Boolean Boolean

 Don’t cares in basic logic design.  1,0 x (allow more flexibility)  MLLS don’t care arise naturally and implicitly.  Don’t cares  Rich source of optimization MLS: Implicit Don’t Cares

Algebraic model  Using the Algebraic model we lose some means of expressing the network.  In MLS don’t cares are called “implicit” because they happen naturally.  What computational procedure  What computational procedure can we use to hunt for the don’t cares?

 What do we know so far about don’t cares?  We are free to treat the x or ‘d’ as a ‘0’ or a ‘1’  What is different in Multi-Level Optimization?

 If X, b, y are primary inputs then we cannot say anything yet! by other parts  However, If X, b, y are produced by other parts of the network then we might!

 X is not a primary input. It is computed inside a previous node.  Now the answer is YES we can say something about impossible patterns. Why?

 There are some impossible patterns:  What are the patterns? When can they occur?

What are the possible patterns that can occur? Recall X=a.b?

These are obvious. What about remaining patterns?

 We are not actually interested in patterns of a, b, X but interested in the patterns X, b, Y.  How can we take the a, b, X patterns and determine if X, b, Y can occur?  How can we do this computationally?

By looking at the Table on the LHS it is clear that some X, b, patterns can happen while others DO NOT!

The impossible patterns will change the contents of the K-Map!!

So now we can further optimize the f=Xb +bY + XY in the K-Map by including the don’t cares.

F = X + bY

Again we ask if there impossible values for Y given b and c.

 These don’t cares are called:  Satisfiability Don’t Cares.  Controllability Don’t Cares

 Any other structures that would give rise to Don’t Care Conditions?  What happens Previous slides  What happens if the nodes preceding a Boolean network are not Primary inputs (i.e., another Node?)  Previous slides i. Satisfiability Don’t Cares. ii. Controllability Don’t Cares  What happens  What happens if the nodes in front of a Boolean network is not a Primary output (i.e., another Node?)  Other types of Don’t Cares?? MLS: Implicit Don’t Cares …

 Previously we showed the affect of inputs on F and consequences of getting Don’t Cares (nodes preceding F)  How about the new Node Z = f.X.d (behind node f)  When does the value of node f affect the primary outputs?  When does Z not care about f?

 Note that the table is not in order of Boolean order!  For the set X=0, d=0, does the value of f have any affect?

Where is this leading to??

Can we use this information to further simplify f?? Z is not affected by f(X,b,Y) when X=0, b=-, Y=-

f = 1  So what does the new network look like?

Implicit Don’t Cares are very useful to optimize a multi-level logic network!!

 Different Types and flavors of Don’t Cares:  Observability  Controllability  Satisfiability  What do they tell us?  Are they easy to extract?  Can we compute them automatically? Satisfiability MLS: Satisfiability Don’t Cares …

 How will we represent don’t care (DC) patterns at a node?  As a Boolean function that makes a 1 when the pattern is impossible  This is often called a Don’t Care Cover  So, each SDC, CDC, ODC is really just another Boolean function  Why do it like this? math  Because the math works (!) computational Boolean algebrasolve  But more importantly: we can use all the other computational Boolean algebra techniques we learnt (eg, BDDs), to solve for, and manipulate the DC patterns.  This turns out to be hugely important to making this practical. Representing DC Patterns …

 SDC is a representation of impossible patterns.  SDC x (X,a,b) represents the wire (output of upper function) computational recipe What is a computational recipe to represent SDC x, SDC y, …?

RECALL gate consistency functions We will use the complement of gate consistency

Anything that makes this function a 1 is an impossible pattern for node X !!

 SDCs are associated with every internal wire in the Boolean Logic Network  SDCs explain impossible patterns of input to, and output of, each node.  SDCs are easy to compute!!  But SDCs alone are not the Don’t Cares used to simplify nodes  We use SDCs to build CDCs, which give impossible patterns at input nodes SDCs: Summary …

 Controllability Don’t Cares are: cannot happen at inputs  Patterns that cannot happen at inputs of a network.  Computing Controllability  Computing Controllability Don’t Cares (CDC).  Detailed Example. Controllability MLS: Controllability Don’t Cares …

Can Compute to Simplify Boolean Networks

Why Does This Work?

 Step #1: Calculate the SDCs of f which is needed by CDC of f.

 What about SDC on primary inputs?

computation is becoming simpler So our computation is becoming simpler since we can ignore the primary inputs.

 When you perform the computation you only include variables from internally computed nodes.  Only arrows coming from bubbles  So if we do that then …

CONSENSUS ALSO CALLED CONSENSUS of F wrt Xi RECALL

 CDC = The Universal quantification with respect to `b’ of the following quantity.  Universal Quantification = Co-Factored to b = 1 AND Co-Factored to b = 0.  If you do the Boolean Algebra, what do we get?

 If X=0, then both ‘a’ and ‘b’ have to be 0,  But if ‘a’ and ‘b’ are both 0 then Y has to be a ‘0’  That is why XY=01 is impossible.  So we can use XY = 01 as a don’t care, and further simplify F using this pattern. If X=0 then Y cannot be 1

 Accounting for don’t care conditions from the Primary Inputs will further simplify the Function f.  How …

 CDCs give impossible patterns at input to node F – use as DCs  Impossible because of the network structure of the nodes feeding node F.  CDCs can be computed mechanically from SDCs on wires input to F SDCs  Internal local CDCs: computed just from SDCs on wires into F.  External global CDSs: DC patterns at network input, can be included too.  But CDCs still not all the Don’t Cares available to simplify nodes  CDCs derived from the structure of nodes “in front of” node F.  We need to look at DCs that derive from nodes “in back of” node F.  These are nodes between the output of F and primary outputs of overall network. CDCs: Summary …

complete  We will complete our discussion on don’t cares.  Observability don’t cares  Observability don’t cares are: mask the output  patterns that mask the output of a node.  Similar computational techniques will be used. Observability MLS: Observability Don’t Cares …

ODC F = Patterns of (a,b) that ZF’s make Z insensitive to F’s Value

 Give examples of circuits when an input can be a don’t care??

f = x’, df/dx = f x xor f x’ f x =0, f x’ =1 df/dx = 0 xor 1 = 1 f = x.y, f x = y and f x’ =0, df/dx = y xor 0 = y What makes this function == 1? We must make y=1, if you change x  f will change f = x+y, f x =1, f x’ =y df/dx = 1 xor y = y’, what make this function == 1? We must make y=0, Any change on x will change f f = x xor y, f x = y’, f x’ =y, df/dx = y xor y’ = 1, RECALL

Opposite Insensitive We want the Opposite:  want F Insensitive to X RECALL

 Once you compute the Boolean Difference and complement it, this will give you the pattern that when applied to Z will not depend on F.  What are the steps or recipe?

F is an XOR Gate After getting ODC F (a,b) We can simply replace XOR with OR gate!!

 If F affects even one of the outputs then we cannot use ODC on F to simplify the expressions.

90