SIMPLIFICATION OF BOOLEAN FUNCTION BASED ON SIMPLIFICATION ... of boolean function based... ·...

24
SIMPLIFICATION OF BOOLEAN FUNCTION BASED ON SIMPLIFICATION RULES CHIN KUI FERN Tit Master of Engineering 7 86 8 (Digital Electronics) D5 C5 39 2003

Transcript of SIMPLIFICATION OF BOOLEAN FUNCTION BASED ON SIMPLIFICATION ... of boolean function based... ·...

SIMPLIFICATION OF BOOLEAN FUNCTION BASED ON SIMPLIFICATION RULES

CHIN KUI FERN

Tit Master of Engineering7868

(Digital Electronics) D5 C5 39 2003

-llpoundrt _1 nt ~t Ak d~lr~ UrTrEbull~D MALAY) SktAWIili

-1- l ~-- S S~ f~an

SIMPLIFICATION OF BOOLEAN FUNCTION BASED ON SIMPLIFICATION RULES

PKHIDMAT MAKLUMAT AKADEMIK UNIMAS

1111111111111111111111111 1000121814

CHIN KUI FERN

A thesis submitted in full fulfillment of the requirements for the degree of

Master of Engneering

Faculty of Engineering UNIVERSITI MALAYSIA SARAWAK

2003

ACKNOWLEDGEMENT

First and foremost thanks to god for enabling the author to complete and achieve the objectives of lhis research Also the author is deeply indebted to the research supervisor Associate Professor Dr Mohamad Kadim Suaidi whose encouragement guidance and advice has helped the author in many ways for making this research a success

Profound appreciation must also be expressed to the lab assistant especially to Encik Wan Abu Bakar and Encik Zakaria Bin Idris for letting the author to use a few computers and some development tools essential for the study and simulation work Their helps and support in times of troubles and difficulties is very much appreciated

The author also would like to express his special thanks to the University of Malaysia Sarawak (UNIMAS) and National Science Fellowship for their sponsorships

Last but not least thanks to authors family dearest colleague and friends for their constructive suggestion encouragement patient and who have helped the author in their own ways which enable me to see this thesis through to completion

iii

i

ABSTRACT

(BOIean function simplification i~ the art of ~x~loiting simplification opp~rtunities that exist within that algebra or greatly facilitated by preliminary reducing the number of roots in separate equations that in its tum leads to decreasing the number of variables in a considered system the number of equations and time complexity Any large systems of logical functions should be expressed in as simple as possible through generalization because this leads inevitably to a reduced usage of resources such as the physical space and connectivity of electronic logic circuits when that same function is implemented physically using actual electronic devices or componen

( Boolean functions are used as mo~els for many different problems of logic design where a large number of sensors deliver their Input data to be processed by an automaton or in pattern recognition and diagnostics in medicine and engineering where a sequence of code words is to be transformed into the sequence of test patterns artificial intelligence information security such as information authentication as well as data encryption A common feature of those problem is the disproportion between the total number of minterms existing for the given number of input variables and the number of really used minterms for which the output value is defined It is impossible to solve these systems using trivial methods based on scanning Boolean space of variables and checking its elements one by one to reveal the roots between them Hence an efficient synthesis method whose ~me and memory complexity will be acceptable even for large dimension problems is desirablj

Since the early days of designing digital circuits simplification has already been justified to be an effective method in reducing cost of circuits It has now become an essential design process Most simplification algorithms regardless of exhaustive or non-exhaustive approach employ a set of simplification rules and apply them repetitively onto a given Boolean function to achieve simplification The results of simplification may not be unique if the set of simplification rules are different Hence the quality of results is very much dependent on the set of simplification rules employed by the algorithm Furthermore the speed to achieve optimal simplification varies according to the set of simpl ification rules employed

A recent research on simplification rules reveals that the existing simplification rules works on two or three product terms of the given Boolean Functions at each application of the rules Some newer algorithms employ one or two simplification rules that work on more product terms The introduction of these simplification rules has a profound impact on the speed to reach optimal simplification However the effect on the quality result has not been satisfactory studied This research fmding has broken new ground in the study of simplification of Boolean functions

(ThiS researc~ studies the definition c~aracteristics and implementation of a simplification algonthm onglnally presented by Petr Fiser Jan Hlavieka It is suitable for Boolean functions whose values are defined only for a small part of their range They were programmed in Visual C++ 6 and the extensive experimen~ results which were conducted with a set of standard LGSynth93 benchmarks are diSCUSSed)

iv

Pemudahan fungsi Booleal wujud antara algebra atau berasingan yang akan men persamaan dan kesulitan n khusus dan ringkas keranl fizikal dan penyambungar menggunakan komponen el

Fungsi Boolean telah digUl logic di mana sensor meng corak dan diagnosa dalam tersirat digubah kepada s~ seperti maklumat penge ketidakseimbangan di antal bilangan minterms yang be mustahak untuk menyelesl ruang anu Boolean dan sel dengan masa dan kuas diperlukan

Sejak dari permulaan era yang berkesan untuk mf rekabentuk Kebanyakan atau tidak mengaji satu s Fungsi Boolean yang dib tidak akan unik jika set keputusan amat dipengaru adalah bergantung kepada

Penyelidikan sekarang ten hanya dapat meringkaskal kali Sesetengah algorithr rum us pemudahan ini m Walau bagaimanapun k penyelidikan ini telah men

Penyelidikan ini belaja diperkenalkan oleh Petr Boolean yang nilai didef Visual C++ 6 dan sesiri benchmarks yang ditetap~

opportunities that exist of roots in separate

in a considered system functions should be

leads inevitably to a of electronic logic

electronic devices or

l8ultornaton or in pattern of code words is to

information security feature of those

existing for the given ich the output value is on scanning Boolean roots between them

will be acceptable

been justified to be _~~IHIUI design process

ve approach employ a function to achieve

of simplification rules set of simplification

optimal simplification

on more product on the speed to reach

not been satisfactory lification of Boolean

of a simplification fot Boolean functions programmed in Visual

a set of standard

ABSTRAK

Pemudahan fungsi Boolean ialah kesenian untuk menyediakan kemudahan pemudahan yang wujud antara algebra atau kemudahan untuk mengurangkan nombor akar dalam permsamaan berasingan yang akan menyebabkan pengurangan dalam anu di dalam system tertentu nombor persamaan dan kesulitan masa Semua fungsi logic dalam system yang besar perJu disusun khusus dan ringkas kerana ini pasti akan mengurangkan penggunaan sumber seperti ruang fizikal dan penyambungan litar elektronik apabiia fungsi yang sama dilaksanakan dengan menggunakan komponen elektronik yang sebenarnya

Fungsi Boolean telah digunakan sebagai model untuk banyak permasalahan seperti rekabentuk logic di mana sensor menghantar data masuk untuk dip roses oleh suatu automaton pengenalan corak dan diagnosa dalam perubatan and kejuruteraan di mana satu turutan penulisan kod yang tersirat digubah kepada satu rentetan corak ujian kecerdasan tiruan maklumat keselamatan seperti maklumat pengesahan dan data enclytion Sifat umum masalah ini ialah ketidakseimbangan di antara bilangan minterms wujud daripada bilangan input yang diberi dan bilangan minterms yang benar-benar digunakan dengan nilai output yang didefinasikan Adalah mustahak untuk menyelesaikan system ini dengan kaedah cuba-cuba berdasarkan memeriksa ruang anu Boolean dan semak unsurnya satu per satu Oleh itu kaedah sintesis yang berkesan dengan masa dan kuasa ingatan yang sesuai untuk permasalahan dimensi besar amat diperlukan

Sejak dari permulaan era rekabentuk litar digit pemudahan telah dikenalpasti sebagai kaedah yang berkesan untuk mengurangkan kos litar Sekarang ia menjadi keperJuan proses rekabentuk Kebanyakan algorithm pemudahan tidak mengendahkan pendekatan menyeluruh atau tidak mengaji satu set rumus pemudahan and menggunakannya secara berulang ke atas Fungsi Boolean yang diberikan untuk mendapat kesan ringkasan Keputusan pemudahan ini tidak akan unik jika set rumus pemudahan yang digunakan itu berbeza Oleh itu kualiti keputusan amat dipengaruhi oleh rumus pemudahan yan dikaji Selain itu ketangkasan terbaik adalah bergantung kepada rurnus pemudahan yang digunakan

Penyelidikan sekarang tentang rurnus pemudahan menunjukkan rurnus pemudahan yang wujud hanya dapat meringkaskan dua atau tiga product terms daripada setiap fungsi Boolean setiap kali Sesetengah algorithm yang baru dapat meringksakan lebih product terms Pengenalan rumus pemudahan ini mempunyai kesan yang mendalam ke atas ketangkasan pemudahan Walau bagaimanapun kesan ke atas kualiti keputusan belum memuaskan Kesimpulan penyelidikan ini telah membuka scpe bam penyelidikan

Penyelidikan ini belajar defmasi corak and pelaksanaan algorithm pemudahan yang diperkenalkan oleh Petr Fiser dan jan Hlavieka Ini terutamanya bersesuaian dengan Fungsi Boolean yang nilai didefinasikan untuk jarak yang keci Algorithm ini diprogramkan dengan Visual C++ 6 dan sesiri keputusan eksperimen yang dijalankan dengan satu set LGSynth93 benchmarks yang ditetapkan akan dibincangkan

v

I

2 LITERATURE NTABLE OF CONTENTS

DEDICATION

ACKNOWLEDGEMENT

ABSTRACT

ABSTRAK

T ABLE OF CONTENTS

LIST OF FIGURES

LIST 0 F TABLES

LIST OF ABBREVIATION

CHAPTER

1 INTRODUCTION

J1 Introduction

12 History of Digital System Designs

13 Digital Designs Concept

14 Digital and The Real World

15 The Importance of Digital System

16 Overview of Modem Design Process

17 Boolean Functions Problem Statement

18 Objectives of the Research

19 Research Methodology

110 Thesis Structure

21 Rltview 0

Page 22 Truth Tal

11 23 Algebraic

iii 24 Kamaugt

iv 25 Justificati

v 26 Simplific

vi 27 Algebrai(

x 28 Kamaugt

xii 28 1 Dont Cal

29 Minimizi

210 Quine-M

2101 Quine-M

3 BOOLEAN MIN

2

3

4

5

6

8

8

9

9

31

32

321

322

33

34

35

36

361

37

Introduct

ESPRES

Cornman

ESPRES

Main fea

Problem

Basic Pri

Coveragl

Imrnedia

Iterative

38 Impliclll1

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

-llpoundrt _1 nt ~t Ak d~lr~ UrTrEbull~D MALAY) SktAWIili

-1- l ~-- S S~ f~an

SIMPLIFICATION OF BOOLEAN FUNCTION BASED ON SIMPLIFICATION RULES

PKHIDMAT MAKLUMAT AKADEMIK UNIMAS

1111111111111111111111111 1000121814

CHIN KUI FERN

A thesis submitted in full fulfillment of the requirements for the degree of

Master of Engneering

Faculty of Engineering UNIVERSITI MALAYSIA SARAWAK

2003

ACKNOWLEDGEMENT

First and foremost thanks to god for enabling the author to complete and achieve the objectives of lhis research Also the author is deeply indebted to the research supervisor Associate Professor Dr Mohamad Kadim Suaidi whose encouragement guidance and advice has helped the author in many ways for making this research a success

Profound appreciation must also be expressed to the lab assistant especially to Encik Wan Abu Bakar and Encik Zakaria Bin Idris for letting the author to use a few computers and some development tools essential for the study and simulation work Their helps and support in times of troubles and difficulties is very much appreciated

The author also would like to express his special thanks to the University of Malaysia Sarawak (UNIMAS) and National Science Fellowship for their sponsorships

Last but not least thanks to authors family dearest colleague and friends for their constructive suggestion encouragement patient and who have helped the author in their own ways which enable me to see this thesis through to completion

iii

i

ABSTRACT

(BOIean function simplification i~ the art of ~x~loiting simplification opp~rtunities that exist within that algebra or greatly facilitated by preliminary reducing the number of roots in separate equations that in its tum leads to decreasing the number of variables in a considered system the number of equations and time complexity Any large systems of logical functions should be expressed in as simple as possible through generalization because this leads inevitably to a reduced usage of resources such as the physical space and connectivity of electronic logic circuits when that same function is implemented physically using actual electronic devices or componen

( Boolean functions are used as mo~els for many different problems of logic design where a large number of sensors deliver their Input data to be processed by an automaton or in pattern recognition and diagnostics in medicine and engineering where a sequence of code words is to be transformed into the sequence of test patterns artificial intelligence information security such as information authentication as well as data encryption A common feature of those problem is the disproportion between the total number of minterms existing for the given number of input variables and the number of really used minterms for which the output value is defined It is impossible to solve these systems using trivial methods based on scanning Boolean space of variables and checking its elements one by one to reveal the roots between them Hence an efficient synthesis method whose ~me and memory complexity will be acceptable even for large dimension problems is desirablj

Since the early days of designing digital circuits simplification has already been justified to be an effective method in reducing cost of circuits It has now become an essential design process Most simplification algorithms regardless of exhaustive or non-exhaustive approach employ a set of simplification rules and apply them repetitively onto a given Boolean function to achieve simplification The results of simplification may not be unique if the set of simplification rules are different Hence the quality of results is very much dependent on the set of simplification rules employed by the algorithm Furthermore the speed to achieve optimal simplification varies according to the set of simpl ification rules employed

A recent research on simplification rules reveals that the existing simplification rules works on two or three product terms of the given Boolean Functions at each application of the rules Some newer algorithms employ one or two simplification rules that work on more product terms The introduction of these simplification rules has a profound impact on the speed to reach optimal simplification However the effect on the quality result has not been satisfactory studied This research fmding has broken new ground in the study of simplification of Boolean functions

(ThiS researc~ studies the definition c~aracteristics and implementation of a simplification algonthm onglnally presented by Petr Fiser Jan Hlavieka It is suitable for Boolean functions whose values are defined only for a small part of their range They were programmed in Visual C++ 6 and the extensive experimen~ results which were conducted with a set of standard LGSynth93 benchmarks are diSCUSSed)

iv

Pemudahan fungsi Booleal wujud antara algebra atau berasingan yang akan men persamaan dan kesulitan n khusus dan ringkas keranl fizikal dan penyambungar menggunakan komponen el

Fungsi Boolean telah digUl logic di mana sensor meng corak dan diagnosa dalam tersirat digubah kepada s~ seperti maklumat penge ketidakseimbangan di antal bilangan minterms yang be mustahak untuk menyelesl ruang anu Boolean dan sel dengan masa dan kuas diperlukan

Sejak dari permulaan era yang berkesan untuk mf rekabentuk Kebanyakan atau tidak mengaji satu s Fungsi Boolean yang dib tidak akan unik jika set keputusan amat dipengaru adalah bergantung kepada

Penyelidikan sekarang ten hanya dapat meringkaskal kali Sesetengah algorithr rum us pemudahan ini m Walau bagaimanapun k penyelidikan ini telah men

Penyelidikan ini belaja diperkenalkan oleh Petr Boolean yang nilai didef Visual C++ 6 dan sesiri benchmarks yang ditetap~

opportunities that exist of roots in separate

in a considered system functions should be

leads inevitably to a of electronic logic

electronic devices or

l8ultornaton or in pattern of code words is to

information security feature of those

existing for the given ich the output value is on scanning Boolean roots between them

will be acceptable

been justified to be _~~IHIUI design process

ve approach employ a function to achieve

of simplification rules set of simplification

optimal simplification

on more product on the speed to reach

not been satisfactory lification of Boolean

of a simplification fot Boolean functions programmed in Visual

a set of standard

ABSTRAK

Pemudahan fungsi Boolean ialah kesenian untuk menyediakan kemudahan pemudahan yang wujud antara algebra atau kemudahan untuk mengurangkan nombor akar dalam permsamaan berasingan yang akan menyebabkan pengurangan dalam anu di dalam system tertentu nombor persamaan dan kesulitan masa Semua fungsi logic dalam system yang besar perJu disusun khusus dan ringkas kerana ini pasti akan mengurangkan penggunaan sumber seperti ruang fizikal dan penyambungan litar elektronik apabiia fungsi yang sama dilaksanakan dengan menggunakan komponen elektronik yang sebenarnya

Fungsi Boolean telah digunakan sebagai model untuk banyak permasalahan seperti rekabentuk logic di mana sensor menghantar data masuk untuk dip roses oleh suatu automaton pengenalan corak dan diagnosa dalam perubatan and kejuruteraan di mana satu turutan penulisan kod yang tersirat digubah kepada satu rentetan corak ujian kecerdasan tiruan maklumat keselamatan seperti maklumat pengesahan dan data enclytion Sifat umum masalah ini ialah ketidakseimbangan di antara bilangan minterms wujud daripada bilangan input yang diberi dan bilangan minterms yang benar-benar digunakan dengan nilai output yang didefinasikan Adalah mustahak untuk menyelesaikan system ini dengan kaedah cuba-cuba berdasarkan memeriksa ruang anu Boolean dan semak unsurnya satu per satu Oleh itu kaedah sintesis yang berkesan dengan masa dan kuasa ingatan yang sesuai untuk permasalahan dimensi besar amat diperlukan

Sejak dari permulaan era rekabentuk litar digit pemudahan telah dikenalpasti sebagai kaedah yang berkesan untuk mengurangkan kos litar Sekarang ia menjadi keperJuan proses rekabentuk Kebanyakan algorithm pemudahan tidak mengendahkan pendekatan menyeluruh atau tidak mengaji satu set rumus pemudahan and menggunakannya secara berulang ke atas Fungsi Boolean yang diberikan untuk mendapat kesan ringkasan Keputusan pemudahan ini tidak akan unik jika set rumus pemudahan yang digunakan itu berbeza Oleh itu kualiti keputusan amat dipengaruhi oleh rumus pemudahan yan dikaji Selain itu ketangkasan terbaik adalah bergantung kepada rurnus pemudahan yang digunakan

Penyelidikan sekarang tentang rurnus pemudahan menunjukkan rurnus pemudahan yang wujud hanya dapat meringkaskan dua atau tiga product terms daripada setiap fungsi Boolean setiap kali Sesetengah algorithm yang baru dapat meringksakan lebih product terms Pengenalan rumus pemudahan ini mempunyai kesan yang mendalam ke atas ketangkasan pemudahan Walau bagaimanapun kesan ke atas kualiti keputusan belum memuaskan Kesimpulan penyelidikan ini telah membuka scpe bam penyelidikan

Penyelidikan ini belajar defmasi corak and pelaksanaan algorithm pemudahan yang diperkenalkan oleh Petr Fiser dan jan Hlavieka Ini terutamanya bersesuaian dengan Fungsi Boolean yang nilai didefinasikan untuk jarak yang keci Algorithm ini diprogramkan dengan Visual C++ 6 dan sesiri keputusan eksperimen yang dijalankan dengan satu set LGSynth93 benchmarks yang ditetapkan akan dibincangkan

v

I

2 LITERATURE NTABLE OF CONTENTS

DEDICATION

ACKNOWLEDGEMENT

ABSTRACT

ABSTRAK

T ABLE OF CONTENTS

LIST OF FIGURES

LIST 0 F TABLES

LIST OF ABBREVIATION

CHAPTER

1 INTRODUCTION

J1 Introduction

12 History of Digital System Designs

13 Digital Designs Concept

14 Digital and The Real World

15 The Importance of Digital System

16 Overview of Modem Design Process

17 Boolean Functions Problem Statement

18 Objectives of the Research

19 Research Methodology

110 Thesis Structure

21 Rltview 0

Page 22 Truth Tal

11 23 Algebraic

iii 24 Kamaugt

iv 25 Justificati

v 26 Simplific

vi 27 Algebrai(

x 28 Kamaugt

xii 28 1 Dont Cal

29 Minimizi

210 Quine-M

2101 Quine-M

3 BOOLEAN MIN

2

3

4

5

6

8

8

9

9

31

32

321

322

33

34

35

36

361

37

Introduct

ESPRES

Cornman

ESPRES

Main fea

Problem

Basic Pri

Coveragl

Imrnedia

Iterative

38 Impliclll1

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

ACKNOWLEDGEMENT

First and foremost thanks to god for enabling the author to complete and achieve the objectives of lhis research Also the author is deeply indebted to the research supervisor Associate Professor Dr Mohamad Kadim Suaidi whose encouragement guidance and advice has helped the author in many ways for making this research a success

Profound appreciation must also be expressed to the lab assistant especially to Encik Wan Abu Bakar and Encik Zakaria Bin Idris for letting the author to use a few computers and some development tools essential for the study and simulation work Their helps and support in times of troubles and difficulties is very much appreciated

The author also would like to express his special thanks to the University of Malaysia Sarawak (UNIMAS) and National Science Fellowship for their sponsorships

Last but not least thanks to authors family dearest colleague and friends for their constructive suggestion encouragement patient and who have helped the author in their own ways which enable me to see this thesis through to completion

iii

i

ABSTRACT

(BOIean function simplification i~ the art of ~x~loiting simplification opp~rtunities that exist within that algebra or greatly facilitated by preliminary reducing the number of roots in separate equations that in its tum leads to decreasing the number of variables in a considered system the number of equations and time complexity Any large systems of logical functions should be expressed in as simple as possible through generalization because this leads inevitably to a reduced usage of resources such as the physical space and connectivity of electronic logic circuits when that same function is implemented physically using actual electronic devices or componen

( Boolean functions are used as mo~els for many different problems of logic design where a large number of sensors deliver their Input data to be processed by an automaton or in pattern recognition and diagnostics in medicine and engineering where a sequence of code words is to be transformed into the sequence of test patterns artificial intelligence information security such as information authentication as well as data encryption A common feature of those problem is the disproportion between the total number of minterms existing for the given number of input variables and the number of really used minterms for which the output value is defined It is impossible to solve these systems using trivial methods based on scanning Boolean space of variables and checking its elements one by one to reveal the roots between them Hence an efficient synthesis method whose ~me and memory complexity will be acceptable even for large dimension problems is desirablj

Since the early days of designing digital circuits simplification has already been justified to be an effective method in reducing cost of circuits It has now become an essential design process Most simplification algorithms regardless of exhaustive or non-exhaustive approach employ a set of simplification rules and apply them repetitively onto a given Boolean function to achieve simplification The results of simplification may not be unique if the set of simplification rules are different Hence the quality of results is very much dependent on the set of simplification rules employed by the algorithm Furthermore the speed to achieve optimal simplification varies according to the set of simpl ification rules employed

A recent research on simplification rules reveals that the existing simplification rules works on two or three product terms of the given Boolean Functions at each application of the rules Some newer algorithms employ one or two simplification rules that work on more product terms The introduction of these simplification rules has a profound impact on the speed to reach optimal simplification However the effect on the quality result has not been satisfactory studied This research fmding has broken new ground in the study of simplification of Boolean functions

(ThiS researc~ studies the definition c~aracteristics and implementation of a simplification algonthm onglnally presented by Petr Fiser Jan Hlavieka It is suitable for Boolean functions whose values are defined only for a small part of their range They were programmed in Visual C++ 6 and the extensive experimen~ results which were conducted with a set of standard LGSynth93 benchmarks are diSCUSSed)

iv

Pemudahan fungsi Booleal wujud antara algebra atau berasingan yang akan men persamaan dan kesulitan n khusus dan ringkas keranl fizikal dan penyambungar menggunakan komponen el

Fungsi Boolean telah digUl logic di mana sensor meng corak dan diagnosa dalam tersirat digubah kepada s~ seperti maklumat penge ketidakseimbangan di antal bilangan minterms yang be mustahak untuk menyelesl ruang anu Boolean dan sel dengan masa dan kuas diperlukan

Sejak dari permulaan era yang berkesan untuk mf rekabentuk Kebanyakan atau tidak mengaji satu s Fungsi Boolean yang dib tidak akan unik jika set keputusan amat dipengaru adalah bergantung kepada

Penyelidikan sekarang ten hanya dapat meringkaskal kali Sesetengah algorithr rum us pemudahan ini m Walau bagaimanapun k penyelidikan ini telah men

Penyelidikan ini belaja diperkenalkan oleh Petr Boolean yang nilai didef Visual C++ 6 dan sesiri benchmarks yang ditetap~

opportunities that exist of roots in separate

in a considered system functions should be

leads inevitably to a of electronic logic

electronic devices or

l8ultornaton or in pattern of code words is to

information security feature of those

existing for the given ich the output value is on scanning Boolean roots between them

will be acceptable

been justified to be _~~IHIUI design process

ve approach employ a function to achieve

of simplification rules set of simplification

optimal simplification

on more product on the speed to reach

not been satisfactory lification of Boolean

of a simplification fot Boolean functions programmed in Visual

a set of standard

ABSTRAK

Pemudahan fungsi Boolean ialah kesenian untuk menyediakan kemudahan pemudahan yang wujud antara algebra atau kemudahan untuk mengurangkan nombor akar dalam permsamaan berasingan yang akan menyebabkan pengurangan dalam anu di dalam system tertentu nombor persamaan dan kesulitan masa Semua fungsi logic dalam system yang besar perJu disusun khusus dan ringkas kerana ini pasti akan mengurangkan penggunaan sumber seperti ruang fizikal dan penyambungan litar elektronik apabiia fungsi yang sama dilaksanakan dengan menggunakan komponen elektronik yang sebenarnya

Fungsi Boolean telah digunakan sebagai model untuk banyak permasalahan seperti rekabentuk logic di mana sensor menghantar data masuk untuk dip roses oleh suatu automaton pengenalan corak dan diagnosa dalam perubatan and kejuruteraan di mana satu turutan penulisan kod yang tersirat digubah kepada satu rentetan corak ujian kecerdasan tiruan maklumat keselamatan seperti maklumat pengesahan dan data enclytion Sifat umum masalah ini ialah ketidakseimbangan di antara bilangan minterms wujud daripada bilangan input yang diberi dan bilangan minterms yang benar-benar digunakan dengan nilai output yang didefinasikan Adalah mustahak untuk menyelesaikan system ini dengan kaedah cuba-cuba berdasarkan memeriksa ruang anu Boolean dan semak unsurnya satu per satu Oleh itu kaedah sintesis yang berkesan dengan masa dan kuasa ingatan yang sesuai untuk permasalahan dimensi besar amat diperlukan

Sejak dari permulaan era rekabentuk litar digit pemudahan telah dikenalpasti sebagai kaedah yang berkesan untuk mengurangkan kos litar Sekarang ia menjadi keperJuan proses rekabentuk Kebanyakan algorithm pemudahan tidak mengendahkan pendekatan menyeluruh atau tidak mengaji satu set rumus pemudahan and menggunakannya secara berulang ke atas Fungsi Boolean yang diberikan untuk mendapat kesan ringkasan Keputusan pemudahan ini tidak akan unik jika set rumus pemudahan yang digunakan itu berbeza Oleh itu kualiti keputusan amat dipengaruhi oleh rumus pemudahan yan dikaji Selain itu ketangkasan terbaik adalah bergantung kepada rurnus pemudahan yang digunakan

Penyelidikan sekarang tentang rurnus pemudahan menunjukkan rurnus pemudahan yang wujud hanya dapat meringkaskan dua atau tiga product terms daripada setiap fungsi Boolean setiap kali Sesetengah algorithm yang baru dapat meringksakan lebih product terms Pengenalan rumus pemudahan ini mempunyai kesan yang mendalam ke atas ketangkasan pemudahan Walau bagaimanapun kesan ke atas kualiti keputusan belum memuaskan Kesimpulan penyelidikan ini telah membuka scpe bam penyelidikan

Penyelidikan ini belajar defmasi corak and pelaksanaan algorithm pemudahan yang diperkenalkan oleh Petr Fiser dan jan Hlavieka Ini terutamanya bersesuaian dengan Fungsi Boolean yang nilai didefinasikan untuk jarak yang keci Algorithm ini diprogramkan dengan Visual C++ 6 dan sesiri keputusan eksperimen yang dijalankan dengan satu set LGSynth93 benchmarks yang ditetapkan akan dibincangkan

v

I

2 LITERATURE NTABLE OF CONTENTS

DEDICATION

ACKNOWLEDGEMENT

ABSTRACT

ABSTRAK

T ABLE OF CONTENTS

LIST OF FIGURES

LIST 0 F TABLES

LIST OF ABBREVIATION

CHAPTER

1 INTRODUCTION

J1 Introduction

12 History of Digital System Designs

13 Digital Designs Concept

14 Digital and The Real World

15 The Importance of Digital System

16 Overview of Modem Design Process

17 Boolean Functions Problem Statement

18 Objectives of the Research

19 Research Methodology

110 Thesis Structure

21 Rltview 0

Page 22 Truth Tal

11 23 Algebraic

iii 24 Kamaugt

iv 25 Justificati

v 26 Simplific

vi 27 Algebrai(

x 28 Kamaugt

xii 28 1 Dont Cal

29 Minimizi

210 Quine-M

2101 Quine-M

3 BOOLEAN MIN

2

3

4

5

6

8

8

9

9

31

32

321

322

33

34

35

36

361

37

Introduct

ESPRES

Cornman

ESPRES

Main fea

Problem

Basic Pri

Coveragl

Imrnedia

Iterative

38 Impliclll1

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

i

ABSTRACT

(BOIean function simplification i~ the art of ~x~loiting simplification opp~rtunities that exist within that algebra or greatly facilitated by preliminary reducing the number of roots in separate equations that in its tum leads to decreasing the number of variables in a considered system the number of equations and time complexity Any large systems of logical functions should be expressed in as simple as possible through generalization because this leads inevitably to a reduced usage of resources such as the physical space and connectivity of electronic logic circuits when that same function is implemented physically using actual electronic devices or componen

( Boolean functions are used as mo~els for many different problems of logic design where a large number of sensors deliver their Input data to be processed by an automaton or in pattern recognition and diagnostics in medicine and engineering where a sequence of code words is to be transformed into the sequence of test patterns artificial intelligence information security such as information authentication as well as data encryption A common feature of those problem is the disproportion between the total number of minterms existing for the given number of input variables and the number of really used minterms for which the output value is defined It is impossible to solve these systems using trivial methods based on scanning Boolean space of variables and checking its elements one by one to reveal the roots between them Hence an efficient synthesis method whose ~me and memory complexity will be acceptable even for large dimension problems is desirablj

Since the early days of designing digital circuits simplification has already been justified to be an effective method in reducing cost of circuits It has now become an essential design process Most simplification algorithms regardless of exhaustive or non-exhaustive approach employ a set of simplification rules and apply them repetitively onto a given Boolean function to achieve simplification The results of simplification may not be unique if the set of simplification rules are different Hence the quality of results is very much dependent on the set of simplification rules employed by the algorithm Furthermore the speed to achieve optimal simplification varies according to the set of simpl ification rules employed

A recent research on simplification rules reveals that the existing simplification rules works on two or three product terms of the given Boolean Functions at each application of the rules Some newer algorithms employ one or two simplification rules that work on more product terms The introduction of these simplification rules has a profound impact on the speed to reach optimal simplification However the effect on the quality result has not been satisfactory studied This research fmding has broken new ground in the study of simplification of Boolean functions

(ThiS researc~ studies the definition c~aracteristics and implementation of a simplification algonthm onglnally presented by Petr Fiser Jan Hlavieka It is suitable for Boolean functions whose values are defined only for a small part of their range They were programmed in Visual C++ 6 and the extensive experimen~ results which were conducted with a set of standard LGSynth93 benchmarks are diSCUSSed)

iv

Pemudahan fungsi Booleal wujud antara algebra atau berasingan yang akan men persamaan dan kesulitan n khusus dan ringkas keranl fizikal dan penyambungar menggunakan komponen el

Fungsi Boolean telah digUl logic di mana sensor meng corak dan diagnosa dalam tersirat digubah kepada s~ seperti maklumat penge ketidakseimbangan di antal bilangan minterms yang be mustahak untuk menyelesl ruang anu Boolean dan sel dengan masa dan kuas diperlukan

Sejak dari permulaan era yang berkesan untuk mf rekabentuk Kebanyakan atau tidak mengaji satu s Fungsi Boolean yang dib tidak akan unik jika set keputusan amat dipengaru adalah bergantung kepada

Penyelidikan sekarang ten hanya dapat meringkaskal kali Sesetengah algorithr rum us pemudahan ini m Walau bagaimanapun k penyelidikan ini telah men

Penyelidikan ini belaja diperkenalkan oleh Petr Boolean yang nilai didef Visual C++ 6 dan sesiri benchmarks yang ditetap~

opportunities that exist of roots in separate

in a considered system functions should be

leads inevitably to a of electronic logic

electronic devices or

l8ultornaton or in pattern of code words is to

information security feature of those

existing for the given ich the output value is on scanning Boolean roots between them

will be acceptable

been justified to be _~~IHIUI design process

ve approach employ a function to achieve

of simplification rules set of simplification

optimal simplification

on more product on the speed to reach

not been satisfactory lification of Boolean

of a simplification fot Boolean functions programmed in Visual

a set of standard

ABSTRAK

Pemudahan fungsi Boolean ialah kesenian untuk menyediakan kemudahan pemudahan yang wujud antara algebra atau kemudahan untuk mengurangkan nombor akar dalam permsamaan berasingan yang akan menyebabkan pengurangan dalam anu di dalam system tertentu nombor persamaan dan kesulitan masa Semua fungsi logic dalam system yang besar perJu disusun khusus dan ringkas kerana ini pasti akan mengurangkan penggunaan sumber seperti ruang fizikal dan penyambungan litar elektronik apabiia fungsi yang sama dilaksanakan dengan menggunakan komponen elektronik yang sebenarnya

Fungsi Boolean telah digunakan sebagai model untuk banyak permasalahan seperti rekabentuk logic di mana sensor menghantar data masuk untuk dip roses oleh suatu automaton pengenalan corak dan diagnosa dalam perubatan and kejuruteraan di mana satu turutan penulisan kod yang tersirat digubah kepada satu rentetan corak ujian kecerdasan tiruan maklumat keselamatan seperti maklumat pengesahan dan data enclytion Sifat umum masalah ini ialah ketidakseimbangan di antara bilangan minterms wujud daripada bilangan input yang diberi dan bilangan minterms yang benar-benar digunakan dengan nilai output yang didefinasikan Adalah mustahak untuk menyelesaikan system ini dengan kaedah cuba-cuba berdasarkan memeriksa ruang anu Boolean dan semak unsurnya satu per satu Oleh itu kaedah sintesis yang berkesan dengan masa dan kuasa ingatan yang sesuai untuk permasalahan dimensi besar amat diperlukan

Sejak dari permulaan era rekabentuk litar digit pemudahan telah dikenalpasti sebagai kaedah yang berkesan untuk mengurangkan kos litar Sekarang ia menjadi keperJuan proses rekabentuk Kebanyakan algorithm pemudahan tidak mengendahkan pendekatan menyeluruh atau tidak mengaji satu set rumus pemudahan and menggunakannya secara berulang ke atas Fungsi Boolean yang diberikan untuk mendapat kesan ringkasan Keputusan pemudahan ini tidak akan unik jika set rumus pemudahan yang digunakan itu berbeza Oleh itu kualiti keputusan amat dipengaruhi oleh rumus pemudahan yan dikaji Selain itu ketangkasan terbaik adalah bergantung kepada rurnus pemudahan yang digunakan

Penyelidikan sekarang tentang rurnus pemudahan menunjukkan rurnus pemudahan yang wujud hanya dapat meringkaskan dua atau tiga product terms daripada setiap fungsi Boolean setiap kali Sesetengah algorithm yang baru dapat meringksakan lebih product terms Pengenalan rumus pemudahan ini mempunyai kesan yang mendalam ke atas ketangkasan pemudahan Walau bagaimanapun kesan ke atas kualiti keputusan belum memuaskan Kesimpulan penyelidikan ini telah membuka scpe bam penyelidikan

Penyelidikan ini belajar defmasi corak and pelaksanaan algorithm pemudahan yang diperkenalkan oleh Petr Fiser dan jan Hlavieka Ini terutamanya bersesuaian dengan Fungsi Boolean yang nilai didefinasikan untuk jarak yang keci Algorithm ini diprogramkan dengan Visual C++ 6 dan sesiri keputusan eksperimen yang dijalankan dengan satu set LGSynth93 benchmarks yang ditetapkan akan dibincangkan

v

I

2 LITERATURE NTABLE OF CONTENTS

DEDICATION

ACKNOWLEDGEMENT

ABSTRACT

ABSTRAK

T ABLE OF CONTENTS

LIST OF FIGURES

LIST 0 F TABLES

LIST OF ABBREVIATION

CHAPTER

1 INTRODUCTION

J1 Introduction

12 History of Digital System Designs

13 Digital Designs Concept

14 Digital and The Real World

15 The Importance of Digital System

16 Overview of Modem Design Process

17 Boolean Functions Problem Statement

18 Objectives of the Research

19 Research Methodology

110 Thesis Structure

21 Rltview 0

Page 22 Truth Tal

11 23 Algebraic

iii 24 Kamaugt

iv 25 Justificati

v 26 Simplific

vi 27 Algebrai(

x 28 Kamaugt

xii 28 1 Dont Cal

29 Minimizi

210 Quine-M

2101 Quine-M

3 BOOLEAN MIN

2

3

4

5

6

8

8

9

9

31

32

321

322

33

34

35

36

361

37

Introduct

ESPRES

Cornman

ESPRES

Main fea

Problem

Basic Pri

Coveragl

Imrnedia

Iterative

38 Impliclll1

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

opportunities that exist of roots in separate

in a considered system functions should be

leads inevitably to a of electronic logic

electronic devices or

l8ultornaton or in pattern of code words is to

information security feature of those

existing for the given ich the output value is on scanning Boolean roots between them

will be acceptable

been justified to be _~~IHIUI design process

ve approach employ a function to achieve

of simplification rules set of simplification

optimal simplification

on more product on the speed to reach

not been satisfactory lification of Boolean

of a simplification fot Boolean functions programmed in Visual

a set of standard

ABSTRAK

Pemudahan fungsi Boolean ialah kesenian untuk menyediakan kemudahan pemudahan yang wujud antara algebra atau kemudahan untuk mengurangkan nombor akar dalam permsamaan berasingan yang akan menyebabkan pengurangan dalam anu di dalam system tertentu nombor persamaan dan kesulitan masa Semua fungsi logic dalam system yang besar perJu disusun khusus dan ringkas kerana ini pasti akan mengurangkan penggunaan sumber seperti ruang fizikal dan penyambungan litar elektronik apabiia fungsi yang sama dilaksanakan dengan menggunakan komponen elektronik yang sebenarnya

Fungsi Boolean telah digunakan sebagai model untuk banyak permasalahan seperti rekabentuk logic di mana sensor menghantar data masuk untuk dip roses oleh suatu automaton pengenalan corak dan diagnosa dalam perubatan and kejuruteraan di mana satu turutan penulisan kod yang tersirat digubah kepada satu rentetan corak ujian kecerdasan tiruan maklumat keselamatan seperti maklumat pengesahan dan data enclytion Sifat umum masalah ini ialah ketidakseimbangan di antara bilangan minterms wujud daripada bilangan input yang diberi dan bilangan minterms yang benar-benar digunakan dengan nilai output yang didefinasikan Adalah mustahak untuk menyelesaikan system ini dengan kaedah cuba-cuba berdasarkan memeriksa ruang anu Boolean dan semak unsurnya satu per satu Oleh itu kaedah sintesis yang berkesan dengan masa dan kuasa ingatan yang sesuai untuk permasalahan dimensi besar amat diperlukan

Sejak dari permulaan era rekabentuk litar digit pemudahan telah dikenalpasti sebagai kaedah yang berkesan untuk mengurangkan kos litar Sekarang ia menjadi keperJuan proses rekabentuk Kebanyakan algorithm pemudahan tidak mengendahkan pendekatan menyeluruh atau tidak mengaji satu set rumus pemudahan and menggunakannya secara berulang ke atas Fungsi Boolean yang diberikan untuk mendapat kesan ringkasan Keputusan pemudahan ini tidak akan unik jika set rumus pemudahan yang digunakan itu berbeza Oleh itu kualiti keputusan amat dipengaruhi oleh rumus pemudahan yan dikaji Selain itu ketangkasan terbaik adalah bergantung kepada rurnus pemudahan yang digunakan

Penyelidikan sekarang tentang rurnus pemudahan menunjukkan rurnus pemudahan yang wujud hanya dapat meringkaskan dua atau tiga product terms daripada setiap fungsi Boolean setiap kali Sesetengah algorithm yang baru dapat meringksakan lebih product terms Pengenalan rumus pemudahan ini mempunyai kesan yang mendalam ke atas ketangkasan pemudahan Walau bagaimanapun kesan ke atas kualiti keputusan belum memuaskan Kesimpulan penyelidikan ini telah membuka scpe bam penyelidikan

Penyelidikan ini belajar defmasi corak and pelaksanaan algorithm pemudahan yang diperkenalkan oleh Petr Fiser dan jan Hlavieka Ini terutamanya bersesuaian dengan Fungsi Boolean yang nilai didefinasikan untuk jarak yang keci Algorithm ini diprogramkan dengan Visual C++ 6 dan sesiri keputusan eksperimen yang dijalankan dengan satu set LGSynth93 benchmarks yang ditetapkan akan dibincangkan

v

I

2 LITERATURE NTABLE OF CONTENTS

DEDICATION

ACKNOWLEDGEMENT

ABSTRACT

ABSTRAK

T ABLE OF CONTENTS

LIST OF FIGURES

LIST 0 F TABLES

LIST OF ABBREVIATION

CHAPTER

1 INTRODUCTION

J1 Introduction

12 History of Digital System Designs

13 Digital Designs Concept

14 Digital and The Real World

15 The Importance of Digital System

16 Overview of Modem Design Process

17 Boolean Functions Problem Statement

18 Objectives of the Research

19 Research Methodology

110 Thesis Structure

21 Rltview 0

Page 22 Truth Tal

11 23 Algebraic

iii 24 Kamaugt

iv 25 Justificati

v 26 Simplific

vi 27 Algebrai(

x 28 Kamaugt

xii 28 1 Dont Cal

29 Minimizi

210 Quine-M

2101 Quine-M

3 BOOLEAN MIN

2

3

4

5

6

8

8

9

9

31

32

321

322

33

34

35

36

361

37

Introduct

ESPRES

Cornman

ESPRES

Main fea

Problem

Basic Pri

Coveragl

Imrnedia

Iterative

38 Impliclll1

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

I

2 LITERATURE NTABLE OF CONTENTS

DEDICATION

ACKNOWLEDGEMENT

ABSTRACT

ABSTRAK

T ABLE OF CONTENTS

LIST OF FIGURES

LIST 0 F TABLES

LIST OF ABBREVIATION

CHAPTER

1 INTRODUCTION

J1 Introduction

12 History of Digital System Designs

13 Digital Designs Concept

14 Digital and The Real World

15 The Importance of Digital System

16 Overview of Modem Design Process

17 Boolean Functions Problem Statement

18 Objectives of the Research

19 Research Methodology

110 Thesis Structure

21 Rltview 0

Page 22 Truth Tal

11 23 Algebraic

iii 24 Kamaugt

iv 25 Justificati

v 26 Simplific

vi 27 Algebrai(

x 28 Kamaugt

xii 28 1 Dont Cal

29 Minimizi

210 Quine-M

2101 Quine-M

3 BOOLEAN MIN

2

3

4

5

6

8

8

9

9

31

32

321

322

33

34

35

36

361

37

Introduct

ESPRES

Cornman

ESPRES

Main fea

Problem

Basic Pri

Coveragl

Imrnedia

Iterative

38 Impliclll1

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

2 LITERATURE REVIEW

21

22Page

ii 23

iii 24

IV 25

v 26

VI 27

x 28

XII 281

29

210

201

Review of Traditional Representation Techniques II

Truth Table II

Algebraic Function 13

Kamaugh Map (K-Map) 13

Justification for Logic Simplification 16

Simplification Techniques 17

Algebraic Simplification 18

Karnaugh Map Simplification 20

Dont Care Map Entries 24

Minimizing Function of More Than Six Variables 26

Quine-McCluskey Tabulation Method 27

Quine-McCluskey Using Dont care Terms 30

3 BOOLEAN MINIMIZER

31 2

32 3

321 4

322 5

33 6

34 8

35 8

36 9

361 9

37

38

Introduction 33

ESPRESSOS Program Description 34

Command Line and Keywords 35

ESPRESSO Example 38

Main features of Boolean Minimizer 39

Problem Statements 40

Basic Principles 41

Coverage-Directed Search 42

Immediate Implicant Checking 44

Iterative Minimization by BOOM system 44

Implicant Expansion 45

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

381 Checking a Literal Removal

382 Expansion Strategy

39 Solution of Covering Problem Solution

391 LCMC Cover

392 Contributive Selection

393 Contributive Removal

3 10 Output Reduction

311 PLA Format Description

3111 Keywords or Command Directives

3112 Symbols in the PLA Matrix ampTheir Logical Interpretation of a PLA

312 Illustrative Example

3121 CD-Search Example

3122 Sequential Example

4 BOOLEAN MINIMIZER SOFTW ARE DEVELOPMENT

41 Introduction

42 Implementation of Simplification Algorithm in Visual C++ 6

421 Description of the Boolean Minimizer Algorithm

43 Performance Evaluation

431 Standard Single Output LGSynth93 Benchmarks

432 Test Problems With Up to 300 Input Variables and Minterms

433 Time Complexity Evaluation for Very large Problem

44 Conclusions of Research Results

5 CONCLUSION AND RECOMMENDATION

51 Conclusions

viii

52 Recomm~45

BIBLIOGRAPHY45

APPENDIX46

46

46

46

47

47

47

48

49

49

57

61

61

63

64

65

65

67

70

71

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

45 52 Recommendation 71

45

46

46

46

46

47

47

47

ofa PLA 48

49

49

57

61

6 61

63

64

65

65

67

70

71

BIBLIOGRAPHY 73

APPENDIX 75

IX

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

LIST OF FIGURES 310 Example 6

311 Example 7

312 Example 8 Figure Description Pal

313 Example 9

l General Process Flow in Current Logic Synthesis Systems 7 314 Example I(

12 Research Methodology Flow Chart 9 315 Example I

21 Karnaugh Maps for I to 6 Variables 14 316 Example I

22 An Illustration of the MINTERMS that are logically adjacent in 2 3 15 317 Example 2

and 4 variable problems

318 Example 3 23 Example of Maps Plotted From Truth Table 16

319 Boolean M 24 The Principal Identities of Boolean Algebra 19

41 Growth of 25 Flowchart for Determining the Minimum SOP Using Karnaugh Map 22 (200-1000)

26 Kamaugh Map Simplification 23 42 Runtime G

1000)27 Karnaugh Maps Program by Russell Sasamori 23

28 A Flow Diagram Defining the Single Statement Reduction Algorithm 25

29 Mapping Example 25

210 Quine-McCluskey Program in Window Interface 29

31 ESPRESSOs Example 39

32 General Structure of Boolean Minimizer 42

33 Flowchart of Algorithm Boolean Simplification 43

34 Example of Input file in PLA format 50

35 Example 1 of Coverage Directed Search 51

36 Example 2 ofCoverage Directed Search 52

37 Example 3 of Coverage Directed Search 52

38 Example 4 of Coverage Directed Search 53

39 Example 5 ofCoverage Directed Search 53

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

3 10

311

3 12

313

7 314

9 315

14 316

adjacent in 2 3 15 317

31816

31919

41 Map 22

23 42

23

Algorithm 25

25

29

39

42

43

50

51

52

52

53

53

Example 6 of Coverage Directed Search 54

Example 7 of Coverage Directed Search 54

Example 8 of Coverage Directed Search 55

Example 9 of Coverage Directed Search 55

Example 10 of Coverage Directed Search 56

Example II of Coverage Directed Search 56

Example 1 of Sequential Search 57

Example 2 of Sequential Search 58

Example 3 of Sequential Search 59

Boolean Minimizer Program 60

Growth of Runtime As a Function of the Number of Care Mintenns 69 (200-1000)

Runtime Growth Depending on the Number of Input Variables (200- 70 1000)

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

Figure

11

21

22

23

24

25

26

41

42(a)

42(b)

43

LIST OF TABLES

Description

General process flow in current logic synthesis systems

General structure of a truth table

A 3-input variables truth table

Determine of Prime Implicants

Prime Implicant Chart

Set of four mintermsdont care terms for f=lm (131315) + ld (8910 II)

Prime Implicant Table

Runtime and Minimal Solutions for the Standard Single Output LGSynth93 Benchmarks

Comparison of the Result Quality for Problems With Input Variables (20-140)

Comparison of the Result Quality for Problems With Input Variables (180-300)

Comparison of the Runtime for Problems With Up to 1000 Input Variables and 1000 Minterms

Symbols ADC ASIC CAD CD Search CMOS CP CPLD DA DAC DC DCF DD DIDL DLL DSP ECL EPIs FPGAs HDL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI Pis PLAs

61 ROM SOP SSl TTL VLSI XLSI

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

13 35) + Id

Single Output

Input Variables

Input Variables

to 1000 Input

SYlDbols AOC ASIC CAD CD Search CMOS CP CPLO OA OAC DC DCF DO DIOL OLL OSP ECL EPIs FPGAs HOL IE ISAPI K-Map LCMC LGSynth93 benchmarks LSI LSI MSI PIs PLAs ROM SOP SSI TIL VLSI XLSI

LIST OF ABBREVIATIONS

Abbreviation Analog-to-Digital Converter Application Specific Integrated Circuit Computer Aided Design Coverage Directed Search Complementary Metal-Oxide Silicon Covering Problem Complex Programmable Logic Devices Design Automation Digital-to-Analog Converter Dont Care Disjunctive Canonical Form Decision Diagram Digital Integrated Design Language Dynamic Link Library Digital Signal Processing Emitter-Coupled Logic Essential Prime Implicants Field Programmable Gate Arrays Hardware Description Language Implicant Expansion Internet Server Application Programming Interface Karnaugh Map Least Covered Most Covering Logic Synthesis and Optimization Benchmarks Large Scale Integration Large Scale Integrated Circuits Medium Scale Integrated Circuits Prime Implicants Programmable Logic Arrays Read-Only-Memory Sum Of Product Small Scale Integrated Circuits Transistor-Transistor Logic Very Large Scale Integration Extra Large Scale Integrated Circuits

xii

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

CHAPTER 1

INTRODUCTION

11 Introduction

The field of digital system design has made great progress over the past decades From early days of simple relay switching circuits to the present time of sophisticated very large scale integration (VLSI) circuits the designing of a digital system has advanced to become a complex and multi-staged process Algorithms and techniques for representing manipulating simulating routing placing manufacturing and testing of designs are continuously introduced and modified Meanwhile the number of devices and technologies based on different logic families keep on growing As a result many design approaches have been developed which have given rise to a wide variety of possible solutions

While the design process of digital system is becoming more complex it is becoming less possible to design a system in one step using a single design tool And it is more necessary to break the design process into several stages using different design tools at each stage Such multi-staged design processes introduce the very undesired effect of requiring a system designer to learn the various design tools employed by the different stages

As each stage develops it becomes difficult for a designer to master all the tools As such design tool developers have to strive to increase the level of design automation without compromising the final solution Whereas a design automation (DA) or computer aided design (CAD) researcher can only focus hisher study on a specific area a highly automated design environment becomes less achievable Nevertheless researchers should try to keep abreast of the development of the entire design process if possible also the simulation manufacturing and testing processes (which come after the design process) so as to have a complete idea of developing an entire system

Since the early days of designing digital circuits simplification has been justified as an effective simplification technique of Boolean functions in reducing the cost of circuits It becomes an essential design process in various application of computer-aided design (CAD) such as test generation synthesis and verification The efficiency of Boolean functions simplification depends on the form of representation techniques Unfortunately the traditional methods of representation such as truth tables Kamaugh maps (K-Maps) and algebraic functions have been proven to be quite impractical This is because every increment of the Boolean function input size could yield a function with exponential representation Therefore it is costly in terms of computer time and storage space

In recent years decision diagrams (DDs) have become the most popular representation techniques employed by computer-aided-design software to represent Boolean functions Decision diagram [Akers 1978 and Bryant 1986] has advantage over the classical representation Two most distinctive advantages being its time complexity and space complexity are non-exponential ie as the input size of Boolean functions grow linearly computer time and storage space requirements of algorithms to represent and manipulate DDs do not necessarily grow exponentially (as is the case for traditional representation techniques)

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

I

12 History of Digital System Designs

A digital system is a synchronous system in which signals have a finite number of integer values and may change only at discrete instants The very basic digital design can be defined as the science of organizing arrays of simple switches into what is called a discrete system that performs transformations on two-level (binary) information in a meaningful and predictable way Certainly this is true but digital design as we know it today is much more exciting than this definition portends Digital representation and processing methods have been used for a long time but the development of digital artifacts underwent a dramatic increase with the invention of the digital computer Since then digital design underpins the creation of myriad of imaginative digital devices that surround us Extraordinary progress has been made in all these aspects making the computer indispensable in almost every aspect of modem society The development of computer technology and digital microelectronics such as hand-held calculators digital watches microprocessors microwave oven controllers and digital voltmeters in particular have made possible the cost effective production of a large variety of specialized digital systems This trend continues as new applications are replacing analogue systems but in many others they are making possible applications that did not previously exist As a consequence knowledge about the designs and use of digital systems is required in a large variety of human activities

In the late 1840s George Boole [I 849J invented a very abstract form of fundamental concepts of a two-valued (binary) system which is later called the Boolean algebra But Boolean algebra is not used until about 80 years later due to its sophistication In the late of 1930s Claude Shannon [1938] applied switching algebra onto his study of relay switching circuits Since then design methods have been pretty much standard following Booles and Shannons fundamentals with added refinements here and there as new knowledge has been discovered and more exotic logic devices have been developed tried and proven leading the way into one of the most fascinating and challenging fields of study

The theory was then extended to cover both the combinational and sequential circuits in the following one and half decades Combinational switching networks are those which depend only on the current inputs and which are without memory In sequential networks the outputs respond to both current inputs and the history of all previous inputs The system must remember the entire history of the input patterns

In the 1950s further development on the theory lead to the finite-state machine theory and then the automata theory meanwhile simplification of switching functions became an active area of research This is because of the logic gates were then very expensive Also Reed and Muller introduced Reed-Muller algebra This form of expression has now become very popular and useful in the study of AND-EXOR implementation of Boolean functions

The concept of design automation that allows larger and more complex digital system to be designed wholly by computer became popular in the early 1960s However the results obtained by these tools were not always satisfactory Therefore the computer aided design concept is then introduced This allows the designer to intervene with the computerized process Also in the 1960s Quine [1952] and McCluskey [1956] devised the tabulation method for Boolean function simplification In the late 1960s simplification became less essential because of a reduction in the cost of logic gates

2

Programmable Logic Ar desirable for implementin can be designed automat PLAs which were made Hence two-level implem synthesize switching fune level simplification again

13 Digital Designs (

Digital design as treated design of recognizable considered worthy of me digital designer in reachi attempt to standardize a the designers insight to dynamic action related aj

However if these techn designs they become nl

lend themselves very nic( to system design Digit multi-level register tran automation documentati Separation of the control hardware control imple) procedure capabilities fo down to the logic level

Generally speaking be in classifying information which can be processed ( a process of classifying information which can h False Thus the Boolean that any Boolean variab applicable to arguments really optimal This nonmiddot is generally a process of Actions It implies that tl information entities defil actions which is to be d directly related to som operation

The use of verbs such a logic message and does

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

number of integer values can be defined as the

a discrete system that oul and predictable

more exciting than have been used for a

increase with the the creation of myriad of

been made in all these of modem society The

such as hand-held and digital voltmeters variety of specialized

analogue systems but in previously exist As a

is required in a large

of fundamental concepts But Boolean algebra

late of 1930s Claude circuits Since then s and Shannons

has been discovered leading the way into one

sequential circuits in the are those which depend

networks the outputs system must remember

machine theory and then became an active area of

Also Reed and Muller very popular and

digital system to be the results obtained

aided design concept is tmiddotri middot7 ti process Also in

method for Boolean

Programmable Logic Arrays (PLAs) were introduced in the early 1970 s and became very desirable for implementing switching functions due to the fact that PLAs reduce design time and can be designed automatically An array of AND-gates and an array of OR-gates exist in the PLAs which were made possible with the advent of large-scale integration (LSI) technology Hence two-level implementation became popular The physical area requirement of PLAs to synthesize switching functions is directly linked to the size of the Boolean functions thus twoshylevel simplification again became an important area of research

13 Digital Designs Concept

Digital design as treated in the field of study relating the adaptation of Logic concepts to the design of recognizable realizable and reliable digital hardware These concepts have been considered worthy of mention because they have been found when properly applied to aid the digital designer in reaching his goals in a straightforward manner These concepts are also an attempt to standardize a logic Action description and definition for the purpose of improving the designers insight to logic design and documentation These concepts transfer the idea of a dynamic action related approach to logic thought

However if these techniques are practiced and applied to the more traditional small scale designs they become natural and easy to extend to system level design application They also lend themselves very nicely to the Digital Design Language and Programmed Logic approaches to system design Digital Integrated Design Language (DIDL) is a formal block-structured multi-level register transfer type specialized language system for use in the design design automation documentation and simulation of all digital systems including digital computers Separation of the control and the data path of a system are allowed so that either software or hardware control implementation can be employed DIDL has also macro definition and procedure capabilities for initial system specification various levels of design and simulation down to the logic level

Generally speaking being involved in digital design is dealing in logic which is a process of classifying information while information is intelligence related to ideas meanings and actions which can be processed or transformed into other forms Binary Logic or two-valued logic is a process of classifying information into two classes Traditionally binary arguments or that infonnation which can be definitely classified as two-valued have been deemed either True or False Thus the Boolean variable is unlike the algebraic variables of the field of real numbers in that any Boolean variable can take on only two values the True or False Though certainly applicable to arguments and conditions this TrueFalse classification for digital des ign is not really optimal This non-optimal classification stems from the fact that digital hardware design is generally a process of organizing hardware for the express purpose of classifying information Actions It implies that the hardware in a digital system should be 0rganized to process the input infonnation entities defined as binary input actions and in tum generate some binary output actions which is to be thought of as a dynamic process Action is the most hardware responses directly related to some physical operation or some condition resulting from a physical operation

The use of verbs such as Asserted Excited or Invoked can be used to modify as Action related logic message and does so by directing to the signal condition under which the Action is to be

3

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

l

l

performed Asserted is defined as the affirmative position of an Action related Boolean variable (mnemonic) Now if the logic operation is being performed we say that the Boolean variable is Asserted It follows that if the logic operation is not being performed we say that the Boolean variable is Not-Asserted Traditionally it is standard to use the shorthand symbols I for True and 0 for False However Is or Os are also used for numeric values (binary numbers) and as high or low voltage indicators as well

14 Digital and The Real World

In real life there are two ways of representing information analog and digital Analog signals contain all the information as a continuously varying wave - such as on an oscilloscope screen when you speak into a microphone connected to it Digital signals are a series of pulses - ons and offs or Is and Os A system that processes analogue signal is termed as analogue system and a system that processes digital signal is termed as digital system A few of these are light nuclear radiation and the electric signals governing the human nervous system which are interestingly enough most definitely discrete phenomena The use of digital practices can be a viable method for solving design problems in the real world The reasons that design problems are emphasized stems from the fact that the major areas of involvement for electrical and digital engineers are (I) the measurement (2) the control and (3) the transmission of information and energy Thus we fmd that we are continuously trying to find solutions to problems related to the measurement control and transmission of information or energy in the domain of the real world However the real world tends to have a continuous nature Because of this the discrete domain needs to the buffered in some way

In recent years systems that are capable of processing a mixture of both analogue and digital signals are increasingly popular The interdomain converter is a specialized system that converts or translates information of one domain into information of another domain For example an analogue signal can often be converted to a digital signal using analogue-to-digital converter (ADC) The processed signal can be converted back to the original form using the digital-toshyanalogue converter (DAC)

Since pure digital systems are made up of arrays of simple and reliable switches with only two positions a numerical system that already existed was adapted to serve as the tool needed for utilizing the basic concept This numerical math system called the binary system is based on the two symbols 0 and I in contrast to the decimal system which has ten symbols 0 I 2 9 We should see now that in order to use a digital system such as a digital computer for mathematical computations we must first convert our mathematical symbolisms (decimal in this case) into binary symbolisms to allow the computer to perform this mathematical operation Once this is done the inverse process must he performed to convert the binary results into a readable decimal representation

The obvious question Is digital worth all of the conversion The answer cannot be simply stated in yes or no terms but must be left to the individual and the particular situation In certain instances it may not in fact be worth the bother Such would not be the case if we were able to create and use multiple-valued logic systems to create a totally decimal machine Obviously if there were ten unique descriptors usable for our decimal computer there would be no need

to convert any infonn practically speaking bil system for some years t communicate with his IT

conversion and the diffe

15 The Importance

Digital systems are use have displaced the ear numerical and non-nume

Information processing processing task elimir representation of the pn the representation and tri

The finite number of va two values (binary sigm binary as a result the switches with two states

Digital signals are quit operating temperature significant portions of a separated so that small better dynamic range T be made more accurate Thus it is more reliab susceptible to variations

The advance of microelt of extremely complex d are built as integrated cil to select among differ~ hardware

Digital technology ha computers to small persl injected in a new autom large systems in a bank last 10 years the grov microprocessors being ~ used by the millions television sets and in controlling steel making

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

Action related Boolean we say that the Boolean

we say that the shorthand symbols 1 for values (binary numbers)

digital Analog signals on an oscilloscope screen

a series of pulses - ons as analogue system

A few of these are light system which are

digital practices can be a that design problems

for electrical and digital of information and

to problems related to the domain of the real world this the discrete domain

switches with only two as the tool needed for

system is based on has ten symbols 0 I 2 bull bull

a digital computer for symbolisms (decimal in mathematical operation the binary results into a

cannot be simply situation In certain

to convert any information into the now required two-valued binary system However practically speaking binary systems presently dominate and will continue to be the dominant system for some years to come Since such is the case and man ultimately must learn how to communicate with his machine it is necessary that we study the processes involved in number conversion and the different codes used to represent and convey information

IS The Importance of Digital Systems

Digital systems are used in information processing wherein they have become prevalent and have displaced the earlier analogue system Digital representation is well suited for both numerical and non-numerical information processing

Information processing can use a general-purpose system that is programmed for a particular processing task eliminating the need to have a different system for each task The representation of the program and its interpretation can use the same techniques employed for the representation and transformation of the data

The finite number of values in digital signal can be represented by a vector of signals with just two values (binary signals) This representation allow implementations in which all signals are binary as a result the devices that process these signals are very simple (essentially just switches with two states open and closed)

Digital signals are quite insensitive to variations of component parameter values such as operating temperature This includes its potential flexibility in terms of time-multiplexing significant portions of a given system The physical representation of the values is sufficiently separated so that small variations do not change the value it provides exact replicablity with a better dynamic range This is especially true for binary signals Numerical digital systems can be made more accurate by simply increasing the number of digits used in the representation Thus it is more reliable more applicable to nonlinear control more predictable and less susceptible to variations of environment

The advance of microelectronics technology in recent years have made possible the fabrication of extremely complex digital systems that are small fast and cheap Complex digital systems are built as integrated circuits composed of a large number of very simple devices It is possible to select among different implementations of systems that trade off speed and amount of hardware

Digital technology has affected computing from large multimillion dollars mainframe computers to small personal computers and microprocessor controllers measuring the fuel to be injected in a new automobile engine Many of us think of computers in the sense of medium to large systems in a bank or insurance company or for scientific research or military used In the last 10 years the growth of personal computing has been tremendous But most of the microprocessors being sold today do not go into personal computers Instead they are being used by the millions in dishwashers automobiles aircraft oscilloscopes stereo systems television sets and in industrial control systems used for measuring lumber thickness or controlling steel making

5

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

Digital technology is finding its way into areas of electronics normally thought of as strictly analogue Commercial two-way radios have microcontrollers setting the local oscillator frequency Electronic instrumentation such as oscilloscopes logic analyzers function generators power supplies and multimeters measuring current voltage and resistance all have made widespread use of digital technology In fact it is difficult to find a recently designed electronic instrument that does not use digital technology in some way Digital signal processing (DSP) is a methodology that involves the conversion of analogue information into digital form processes it in some rather sophisticated manner and produces an output either analogue or digital Modem submarines use DSP to make sense of acoustic noises that occur under the ocean for example

Digital technology is especially useful because it is less susceptible to electrical noise (spikes or fluxations in voltage or current) temperature effects component aging and other factors that affect analogue systems This does not mean that analogue technology is not important or that students of electronics and even computers should not study analogue circuit and systems In fact just the contrary is true The concepts of radio propagation antenna design amplifier analysis and active filters to mention a brief few are more important than ever To appropriately apply digital design principles to these areas certainly requires an in-depth understanding of analogue principles Furthermore as the frequencies of digital devices continue to increase digital systems designers are faced with solving analogue-related problems

The application of digital technology will continue to grow in a wide range of consumer product industrial control militarydefense and service industries Look for digital system speeds to increase new devices with added complexity integrated systems comprising both digital and analogue functions embedded into a single integrated circuit and even possibly the use of organic material for constructing memory devices

16 Overview of Modern Design Process

Design is a complex process more an art than a science Complex systems can be broken down into three simpler independent design stages the functional structural and physical stages Figure 11 depicts the general process flow in current logic synthesis systems

A switChing circuit design is first specified in the functional design stage with tools such as hardware description language (HDL) or schematic capture Hardware description language allows a design to be described in text form while schematic capture allows a design to be described in graphical form Once the design is specified it is converted into a mathematical description by the design tools and passed on to the next design stage

In the logic design stage the mathematical representation of the design is simplified without modifying the functionality Two major manipulation techniques that have been studied extensively are simplification and portioning techniques The simplification techniques aim to produce a simpler representation while the portioning techniques aim to break a large representation into a set of smaller but equivalent representations

When the manipulation run If the results of sirr redone or the original satisfactory the represen

In designing application placing and routing Ir programmable logic de logic blocks (placing) ar stage only involves prog

When the physical de consideration) may be f1

which may be part of th manufacturing Followir includes the testing ofm

Figure 11 (

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

thought of as strictly the local oscillator analyzers function

important

a

logic and resistance all have

to fi nd a recently designed Digital signal processing

Iinfnnml-inn into digital fonn output either analogue or

noises that occur under the

to electrical noise (spikes or and other factors that

is not important or that circuit and systems In

antenna design amplifier than ever To

requires an in-depth of digital devices

solving analogue-related

wide range of consumer Look for digital system systems comprising both

and even possibly the

stages

stage with tools such as description language

allows a design to be -rt-11 into a mathematical

is simplified without that have been studied

iti techniques aim to aim to break a large

When the manipulation is completed a pre-layout simulation (with ideal consideration) may be run If the results of simulation are not satisfactory the previous design stages will have to be redone or the original specification may have to be changed However if the results are satisfactory the representation will be passed on to the final stage - physical design stage

In designing application specific integrated circuit (ASIC) this stage includes floor planning placing and routing In designing field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs) this stage includes defining the various programmable logic blocks (placing) and programming the interconnections (routing) In designing PLAs this stage only involves programming the interconnections (routing)

When the physical design stage is completed a post-layout simulation (with practical consideration) may be run If the results are not satisfactory the design will have to be redone which may be part of the entire process If the result is satisfactory the design will be sent for manufacturing Following the manufacturing process comes the testing of the devices which includes the testing of manufacturing faults and the design faults

Figure 11 General Process Flow in Current Logic Synthesis Systems

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

i

Research methoe 1917 Boolean Functions Problem Statement

Boolean derivatives and differentials are used as models for changes in discrete binary coded systems such as cryptosystems for information authentication and data encryption Derivatives describe crucial criteria of Boolean functions such as dependence and independence linearity monotonicity high degree of propagation high nonlinearity 0-1 balancedness and high algebraic degree They are operators generating other Boolean functions Equations with derivatives define classes of Boolean functions Boolean Differentials are models for any kinds of changes such as signal edges errors and deviations An important Boolean problem is that of designing Boolean functions satisfying simultaneously more than one nonlinearity criteria

Boolean function manipulation is the art of exploiting simplification opportunities that exist inherently in logical structures by using the identities that exist within that algebra or reducing the number of terms used We are seeking to express any logical function as simple as possible because this can lead to a reduced usage of resources when that same function is implemented physically

18 Objectives of the Research

The main objective of the project is to generalize simplification rules employed by several existing simplification algorithms and develop simplification algorithms based on the rules derived from the generalization While the measurable objectives are as stated below

I To survey on the existing simplification algorit~ms

2 To study and compare the simplification rules employed by these simplification algorithms

3 To generalize the existing simplification rules and from there identify new simplification rules

4 To implement software package which employs an effective set of simplification rules

The diagram in Figure I

)FamUiarize w gtStudy the nls

gtCompare simi gtAnaJyu the cI gtGeneralize the gt Derive rules fl

gtDevelop simpJ gt Implement the

gtTest new solho Compare resu

~

8

F

110 Thesis Structure

This thesis covers the fo l

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

rules employed by several algorithms based on the rules

Phase 3 Implementation of Software Package are as stated below

in discrete binary coded data encryption Derivatives and independence linearity

0- balanced ness and high functions Equations with

are models for any kinds rmSlnt Boolean problem is that

one nonlinearity criteria

IIlcallcm opportunities that exist within that algebra or reducing

function as simple as possible same function is implemented

19 Research methodology

The diagram in Figure 12 shows the methodology used and planned in conducting the research

Phase I Literature Review

IDIUJariu wllh the current work done in UNIMAS gtStudy the existing simplification rules

Phase 2 Generalization of Simplification Rules

ompare simplification ru les employed by different simplification algorithms gtAnalyze the characteristics of existing simplification rules gtGeoeralize the simplification rules based on their simplification characteristics raquo Derive rules from the generalization of simplification rules

simplification algorithms

identifY new simplification

of simplification rules

Develop simplification algorithms which emplOy different set of simplification rules raquo lmplement the algorithm onto computer using Visual C++ language

+Phase 4 Analysis of algorithms performance

raquoTest new software package by using practical circuits or benchmarks raquoCompare results obtained to that provided by the traditional methods

Figure 12 Research Methodology Flow Chart

110 Thesis Structure

This thesis covers the following topics

9

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

In Chapter I history brief concept of Digital System Design and importance of Digital System are provided The research objectives methodology and overview of modem design process are outlined as well

Chapter 2 documents the literature review performed The traditional representation techniques of simplification method basically cover truth table algebraic function and K-Map The existing simplification techniques such as algebraic simplification K-Map simplification Quine McshyCluskey tabulation method are reviewed and discussed

Chapter 3 lists ESPRESSO program description and examples It introduces the main features of Boolean Minimizer and the program is elaborated together with its data formats and controls Moreover the initial generation of implicants is described with an illustrative example

In Chapter 4 the experimental results of the proposed simplification method is evaluated and commented The source code of the simplification method is discussed and explained

In Chapter 5 a conclusion of this thesis is presented and recommendation on further works that can be carried out to further improve the simplification method is also provided

10

21 Review of Traditi4

In designing digital syste Maps or algebraic expres~ be limited in large circui circuits which computati( number of inputs increase has been introduced and representing techn iques de computation time and stOI(

22 Truth Table

Before any combinational a problem is the most imp correctly accomplished 0 necessary logic for imp len table ready for logic desi From the truth table the diagram drawn The logic integrated circuit families complementary metal-oxi (mnemonic) can take on ( variable of the real numbel conditions of a Boolean 1

format called a truth table

Truth table is the most funl describes the operational combinations of input vall row at a time Further the valued variable Thus if 1

there are four combinatio~ inputs is increased by 0

independent input variable 22 show the general truth 1

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II

CHAPTER 2

LITERATURE REVIEW

importance of Digital System of modem design process are

representation technique and K-Map The existing

simplification Quine Mcshy

introduces the main features its data formats and controls illustrative example

method is evaluated and and explained

on further works that also provided

21 Review of Traditional Representation Techniques

In designing digital system switching circuits are usually represented using truth tables KshyMaps or algebraic expressions These traditional representation techniques have been proven to be limited in large circuit designs Thus a more efficient method of representing switching circuits which computation time and storage requirements do not grow exponentially as the number of inputs increases is required The graph-based representation method known as DD has been introduced and its popularity has grown rapidly in the last decade These modem representing techniques describe the operation of a switching circuit more efficiently both in computation time and storage requirements

22 Truth Table

Before any combinational logic system can be designed it must be defmed Proper statement of a problem is the most important part of any digital design task Nothing can occur until that is correctly accomplished Once correctly and clearly stated any problem can be converted to the necessary logic for implementation Practical applications rarely come in a prepackaged truth table ready for logic design Truth table must be constructed from verbal problem descriptions From the truth table the switching equations can be written and simplified and the logic diagram drawn The logic diagram can be realized using anyone of the three main digital integrated circuit families transistor-transistor logic (TTL) emitter-coupled logic (ECL) or complementary metal-oxide silicon (CMOS) We established that a Boolean variable (mnemonic) can take on only two values not an infinite number as its kindred associate the variable of the real number system This basic difference allows us to illustrate all possible logic conditions of a Boolean variable or a collection of Boolean variables using a finite tabular format called a truth table

Truth table is the most fundamental and classical way in the description of a switching circuit It describes the operational behavior of the circuit by listing the output values for all possible liOIIlbinations of input values or arguments in vertical order and each input combination one lOW at a time Further the nontrivial decisions in digital design are based on more than one twoshyvalued variable Thus if an output is to be completely specified as a function of two inputs dIere are four combinations that must be considered From this we see that as the number of ilputs is increased by one the number of possible combinations doubles Therefore n iadcpendent input variables will exhibit 2n distinct combinations of values Table 2 I and Table 22 show the general truth table for a function with n variables and an example with n = 3

II