38
I T P W ZPT 1 Struktury układów logicznych f Gate Array Standard Cell Programmable Logic Devices

Struktury układów logicznych

Embed Size (px)

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 Presentation

Citation preview

Page 1: Struktury układów logicznych

ITPW

ZPT

1

Struktury układów logicznych

f

Gate Array Standard Cell

Programmable Logic Devices

Page 2: Struktury układów logicznych

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

Page 3: Struktury układów logicznych

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.

Page 4: Struktury układów logicznych

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)

Page 5: Struktury układów logicznych

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

Page 6: Struktury układów logicznych

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

Page 7: Struktury układów logicznych

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)

Page 8: Struktury układów logicznych

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))

Page 9: Struktury układów logicznych

ITPW

ZPT

9

Praktyczne znaczenie dekompozycji..

x1 x2 x3 x4 x5

f

x1 x2 x3x4 x5

g

h

g1 g2

h

..dla struktur FPGA

Page 10: Struktury układów logicznych

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

Page 11: Struktury układów logicznych

ITPW

ZPT

11

Relacja zgodności kolumn

Jak obliczać dekompozycję

Page 12: Struktury układów logicznych

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.

Page 13: Struktury układów logicznych

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ć”

Page 14: Struktury układów logicznych

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.

Page 15: Struktury układów logicznych

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

Page 16: Struktury układów logicznych

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

Page 17: Struktury układów logicznych

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

Page 18: Struktury układów logicznych

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

Page 19: Struktury układów logicznych

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

Page 20: Struktury układów logicznych

ITPW

ZPT

20

uzyskując w rezultacie …

c d ea b

g

h

…strukturę na bramkach

Page 21: Struktury układów logicznych

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

Page 22: Struktury układów logicznych

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

Page 23: Struktury układów logicznych

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

Page 24: Struktury układów logicznych

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

Page 25: Struktury układów logicznych

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

Page 26: Struktury układów logicznych

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

Page 27: Struktury układów logicznych

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

Page 28: Struktury układów logicznych

ITPW

ZPT

28

Zagadka

QUARTUS

25 kom. (FLEX)

lub 27 kom. (Stratix)!!!

Na ilu komórkach zrealizuje tę funkcję amerykański system QUARTUS?

Page 29: Struktury układów logicznych

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ą

Page 30: Struktury układów logicznych

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:

Page 31: Struktury układów logicznych

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

Page 32: Struktury układów logicznych

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}

Page 33: Struktury układów logicznych

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

Page 34: Struktury układów logicznych

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

Page 35: Struktury układów logicznych

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!

Page 36: Struktury układów logicznych

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…

Page 37: Struktury układów logicznych

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

Page 38: Struktury układów logicznych

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