Output Grouping Method Based on a Similarity of Boolean Functions Petr Fišer, Pavel Kubalík, Hana Kubátová Czech Technical University in Prague Department.

Slides:



Advertisements
Similar presentations
Minimization of Circuits
Advertisements

New Ways of Generating Large Realistic Benchmarks for Testing Synthesis Tools Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical.
Logical Design.
Combinational Circuits
Prof. Sin-Min Lee Department of Computer Science
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.
Scalable Test Pattern Generator Design Method for BIST Petr Fišer, Hana Kubátová Czech Technical University in Prague Faculty of Electrical Engineering.
It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University.
Grouping Heuristics for Word-Level Decision Diagrams Rolf DrechslerMarc HerbstrittBernd Becker Institute of Computer Science University of Freiburg
Dynamic lot sizing and tool management in automated manufacturing systems M. Selim Aktürk, Siraceddin Önen presented by Zümbül Bulut.
Session 6: Introduction to cryptanalysis part 1. Contents Problem definition Symmetric systems cryptanalysis Particularities of block ciphers cryptanalysis.
EE2174: Digital Logic and Lab
Lecture 3. Boolean Algebra, Logic Gates
New Approach to Quantum Calculation of Spectral Coefficients Marek Perkowski Department of Electrical Engineering, 2005.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization I.
PHY 201 (Blum)1 Some basic electronics and truth tables Some material on truth tables can be found in Chapters 3 through 5 of Digital Principles (Tokheim)
Computer Science 101 Circuit Design Algorithm. Circuit Design - The Problem The problem is to design a circuit that accomplishes a specified task. The.
Lecture 3: Incompletely Specified Functions and K Maps CSE 140: Components and Design Techniques for Digital Systems Fall 2014 CK Cheng Dept. of Computer.
Lecture 3. Boolean Algebra, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x.
Psy B07 Chapter 1Slide 1 ANALYSIS OF VARIANCE. Psy B07 Chapter 1Slide 2 t-test refresher  In chapter 7 we talked about analyses that could be conducted.
1 CHAPTER 4: PART I ARITHMETIC FOR COMPUTERS. 2 The MIPS ALU We’ll be working with the MIPS instruction set architecture –similar to other architectures.
Digital Logic Chapter 4 Presented by Prof Tim Johnson
Lecture 17: Digital Design Today’s topic –Intro to Boolean functions Reminders –HW 4 due Wednesday 10/8/2014 (extended) –HW 5 due Wednesday 10/15/2014.
1 A Flexible Minimization and Partitioning Method Petr Fišer, Jan Hlavička Czech Technical University in Prague
Boolean Algebra and Digital Circuits
B-1 Appendix B - Reduction of Digital Logic Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Principles.
2-Level Minimization Classic Problem in Switching Theory
Department of Computer Engineering
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.
Flexible Two-Level Boolean Minimizer BOOM ‑ II and Its Applications Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical.
1 © 2015 B. Wilkinson Modification date: January 1, 2015 Designing combinational circuits Logic circuits whose outputs are dependent upon the values placed.
1 Chapter 13 Analysis of Variance. 2 Chapter Outline  An introduction to experimental design and analysis of variance  Analysis of Variance and the.
2-Level Minimization Classic Problem in Switching Theory Tabulation Method Transformed to “Set Covering Problem” “Set Covering Problem” is Intractable.
DISCRETE COMPUTATIONAL STRUCTURES CS Fall 2005.
Logic Gates Shashidhara H S Dept. of ISE MSRIT. Basic Logic Design and Boolean Algebra GATES = basic digital building blocks which correspond to and perform.
CS231 Boolean Algebra1 K-map Summary K-maps are an alternative to algebra for simplifying expressions. – The result is a minimal sum of products, which.
BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Dept. of Computer Science and Engineering.
How Much Randomness Makes a Tool Randomized? Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University in Prague
Boolean Minimizer FC-Min: Coverage Finding Process Petr Fišer, Hana Kubátová Czech Technical University Department of Computer Science and Engineering.
Digital Logic. 2 Abstractions in CS (gates) Basic Gate: Inverter IO IO GNDI O Vcc Resister (limits conductivity) Truth Table.
Two-Level Boolean Minimizer BOOM-II Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University Karlovo nam. 13,
Weikang Qian. Outline Intersection Pattern and the Problem Motivation Solution 2.
On Logic Synthesis of Conventionally Hard to Synthesize Circuits Using Genetic Programming Petr Fišer, Jan Schmidt Faculty of Information Technology, Czech.
Survey of the Algorithms in the Column-Matching BIST Method Survey of the Algorithms in the Column-Matching BIST Method Petr Fišer, Hana Kubátová Department.
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
1 Implicant Expansion Methods Used in The BOOM Minimizer Petr Fišer, Jan Hlavička Czech Technical University, Karlovo nám. 13, Prague 2
ENG241 Digital Design Week #7 Sequential Circuits (Part B)
Output Grouping-Based Decomposition of Logic Functions Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University.
Standard & Canonical Forms COE 202 Digital Logic Design Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum.
1 Lecture 11: Hardware for Arithmetic Today’s topics:  Logic for common operations  Designing an ALU  Carry-lookahead adder.
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.
ELECTRICAL ENGINEERING: PRINCIPLES AND APPLICATIONS, Third Edition, by Allan R. Hambley, ©2005 Pearson Education, Inc. Chapter 7 Logic Circuits.
Multiple-Vector Column-Matching BIST Design Method Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
Circuit Synthesis A logic function can be represented in several different forms:  Truth table representation  Boolean equation  Circuit schematic 
Lecture 1 Gunjeet kaur Dronacharya group of institutions.
Prof. Sin-Min Lee Department of Computer Science
Lecture 11: Hardware for Arithmetic
Computer Organisation
SINGLE-LEVEL PARTITIONING SUPPORT IN BOOM-II
MAPLD 2005 Reduced Triple Modular Redundancy for Tolerating SEUs in SRAM based FPGAs Vikram Chandrasekhar, Sk. Noor Mahammad, V. Muralidharan Dr. V. Kamakoti.
Propositional Calculus: Boolean Algebra and Simplification
Objective of This Course
Digital Logic.
Digital Logic.
Maths for Signals and Systems Linear Algebra in Engineering Lectures 13 – 14, Tuesday 8th November 2016 DR TANIA STATHAKI READER (ASSOCIATE PROFFESOR)
Heuristic Minimization of Two Level Circuits
ECE 352 Digital System Fundamentals
Fast Boolean Minimizer for Completely Specified Functions
Presentation transcript:

Output Grouping Method Based on a Similarity of Boolean Functions Petr Fišer, Pavel Kubalík, Hana Kubátová Czech Technical University in Prague Department of Computer Science and Engineering

IWSBP'06 Outline Output Grouping Output Grouping Similarity-Based Method Similarity-Based Method Experimental Results Experimental Results Conclusions Conclusions

IWSBP'06 Output Grouping Motivation There is a need to decompose the circuit into several stand-alone output-disjoint blocks There is a need to decompose the circuit into several stand-alone output-disjoint blocks Internal signals cannot be shared Internal signals cannot be shared Inputs can be shared Inputs can be shared E.g., for PLAs, GALs, … E.g., for PLAs, GALs, …

IWSBP'06 Output Grouping Motivation: Divide the circuit into stand-alone blocks Divide the circuit into stand-alone blocks Each block produces several outputs Each block produces several outputs Task: What outputs should be grouped together into one block, so that the overall logic is minimized? What outputs should be grouped together into one block, so that the overall logic is minimized?

IWSBP'06 Similarity-Based Output Grouping Method Main principles: Based on joining functions (outputs), that are “somehow similar” Based on joining functions (outputs), that are “somehow similar” Then there should be a big chance that the two functions will share a lot of logics Then there should be a big chance that the two functions will share a lot of logics The Task: How to determine the measure of “similarity”? How to determine the measure of “similarity”?

IWSBP'06 Similarity-Based Output Grouping Method Based on these straightforward observations: Two equal functions are “very” similar Two inverse functions are very similar too, since they could differ at most by one inverter in the final (multilevel) design  Two functions are similar, if a change of a value of one input variable induces a change of values of both the functions, or the values of both functions do not change. This should be checked for all possible input variable changes.

IWSBP'06 Method “Two functions are similar, if a change of a value of one input variable induces a change of values of both the functions, or the values of both functions do not change. This should be checked for all possible input variable changes” Let us have a completely specified Boolean function given by a truth table (by minterms) Let us have a completely specified Boolean function given by a truth table (by minterms) For each minterm and each input variable change, observe the change of the two functions For each minterm and each input variable change, observe the change of the two functions If values of both the functions are changed, or the values of both the functions unchanged, add 1 to the score If values of both the functions are changed, or the values of both the functions unchanged, add 1 to the score The complexity can be halved, when only 0->1 changes are considered The complexity can be halved, when only 0->1 changes are considered

IWSBP'06 Example abc f1f1 f2f ? How much similar are these two

IWSBP'06 Example - Minterm: Variable: a (0->1) f 1 : 0 -> 1 f 2 : 0 -> 0  No score point Score: 0 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: b (0->1) f 1 : 0 -> 0 f 2 : 0 -> 0  + 1 score point Score: 1 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: c (0->1) f 1 : 0 -> 0 f 2 : 0 -> 1  No score point Score: 1 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: a (0->1) f 1 : 0 -> 1 f 2 : 1 -> 1  No score point Score: 1 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: b (0->1) f 1 : 0 -> 1 f 2 : 1 -> 1  No score point Score: 1 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: a (0->1) f 1 : 0 -> 1 f 2 : 0 -> 1  +1 score point Score: 2 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: c (0->1) f 1 : 0 -> 1 f 2 : 0 -> 1  +1 score point Score: 3 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: a (0->1) f 1 : 1 -> 1 f 2 : 1 -> 0  No score point Score: 3 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: b (0->1) f 1 : 1 -> 1 f 2 : 0 -> 1  No score point Score: 3 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: c (0->1) f 1 : 1 -> 1 f 2 : 0 -> 1  No score point Score: 3 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: b (0->1) f 1 : 1 -> 1 f 2 : 1 -> 0  No score point Score: 3 abc f1f1 f2f

IWSBP'06 Example - Minterm: Variable: c (0->1) f 1 : 1 -> 1 f 2 : 1 -> 0  No score point Score: 3 abc f1f1 f2f

IWSBP'06 Example Score = 3 abc f1f1 f2f

IWSBP'06 Method Complexity O(n.2 n ) O(n.2 n ) Not that good… Not that good…

IWSBP'06 Generalization of the Method OK, we are counting differences and indifferences of the function value, when the input variable value is changed Boolean differential calculus does exactly the same work! Boolean differential calculus does exactly the same work!

IWSBP'06 Generalization of the Method “Two functions are similar, if a change of a value of one input variable induces a change of values of both the functions, or the values of both functions do not change. This should be checked for all possible input variable changes”

IWSBP'06 Generalization of the Method “Two functions are similar, if a change of a value of one input variable induces a change of values of both the functions, or the values of both functions do not change. This should be checked for all possible input variable changes”

IWSBP'06 Generalization of the Method Thus, we compute Boolean differences wrt. all input variables for the two functions Thus, we compute Boolean differences wrt. all input variables for the two functions Then their product is computed. This represents cubes, where the change of an input variable induces a change of values of both functions Then their product is computed. This represents cubes, where the change of an input variable induces a change of values of both functions Then we compute Boolean indifferences wrt. all input variables for the two functions Then we compute Boolean indifferences wrt. all input variables for the two functions Then their product is computed. This represents cubes, where the change of an input variable induces no change of values of both functions Then their product is computed. This represents cubes, where the change of an input variable induces no change of values of both functions The sizes of both these products are computed and summed together The sizes of both these products are computed and summed together

IWSBP'06 Generalization of the Method Advantages Since Boolean algebra is involved, any algebraic representation of functions can be used Since Boolean algebra is involved, any algebraic representation of functions can be used Computing the product cubes takes linear time with the number of inputs Computing the product cubes takes linear time with the number of inputsDisadvantage Well, computing their size is not that easy. Exponential time, in fact. Well, computing their size is not that easy. Exponential time, in fact. But it’s not that bad in practice

IWSBP'06 Example Boolean differences: Total size = 4

IWSBP'06 Example Boolean indifferences: Total size = 2

IWSBP'06 Example Total score = = 6 Recall that the truth-table based result was 3. But without considering 1->0 changes, i.e., 6 in fact.

IWSBP'06 Scoring Matrix When score for all function pairs is computed, the scoring matrix is constructed Symmetric matrix of dimensions (m, m), where m is the number of output variables Symmetric matrix of dimensions (m, m), where m is the number of output variables The value in a cell [i, j] represents the scoring function value for outputs i and j The value in a cell [i, j] represents the scoring function value for outputs i and j The multi-output function’s outputs are grouped together according the scoring matrix values The multi-output function’s outputs are grouped together according the scoring matrix values

IWSBP'06 Scoring Matrix Algorithm: Assign the first output variable to the first block. Since there is no relationship between outputs and blocks yet, it can be freely done. Assign the first output variable to the first block. Since there is no relationship between outputs and blocks yet, it can be freely done. Find the maximum scoring matrix value, corresponding to outputs i and j. These outputs should be grouped together, since their “similarity value” is the highest one Find the maximum scoring matrix value, corresponding to outputs i and j. These outputs should be grouped together, since their “similarity value” is the highest one If one of these outputs is already assigned to a block, append the second one, if possible (maximum number of block’s outputs is not exceeded) If one of these outputs is already assigned to a block, append the second one, if possible (maximum number of block’s outputs is not exceeded) If none of them is assigned, try to find an empty block and assign both outputs to this block If none of them is assigned, try to find an empty block and assign both outputs to this block If no free block is available, try to put them both into some block. If no free block is available, try to put them both into some block. If there is not enough place to put both the outputs into one block, assign them randomly If there is not enough place to put both the outputs into one block, assign them randomly

IWSBP'06 Experimental Results (1) Decomposition of MCNC benchmark circuits First, the benchmark circuit has been minimized by BOOM. This experiment has been done to estimate the circuit size when no partitioning is used. First, the benchmark circuit has been minimized by BOOM. This experiment has been done to estimate the circuit size when no partitioning is used. Then we have divided the circuit into several blocks (b), while all the output variables were assigned to blocks purely at random. Then the circuit has been minimized by BOOM. 100 experiments were performed and an average value was taken, to ensure good statistical values. Then we have divided the circuit into several blocks (b), while all the output variables were assigned to blocks purely at random. Then the circuit has been minimized by BOOM. 100 experiments were performed and an average value was taken, to ensure good statistical values. Finally the our method was used. We have made an experiment similar to the previously described one, but the output variables were assigned to the blocks using the proposed method. Finally the our method was used. We have made an experiment similar to the previously described one, but the output variables were assigned to the blocks using the proposed method.

IWSBP'06 Experimental Results (1) Decomposition of MCNC benchmark circuits No decomp. Random output grouping Similarity-based output grouping benchioGEsblocksGEs impr. al % amd % b % b % b % br % dk % exps % luc %

IWSBP'06 Experimental Results (2) Application to on-line BIST

IWSBP'06 Experimental Results (2) Application to on-line BIST The circuit outputs are gradually XORed (by 2), until the required number of parity bits is obtained The circuit outputs are gradually XORed (by 2), until the required number of parity bits is obtained Synthesis process is conducted after every output XORing Synthesis process is conducted after every output XORing Scoring matrix is recomputed in each step (number of outputs is decreased by 1) Scoring matrix is recomputed in each step (number of outputs is decreased by 1) The choice of the outputs to be XORed is essential, to reduce the overall logics The choice of the outputs to be XORed is essential, to reduce the overall logics

IWSBP'06 Experimental Results (2) Application to on-line BIST Main ideas, similar to Similarity-based grouping: That’s good for minimization. When two equal functions XORed, the result will be ‘0’ for all minterms. If the values of two functions will differ in a couple of minterms only, there will be only several ‘1’ values in the resulting XORed function. That’s good for minimization. That’s good for minimization. Two inverse functions, when XORed, yield a ‘1’ value for all minterms. If the values of two functions are inverse but a few minterms, there will be only few ‘0’ values in the result. That’s good for minimization. And, consequently, if two functions are “similar”, there is a big probability that they will share a lot of logic in the implemented design.

IWSBP'06 Experimental Results (2) CircuitRandom [GEs]Similarity [GEs]Red. alu % apla % b % br % alu % alu % s % s %

IWSBP'06 Conclusions A new circuit decomposition and output grouping method based on a similarity of functions is proposed A new circuit decomposition and output grouping method based on a similarity of functions is proposed Its generalization based on Boolean difference is shown Its generalization based on Boolean difference is shown Experimental results confirm its efficiency Experimental results confirm its efficiency