Sunteți pe pagina 1din 27

FUNCTION OPTIMIZATION

Switching Function Representations can be Classified in Terms


of Levels
Number of Levels, k, is Number of Unique Boolean (binary)
Operators
EXAMPLES

f1 x1 x2 x3
f 2 abcd
f3 ab cd afe

f 4 (a b c )(b c d )

f 5 ab cd abc
f 6 [(ab c )(cd e )] (ab ce)gdc

1-Level
2-Level
multi-level

k-Level functions

22n Possible Switching Functions of n Variables (actually much fewer types


obtained by permuting and/or complementing input variables)
1-Level Forms
Cannot Represent all Possible Functions

2-Level Forms
Can Represent all Possible Functions
With Additional Restrictions CANONICAL

k-Level Forms (k2)


Many Different Ways to Represent a Given Functions

If a multi-input Gate Represents a (binary or greater) Boolean Operator


Expression can Represent a Netlist
k Indicates depth of Netlist
EXAMPLES

2-Level

1-Level
a
b
c

f ab c

a
b
c
b
a
b
c

Multi-Level

f (a b)(b c )(a c d )

a
b
c
d
e

f (a b )(c d )e

k-Level function properties

1-Level Forms

Due to Restriction of Representable Functions, Not as Useful

2-Level Forms

Can be Canonical

Longest PI to PO Path is Always 2 Related to Delay

Minimization Usually Means


1.

Minimum Number of Terms

2.

Minimum Number of Literals in Expression

k-Level Forms (k 2)

Many More Possible Representations

Can be Optimized for Area

Delay is More Complicated

False Path Problem

Spatio-temporal Correlations

Typically an Area versus Delay Tradeoff (e.g., Ripple versus CL Adder)

Common Terms for 2-Level Minimization

Literal A variable in complemented or uncomplemented form

Product The disjunction (AND) of a set of literals; also represents a


cube

Support Set Set of all variables that define the domain of a switching
function

Minterm A disjunction (AND) containing an instance of each literal


corresponding to a variable in the support set that is in the on-set, fon,of
a function

Dont Care The absence of a supporting variable in a product term

Implicant A product term that covers one or more minterms in the onset, fon, of a function

Prime Implicant An implicant in the on-set, fon, of a function such that it


is not a subproduct of any other possible implicant in the set.

Essential Prime Implicant A prime implicant that covers at least one


minterm NOT covered by any other implicant in the on-set, fon.

SOP Minimization Terms Example


Consider:

f on {b d , abc , bd , acd , abc, bcd }

Each Element of fon is an Implicant


Prime Implicants are:

{b d , abc , bd , acd , abc}

abc is a Prime Implicant but NOT an


Essential Prime Implicant
bcd is an Implicant but NOT a
Prime Implicant
bd is an Essential Prime Implicant

Product abc:
covers minterms: m4=abcd and m5=abcd
disjunction of literals a, b, c
variable d is a Dont Care
f Represented by fon has Support Set: {a, b, c, d}

Karnaugh Map

Simplification Using Karnaugh Map


a) Use as few loops as possible
b) Use as large loop as possible

Prime Implicant Corresponds to as large loop


as Possible

Karnaugh Map Simplification is Finding fon such


that:
a)
b)
c)

fon contains as few prime implicants as possible


fon must contain all essential prime implicants
fon contains NO implicants that are NOT prime

Tabulation
Method

Tabulation Method - Notation

Consider Support Set of f:

xici denotes:

S={x1, x2, , xn}

xi if ci = 1
xi if ci = 0
1 if ci = -

If NO ci = -, then we have a minterm

Can be Represented by Decimal Equivalent of ci

EXAMPLE

(S={x1, x2, x3, x4})

x11x02x03x14 = m9, a minterm c1 c2 c3 c4 = 1001 = 9


x01x-2x-3x04 = a 4-cube 0--0

Cube Merging

Basic Operation in Tabulation Method

2 Cubes that Differ in a SINGLE ci can be


Merged into a Single Cube

EXAMPLE

=
=

1-01
0-01

Merge and into

--01

Merging is also called star


operator and is a special
case of consensus

Tabulation Method
Input: f on as a set of minterms
Output: f on as a set of
1.
2.

All Essential Prime Implicants


As Few Prime Implicants as Possible

Finding as few Prime Implicants as Possible


is an NP-Hard Problem!!!!!

Reduces to the Set Covering Problem for Unate Functions


Unate function a constant or is represented by a SOP using
either uncomplemented or complemented literals for each
variable
Reduces to the Minimum Cost Assignment Problem for Binate
Functions (ex. EXOR)

This is 2-Level (SOP) Optimization (Minimization)

Tabulation Method

STEP 1:

STEP 2:

Convert Minterm List (specifying f on) to Prime Implicant List


Choose All Essential Prime Implicants
If all minterms are covered
HALT
Else
GO To STEP 3

STEP 3:

Formulate the Reduced Cover Table Omitting the rows/cols of EPI


If Cover Table can be Reduced using Dominance Properties, Go To Step 2
Else Must Solve the Cyclic Cover Problem
1) Use Exact Method (exponentially complex)
2) Use Heuristic Method (possibly non-optimal result)

NOTE: Quine-McCluskey Refers to Using a Branch and Bound Heuristic


NOTE: Petricks Method is Exact Technique Generates all Solutions
Allowing the Best to be Used

Tabulation Method STEP 1


1.

Partition Prime Implicants (or minterms) According to Number of 1s

2.

Check Adjacent Classes for Cube Merging Building a New List

3.

If Entry in New List Covers Entry in Current List Disregard Current


List Entry

4.

If Current List = New List


HALT
Else
Current List New List
New List NULL
Go To Step 1

STEP 1 - EXAMPLE
f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
Minterm
0
1
2
8
3
5
10
11
13
15

0
0
0
1
0
0
1
1
1
1

Cube
0 0
0 0
0 1
0 0
0 1
1 0
0 1
0 1
1 0
1 1

0
1
0
0
1
1
0
1
1
1

STEP 1 - EXAMPLE
f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
Minterm
0
1
2
8
3
5
10
11
13
15

0
0
0
1
0
0
1
1
1
1

Cube
0 0
0 0
0 1
0 0
0 1
1 0
0 1
0 1
1 0
1 1

0
1
0
0
1
1
0
1
1
1

Minterm
0,1
0,2
0,8
1,3
1,5
2,3
2,10
8,10
3,11
5,13
10,11
11,15
13,15

0
0
0
0
0
1
1
1
1

Cube
0 0
0 0 0
0 - 0
0 1
0 1
0 0 1
1 0
0 1
- 1
1 -

0
0
1
1
0
0
1
1
1
1

STEP 1 - EXAMPLE
f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
Minterm
0
1
2
8
3
5
10
11
13
15

0
0
0
1
0
0
1
1
1
1

Cube
0 0
0 0
0 1
0 0
0 1
1 0
0 1
0 1
1 0
1 1

0
1
0
0
1
1
0
1
1
1

Minterm
0,1
0,2
0,8
1,3
1,5
2,3
2,10
8,10
3,11
5,13
10,11
11,15
13,15

0
0
0
0
0
1
1
1
1

Cube
0 0
0 0 0
0 - 0
0 1
0 1
0 0 1
1 0
0 1
- 1
1 -

0
0
1
1
0
0
1
1
1
1

Minterm
0,1,2,3
0,8,2,10
2,3,10,11

0
-

Cube
0 0 0 1

0
-

STEP 1 - EXAMPLE
f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
Minterm
0
1
2
8
3
5
10
11
13
15

0
0
0
1
0
0
1
1
1
1

Cube
0 0
0 0
0 1
0 0
0 1
1 0
0 1
0 1
1 0
1 1

0
1
0
0
1
1
0
1
1
1

Minterm
0,1
0,2
0,8
1,3
1,5
2,3
2,10
8,10
3,11
5,13
10,11
11,15
13,15

0
0
0
0
0
1
1
1
1

Cube
0 0
0 0 0
0 - 0
0 1
0 1
0 0 1
1 0
0 1
- 1
1 -

0
0
1
1
0
0
1
1
1
1

PI=D

PI=E

PI=F
PI=G

Minterm
0,1,2,3
0,8,2,10
2,3,10,11

0
-

Cube
0 0 0 1

0
-

PI=A
PI=C
PI=B

Question: Can
this be done on
a CCM? How
modified?

f on = {A,B,C,D,E,F,G} = {00--, -01-, -0-0, 0-01, -101, 1-11, 11-1}

STEP 2 Construct Cover Table

PIs Along Vertical Axis (in order of # of literals)

Minterms Along Horizontal Axis

A
B
C
D
E
F
G

0
x

1
x

x
x

2
x
x
x

3
x
x

10

11
x

x
x

x
x

NOTE: Table 4.2 in book is incomplete

13

15

x
x
x

x
x

STEP 2 Finding the Minimum Cover

Extract All Essential Prime Implicants, EPI

EPIs are the PI for which a Single x Appears in a Column


A
B
C
D
E
F
G

0
x

1
x

x
x

2
x
x
x

3
x
x

10

11
x

x
x

13

x
x

15

x
x
x

x
x

C is an EPI so: f on={C, ...}

Row C and Columns 0, 2, 8, and 10 can be Eliminated


Giving Reduced Cover Table

Examine Reduced Table for New EPIs

STEP 2 Reduced Table


Distinguished Column
A
B
C
D
E
F
G

A
B
D
E
F
G

0
x

1
x

2
x
x
x

3
x
x

10

11
x

x
x

x
x

13

Essential row
x

x
x
1
x
x

3
x
x

11

13

15

x
x
x

x
x
x

15

x
x

x
x

The Row of an EPI is an


Essential row
The Column of the Single x in
the Essential Row is a
Distinguished Column

Row and Column Dominance

If Row P has xs Everywhere Row Q Does


Then Q Dominates P if P has fewer xs

If Column i has xs Everywhere j Does


Then j Dominates i if i has fewer xs

If Row P is equal to Row Q and Row Q does not cost more than Row P,
eliminate Row P, or if Row P is dominated by Row Q and Row Q Does
not cost more than Row P, eliminate Row P

If Column i is equal to Column j, eliminate Column i or if Column i


dominates Column j, eliminate Column i

STEP 3 The Reduced Cover Table

Initially, Columns 0, 2, 8 and 10 Removed


A
B
D
E
F
G

1
x
x

3
x
x

11

13

15

x
x
x

x
x
x

x
x

No EPIs are Present

No Row Dominance Exists

No Column Dominance Exists

This is Cyclic Cover Table

Must Solve Exactly OR Use a Heuristic

The Cyclic
Cover Table

The Cyclic Cover Table

For now, we Arbitrarily Choose a PI


Later we will Study Exact and Heuristic Methods
A
B
D
E
F
G

1
x
x

3
x
x

11

13

15

x
x
x

x
x
x

x
x

Arbitrarily Choose F so: fon={C, F, ...}


This Choice May Lead to a Non-Optimal Result!!!!

Form Reduced Cover and Go To Step 2

STEP 3 Dominance

Initially, Reduced Table has Columns 11 and 15


Removed
1 3 5 13
A x x
B
x
D x
x
E
x x
G
x

G is Dominated by E

B is Dominated by A

Form Reduced Cover Table and Go To Step 2

STEP 2 The Reduced Cover

Initially, Table has Rows G and B Removed

A
D
E

1
x
x

3
x

Secondary EPIs A and E

All Columns Covered

Eliminate D

fon={C, F, A, E}

13

x
x

Result Check
ab

cd
00

00

01

11

10

01

11

10

ab

1
1

Initial Minterm List


fon = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15}
= (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)

cd
00

00

01

11

10

01

11

10

1
1

Final Result
f on={A, C, E, F}

Questions
1.
2.
3.
4.
5.
6.

Explain Quine-McCluskey Method.


How to program QM Method in CCM?
Methods to solve Covering Problem.
Possible Applications of Covering.
Reduction of Covering to Petrick Function.
Merging Operator.

S-ar putea să vă placă și