Wstęp do Techniki Cyfrowej i Mikroelektroniki dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Wstęp do...
Układy logiczne Modele urządzeń wykonanych przez człowieka, dla których zarówno przyczyny (zmienne niezależne), jak i skutki (zmienne zależne) są wielkościami przyjmującymi wartości dyskretne. Zmiany tych wartości odbywają się w dyskretnych punktach osi czasowej.
Przykład UL Wyłącznik hotelowy ~230V y G G x 1 x 2 D D
Tabelaryczny opis pracy wyłącznika hotelowego x 1 x 2 y D D ON D G OFF G D OFF G G ON x 1 x 2 y 0 0 1 0 1 0 1 0 0 1 1 1 Zbiór wejściowy: (x 1, x 2 ) = {00, 01, 10, 11} Zbiór wyjściowy: y = {0, 1}
...... Ogólny opis układu logicznego x m-1 y n-1 X y i =f(x) Y x 0 y 0 Układ kombinacyjny o m wejściach i n wyjściach Dla pełnego opisu należy i wystarczy podać dla każdego wyjścia wartości sygnału, jakie przyjmie ono dla wszystkich mogących wystąpić kombinacji sygnałów na wejściach
Tablica wartości logicznych x m-1... x 1 x 0 y n-1... y 1 y 0 0... 0 0 0... 0 1 0... 0 1 1... 1 0........................ 1... 1 1 0... 1 0
Opis analityczny Wektory: X = (x m-1,..., x 1, x 0 ), Y = (y n-1,..., y 1, y 0 ) Funkcja wyjściowa: Y=F(X) Zbiory maksymalne (przykład dla m=3, n=2): X = {<000>, <001>, <010>, <011>, <100>, <101>, <110>, <111>} Y = {<00>, <01>, <10>, <11>}
Definiowanie systemu algebraicznego zbiór elementów rozważanych zbiór operacji na elementach zbiór relacji między elementami aksjomaty charakteryzujące operacje i relacje
Algebra Boole a definicja Algebra Boole a zbiór elementów (zwyczajowo oznaczony B), w którym istnieją co najmniej dwa różne elementy, istnieją dwa elementy wyróżnione (zakładamy, że są one różne) są określone dwa operatory dwuargumentowe, oznaczone najczęściej symbolami sumy i iloczynu (jak w zwykłej algebrze) oraz jeden operator jednoargumentowy zwany dopełnieniem ~a; elementy (a + b), (a b), ~ a należą do B nie wychodzimy poza B, jest określona relacja równoważności, oznaczona =, spełniająca warunek: dla każdego a,b,c B, jeśli a = b, to ~a = ~b oraz a + c = b + c i a c = b c
Definicja c.d. operatory sumy logicznej, iloczynu logicznego i dopełnienia spełniają dla wszystkich elementów zbioru B następujące postulaty (aksjomaty)(a,b,c B): A 1 postulat przemienności sumy i iloczynu A 2 postulat wzajemnej rozdzielności sumy i iloczynu A 3 postulat o elemencie identycznościowym: dla operatora sumy identycznościowym jest element wyróżniony oznaczony 0, tzn. a + 0 = a, dla operatora iloczynu identycznościowym jest element wyróżniony oznaczony 1, tzn. a 1 = a, A 4 postulat o dopełnieniu: dla operatora sumy i iloczynu obowiązują zależności: a + ~a = 1 oraz a ~a = 0
Przykład algebry Boole a Elementy B podzbiory zbioru {a, b} {-} (zbiór pusty) element wyróżniony 0 {a} = e 1 {b} = e 2 {a,b} element wyróżniony 1 Przyjmujemy znane operatory sumy, iloczynu i dopełnienia zbiorów.
Przykład c.d. Aksjomaty A 1 i A 2 wynikają z teorii zbiorów. Aksjomat A 3 łatwo udowodnić Aksjomat A 4 : skąd wynika też, że e 1 = ~e 2 {a} {b} = {-}, czyli e 1 e 2 = 0 {a} {b} = {a, b}, czyli e 1 e 2 = 1,
Twierdzenia 1. W każdej algebrze Boole a istnieją tylko dwa różne od siebie elementy wyróżnione. 2. Dla każdego elementu a B istnieje jeden i tylko jeden element będący jego dopełnieniem. 3. x + x = x oraz x x = x 4. x + 1 = 1 oraz x 0 = 0 5. 1 + x = 1 oraz 0 x = 0
Twierdzenia c.d. 6. Dopełnienie dopełnienia elementu a jest równe temu elementowi. 7. Twierdzenie o absorpcji x + (x y) = x oraz x (x + y) = x 8. x + (~x y) = x + y oraz x (~x + y) = x y 9. Prawo łączności: (a + b) + c = a + (b + c) oraz (a b) c = a (b c) 10. Prawa de Morgana: ~(a + b) = (~a ~b) ~(a b) = (~a + ~b)
Algebra dwuelementowa Określamy zbiór B={0, 1}, przy czym 0 1. Operatory: a b a+b 0 0 0 0 1 1 1 0 1 1 1 1 a b a b 0 0 0 0 1 0 1 0 0 1 1 1 a ~a 0 1 1 0
Formuły boolowskie Wyrażenia zbudowane ze stałych {0, 1}, oznaczeń zmiennych (literałów) oraz symboli operatorów sumy logicznej, iloczynu i dopełnienia. Pierwszeństwo wykonywania działań: 0 działania w nawiasach, 1 dopełnienie (negacja) 2 mnożenie (iloczyn logiczny) 3 suma logiczna Postać afirmacyjna zmiennej a Postać zanegowana zmiennej ~a
Funkcje boolowskie Zbiór {F} par uporządkowanych <x, y>, będący podzbiorem iloczynu kartezjańskiego {X} {Y}, przy czym x {X}, y {Y}; - dla każdego x {X} istnieje y {Y} takie, że (x, y) {F}, - jeśli (x, y 1 ) {F} i (x, y 2 ) {F}, to y 1 = y 2. Zmienne x i y mogą być w ogólnym przypadku wektorami zmiennymi wielowymiarowymi. Dla każdego z n wyjść układu logicznego o m wejściach funkcję boolowską można zdefiniować jako odwzorowanie zbioru {0, 1}... {0, 1} = {0, 1} m w zbiór {0, 1}. Reguły zapisu odwzorowania: - tablica wartości logicznych (tablica prawdy) - formuła boolowska (postać analityczna funkcji)
Przykład formuły boolowskiej Przykładowo: y = ~x 1 ~x 2 + x 1 x 2 oznacza, że y = 1, gdy x 1 = x 2 = 0 lub x 1 = x 2 = 1 (w pozostałych przypadkach y = 0). x 1 x 2 y 0 0 1 0 1 0 1 0 0 1 1 1 Na podstawie A 2, A 1 i Tw.8: y = (~x 1 ~x 2 )+ x 1 x 2 = (~x 1 ~x 2 + x 1 ) (~x 1 ~x 2 + x 2 ) = = (x 1 + ~x 2 ) (~x 1 + x 2 ) Formuła pierwsza suma jedynek funkcji Formuła druga iloczyn zer funkcji (zamiana postaci zmiennych zeru odpowiada afirmacyjna, jedynce zanegowana)
Pełna suma, pełny iloczyn Pełny iloczyn iloczyn złożony ze wszystkich zmiennych funkcji, przy czym literał każdej zmiennej występuje tylko raz. Przyjmuje wartość 1 tylko dla jednej kombinacji wartości zmiennych. Pełna suma suma złożona ze wszystkich zmiennych, przy czym literał każdej zmiennej występuje tylko raz. Przyjmuje wartość 0 tylko dla jednej kombinacji wartości zmiennych. Suma wszystkich pełnych iloczynów funkcji jest zawsze równa jedności. Iloczyn wszystkich pełnych sum funkcji jest zawsze równy zeru. Dla m zmiennych można utworzyć 2 m pełnych iloczynów lub pełnych sum.
Mintermy i makstermy Minterm pełny iloczyn uporządkowany zgodnie z tabelą poniżej. Maksterm pełna suma uporządkowana zgodnie z tabelą poniżej. ln x m-1,...,x 1, x 0 minterm maksterm 0 0,..., 0, 0 ~x m-1... ~x 1 ~x 0 m 0 x m-1 +...+x 1 +x 0 M 0 1 0,..., 0, 1 ~x m-1... ~x 1 x 0 m 1 x m-1 +...+x 1 +~x 0 M 1 2 0,..., 1, 0 ~x m-1... x 1 ~x 0 m 2 x m-1 +...+~x 1 +x 0 M 2.................. k=2 m -1 1,..., 1, 1 x m-1... x 1 x 0 m k ~x m- 1+...+~x 1 +~x 0 M k
Postać kanoniczna funkcji boolowskiej Każdą funkcję boolowską binarną można przedstawić: - w postaci sumy mintermów (wskaźnik dotyczy tych mintermów, dla których wartość funkcji jest równa 1) - w postaci iloczynu makstermów (wskaźnik dotyczy tych makstermów, dla których wartość funkcji jest równa 0) Powyższe postaci funkcji noszą nazwę kanonicznych. f f i i m i M i
Postać normalna funkcji i jej dopełnienie Postać normalna postać, w której formuła boolowska określająca funkcję jest wyłącznie sumą iloczynów zmiennych (postać normalna dysjunkcyjna alternatywna) bądź iloczynem ich sum (postać normalna koniunkcyjna). Dopełnienie funkcji można znaleźć posługując się rozwinięciem praw de Morgana (tw. 10) na większą liczbę zmiennych. W szczególności: ~(x n-1... x 1 x 0 ) = ~x n-1 +... + ~x 1 + ~x 0 ~(x n-1 +... + x 1 + x 0 ) = ~x n-1... ~x 1 ~x 0 (dowodzenie oparte na iteracyjnym stosowaniu twierdzeń 9 i 10)
Funkcje boolowskie dwóch zmiennych x y f 0 f 1 f 2 f 3 f 4 f 5 f 6 f 7 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 symbol/ operacja 0 x y x/y (x ~y) x y/x (~x y) y XOR x+y f 2 funkcja zakazu y f 4 funkcja zakazu x f 6 ALBO Nazwy funkcji pochodzą z rachunku zdań; wówczas 1 określa się jako prawda, 0 jako fałsz.
Funkcje boolowskie dwóch zmiennych x y f 8 f 9 f 10 f 11 f 12 f 13 f 14 f 15 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 symbol/ operacja f 9 równoważność f 11 implikacja x f 13 implikacja x NOR XNOR ~y x+~y ~x ~x+y NAND 1 y y W teorii układów logicznych operatory implikacji i zakazu nie odgrywają większej roli.
Najważniejsze operatory jedno- i dwuargumentowe Bramki logiczne nazwa używana z uwagi na dwustanowy charakter pracy (włącz-wyłącz).
Systemy funkcjonalnie pełne Zestawy operatorów, pozwalające tworzyć poprawne formuły boolowskie, zawierające, obok nazw zmiennych i elementów 0, 1, symbole odpowiednio zdefiniowanych operatorów. Najbardziej naturalny test: czy w oparciu o dane operatory można skonstruować operatory AND, OR, NOT?
Systemy funkcjonalnie pełne c.d. NAND NOR implikacja, 0 implikacja, NOT implikacja, 1 zakaz, 1 zakaz, NOT XOR, AND, 1 XOR, OR, 1 XNOR, AND, 0 XNOR, OR, 0 AND, NOT OR, NOT
Test pełności NAND i NOR
Realizacje bramkowe funkcji logicznych Symbole graficzne (bramki) mogą być wykorzystywane do graficznego przedstawiania formuł boolowskich. operatory przemienne i łączne mogą być reprezentowane przez bramki wielowejściowe konstruowane wprost z definicji (suma, iloczyn, XOR, XNOR); operatory przemienne NAND NOR mogą być reprezentowane przez bramki dwuwejściowe; dla dwóch argumentów funkcje te tożsame są z systemami AND-NOT i OR-NOT bramki wielowejściowe powstają jako realizacje negacji wielowejściowego iloczynu i sumy; operatory nieprzemienne (implikacja, zakaz) nie mogą być stosowane w układach logicznych i nie są realizowane fizycznie.
Realizacje AND-OR-NOT F x y z x y z x y F x y z x y z x y każda postać normalna daje realizację zawierającą co najwyżej trzy poziomy bramek poziom trzeci (negacje) może nie wystąpić
Minimalizacja formuł boolowskich Najczęstsze kryterium minimalizacja liczby literałów; prowadzi do najprostszej realizacji bramkowej funkcji Metody heurystyczne przekształcenia zgodne z twierdzeniami i aksjomatami algebry Boole a Metody algorytmiczne (do zastosowań komputerowych) Metody intuicyjne diagramy Veitch a tablice Karnaugh
Faktoryzacja funkcji logicznych Minimalizacja formuł boolowskich prowadzona jest w klasie formuł normalnych; otrzymane formuły minimalne są postaciami normalnymi funkcji Faktoryzacja dostosowanie do wymagań technologicznych (ilość wejść bramek, dostępne typy bramek itp.); może zwiększyć skomplikowanie formuły
Układy kombinacyjne Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.
Definiowanie wartości zer i jedynek W układach cyfrowych wartości 0 i 1 definiuje się jako: poziomy napięć lub prądów biegunowość napięć lub prądów zbocza impulsów napięciowych lub prądowych Logika pozytywowa poziom jedynki wyższy niż zera. Logika negatywowa poziom jedynki niższy niż zera
Projektowanie układów kombinacyjnych formułowane w kategoriach potrzeb użytkowych synteza logiczna tłumaczenie na język układów logicznych oparta na intuicji projektanta słabo zalgorytmizowane języki wyrażeń regularnych zbyt formalne, ukierunkowane pod kątem badań poznawczych minimalizacja formuł boolowskich ewentualna faktoryzacja wyrażenia dostosowana do konkretnej realizacji
Komparator binarny porównania liczb binarnych trzy wyjścia: <, =, > symetria tablic Karnaugh względem liczb wejściowych trzy dopuszczalne wartości wektora wyjściowego funkcje słabo minimalizowalne A(a 1, a 0 ) B(b 1, b 0 ) A<B A=B A>B 00 00 0 1 0 00 01 1 0 0 00 10 1 0 0 00 11 1 0 0 01 00 0 0 1 01 01 0 1 0 01 10 1 0 0 01 11 1 0 0 10 00 0 0 1 10 01 0 0 1 10 10 0 1 0 10 11 1 0 0 11 00 0 0 1 11 01 0 0 1 11 10 0 0 1 11 11 0 1 0
Jednowymiarowe układy iteracyjne Złożone z identycznych, elementarnych układów kombinacyjnych (komórek iteracyjnych. W ogólnym przypadku sygnały w komórkach iteracyjnych mogą być wielowymiarowe. Konieczność uwzględnienia warunków brzegowych w procesie syntezy kaskady jako całości. X n-1 X i X 0 F n n-1 F n-1 F i+1 i F i...... F 1 0 F 0 Y n-1 Y i Y 0
Komparator binarny wersja iteracyjna kodowanie wyjść redukcja ich liczby: A=B 11 A<B 01 A>B 10 porównywanie od cyfr o najwyższej wadze P i+1, q i+1 a i, b i p i q i 00 00 X X 00 01 X X 00 10 X X 00 11 X X 01 00 0 1 01 01 0 1 01 10 0 1 01 11 0 1 10 00 1 0 10 01 1 0 a i b i 10 10 1 0 10 11 1 0 p i+1 q i+1 p i q i 11 00 1 1 11 01 0 1 11 10 1 0 11 11 1 1
Sumator arytmetyczny baza teoretyczna wyniki obliczeń są niezależne od podstawy systemu liczbowego realizacja binarna proste fizycznie bramki kaskada elementarnych komórek a i b i sumatorów jednobitowych c i+1 c i podstawowy układ maszyn liczących dwie funkcje boloowskie trzech zmiennych s i
Wielowymiarowe układy iteracyjne Rozwinięcie układów jednowymiarowych. Wynikają z dekompozycji. Przykłady: układ porządkujący liczby n bitowe wg wzrastania mnożarka liczb n-bitowych
Konwertery kodu Zmieniają zapis przesyłanych danych pomiędzy dwoma różnymi kodami. Przykłady (podane w jedną stronę): NKB kod Gray a NKB BCD NKB jeden z n BCD jeden z n BCD 8-segmentowy wyświetlacz...?
Multipleksery i demultipleksery multipleksowanie przesyłanie danych z większej liczby kanałów mniejszą liczbą linii przesyłowych demultipleksowanie odtwarzanie większej ilości kanałów po stronie odbiornika wspólne sygnały adresowe
Multiplekser jako generator funkcji generator funkcji n+1 zmiennych n zmiennych wejścia adresowe (n+1)-sza zmienna x dołączana do wejść informacyjnych (w postaci prostej lub zanegowanej); można również dołączać 0 lub 1 f w, x, y, z 2,3,6,9,11,13,14
Zjawisko hazardu krótka jedynka krótkie zero Hazard statyczny opóźnienie zmiany ~x względem x
Eliminacja hazardu statycznego Wykrywanie w postaci analitycznej: y = A x + B ~x + C, jeśli A=B=1 i C=0 to może wystąpić hazard krótkie zero (niespełnienie warunku x + ~x =1). Eliminacja do funkcji dodajemy człon A B (nie zmienia jej wartości) W tablicy Karnaugh: sklejamy mintermy sąsiadujące ze sobą (przykład hazard dla z i y)
Eliminacja hazardu statycznego c.d. Wykrywanie w postaci analitycznej: y = (A + x) (B + ~x) C, jeśli A=B=0 i C=1 to może wystąpić hazard krótka jedynka (niespełnienie warunku x ~x =0). Eliminacja funkcję mnożymy przez człon A + B (nie zmienia jej wartości)
Hazard dynamiczny krótka jedynka krótkie zero a i a ta sama zmienna docierająca różnymi drogami charakterystyczne dla funkcji postaci x + x ~x lub x (x + ~x)
Hazard dynamiczny c.d. trzy tory opóźnień tego samego sygnału (trzeci wynika z faktoryzacji) dla układów wielopoziomowych zmiana z 0 na 1 może powodować serię krótkich jedynek przed stabilnym stanem 1 (i dualnie) brak ogólnych metod eliminacji hazardu z wyrażeń faktoryzowanych stosowanie: prawa łączności prawa przemienności prawa rozdzielności praw de Morgana x + (x y) = x, x (x + y) = x (twierdzenie o absorpcji) x + (~x y) = x + y, x (~x + y) = x y nie zmienia własności funkcji pod względem hazardu.