Multilevel Logic Minimization -- Introduction. ENEE 6442 Outline > Multi-level minimization: technology independent local optimization. > What to optimize:

Slides:



Advertisements
Similar presentations
Logic Gates.
Advertisements

Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Chapter 2 – Combinational.
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.
ENGG3190 Logic Synthesis “Multi Level Logic” (Part II) Winter 2014 S. Areibi School of Engineering University of Guelph.
Logical Design.
Functions and Functional Blocks
ECE 3110: Introduction to Digital Systems
Global Flow Optimization (GFO) in Automatic Logic Design “ TCAD91 ” by C. Leonard Berman & Louise H. Trevillyan CAD Group Meeting Prepared by Ray Cheung.
Basics: Digital Logic. F(x,y) = x.y F(x,y) = x.y + x'.y'
Overview Part 3 – Additional Gates and Circuits 2-8 Other Gate Types
1 SPFDs - A new method for specifying flexibility Sets of Pairs of Functions to be Distinguished From the paper: “A new Method to Express Functional Permissibilities.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
ECE 331 – Digital System Design
A Robust Algorithm for Approximate Compatible Observability Don’t Care (CODC) Computation Nikhil S. Saluja University of Colorado Boulder, CO Sunil P.
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Introduction.
Gate-Level Minimization. Digital Circuits The Map Method The complexity of the digital logic gates the complexity of the algebraic expression.
Modern VLSI Design 2e: Chapter4 Copyright  1998 Prentice Hall PTR.
Technology Mapping.
4/20/2006ELEC7250: Alexander 1 LOGIC SIMULATION AND FAULT DIAGNOSIS BY JINS DAVIS ALEXANDER ELEC 7250 PRESENTATION.
Boolean Functions and their Representations
Give qualifications of instructors: DAP
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
Computer Engineering (Logic Circuits) (Karnaugh Map)
FPGA Technology Mapping. 2 Technology mapping:  Implements the optimized nodes of the Boolean network to the target device library.  For FPGA, library.
Lecture 3. Boolean Algebra, Logic Gates
Chapter 2: Boolean Algebra and Logic Functions
Combinational Circuits
Based on slides by: Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. ECE/CS 352: Digital System Fundamentals Lecture 10 – Other Gate Types.
Boolean Methods for Multi-level Logic Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect19: Multi Level Logic Minimization.
Chapter 10 (Part 2): Boolean Algebra  Logic Gates (10.3) (cont.)  Minimization of Circuits (10.4)
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 7 Transformations Factoring - finding a factored form from SOP or POS expression Decomposition.
Chapter 3 Gate-Level Minimization
4. Combinational Logic Networks Layout Design Methods 4. 2
Gate-Level Minimization
Computer Engineering (Logic Circuits) (Karnaugh Map)
CHAPTER 3: PRINCIPLES OF COMBINATIONAL LOGIC
Ahmad Almulhem, KFUPM 2010 COE 202: Digital Logic Design Combinational Logic Part 3 Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:
Chap 2. Combinational Logic Circuits
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
CSE 140: Components and Design Techniques for Digital Systems Lecture 3: Incompletely Specified Functions and K Maps CK Cheng Dept. of Computer Science.
ECE/CS 352 Digital System Fundamentals1 ECE/CS 352 Digital Systems Fundamentals Spring 2001 Chapter 2 – Part 5 Tom Kaminski & Charles R. Kime.
Digital Logic (Karnaugh Map). Karnaugh Maps Karnaugh maps (K-maps) are graphical representations of boolean functions. One map cell corresponds to a row.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect10: Two-level Logic Minimization.
ECE 301 – Digital Electronics Minimizing Boolean Expressions using K-maps, The Minimal Cover, and Incompletely Specified Boolean Functions (Lecture #6)
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.
1 CS 352 Introduction to Logic Design Lecture 4 Ahmed Ezzat Multi-level Gate Circuits and Combinational Circuit Design Ch-7 + Ch-8.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
Mu.com.lec 9. Overview Gates, latches, memories and other logic components are used to design computer systems and their subsystems Good understanding.
1 Digital Systems Design Lecture 7 Transformations Factoring - finding a factored form from SOP or POS expression Decomposition - expression of a function.
CHAPTER 3 Simplification of Boolean Functions
Lecture 3: Incompletely Specified Functions and K Maps
Lecture 4 Nand, Nor Gates, CS147 Circuit Minimization and
Chapter 2: Boolean Algebra and Logic Functions
Computer Organisation
Overview Part 1 – Gate Circuits and Boolean Equations
Basics Combinational Circuits Sequential Circuits
Basics Combinational Circuits Sequential Circuits Ahmad Jawdat
CS105 Introduction to Computer Concepts GATES and CIRCUITS
Boolean Algebra.
Lecture 3: Incompletely Specified Functions and K Maps
ECE 331 – Digital System Design
Multi-Level Minimization
Topics Logic synthesis. Placement and routing..
COE 202: Digital Logic Design Combinational Logic Part 3
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
Circuit Simplification and
ECE 331 – Digital System Design
Presentation transcript:

Multilevel Logic Minimization -- Introduction

ENEE 6442 Outline > Multi-level minimization: technology independent local optimization. > What to optimize: multi-level logic modeled as Boolean networks > Optimization targets: # of literals > What’s new: Don’t cares =Don’t cares in multi-level logic Internal vs. externalInternal vs. external Satisfiablity vs. observablitySatisfiablity vs. observablity =Using don’t cares for multi-level minimization

ENEE 6443 Boolean Network: Example > A Boolean network is an acyclic graph. =Each node of the graph is a gate (may not be basic). =Each edge implies a connection between two gates. > Example: > Description of the network: =y 1 = x’ 2 + x’ 3 (NAND) =y 2 = x’ 4 + x’ 5 (NAND) =y 3 = x’ 4 y’ 1 (NOR) =y 4 = x 1 + y’ 3 =y 5 = x 6 y 2 + x’ 6 y’ 3 x2x2x2x2 x1x1x1x1 x3x3x3x3 x4x4x4x4 x5x5x5x5 x6x6x6x6 y2y2y2y2 y1y1y1y1 y3y3y3y3 y4y4y4y4 y5y5y5y5

ENEE 6444 Boolean Network: Definition A Boolean network is an interconnection of Boolean functions defined by a five-tuple: =f = (f 1,…,f n )n completely specified logic functions (gates); =y = (y 1,…,y n )n logic variables that are in one-to-one correspondence with f (signals of the network); =I = (I 1,…I p )p primary inputs; =O = (O 1,…,O q )q primary outputs; =d X = (d 1 X,…,d q X )completely specified logic functions for the don’t care minterms on the outputs. It is convenient to consider both I and O as functions. We denote x = (x 1,…,x p ) = (y 1,…,y p ) and z = (z 1,…,z q ) = (y n-q+1,…,y n-1,y n ) as the I-component (primary inputs) and O-component (primary outputs) of vector y.

ENEE 6445 Example: Full Adder > f: f 1 buffer,…, f 4 XOR, f 5 AND,…, f 8 OR,…, f 10 buffer > y: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 > I: 1,2,3 > O: 9, 10 > d X : a b S C c

ENEE 6446 Boolean Network: As a Digraph G=(V,E): DAG =V: each function is a node (node i  f i  y i ). =E: there is a directed edge from node i to node j if y i  supp(f j ), denoted by (i,j)  E. If (i,j)  E, node i is a predecessor (input, fanin) of node j, and node j is a successor (output, fanout) of node i; If there is a path from node i to node j, node i is a transitive predecessor (transitive fanin) of node j, and node j is a transitive successor (transitive fanout) of node i. P i = {j  V | (j,i)  E}S i = {j  V | (i,j)  E} P i * = {j  V | node j is a transitive fanin of node i} S i * = {j  V | node j is a transitive fanout of node i}

ENEE 6447 Example: Full Adder > P 4 ={1,2},P 8 ={5,7},P 9 ={6},P 2 =  > S 4 ={6,7},S 8 ={10},S 9 = ,S 2 = {4,5} > P 4 * ={1,2},P 8 * ={1-5,7},P 9 * ={1-4,6},P 2 * =  > S 4 * ={6-10},S 8 * ={10},S 9 * = ,S 2 * = {4-10} a b S C c

ENEE 6448 Boolean Network: Net and Connection > Each signal in the Boolean network represents the voltage on a segment of interconnect/wire in the circuit that implements the Boolean network. This wire segment is referred as a net. =The logic value on a net is determined by the source terminal, a logical signal corresponding to a specific node y i in the Boolean network. =Inputs to the nodes in the fanout S i are sink terminals. =Source and sink terminals are called pins of the net. > Each edge (i,j)  E is also called a connection, denoted by c ij with a logic variable y ij. =P ij = i, S ij = j, P ij * = P i *  {i}, S ij * = S j *  {j}

ENEE 6449 Example: Full Adder > XOR gate 6 produces logical signal y 6 ; its output is the source terminal of corresponding net; this net has a single sink terminal on the input of buffer 9. > For the connection C 6,9 from 6 to 9, we have: P 6,9 =6, S 6,9 =9, P 6,9 * =P 6 *  {6}={1-4,6}, S 6,9 * = S 9 *  {9}=9 a b S C c

ENEE Boolean Network: Global Functions > Functions f i (y) are local functions in that they are specified by the neighbors of node i in the Boolean network. > The global functions f i *(x)=  (I,f i (y)) are defined on a subset of primary inputs, where the composition operator  is defined recursively as: f i (  (A,f Pi(1) ),  (A,f Pi(2) ),…,  (A,f Pi(|Pi|) ))otherwise f i if P i  A y i if i  A  (A,f i (y)) =

ENEE Example: Full Adder > f 3 * =  (I,f 3 ) = y 3 > f 5 * =  (I,f 5 ) = f 5 = y 1 y 2 > f 9 * =  (I,f 9 ) =  (I,f 6 ) = XOR(  (I,f 4 ),  (I,f 3 )) =XOR(XOR(  (I,f 1 ),  (I,f 2 )),y 3 ) =XOR(XOR(y 1,y 2 ),y 3 ) a b S C c

Multilevel Logic Minimization -- Don’t Care Conditions

ENEE Don’t Cares: Satisfiability Don’t Care > Satisfiability don’t care (SDC) occurs when certain input combination to a circuit can never occur. > How it happens? =We may represent a node using both primary inputs and intermediate variables. (B n+m ) =The intermediate variables depend on primary inputs. =So, not all the minterms of B n+m can occur. > Example: =y = a+b, then {y=0, a=1, b=-} will never occur (SDC).

ENEE Computing SDCs

ENEE Example: Minimization Using SDCs > Introduce intermediate variable g at node 9. > Cannot do resubstitution since F/g = 0. > What is the difference between bcd and bg (xor of the two)? =bcdg’, bc’g, bd’g. a b F=a+bcd+e G=a+cd c d e 4 5 g

ENEE a b F=a+bcd+e G=a+cd c d e 4 5 g Example: Minimization Using SDCs > SDC 9 =g  (a+cd)=g’a+g’cd+ga’c’+ga’d’ =bcdg’ is covered by g’cd =bc’g=abc’g+a’bc’g is covered by a + ga’c’ =bd’g=abd’g+a’bd’g is covered by a + ga’d’ > F = a + bg + e ? bcdg’, bc’g, bd’g ?

ENEE Don’t Cares: Observability Don’t Care > Observability don’t care (ODC) occurs when local changes cannot be observed at the primary outputs. > How it happens? =Signals at pre-specified observation points (primary outputs) are outputs from some intermediate gates. =Change of some inputs to the intermediate gates may not change the outputs. =So, these changes are not observable. > Example: =y = a+b, when a = 1, change on b is not observable.

ENEE Computing ODCs > Boolean difference of function f w.r.t. a variable x is defined as:  f/  x=f x  f x’. > Example: F(x,y,z) = x+yz =  F/  x = F x  F x’ = 1  yz = y’+z’ =  F/  y = F y  F y’ = (x+z)  x = (x+z)x’+(x+z)’x = x’z > If output F is sensitive to node y, I.e., F y  F y’, then  F/  y=F y  F y’ =F y F y’ ’ +F y ’ F y’ =1. > Therefore, ODC y =(  F/  y)’=(F y  F y’ )’=F y F y’ +F y ’ F y’ ’.

ENEE Example: Minimization Using ODCs > y 1 =a’b+ab’,y 2 =by 1,y 3 =c’y 2 ’ > ODC y1 =(  F/  y 1 )’=((  y 3 /  y 2 )(  y 2 /  y 1 ))’ =((0  c’)(b  0))’=(c’b)’=b’+c > K-map for y 1 and ODC y1 > So y 1 = a’, XOR(a,b)  NOT(a) a b c y1y1 y2y2 y3y3 F a bc011110

ENEE Don’t Cares: Internal and External DCs > Internal Don’t Cares arise from the structure of the network itself. =SDC =ODC > External Don’t Cares (XDCs) arise from the external environment in which the network is embedded. =XSDC =XODC These can be defined in the same way if we consider the larger network in which the Boolean network is hierarchically embedded.

ENEE Don’t Cares: Complete Don’t Cares > The complete don’t cares (CDCs) of node i in a Boolean network is given by: CDC i =XSDC+XODC+SDC i +ODC i