odstawy układów logicznych ykład dla ydziału nformatyki / Uklady Logiczne ASC FLEX rowadzi: adeusz ŁUBA, (GE pok. 47) GAL ELD
Organizacja. Łuba dr G. Borowik Dr. omaszewicz http://www.zpt.tele.pw.edu.pl
Egzamin... Funkcja boolowska Ćwiczenia 4 pkt. Egzamin 6 pkt. 3
Literatura. Astola J., Stankovic R.: Fundamentals of Switching heory and Logic Design, Springer 6.. Minimization Algorithms for VLS Synthesis, Kluwer Academic ublishers, Boston, 984.. Brown F. M.: Boolean Reasoning. he Logic of Boolean Equation, Kluwer Academic ublishers, 99. 3. Brzozowski J. A, Seger C-J.: Asynchronous Circuits, Springer Verlag, New York 995. 4. Brzozowski J., Łuba.: Decomposition of Boolean Functions Specified by Cubes. Journal of Multiple-Valued Logic and Soft Computing. Vol. 9, pp. 377 47. Old City ublishing, nc., hiladelphia 3. 5. De Micheli G.: Synthesis and Optimization of Digital Circuits. McGraw-Hill, New York, 994. Również tłumaczenie polskie: Łuba Synteza.: i optymalizacja układów cyfrowych. N, arszawa 998. 6. Devadas, S., Ghosh, A., and Keutzer, Synteza K. Logic Synthesis. układów McGraw-Hill, New York, 994. 7. Gajski D.D.: Astola rinciples of digital J., design. Stankovic rentice-hall logicznych. nternational, R: New jersey 997. 8. Hassoun S., Sasao., Brayton R. (ed.): Logic Synthesis and Verification. Fundamentals of Kluwer Academic ublishers, New York. 9. man S., edram M.: Logic Synthesis for Low ower VLS Design, Kluwer Academic ublishers, 999. 5. Kamionka-Mikuła H., Małysiak H., ochopień B.: Układy cyfrowe. eoria i przykłady. yd. racowni Komputerowej Jacka Skalmierskiego. Gliwice 3. Logic Design.. Kania D.: Synteza logiczna przeznaczona dla matrycowych struktur programowalnych typu AL. olitechnika Śląska. Zeszyty Naukowe. Nr 69. Gliwice 4. Springer 6. Katz R. H.: Contemporary logic design. he Benjamin/Cummings ublishing Company, nc., Redwood City, 994 3. Kohavi Z.: Switching and Finite Automata heory. Mc-Graw-Hill, New York, 978. 4. Kuźmicz.: Układy ASC w polskich realiach. rzegląd elekomunikacyjny i iadomości elekomunikacyjne, nr 8, pp. 457-46, 995. 5. Lala.K.: ractical digital logic design and testing. rentice-hall, New Jersey 996. 6. Łuba.(red.), Rawski M., omaszewicz., Zbierzchowski B.: Synteza układów cyfrowych. KŁ arszawa 3. 7. Łuba., Zbierzchowski B., Zbysiński.: Układy reprogramowalne dla potrzeb telekomunikacji cyfrowej. rzegląd elekomunikacyjny i iadomości elekomunikacyjne, nr 5,. Oficyna ydawnicza Switching heory and 9. Łuba.: Synteza układów logicznych. Oficyna ydawnicza, arszawa 5. 9. Łuba.: Rola i znaczenie syntezy logicznej w technice cyfrowej układów programowalnych. Elektronika, str. 5 9, nr 7-8,.. Łuba., Jasiński K., Zbierzchowski B.: rogramowalne układy przetwarzania sygnałów i informacji - technika cyfrowa w multimediach i kryptografii, rzegląd elekomunikacyjny i iadomości elekomunikacyjne, str. 48-48, nr 8-9, 3.. Majewski., Albicki A.: Algebraiczna teoria automatów. N, arszawa 98.. Mikołajczak B.: Algebraiczna i strukturalna teoria automatów. N, arszawa Łódź 985. 3. Mulawka J.: Systemy ekspertowe. N, arszawa 996. 4. Mrózek A., łonka L.: Analiza danych metodą zbiorów przybliżonych. Zastosowania w ekonomii, medycynie i sterowaniu. Akademicka Oficyna ydawnicza LJ, arszawa 999. 5. McCluskey E. J.: Logic design principles, with emphasis on testable semicustom circuits. rentice-hall nternational, nc., New Jersey 986. 6. awlak Z.:Rough Sets. heoretical Aspects of Reasoning about Data, Kluwer Academic ublishers, 999. 7. Roth C. H.: Fundamentals of Logic Design. est ubl. CO., 985. 8. Salsic Z., Smailagic A.: Digital systems design and prototyping using field programmable logic. Kluwer Academic ublishers, 997. 9. Sasao.: Switching heory for Logic Synthesis, Kluwer Academic ublishers, 999. 3. Sasao.: Logic Synthesis and Optimization. Kluwer Academic ublishers,993. 3. Słowiński R.(ed.): ntelligent Decision Support - Handbook of Applications and Advances of the Rough Sets heory, Kluwer Academic ublishers, Dordrecht 99. 3. Scholl C.: Functional Decomposition with Application to FGA Synthesis. Kluwer Academic ublisher, Boston. 33. yszer J.: Układy cyfrowe. Materiały pomocnicze do wykładów. yd. olitechniki oznańskiej. oznań. 34. Zieliński C.: odstawy projektowania układów cyfrowych. N, arszawa 3. 35. Zbysiński., asierbiński J.: Układy programowalne pierwsze kroki. yd., ydawnictwo BC. arszawa 4. 4
Literatura 5
6
Z układami logicznymi mamy do czynienia od dawna... Rok 847 7
8... Układ logiczny 8
Rozwój technologii miliony bramek logicznych ASC 9
Układy te wytwarzane są w różnych technologiach Full Custom Semi custom Układy programowalne układy zamawiane przez użytkownika układy projektowane przez użytkownika układy programowane przez użytkownika (LD)
Układy programowalne (rogrammable Logic Devices) to układy scalone, których właściwości funkcjonalne są definiowane nie przez producenta, lecz przez końcowego użytkownika. Najważniejsza cechą tych układów jest możliwość nadawania im (przez programowanie) określonych przez użytkownika cech funkcjonalnych, w jego laboratorium czy na biurku, a nie w fabryce. LD LD
Układy FGA (Field rogrammable Gate Array) Configurable Logic Block (CLB) Logic Element (LE) DAA N LOG C VARABLES.di.a.b.c.d.e QX F CO MBNAONAL FUNCON G QY F DN G F DN G MUX MUX D Q RD D Q QX F G QY.X CLB OUUS.Y ENABLE clk clk RESE.ec "" (ENABLE).k.rd "" ( NH B) RD (GLOBAL RESE) Reprogramowania i rekonfiguracji
Układy programowalne wyrównują szanse 3
Układ kryptograficzny LD ASC F@*q~ LD 4
Komputerowe systemy projektowania GAL AL FGA FLEX + ELD 5
Komputerowe projektowanie Języki opisu sprzętu Specyfikacja HDL Hardware Description Language (HDL): Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne FGA 6
iedza niezbędna do opanowania sztuki komputerowego projektowania Synteza logiczna Odwzorowanie technologiczne Układy logiczne Języki opisu sprzętu Synteza funkcjonalna Układy cyfrowe 7
Znaczenie syntezy logicznej Niedoskonałość metod syntezy logicznej Specyfikacja HDL Synteza funkcjonalna Nowe procedury syntezy logicznej Synteza logiczna Odwzorowanie technologiczne FGA 8
Systemy komercyjne i akademickie Komercyjne systemy projektowania nie nadążają za rozwojem technologii. Dlatego powstają Akademickie Systemy Syntezy Logicznej: niewygodne do bezpośredniego projektowania, ale generują wyniki niekiedy -krotnie lepsze bezpośrednio przyczyniając się do sukcesu rynkowego realizowanego układu cyfrowego 9
rzykład prosty układ x x x 3 x 9 kombinacyjny Układ kombinacyjny UK y y.type fr.i.o.p 5.e
-- -5-4 9::4 -- LA -> VHDL converter ver.. library EEE; use EEE.SD_LOGC_64.all; entity bul is port(i : in std_logic_vector( to ); o : out std_logic_vector( to )); end bul; architecture arch of bul is begin Realizacja funkcji F w systemie Quartus LA: process(i) begin case i is when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when others => o <= "XX"; end case; end process; end; Quartus
-- -5-4 9::4 -- LA -> VHDL converter ver.. library EEE; use EEE.SD_LOGC_64.all; entity bul is port(i : in std_logic_vector( to ); o : out std_logic_vector( to )); end bul; architecture arch of bul is begin Realizacja funkcji F w systemie Quartus LA: process(i) begin case i is when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when others => o <= "XX"; end case; end process; end; Quartus 8 komórek (Stratix)
System Quartus radycyjne procedury syntezy logicznej Specyfikacja HDL Synteza funkcjonalna Nowe procedury syntezy logicznej Synteza logiczna Odwzorowanie technologiczne FGA 3
-- -5-4 9::4 -- LA -> VHDL converter ver.. Zagadka - jak zachowa się Quartus z nową procedurą? library EEE; use EEE.SD_LOGC_64.all; entity bul is port(i : in std_logic_vector( to ); o : out std_logic_vector( to )); end bul; architecture arch of bul is begin LA: process(i) begin case i is when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when "" => o <= ""; when others => o <= "XX"; end case; end process; end; rocedura dekompozycji 4 6 3 7 G H 7 9 G H y y 4 komórki CLB 6
odsumowanie Realizacje różnych układów np. kryptograficznych, DS, w strukturach LD/FGA, z zastosowaniem nowoczesnych metod syntezy logicznej, a w szczególności Akademickich Systemów Syntezy Logicznej, to ze względu na dynamikę rozwoju technologii szanse przede wszystkim dla aktualnie studiujących 5
ojęcia podstawowe Algebra Boole a Elementy teorii grafów Klasy zgodności Rachunek podziałów
Dwuelementowa algebra Boole a Algebra Boole a jest algebrą z trzema operacjami na dwuwartościowych argumentach, które przyjmują wartości: i. Rezultaty tych operacji są także dwuwartościowe. e trzy operacje to: - suma logiczna (suma boolowska, alternatywa), - iloczyn logiczny (iloczyn boolowski, koniunkcja), - negacja (inwersja). Dwie pierwsze operacje są n-argumentowe, a trzecia jest jednoargumentowa.
Dwuelementowa algebra Boole a Operacja sumy logicznej (OR) jest zdefiniowana następująco: jeżeli co najmniej jeden z argumentów jest równy, to wynik jest równy, zatem suma logiczna jest równa tylko dla przypadku, gdy wszystkie argumenty są równe. + = + = + = + = a b Bramka OR c = a + b gdzie + oznacza operację OR
Dwuelementowa algebra Boole a Operacja iloczynu logicznego (AND) jest zdefiniowana następująco: wynik iloczynu jest równy, wtedy i tylko wtedy, gdy wszystkie argumenty przyjmują wartość. = = = = a b Bramka AND c = a b gdzie oznacza operację AND
Dwuelementowa algebra Boole a Operacja negacji (NO) zmienia wartość argumentu na przeciwny. Negacją jest, a negacją jest = ; = x x Operacja NO zmiennej X, jest oznaczana X
rawa i własności algebry Boole a a + = a,834,834. 89,. 89,.. a = a + = a = a,834,834. 3,., +,=,,= odwójna negacja a = a a + a = a dempotentność a a = a 6
rawa i własności algebry Boole a c.d. a + b = b + a rzemienność a b = b a Łączność a + (b + c) = (a + b) + c a (b c) = (a b) c Rozdzielność a + b c = (a + b) (a + c) a (b + c) = a b +a c rawa De Morgana y = a b = a + b y = a + b = a b 7
yrażenie boolowskie yrażenie boolowskie to formuła, w której zmienne boolowskie połączone są operatorami: + (OR), (AND), (NO) X rzykład: a+b+c d+e a+b(d+e) a+b+cd+e Kropkę często pomijamy Kolejność operacji:. NO. AND 3. OR Może być zmieniona przez stosowanie nawiasów. 8
Upraszczanie wyrażenia boolowskiego abc + abc + abc + abc + abc = = abc + ab(c + c) + ab(c + c) = = a bc + ab + = = ab = a bc + a(b + b) = a bc + a + abc = a + abc + abc = a + bc
Grafy Grafem prostym nazywamy parę G = (V, E), gdzie V jest niepustym skończonym zbiorem wierzchołków, a E jest skończonym zbiorem krawędzi nieuporządkowanych par różnych elementów ze zbioru V. rzykład: V = {,,3,4, 5,6} E = {(,6), (,3), (,4), (,5), (,6), (3,4), (3,6), (5,6)} 6 3 5 4
Klika Dowolny podzbiór wierzchołków, w którym każde dwa wierzchołki są połączone krawędzią nazywamy kliką. Klikę, która nie jest zawarta w żadnej istotnie innej klice, nazywamy maksymalną. Najliczniejszą klikę w danym grafie nazywamy największa kliką. V = {, 3, 4} V = {, 3, 6} 6 V = {, 5, 6} 3 5 4
Zbiór niezależny (antyklika) Zbiorem niezależnym nazywamy dowolny zbiór wierzchołków, które nie są sąsiednie w danym grafie. Analogicznie określamy pojęcie maksymalnego zbioru niezależnego.
Zbiór niezależny (antyklika) Zbiorem niezależnym nazywamy dowolny zbiór wierzchołków, które nie są sąsiednie w danym grafie. Analogicznie określamy pojęcie maksymalnego zbioru niezależnego. rzykłady zbiorów niezależnych V = {, 4, 5} 6 V = {, 3, 5} V = {4, 6} V = {, } 5 4 3 3
nie jest zadaniem łatwym. Obliczanie klik roblem obliczania maksymalnych klik można sprowadzić do problemu obliczania maksymalnych klas zgodności definiowanych dla danej relacji zgodności.
ojęcie relacji loczynem kartezjańskim zbiorów A i B, oznaczanym A B nazywamy zbiór wszystkich par uporządkowanych (a, b), takich że pierwszy element pary należy do zbioru A (a A), natomiast drugi do B (b B). {( a, b) : a A b B} A B =, rzykładzik Niech A = {p, q} oraz B = {r, s, t}, wtedy A B = {(p, r), (p, s), (p, t), q, r), (q, s), (q, t)} 5
ojęcie relacji Relacją nazywamy dowolny podzbiór iloczynu kartezjańskiego zbiorów A, B. ypowe własności relacji na zbiorze A (czyli A A): zwrotność a A: ara symetria a, b A: arb bra przechodniość a, b, c A : arb, brc arc 6
Najważniejsze relacje Relację, która jest zwrotna, symetryczna, i przechodnia nazywamy relacją równoważności Relację, która jest zwrotna, symetryczna, ale nie jest przechodnia nazywamy relacją zgodności 7
łasności relacji zgodności pokrywają się z intuicyjnym rozumieniem zgodności: a) Każdy element jest zgodny z samym sobą, b) Jeśli element v jest zgodny z v, to również v jest zgodny z v. c) Jeśli v jest zgodny z v oraz v jest zgodny z v 3, to z tego nie wynika, że v jest zgodny z v 3. 8
Maksymalne klasy zgodności Zbiór par określających relację zgodności nazywa się zbiorem par zgodnych. ary zgodne umożliwiają wyznaczenie maksymalnych zbiorów zgodnych. Zbiór V = {v,...,v p } nazywamy maksymalnym zbiorem zgodności (maksymalną klasą zgodności), jeżeli każda para v i, v j wzięta z tego zbioru jest zgodna oraz nie istnieje żaden inny zbiór elementów zgodnych V, zawierający V. 9
Algorytm obliczania klik metodą Maksymalnych Klas Zgodności (MKZ) Zapisać pary SRZECZNE w postaci koniunkcji dwuskładnikowych sum (v i, v j ), (v i, v j ), (v p, v q ), (v i + v j )(v i + v j )(v p + v q ) Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów v i v j v k + v p v q v r v s + tedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia
rzykład obliczania klik (Maksymalnych Klas Zgodności) v ary zgodne: ary sprzeczne: v6 v (v, v6) (v, v) (v, v3) (v, v4) (v, v3) (v, v4) v5 v3 (v, v5) (v, v6) (v, v5) (v3, v5) v4 (v3, v4) (v4, v5) (v3, v6) (v4, v6) (v5, v6)
ary sprzeczne rzykład E = {(v, v), (v, v3), (v, v4), (v, v5), (v3, v5), (v4, v5), (v4, v6)} Obliczamy wyrażenie boolowskie typu koniunkcja sum : (v +v)(v + v3)(v+ v4)(v + v5)(v3 + v5)(v4 + v5) (v4 +v6) = (v +v)(v + v3)(v+ v4)(v + v5) (v4 + v5) (v4 +v6)(v3 + v5) = (v + vv3v4v5)(v4 + v5v6)(v3 + v5) = (vv4 + vv5v6 + vv3v4v5 + vv3v4v5v6) (v3 + v5) = (vv4 + vv5v6 + vv3v4v5) (v3 + v5) = vv3v4 + vv3v5v6 + vv3v4v5 + vv4v5 + vv5v6 +vv3v4v5 = vv3v4 + vv4v5 + vv5v6 +vv3v4v5
rzykład vv3v4 + vv4v5 + vv5v6 + vv3v4v5 {v,..., v6} {v, v3, v4} = {v, v5, v6 } {v,...,v6} {v, v4, v5 } = {v, v3, v6} {v,...,v6} {v, v5, v6} = {v, v3, v4} {v,...,v6} {v, v3, v4, v5 } = {v, v6} v6 v v v5 v3 v4
Algorytm obliczania Maksymalnych Zbiorów Niezależnych (MZN) Zapisać pary ZGODNE w postaci koniunkcji dwuskładnikowych sum (v i, v j ), (v i, v j ), (v p, v q ), (v i + v j )(v i + v j )(v p + v q ) Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów v i v j v k + v p v q v r v s + tedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki iloczynowe tego wyrażenia 4
E = {(v, v6), (v, v3), (v, v4), (v, v5), (v, v6), (v3, v4), (v3, v6), (v5, v6)} rzykład Obliczamy wyrażenie boolowskie typu koniunkcja sum : v6 v5 v v4 v v3 (v +v6)(v + v3)(v+ v4)(v + v5)(v + v6)(v3 + v4) (v3 +v6) (v5 +v6) = (v + v3)(v+ v4)(v + v5)(v + v6)(v6 + v) (v6 +v3) (v6 +v5) (v3 + v4) = (v + v3v4v5v6)(v6 + vv3v5)(v3 + v4) = (vv6 +vvv3v5 + v3v4v5v6 + vv3v4v5v6) (v3 + v4) =
rzykład = (vv6 +vvv3v5 + v3v4v5v6 + vv3v4v5v6) (v3 + v4) = vv3v6 +vvv3v5 + v3v4v5v6 + vv3v4v5v6 + vv4v6 +vvv3v4v5 + v3v4v5v6 + vv3v4v5v6 = vv3v6 +vvv3v5 + v3v4v5v6 + vv4v6 = vv3v6 + vv4v6 +vvv3v5 + v3v4v5v6 v Maksymalne Zbiory Niezależne: v6 v {v, v4, v5} {v, v3, v5} {v4, v6} v5 v3 {v, v} v4
Kolorowanie grafu Kolorowaniem wierzchołków grafu nazywamy całkowitą funkcję C ze zbioru wierzchołków w pewien niepusty skończony zbiór, nazywany zbiorem kolorów, taki że jeśli: (a, b) E C(a) C(b). Jeśli zbiór kolorów jest k elementowy (gdzie k N) oraz funkcja kolorująca wierzchołki jest funkcją na, to wówczas mówimy, że graf jest k-kolorowalny. 6 5 4 3 7
odstawowy problem Jak obliczać minimalną liczbę kolorów zapewniających prawidłowe pokolorowanie grafu?
Algorytm kolorowania grafu Obliczyć wszystkie Maksymalne Zbiory Niezależne Uzyskujemy Rodzinę Maksymalnych Zbiorów Niezależnych (RMZN) Obliczyć pokrycie zbioru wierzchołków V minimalną liczbą Maksymalnych Zbiorów Niezależnych uzyskanym pokryciu usunąć elementy powtarzające się Komentarz: formalnie pokrycie.. MZN RMZN MZN = V 9
Algorytm kolorowania grafu Maksymalne Zbiory Niezależne: Minimalna podrodzina pokrywająca zbiór V = {v, v,, v6}: v {v, v4, v5} {v, v3, v5} {v, v3, v5} {v4, v6} v6 v {v4, v6} {v, v} {v, v} v5 v3 ybrane zbiory wyczerpują wszystkie elementy V Elementy powtarzające się usuwamy: Uzyskane zbiory rozłączne reprezentują kolorowanie: {v, v3, v5} {v4, v6} v4 {v} 3
Elementy rachunku podziałów odziałem na zbiorze S jest system zbiorów = {B i }, którego bloki są rozłączne, czyli a ponadto B i B j =φ, jeśli tylko i j S = i Bi Dla S = {,,3,4,5,6}, = {{,}, {3,5}, {4,6} } jest podziałem na S. Π = (,; 3,5;4,6) odstawowe pojęcia: loczyn podziałów oraz relacja. odzbiory nazywamy blokami
Elementy rachunku podziałów owiemy, że podział a jest nie większy od b (co oznaczamy: a b ), jeśli każdy blok z a jest zawarty w pewnym bloku z b. Π a = (,,4;3,5,6) Π b = (,4;,6;3,5) Π. = (,; 4;6;3,5) Π c Π a ak Π a = (,,4;3,5,6) Π. = (,; 4;6;3,5) Π() podział najmniejszy Π() podział największy Π c </ Π b Π b = (,4;,6;3,5) Π. = (,; 4;6;3,5)
Elementy rachunku podziałów loczynem podziałów Π a Π b nazywamy największy (względem relacji ) podział, który jest nie większy od Π a oraz Π b. Π a = (,,4;3,5,6) Π b = (,4;,6;3,5) Π a Π b = (,4; ; 6; 3,5)
Elementy rachunku podziałów odział ilorazowy Niech a i b są podziałami na S oraz a b. odział a b jest podziałem ilorazowym a i b, jeżeli jego elementy są blokami b, a bloki są blokami a. Na przykład: a =,6,7;,3,8;4,5 b = ;,8; 3; 4,5; 6,7 a b = ()(6,7) ; (3)(,8) ; (4,5)
Zadanie domowe arto przeczytać rozdział z książki SUL. Są tam inne przykłady obliczania MKZ....a dla treningu można obliczyć zadanie str. 39 35
Układy logiczne Układy logiczne to dział techniki cyfrowej, w której układy cyfrowe konstruowane są na poziomie bramek logicznych i przerzutników. kombinacyjne sekwencyjne D Clk FF Q Q
Funkcja boolowska Funkcją boolowską zmiennych binarnych x,...,x n nazywamy odwzorowanie: f: X Y gdzie: X B n = {,} {,}... {,}, Y B m n-razy Jeżeli X = B n, to funkcję nazywamy zupełną; w przeciwnym przypadku jest to funkcja niezupełna, zwana również funkcją nie w pełni określoną. Reprezentacje: ablica prawdy Formuła (wyrażenie) boolowskie... i wiele innych sposobów opisu (np. BDD)
ablica prawdy tablicowe przedstawienie odwzorowania f f: B 3 B f(x, x, x 3 ) 3 x x x 3 f x x x 3 f 3 4 5 6 7 Funkcja niezupełna 4 5 7 ( ) ANKB = j= AD = L a j n j 3
ablica prawdy... ( ) A NKB = j= j A D = L a j = n, 3 3 ГГ, Г, Г, () B = 3 + + + =5 D () B = 3 + + + = D 4
Uproszczony zapis tablicy prawdy x x x 3 f 3 4 5 6 7 x x x 3 f 3 4 5 6 7 f = Σ(, 3, 5, 6, 7) f = Σ[, 3, 5, 7, (, 6)] 5
yrażenie boolowskie 7,ż3-44 4 8 9447:ł, 9 7 33-44 4 8 54ł. 43 8 457,947, Г # % X a b a + b a b a 6
yrażenie boolowskie - przykład x x x 3 f f = xx x + + + + 3 xx x3 xx x3 xx x3 xx x3 3 4 5 6 7 f = + x + x + x + xx x3 xx3 xx3 xx3 xx x3 Ogromne znaczenie formuł boolowskich... 7
Operatory logiczne maj swoje realizacje techniczne - bramki logiczne x AND x x 3 OR 3 f NO 4 5 Realizacja funkcji f f = x + + + + xx3 xx x3 xx x3 xx x3 xx x3 3 4 5 8
Komentarz,9:57,8.,. 7,. 7, 3,-44 4 8-3,-44 4 8 - / 4 /34. 3 :574 3 :574... 7,,. 35 3 8. -,89484,3. -7,.4/. /: 4 48 9,. 7,,. 48 9,. 7,,. 9 8, 89 3. 33 3. 33 8, 8,. 43 :73. 34 3,8 4574/: 9:3,7 3 : x x x 3 3 4 f x x x 3 f 5 odstawy teoretyczne upraszczania wyrażeń boolowskich zawarte są w algebrze Boole a. 9
ransformacja formuły Minimalizacja funkcji boolowskich!!! f x x x 3 Realizacja uproszczonej funkcji f = + + + + = 3 3 3 3 3 x x x x x x x x x x x x x x x f = + + = 3 3 x x x x x x ( ) 3 x x x x + = ) ( 3 x x x x + + = + + ) ( 3 3 x x x x 3 x x + x = = = = = + + + + + = 3 3 3 3 3 3 x x x x x x x x x x x x x x x x x x
Sens fizyczny minimalizacji x x x 3 f x x x 3 3 5 f 3 4 6 5 7 6 7 x x x 3 f
Minimalizacja to bardzo ważny proces.type fr.i.o 6.ilb i i i i3 i4 i5 i6 i7 i8 i9 i.ob o o o o3 o4 o5 o6 o7 o8 o9 o o o o3 o4 o5.end.type fr.i 6.o 4.e
ostaci (formy) kanoniczne Kanoniczna postać sumacyjna (suma iloczynów) Kanoniczna postać iloczynowa (iloczyn sum) 3
Kanoniczna postać sumacyjna f(x) = n V k= x e k x e k x e n nk f(x k ) x x x 3 f x e f(x) = x, gdy e = = x, gdy e = n V k= k (X)f(X k ) 3 4 5 6 7 f(x) = x x x3 + x x x3 + x + x x + x x x x x x 3 3 3 4
Kanoniczna postać iloczynowa f(x) = n k= ( ) ek ek e x + x + + x nk + f(x ) n k x x x 3 f x e f(x) = x, = x, n k= gdy e = gdy e = ( S + f(x )) k k 3 4 5 6 7 f = (x + + x x 3 ) ( x 3 x + x + ) ( + x x ) x + 3 5
Minimalizacja funkcji boolowskich Zagadnienie intensywnych prac badawczych od początku lat pięćdziesiątych wieku. Ogromny wzrost zainteresowania minimalizacją f.b. powstał ponownie w latach 8. rzyczyna: możliwość realizacji układów logicznych w strukturach scalonych o złożoności milionów bramek logicznych.
Metody minimalizacji funkcji boolowskich Graficzne Analityczne Komputerowe Absolutnie nieprzydatne do obliczeń komputerowych ablice Karnaugha Metoda Quine a McCluskey a Omówienie całego Espresso jest ierwsze skuteczne narzędzie do minimalizacji wieloargumentowych nierealne! i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) : Metoda i system Espresso (984) Ze względu na ograniczony zakres wykładu omówimy wyłącznie: Metodę tablic Karnaugha Metodę Ekspansji (przykładową procedurę Espresso)
Metoda tablic Karnaugha ablica K. jest prostokątem zło onym z n kratek, z których ka da reprezentuje jeden pełny iloczyn (minterm) zmiennych binarnych. x x x 3-7,9 5 8: 8,794. :3. 9,-. 7 3. 8 9 44 3,. 5 3 4. 34 57 547 / 4,38.4-4 8-54,9,-. 8 8 /3 7,9 47 89, 8, 9: /,/4 4 3 4 A x + Ax = A x x x + x x x 3 3 x x = Dla uzyskania efektu sąsiedztwa współrzędne pól opisuje się kodem Gray a 3
Kod Gray a 4
rzykładzik x x x 3 f ) pisanie funkcji do tablicy ) Zakreślanie pętelek 3 Z pętelkami kojarzymy iloczyn zmiennych (prostych lub zanegowanych) 4 5 6 7 x x x 3 f = x x + x 3 5
pisywanie funkcji ułatwia opis kratek tablic Karnaugha wg NKB x x x 3 6 4 3 7 5 x x 3 x 4 5 3 7 6 ( ) ANKB = j= AD = L a j x 4 x 5 x x x 3 3 n j x 3 x 4 x x 4 8 5 3 9 3 7 5 6 4 4 8 4 8 6 5 3 9 5 9 7 7 5 7 3 3 9 6 4 6 3 8 6
rzykładzik x x x 3 f pisanie funkcji do tablicy 3 4 5 6 7 x 3 x x x x x 3 6 4 3 7 5 Zakreślanie pętelek i kojarzenie z nimi odpowiednich iloczynów jest trudniejsze 7
rzykład x x x 3 x x 3 x f = x x 3 + x x + x x 3 x x 3 x x x x x 3 x x x x x x 3 x x 3 x 3 8
Algorytm minimalizacji ) Zapisujemy funkcję do tablicy K. ) Zakreślamy pętelki. a) ętelki zakreślamy wokół grup sąsiadujących kratek zawierających -ki albo -ki i (kreski). b) Liczba kratek objętych pętelka musi wynosić:,, 4,, k. c) Staramy się objąć pętelką jak największą liczbę kratek. 3) ętelki zakreślamy tak długo, aż każda -ka będzie objęta co najmniej jedną pętelką, pamiętając o tym aby pokryć wszystkie -ki możliwie minimalną liczbą pętelek. 4) Z każdą pętelką kojarzymy iloczyn zmiennych prostych lub zanegowanych. Suma tych iloczynów, to minimalne wyrażenie boolowskie danej funkcji. 9
rzykłady pętelek x x x 3 x x 3 x x 4 x 5 x x x 3 x 3 x 4 x x
rzykład - minimalizacja dla KS f = Σ[, 5, 6, 7,, (, 3,, )] x 3 x 4 x x 3 4 5 7 6 x 3 x 4 x x 8 3 9 5 4 f = x + x + x x + x x 3 x 3 x 4 x x 4
rzykład - minimalizacja dla K Różnice wynikają ze sposobu interpretacji zmiennej w szystkie czynności są takie same Kanonicznej ostaci Sumy: Kanonicznej ostaci loczynu: x e = x, x, gdy e gdy e = = x e = x, x, gdy e = gdy e = c 9: 89 439,7 9 4/,9..4 chodzą na wykłady)
rzykład f = Σ[, 5, 6, 7,, (, 3,, )] x 3 x 4 x x f = (x x 3 ) x ) ( x ) ( x x ) ( x x 4 3 x 4 3
mplikant funkcji boolowskiej mplikant danej funkcji f jest to iloczyn literałów (zmiennych prostych i zanegowanych) o następującej własności: dla wszystkich kombinacji wartości zmiennych, dla których implikant jest równy jedności, również funkcja f jest równa jedności. rosty implikant jest to implikant, który zmniejszony o dowolny literał przestaje być implikantem. 4
mplikant funkcji boolowskiej interpretacji tablic Karnaugha implikant odpowiada prawidłowo zakreślonej grupie jedynek (i kresek). Natomiast implikant prosty odpowiada grupie jedynek (i kresek), której nie można powiększyć. x 3 x 4 x x mplikant xx3x 4 rosty implikant x x 3 o nie jest mplikant! 5
Realizacje bramkowe Realizacja AND-OR (wg sumy iloczynów) y = x + x + xx3 xx3 Realizacja OR-AND (wg iloczynu sum) y = (x + x )( x + x3 )( x + x3 ) 6
Sum-of-products (SO) Realizacja AND-OR x x x 3 y + = x x + x x 3 x x 3 x x x x 3 x x 3 y 7
roduct-of-sums (OS) Realizacja OR-AND x x x 3 y = (x + x )(x + x3 )( x + x3 ) x x x x 3 x x 3 y 8
nne operatory (bramki) logiczne NAND y = a b NOR y = a + b EX-OR y = a b = ab + ab NAND (NO-AND) NOR (NO-OR) EXOR (Exclusive OR) 9
nne realizacje bramkowe Realizacja NAND Realizacja NOR y = x + x + xx3 xx3
x 3 3 xx3 x3 Realizacja NAND x 3 x x y = xx + xx3 + xx3 y = x x xx 3 xx3 x x x x 3 x x 3 y
Realizacja NOR x x x 3 y = (x + x )( x + x3 )( x + x3 ) y = x + + x + x + x3 + x x3 x x x x 3 x x 3 y
Minimalizacja funkcji wielowyjściowych rzykład sygnalizujący problem: Należy zaprojektować zespół trzech funkcji czterech argumentów: f = Σ(3,7,,4,5) f = Σ(3,7,,3,4,5) f 3 = Σ(3,7,,,3,5) 3
rzykład sygnalizujący problem Jeśli każdą funkcję zminimalizujemy oddzielnie: ab cd cd ab ab cd f = abc + cd f = ab+ acd f 3 = abc+ cd 4
to uzyskamy a b c c d a b a c d a b c c d f f f 3 Do realizacji tych trzech funkcji potrzebujemy 9 bramek. Czy można zredukować ich liczbę? atrz następna plansza. 5
usuwamy niektóre bramki a b c c d a b a c d f f Bramka AND dla f może być usunięta przez wykorzystanie bramki AND z f 3. a b c c d f 3 eraz potrzebujemy 8 bramek..cdn. 6
co dalej a b c c d a b a c d a b c c d f f f 3 Bramkę AND zf można usunąć przez wykorzystanie faktu ab = abc + abc eraz potrzebujemy zaledwie 7 bramek. 7
Komentarz rzykład sugeruje, że w realizacji zespołu funkcji stosowanie minimalnej sumy implikantów prostych nie zawsze prowadzi do rozwiązania z minimalnym kosztem. 8
rzykład 3.5 z książki SUL y = Σ(,3,5,7,8,9,,,3,5) y = Σ(,3,5,6,7,,,4,5) cd ab 3 y 3 = Σ(6,7,8,9,3,4,5) 4 5 3 7 5 6 4 8 9 cd ab cd ab cd ab y = ab + bd + bc y = c+ abd y 3 = bc+ acd+ abc 7 bramek AND 9
rzykład 3.5 z książki SUL cd ab cd ab cd ab 3 4 y = bc+ abd + abd +abc y = bc 5 +abd +bc 3 4 5 +abc y = abd + bc 3 5 bramek AND a poprzednio było 7 bramek AND!!! 3
Metody analityczne i komputerowe w minimalizacji funkcji boolowskich Metoda Quine a McCluskey a a) generacja implikantów prostych b) selekcja implikantów (tzw. pokrycie) Metoda Espresso duża liczba różnorodnych procedur procedury heurystyczne iteracyjne poprawianie wyniku
rocedury systemu ESRESSO F,D Complement Expand Essential primes rredundant-cover Reduce Last-gasp FM (rozdział 6 w książce SUL)
Zmodyfikowana metoda ekspansji (rozdział 3.3 książka SUL) Łączy idee metody Quine a McCluskey a oraz metody Espresso: a) generacja implikantów prostych (wg Espresso) b) selekcja implikantów (wg Quine a McCluskey a) Metoda ta zrealizowana w programie ANDOR jest udostępniona na www.zpt.tele.pw.edu.pl w katalogu OROGRAMOANE 3
ojęcia podstawowe Kostka K to krotka o składowych,, reprezentująca zbiór wektorów zero-jedynkowych. K = ( ), to zbiór wektorów: Kostka reprezentuje niepełny iloczyn: K = = x x 3 4
Oznaczenia standardzie espresso wektory (w ogólności kostki), dla których funkcja f = oznacza się zbiorem F. ektory (kostki) dla których funkcja f = oznacza się zbiorem R. f = (F, R) 5
6 rzykład (EXL) k 5 k 4 k 3 k k f x 7 x 6 x 5 x 4 x 3 x x = F R =
Ekspansja Ekspansja jest procesem działającym na kostkach zbiorów F i R, a jej celem jest uzyskanie dla danej k F kostki k' tak dużej, jak to tylko możliwe (tzn. z możliwie dużą liczbą pozycji o wartości ) i nie pokrywającej żadnego wektora zbioru R. swoich obliczeniach Ekspansja wykorzystuje tzw. macierz blokującą B. 7
Macierz blokująca Definicja oryginalna (z książki Braytona): Macierzą blokującą (kostkę k) nazywamy macierz B(k,R) = [b ij ], w której każdy element b ij {,} jest definiowany następująco: b ij =, jeśli k j = oraz r ij = lub k j = oraz r ij = ; b ij =, w pozostałych przypadkach. Macierz blokująca dla danej kostki k F powstaje z macierzy R przez zanegowanie tych kolumn R, których pozycje są wyznaczone przez pozycje jedynek w kostce k F. 8
9 worzenie macierzy blokuj cej F = = R = B yznaczymy macierz blokującą dla kostki k wiedząc, że F i R są opisane macierzami: Skoro k = (), to dla uzyskania B wystarczy w macierzy R "zanegować" kolumny drugą, piątą i siódmą. Zatem B(k,R):
okrycie kolumnowe okryciem kolumnowym macierzy B jest zbiór kolumn L (L {,...,n}) taki, że dla każdego wiersza i istnieje kolumna j L, która w wierszu i ma jedynkę. Zbiór L jest minimalnym pokryciem kolumnowym macierzy B, jeśli nie istnieje zbiór L (tworzący pokrycie) taki, że L L. okrycie kolumnowe jest pojęciem ogólnym, można go tworzyć dla każdej macierzy binarnej
= 7 6 5 4 3 B {L 6, L 7 } {L 3, L 4 } {L, L 4 } {L, L 3, L 7 } Obliczanie pokrycia kolumnowego L = {L 4, L 7 } jest pokryciem kolumnowym. L = {L, L 3, L 6 } jest pokryciem kolumnowym. L = {L, L 3 } nie L = {L, L 6 } nie L = {L 3, L 6 } nie
Obliczanie pokrycia kolumnowego B = 3 4 5 6 7 {L 6, L 7 } {L 3, L 4 } {L, L 4 } {L, L 3, L 7 } (L 6 + L 7 ) (L 3 + L 4 ) (L + L 4 ) (L + L 3 + L 7 ) = (L 4 + L )(L 4 + L 3 )( L 7 + L 6 )(L 7 + L + L 3 ) = (L 4 + L L 3 )(L 7 + L 6 (L + L 3 )) = (L 4 + L L 3 )(L 7 + L L 6 + L 3 L 6 ) = L 4 L 7 + L L 4 L 6 + L 3 L 4 L 6 + L L 3 L 7 + L L 3 L + L 6 L 3 L 6
Generacja (tworzenie) implikantów Macierz blokująca B(k,R) pozwala wyznaczyć ekspansję kostki k oznaczaną k + (L,k) w sposób następujący: wszystkie składowe kostki k należące do L nie ulegają zmianie, natomiast składowe nie należące do L przyjmują wartość. Ekspansja kostki k jest implikantem funkcji f = (F,R). szczególności k + (L,k) jest implikantem prostym, gdy L jest minimalnym pokryciem kolumnowym macierzy B(k,R). 3
4 Generacja implikantów - przykład Dla k = () i macierzy B= 7 6 5 4 3 zbiór L = {4,7} jest pokryciem kolumnowym B, a więc x 4 x 7 6 3 x x x Natomiast dla L = {,3,6} (inne pokrycie kolumnowe), k + (L,k) = ( ) = k = () czyli implikantem F jest k + (L, k ) = ( ),
5 mplikanty proste 6 3 4 7 4 3 6 x x x x x x x x = = = = 6 3 7 7 6 6 5 5 x x x x x = = = Obliczając kolejno implikanty proste dla każdej k F uzyskuje się: roszę zauważyć, że na tym zakończyliśmy proces generacji implikantów prostych
przystępujemy do procesu selekcji Relacja pokrycia dla kostek x x x 3 k x 7 k k 3 k 4 k 5 x 4 x 5 x 6 = = x x x6 = x x 3 4 7 ( ) ( ) k ( ) k k, k 5,k, k 3 4 k k k k 3 k 4 k 5 6
ablica implikantów prostych 3 = = = x x x 4 x x 6 7 ( ) k ( ) k,k 5 ( ) k,k 3,k 4 3 k 7 k k 3 k 4 k 5 4 5 6 7
ablica implikantów prostych ablica implikantów prostych umożliwia wybór (selekcję) takiego minimalnego zbioru implikantów, który pokrywa wszystkie kostki funkcji pierwotnej 8
Selekcja implikantów prostych okrycie kolumnowe 3 4 5 6 7 k k k 3 k 4 k 5 nny zapis tablicy:, 3, 4 3, 5, 6, 7 3, 7 = x x 6 = x x 3 4 7, Minimalne pokrycie:, 3, 7 Minimalna formuła: x 4x7 + xx6 9
mplementacja metody program andor Fragment pliku wyjściowego andora: mplicants table of function y... rochę inny zapis All results of function y y =!x4!x7 + x!x6
aki sam wynik generuje Espresso.type fr.i 7.o.p 9.ilb x x x3 x4 x5 x6 x7.ob y.e F,D ięcej na temat formatu espresso w książce SUL Complement Expand Essential primes rredundant-cover Reduce Last-gasp funkcja EXL w formacie espresso FM.i 7.o.ilb x x x3 x4 x5 x6 x7.ob y.p ----- -----.e
lik wejściowy i wyjściowy przyk adu.type fr.i 7.o.p 9.ilb x x x3 x4 x5 x6 x7.ob y.e Skoro wyszło to samo co w obliczeniach za pomocą tylko jednej procedury ekspansji....i 7.o.ilb x x x3 x4 x5 x6 x7.ob y.p ----- -----.e...to p4.48 4.48 inne procedury ESRESSO o jest za prosty przykład!
ablica implikantów prostych orównanie andora i Espresso wymaga szczegółowszych eksperymentów. Można je przeprowadzić samodzielnie. rzykładowe pliki oraz programy andor i Espresso są umieszczone w katalogu Eksperymenty do wykładów cz. 3 i cz. 4. 3
Dyskusja Barierą ograniczającą obliczenia systematyczną metodą zastosowaną w andorze jest ogromna złożoność obliczeniowa zarówno w procesie generacji, jak też w procesie obliczania pokrycia kolumnowego. rogram ANDOR został stworzony po to, aby naocznie zaobserwować zjawisko wzrostu złożoności obliczeniowej wraz ze wzrostem liczby argumentów funkcji. Funkcja EXL ma 7 implikantów (andor dokonuje lepszej selekcji i oblicza ich zaledwie 5). Nie ma żadnej sprawy w obliczeniu minimalnego pokrycia kolumnowego. Ale 4
KAZ Zagadka.type fr.i.o.p 3.end le implikantów prostych ma funkcja L7 a ile KAZ? Można pomylić się o dlatego L7 obliczy zarówno systematyczna ekspansja andora, jak i Espresso. Ale już funkcja KAZ jest z praktycznego punktu widzenia realna do policzenia wyłącznie programem ESRESSO. Ale nie może to być wynik minimalny O innych zaletach andora na następnym wykładzie L7.type fr.i.o.p 5.e 5
A jak w jest w rzeczywistym Espresso... Komentarz tylko dla tych co chodzą na wykłady 6
Dalsze zalety Espresso Metoda Espresso jest szczególnie efektywna w minimalizacji zespołów funkcji boolowskich. Dla metod klasycznych synteza wielowyjściowych funkcji boolowskich jest procesem bardzo złożonym trudnym do zalgorytmizowania. rzypomnijmy przykład z poprzedniego wykładu 7
Układy wielowyjściowe - przykład y = Σ(,3,5,7,8,9,,,3,5) y = Σ(,3,5,6,7,,,4,5) y 3 = Σ(6,7,8,9,3,4,5) o żmudnych obliczeniach uzyskaliśmy wynik na 5 bramkach AND y = bc+ abd+ abd +abc y = bc +abd +abc +bc y = abd + bc 3 8
.type fr.i 4.o 3.p 6.e Jak obliczy Espresso? F,D Complement Expand Essential primes rredundant-cover Reduce Last-gasp Można sprawdzić, że jest to taki sam wynik jak na planszy 3 wykładu ULOG cz. F M.i 4.o 3.p 5 - - - -- --.e 9
Espresso... mankamenty
Funkcja 7 argumentów 9 8 7 6 5 4 3 f x 7 x 6 x 5 x 4 x 3 x x 9 8 7 6 5 4 3 f x 7 x 6 x 4 x amiętamy... z ekspansji 6 7 4 x x x x f + = Czy mo na przewidzie od jakich argumentów funkcja istotnie zależy???
rzykład z Synteza układów logicznych str 65.type fr.i.o.p 5.e Funkcja argumentów Espresso Brak x 3.i.o.p 6 ------- ------- ------ ------- -------- -------.e f = x + 5x6x8 + xx x5 + x5x6x8 x + x4x7x + x7x9 x6x7x - 9 argumentów 3
Zagadka....type fr.i.o.p 5.e Od ilu argumentów zależy ta funkcja Można wykazać, że funkcja ta jest zależna od zaledwie 7 argumentów! 4
niosek Espresso redukuje składniki iloczynowe Nie redukuje argumentów!!! 5
ROBLEM: Obliczania minimalnej liczby argumentów od których funkcja istotnie zależy...jest bardzo istotny w redukowaniu złożoności obliczeniowej procedur minimalizacji funkcji boolowskich, a w konsekwencji może się przyczynić do uzyskiwania lepszych rezultatów. Nowy sposób opisu funkcji: rachunek podziałów 6
Elementy rachunku podziałów odziałem na zbiorze S jest system zbiorów = {B i }, którego bloki są rozłączne, czyli a ponadto B i B j =φ, jeśli tylko i j S = i Bi Dla S = {,,3,4,5,6}, = {{,}, {3,5}, {4,6} } jest podziałem na S. Π = (,; 3,5;4,6) odstawowe pojęcia: loczyn podziałów oraz relacja. odzbiory nazywamy blokami 7
Elementy rachunku podziałów owiemy, że podział a jest nie większy od b (co oznaczamy: a b ), jeśli każdy blok z a jest zawarty w pewnym bloku z b. Π a = (,,4;3,5,6) Π b = (,4;,6;3,5) Π. = (,; 4;6;3,5) Π c Π a ak Π a = (,,4;3,5,6) Π. = (,; 4;6;3,5) Π() podział najmniejszy Π() podział największy Π c </ Π b Π b = (,4;,6;3,5) Π. = (,; 4;6;3,5) 8
Elementy rachunku podziałów loczynem podziałów Π a Π b nazywamy największy (względem relacji ) podział, który jest nie większy od Π a oraz Π b. Π a = (,,4;3,5,6) Π b = (,4;,6;3,5) Π a Π b = (,4; ; 6; 3,5) 9
Elementy rachunku podziałów odział ilorazowy Niech a i b są podziałami na S oraz a b. odział a b jest podziałem ilorazowym a i b, jeżeli jego elementy są blokami b, a bloki są blokami a. Na przykład: a =,6,7;,3,8;4,5 b = ;,8; 3; 4,5; 6,7 a b = ()(6,7) ; (3)(,8) ; (4,5)
Nowy sposób opisu funkcji - podziały Funkcja f x x x 3 x 4 x 5 x 6 x 7 f = {5;,,3,4,6,7,8,9} 3 = 3 = 4 = {,,6,7,8; 3,4,5,9} {,3,5,6;,4,7,8,9 } {,4,5,6,7,8,9;,3 } 4 5 6 7 5 = 6 = { 7;,,3,4,5,6,8,9 } {,5,7,9;,3,4,6,8 } 8 9 7 = f = {,3,6,7,8;,4,5,9 } {,,3,4; 5,6,7,8,9}
ojęcie zmiennej niezbędnej Jeżeli wektory X a oraz X b : f (X a ) f (X b ), różnią się dokładnie dla jednej zmiennej to zmienną taką nazywamy niezbędną 9 8 7 6 5 4 3 f x 7 x 6 x 5 x 4 x 3 x x x 4 x 6 6 7 4 x x x x f + = Zmienne niezbędne występują w każdym wyrażeniu funkcji!!!
Redukcja argumentów przykład Funkcja f x 4 x 6 zmienne niezbędne x x x 3 x 4 x 5 x 6 x 7 f ponieważ wiersze i 8 różnią się na pozycji a wiersze 4 i 9 x 4 na pozycji x 6 3 4 4 = {,4,5,6,7,8,9;,3} 5 6 6 = {,5,7,9;,3,4,6,8} 7 8 9 Dalej liczymy iloczyn 4 6 4 6 = (,5,7,9 ; 4,6,8 ;,3) f = {,,3,4; 5,6,7,8,9} 3
yjaśnienie x x x 3 x 4 x 5 x 6 x 7 f 3 4 5 6 7 8 9 x x x 3 x 5 x 6 x 7 f 3 4 5 6 7 8 9 ablica specyfikacji jest sprzeczna, ponieważ f() = (wektor ) f() = (wektor 8) Zatem x 4 jest zmienną niezbędną 4
ojęcie zmiennej niezbędnej Obszerniejsze wyjaśnienie i interpretacja w książce: arto przeczytać rozdział 3.4 5
Redukcja argumentów przykład loczyn podziałów wyznaczonych przez zmienne niezbędne (ozn. N ) ma bardzo ważną interpretację N = 4 6 = (,5,7,9 ; 4,6,8 ;,3 ) f = {,,3,4; 5,6,7,8,9 } ystarczy bowiem obliczy, N N F = ( (),(5,7,9);(4),(6,8);(,3)) aby wiedzieć jakie wektory należy rozdzielić, 5, 7, 9 4, 6, 8 6
Redukcja argumentów przykład c.d. x x x 3 x 4 x 5 x 6 x 7 f, 5, 7, 9 3 4, 6, 8 4 5 6 7, 5, 7, 9 4, 6 4, 8 x x x 3 x 5 x 7 x x 3 x x 3 x 7 x x 7 x x x 3 x x 5 7 x x 3 x x 7...obliczamy systematycznie... 8 9 u obliczamy minimalne pokrycie kolumnowe 7
Redukcja argumentów przykład c.d. x x x 3 x x 5 7 x x 3 x x 7 (x + x ) (x 3 + x 5 + x 7 ) (x + x 3 )(x + x 7 )= = (x +x )(x + x 3 )(x + x 7 )(x 3 + x 5 + x 7 ) = =(x +x x 3 x 7 )(x 3 + x 5 + x 7 ) = = x x 3 + x x 5 +x x 7 + x x 3 x 7 +... {x 4,x 6 } {x,x 3,x 4,x 6 } {x,x 4,x 5,x 6 }{x,x 4,x 6,x 7 } ylko to było znalezione przez Espresso 8
...a / - / - / 49. / 49. 3 3, :3.,9,, 9 44/ 9 44/ < x x x 3 x 4 x 5 x 6 x 7 f x x 4 x 6 x 7 f 3 3 4 4 5 5 6 6 7 7 8 8 9 9 9, :3. 4 3, 3,,9 4,9 4 3, 4, 3, 9 3,9,-.,73,:,,73,:, 9
prowadzenie redukcji argumentów do procedury ekspansji daje w rozsądnym czasie wyniki lepsze niż słynne Espresso
rzykład z Synteza układów logicznych str 65.type fr.i.o.p 5.e Funkcja L7 argumentów Espresso.i.o.p 6 ------- ------- ------ ------- -------- -------.e 9 argumentów 6 termów
Funkcja L7 Funkcja L7 przed redukcją.type fr.i.o.p 5 andor.e Realizacja funkcji f lość zmiennych = 7 lość wektorów = 5 R3 = {,,4,6,7,9,} Jedno z rozwiązań po redukcji argumentów
3 rzykład L7 Funkcja argumentów, 5 wektorów w 7 6 9 7 7 4 8 6 5 5 8 6 5 x x x x x x x x x x x x x x x x x x f + + + + + = ynik andora po RedArg 7 argumentów, 5 termów 9 7 6 4 4 7 x x x x x x x x x x x x x f + + + + = ynik Espresso 9 argumentów, 6 termów
Funkcja KAZ!7 /7/:..type fr.i.o.p 3.end andor le jest takich rozwiązań /34 :74,, p47/:. argumentów 4
rzykład KAZ Silnie nieokreślona funkcja argumentów, 3 wektorów w ynik Espresso 9 argumentów, 3 termy f = x + x4x9x + x7x8x x5x8x ynik andora 5 argumentów, 3 termy f = x + x4x9x9 + xx4x9 xx9x 5
6 Zadanie nieco trudniejsze 9 8 7 6 5 4 3 y y X 9 X 8 X 7 X 6 X 5 X 4 X 3 X X 7,8 4,6; 3,9,; F =,,5; Jeżeli wektory X a oraz X b : f (X a ) f (X b ), różnią się dokładnie dla jednej zmiennej to zmienną taką nazywamy niezbędną
Zadanie 333 -ę/3 N={x,x 3,x 7 } N = 3 7 N = (,4,8 ;,7 ; 3; 5, 6, ; 9) F =,,5; 3,9,; 4,6; 7,8 odział ilorazowy: N N F N N F = ()(4)(8); ()(7); (3); (5)(6)();(9) 7
8 Zadanie ; ()(4)(8) ; ()(7) (5)(6)(); N F = ; (3) (9),4,6,8,9 8,9 9 8 7 6 5 4 3 y y X 9 X 8 X 7 X 6 X 5 X 4 X 3 X X,4,6 5,6,9,5,6,8 4,5,6,9,4,8,9,4,8 4,8,7 5,6 6, 5, v v
9 Zadanie ( )( )( )( )= + + + + + + + + 8 6 5 9 6 5 6 4 9 8 = + + + + + = ) 8 4(5 6 6) 8(5 9 yrażenie boolowskie według indeksów zmiennych X i : ( )( )( )( )= + + + + + + + + = 8 5 6 4 6 6 5 9 8 9 ( )( )= + + + + + = 8 4 5 4 6 8 6 8 5 9
3 Zadanie ( )( )( )( )= + + + + + + + + 8 6 5 9 6 5 6 4 9 8 = + + + + + = ) 8 4(5 6 6) 8(5 9 yrażenie boolowskie według indeksów zmiennych X i : ( )( )( )( )= + + + + + + + + = 8 5 6 4 6 6 5 9 8 9 ( )( )= + + + + + = 8 4 5 4 6 8 6 8 5 9 8 6 4 8 6 5 4 8 6 8 6 5 8 4 5 8 4 8 6 5 5 8 9 8 4 9 5 4 9 6 9 + + + + + + + + + + + + + =
3 Zadanie Ostatecznie: 8 6 8 5 4 8 5 9 8 4 9 5 4 9 6 9 + + + + + + = 8 5 4 8 5 9 8 4 9 5 4 8 6 9 6 9 + + + + + + = ami taj c, e zmienne niezb dne były: {x,x 3,x 7 }
Zadanie... {x,x 3,x 7 } = 9+ 6 9+ 6 8+ 4 5 9+ 4 8 9+ 5 8+ 4 5 8 Łatwo wypisać wszystkie minimalne rozwiązania: x, x, x 3, x 7, x 9 x, x 3, x 6, x 7, x 9 x, x 3, x 6, x 7, x 8 x, x 3, x 4, x 5, x 7, x 9 x, x 3, x 4, x 7, x 8, x 9 x, x, x 3, x 5, x 7, x 8 x, x 3, x 4, x 5, x 7, x 8 3
Dekompozycja równoległa X X g X X X h X F Xg Xh Y G Yg H Yh Y = Yg Yh 33
34 y : {x, x, x 6 } y : {x 3, x 4 } y 3 : {x, x, x 4, x 5, x 8 } {x, x, x 4, x 6, x 8 } y 4 : {x, x, x 3, x 4, x 7 } y 5 : {x, x, x 4 } y 6 : {x, x, x 6, x 8 } 9 8 7 6 5 4 3 y 6 y 5 y 4 y 3 y y x 8 x 7 x 6 x 5 x 4 x 3 x x Dekompozycja równoległa - przykład
Dekompozycja równoległa - przykład y : {x, x, x 6 } y : {x 3, x 4 } y 3 : {x, x, x 4, x 5, x 8 } {x, x, x 4, x 6, x 8 } y 4 : {x, x, x 3, x 4, x 7 } y 5 : {x, x, x 4 } y 6 : {x, x, x 6, x 8 } G= {y, y 3,y 6 } H= {y, y 4,y 5 } X g = {x, x, x 4, x 6, x 8 } X h = {x, x, x 3, x 4, x 7 } 35
36 x x x 3 x 4 x 5 x 6 x 7 x 8 H G 3 6 4 5 9 8 7 6 5 4 3 y 6 y 3 y x 9 x 6 x 4 x x 7 6 5 4 3 y 5 y 4 y x 7 x 4 x 3 x x Dekompozycja równoległa - przykład
Struktury układów logicznych f Gate Array Standard Cell rogrammable Logic Devices
Struktury układów logicznych Ale w dzisiejszych technologiach układy logiczne to nie tylko bramki! FGA Coraz większego znaczenia nabierają technologie, w których podstawowym elementem konstrukcyjnym są komórki logiczne (Logic Cell) Logic Cell Field rogrammable Gate Array a dla tych struktur omówione do tej pory metody syntezy - w szczególności minimalizacja - są nieskuteczne
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. 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 omówimy w dwóch ujęciach: a) metoda klasyczna (znana od dawna...) b) metoda nowoczesna (dostosowana do złożoności dzisiejszych technologii) 4
Metoda klasyczna... to metoda tablicowa, graficzna, której podstawowe operacje wykonywane są na tzw. tablicy dekompozycji ablicą 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 B A x 4 x 5 x x x 3 Elementami macierzy M są wartości, jakie przyjmuje funkcja f na wektorach złożonych z odpowiednich etykiet i-tego wiersza i j-tej kolumny. 5
Krotność kolumn Liczbę istotnie różnych kolumn tej macierzy ze względu na ich zawartość nazywamy ich krotnością i oznaczamy symbolem ν(a B). B x x x 3 x 4 x 5 A Krotność kolumn = 4 6
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(g (B),.., g j (B),A) ν(a B) j. B g A h f B (bound set), A (free set) 7
rzykład B x x x 3 x 4 x 5 A x x x 3 g g g g x 4 x 5 stnieje dekompozycja! f = h(x 4, x 5, g (x, x, x 3 ), g (x, x, x 3 )) 8
raktyczne znaczenie dekompozycji.. x 4 x 5 x x x 3..dla struktur FGA x x x 3 x 4 x 5 g f h g g h 9
rzykład trochę trudniejszy cde a b K K K K3 K4 K5 K6 K7 a b c d e g stnieje dekompozycja! h f = h(a,b,g (c,d,e), g (c,d,e))
Relacja zgodno ci kolumn Jak obliczać dekompozycję
Relacja zgodności kolumn Kolumny {k r, k s } są zgodne, jeśli nie istnieje wiersz i, dla którego elementy K ir, K is są określone i różne, tzn. odpowiednio:, albo,. K K K3 K4 K5 K6 K7 - - - - - - - - - - - - -
Relacja zgodności kolumn K K K3 K4 K5 K6 K7 - - - - - - - - - - - - - Kolumny zgodne można sklejać {K,K4,K7} {K5,K6} - - 3
Obliczanie dekompozycji... yznaczyć relację zgodności kolumn, czyli wypisać wszystkie pary sprzeczne. yznaczyć 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. 4
rzykład - obliczanie klas zgodności ary sprzeczne: cde a b K K K K3 K4 K5 K6 K7 K, K sprzeczna K, K sprzeczna K, K3 zgodna K, K4 zgodna,,,5,7,,7,3,4,6 3,5 3,7 4,7 5,6 6,7 5
rzykład obliczanie klas zgodności Stosując algorytm MKZ obliczamy rodzinę Maksymalnych Klas Zgodnych kolumn:,3,4,6,3,4,6,4,5,5,7 ybieramy:,3,4,6,4,5,5,7 Ostatecznie:,3,4,6,5,7 Kolumny powtarzające się usuwamy Komentarz: formalnie obliczamy pokrycie.. KZ RKZ S KZ = K 6
Sklejanie kolumn funkcja h cde ab - - - - - - - - - - - - - - - - K K K K3 K4 K5 K6 K7 {K,K3,K4,K6} {K,K5} {K,K7} g g ab - - - - - - Kodowanie? Może być dowolne 7
Kodowanie kolumn funkcja g ab cde - - - - - - - - - - - - - - - - K K K K3 K4 K5 K6 K7 g g ab - - - - - - c d e g g 8
Co uzyskaliśmy a b c d e h g c d e g g g g ab - - - - - - Opis funkcji g i h tablicami prawdy wystarczy dla realizacji w strukturach FGA Ale funkcje g i h można obliczyć jawnie czyli po procesie dekompozycji można je minimalizować 9
uzyskując w rezultacie a b c d e g h strukturę na bramkach
rzykład funkcje g i g c d e g g cd e cd e g = cde + cde g = cde + ce + de
rzykład funkcja h g g ab - - - - - - Uwaga: rzestawiliśmy wiersze h = ag bg + + ag
rzykład realizacja a b c d e c d e c d e c d e c e d e g g G a g b g a g H h = f 3
rzykład (bardziej skomplikowany) - L7.type fr.i.o.p 5.e x 3 x 5 x 6 x 7 x 8 x 9 x f x 7 x 8 x 9 x 3 x 5 x 6 x f A B 4
ablica dekompozycji dla funkcji L7 x 3 x 5 x 6 x x 7 x 8 x 9 5
ablica dekompozycji dla funkcji L7 H G g x 3 x 5 x 6 x G x 7 x 8 x 9 6
raktyczny wynik dekompozycji funkcji L7.type fr.i.o.p 5.e x 7 x 8 x 9 x 3 x 5 x 6 x G H f ylko komórki 7
Zagadka Na ilu komórkach zrealizuje tę funkcję amerykański system QUARUS? 5 kom. (FLEX) QUARUS lub 7 kom. (Stratix)!!! 8
Jak usprawnić obliczanie MKZ? metodzie dekompozycji jednym z najważniejszych algorytmów jest algorytm obliczania maksymalnych klas zgodności celu sprawniejszego obliczania MKZ wprowadzimy metodę wg par zgodnych: a) metodę bezpośrednią b) metodę iteracyjną 9
Metoda bezpośrednia ary zgodne: a, b b, c a, c {a, b, c} a, b, c a, b, d b, c, d a, c, d {a, b, c, d} i.t.d. 3
rzykład obliczanie klas zgodności,3,4,6,3,4,5,6,5,7 3,4 3,6 4,5 4,6 5,7,3,4,3,6,4,6,3,4,4,5,4,6,5,7 3,4,6 Maksymalne klasy zgodności:,3,4,6,3,6,3,4,6,4,5,5,7 3
Algorytm MKZ wg par zgodnych E relacja zgodności (e i,e j ) E R j = { e i i < j oraz (e i,e j ) E} RKZ k RKZ k+ KZ RKZ k a) R k+ = φ, RKZ k+ jest powiększana o klasę KZ = {k+} b) KZ R k+ = φ, KZ bez zmian c) KZ R k+ φ, KZ = KZ R k+ {k+} 3
rzykład R j = { e i i < j oraz (e i,e j ) E} E:,3,4,6,3,4,5,6,5,7 3,4 3,6 4,5 4,6 5,7 R = φ R = φ R = φ R 3 =, R 4 =,,3 R 5 =,,4 R 6 =,,3,4 R 7 =,,5 33
rzykład R = R = R = R 3 = R 4 = R 5 = φ φ φ {,} {,,3} {,,4} R 6 = {,,3,4} R 7 = {,,5} {} {} {} {} {} {} {,3} {,3} {} {,3,4} {,3,4} {} {4,5} {,4,5} {,5} {,3,4} {,3,4} {,4,6} {,5,7} {,5} {,3,4,6} {,3,4,6} {,4,5} {,3,4,6} {,3,4,6} {5,7} {,4,5} Rodzina MKZ 34
arto umiej tnie dobiera metod... ary zgodne: (,), (,3), (,4), (,5), (,6), (,7), (,3), (,5), (,6), (,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), ary sprzeczne: (,8) (,4) (,8) (3,7) (4,5) ybór metody jest oczywisty! 35
poszukiwaniu innych metod obliczaniu kolumn, które można skleić znajdują zastosowanie algorytmy kolorowania grafu. ierzchołki grafu reprezentują kolumny tablicy dekompozycji. Niezgodne pary kolumn łączy się krawędziami. Graf niezgodno ci: k k s k ary niezgodne: (k i, k j ) (k i, k s ) k r k i (k l, k r ) k p k l k j 36
rzykład ary zgodne: ary sprzeczne:,3,4,6,3,4,5,6,5,7 3,4 3,6 4,5 4,6 5,7,,,5,7,,7,3,4,6 3,5 3,7 4,7 5,6 6,7 37
Graf niezgodno ci (,), (,), (,5), (,7), (,), (,7), (,3), (,4), (,6), (3,5), (3,7), (4,7), (5,6), (6,7) 7 i jego kolorowanie 6 5 4 3 38
&,/ 8 3. 3,/ 8 3. 3 54.,:94,9: Automat v v V v S S /Y /Y v 3 y Y v v v 3 v Y v v 3 v Y 3 Y v v 3 S 3 /Y 3 v jest definiowany przez określenie: a) zbioru liter wejściowych V (X) i wyjściowych Y, b) zbioru stanów wewnętrznych S, c) funkcji przejść (ozn. δ), d) funkcji wyjść (ozn. λ).
F:3.,57 :3.,57 Funkcja przejść: δ: S X S Funkcja wyjść: λ: S X Y (tzw. automat Mealy ego) λ: S Y (tzw. automat Moore a) Automat może być zupełny lub niezupełny
Specyfikacja automatu ablica przej -wyj automatu: Mealy ego Moore a v v v v v v v 3 y S S S y y S S 3 S y 3 y S S S S 3 y S S 3 S S y Mealy ego: S 3 S S y y 3 wej cie/wyj cie... i graf S 3 S S 3 S y 3 Moore a: wej cie stan stan/ wyj ci e 3
Specyfikacja automatu ablica przej -wyj automatu: Mealy ego Moore a v v v v v v v 3 y S S S y y S S 3 S y 3 y S S S S 3 y S S 3 S S y Mealy ego S 3 S S y y 3 v /y v /y 3 S S 3 v /y v /y v /y S 3... i graf v /y S 3 S S 3 S y 3 v v v 3 S S 3 /y y v v v 3 v v 3 Moore a S y v 3 4
Układ sekwencyjny Jak zrealizowa automat x x Q Q v v v 3 Y S S S 4 y S S 5 S 3 S y S 3 S 4 S 5 y 3 S 4 S S S 3 y S 5 S 4 S y 4 Zakodowane litery wej ciowe x y UK x n y m Zakodowane litery wyj ciowe Zakodowane stany automatu Q wej cie synchronizuj ce uk adach synchronicznych q Q B k CLK US q k uk adach asynchronicznych 5
Klasyfikacja układów sekwencyjnych x y x n UK y m Q q Q k B q k wej cie synchronizuj ce CLK Uk ady sekwencyjne: Synchroniczne (B zbudowany z przerzutników synchronicznych) Asynchroniczne (B realizuj opó nienia lub przerzutniki asynchroniczne) Brak sygna u zegarowego 6
Synchroniczne układy sekwencyjne x x n y UK y m Q B q Q k rzerzutniki q k CLK rzerzutnik to automat typu Moore a FF Q Q o dwóch stanach wewnętrznych, CLK jednym lub dwóch wejściach informacyjnych, dwóch wyjściach (prostym i zanegowanym) oraz wejściu synchronizującym (zegarowym). 7
rzerzutniki zależności od rodzaju wejść informacyjnych wyróżniamy przerzutniki typu: D,, SR oraz JK. D FF Q Q SJ RK FF Q Q CLK CLK rzerzutnik jest określony: tablicą przejść, równaniem charakterystycznym, tablicą wzbudzeń. 8
rzerzutniki tablice przejść D Q Q = D SR Q Q Q' = Q+ Q JK Q Równanie charakterystyczne: Q = f(,,q) 9
rzerzutniki tablice wzbudzeń Q Q D S R J K D delay trigger S Set (wej cie w czaj ce) R Reset (wej cie wy czaj ce) J wej cie w czaj ce K wej cie wy czaj ce
rzebiegi czasowe przerzutnik typu D D CLK FF CLK Q Q D D Q Q
rzebiegi czasowe przerzutnik typu FF Q Q CLK CLK Q Q
rzebiegi czasowe - porównanie CLK D () Q (D) Q () 3
Synteza układów sekwencyjnych Etapy syntezy: synteza abstrakcyjna (utworzenie tablicy przejść-wyjść) redukcja (minimalizacja) liczby stanów kodowanie stanów, liter wejściowych i wyjściowych synteza kombinacyjna (obliczanie funkcji wzbudzeń przerzutników i funkcji wyjściowych) v v S S / /Y Y v v 3 x x Y v 3 v v v v v v v 3 S S S y y Q Q S 3 /Y 3 S S 3 S y 3 y Q Q v S 3 S S y y 3 CLK 4
Synteza kombinacyjna X UK we Q rze rzu tniki Q UK wy Y CLK Obliczanie funkcji steruj cych wej ciami przerzutników (funkcje wzbudze ) Q = f(x,q) Obliczanie funkcji wyj ciowych Y = f(q) (Moore) Y = f(x,q) (Mealy) 5
rzykład syntezy (detektor sekwencji) Do zakodowania trzech symboli stanów potrzebne s dwie zmienne binarne czyli wystarcz dwa przerzutniki, oznaczamy je Q, Q S X A B A B C A C C A Y QQ X A B C ( ) Samo przyporz dkowanie symbolom stanów s ów binarnych jest zazwyczaj dowolne, gdy staramy si spe ni wy cznie warunek jednoznaczno ci kodowania, ale 6
Obliczanie funkcji wzbudzeń i wyjściowych QQ D X S QQ A B C ( ) % 47 9,- /,:3. -:/ 548. 3. 57 7 :93 X X QQ QQ D=Q D=Q = xq Q' = D = x Q' D= Y Y = xq 7
Schemat logiczny detektora sekwencji x Y D Q D Q Q Q $.,9 4. 3 7 8: 3,54/89, 4-. 43. :3. -:/ D= xq D = x Y = xq 8
rzykład... Realizacja X QQ X QQ QQ X QQ Q Q X QQ = QQx + xq xq+ xq = Y jak poprzednio 9
Schemat logiczny detektora () x x Y Q Q Q Q CLK = QQx + xq xq+ xq = Y jak poprzednio
rzykład... Realizacja JK X QQ X QQ QQ J K Q Q QQ QQ J K QQ QQ J= xq K= x J = x K = x J K
Schemat logiczny detektora (JK) CLK J Q K Q K J Q Q x Y J= xq K= x J = x K = x Y jak poprzednio
Zadanie: licznik mod. 5 ze sterowaniem x x clk Licznik (up, down, clear) y a up liczenie do przodu b down liczenie do ty u c clear zerowanie a up b down liczenie c clear liczenie do przodu zerowanie do ty u S X a b c Y X QQQ S S S4 S S S S S S S3 S S S3 S4 S S S4 S S3 S 3
Licznik ze sterowaniem X QQQ Q Q Q x x QQQ --- --- --- --- --- --- --- --- --- --- --- --- Q Q Q 4
rzerzutniki D Dla przerzutników typu D: Q = D x x QQQ --- --- --- --- --- --- --- --- --- --- --- --- Q Q Q x x QQQ x x QQQ x x QQQ Q = D Q = D Q = D 5
Licznik ze sterowaniem - przerzutniki D x x QQQ x x QQQ x x QQQ D = QQx x +QQQx x D D D D = QQx x +QQx x +QQx x +Qx x D = QQx +QQx x +Qx x 6
Licznik ze sterowaniem - przerzutniki JK 7
QQ J K Licznik ze sterowaniem - JK QQQ x x Q x x QQQ J = x x QQQ QQx x J K + QQx x K = 8
QQ J K Licznik ze sterowaniem - JK x x QQQ Q J = x x QQQ x x QQQ Qx x J K + Qx x K = x + Qx +Qx 9
QQ J K Licznik ze sterowaniem - JK QQQ x x Q x x QQQ x x QQQ J = J Qx x K + Qx +Qx x K = 3
Nie martwmy się... Synteza kombinacyjna uk adów sekwencyjnych mo e by (i zazwyczaj jest) procesem mudnym, trzeba przetwarza ogromne tablice wype nione zerami i jedynkami. Ale nie martwmy si! roces ten w systemach komputerowego projektowania jest ca kowicie zautomatyzowany. 3
jedyn czynno ci Nie martwmy u ytkownika się... jest... AHDL lub VHDL dalej automatycznie a do zaprogramowania FGA 3
Specyfikacja automatu Nie wnikaj c w szczegó y takiego zapisu (b d one omawiane na innych wyk adach) trzeba podkre li, e jest to wierne odwzorowanie tablicy przej wyj automatu. AHDL VHDL 33
Na przykład licznik ze sterowaniem... ABLE % current current next next % % state input state output % S X Y S S S4 S S S S S S S3 S S S3 S4 S S S4 S S3 S END ABLE; s, v[] => s, y; s, B" => s, ; s, B" => s4, ; s, B"X => s, ; s, B" => s, ; s, B" => s, ; s, B"X => s, ; s, B" => s3, ; s, B" => s, ; s, B"X => s, ; s3, B" => s4, ; s3, B" => s, ; s3, B"X => s, ; s4, B" => s, ; s4, B" => s3, ; s4, B"X => s, ; zapisany w j zyku AHDL, po wprowadzeniu... 34
specyfikacji do edytora tekstowego ABLE % current current next next % % state input state output % END ABLE; s, v[] => s, y; s, B" => s, ; s, B" => s4, ; s, B"X => s, ; s, B" => s, ; s, B" => s, ; s, B"X => s, ; s, B" => s3, ; s, B" => s, ; s, B"X => s, ; s3, B" => s4, ; s3, B" => s, ; s3, B"X => s, ; s4, B" => s, ; s4, B" => s3, ; s4, B"X => s, ; 35
i uruchomieniu kompilatora...zostanie automatycznie zrealizowany bez udzia u projektanta. q _EQ =!q & q &!X & X # q &!X & X #!q &!q &!X &!X; EM73 q _EQ = q &!X & X # q & q &!X & X #!q & q &!q &!X &!X # q &!q &!q &!X &!X; q _EQ3 =!q &!q &!q &!X & X # q & q &!q &!X &!X; 36
niosek Skoro kompilator oblicza funkcje wzbudze automatycznie, to umiej tno ta nie jest w dzisiejszych czasach spraw najwa niejsz. Lepiej skoncentrowa si na tych metodach i procedurach syntezy logicznej, które nie s jeszcze wbudowane do systemów komercyjnych. 37
Minimalizacja automatu Minimalizacja automatu to minimalizacja liczby stanów. Jest to transformacja automatu o danej tablicy przejść-wyjść na równoważny mu (pod względem przetwarzania sygnałów cyfrowych) automat o mniejszej liczbie stanów wewnętrznych. Jest to prawie zawsze możliwe, gdyż w procesie pierwotnej specyfikacji często wprowadzane są stany nadmiarowe lub równoważne. Minimalizacja liczby stanów S x a b c d a b c d S S S3 S4 S5 S6 S4 S6 S3 S3 S4 S S6 S6 S S5 S S S3 a b c d a b A C B C A B C C A C B C A B Czysty zysk zamiast trzech przerzutników tylko dwa! c d
nformacja dla zainteresowanych syntezą logiczną Materiał z tego wykładu jest prezentowany również w ramach wykładu prof. M. erkowskiego ECE 573 Design od sequential circuits w ortland State University Jest to wykład obszerniejszy niż nasz bo obejmuje wyłącznie układy sekwencyjne http://web.cecs.pdx.edu/~mperkows/class_573/573-6.html
Minimalizacja liczby stanów Relacja zgodności na zbiorze stanów S: (pary stanów zgodnych) Maksymalne zbiory stanów zgodnych (Maksymalne Klasy Zgodności) Selekcja zbiorów zgodnych spełniających tzw.: warunek pokrycia warunek zamknięcia 3
ojęcia podstawowe Dwa stany wewnętrzne Si, Sj są zgodne, jeżeli dla każdego wejścia v mają one niesprzeczne stany wyjść, a ich stany następne są takie same lub niesprzeczne. x S a b 3 c 4 d a b c d Stany zgodne warunkowo 4 3 4 6 6 6 5 Stany zgodne 5 6 3 3 Stany sprzeczne Dwa stany wewnętrzne S i, S j są zgodne warunkowo, jeżeli ich stany wyjść są niesprzeczne oraz dla pewnego v V para stanów następnych do S i, S j (ozn. S k, S l ): (S i, S j ) (S k, S l ) Stany Si, Sj są sprzeczne, jeżeli dla pewnego v V ich stany wyjść są sprzeczne. 4
Relacja zgodności Ze względu na zgodność warunkową w obliczeniach (wszystkich!) par zgodnych posługujemy się tzw. tablicą trójkątną. ablica trójkątna zawiera tyle kratek, ile jest wszystkich możliwych par stanów. Na przykład dla automatu o 5 stanach: 5
ablica trójkątna 3 4 v x 5 (i,j) 3 4 Kratki tablicy wypełniamy symbolami: v jeżeli para stanów jest zgodna, x jeżeli para stanów jest sprzeczna, lub (i,j) - parą (parami stanów następnych), jeżeli jest to para zgodna warunkowo. 6
7 ablica trójkątna - przykład 3 3 6 5 5 6 4 6 6 3 4 4 3 d c b a d c b a 5 4 3 6 5 4 3,; 3,5 v v v v v 36 46 4 34
ablica trójkątna - przykład o wypełnieniu tablicy sprawdzamy, czy pary stanów sprzecznych (zaznaczone ) nie występują przypadkiem jako pary stanów następnych. Jeśli są takie pary, to należy je skreślić (czyli zaznaczyć ). roces ten trzeba powtarzać tak długo, aż sprawdzone zostaną wszystkie krzyżyki. 3 4 3,6 4,6 szystkie kratki niewykreślone odpowiadają parom zgodnym: (,); (,3); (,5); (,3); (,4); (,5); (3,5); (3,6); (4,6). 5,4 6 3,4 3,; 3,5 4 5 8
Obliczanie MKZ o wyznaczenie zbioru par stanów zgodnych, przystępujemy do obliczenia: maksymalnych zbiorów stanów zgodnych. Maksymalne klasy zgodności (MKZ)...znamy co najmniej trzy metody obliczania MKZ! 9
...wracamy do przykładu ary zgodne: (,); (,3); (,5); (,3); (,4); (,5); (3,5); (3,6); (4,6),,3,5,3,4,5 3,5 3,6 4,6 v v v v v v MKZ:,,3,,5,,3,5,3,5,3,5,4 3,6 4,6 MKZ = {{,,3,5}, {,4}, {3,6}, {4,6}}
Algorytm minimalizacji ) yznaczenie par stanów zgodnych, ) Obliczenie maksymalnych zbiorów stanów zgodnych (MKZ), 3) Selekcja zbiorów spełniających tzw. warunek pokrycia (a) i zamknięcia (b): a) każdy stan musi wchodzić co najmniej do jednej klasy; b) dla każdej litery wejściowej wszystkie następniki (stany następne) danej klasy muszą wchodzić do jednej klasy.
arunek pokrycia - przykład 3 3 6 5 5 6 4 6 6 3 4 4 3 d c b a d c b a MKZ = {{,,3,5}, {3,6}, {,4}, 4,6}} Aby spełnić warunek pokrycia wystarczy wybrać klasy: {,,3,5}, {4,6}
3 arunek zamknięcia - przykład 3 3 6 5 5 6 4 6 6 3 4 4 3 d c b a d c b a Dla wybranych klas {,,3,5},{4,6}} obliczamy ich następniki: 4,6,,3,5 d c b a Nie jest spełniony warunek zamknięcia! 4,6 3,6,4 3 6, 3,5 3,6!,4!
4 arunek pokrycia i zamknięcia druga próba 3 3 6 5 5 6 4 6 6 3 4 4 3 d c b a d c b a 4,6 C 3,5 B, A d c b a d c b a MKZ = {{,,3,5}, {3,6}, {,4}, {4,6}} ybór: B A C B C A C C B A C B C A d c b a d c b a {,}, {3,5}, {4,6} 3,5, 6 3 6 6 4 3 4 O.K.
5 Jeszcze jeden przykład 8 8 7 7 6 3 5 5 4 4 3 3 6 7 6 5 4 3 8 7 6 5 4 3 37 46 56 68 45 48 58 v v v v v v v v v v 37
Jeszcze jeden przykład c.d. 3 4 5 6 7 8 46 56 68 45 v v v 37 v v 48 58 v 3 4 ary zgodne: 37 v v v v 5 6 7,3,7,5,8 3,4 3,5 3,6 4,5 4,6 4,7 5,7 5,8 6,7 6,8 MKZ:,5,8 3,4,5 3,4,6 4,5,7 4,6,7,3,7 6,8 6
Jeszcze jeden przykład c.d. 3 4 5 6 7 3 3 7 6 4 5 8 MKZ:,5,8 3,4,5 3,4,6 4,5,7 4,6,7,3,7 6,8 8,5,8 3,4,5 3,4,6 4,5,7 4,6,7,3,7 6,8 δ(,s i ) δ(,s i ) 33 3 45 7 3 7 45 5 8 5 8 64 68 7 7
8 Jeszcze jeden przykład c.d. 8 8 7 7 6 3 5 5 4 4 3 3 6 68 46 58 58 45 45 δ(,s i ) 7 7 3 7 3 3 δ(,s i ) 6,8,7,3 4,6,7 4,5,7 3,4,6 3,4,5,5,8 B A C A B B C C A X S A B C Automat minimalny:
Detektor sekwencji Zaprojektować układ sekwencyjny Mealy ego o jednym wejściu binarnym i jednym wyjściu binarnym. Układ ma badać kolejne trójki symboli wejściowych. Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić, gdy trójka ma postać, a, gdy trójka jest innej postaci. Sygnał pojawiający się podczas pierwszego i drugiego skoku układu może być nieokreślony. -- -- ------ 3 /- /- /- /- /- /- 4 5 6 7 / / / / / / / / 9
Detektor sekwencji /- /- / 3 4 5 6 7 /- /- /- / / / / / / / /- /- /- / /- /- 3 4 5 /- /- /- / / / /- 5 4 - - 5 5 3 - - 5 4 - - 3 S 7 6 5 4 - - 7 6 3 - - 5 4 - - 3 S
Minimalizacja detektora sekwencji S X 3 4 5 4, 3 5 3 4 5 5 5 3 4 5 5, 3 5, 3, 3 45 4, 5 4, 5 5 5 Bardzo dużo par zgodnych! 3 4 Do wyznaczenia MKZ wykorzystamy pary sprzeczne, których jest znacznie mniej (dwie).
Minimalizacja detektora sekwencji ary sprzeczne zapisujemy w postaci wyrażenia boolowskiego typu iloczyn (koniunkcja) dwu-składnikowych sum. detektorze sekwencji pary sprzeczne są: (, 3); (4, 5). Na tej podstawie zapisujemy wyrażenie: ( 3) (4 5), które po wymnożeniu uzyskuje postać: ( 3) (4 5) = 4 5 3 4 3 5 Odejmując od zbioru S = {,, 3, 4, 5} wszystkich stanów zbiory zapisane w poszczególnych składnikach uzyskujemy rodzinę wszystkich MKZ. {,, 3, 4, 5} {, 4} = {, 3, 5} {,, 3, 4, 5} {, 5} = {, 3, 4} {,, 3, 4, 5} {3, 4} = {,, 5} {,, 3, 4, 5} {3, 5} = {,, 4}
Minimalizacja detektora sekwencji X S 3 4 5 4 5 3 5 5 - - - - - - S MKZ: {, 3, 5}, {, 3, 4}, {,, 5}, {,, 4} X 35 34 5 Klasy {, 3, 5}, {,, 4} spełniają warunek pokrycia, 5 5 4 35 35 35 Funkcja przejść dla wszystkich MKZ ale nie spełniają warunku zamkniętości stany następne: {,,5}! 4 4 35 Dokładamy klasę {,,5} Klasy: {,3,5}, {,, 4}, {,, 5} spełniają warunek pokrycia i zamkniętości S X A 35 B 5 C 4 5 4 4 35 35 35 S X A B C B C C A A A 3
...a to już było S X A B B C A A Uzyskany automat był już realizowany na przerzutnikach i bramkach wykład cz6, plansze 5 do. C C A Omówiliśmy cały proces syntezy! Zaprojektować układ sekwencyjny Mealy ego o jednym wejściu binarnym i jednym wyjściu binarnym. Układ ma badać kolejne trójki symboli wejściowych. Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić, gdy trójka ma postać, a, gdy trójka jest innej postaci. Sygnał pojawiający się podczas pierwszego i drugiego skoku układu może być nieokreślony. x x Y CLK Q Q Q Q 4
roblem kodowania s x ariant ariant A B C D A A D A B C C B A = B = C = D = A = B = C = D = ariant + = " " " " + = " " + " " " " = " " ariant = + " " " = = " "
Kodowanie Jak przewidzieć (obliczyć) najlepsze kodowanie stanów? Czy realne jest sprawdzenie wszystkich możliwości 3 stany - 3 różne kodowania 4 stany - 3 różne kodowania 5 stanów - 4 kodowań 7 stanów - 84 kodowań 9 stanów - ponad milionów kodowań
KODOANE Jedyną rozsądną z punktu widzenia dzisiejszych technologii i realną do omówienia w ograniczonym ) czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia. ) A wszystkich wytrwałych w tym procesie specjalnie nagradzam na egzaminie. 3
Elementy rachunku podziałów odziałem na zbiorze S jest system zbiorów = {B i }, którego bloki są rozłączne, czyli B i B j =φ, jeśli tylko i j. Dla S = {,,3,4,5,6}, = {{,}, {3,5}, {4,6} } jest podziałem na S. Π = (,; 3,5; 4,6) loczyn podziałów, suma podziałów oraz relacja. 4
Elementy rachunku podziałów owiemy, że podział Π a jest nie większy od Π b (co oznaczamy: Π a Π b ), jeśli każdy blok z Π a jest zawarty w pewnym bloku z Π b. Π a = (,,4;3,5,6) Π b = (,4;,6;3,5) Π. = (,; 4;6;3,5) Π c Π a ak Π c </ Π b Π() podział najmniejszy Π() podział największy 5
Elementy rachunku podziałów loczynem podziałów Π a Π b nazywamy największy (względem relacji ) podział, który jest nie większy od Π a oraz Π b. Π a = (,,4;3,5,6) Π b = (,4;,6;3,5) Π a Π b = (,4; ;6;3,5) 6
Elementy rachunku podziałów Sumą podziałów Π a + Π b nazywamy najmniejszy (względem relacji ) podział, który jest nie mniejszy od Π a oraz Π b. Π a = = (,;3,4;5,6 7,8,9) (,6;,3;4,5 7,8 9) Π b Π = (,,6;... ) a + Π b = (,,3,6;... ) Π a + Π b Π = (,,3,4,6;... ) a + Π b Π ( ) a + Π b =,,3,4,5,6;... Π a + Π b = (,,3,4,5,6;7,8,9 ) 7
8 łasność podstawienia odział Π na zbiorze stanów automatu M=<S,, δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów S i, S j należącej do tego samego bloku Π i każdego wejścia k stany k S i oraz k S j należą do wspólnego bloku Π. E D F F B E A F D E C C C E B F A A x s ( ) F D C E B A,, ;,, π = odziały z własnością podstawienia: ( ) F E D B C A, ;, ;, π =
wierdzenie Dany jest automat M o zbiorze stanów S, S = n. Do zakodowania stanów potrzeba Q,..., Q k elementów pamięci. β(π) liczba bloków podziału Π Jeżeli istnieje podział Π z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q,..., Q k, gdzie r = log β(π), jest przyporządkowanych blokom podziału Π tak, że wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q,..., Q r, to funkcje Q,..., Q r, są niezależne od pozostałych (k r) zmiennych. 9
rzykład - interpretacja w.p. s A x A F π = ( A, B, E; C, D, F ) B C E C C E ( A, D; B, C; E F ) τ =, D F A E F B D F E Kodowanie wg Π A τ B Nie wystarcza to do zakodowania Π τ = Π() C D E F arunek jednoznaczności kodowania!
rzykład s x Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego: A B C D E F A E C F B D F C E A F E Q Q Q 3 A B C D E F Q = D = f(x,q ) a co z pozostałymi? Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem: Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że pierwsza z nich, czyli D będzie Q = D = f(x,q,q,q 3 ) Q 3 = D 3 = f(x,q,q,q 3 )
rzykład A może jest więcej podziałów zamkniętych: s A B C x A E C F C E óźniej wykażemy, że oprócz Π jest Π π ( ) = A, B, E; C, D, F π ( A, C; B, D; E, F ) = D F A Kodowanie wg Π Π E B F A F D E B C Jest to kodowanie jednoznaczne Π Π = Π() D E F
RZYKŁAD c.d. rzy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q, Q 3 ) od dwóch zmiennych wewnętrznych, czyli Q = f(x,q ) Q = f(x,q,q 3 ) Q 3 = f(x,q,q 3 ) Kto nie wierzy, niech zakoduje, obliczy funkcje Q, Q, Q 3 i sprawdzi. Dla całego roku! 3
Obliczanie podziału zamkniętego s x worzymy graf par następników dla różnych wierzchołków początkowych A B A E F C A,B C D C F E A A,E C,F E F B D F E F C,D E A,C E,F A,B = ( ) B,D A,C A,D Π ( ) Π = Π() A,D A,F 4
5 RZYKŁAD Z A B G B D H D C F C A E C E D D G C A F B B H A x s Generujemy podziały zamknięte Do zakodowania stanów automatu M potrzebne są 3 podziały -blokowe, takie że: = Π() Π Π Π c b a
RZYKŁAD c.d. x Z s Graf par następników : A H B B F A C G D A,B F,H D E C E A C F C D G B A C,D B,D H D B G,H Π = ( ) G,E E,F A,C 6
7 RZYKŁAD c.d. Z A B G B D H D C F C A E C E D D G C A F B B H A x s ( ) = ; ; ; A,D D,H B,F + =Π
Π = Π = ( ) ( ) RZYKŁAD c.d. Niestety: Π Π = ( ) Π() otrzebny jest więc jeszcze jeden podział τ: Π Π τ = Π( ) τ = ( ) 8
RZYKŁAD c.d. Π ( ) = Π = ( ) τ = ( ) Kodowanie wg Π Π A B C D E F G H τ 9
RZYKŁAD c.d. rzy tak dobranym kodowaniu dwie funkcje wzbudzeń Q i Q tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q 3 (w najgorszym przypadku) od trzech zmiennych, czyli Q = f(x,q ) Q = f(x,q ) Q 3 = f(x,q,q,q 3 ) arto zakodować, obliczyć funkcje wzbudzeń Q, Q, Q 3 i sprawdzić, czy rzeczywiście tak jest.
Komentarz Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń. szczególności dla kodowania wg naturalnego kodu binarnego ) : A B C D E F G H Q = f(x,q ) Q = f(x,q,q,q 3 ) Q 3 = f(x,q,q,q 3 ) ) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych
Nie martwmy się najnowszych systemach istnieje opcjonalna możliwość wprowadzenia kodowania obliczonego zewnętrznie przez użytkownika
Dekompozycja szeregowa Dany jest automat M o zbiorze stanów S. arunkiem koniecznym i wystarczającym dekompozycji szeregowej automatu M na dwa szeregowo połączone automaty M, M jest istnienie podziału π z własnością podstawienia i podziału τ takich, że π τ =. x q Q q Q f (x,q ) D f (x,q,q ) D f (x,q ) z 3
Dekompozycja równoległa Automat M jest dekomponowalny na dwa podautomaty M, M działające równolegle wtedy i tylko wtedy, gdy na zbiorze S tego automatu istnieją dwa nietrywialne podziały π, π z własnością podstawienia takie, że π π = π() q x f (x,q ) D q f (x,q ) D Q Q f (x,q,q ) z 4
Schematy dekompozycji Dekompozycja szeregowa x y M (π) M (τ) Y Dekompozycja równoległa M (π) x M (π ) Y y 5
Dekompozycja szeregowa - przykład x s A A F π = s s ( A, B, E; C, D, F ) B E C C D E F C F B D E A F E s s s 3 ( A, D; B, C; E F ) τ =, π τ = π() s x s s s s s s x s s s s 3 s s 3 S, s 3 s S, s s 3 S, s 3 s s S, s s 3 s 3 S, S, S, S, 6
Dekompozycja równoległa - przykład x s A A F ( A, B, E; C, D, F ) π s s = B C D E C F C E A ( A, C; B, D; E, F ) π s s s 3 = E F B D F E π π = π() s x x s S, S, S, S, s x s s s s s s s s s s s 3 s 3 s s 3 s s 3 s s 3 s 3 s s 3 s s s 3 s s 3 s s 3 s s 3 7
Dekompozycja z autonomicznym zegarem Niektóre automaty mają dekompozycję, w której występuje autonomiczny zegar podautomat niezależny od wejść. odział π i zbioru stanów S automatu M jest zgodny z wejściem, jeśli dla każdego stanu S j S i dla wszystkich v l V δ(s j,v ), δ(s j,v ),..., δ(s j,v l ),..., δ(s j,v p ), są w jednym bloku podziału π i. arunkiem koniecznym i dostatecznym istnienia dekompozycji automatu M, w której występuje autonomiczny zegar o log β(π) stanach jest, aby istniał podział zamknięty π i nietrywialny zgodny z wejściem podział π i zbioru stanów S tego automatu, taki że π π i 8
RZYKŁAD 3 s x odział zgodny z wejściem: A B D C C D Π = ( ) C D E F F E Π jest zamknięty E F B A A B Π = ( ) Π Π = O Π() 9
RZYKŁAD 3 ( A,B;C,D;E,F) ( ) = Π = Kodowanie wg Π wg Π O Q = f(q,q ) A B Q = f(q,q ) C D Q 3 =??? E F y = f(x,q 3 ) 3
Zadanie treningowe do wykładów ULOG cz. 6 i cz. 7 Zaprojektować licznik mod 8 z wejściem zezwalającym E (Enable). rzerzutniki do realizacji dobrać tak ), aby uzyskać najprostszy schemat logiczny licznika. Rozwiązanie: S E E Licznik clock Q ) tym sensie jest to zadanie z metod kodowania S S S S S S S S S 3 S 3 S 3 S 4 S 7 S 7 S
Zakodowana tablica przejść licznika ablica przejść Zakodowana tablica przejść kod binarny S E QQQ E S S S S S S S S S 3 S 3 S 3 S 4 S 4 S 4 S 5 S 5 S 5 S 6 S 6 S 7 S 6 S 7 S 7 s S QQQ Q Q Q
3 QQQ E QQQ Q Q Q QQQ E QQQ Q Q Q Zakodowana tablica tranformowana do tablicy Karnaugha
Funkcje wzbudzeń dla przerzutników D QQQ E E QQQ QQQ Q Q Q QQQ D D D D = QQ +QQ +QE D = + QQQE QE QE + QQ D = QE + QE +Q 4
5 QQQ E QQQ QQQ E QQQ Q Q Q = EQQ = = EQ E Funkcje wzbudzeń dla przerzutników
Schemat logiczny licznika ) = E = EQ = EQ Q = Q Enable Q Q Q Clock Q Q Q ) Najprostszy na świecie 6
x Układy asynchroniczne Model układu sekwencyjnego Model układu asynchronicznego (synchronicznego) y x n UK y m układ kombinacyjny clock t Q q Q k B x s Stan stabilny s: δ(s,x) = s x blok pamięci jest realizowany q k przez opóźnienia przerzutniki automacie asynchronicznym wszystkie stany są stanami stabilnymi
Skala czasu x z x z x $,,.,8:,7 x x a x x x x,,,,,,
Najprostszy układ asynchroniczny SR q rzerzutnik SR Q Q = qr + S = q R + S =qr S S Q R qr Q 3
rzykład Zaprojektować układ asynchroniczny o dwóch wejściach binarnych x, x i jednym wyjściu y, który ma sygnalizować jedynką pojawienie się na wejściu sekwencji wektorów wejściowych...,,,. Należy założyć, że jednoczesna zmiana dwóch sygnałów wejściowych jest niemożliwa. x y x / / 3/ 5/ 4/ 6/ S x x y 3 4 3 5 3 4 6 4 3 5 6 5 3 6 6 5 4
Redukcja stanów... jest prosta S x x y 3 4 3 5 3 A B C x x S y, 4 3 4 6 4 3 3,5,6 6 5 3 4 6 4 3 5 6 5 3 6 6 5 S x x y A A A B C B C B C C A C C C a kodowanie... 5
... jest trudne Kod stanu A/ B/ Kodowanie stanów x x S y A A A B C B C B C C A C C C C/ Graf stanów automatu minimalnego x x S y A B (-) C 6
Analiza działania układu asynchronicznego () x x S y A x x Układ kombinacyjny (bez opóźnień) y B (-) C Q q Q q Opóźnienia > < 7
Analiza działania układu asynchronicznego () x x S y A x x Układ kombinacyjny (bez opóźnień) y B (-) C Q q Q q Opóźnienia Stan wejść Stan wewn. ; Stan następny ; > < ; ; yścig krytyczny! ; > yścig niekrytyczny! < 8
Analiza działania układu asynchronicznego (3) x x S y A x x Układ kombinacyjny (bez opóźnień) y B (-) C Q q Q q Stan wejść Stan wewn. ; Stan następny ; > < ; ; Opóźnienia ; yścig ; niekrytyczny! 9
Kodowanie stanów Aby uniknąć wyścigów krytycznych należy kodowanie przeprowadzić tak, aby kody stanów, pomiędzy którymi jest przejście, różniły się tylko na jednej pozycji. Np.: ; ; itp.. akie kodowanie zapewnia rozpięcie grafu stanów automatu na kwadracie lub sześcianie kodowym.
Kodowanie stanów Kod stanu A/ B/ A B C/ yścig niekrytyczny można wykorzystać do właściwego kodowania stanów w układach asynchronicznych. (-) C (-) x x S y A B (-) C
ablice przejść x x S y A B (-) C x x QQ -- - - -- -- - - - - Q Q Q Q
yznaczanie funkcji wzbudzeń x x QQ Y -- - - -- -- - - - - - Q Q Q Q Q' = Q x + Q x + x x + Q x Q' = Q x x + Q Q x Q x Dlaczego dodano dodatkową pętlę składnik? Zjawisko hazardu Y = Q 3
Zjawisko hazardu Q' = Q x + Q x + x x Z = Q x + x x rzy Q =, x =, a przy zmianie x : na wyjściu Z powinna być stała Q X Z X X Z Na skutek opóźnienia sygnału x w sygnale Z pojawia się krótki impuls o wartości. Jest to hazard statyczny - szkodliwy w układach asynchronicznych! 4
5
Zjawisko hazardu układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny. yrażenia boolowskie należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą. x x QQ - - - Q x 6
Realizacja układu Y = Q Q' = Q x + Q x + x x + Q x Q' = Q x x + Q Q x X X Q Q Y Q 7
Jak jest zbudowany przerzutnik synchroniczny? () S S Q Clk R Q R Jest to synchronizacja szerokością impulsu latch (zatrzask) Strefa oddziaływania CLK S R Q Stan Q przerzutnika zmienia się dwukrotnie w czasie trwania okresu przebiegu zegarowego! 8
roblem synchronizacji rzerzutniki tego typu mają prostą budowę, ale mogą służyć tylko do przechowywania (zatrzaskiwania) informacji. Nie mogą służyć do budowy synchronicznych układów sekwencyjnych. rawidłowa synchronizacja powinna działać tak, aby w czasie trwania okresu przebiegu zegarowego sygnał wejściowy przerzutnika był odczytywany jeden raz, a stan przerzutnika zmieniał się także jeden raz niezależnie od zmiany sygnałów wejściowych. 9
Jak jest zbudowany przerzutnik synchroniczny? () D Clk? rzerzutnik typu D Q Q D Q
rzykład Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim D Clk Automa t sterujący Y Y S R rzerzutnik R S Q Q S Q Q S R R Q
rzykład c.d. D Clk Automat sterujący Automat sterujący wytwarza na wyjściach Y lub Y sygnał (włączający lub wyłączający przerzutnik S R ) tylko wówczas, gdy w sygnale Clk pojawi się zbocze synchronizujące, to jest zmiana Clk. Jeśli w tym momencie na wejściu D jest, to pojawi się na wyjściu Y ( S) przerzutnik S R zostanie włączony. Jeśli na wejściu D jest, to pojawi się na wyjściu Y ( R) przerzutnik zostanie wyłączony Y Y S R D clk rzerzutnik R S / S R Q Q 3/ / S R
rzykład c.d. D clk / / S R 3/ S ablica przejść-wyjść D,clk YY 3 3 3 3 (clk c) D,c QQ YY -- -- -- -- -- () () (3) Zakodowana tablica p-w (kody stanów takie same, jak wyjścia Y, Y) 3
(clk c) rzykład c.d. D,c QQ YY -- -- -- -- -- () () (3) Q Q D,c D,c QQ QQ - - - - - - - - () () () () (3) (3) Q Q = c + Q D + Q = c + Q D+ Q 4
5 rzykład - realizacja Q D Q c Q D Q c Q D Q c Q' = + + = + + = Q D Q c Q D Q c Q D Q c Q' = + + = + + = S R Q Q D Clk (c) Q =Y Q =Y Automat sterujący
Zadanie Zaprojektować asynchroniczny układ o wejściach x i x wyjściu y pracujący wnastępujący sposób: y= gdy x =x = i przedostatnia zmiana sygnału wejściowego była zmianą na wejściu x. pozostałych przypadkach y=. / / 3/ 6/ 4/ 7/ Zmiana przedostatnia 5/ / Zmiana ostatnia 6
Zadanie c.d. 7/ / / 3/ 4/ 5/ x x 6/ S y 6 5 3 3 3 6 4 5 3 4 5 5 7 4 6 5 6 7 5 7 7
Zadanie c.d. Minimalizacja S x x y S x x y 6,6 5 6 5 3,4 5 3 4 3 3 6 3 3 6 4 5 3 4 5,7 5 7 4 5 5 7 4 6 5 6 7 5 7 Automat minimalny x x y S A,6 D B A A B,4 D B C B C C B C A D 5,7 D D A B 8
Zadanie c.d. Kodowanie S x x y A D B A A B D B C B C B C A D D D A B x x S y A C B D yścig Krytyczny! A/ D/ C/ B/ 9
Zadanie c.d. x x QQ y Synteza kombinacyjna y = Q Q Q Q x x QQ x x QQ = xx + Qx + Qx Qx Q' = Q x + Qx x + Qxx + QQ x 3 Q' +
Zadanie c.d. - realizacja y x x Q Q 3
Kodowanie metodą n Liczba stanów automatu wynosi n. Długość wektora kodowego ustalamy na n. Jeden stan kodujemy wektorem złożonym z samych zer. ozostałe stany kodujemy wektorami z jedną jedynką. Między każde dwa stany S, kodowane wektorami z jedną jedynką wstawiamy stan niestabilny R o wektorze kodowym R = S A: C:, B:, D: S x x y A D B A A B D B C B C B C A D D D A B A/ C/ D/ B/ 3
Kodowanie n A/ C/ E D/ B/ F Modyfikacja tablicy p-w x x QQQ3 y A D B A A B DF B CE B C BE C A D D D A B E F D B C F B 33
Kodowanie n Zakodowana tablica p-w x x QQQ3 y A D F B E (-) (-) C Q Q Q3 Y = Q 34
Kodowanie n Q x x QQQ3 Q' = Q Q x + Qxx 35
Kodowanie n Q x x QQQ3 ętla antyhazardowa Q' = Q Q + Q3 + Q3xx + Q3xx QQ x 36
Kodowanie n Q3 x x QQQ3 Q3' = x + x + QQ 3x + QQ3x 37
ELEFONA KOMÓRKOA RZEARZANE DŹD ĘKU RADOFONA ELEZJA Układy cyfrowe Układy cyfrowe NERNE RADOOMUNKACJA RADOLOKACJA ELEMEDYCYNA
Jaki jest związek układów logicznych z projektowaniem układów cyfrowych?
Układy cyfrowe...konstruowane są w różnych technologiach i na różnych poziomach opisu. oziomy opisu: ) Bramki i elementarne układy pamięciowe (przerzutniki) D Clk rzerzutnik typu D Q Q A n B n ) Bloki funkcjonalne: układy arytmetyczne (sumatory), liczniki, rejestry. s s clock X L (Q) Y s s clock x p X R (Q) Y n- Z OVR G x l ALU c n c Y n S worzą one nowe elementy konstrukcyjne, z których buduje się złożone układy cyfrowe o różnorodnych zastosowaniach: układy przetwarzania sygnałów, układy sterowania, specjalizowane procesory, układy kryptograficzne. Y 3
Bloki funkcjonalne stanowią wyposażenie bibliotek komputerowych systemów projektowania Licznik Mux Rejestr Każdy układ cyfrowy składamy z bloków funkcjonalnych 4
Blok funkcjonalny specjalizowany układ cyfrowy wykonujący jedną lub kilka elementarnych operacji (mikrooperacji) przetwarzania sygnałów cyfrowych Na przykład: dodawanie, odejmowanie ypowe bloki funkcjonalne: multipleksery, demultipleksery, sumatory, liczniki, rejestry. Systematyczne studia dotyczące bloków funkcjonalnych na wykładzie z UKŁADÓ CYFROYCH 5
Multiplekser (MUX) e ejście zezwalające N = n wejść informacyjnych d d d N- y = e N k = k (A)d k ejścia adresowe a n- a gdzie k (A) oznacza pełny iloczyn zmiennych a n,...,a, prostych lub zanegowanych, zgodnie z reprezentacją binarną liczby k = L(A). 6
Multipleksery d d d d 3 3 e= Dla n = (MUX : ): y = ad + ad dla n = (MUX 4 : ): y = a a d + + a a d + a a d a a d 3 d a e a d a a d y dla n = 3 (MUX 8 : ): y = a a a d + a a a d + + a a a d + a a a d 4 5 a a a d + a a a d 3 + d 6 a a a d + a a a 3 + d 7 7
Multiplekser jako przełącznik e= y = a + ad + aa d + aa d aa d3 3 8
Demultiplekser e ejście zezwalające y ejście d informacyjne ejścia adresowe a n- a y y N- N = n wyjść y k = e (A)d k gdzie k (A) oznacza pełny iloczyn zmiennych a n,...,a, prostych lub zanegowanych, zgodnie z reprezentacją binarną liczby k = L(A). 9
Demultiplekser jako przełącznik e= y y = a = a a a d d y = a a d 3 a y 3 = a a d e y a d y y y 3
Bloki komutacyjne a a 3 a a 3 MUX-y i DMUX-y można przystosować do przełączania (komutacji) sygnałów wielobitowych (grupowych)
Dekoder DMUX e DEKODER d y y a a y y y N- a n- y N- a n- a N = n
MUX/DMUX w realizacji funkcji boolowskich y = Σ(,7,,3,4,5) 3 4 5 6 7 8 9 3 4 5 y 3 4 5 6 7 8 9 3 4 5 y x 3 x x x x 3 x x x 3
Bezpośrednie zastosowanie MUX/DMUX do realizacji funkcji boolowskich należy odłożyć do kosza! Sensowne jest natomiast stosowanie tych układów do wspomagania procesu syntezy funkcji boolowskich Dobrym przykładem jest zastosowanie dekoderów do zmniejszania liczby wyjść pamięci ROM w realizacjach zespołów funkcji boolowskich. Jest to problem z Zadania 5, str. 46 podręcznika SUL. 4
Sumatory A B Sumator podstawowy BF powszechnie stosowany w technice DS c n n Σ n c nne układy arytmetyczne: układy odejmowania układy mnożące układy dzielenia...są budowane z sumatorów Y n 5
Najprostszy sumator Kaskadowy ripple carry adder A B n n a n- b n- a i b i a b c n C 4 = = Σ c c n Σ c n- c i+ Σ c i c Σ c n y n- y i y Y Jak jest zbudowane pojedyncze ogniwo? 6
Funkcje logiczne sumatora c o c a b Σ y y i i+ c = a b c i i i = ab c (a b ) i i a b c c o y i i i c o ab c y = cab cab cab cab = c a b c a y = c a b ( b) ab c = ab c(a b) = ab c(a b) 7
Sumator/układ odejmujący Jak z sumatora zbudować układ odejmujący? A B n B XOR n n cn c Σ n Y + B B A U = (a n,..., a j,..., a ) C o = C o = ( ) = n + U n j= A = L A a a D j n j
Reprezentacje liczb NKB/U A =<a n,..., a j,..., a > gdzie a j {,} NKB: ( ) = NKB j= A = L A a D j n j U: ( ) = n + U n j= A = L A a a D j n j 9
Kod U A U = <a n,..., a j,..., a >, gdzie a j {,} ( ) = n + U n j= A = L A a a D j Bit a n można interpretować jako bit znaku. Jeśli a n =, to liczba jest dodatnia; jeśli a n = to liczba jest ujemna; pozostałe bity stanowią uzupełnienie (różnicę) wartości liczby do najwyższej potęgi liczby <> U = +5 D ; <> U = 5 D Zakres: n A D n n j
Komparator A B n n K z 3 A < B A = B A > B
Komparator a 3 b 3 i 3 A = a 3 a a a B = b 3 b b b i k = a k b k a b i a b i A eq B = i 3 i i i a b i A < B = A eq B+ A gt B A > B = a 3 + i b 3 3 i + i a 3 b a b + i 3 i + i a b a k b k A < B, gdy a k =, b k = A > B, gdy a k =, b k =
Komparator a 3 b 3 a b a b a b i 3 i i i A = a 3 a a a B = b 3 b b b A = B A < B A > B 3
Rejestry Rejestry buduje się z przerzutników typu D Najprostszy rejestr: ładowanie (load) i pamiętanie D Q D Q D 3 Q 3 D 4 Q 4 CLK LOAD aki rejestr nazywamy równoległo-równoległym, krótko równoległym 4
Rejestr przesuwający SHR wejście szeregowe clk Q Q Q 3 Q 4 D D D 3 D 4 aki rejestr nazywamy szeregowo-równoległym, krótko szeregowym E Q Q Q 3 Q 4 5
Jak zbudować rejestr uniwersalny... tzn. taki, który wykonywałby funkcje zarówno rejestru równoległego, jak też szeregowego D Q D Q D 3 Q 3 D 4 Q 4 CLK Q Q Q 3 Q 4 wejście szeregowe D D D 3 D 4 CLK 6
Rejestr szeregowo-równoległy ejścia równoległe X x p X x p ejście szeregowe ejście sterujące s s clock R (Q) Clock D D D D Y D Clock Q D Q Y Y := X Y := Y D Q LOAD D HOLD Clock Q Y := SHR(x p, Y) yjścia równoległe 7
Liczniki rosty licznik mod 8 z wejściem zezwalającym E (Enable) można zaprojektować jako układ sekwencyjny E clock Licznik Q E S S S S S S S S S S 3 S 3 S 3 S 4 S 7 S 7 S 8
Funkcje wzbudzeń dla przerzutników QQ QQQ E E QQQ QQQ Q Q Q QQQ = EQQ = EQ = E 9
rzykład licznika z wejściem Enable 3 = E = EQ = EQQ = = EQ Q Q Q = Q E A A A A A A A A A A 3 A 3 A 3 A 4 A 4 A A 5 Enable Q Q Q Q A 4 A 4 A 5 Clock Q Q Q Q A 5 A 5 A 3
Licznik z wpisywaniem równoległym Enable D D Q Q Q ejścia równoległe D D Q Q Q yjścia równoległe D D Q Q Q D 3 D Q Q Q 3 Load Clock Output carry
Mikrooperacje licznika LOAD HOLD COUN LOAD HOLD COUN clock Licznik LOAD Zliczanie 3
rzykład syntezy strukturalnej Konwerter kodu binarnego na kod BCD: kodzie BCD (Binary Coded Decimal) każda cyfra liczby zapisanej w kodzie dziesiętnym jest przedstawiana czterobitową liczbą binarną Np. liczba 489 zostanie zapisana jako wektor binarny z wykorzystaniem bitów (3 4 bity) 4 8 9 BCD
Konwerter BinBCD 7 BN BN/BCD 7 BCD liczby 99 Dwie metody projektowania: a) Metoda syntezy strukturalnej b) Metoda syntezy logicznej
Konwerter BinBCD Realizacja w strukturze FGA (Stratix) FGA Jakość realizacji: EFK a) Liczba zajętych komórek LC b) Szybkość maksymalna liczba słów przetwarzanych w ciągu sek. 3
Synteza strukturalna - metoda +3 7 = LDA LDB LB LDB 5 NE AK LDB := LDB LDB := LDB+3 8 4
LDA LDB LB LD < 5 LD < 5 LD < 5 3 LD < 5 4 LD < 5 5 LD < 5 6 LDB 5 + 7 LD < 5 8 LD BCD = = 7 7 5
Opis strukturalny 4 4 8 LB 8 4 R3 R R A S3 S S B LK LK = LOAD DEC MUX MUX 3 4 5 A B 4 4 Σ K R4 LOAD US K 5 8 Y = LD 6
Komputerowe projektowanie uzyskaną strukturę zapisujemy w języku opisu sprzętu i kompilujemy w systemie Quartus SECYFKACJA FUNKCJONALNA (HDL) SEĆ LOGCZNA SYNEZA FUNKCJONALNA OYMALZACJA LOGCZNA OS RL ODZOROANE ECHNOLOGCZNE RANSLACJE SECYFKACJ FGA 54 LEs 33 mln/sek 7
Konwerter BinBCD BCD na poziomie logicznym.type fr.i 9.o 8.p * * *.e AHDL/VHDL
Komputerowe projektowanie SECYFKACJA FUNKCJONALNA (HDL) SEĆ LOGCZNA SYNEZA FUNKCJONALNA OYMALZACJA LOGCZNA OS RL ODZOROANE ECHNOLOGCZNE RANSLACJE SECYFKACJ FGA 4 LEs 33 mln/sek 9
ablica prawdy binbcd # Konwerter binbcd.type fr.i 7.o 8.p.......e LE " Decomposed project: binbcd "; % ranslated from DEMAN format % % arsaw University of echnology % % nstitute of elecommunications % SUBDESGN A ( in_, in_, in_3, in_4 :NU; in_5, in_6, in_7 :NU; out_, out_, out_3, out_4 :OUU; out_5, out_6, out_7, out_8 ) VARABLE g_, g_, g_3, g3_ :OUU; :LCELL; :LCELL; g_, g_ BEGN ---- Level ---- ABLE (in_, in_, in_3, in_4) => (g_); B"" => B""; B"" => B"";... B"" => B""; B"" => B""; END ABLE; ABLE (in_6, g_, g_, g_) => (out_7); B"X" => B"";... B"" => B""; END ABLE; END; rocedura dekompozycji 3 komórek (!!!) 35 mln/sek
Realizacja Binbcd wg Demaina in_ in_ in_3 in_4 in_ in_ in_3 in_4 in_5 in_7 g_ g_ g_3 in_6 g_ g_ out_ out_ out_4 out_5 out_6 out_7 out_3 out_8
orównanie realizacji BNBCD Liczba elementów logicznych liczba słów Synteza strukturalna 54 LEs 33 mln/sek Synteza logiczna: system komercyjny Quartus 4 LEs 33 mln/sek system specjalizowany 3 LEs 35 mln/sek rocesor AMD Athlon 64X Dual Core 4+. GHz 9,7 mln/sek
UKŁADY MKROROGRAMOANE Konwerter BNBCD LB R3 R R 8 US A S3 S S B MUX MUX A B LK = LK LOAD DEC 3 5 R4 LOAD Σ K Y = LD K 5 Układ sterujący Układ wykonawczy
System cyfrowy Sygnały sterujące Dane wejściowe Układ sterujący (kontroler) Układ wykonawczego Stan części operacyjnej Dane wyjściowe
Mikroprogramowany układ sterujący Mikroprogramowany układ sterujący Skoro układ sekwencyjny można opisać siecią działań, to powstaje pytanie, czy nie można takiego układu realizować bezpośrednio bez przekształcania SD na opis w postaci grafu automatu. 3
Mikroprogramowany układ sterujący. Sekwencyjny układ synchroniczny (Moore a lub Mealy ego). Funkcje przejść i wyjść są zapisane w pamięci stałej typu ROM zwanej pamięcią mikroprogramu 3. każdym takcie pracy układu jest badany (w zasadzie) jeden warunek (sygnał zewnętrzny) spośród zbioru X wszystkich wejść 4. Opis działania za pomocą sieci działań 4
Sieć działań Graf zbudowany z wierzchołków (klatek) Z i krawędzi Klatki: operacyjne Z Z Z Z x x x 3 Z 3 x x x i,...,x k Z 4 warunkowe selekcyjne 5
Mikroinstrukcja - podstawowe segmenty SD MKRONSRUKCJA M (A i ) wygenerowanie mikrorozkazu Z badanie warunku x X określenie adresu A następnej wykonywanej mikroinstrukcji Moore a A i Z A i x Mealy ego Z a x Z b A j A k A i : Z = Z a, if x then A = A j else A = A k A i :, if x then Z = Z a, A = A j else Z = Z b, A = A k 6 A j A k
na segmenty odpowiadające mikroinstrukcjom A odział sieci działań Stany wewnętrzne A i Moore a A i Z A Z Z Z x A j x A j A k x A 3 A x 3 A4 Z 3 x A 5 Z 4 A j x A i φ A k 7
Sieć działań reprezentuje automat odział sieci na stany (dla automatu) x x x 3 A A A A A A A A A A A A A A A A A 3 A A A Z A A A A A A 3 A 3 A 3 A 3 A A 3 A 3 A 3 A 3 A 3 A 3 A 3 A 3 A 3 Z x A x x 3 Z 3 x A 3 Z 4 8
Mikroprogramowany układ sterujący Schemat blokowy MUS akt A RA UA Sygnały (warunki) zewnętrzne i wewnętrzne M M DM UO Dekoder mikroinstrukcji 9
Format mikroinstrukcji Adres mikroinstrukcji M Mikroinstrukcja S B C Z Format mikroinstrukcji: M = <S, B,C, Z> ola: S -sterujące (kod M) B - adresowe C - kontrolne Z - operacyjne (mikrorozkaz)
rzykład syntezy MUS Mając do dyspozycji licznik o mikrooperacjach LOAD, COUN ze sterowaniem odpowiednio: (dla LOAD), (dla COUN), pamięć ROM oraz ewentualnie inne bloki funkcjonalne i bramki, zaprojektować mikroprogramowany układ sterujący o następującej liście mikroinstrukcji µ : Z, if x c then A = A i else A = A i+, µ : Z, if x c then A = A i+ else A = A i+, µ 3 : Z, A = A j. rozwiązaniu należy podać: fragmenty sieci działań (schematy) odpowiadające wszystkim mikroinstrukcjom, schemat blokowy układu sterującego, tablicę prawdy dekodera mikroinstrukcji oraz minimalne wyrażenia boolowskie opisujące jego wyjścia.
rzykład c.d. - mikroinstrukcje µ : Z, if x c then A = A i else A = A i+ (oczekiwanie na spełnienie warunku) A i µ : Z, if x c then A = A i+ else A = A i+ (skok warunkowy o )) Z x A i+ A i Z x µ 3 : Z, A = A j C, Z C, Z B, Z A i+ A i+ Formaty mikroinstrukcji A i Z A j
rzykład syntezy US - schemat blokowy B + Adresy: A, A+, A+, B X Q Q B L MA A LCZNK C Z M C Z B Z Formaty mikroinstrukcji C, Z C, Z B, Z ola C i B są polami zgodnymi ponieważ nie występują jednocześnie w żadnej mikroinstrukcji. Można je umieścić w jednym segmencie M C s s Z s s x c DM L Q Q 3
rzykład c.d. dekoder mikroinstrukcji M A i Z x A i+ M A i Z x A i+ A i+ M 3 Z A i A j Q Q B A + MA A+ s s DM M s s x c L Q Q x c L Q Q Count Load L LCZNK A 3 L = s + x c Q = s x c Q = s 4
rzykład (str. 39 SUL) Zaprojektować układ sterujący o następującej liście mikroinstrukcji: a) A i : Z, A' = A i+ b) Ai : Z, A' = A j. c) A i : Z, if x c then A' = A i+ else A' = A i, onadto układ ma umożliwiać obsługę mikropodprogramu. 5
Mikroinstrukcje do obsługi (mikro)podprogramu arunkowe wejście do podprogramu A i : if x c then A' = A j, RS:= A i+ else A' = A i+ A i x c RS := A i+ A j adres A i+ powrotu z podprogramu zapamiętany w rejestrze śladu RS A i+ Rejestr Śladu A i+ A :=RS x c A k q arunkowe wyjście z podprogramu A k+ A i : if x c then A' = RS else A' = A i+ 6
rzykład c.d. Zaprojektować układ sterujący o następującej liście mikroinstrukcji: a) A i : Z, A' = A i+ b) A i : Z, A' = A j. c) A i : Z, if x c then A' = A i+ else A' = A i, onadto układ ma umożliwiać obsługę mikropodprogramu. d) A i : if x c then A' = A j, RS:= A i+ else A' = A i+ e) A i : if x c then A' = RS else A' = A i+ 7
rzykład cd. a) b) c) A i A i Z A i Adresy: A i+ Z A i + Z A j x c A j A i d) e) A i A i A i + RS x c RS := A i + x c A j A' := RS A' = RS A i + A i + 8
rzykład cd. realizacja z rejestrem adresowym Q A + 3 MUXA q RS Adresy: A i+ A j RA A i M RS X S B v Q q v MUX C Z DM x c S x c 9
rzykład cd. realizacja z rejestrem adresowym Q A + 3 MUXA q RS Adresy: A i+ A j RA A i M RS X S B v Q q v MUX C Z DM x c S x c
rzykład cd. a) rzejście bezwarunkowe, Z b) Skok bezwarunkowy, Z c) rzejście warunkowe, Z d) arunkowe wejście do podprogramu e) arunkowe wyjście z podprogramu A Q + 3 MUXA q RS M s s s x c Q q v a HOLD Z RA b HOLD Z M c HOLD HOLD Z Z X S B v Q q v d HOLD LOAD NO NO MUX x c C Z S DM x c e 3 HOLD NO NO
rzykład cd. z licznikiem adresowym Q MUXA q RS + Adresy: L LA A i+ count M A i hold X MUX C S B Z v Q q v DM A j load RS load S x c x c
ablice decyzyjne