1 / 21

# Multilevel Logic Minimization -- Introduction - PowerPoint PPT Presentation

Multilevel Logic Minimization -- Introduction. Outline. Multi-level minimization: technology independent local optimization. What to optimize: multi-level logic modeled as Boolean networks Optimization targets: # of literals What’s new: Don’t cares Don’t cares in multi-level logic

## Related searches for Multilevel Logic Minimization -- Introduction

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Multilevel Logic Minimization -- Introduction

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

#### Presentation Transcript

• Multi-level minimization: technology independent local optimization.

• What to optimize: multi-level logic modeled as Boolean networks

• Optimization targets: # of literals

• What’s new: Don’t cares

• Don’t cares in multi-level logic

• Internal vs. external

• Satisfiablity vs. observablity

• Using don’t cares for multi-level minimization

ENEE 644

x1

x2

x3

x4

x5

x6

y1

y2

y3

y4

y5

Boolean Network: Example

• A Boolean network is an acyclic graph.

• Each node of the graph is a gate (may not be basic).

• Each edge implies a connection between two gates.

• Example:

• Description of the network:

• y1 = x’2 + x’3(NAND)

• y2 = x’4 + x’5(NAND)

• y3 = x’4y’1(NOR)

• y4 = x1 + y’3

• y5 = x6y2 + x’6y’3

ENEE 644

Boolean Network: Definition

A Boolean network is an interconnection of Boolean functions defined by a five-tuple:

• f = (f1,…,fn)n completely specified logic functions (gates);

• y = (y1,…,yn)n logic variables that are in one-to-one correspondence with f (signals of the network);

• I = (I1,…Ip)p primary inputs;

• O = (O1,…,Oq)q primary outputs;

• dX = (d1X,…,dqX)completely specified logic functions for the don’t care minterms on the outputs.

It is convenient to consider both I and O as functions. We denote x = (x1,…,xp) = (y1,…,yp) and z = (z1,…,zq) = (yn-q+1,…,yn-1,yn) as the I-component (primary inputs) and O-component (primary outputs) of vector y.

ENEE 644

4

a

6

9

S

5

7

2

8

10

b

C

3

c

• f: f1 buffer,…, f4 XOR, f5 AND,…, f8 OR,…, f10 buffer

• y: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

• I: 1,2,3

• O: 9, 10

• dX:

ENEE 644

Boolean Network: As a Digraph

G=(V,E): DAG

• V: each function is a node (node i fi yi).

• E: there is a directed edge from node i to node j if yi supp(fj), denoted by (i,j) E.

If (i,j) E, node i is a predecessor (input, fanin) of node j, and node j is a successor (output, fanout) of node i;

If there is a path from node i to node j, node i is a transitive predecessor (transitive fanin) of node j, and node j is a transitive successor (transitive fanout) of node i.

Pi = {jV | (j,i) E}Si = {jV | (i,j) E}

Pi* = {jV | node j is a transitive fanin of node i}

Si* = {jV | node j is a transitive fanout of node i}

ENEE 644

4

a

6

9

S

5

7

2

8

10

b

C

3

c

• P4={1,2},P8={5,7},P9={6},P2=

• S4={6,7},S8={10},S9=,S2= {4,5}

• P4*={1,2},P8*={1-5,7},P9*={1-4,6},P2*=

• S4*={6-10},S8*={10},S9*=,S2*= {4-10}

ENEE 644

Boolean Network: Net and Connection

• Each signal in the Boolean network represents the voltage on a segment of interconnect/wire in the circuit that implements the Boolean network. This wire segment is referred as a net.

• The logic value on a net is determined by the source terminal, a logical signal corresponding to a specific node yi in the Boolean network.

• Inputs to the nodes in the fanout Si are sink terminals.

• Source and sink terminals are called pins of the net.

• Each edge (i,j) E is also called a connection, denoted by cij with a logic variable yij.

• Pij = i, Sij = j, Pij* = Pi*{i}, Sij* = Sj*{j}

ENEE 644

• XOR gate 6 produces logical signal y6; its output is the source terminal of corresponding net; this net has a single sink terminal on the input of buffer 9.

• For the connection C6,9 from 6 to 9, we have:

P6,9=6, S6,9=9, P6,9*=P6* {6}={1-4,6}, S6,9* = S9*{9}=9

1

4

a

6

9

S

5

7

2

8

10

b

C

3

c

ENEE 644

Boolean Network: Global Functions

• Functions fi(y) are local functions in that they are specified by the neighbors of node i in the Boolean network.

• The global functionsfi*(x)=(I,fi(y))are defined on a subset of primary inputs, where the composition operator  is defined recursively as:

yiif iA

(A,fi(y)) =

fiif PiA

fi((A,fPi(1)), (A,fPi(2)),…, (A,fPi(|Pi|)))otherwise

ENEE 644

4

a

6

9

S

5

7

2

8

10

b

C

3

c

• f3*= (I,f3) = y3

• f5*= (I,f5) = f5 = y1y2

• f9*= (I,f9) = (I,f6) = XOR((I,f4), (I,f3)) =XOR(XOR((I,f1),(I,f2)),y3) =XOR(XOR(y1,y2),y3)

ENEE 644

Multilevel Logic Minimization-- Don’t Care Conditions

Don’t Cares: Satisfiability Don’t Care

• Satisfiability don’t care (SDC) occurs when certain input combination to a circuit can never occur.

• How it happens?

• We may represent a node using both primary inputs and intermediate variables. (Bn+m)

• The intermediate variables depend on primary inputs.

• So, not all the minterms of Bn+m can occur.

• Example:

• y = a+b, then {y=0, a=1, b=-} will never occur (SDC).

ENEE 644

ENEE 644

8

10

a

F=a+bcd+e

2

b

3

6

c

11

9

4

d

G=a+cd

g

5

7

e

Example: Minimization Using SDCs

• Introduce intermediate variable g at node 9.

• Cannot do resubstitution since F/g = 0.

• What is the difference between bcd and bg (xor of the two)?

• bcdg’, bc’g, bd’g.

ENEE 644

8

10

a

F=a+bcd+e

2

b

3

6

c

11

9

4

d

G=a+cd

g

5

7

e

Example: Minimization Using SDCs

• SDC9=g(a+cd)=g’a+g’cd+ga’c’+ga’d’

• bcdg’ is covered by g’cd

• bc’g=abc’g+a’bc’g is covered by a + ga’c’

• bd’g=abd’g+a’bd’g is covered by a + ga’d’

• F = a + bg + e

? bcdg’,bc’g, bd’g ?

ENEE 644

Don’t Cares: Observability Don’t Care

• Observability don’t care (ODC) occurs when local changes cannot be observed at the primary outputs.

• How it happens?

• Signals at pre-specified observation points (primary outputs) are outputs from some intermediate gates.

• Change of some inputs to the intermediate gates may not change the outputs.

• So, these changes are not observable.

• Example:

• y = a+b, when a = 1, change on b is not observable.

ENEE 644

• Boolean difference of function f w.r.t. a variable x is defined as: f/x=fxfx’.

• Example: F(x,y,z) = x+yz

• F/x = FxFx’= 1yz = y’+z’

• F/y = FyFy’= (x+z)x = (x+z)x’+(x+z)’x = x’z

• If output F is sensitive to node y, I.e., FyFy’, then F/y=FyFy’=FyFy’’+Fy’Fy’=1.

• Therefore, ODCy=(F/y)’=(FyFy’)’=FyFy’+Fy’Fy’’.

ENEE 644

00

01

11

10

a

0

0

0

1

1

1

1

0

0

1

Example: Minimization Using ODCs

1

y1

• y1=a’b+ab’,y2=by1,y3=c’y2’

• ODCy1=(F/y1)’=((y3/y2)(y2/y1))’ =((0c’)(b0))’=(c’b)’=b’+c

• K-map for y1and ODCy1

• So y1 = a’, XOR(a,b) NOT(a)

a

y2

y3

F

2

b

3

c

ENEE 644

Don’t Cares: Internal and External DCs

• Internal Don’t Cares arise from the structure of the network itself.

• SDC

• ODC

• External Don’t Cares (XDCs) arise from the external environment in which the network is embedded.

• XSDC

• XODC

These can be defined in the same way if we consider the larger network in which the Boolean network is hierarchically embedded.

ENEE 644

Don’t Cares: Complete Don’t Cares

• The complete don’t cares (CDCs) of node i in a Boolean network is given by:

CDCi=XSDC+XODC+SDCi+ODCi

ENEE 644