1 Multi-Valued Logic Synthesis R. K. Brayton and S. P. Khatri University of California Berkeley.

Slides:



Advertisements
Similar presentations
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Advertisements

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 331 – Digital System Design
CS 140 Lecture 2 Combinational Logic CK Cheng 4/04/02.
Chapter 2 – Combinational Logic Circuits Part 1 – Gate Circuits and Boolean Equations Logic and Computer Design Fundamentals.
Reducing Multi-Valued Algebraic Operations to Binary J.-H. Roland Jiang Alan Mishchenko Robert K. Brayton Dept. of EECS University of California, Berkeley.
EDA (CS286.5b) Day 17 Sequential Logic Synthesis (FSM Optimization)
1 Generalized Buffering of PTL Logic Stages using Boolean Division and Don’t Cares Rajesh Garg Sunil P. Khatri Department of Electrical and Computer Engineering,
Sequential System Synthesis -- State Encoding. ENEE 6442 The State Encoding Problem > Goal: Given n states, assign a unique code (of length of at least.
Logic Synthesis 5 Outline –Multi-Level Logic Optimization –Recursive Learning - HANNIBAL Goal –Understand recursive learning –Understand HANNIBAL algorithms.
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
SPFD-Based Wire Removal in a Network of PLAs Sunil P. Khatri* Subarnarekha Sinha* Andreas Kuehlmann** Robert K. Brayton* Alberto Sangiovanni-Vincentelli*
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 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
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
Applying Edge Partitioning to SPFD's 1 Applying Edge Partitioning to SPFD’s 219B Project Presentation Trevor Meyerowitz Mentor: Subarna Sinha Professor:
MVSIS Front End 219b Project Presentation Spring 2000 Minxi Gao, EECS, UC Berkeley.
Computer Architecture I: Digital Design Dr. Robert D. Kent Lecture 3 Simplification of Boolean Expressions.
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization I.
Two Level Logic Optimization. Two-Level Logic Minimization PLA Implementation Ex: F 0 = A + B’C’ F 1 = AC’ + AB F 2 = B’C’ + AB product term AB, AC’,
PLACEMENT USING DON’T CARE WIRES Fan Mo Don’t Care Wire Group: P.Chong, Y-J.Jiang, S.Singha and R.K.Brayton.
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 2 The Relational Model. Objectives Terminology of relational model. How tables are used to represent data. Connection between mathematical relations.
Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.
The covering procedure. Remove rows with essential PI’s and any columns with x’s in those rows.
Zvi Kohavi and Niraj K. Jha 1 Multi-level Logic Synthesis.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Valued Logic.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. Circuit Optimization Logic and Computer Design Fundamentals.
Combinational Design, Part 3: Functional Blocks
CHAPTER 3: PRINCIPLES OF COMBINATIONAL LOGIC
Weikang Qian. Outline Intersection Pattern and the Problem Motivation Solution 2.
Multiple Valued Logic Currently Studied for Logic Circuits with More Than 2 Logic States –Intel Flash Memory – Multiple Floating Gate Charge Levels – 2,3.
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
1 State Assignment The problem: Assign a unique code to each state to produce a minimal binary logic level implementation. Given: 1.|S| states, 2.at least.
Graphs Basic properties.
CSE 140: Components and Design Techniques for Digital Systems Lecture 3: Incompletely Specified Functions and K Maps CK Cheng Dept. of Computer Science.
1 Gate Level Minimization EE 208 – Logic Design Chapter 3 Sohaib Majzoub.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Output Grouping-Based Decomposition of Logic Functions Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University.
Lecture 1 Gunjeet kaur Dronacharya group of institutions.
CHAPTER 6 Quine-McCluskey Method
CHAPTER 3 Simplification of Boolean Functions
Lecture 3: Incompletely Specified Functions and K Maps
Finite state machine optimization
Finite state machine optimization
ECE 2110: Introduction to Digital Systems
CS 352 Introduction to Logic Design
A Boolean Paradigm in Multi-Valued Logic Synthesis
Lecture 3: Incompletely Specified Functions and K Maps
Relational Algebra 1.
EE4271 VLSI Design Logic Synthesis EE 4271 VLSI Design.
Robert Brayton UC Berkeley
Chapter 3 Gate-level Minimization.
MINTERMS and MAXTERMS Week 3
Lecture 15 — CS 2603 Applied Logic for Hardware and Software
DESIGN OF SEQUENTIAL CIRCUITS
Synthesis and Verification of Finite State Machines
Copyright © Cengage Learning. All rights reserved.
Heuristic Minimization of Two Level Circuits
Overview Part 2 – Circuit Optimization
Heuristic Minimization of Two Level Circuits
design entry (schematic capture, VHDL, truth table and etc.)
Basic circuit analysis and design
Lecture 3: Incompletely Specified Functions and K Maps
Presentation transcript:

1 Multi-Valued Logic Synthesis R. K. Brayton and S. P. Khatri University of California Berkeley

2 Motivation More natural way of describing designsMore natural way of describing designs At a higher level of specificationAt a higher level of specification –more possibility of optimization Is a generalizationIs a generalization –leads to improved understanding even of the binary case.

3 This Talk Unlike paper in proceedings, this talk will concentrate on several algorithms used for optimizing a logic circuit with multi-valued variables. General setting is an MV network. An acyclic graph where each node is an MV-logic function and an arc connects two nodes if one function directly depends on the other. Each node is associated with a single MV-variable, and a set of MV-inputs from other nodes or primary inputs.

4 Outline MV-NotationMV-Notation Algorithms for Multi-valued LogicAlgorithms for Multi-valued Logic –Redundancy Removal - see next talk –MV-factorization extracting common divisors in an MV settingextracting common divisors in an MV setting –SPFDs using flexibility to optimize circuitusing flexibility to optimize circuit –Decomposition f(x) = h(x1,g(x2))f(x) = h(x1,g(x2)) Conclusions and commentsConclusions and comments

5 Notation - I Definition - A multi-valued variable can take on values from a set Definition - A multi-valued function is a function which maps

6 Notation - II Definition - A multi-valued literal is a binary logic function of the form where where Definition - A cube can be written as the product of MV-literals:

7 Multi-valued Factorization Example We will show that this can be rewritten as:

8 Binary Encode First?

9 MV-Kerneling (S. Malik) ExpressionCo-kernelkernel

10 Co-kernel cube matrix ExpressionCo-kernelkernel

11 Common Divisors and Rectangles Rectangle: { } (2,4) (1,2) (1,2)

12 Satisfiable Rectangle Definition: A rectangle is satisfiable if for every variable: if a value appears somewhere in row i and the same value occurs somewhere in column j, then the same value must occur in M(i,j). satisfiable not satisfiable satisfiable

13 Forming a Common Divisor 1. For each row of the rectangle, take the union or row entries 2. AND these with the co-kernel associated with that row 3. For each column take the union of the column entries 5. OR these together + 4. AND these with column labels. common divisor factor in f1 factor in f2 f1f1f2f2 f1f2

14 Final Result + common divisor factor in f1 factor in f2

15 Nice Result Theorem: If k is a kernel found by the usual Boolean kerneling process for some binary encoding, then it will be found by the MV factoring process. In addition, the MV process can find some “Boolean factors”

16 Binary Encoding

17 Sets of Pairs of Functions to be Distinguished (SPFDs) An SPFD is equivalent to a set of incompletely specified functions (ISFs)An SPFD is equivalent to a set of incompletely specified functions (ISFs) Proposed by Yamashita, Sawada and Nagoya for simplifying binary FPGAsProposed by Yamashita, Sawada and Nagoya for simplifying binary FPGAs Implemented in SISImplemented in SIS For binary functions, can be represented by a bipartite graphFor binary functions, can be represented by a bipartite graph

18 Example of SPFD computation for MV-functions Consider the MV-function: 0 0 R R Y G G Y0 XZF SPFD F (X,Z)Red Green Yellow xz Old network

19 Assign Edges to Inputs SPFD F (X,Z)RedGreen Yellow xz SPFD X (X,Z)xz SPFD Z (X,Z)xz

20 Re-synthesize X W=SPFD X (X,Z)xz 0 0 R R Y G G Y0 XZF W Old network New network

21 SPFDs Allows more flexibility than simple don’t caresAllows more flexibility than simple don’t cares Changes both function and some of its inputs simultaneouslyChanges both function and some of its inputs simultaneously Extended to multi-valued functions.Extended to multi-valued functions.

22 Decomposition of Multi- Valued Functions (Brzozowski and Lou) is a finite non-empty set and Consider partially-specified MV-functions with n inputs and m outputs. with n inputs and m outputs. is the set of subsets of Decomposition is finding a function g such that where

23 Set Matrices A function f is represented by a set matrix, e.g. with n+m columns which must be consistent. {1} {0,1,2} {0} {1} {1} {0,2} {0,1,2} {0,1} {0} {1} {0,1} {0} {0} {0,1} {1,2} inputsoutputsn=2m=1 Notconsistent000 0

24 Decomposition of MV- functions Definition: Given a set S, a blanket B=(b 1,b 2,b 3,…,b k ) is a set of nonempty distinct (but not necessarily disjoint) subsets of S, called blocks, whose union is S. Example: S={1,2,3}, B={(1,2),(2,3), (1)} Definition: A blanket product of two blankets B 1 and B 2 is given by 1) forming the cross product of intersections of blocks 1) forming the cross product of intersections of blocks 2) removing duplicates and null intersections 2) removing duplicates and null intersections Example: S={1,2,3}, B 1 ={(1,2),(2,3),(1)}, B 2 ={(1,2),(3)} B 1 x B 2 = {(1,2),(2),(3), (1)} B 1 x B 2 = {(1,2),(2),(3), (1)}

25 Row blanket for a set matrix This is a list of unique sets of rows which cover each minterm in the input/output space, e.g. {1} {0,1,2} {0} {1} {1} {0,2} {0,1,2} {0,1} {0} {1} {0,1} {0} {0} {0,1} {1,2} inputsoutputs … ,3,4... So row blanket for this is B f ={(3),(5),(1,3,4),(1,2,3,4),(2),(1)}

26 Example of Decomposition 0 0 0,2 0,1 0 11,20,20,2 1 20,1,201,22 1,20,20,20,11,2 x1x2x2f1f2u=x1v=x2,x3 001,3,41,3, ,41,2,4 1,3,40,22 102,32,3, ,2,4 2,3,40,11 202,3,42,3, ,41,2,4 2,3,40,10 x2x3B V < B g codes g(v) f(x)=h(u,g(v)) Find a blanket B g that B V <B g and B U x B g <B f Encode the row sets of B g Choose a code for each minterm in the V space. To find g(v), form the blanket B v.

,2 0, ,20,20,2 1 0,1 20,1,201,22 1,2 1,20,20,20,11,2 0,1,2 x1x2x2f1f2g 001,3,41,3, ,41,2,4 1,3,40,22 102,32,3, ,2,4 2,3,40,11 202,3,42,3, ,41,2,4 2,3,40,10 x2x3B V < B g codes g(v)

,3,4110,10 12,421,3,442,4 4 3,40,11,2 01,2,42,42,401 01,2,42,42,401 12,3,42,42,401 12,3,42,42,401 23,421,3,43,43,412 01,2,442,4 4 3,40,11,2 01,2,442,4 4 3,40,11,2 12,3,43,43,412 12,3,43,43,412 X1B U gB g B U *B g < B f h1 h2 Computing h(u,g) The outputs h1 and h2 are obtained by intersecting the outputs of the chosen rows. 1. List each minterm of U 2. List rows that cover it = B U 3. List possible codes of g that can correspond to these minterms can correspond to these minterms 4. List corresponding blocks of B g with these codes with these codes 5. List all blocks of B f that cover B U *B g 6. Choose one block of B f for the implementation implementation 0 0 0,2 0, ,20,20,2 1 0,1 20,1,201,22 1,2 1,20,20,20,11,2 0,1,2 x1x2x2f1f2g

29 Final Result ,2 0,1 20,1,2 1,2 1,20,2 0,1,2 x1x2g 020, ,1 1, ,1 1, X1g h1 h2 Note that the results are incompletely specified functions =g(x1,x2) h1(x1,g) h1(x1,g)= h2(x1,g) h2(x1,g)

30 Conclusions and Comments Methods have been developed for representing and manipulating multi-valued functionsMethods have been developed for representing and manipulating multi-valued functions Conceptually, the best way to deal with MV-logic isConceptually, the best way to deal with MV-logic is –to manipulate them directly, –followed by intelligent binary encoding, –followed by binary manipulations We require such a logic package to experiment more fully with these methods - but this has not been developed to date.We require such a logic package to experiment more fully with these methods - but this has not been developed to date.