You are on page 1of 35

Functional Decomposition

Two-Level Decomposition Simple Disjoint Decomposition FPGA based Implementation Fundamental Theorem of decomposition Examples

Two-Level Decomposition

F(X) = F(Z,Y) Z Y = X, Z Y =

F(Z,Y) = (Z, (Y))


Y = bound set Z= free set

if Z Y = , this is disjoint decomposition if Z Y , this is non-disjoint decomposition


2

Decomposition Types
Y

Simple disjoint decomposition (Asenhurst)


Z F

Disjoint decomposition (Curtis)

Non-disjoint decomposition
3

Simple Disjoint Decomposition


If the function

can be presented in a form

F(X)= F(Z, Z Y = X, Z Y = Y)
F(Z,Y) = (Z,(Y))

we will say that function

F(X)

has

a simple disjoint decomposition with respect to bisection (Z,Y).

() is an image of the decomposition;

(Y)

is a component of the decomposition.


4

Example
F(X) = F(x 0 , x1 , x 2 , x 3 , x 4 ) = (x 0 , x1 , (x 2 , x 3 , x 4 )) = = x 0 x1 + x 0 x1
- image of the decomposition, - component of the decomposition.

= x2 x3 + x2 x 4 + x3 x 4

F(X) = (x 2 x 3 + x 2 x 4 + x 3 x 4 )x 0 x1 + +(x 2 x 3 + x 2 x 4 + x 3 x 4 )x 0 x1 = = x 0 x1 x 2 x 3 + x 0 x1 x 2 x 4 + x 0 x1 x 3 x 4 + + x 0 x1 x 2 x 3 + x 0 x1 x 2 x 4 + x 0 x1 x 3 x 4
with decomposition - 11 two-input logical operations; without decomposition - 23 two-input logical operations.
5

Application of the Functional Decomposition to FPGA based Implementation Field Programmable Gate Arrays
Programmable logic devices (PLD) Field Programmable Gate Arrays (FPGA)

Block Structures
Look-Up Table - based Architecture Xilinx and Altera series architecture

Example of FPGA based implementation by using Functional Decomposition


6

User-programmable Devices
Programmable logic devices (PLDs)
Interconnected PLAs

Field-programmable gate arrays (FPGA)


User programmable blocks and interconnects FPGA differs from PLD in the logic block granularity; FPGA have more fine-grain logic blocks.

Examples of FPGA: Xilinx, Altera, Actel etc.

Reconfigurable Computing
Interested in using chips that change their functionality Possible to connect multiple chips together to form a system New challenges in software. How often should it change?

Field- programmable gate array

Xilinx 3000 Logic cell array architecture

Configurable Logic block

Multi-FPGA System

10

Block structures
Look-up-table (LUT) based architectures
Look-up-table can implement any function of up to m inputs (m2). Usually LUT implemented by static random access memory (SRAM) that has m address lines and one data line.

Multiplexer-based architecture

11

Look-output-table

f ( x1 , x 2 , x 3 ) = x1 x 2 x 3 + x1 x 2 x 3 + x1 x 2 x 3
12

Configurable logic block (CLB) of Xilinx-3000

13

Configurable logic block (CLB) of Xilinx-4000

14

Mux-based configurable logic block (CLB) of Actel


D0 D1 Y D2 D3 Sa Sb

DB A0 B0 A1 B1

15

Challenges in Logic Synthesis for FPGA A limited number of logic blocks on a chip (e.g. the Xilinx 3090 chip has 320 CLBs have 295-546 logic modules). Limited wiring resources, which often determine how much logic can be placed on a chip. Interconnect delays are significant and cannot be ignored during synthesis.
16

Example
F(X) = F(x0 , x1 , x2 , x3 , x4 ) = (x0 , x1 , (x2 , x3 , x4 )) = = x0 x1 + x0 x1
- image of the decomposition, - component of the decomposition.

= x2 x3 + x2 x4 + x3 x4

F(X) = (x2 x3 + x2 x4 + x3 x4 )x0 x1 + +(x2 x3 + x2 x4 + x3 x4 )x0 x1 = = x0 x1 x2 x3 + x0 x1 x2 x4 + x0 x1 x3 x4 + + x0 x1 x2 x3 + x0 x1 x2 x4 + x0 x1 x3 x4


17

Example of FPGA based implementation by using Functional Decomposition

x2 x3 x4 x0 x1

LUT1

(Y )
LUT2

18

Fundamental Theorem of Decomposition

Generalized Shannon Decomposition Ashenhursts Theorem of Decomposition Example

19

Generalized Shannon Decomposition


Example of the Simple Disjoint Decomposition: Shannon Decomposition
x

Y = {y 0 , y1 ,..., y n 2 } F(x,Y) = x F(x = 0,Y) + xF(x = 1,Y)

F(x=0,Y)

F( x= 1,

Y)

x ,Y = [ x + F x = 1 ,Y ] [ x + F x = 0 ,Y = x F x = 0 ,Y + x F x = 1 ,Y + + F x = 0 ,Y F x = 1 ,Y

]=
20

4 5 7 0 1 3

F(x0 , x1 , x2 , x3 ) =

2 13

12 15 8

14

10 11

4 5 0 0 7

2 3 3 13

12

14 15

x0 F

x 0 = 1, x1 , x 2 , x 3 +

8 9 11

10

4 5 7 0 1 3

x0 F(x0 = 0, x1 , x2 , x3 )

2 13

12

14 15

8 9 11

10

21

Generalized Shannon Decomposition


Example of non-disjoint decomposition: Diagonal Decomposition
F(z,z,Y) F(x,z,Y) F(z,z,Y) z z z x x z

F(x,z,Y)

F(x, z,Y) = (x z)F(z, z,Y) + (x z)F(z,z,Y)


22

Decomposition Chart
Let Z={z1,,zs} and Y={y1,, yn-s} and

F(Z,Y) = (Z, (Y))

Y = bound set Z= free set

The necessary and sufficient conditions for the existence of such a decomposition was given in terms of the decomposition chart D(Y/Z) for the partition Y/Z. A decomposition chart is a truth-table of F where vertexes of Bn={0,1}n are arranged in matrix. The columns of the matrix correspond to the vertexes of Bn-s (Y), and its rows to vertexes of Bs (Z). The entries in D(Y/Z) chart are the values that F takes for all possible combinations.
23

Example of the Decomposition Chart


0 1 2 3 4 5 6 7 Y Y 000 100 010 110 001 101 011 111 Z Z 0 00 0 0 0 1 0 1 1 1 1 10 0 0 0 0 0 0 0 0 2 01 0 0 0 0 0 0 0 0 3 11 1 1 1 0 1 0 0 0

(Y) =(x2, x3, x4)


0 1 0

24

Example
F(X) = F(x0 , x1 , x2 , x3 , x4 ) = (x0 , x1 , (x2 , x3 , x4 )) = Z = {x0 , x1 } free set; = x0 x1 + x0 x1

Y = {x2 , x3 , x4 } bound set;

= x2 x3 + x2 x4 + x3 x4 ;
F(X) = (x2 x3 + x2 x4 + x3 x4 )x0 x1 + +(x2 x3 + x2 x4 + x3 x4 )x0 x1 = = x0 x1 x2 x3 + x0 x1 x2 x4 + x0 x1 x3 x4 + + x0 x1 x2 x3 + x0 x1 x2 x4 + x0 x1 x3 x4
25

Generalized Shannon Decomposition


Let

X = F

Z,Y

Z Y = X, Z Y =

has a simple disjoint decomposition with respect to the bisection (Z,Y) then Shannons decomposition for the function (Y) by (Z, (Y)) is

(Z, (Y)) = (Y)f1 (Z) + (Y)f 2 (Z)


where

f1 (Z) = (Z, (Y) = 1); f 2 (Z) = (Z, (Y) = 0);

and decomposition chart D(Y/Z) has at most two distinct column patterns.
26

Decomposition Chart
(Y ) =
Z 0 1
2 n k 1

(Y ) =
1 f1 (0 ) f1 (1 )

00 00 10 00 1111

0 f2 (0 ) f2 (1 )
2 n k 1

f2

) f (
1

2 n k 1

)
27

In the example:
F(X) = (Z, (Y

)) = = f1 (Z ) + f 2 (Z ) =

= x 0 x1 + x 0 x1

f1 (Z) = (Z, (Y) = 1) = x 0 x1 ; f2 (Z) = (Z, (Y) = 0) = x 0 x1 .


28

Example
F(X) = F(x0 , x1 , x2 , x3 , x4 ) = (x0 , x1 ,(x2 , x3 , x4 )) = = x0 x1 + x0 x1

= x2 x3 + x2 x4 + x3 x4
F(X) = (x2 x3 + x2 x4 + x3 x4 )x0 x1 + +(x2 x3 + x2 x4 + x3 x4 )x0 x1

29

Example
1 2 3 4 5 6 Y 0 Y 000 100 010 110 001 101 011 Z Z 0 00 0 0 0 1 0 1 1 1 10 0 0 0 0 0 0 0 2 01 0 0 0 0 0 0 0 3 11 1 1 1 0 1 0 0 7 111 1 0 0 0 1

z\
00 10 01 11

(Y) =(x2, x3, x4)


0 1 0

0 0 0 0 1

1 1 0 0 0

Component of decomposition - Image of decomposition

30

Ashenhursts Fundamental Theorem of Functional Decomposition

The simple disjoint decomposition exists if and only if the corresponding decomposition chart has at most two distinct column patterns.

31

0
f (0) 1 f (1) 1

..... ..... ..... ..... ..... ..... ..... ..... .....

NY
f (0) 2 f (1) 2

.... ..... ..... ..... ..... ..... ..... ..... .....

2k-1
f (0) 1 f (1) 1

0 1 ..... Nz ..... 2n-k-2 2n-k-1


(Y )

.....
f (N z ) 1

.....
f (N z ) 2

.....
f (N z ) 1

.....
f (2 n k - 2) 1
f ( 2 n k - 1) 1

.....
f (2 n k - 2) 2
f ( 2 n k - 1) 2

.....
f (2 n k - 2) 1

f ( 2 n k - 1) 1

32

Example
Function of 6 variables: Y = {x3, x4, x5}; Z={x0,x1,x2}
T = {3,4,6,7,8 ,10,11,13, 15,16,18,1 9,21,23,27 ,28,30,31, 32,34,35,3 7,39,40,42 ,43,45,47, 48,50.51,5 3,55,59,60 ,62,63}
y
z
0 1 2 3 4 5 6 7 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 2 3 4 5 6 7

T (Y) = {1,2,4,5,6 }; Tf1 (Z) = {0,2,3,5,7 }; Tf2 (Z) = {3,4,6,7}.


33

(Y) z 0 1 2 3 4 5 6 7

0 0 0 0 1 1 0 1 1

1 1 0 1 1 0 1 0 1
5

6 7 12 14 15 10 11

0 1 3

2 13

8 9

4 5 0 1 3 7

(Z, (Y)) = x0 x2 + x0 x1 + x0 x2 + x0 x2
Component of decomposition:

(Y) = x3 x4 + x3 x4 + x4 x5
34

y = (a + b + c + d ) (ab + ac + ad + bc + bd + cd ) (abc + abd + acd + bcd )abcd

))

= M

4 1

4 2

4 3

4 4

= M

4 1

4 2

4 3

1 0 0 = M 0 0

4 1

4 2

4 3

0 1 1 1 1

1 1 0 0

0 1 1 1

0 1 0 0

1 0 1 1

11 10 01 01

1 1 1 0

1 0 0 0

1 1 1 0

0 1 1 1

0 1 1 0
35

4 4 4 4 4 4 4 = M1 M 2 0 & 1 = M1 M 2 0 = M1 M 2 1 = M1 1 1 = 1 & 1 = 1 & 0 = 0 = a b c d

You might also like