SOFTWARE FOR THE MINIMIZATION OF THE COMBINATIONAL LOGIC FUNCTIONS

Similar documents
Software for The Minimization of The Combinational Logic Functions

Software Implementation of Break-Up Algorithm for Logic Minimization

Breakup Algorithm for Switching Circuit Simplifications

CHAPTER-2 STRUCTURE OF BOOLEAN FUNCTION USING GATES, K-Map and Quine-McCluskey

Switching Circuits Simplifications Using Binary Coded Octal Minterms

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER

SEPP: a New Compact Three-Level Logic Form

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

Contents. Chapter 3 Combinational Circuits Page 1 of 34

Karnaugh Map (K-Map) Karnaugh Map. Karnaugh Map Examples. Ch. 2.4 Ch. 2.5 Simplification using K-map

Multi-valued Logic Synthesis. Robert K Brayton Sunil P Khatri University of California Berkeley, CA brayton,

Design of Framework for Logic Synthesis Engine

CS8803: Advanced Digital Design for Embedded Hardware

A Simplification Method of Polymorphic Boolean Functions

Synthesis 1. 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, Typeset by FoilTEX 1

Two-Level Logic Optimization ( Introduction to Computer-Aided Design) School of EECS Seoul National University

9 Conclusions. References [1] V. Akella and G. Gopalakrishnan. Shilpa: a high-level synthesis system for self-timed circuits. In ICCAD-1992.

DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute 2. LECTURE: LOGIC NETWORK MINIMIZATION 2016/2017

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

Chapter 2 Combinational Logic Circuits

A New Decomposition of Boolean Functions

Chapter 2 Combinational

Unit 4: Formal Verification

A Boolean Paradigm in Multi-Valued Logic Synthesis

Algorithms for the Optimal State Assignment of Asynchronous State Machines

UNIT II. Circuit minimization

A New Algorithm to Create Prime Irredundant Boolean Expressions

Formal Verification using Probabilistic Techniques

Gate-Level Minimization. section instructor: Ufuk Çelikcan

SYNTHESIS OF FINITE STATE MACHINES: LOGIC OPTIMIZATION

Electronic Engineering Part 1 Laboratory Experiment. Digital Circuit Design 1 Combinational Logic. (3 hours)

Module -7. Karnaugh Maps

State assignment techniques short review

Introduction. The Quine-McCluskey Method Handout 5 January 24, CSEE E6861y Prof. Steven Nowick

Outcomes. Unit 9. Logic Function Synthesis KARNAUGH MAPS. Implementing Combinational Functions with Karnaugh Maps

Two-Level Multiple-Output Combinational Networks Design Web-based Tutoring Tool

Using Genetic Algorithm with Non-identical Population for Minimizing Boolean Functions

A B AB CD Objectives:

COPYRIGHTED MATERIAL INDEX

Advanced Digital Logic Design EECS 303

Specifying logic functions

Chapter 8. 8 Minimization Techniques. 8.1 Introduction. 8.2 Single-Output Minimization Design Constraints

Combinational Logic Circuits Part III -Theoretical Foundations

Combinational Logic & Circuits

Heuristic Minimization of Boolean Relations Using Testing Techniques

Assignment (3-6) Boolean Algebra and Logic Simplification - General Questions

A purely map procedure for two-level multiple-output logic minimization

Chapter 2. Boolean Expressions:

Anale. Seria Informatică. Vol. X fasc Annals. Computer Science Series. 10 th Tome 1 st Fasc. 2012

ESOP CIRCUIT MINIMIZATION BASED ON THE FUNCTION ON-SET. Likai Chai

Final Examination (Open Katz, asynchronous & test notes only, Calculators OK, 3 hours)

WWW-BASED BOOLEAN FUNCTION MINIMIZATION

Programmable Logic Devices

Optimized Implementation of Logic Functions

Symbolic Hazard-Free Minimization and Encoding of Asynchronous Finite State Machines

Minimization of Multiple-Valued Functions in Post Algebra

File Formats. Appendix A. A.1 Benchmarks. A.2 ESPRESSO Format

UNIT I BOOLEAN ALGEBRA AND COMBINATIONAL CIRCUITS PART-A (2 MARKS)

OPTIMISTA: State Minimization of Asynchronous FSMs for Optimum Output Logic

EECS Components and Design Techniques for Digital Systems. Lec 07 PLAs and FSMs 9/ Big Idea: boolean functions <> gates.


Programmable Logic Devices. Programmable Read Only Memory (PROM) Example

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007

User s Manual. Ronwaldo A. Collado Diosdado Y. Tejoso Jr. CMSC 130 Logistic Design and Digital Computer Circuits Second Semester, A. Y.

KING FAHD UNIVERSITY OF PETROLEUM & MINERALS COMPUTER ENGINEERING DEPARTMENT

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

SYNTHESIS FOR ADVANCED NODES

TWO-LEVEL COMBINATIONAL LOGIC

Using Synthesis Techniques in SAT Solvers

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

CSE241 VLSI Digital Circuits UC San Diego

Gate Level Minimization Map Method

CprE 281: Digital Logic

Chapter 3. Gate-Level Minimization. Outlines

ADAPTIVE MAP FOR SIMPLIFYING BOOLEAN EXPRESSIONS

Introduction to Microprocessors and Digital Logic (ME262) Boolean Algebra and Logic Equations. Spring 2011

Homework 3 Handout 19 February 18, 2016

2.1 Binary Logic and Gates

Lecture 22: Implementing Combinational Logic

Slide Set 5. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

Functional Test Generation for Delay Faults in Combinational Circuits

VALLIAMMAI ENGINEERING COLLEGE

Gate-Level Minimization

ECE260B CSE241A Winter Logic Synthesis

R.M.D. ENGINEERING COLLEGE R.S.M. Nagar, Kavaraipettai

Chapter 3 Simplification of Boolean functions

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

A Logically Complete Reasoning Maintenance System Based on a Logical Constraint Solver

DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY

ICS 252 Introduction to Computer Design

Simplification of Boolean Functions


ECE 595Z Digital Systems Design Automation

ON AN OPTIMIZATION TECHNIQUE USING BINARY DECISION DIAGRAM

Chapter 2 Combinational Logic Circuits

EE552 Extra Credit Project

On the Relation between SAT and BDDs for Equivalence Checking

Beyond the Combinatorial Limit in Depth Minimization for LUT-Based FPGA Designs

CONTENTS CHAPTER 1: NUMBER SYSTEM. Foreword...(vii) Preface... (ix) Acknowledgement... (xi) About the Author...(xxiii)

Transcription:

SOFTWARE FOR THE MINIMIZATION OF THE COMBINATIONAL LOGIC FUNCTIONS Rotar Dan Vasile Alecsandri University, Bacau, Romania Abstract An important component of the command and control circuit for the mechatronic systems is the logical combinational circuit. For their design, methods of minimization and optimization are often used. These methods also apply to the PLA, ASIC or FPGA circuit design, being widespread in the digital circuit design [1]. The Karnaugh map method and the Quine McCluskey algorithm are classical methods of minimization. Using the Karnaugh tabular method for minimization is time consuming, and if it is done manually, it is not easy to do for more than six variables. When the logic function has more variables, as it happens in most practical situations, the method developed by Quine and McCluskey is more accessible. This method can be easily implemented as a computer program [2]. The development of the software and hardware components of the computer systems allows the simplification of the minimization algorithm if the program has an acceptable execution speed. This paper presents the algorithm and the adequate program for the minimizing of the combinational logic functions up to 20 variables, but the number of variables is only limited by the computer system s memory. The program is developed in Visual Basic. The algorithm is based on the consecutive clustering of the terms, starting with grouping the terms with a single change of a variable into two terms with a variable of the same rank. Following the grouping, the result will be new terms with one of the variables eliminated. The clustering algorithm ends when variables cannot be grouped any longer. This algorithm is similar to the Quine McCluskey algorithm, but it is more simplified because it eliminates a number of activities required by the Quine McCluskey algorithm. Keywords software, mechatronics systems, combinational logic functions 1. Introduction There are two categories of digital circuits: combinational logic circuits that exclusively consist of logical gates and sequential logic circuits that consist of memories, which are components for storing information and logic gates for processing this information. Generally, memories have a standard structure and a well-defined behavior. Because of this, the design of digital circuits, regardless of their type, also implies the design of a combinational logic component from the circuit s structure. The designing of combinational logic circuits is commonly called logic synthesis and currently, there are a number of methods devoted to this activity. The design work usually begins with an analysis of the function / functions that must be met by that circuit. At this stage the necessary output values of the logic circuit are determined according to the values of the variables input values. The result of this analysis takes the form of a truth table of the function. The synthesis of the combinational logic function often requires a minimizing operation that seeks to reduce the number of components needed to achieve that function. It must be mentioned here that not all currently used methods of synthesis require minimization, but this operation is often very useful. For example, when using a PSoC (Programmable System on Chip) device with a limited number of available gates on the digital chip, the minimizing operation is very useful [3]. Among the traditional minimizing methods used for the combinational functions (also called binary logical function or Boolean functions), the Karnaugh method and the Quine-McCluskey method will be briefly presented [1]. E.W. Veitch first suggested the use of a special form of the Venn diagrams in order to simplify with their help the combinational logic functions. Shortly after, M. Karnaugh also suggests a modified form of the Venn diagrams with the same purpose. The diagrams called the Karnaugh maps resulted in this way. The Karnaugh maps are currently used to represent Boolean functions with a relatively small number of variables. These diagrams are useful for minimizing Boolean functions because they easily allow the detection of identities similar to the type Eq. 1. x + xy= x xy + x y= x (1) x + xy= x+ y The Romanian Review Precision Mechanics, Optics & Mechatronics, 2010 (20), No. 37 95

Generally, a Karnaugh map for a Boolean function of n variables is drawn as a square or a rectangle divided into 2 n compartments. Each compartment is reserved for a canonical term of the function, i.e. for one of the 2 n n-uples of the function or for the corners of the n-dimensional cube from the geometrical representation of the function. In this way, a Karnaugh diagram will be represented by a table with m rows and p columns which meet these conditions m x p = 2 n and m + p = n. The heads of the table will contain the possible combinations for the function variables written in the Gray code. Putting variables on rows and columns can be done in several ways; the only condition being the correct filling in of the table. When minimizing the function the fact that a Karnaugh diagram is a closed surface and so the top and bottom edges of the table and also the left and right edges are adjacent (are attached) has to be taken into consideration. The Quine-McCluskey method is an algebraic method for minimizing Boolean functions with a large number of variables, for which the Karnaugh map method is difficult to use. This method, based on the same principles as the Karnaugh map method, is easier to apply for the functions with a large number of variables because the method involves the consecutive building of some tables to determine the minimum form of a function. The algorithm that is lies at the basis of the Quine - McCluskey method can be easily programmed thus allowing the automatic minimization of the large functions. The method is applied in two steps: 1. the first step determines the prime implicants of the function; 2. the second step determines the essential prime implicants to give coverage of the function with a minimum cost. A different approach is the ESPRESSO algorithm. This algorithm was developed by Brayton e.a. at the Berkeley University, California, [4]. This algorithm works with "cubes" which are the product of the function s terms that are iteratively determined. This way of working separates this algorithm from the classical ones that are based on the factorization of the function in mini terms. The minimizing result does not lead to an absolute minimum but the obtained results are very close to it and the result does not include redundant terms. Compared with other methods, this method can be done more efficiently on a computer program. Using this algorithm on a computer system leads to a calculation time and a lower memory consumption. The algorithm does not impose restrictions on the number of variables, output functions or on the number of blocks of the combinational logic function that is minimized. Combinational logic functions with dozens of outputs and dozens of variables can be easily calculated using this algorithm. For the ESPRESSO algorithm, it is necessary to submit the truth table of the function for minimization at the entry point and the minimized function will be obtained at the output. Basically, this algorithm tries to use the product of the terms at as many output functions for the given function. There is though the possibility that each output function to be treated independently. In this way the algorithm can be used effectively in programmable logical matrixes on two levels such as the PLA (Programmable Logic Array) or PAL (Programmable Array Logic). Given the performances of the EXPRESSO algorithm it is currently used in many applications involving the use of FPGAs (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit). 2. Binary function minimization software The minimization program is implemented in Visual Basic programming environment version 5.0. With this program, minimizing the combinational logic functions with up to 20 variables can be done. The number of the binary function s variables can be increased if the computer system resources allow this. A combinational logic function with 20 variables can have no more than 1,048,576 terms which in most practical cases is sufficient. The first step is grouping the terms in which a single variable has different values in distinct terms. The variable that changes must be kept at the same rank in the terms that are grouped. The second step is trying to group the already grouped terms. The grouped terms can be grouped again if the following conditions are accomplished: the variables already grouped are at the same rank in both terms and only one variable changes its value in the terms that are grouped. The algorithm ends when terms cannot be groups any longer. The coverage of the binary function is determined on the prime implicants table obtained. The coverage represents the essential and nonessential implicants selection that can fully describe the function. A sorting of the found coverage is made and they are displayed in the ascending order of the cost. A simple example of a function with four variables with four terms each will be considered below. This function can be written in the disjunctive normal form as: f 4 = P 5 + P 7 + P 13 + P 15 (2) which can be written in canonical form as: f ( x3 x2x1x0 ) = x3x2 x1x0 + x3x2x1 x0+ x1x2 x1 x0+ x3x2x1x0 (3) 96 The Romanian Review Precision Mechanics, Optics & Mechatronics, 2010 (20), No. 37

The initial terms of the function are put in a matrix called in the program "Terms1". In the first step, the terms that can be grouped are placed in the matrix "Terms2". The terms that could not be grouped are placed in a matrix named "End". The terms of the matrix End represent the prime implicants of the binary function. For the function in the example, the situation in Figure 1 is presented. Terms1 0101 0111 1101 1111 Terms2 01X1 11X1 Figure 1: Step 1. Initial grouping terms End Next, the contents of the matrix Terms2 are transferred in the matrix "Terms1" and the process is repeated (Figure 2). Terms1 01X1 11X1 Terms2 End Figure 2: Grouping terms already grouped After this phase, it appears that the terms cannot be grouped any longer and thus the matrix "Terms2" will be empty, this leading to the completion of the algorithm. The term from the matrix "Terms1", which was not grouped, is transferred to the matrix "Final". The coverage of the function is determined (in our example it is not the case) and the sorting is made. The result of the minimization is found in the matrix "Final" (Figure 3). Termeni1 Termeni2 Final Figure 3: End algorithm The Romanian Review Precision Mechanics, Optics & Mechatronics, 2010 (20), No. 37 97

First entering the number of the function variables, then the decimal indexes of terms are introduced. It displays the current number of the term introduced. The Index of the introduced term in decimal format. Binary equivalent of the index term. Button to change the number of variables or to initialize the program. After two terms are introduced, the button that triggers the minimization action becomes active. Exit program. The result of the minimization. Figure 4: The main window of the minimization software When starting, the program displays a main window that allows the user to enter the terms of the binary function and to launch the minimizing operation (Figure 4). The user must enter at the beginning the number of variables of the Boolean function for minimization. The user receives some information about how the program works and about the maximum number of terms that can be introduced. The introduction of the terms by their index follows after that. The program provides assistance on the input process and on the errors that can occur, by displaying additional windows. The entered terms are also shown in their corresponding binary code for control. After entering all the terms (of the Boolean function) the minimization process starts. The resulted terms are displayed in the result window and on the position of the eliminated variables the symbol "X" is displayed. 3. Conclusions The program presented in this paper uses a simplified algorithm Quine-McCluskey. The code developed is optimized for the increase of the execution speed. The main advantages of this program are the possibility of the rapid determination of the minimized forms and the increase of the designing efficiency of digital circuits configured by the user. The possibility of implementing tests for minimum convenient forms is also another advantage of the minimization program. Additional terms can be introduced or different configurations can be tried in order to achieve optimum results. The program's main drawback is the fact that increasing the number of variables of the binary function uses an appropriate amount of memory. The tests conducted when designing and the obtained results show that this program is a useful tool that increases productivity. 4. References [1] G. De Micheli, "Synthesis and Optimization of Digital Circuits", McGraw-Hill Science Engineering, 1994 [2] S. Ahmand, R. Mahapatra, M-trie: an efficient approach to on-chip logic minimization, Proceedings of the 2004 IEEE/ACM 98 The Romanian Review Precision Mechanics, Optics & Mechatronics, 2010 (20), No. 37

International conference on Computer-aided design, p.428-435, November 07-11, 2004 [3] Erik Brunvand, Steven Nowick, Kenneth Yun, Practical advances in asynchronous design and in asynchronous/synchronous interfaces, Proceedings of the 36th ACM/IEEE conference on Design automation, p.104-109, June 21-25, 1999, New Orleans, Louisiana, United States [4] R.K. Brayton, A. Sangiovanni-Vincentelli, C. McMullen, G. Hachtel, "Logic Minimization Algorithms for VLSI Synthesis", Kluwer Academic Publishers, 1984 [5] Alan Marshall, Polly Siegel, Bill Coates, Designing an Asynchronous Communications Chip, IEEE Design & Test, v.11 n.2, p.8-21, April 1994 [6] J. W. J. M. Rotten, M. R. C. M. Berkelaar, C. A. J. van Eijk, M. A. J. Kolsteren, An efficient divide and conquer algorithm for exact hazard free logic minimization, Proceedings of the conference on Design, automation and test in Europe, p.749-754, February 23-26, 1998, Le Palais des Congrés de Paris, France [7] Vigyan Singhal, Carl Pixley, Adnan Aziz, Shaz Qadeer, Robert Brayton, Sequential optimization in the absence of global reset, ACM Transactions on Design Automation of Electronic Systems (TODAES), v.8 n.2, p.222-251, April 2003 [8] Wilsin Gosti, Tiziano Villa, Alex Saldanha, Alberto Sangiovanni-Vincentelli, FSM Encoding for BDD Representations, International Journal of Applied Mathematics and Computer Science, v.17 n.1, p.113-124, Number 1 / March 2007 [9] Nikhil Saluja, Kanupriya Gulati, Sunil P Khatri, SAT-based ATPG using multilevel compatible don't-cares, ACM Transactions on Design Automation of Electronic Systems (TODAES), v.13 n.2, p.1-18, April 2008 The Romanian Review Precision Mechanics, Optics & Mechatronics, 2010 (20), No. 37 99