Understanding the basics of the decomposition methods, discussed in the earlier lectures, leads to devising a general and complete decomposition method.

Slides:



Advertisements
Similar presentations
Functions and Functional Blocks
Advertisements

1 Combinational Logic Design&Analysis. 2 Introduction We have learned all the prerequisite material: – Truth tables and Boolean expressions describe functions.
Henry Hexmoor1 C hapter 4 Henry Hexmoor-- SIUC Rudimentary Logic functions: Value fixing Transferring Inverting.
B.Macukow 1 Lecture 12 Neural Networks. B.Macukow 2 Neural Networks for Matrix Algebra Problems.
Computer Science 1620 Programming & Problem Solving.
ECE 331 – Digital System Design Logic Circuit Design (Lecture #7)
Neural Networks. Background - Neural Networks can be : Biological - Biological models Artificial - Artificial models - Desire to produce artificial systems.
Tautology. Tautology Decision May be able to use unateness to simplify process Unate Function – one that has either the uncomplemented or complemented.
CS101 Introduction to Computing Lecture 8 Binary Numbers & Logic Operations.
EE2420 – Digital Logic Summer II 2013 Hassan Salamy Ingram School of Engineering Texas State University Set 4: Other Gates.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
CMP 100 Introduction to Computing Lecture Binary Numbers & Logic Operations.
ECE 301 – Digital Electronics Logic Circuit Design (Lecture #9)
R ANDOM N UMBER G ENERATORS Modeling and Simulation CS
Ruei-Rung, Lee 1. Outline Introduction Background General Non-disjoint Decompositions Rewriting K-LUT Networks Conclusions and Future Work 2.
Mehdi Ghayoumi MSB rm 132 Ofc hr: Thur, a Machine Learning.
In some Boolean functions there are some input terms that will never occur, for example in BCD code there are sex invalid combinations 1010,1011,1100,
Neural networks.
CHAPTER 7 MULTI-LEVEL GATE CIRCUITS / NAND AND NOR GATES
PERFORMANCE EVALUATIONS
Linear Programming Many problems take the form of maximizing or minimizing an objective, given limited resources and competing constraints. specify the.
Lecture 12 Logistics Last lecture Today HW4 due today Timing diagrams
As the last CC-list represents Maximum Compatible Classes we conclude:
CS161 Introduction to Computer Science
Solver & Optimization Problems
EMGT 6412/MATH 6665 Mathematical Programming Spring 2016
Comparing Three or More Means
CSCI-100 Introduction to Computing
6.5 Stochastic Prog. and Benders’ decomposition
Basics of Digital Logic Design Presentation D
Chapter 8 - Project Management
Random Number Generators
EEL 3705 / 3705L Digital Logic Design
A. Mishchenko S. Chatterjee1 R. Brayton UC Berkeley and Intel1
Example of application: Decomposition
Linear Programming.
CS M51A/EE M16 Winter’05 Section 1 Logic Design of Digital Systems Lecture 15 March 9 W’05 Yutao He 4532B Boelter Hall
Chapter 6. Large Scale Optimization
Disadvantages of Discrete Neurons
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Objective of This Course
ECE 331 – Digital System Design
3.1 Inequalities and Their Graphs
L10 – additional State Machine examples
Lecture 15 Logistics Last lecture Today HW4 is due today
This Lecture Substitution model
Basic notions contd... Definition:
Gates Type AND denoted by X.Y OR denoted by X + Y NOR denoted by X + Y
COMS 361 Computer Organization
Algorithms and Problem Solving
Logic Circuits I Lecture 3.
XOR, XNOR, and Binary Adders
Heuristic Minimization of Two Level Circuits
ECE 352 Digital System Fundamentals
Instructor: Alexander Stoytchev
design entry (schematic capture, VHDL, truth table and etc.)
This Lecture Substitution model
Analysis of Logic Circuits Example 1
Introductory Concepts
Tautology Decision May be able to use unateness to simplify process
ECE 352 Digital System Fundamentals
This Lecture Substitution model
Parallel Decomposition
6.5 Stochastic Prog. and Benders’ decomposition
Introduction to Verilog – Part-2 Procedural Statements
Laws & Rules of Boolean Algebra
Divide-and-Conquer 7 2  9 4   2   4   7
ECE 352 Digital System Fundamentals
Chapter 6. Large Scale Optimization
STATISTICS INFORMED DECISIONS USING DATA
Presentation transcript:

Understanding the basics of the decomposition methods, discussed in the earlier lectures, leads to devising a general and complete decomposition method which can decompose any Boolean function into fixed number of subfunctions with fixed number of inputs. In other words the method is capable of producing a net list of Logic Blocks with fixed numbers of inputs and outputs for any given truth table. The main strategy is in striking a balance between the serial and parallel decomposition.

Multi-level General and Complete Decomposition It is general because it is not technology specific. Any FPGA can be targeted. It is complete because using the two strategies in functional decomposition we are able to break a truth table into a network of truth tables of any desired size.

Maximum Decomposition Theorem (MDT) Let F(X) denote a Boolean function F with a set of input variables X. Let X = A  B and A  B = , where B is the set of bound variables (G block inputs) and A is the set of free variables (direct inputs to the H block).

where the number of G block outputs = Y2A. For every function F with X inputs, Y outputs, A free variables and B bound variables, if X > 2Y and B > Y2A, there exists a minimal disjoint serial decomposition such that: F = H(G(B),A), where the number of G block outputs = Y2A.

MDT for unitary function An intriguing situation arises when the process leads to an unitary function for further decomposition. MDT for unitary function For an unitary function f there exists a minimal disjoint serial decomposition and the maximum number of G block outputs is 2A, if B > 2A. i.e.: f = H(G(B),A) where: A  B = , A = the number of variables in the set A, and B = the number of variables in the set B.

The practical interpretation of the theorem is significant as it states that a disjoint serial decomposition always exists for an unitary function if B > 2A. Now, if minimum value is assumed for the number of free variables (A = 1) the number of bound variables B is at least 3.

This means that any unitary function with a minimum of four input variables has a disjoint serial decomposition.

The number of G block outputs does not depend on the number of G block inputs. x0,…,xn xi G y’0 y’1 H y0

Any function can be decomposed into subfunctions of three variables. What if we have a FPGA with two-input Logic Cells? Solution: apply non disjoint and complex decompositions.

Non-Disjoint Decomposition: Another example xxx y 012 000 0 010 0 001 1 011 1 100 1 110 1 101 1 111 0 xx 02 00 0 01 1 10 1 11 0 01 01 0 11 1 y

Complex Decomposition: Example y xx 01 00 0 01 1 10 1 11 0 02 00 1 01 0 10 0 11 1 x 2  Complex Decomposition: Example xxx y 012 000 1 010 0 001 1 011 1 100 0 110 1 101 1 111 0

Multi-level Decomposition Theorem (MLDT) Any function F with n input variables and m outputs can be decomposed into a network of Logic Blocks with k inputs and l outputs.

Multi-level Decomposition Method (MDM) Consider a function F: {0,1,-}n  {0,1,-}m. Let us try to implement the function using a hypothetical logic block with Cin inputs and Cout outputs, where Cin and Cout are integers and Cin > Cout.

The method first tests "the sensibility" of performing disjoint serial decomposition. As the given LB has Cin inputs and Cout outputs, the ideal serial decomposition is such a decomposition, where the number of G block inputs Gin is equal to the number of LB inputs Cin and the number of G block outputs Gout is equal to the number of LB outputs Cout.

If a serial decomposition is attempted with Gin and Gout as the number of G block inputs and outputs respectively, the resulting H block will have n - (Gin-Gout) inputs. If this number of inputs is not greater than m, then the truth table is split into two parts using parallel decomposition.

In other words, if the number of inputs to the resulting H block is not expected to be greater than the number of its outputs, the truth table is split into two parts using parallel decomposition. Each part then is decomposed separately using the same method being discussed.

If the "sensibility" test is positive and serial decomposition is taken up, the possible existence of a serial decomposition for all combinations of the input variables is verified. This may be time consuming. Therefore, the selection of the "best candidate" variables for the G function and the order in which they are selected are very important research topics.

An example The “sensibility” test will recommend parallel decomposition. The minimal support sets for the two components of F are: y0 : {x0,x1) y1 : {x0,x1,x2).

Example 00 0 01 0 10 0 11 1 01 1 11 0 10 1 x0 x2 x1 x3 f1 f0 y

It is more interesting to analyze a situation when the number of inputs to the truth table under consideration is greater than Cin, the "sensibility" test described earlier does not recommend parallel decomposition and the iteration is not able to produce any further result.

We increment the value of Gin by one i. e. , G'in = Gin + 1 We increment the value of Gin by one i.e., G'in = Gin + 1. However, before increasing the number of G block inputs, it is made sure that for the given number of inputs Gin, there is no serial decomposition for Gout = Cout, Cout+1,..Gin-1. For a LB with Cin-Cout > 1, the possibility of the existence of a decomposition is verified for Gin = Cin, Cin-1,..Gout+1.

For example, if the selected FPGA LB has 2 inputs and 1 output then the consecutive G block parameters Gin and Gout shall be 2,1; 3,1; 3,2; 4,1; 4,2; 4,3; 5,1 etc. On the other hand, if the selected FPGA LB has 4 inputs and 1 output then the consecutive G block parameters Gin and Gout shall be 4,1; 3,1; 2,1; 4,2; 3,2; 4,3; 5,1 etc.

Implement the function using 2:1 LBs. Example Implement the function using 2:1 LBs.

The truth table has 5 inputs and 2 outputs No 2:1, 3:1 and 3:2 disjoint serial decomposition (dsd) the “sensibility” test would suggest a parallel decomposition since 4:1 dsd is meaningless (the resulting H table will be 2:2). parallel decomposition says that both the outputs depend on all the 5 inputs.

We consider y0 first (i.e., we have a 5:1 function to decompose into 2:1 functions) again, there is no 2:1 dsd; there is a 3:2 dsd. F = H1(G1(x1,x2,x0),x3,x4). H1 G1

G1 is stored away for further decomposition using the iteration algorithm. We continue with H1 (which is a 4:1 truth table). There is no 2:1 dsd. A 3:1 dsd is found. The resulting G2 and H2 tables are: G2

Now G1 and G2 are decomposed, followed by y1 Now G1 and G2 are decomposed, followed by y1. That will result in a network of 2:1 logic blocks.