Struktury układów logicznych

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Minimalizacja formuł Boolowskich
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Obserwowalność System ciągły System dyskretny
WYKŁAD 6 ATOM WODORU W MECHANICE KWANTOWEJ (równanie Schrődingera dla atomu wodoru, separacja zmiennych, stan podstawowy 1s, stany wzbudzone 2s i 2p,
Filtracja obrazów cd. Filtracja obrazów w dziedzinie częstotliwości
Liczby pierwsze.
Michał Łasiński Paweł Witkowski
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania.
Układy logiczne kombinacyjne sekwencyjne
Minimalizacja funkcji boolowskich
I T P W ZPT 1 Jak smakuje Espresso I T P W ZPT 2.
UKŁADY SZEREGOWO-RÓWNOLEGŁE
gdzie A dowolne wyrażenie logiczne ; x negacja x Tablice Karnaugha Minimalizacja A x+ A x=A gdzie A dowolne wyrażenie logiczne ;
Klasyfikacja systemów
Transformacja Z (13.6).
Tytuł prezentacji Warszawa, r..
minimalizacja automatów
Podstawy układów logicznych
Układy sekwencyjne - pojęcie automatu
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
UKŁADY LOGICZNE Prowadzi: Tadeusz ŁUBA, (GE pok. 472)
o granicy funkcji przy obliczaniu granic Twierdzenia
Dekompozycja metodą rachunku podziałów c.d.
Zmodyfikowana metoda ekspansji Komputerowe narzędzia syntezy logicznej
Wyrażenia algebraiczne
Metody Lapunowa badania stabilności
Problem kodowania stanów w układach sekwencyjnych (automatach)
Espresso mankamenty.
Problem kodowania x s 1 A B C D Wariant I A = 00 B = 01 C = 10 D = 11
Espresso mankamenty.
Obserwatory zredukowane
II Zadanie programowania liniowego PL
Sekwencyjne bloki funkcjonalne
Analiza wpływu regulatora na jakość regulacji (1)
Analiza wpływu regulatora na jakość regulacji
Minimalizacja funkcji boolowskich
Przykład syntezy strukturalnej
Minimalizacja funkcji boolowskich
Minimalizacja automatu
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
Dekompozycja Kalmana systemów niesterowalnych i nieobserwowalnych
Synteza logiczna w projektowaniu…
Problematyka wykładu Podział rejestrów i liczników
Metoda klasyczna ... to metoda tablicowa, graficzna, której podstawowe
Liczby całkowite dodatnie BCN
Struktury układów logicznych
Obserwowalność i odtwarzalność
Sterowanie – metody alokacji biegunów II
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
(C) Jarosław Jabłonka, ATH, 5 kwietnia kwietnia 2017
II Zadanie programowania liniowego PL
PODSTAWOWE BRAMKI LOGICZNE
Podstawy Techniki Cyfrowej
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Złożone układy kombinacyjne
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Bramki logiczne i układy kombinatoryczne
Dekompozycja metodą rachunku podziałów c.d.
Systemy dynamiczne 2014/2015Obserwowalno ść i odtwarzalno ść  Kazimierz Duzinkiewicz, dr hab. in ż. Katedra In ż ynierii Systemów Sterowania 1 Obserwowalność.
Działania w systemie binarnym
Kalendarz 2020.
Elementy geometryczne i relacje
I T P W ZPT 1 Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b =  log 2 |S|  Problem kodowania w automatach Minimalna.
ZPT f Gate ArrayStandard Cell Programmable Logic Devices PAL, PLA 1 Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Dekompozycja funkcji.
ZPT 1 Dekompozycja nierozłączna Pojęcie r - przydatności Dekompozycja zrównoważona Dekompozycja równoległa.
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
I T P W ZPT 1 Jak usprawnić obliczanie MKZ? W celu sprawniejszego obliczania MKZ wprowadzimy skuteczniejszą metodę wg par zgodnych Znamy metodę wg par.
Pojęcia podstawowe Algebra Boole’a … Tadeusz Łuba ZCB 1.
Metoda klasyczna (wg książki Sasao)
Zapis prezentacji:

Struktury układów logicznych f Gate Array Standard Cell Programmable Logic Devices 1

Struktury układów logicznych Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki! FPGA 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 Field Programmable Gate Array 2

Dekompozycja funkcji boolowskich 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 są jeszcze wbudowane do systemów komercyjnych. 3

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 od razu omówimy w ujęciu nowoczesnym - dostosowanym do złożoności dzisiejszych technologii. Metodę klasyczną omówimy szkicowo, koncentrując się na jej mankamentach… 4

Dekompozycja metodą rachunku podziałów X U, V są rozłącznymi podzbiorami X, U W V ale U  V niekoniecznie = X G czyli U  V  X H W jest podzbiorem właściwym U W  U Y = F(X) Ponadto dopuszczamy powiększenie zbioru argumentów bloku G

Twierdzenie o dekompozycji … w ujęciu rachunku podziałów Funkcję F: Bn  {0,1}m można zrealizować w strukturze: F = H(U,G(V,W)) U G H P F wtedy i tylko wtedy, gdy istnieje podział G ³ PVW taki, że: PU · G £ PF

Twierdzenie o dekompozycji - interpretacja F Y = F(X) X Y = H(U,G(V,W)) U G H P X G ³ PVW taki, że: PU · G £ PF PU PVW (PV) to podziały indukowane przez argumenty zbiorów U, V  W, (V) PF Podział wyjściowy funkcji F G  Trzeba obliczyć!!!

Przykład ilustrujący metodę dekompozycji Funkcja f: Obliczyć dekompozycję dla U = {x1,x2}, V = {x3,x4,x5} x1 x2 x3 x4 x5 f 1 2 3 4 5 6 7 8 9 10 11 Nie wiemy ile jest wyjść z bloku G G H x1 x2 x3 f x5 x4 Pf =

Przykład…obliczanie podziałów PU, PV U = {x1,x2} V = {x3,x4, x5} x1 x2 x3 x4 x5 f 1 2 3 4 5 6 7 8 9 10 11 PU = PV = PU = Pf = Bardzo ważny w dalszych obliczeniach jest… PU |PU·Pf = Pf = 9

Przykład…obliczanie ПG Podział G składamy z bloków podziału PV, ale tak aby zapewnić warunki „rozdziału” zapisane w podziale PU |PU·Pf G ³ PV PU · G £ PF PU |PU·Pf = PV = G: Sklejanie, małe bloki podziału PV sklejamy w większe bloki G 3,9 ПG =

Komentarz G H ПG = Obliczony ΠG jest dwublokowy… f x1 x2 x3 x4 x5 Zatem dopiero teraz wiemy ile jest wyjść z bloku G. Tylko jedno wyjście! G H f 11

Przykład…tworzenie tablicy funkcji g H x1 x2 x3 x5 x4 ПG = x1 x2 x3 x4 x5 f 1 2 3 4 5 6 7 8 9 10 11 g 1 x3 x4 x5 g 1 2 3 4 5 6 7 8 9 10 11 x3 x4 x5 g 1

Przykład…tworzenie tablicy funkcji h h=f G H x1 x2 x3 x5 x4 g ПG = x1 x2 x3 x4 x5 f 1 2 3 4 5 6 7 8 9 10 11 g 1 x1 x2 g h 1 2 3 4 5 6 7 8 9 10 11 x1 x2 g h 1

Przykład (TL27) ilustrujący skuteczność dekompozycji Synteza układów logicznych str. 65 .type fr .i 10 .o 1 .p 25 0010111010 0 1010010100 0 0100011110 0 1011101011 0 1100010011 0 0100010110 0 1110100110 0 0100110000 0 0101000010 0 0111111011 1 0000010100 1 1101110011 1 0100100000 1 0100011111 1 0010000110 1 1111010001 1 1111101001 1 1111111111 1 0010000000 1 1101100111 1 0010001111 1 1111100010 1 1010111101 1 0110000110 1 0100111000 1 .e Można wykazać, że funkcja ta jest zależna od 7 argumentów X = {x3, x5, x6, x7, x8, x9, x10} Celem przykładu jest pokazanie, że cały proces dekompozycji (łącznie z obliczeniem tablic prawdy) można wykonać wyłącznie na podziałach Dalej wszystkie obliczenia będą wykonywane na podziałach P3, P5, P6, P7, P8, P9, P10 Są to podziały na zbiorze ponumerowanych wektorów 1,…,25

Specyfikacja funkcji – podziałami Pf =

Ustalenie zbiorów U i V G H X = {x3, x5, x6, x7, x8, x9, x10} Przyjmujemy arbitralnie… U = {x7, x8, x9} V = {x3, x5, x6, x10} f G H x 7 8 9 3 5 6 10 Nie wiemy ile jest wyjść z bloku G

Obliczenie podziałów PU, PV Można je wyznaczyć bezpośrednio z tablicy funkcji, ale tym razem przy zastosowaniu rachunku podziałów: U = {x7, x8, x9} V = {x3, x5, x6, x10} PU=P7•P8•P9 …obliczenia są żmudne, ale proste PV=P3•P5•P6•P10 PU = PV=

Podział ilorazowy Pu|Pu•PF Przy liczeniu podziału ilorazowego po prostu rozdzielamy elementy bloków PU między różne bloki podziału Pf Pu|Pu•Pf = ((1,4)(10) ; (2)(11) ; (3)(14,18,21) ; (5,9)(12,22) (6,7)(15,20,24) ; (8)(13,16,19) ; (17,25) ; (23)) W każdym bloku Pu|Pu• Pf są co najwyżej dwa elementy (nawiasy), zatem liczba bloków podziału ΠG musi być co najmniej dwa.

Obliczenie ΠG Pu|Pu · Pf = ((1,4)(10) ; (2)(11) ; (3)(14,18,21) ; (5,9)(12,22) ; (6,7)(15,20,24) ; (8)(13,16,19) ; (17,25) ; (23)) PV= 1 4,17 10,18,23 3,6,11 2 5,14 21 12 7,22 9 15,19,24 20 8,25 13 16

Liczba wyjść bloku G G H Skoro ΠG jest dwublokowy x f 7 8 9 3 5 6 10 Liczba wyjść z bloku G = 1

Co dalej … f G H x 7 8 9 3 5 6 10 Zawartość bloków G i H, czyli tablice prawdy funkcji G i H

Funkcja G PV= x3 x5 x6 x10 g 1 1 1 0 1 0 1 0 1 0 0 1 0 P3 = P5 = P6 = Wektory (wiersze) tablicy funkcji g są wyznaczane przez bloki PV, a wartości tej funkcji przez bloki ΠG 1 1 1 0 1 0 1 0 1 0 0 1 0 P3 = P5 = P6 = P10 =

… Funkcja H < PF ...) 14,18,21 ; 3 11 2 10 1,4 ( PU  G = x7 x8 x9 g h Wektory (wiersze) tablicy funkcji h są wyznaczane przez bloki PU  G , a wartości tej funkcji przez bloki PF 1 0 1 0 1 0 1 1 1 0 1 0 1 … P7 = P8 = P9 =

Tylko 2 komórki typowej struktury FPGA Co uzyskaliśmy… Tylko 2 komórki typowej struktury FPGA QUARTUS 23 kom. Uzyskaliśmy wynik dziesięciokrotnie razy lepszy od wyniku systemu Quartus amerykańskiej firmy Altera 24

Dekompozycja zespołu funkcji Twierdzenie w ujęciu rachunku podziałów jest ogólne, obliczenia są niezależne od liczby wyjść funkcji F. X X G H Y U V F Dekompozycja Y = y1, y2,…, ym

Przykład dekompozycji zespołu funkcji (SUL Przykład 8.4) x1 x2 x3 x4 x5 y1 y2 y3 1 0 0 0 0 0 0 0 0 2 0 0 0 1 1 0 1 0 3 0 0 0 1 0 1 0 0 4 0 1 1 0 0 0 1 1 5 0 1 1 0 1 0 0 1 6 0 1 1 1 0 7 0 1 0 0 0 8 1 1 0 0 0 9 1 1 0 1 0 10 1 1 1 0 0 11 1 1 1 1 1 12 1 1 1 1 0 13 1 0 0 0 1 14 1 0 0 1 1 15 1 0 0 1 0 v v v v v Niezależnie od liczby funkcji wszystkie wyjścia opisujemy jednym! podziałem v

Przykład…wyznaczanie podziałów PU, PV x3 x4 x1 x2 x5 g h • • • Szukamy dekompozycji  U = {x3,x4} V = {x1,x2,x5}   PU  = P3•P4 PV=P1•P2•P5

Przykład…obliczanie G Jak wyznaczyć G ??? Trochę inny zapis (2) (9,14) (3,15)

Przykład…kodowanie ΠG W przypadku zespołu funkcji liczba bloków podziału ΠG jest większa. Należy zakodować bloki ΠG Kodowanie jest dowolne 01 10 00 Aktualna teoria nie podaje rozwiązania problemu kodowania Kodowanie jest potrzebne do wyznaczenia tablic prawdy funkcji G i H

Tablica prawdy G x1 x2 x5 g1 g2 . . . 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 01 10 00

… PU  G < PF PU  G = Tablica prawdy H x3 x4 g1 g2 y1 y2 y3 . . . 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 01 10 00 PU  G < PF … ( PU  G =

Co uzyskaliśmy… g h Proces minimalizacji jest niepotrzebny!!! Funkcje g i h można obliczyć jawnie…z tablic prawdy można uzyskać realizacje na bramkach. x3 x4 x1 x2 x5 g h Ale dla struktur FPGA wystarczy schemat dekompozycji i tablice prawdy. Proces minimalizacji jest niepotrzebny!!!

Systematyczny algorytm dekompozycji Obliczanie podziału ΠG metodą przenoszenia bloków PV na podstawie podziału ilorazowego PU│PU•ΠG jest trudne do zalgorytmizowania. Szczęśliwie jednak algorytm obliczania ΠG można sprowadzić do algorytmu obliczania MKZ.

Systematyczny algorytm dekompozycji PV =( B1,…,Bi,…,Bj,…,BN) ij =( B1,…,BiBj,…,BN) Dwa bloki Bi i Bj podziału PV są zgodne, jeśli podział ij uzyskany z PV przez sklejenie Bi oraz Bj w jeden blok i pozostawienie pozostałych bloków bez zmiany spełnia warunek Twierdzenia o dekompozycji: PU  ij  PF. W przeciwnym przypadku Bi oraz Bj są niezgodne.

Przykład (ten sam co poprzednio) U = {x3,x4} oraz V = {x1,x2,x5}   Numerujemy bloki PV B1 B2 B3 B4 B5 B6 B7 B8 12 = 57 = 35

Przykład … Można sprawdzić, że (B1, B2) jest sprzeczna PU  12 PF, (B1, B2) jest sprzeczna PU  57  PF (B5, B7) jest zgodna Ale do wyznaczenia zgodnych (lub sprzecznych) par (Bi, Bj) niekoniecznie musimy się posługiwać skomplikowaną nierównością PU  ij  PF Wystarczy w tym celu obliczyć iloczyn zbioru Bi  Bj z blokami podziału PU i sprawdzić, czy każdy „niepusty iloczyn” jest zawarty w jakimś bloku PF

Przykład … B1  B2 = (B1,B2) jest sprzeczna PF (B5, B7) jest zgodna  PU PF B5  B7 = (B5, B7) jest zgodna  PU  PF 37

Doskonale wiemy jak obliczać Maksymalne Klasy Zgodne MKZ Przykład c.d. Pary zgodne: (B1,B4), (B1,B6), (B1,B8), (B2,B3), (B2,B4), (B2,B6), (B3,B7), (B3,B8), (B4,B6), (B4,B7), (B4,B8), (B5,B7), (B6,B7), (B6,B8). Doskonale wiemy jak obliczać Maksymalne Klasy Zgodne MKZ Klasy maksymalne: {B1,B4, B6, B8} {B4, B6, B7} B1 B2 B3 B4 B5 B6 B7 B8 {B2, B4, B6} {B3, B8} {B3, B7} = P G ; {B2, B3} {B5, B7} ; {B1,B4, B6, B8} {B2, B3} {B5, B7}

Ten sam rezultat co poprzednio Przykład c.d. B1 B2 B3 B4 B5 B6 B7 B8 = P G ; {B2, B3} {B5, B7} ; {B1,B4, B6, B8} Ten sam rezultat co poprzednio 39

Komentarz: algorytmy dekompozycji Dekompozycję funkcjonalną nazywać będziemy szeregową, dla odróżnienia od równoległej Szeregowa Równoległa 40