Professional Documents
Culture Documents
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 =
Decomposition Types
Y
Z F
Non-disjoint decomposition
3
F(X)= F(Z, Z Y = X, Z Y = Y)
F(Z,Y) = (Z,(Y))
F(X)
has
(Y)
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
User-programmable Devices
Programmable logic devices (PLDs)
Interconnected PLAs
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?
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
13
14
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
x2 x3 x4 x0 x1
LUT1
(Y )
LUT2
18
19
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
F(x,z,Y)
Decomposition Chart
Let Z={z1,,zs} and Y={y1,, yn-s} and
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
24
Example
F(X) = F(x0 , x1 , x2 , x3 , x4 ) = (x0 , x1 , (x2 , x3 , x4 )) = Z = {x0 , x1 } free set; = 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 = = 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
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
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
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
0 0 0 0 1
1 1 0 0 0
30
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
.....
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
(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
))
= 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