struktury układów logicznych
DESCRIPTION
Gate Array. Standard Cell. f. Programmable Logic Devices. Struktury układów logicznych. FPGA. Struktury układów logicznych. Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki!. Coraz większego znaczenia nabierają technologie, w których podstawowym elementem - PowerPoint PPT PresentationTRANSCRIPT
ITPW
ZPT
1
Struktury układów logicznych
f
Gate Array Standard Cell
Programmable Logic Devices
ITPW
ZPT
2
Struktury układów logicznych
FPGA
Field Programmable Gate Array
Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki!
Coraz większego znaczenia nabierają technologie, w których podstawowym elementem konstrukcyjnym są komórki logiczne(Logic Cell)
Logic Cell
… a dla tych struktur omówione do tej pory metody syntezy - w szczególności minimalizacja - są nieskuteczne
3
Dekompozycja funkcjonalna jest metodą znaną od dawna, ale jej intensywny rozwój dokonuje się od niedawna.
Sytuacja jest podobna do rozwoju nowoczesnych metod minimalizacji, który to rozwój zapoczątkowany został pojawieniem się układów scalonych z milionami bramek logicznych.
Jedyną różnicą jest fakt, że technologie struktur komórkowych pojawiły się znacznie później i metody ich syntezy nie nie są jeszcze wbudowane do systemów komercyjnych.
ITPW
ZPT
4
Dekompozycja funkcjonalna
Skuteczność dekompozycji jest tak ogromna, że mimo jej braku w narzędziach komercyjnych należy się z tymi metodami zapoznać i stosować w praktyce projektowania układów cyfrowych za pośrednictwem narzędzi uniwersyteckich.
Dekompozycję funkcji boolowskich omówimy w dwóch ujęciach:
a) metoda klasyczna (znana od dawna...)
b) metoda nowoczesna (dostosowana do złożoności dzisiejszych technologii)
ITPW
ZPT
5
Metoda klasyczna
Tablicą dekompozycji funkcji f nazywamy macierz dwuwymiarową o kolumnach etykietowanych wartościami zmiennych funkcji f ze zbioru B oraz o wierszach etykietowanych wartościami zmiennych funkcji f ze zbioru A
A
B
0101
1000
001000
x1x2x3
x4x5Elementami macierzy M są wartości, jakie przyjmuje funkcja f na wektorach złożonych z odpowiednich etykiet i-tego wiersza i j-tej kolumny.
... to metoda tablicowa, graficzna, której podstawowe operacje wykonywane są na tzw. tablicy dekompozycji
ITPW
ZPT
6
Krotność kolumn
Liczbę istotnie różnych kolumn tej macierzy ze względu na ich zawartość nazywamy ich krotnością i oznaczamy symbolem (A|B).
x1x2x3
x4x5000 001 010 100 110 101 011 111
00 1 1 1 1 0 0 0 0
01 0 1 1 1 0 0 0 0
10 0 0 0 0 0 0 0 0
11 0 0 0 0 1 1 1 0
A
B
Krotność kolumn =
4
ITPW
ZPT
7
Klasyczne twierdzenie o dekompozycji
Niech będzie dana funkcja boolowska f oraz podział zbioru zmiennych wejściowych funkcji f na dwa rozłączne zbiory A i B, to wówczas:
f(A,B) = h(g1(B),.., gj(B),A) (A|B) 2j.
B
A
gh f
B (bound set), A (free set)
ITPW
ZPT
8
Przykład
x1x2x3
x4x5000 001 010 100 110 101 011 111
00 1 1 1 1 0 0 0 0
01 0 1 1 1 0 0 0 0
10 0 0 0 0 0 0 0 0
11 0 0 0 0 1 1 1 0
A
B
x1 x2 x3 g1 g2
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
1 0 0 0 1
1 1 0 1 0
1 0 1 1 0
0 1 1 1 0
1 1 1 1 1
g1g2
x4x5
00 01 10 11
0 0 1 1 0 0
0 1 0 1 0 0
1 0 0 0 0 0
1 1 0 0 1 0
Istnieje dekompozycja !
f = h(x4, x5, g1(x1, x2, x3), g2(x1, x2, x3))
ITPW
ZPT
9
Praktyczne znaczenie dekompozycji..
x1 x2 x3 x4 x5
f
x1 x2 x3x4 x5
g
h
g1 g2
h
..dla struktur FPGA
ITPW
ZPT
10
Przykład trochę trudniejszy
cde a b 000 001 010 011 100 101 110 111
00 1 – 0 1 – 0 1 0
01 – – – – 1 1 – –
10 – 0 1 0 0 – 0 1
11 0 1 – – – – – –
K0 K1 K2 K3 K4 K5 K6 K7
Istnieje dekompozycja !
f = h(a,b,g1(c,d,e), g2(c,d,e))
c d ea b
g
h
ITPW
ZPT
11
Relacja zgodności kolumn
Jak obliczać dekompozycję
ITPW
ZPT
12
K1 K2 K3 K4 K5 K6 K7
1 - 0 1 - 0 1
- - - - 1 1 -
- 0 1 0 0 - 0
0 1 - - - - 0
Relacja zgodności kolumn
Kolumny {kr, ks} są zgodne, jeśli nie istnieje wiersz i, dla którego elementy Kir, Kis są określone i różne, tzn. odpowiednio: 0, 1 albo 1, 0.
ITPW
ZPT
13
{K1,K4,K7}
Relacja zgodności kolumn
K1 K2 K3 K4 K5 K6 K7
1 - 0 1 - 0 1
- - - - 1 1 -
- 0 1 0 0 - 0
0 1 - - - - 0
{K5,K6}1
-
0
0
0
1
0
-
Kolumny zgodne można „sklejać”
ITPW
ZPT
14
Obliczanie dekompozycji...
Wyznaczyć relację zgodności kolumn, czyli wypisać wszystkie pary sprzeczne.
Wyznaczyć relację zgodności kolumn, czyli wypisać wszystkie pary sprzeczne.
Wyznaczyć rodzinę maksymalnych zbiorów kolumn zgodnych (maksymalnych klas zgodnych – MKZ).
Wyznaczyć rodzinę maksymalnych zbiorów kolumn zgodnych (maksymalnych klas zgodnych – MKZ).
Z rodziny tej wyselekcjonować minimalną podrodzinę (w sensie liczności) rozłącznych zbiorów zgodnych pokrywającą zbiór K wszystkich kolumn tablicy dekompozycji.
Z rodziny tej wyselekcjonować minimalną podrodzinę (w sensie liczności) rozłącznych zbiorów zgodnych pokrywającą zbiór K wszystkich kolumn tablicy dekompozycji.
ITPW
ZPT
15
Przykład - obliczanie klas zgodności
cde a b 000 001 010 011 100 101 110 111
00 1 – 0 1 – 0 1 0
01 – – – – 1 1 – –
10 – 0 1 0 0 – 0 1
11 0 1 – – – – – –
K0 K1 K2 K3 K4 K5 K6 K7
K0, K1 sprzeczna
K0, K2 sprzeczna
K0, K3 zgodna
Pary sprzeczne:
K0, K4 zgodna
0,1 0,2 0,5 0,7 1,2 1,7 2,32,4 2,6 3,5 3,7 4,7 5,6 6,7
ITPW
ZPT
16
Przykład – obliczanie klas zgodności
Stosując algorytm MKZ obliczamy rodzinę Maksymalnych Klas Zgodnych kolumn:
0,3,4,6
1,3,4,6
1,4,5
2,5,7
0,3,4,6
Wybieramy:
1,5
0,3,4,6
2,7
Ostatecznie:
1,4,5
2,5,7
Kolumny powtarzające się usuwamy
Komentarz: formalnie obliczamy pokrycie..
SRKZ
KZ
KKZ
ITPW
ZPT
17
Sklejanie kolumn – funkcja h
cdeab
000 001 010 011 100 101 110 111
00 1 - 0 1 - 0 1 0
01 - - - - 1 1 - -
10 - 0 1 0 0 - 0 1
11 0 1 - - - - - -
K0 K1 K2 K3 K4 K5 K6 K7
g1g2
ab00 01 11 10
00 1 0 0 -
01 1 1 - -
10 0 0 1 -
11 0 1 - -
{K0,K3,K4,K6} {K1,K5} {K2,K7}
Kodowanie?
Może być dowolne
ITPW
ZPT
18
Kodowanie kolumn – funkcja g
cdeab
000 001 010 011 100 101 110 111
00 1 - 0 1 - 0 1 0
01 - - - - 1 1 - -
10 - 0 1 0 0 - 0 1
11 0 1 - - - - - -
K0 K1 K2 K3 K4 K5 K6 K7
g1g2
ab00 01 11 10
00 1 0 0 -
01 1 1 - -
10 0 0 1 -
11 0 1 - -
c d e g1 g2
0 0 0 0 0
0 1 1 0 0
1 0 0 0 0
1 1 0 0 0
0 0 1 0 1
1 0 1 0 1
0 1 0 1 1
1 1 1 1 1
ITPW
ZPT
19
Co uzyskaliśmy
c d ea b
g
h
Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FPGA
Ale funkcje g i h można obliczyć jawnie…
czyli po procesie dekompozycji można je minimalizować
c d e g1 g2
0 0 0 0 0
0 1 1 0 0
1 0 0 0 0
1 1 0 0 0
0 0 1 0 1
1 0 1 0 1
0 1 0 1 1
1 1 1 1 1
-
-
-
-
10
-
1
-
0
11
1
0
1
0
01
0
0
1
1
00
10
11
01
00
g1g2
ab
ITPW
ZPT
20
uzyskując w rezultacie …
c d ea b
g
h
…strukturę na bramkach
ITPW
ZPT
21
Przykład – funkcje g1 i g2
c d e g1 g2
0 0 0 0 0
0 1 1 0 0
1 0 0 0 0
1 1 0 0 0
0 0 1 0 1
1 0 1 0 1
0 1 0 1 1
1 1 1 1 1
e
cd0 1
00 0 0
01 1 0
11 0 1
10 0 0
e
cd0 1
00 0 1
01 1 0
11 0 1
10 0 1
edc1
g edc2
g cde ce ed
ITPW
ZPT
22
Przykład – funkcja h
g1g2
ab00 01 11 10
00 1 0 0 -
01 1 1 - -
11 0 1 - -
10 0 0 1 -
2gah 2bg 1ag
Uwaga:Przestawiliśmy wiersze
ITPW
ZPT
23
Przykład – realizacja
e d c e d c e d c e c e d
2g a 2g b1g a
h = f
H
G
a b c d e
g1 g2
ITPW
ZPT
24
Przykład (bardziej skomplikowany) - TL27
x3 x5 x6 x7 x8 x9 x10 f
1 1 1 1 0 1 0 01 0 1 0 1 0 0 00 0 1 1 1 1 0 01 1 0 1 0 1 1 00 0 1 0 0 1 1 00 0 1 0 1 1 0 01 1 0 0 1 1 0 00 1 1 0 0 0 0 00 0 0 0 0 1 0 01 1 1 1 0 1 1 10 0 1 0 1 0 0 10 1 1 0 0 1 1 10 1 0 0 0 0 0 10 0 1 1 1 1 1 11 0 0 0 1 1 0 11 0 1 0 0 0 1 11 1 0 1 0 0 1 11 1 1 1 1 1 1 11 0 0 0 0 0 0 10 1 0 0 1 1 1 11 0 0 1 1 1 1 11 1 0 0 0 1 0 11 1 1 1 1 0 1 10 1 1 1 0 0 0 1
.type fr
.i 10
.o 1
.p 250010111010 01010010100 00100011110 01011101011 01100010011 00100010110 01110100110 00100110000 00101000010 00111111011 10000010100 11101110011 10100100000 10100011111 10010000110 11111010001 11111101001 11111111111 10010000000 11101100111 10010001111 11111100010 11010111101 10110000110 10100111000 1.e
x7 x8 x9 x3 x5 x6 x10 f
1 0 1 1 1 1 0 00 1 0 1 0 1 0 01 1 1 0 0 1 0 01 0 1 1 1 0 1 00 0 1 0 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 00 0 0 0 1 1 0 00 0 1 0 0 0 0 01 0 1 1 1 1 1 10 1 0 0 0 1 0 10 0 1 0 1 1 1 10 0 0 0 1 0 0 11 1 1 0 0 1 1 10 1 1 1 0 0 0 10 0 0 1 0 1 1 11 0 0 1 1 0 1 11 1 1 1 1 1 1 10 0 0 1 0 0 0 10 1 1 0 1 0 1 11 1 1 1 0 0 1 10 0 1 1 1 0 0 11 1 0 1 1 1 1 11 0 0 0 1 1 0 1
A B
ITPW
ZPT
25
Tablica dekompozycji dla funkcji TL27
0000
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
000 – – – 1 – 0 – 1 – – 1 – – – –
001 0 – 0 – – – 1 – – – – 1 – – –
010 – 1 – – – – – – – 0 – – – – –
011 – 0 – – 1 – – 1 – – – 0 – – –
100 – – – – – 1 – – – – – – 1 – –
101 – – – – – – – – – – – – 0 0 1
110 – – – – – – – – – – – – – – 1
111 – – 1 – – – – – 1 – – – – – 1
x3
x5
x6
x10
x7x8x9
ITPW
ZPT
26
Tablica dekompozycji dla funkcji TL27
000 1
1
0
0
001 0 1
010 0 1
011 1 0
100 – 1
101 1 0
110 1 –
111 1 –
x7x8x9
g x3 x5 x6 x10 G
0 0 0 0 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 1 1 1 0
H G
ITPW
ZPT
27
Praktyczny wynik dekompozycji funkcji TL27
f
G
H
x7 x8 x9
x3 x5 x6 x10
Tylko 2 komórki
.type fr
.i 10
.o 1
.p 250010111010 01010010100 00100011110 01011101011 01100010011 00100010110 01110100110 00100110000 00101000010 00111111011 10000010100 11101110011 10100100000 10100011111 10010000110 11111010001 11111101001 11111111111 10010000000 11101100111 10010001111 11111100010 11010111101 10110000110 10100111000 1.e
ITPW
ZPT
28
Zagadka
QUARTUS
25 kom. (FLEX)
lub 27 kom. (Stratix)!!!
Na ilu komórkach zrealizuje tę funkcję amerykański system QUARTUS?
ITPW
ZPT
29
Jak usprawnić obliczanie MKZ?
W metodzie dekompozycji jednym z najważniejszych algorytmów jest algorytm obliczania maksymalnych klas zgodności
W celu sprawniejszego obliczania MKZ wprowadzimy metodę wg par zgodnych:
a) metodę bezpośredniąb) metodę iteracyjną
a) metodę bezpośredniąb) metodę iteracyjną
ITPW
ZPT
30
Metoda bezpośrednia
a, bb, ca, c
{a, b, c}
a, b, ca, b, db, c, da, c, d
{a, b, c, d}
i.t.d.
Pary zgodne:
ITPW
ZPT
31
Przykład – obliczanie klas zgodności
1,4,5
1,4,6
2,5,7
3,4,6
0,3,4,6
Maksymalne klasy zgodności:
0,30,40,6
1,31,41,51,6
2,52,7
3,43,6
4,54,6
5,7
0,3,4
0,4,6
0,3,6
1,3,4
1,3,6 1,3,4,6
1,4,5
2,5,7
ITPW
ZPT
32
Algorytm MKZ wg par zgodnych
E – relacja zgodności (ei,ej) EE – relacja zgodności (ei,ej) E
Rj = { ei | i < j oraz (ei,ej) E}Rj = { ei | i < j oraz (ei,ej) E}
RKZk RKZk+1 KZ RKZkRKZk RKZk+1 KZ RKZk
a) Rk+1 = , RKZk+1 jest powiększana o klasę KZ = {k+1}a) Rk+1 = , RKZk+1 jest powiększana o klasę KZ = {k+1}
b) KZ Rk+1 = , KZ bez zmianb) KZ Rk+1 = , KZ bez zmian
c) KZ Rk+1 , KZ’ = KZ Rk+1 {k+1} c) KZ Rk+1 , KZ’ = KZ Rk+1 {k+1}
ITPW
ZPT
33
Przykład
R0 =R0 =
R1 =R1 =
R2 =R2 =
R3 =R3 =
R4 =R4 =
R5 =R5 =
0,10,1
0,1,30,1,3
1,2,41,2,4
Rj = { ei | i < j oraz (ei,ej) E}Rj = { ei | i < j oraz (ei,ej) E}
E:E: 0,30,40,61,31,41,51,62,52,73,43,64,54,65,7
R6 =R6 = 0,1,3,40,1,3,4
R7 =R7 = 0,2,50,2,5
ITPW
ZPT
34
Przykład
R0 =R0 =
R1 =R1 =
R2 =R2 =
R3 =R3 =
R4 =R4 =
R5 =R5 =
{0,1}{0,1}
{0,1,3}{0,1,3}
{1,2,4}{1,2,4}
R6 =R6 = {0,1,3,4}{0,1,3,4}
R7 =R7 = {0,2,5}{0,2,5}
{0}
{0} {1}
{0} {1} {2}
{0,3} {1,3} {2}
{0,3,4} {1,3,4} {2}
{4,5} {1,4,5} {2,5} {0,3,4} {1,3,4}
{1,4,6}
{2,5,7}
{0,3,4,6} {1,3,4,6}{2,5} {1,4,5}
{0,3,4,6} {1,3,4,6} {5,7} {1,4,5}
Rodzina MKZ
ITPW
ZPT
35
Warto umiejętnie dobierać metodę...
(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (2,3), (2,5), (2,6), (2,7), (3,4), (3,5), (3,6), (3,8), (4,6), (4,7), (4,8), (5,6), (5,7), (5,8),(6,7), (6,8), (7,8),
Pary zgodne:
Pary sprzeczne:
(1,8)(1,8) (2,4)(2,4) (2,8)(2,8) (3,7)(3,7) (4,5)(4,5)
Wybór metody jest oczywisty!
ITPW
ZPT
36
Graf niezgodności:
Wierzchołki grafu reprezentują kolumny tablicy dekompozycji.
(ki, kj)
(ki, ks)
(kl, kr)
Pary niezgodne:
Niezgodne pary kolumn łączy się krawędziami.
ks k2
ki
kj
kl
k1
kr
kp
W obliczaniu kolumn, które można „skleić” znajdują zastosowanie algorytmy kolorowania grafu.
W poszukiwaniu innych metod…
ITPW
ZPT
37
Przykład…
0,30,40,61,31,41,51,62,52,73,43,64,54,65,7
Pary zgodne: Pary sprzeczne:
0,1 0,2 0,5 0,7 1,2 1,7 2,32,4 2,6 3,5 3,7 4,7 5,6 6,7
ITPW
ZPT
38
Graf niezgodności
(0,1), (0,2), (0,5), (0,7), (1,2), (1,7), (2,3),(2,4), (2,6), (3,5), (3,7), (4,7), (5,6), (6,7)
0
1
2
3
4
5
6
7
i jego kolorowanie