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.

Slides:



Advertisements
Similar presentations
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Exploiting Don’t Cares in Logic Minimization.
Advertisements

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.
The BDS Circuit Synthesis System What it Does and Doesn’t Do.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
CS357 Lecture: BDD basics David Dill 1. 2 BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD.
MVI Function Review Input X is p -valued variable. Each Input can have Value in Set {0, 1, 2,..., p i-1 } literal over X corresponds to subset of values.
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.
1 Node Minimization Problem:Problem: –Given a Boolean network, optimize it by minimizing each node as much as possible. Note:Note: –The initial network.
Multilevel Logic Minimization -- Introduction. ENEE 6442 Outline > Multi-level minimization: technology independent local optimization. > What to optimize:
1 Digital Logic
Boolean Functions and their Representations
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
Computation Engines: BDDs and SAT (part 2) 290N: The Unknown Component Problem Lecture 8.
Nov. 13, 2002ICCAD 2002 Simplification of Non-Deterministic Multi-Valued Networks Alan Mishchenko Electrical and Computer Engineering Portland State University.
ECE Synthesis & Verification - Lecture 9b 1 ECE 697B (667) Fall 2004 ECE 697B (667) Fall 2004 Synthesis and Verification of Digital Systems Boolean.
Overview Sequential Circuit Design Specification Formulation
Boolean Matching in Logic Synthesis. Equivalence of Functions Equivalence of two functions defined under l Negation of input variables l Permutation of.
Sept. 19, 2002Workshop on Boolean Problems A Theory of Non-Deterministic Networks R. K. Brayton EECS Dept. University of California Berkeley.

ECE 667 Synthesis and Verification of Digital Systems
New Approach to Quantum Calculation of Spectral Coefficients Marek Perkowski Department of Electrical Engineering, 2005.
Prof. Bodik CS 164 Lecture 16, Fall Global Optimization Lecture 16.
Algebra Algebra – defined by the tuple:  A, o 1, …, o k ; R 1, …, R m ; c 1, …, c k  Where: A is a non-empty set o i is the function, o i : A p i  A.
Chapter 2: Boolean Algebra and Logic Functions
Lecture 3: Incompletely Specified Functions and K Maps CSE 140: Components and Design Techniques for Digital Systems Fall 2014 CK Cheng Dept. of Computer.
Identifying Reversible Functions From an ROBDD Adam MacDonald.
BOOLEAN ALGEBRA Saras M. Srivastava PGT (Computer Science)
1 Simplification of Boolean Functions:  An implementation of a Boolean Function requires the use of logic gates.  A smaller number of gates, with each.
Boolean Methods for Multi-level Logic Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial.
Geometric interpretation & Cubes Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect19: Multi Level Logic Minimization.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 7 Transformations Factoring - finding a factored form from SOP or POS expression Decomposition.
Quine-McCluskey (Tabular) Minimization Two step process utilizing tabular listings to: Identify prime implicants (implicant tables) Identify minimal PI.
Optimization Algorithm
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. Circuit Optimization Logic and Computer Design Fundamentals.
1 SOP and POS Expressions from K-maps The examples so far have all generated minimal SOP expressions. POS expressions can be formed as follows: 1.Group.
Two Level Networks. Two-Level Networks Slide 2 SOPs A function has, in general many SOPs Functions can be simplified using Boolean algebra Compare the.
Gate-Level Minimization
Ahmad Almulhem, KFUPM 2010 COE 202: Digital Logic Design Combinational Logic Part 3 Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
1 Verification of FSM Equivalence Goal: Verify that two sequential circuit implementations always produce the same sequence of outputs given the same sequence.
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.
To Split or to Conjoin: The Question in Image Computation 1 {mooni, University of Colorado at Boulder 2 Synopsys.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
ECE 301 – Digital Electronics Minimizing Boolean Expressions using K-maps, The Minimal Cover, and Incompletely Specified Boolean Functions (Lecture #6)
1 Digital Systems Design Lecture 7 Transformations Factoring - finding a factored form from SOP or POS expression Decomposition - expression of a function.
Lecture 3: Incompletely Specified Functions and K Maps
Interpolating Functions from Large Boolean Relations
A Boolean Paradigm in Multi-Valued Logic Synthesis
Lecture 3: Incompletely Specified Functions and K Maps
ECE 331 – Digital System Design
Multi-Level Minimization
Optimization Algorithm
MVI Function Review Input X is p-valued variable. Each Input can have Value in Set {0, 1, 2, ..., pi-1} literal over X corresponds to subset of values.
Robert Brayton UC Berkeley
COE 202: Digital Logic Design Combinational Logic Part 3
MVI Function Review Input X is p-valued variable. Each Input can have Value in Set {0, 1, 2, ..., pi-1} literal over X corresponds to subset of values.
A logic function f in n inputs x1, x2, ...xn and
Overview Part 2 – Circuit Optimization
A logic function f in n inputs x1, x2, ...xn and
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
Lecture 3: Incompletely Specified Functions and K Maps
ECE 331 – Digital System Design
Presentation transcript:

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 ODC + XDC to a node representation where ODC is some subset of

2 full_simplify separate DC network multi-level Boolean network for z y 12 y 11 y 10 XDC x1x1x1x1 x4x4x4x4 x2x2x2x2 yy z 1110  y9y9y9y9 y3y3y3y3 y1y1y1y1 y4y4y4y4 y8y8y8y8 y7y7y7y7 y2y2y2y2 or x4x4x4x4 y6y6y6y6 y5y5y5y5 z (output) x3x3x3x3 x3x3x3x3 x2x2x2x2 x1x1x1x1 x4x4x4x4 x2x2x2x2 x3x3x3x3 x1x1x1x1

3 full_simplify XDC is held in separate network, called the DC network. Described in BLIF by.begin dc end dc XDC and ODC are related only through x 1, x 2, x 3, x 4, the primary inputs.

4 Mapping to Local Space How can ODC + XDC be used for optimizing the representation of a node, y j ? yjyjyjyj yryryryr ylylylyl x1x1x1x1 x2x2x2x2 xnxnxnxn

5 Mapping to Local Space Definitions: The local space B r of node j is the Boolean space of all the fanins of node j (plus maybe some other variables chosen selectively). A don’t care set D(y r+ ) computed in local space (+) is called a local don’t care set A don’t care set D(y r+ ) computed in local space (+) is called a local don’t care set.Solution: Map DC(x) = (ODC+XDC)(x) to local space of the node to find local don’t cares, i.e. we will compute

6 Computing Local Don’t Cares The computation is done in two steps: 1. Find DC(x) in terms of primary inputs. 2. Find D, the local don’t care set, by image computation and complementation. and complementation. yjyjyjyj yryryryr ylylylyl x1x1x1x1 x2x2x2x2 xnxnxnxn

7 Map to Primary Input (PI) Space yjyjyjyj yryryryr ylylylyl x1x1x1x1 x2x2x2x2 xnxnxnxn

8 Computation done with Binary Decision Diagrams –Build BDD’s representing global functions at each node in both the primary network and the don’t care network, g j (x 1,...,x n ) - use BDD_compose or better, BDD_substitute. –Replace all the intermediate variables in (ODC+XDC) with their global BDD Since we will be using the method of computing the compatible don’t cares by the “local cube method”, in general, this will be a set of cubes expressed in (x,y)Since we will be using the method of computing the compatible don’t cares by the “local cube method”, in general, this will be a set of cubes expressed in (x,y) –Use BDD’s to substitute for y in the above (using BDD_substitute) DC(x)xhyxXDCODCyxh  )(),)((),( ~

9 Example separate DC network multi-levelnetwork for z y 12 y 11 y 10 XDC x1x1x1x1 x4x4x4x4 x2x2x2x2 y9y9y9y9 y3y3y3y3 y1y1y1y1 y4y4y4y4 y8y8y8y8 y7y7y7y7 y2y2y2y2 x4x4x4x4 y6y6y6y6 y5y5y5y5 z (output) x3x3x3x3 x3x3x3x3 x2x2x2x2 x1x1x1x1 x4x4x4x4 x2x2x2x2 x3x3x3x3 x1x1x1x1 & & & or or & xnor

10 Image Computation yjyjyjyj yryryryr ylylylyl x1x1x1x1 x2x2x2x2 xnxnxnxn localspace grgrgrgr glglglgl image BnBnBnBn BrBrBrBr DiDiDiDi image of care set under mapping y 1,...,y r DC i =XDC i +ODC i care set Local don’t cares are the set of minterms in the local space of y i that cannot be reached under any input combination in the care set of y i.Local don’t cares are the set of minterms in the local space of y i that cannot be reached under any input combination in the care set of y i. Local don’t Care Set:Local don’t Care Set: i.e. those patterns of (y 1,...,y r ) that never appear as images of input cares.

11 Example separate DC network multi-level network for z y 12 y 11 y 10 XDC x1x1x1x1 x4x4x4x4 x2x2x2x2 y9y9y9y9 y3y3y3y3 y1y1y1y1 y4y4y4y4 y8y8y8y8 y7y7y7y7 y2y2y2y2 x4x4x4x4 y6y6y6y6 y5y5y5y5 z (output) x3x3x3x3 x3x3x3x3 x2x2x2x2 x1x1x1x1 x4x4x4x4 x2x2x2x2 x3x3x3x3 x1x1x1x1 Note that D 2 is given in this space y 5, y 6, y 7, y 8. Thus in the space 2210 never occurs. Can check that Using, f 2 can be simplified to & & & or or & xnor

12 Full_simplify Algorithm 1.Visit node in topological reverse order i.e. from outputs. This gives rise to a total ordering of all nodes. Edge ordering is inherited from node ordering, i.e. [i,j] < [k,j] if i < k. 2.Compute compatible ODC i by “modified flipping” method. –compatibility done in SOP form with intermediate y variables. 3.BDD’s built to get this don’t care set in terms of primary inputs (DC i ) 4.Image computation techniques used to find local don’t cares D i at each node. ( XDC i + ODC i )(x,y)  DC i (x)  D i ( y r ) where ODC i is a compatible don’t care at node i. f y1y1y1y1 ykykykyk

13 Easier Computation of CODC Subset The Savoj method, an easy way for computing a CODC subset on each input of a function f, is: where CODC f is the compatible don’t cares already computed for node f, and where f has its inputs y 1,y 2,... in that order.

14 Image Computation: two methods 1.Transition Relation Method f : B n  B r  F : B n x B r  B F is the characteristic function of f.

15 Transition Relation Method 1.Image of set A under f f(A) =  x (F(x,y)A(x)) The existential quantification  x is also called “smoothing” and denoted sometimes by S x. Note: The result is a BDD representing the image, i.e. f(A) is a BDD with the property that BDD(y) = 1   x such that f(x) = y and x  A. Af(A) f xy

16 Recursive Image Computation Problem: Given f : B n  B r and A(x)  B n Compute: Step 1: compute CONSTRAIN (f,A(x))  f A(x) f and A are represented by BDD’s. CONSTRAIN is a built-in BDD operation. It is related to generalized cofactor with the don’t cares used in a particular way to make 1. the BDD smaller and 2. an image computation into a range computation. Step 2: compute range of f A(x). f A(x) : B n  B r

17 Recursive Image Computation Property of CONSTRAIN (f,A)  f A(x) : (f A(x) )| x  B n = f| x  A i.e. range = image A f BnBnBnBn BrBrBrBr fAfAfAfA range of f A (B n ) range of f(B n ) f(A)

18 End of lecture 13

19 Recursive Image Computation BnBnBnBn B r = (y 1,...,y r ) This is called input cofactoring 1. Divide and conquer

20 Recursive Image Computation where here refers to the CONSTRAIN operator. (This is called output cofactoring). Thus Notes: This is a recursive call. Could use 1. or 2 at any point. The input is a set of BDD’s and the output can be either a set of cubes or a BDD. The input is a set of BDD’s and the output can be either a set of cubes or a BDD. 2. Divide and conquer

21 BDD_CONSTRAIN illustrated X X f 0 0 A Idea: Map subspace (say cube c in B n ) which is entirely in DC (i.e. A(c)  0) into nearest non-don’t care subspace (i.e. A  0). where P A (x) (projection) is the “nearest” point in B n such that A = 1 there.

22 full_simplify inputs  B n fjfjfjfj XDC outputs m intermediate nodes Express ODC in terms of variables in B n+m Don’tCarenetwork

23full_simplifyODC+XDC DC cares D cares Minimize f j don’t care = D B n+m BnBnBnBn BrBrBrBr compose imagecomputation fjfjfjfj local space B r Question: Where is the SDC coming in and playing a roll? Express ODC in terms of variables in B n+m