Dr inż. Jan Chudzikiewicz Pokój 253/S Tel. 683-93-57 E-mail: j.chudzikiewicz@ita.wat.edu.pl Dane przedmiotu Wykład: 14 godzin Ćwiczenia laboratoryjne: 16 godzin Warunki zaliczenie: Otrzymanie pozytywnej oceny z kolokwium przeprowadzonego na ostatnim wykładzie. Otrzymanie pozytywnej oceny z laboratoriów. Ocena końcowa z przedmiotu jest średnią ocen z: laboratoriów oraz kolokwium.
Literatura do części pierwszej wykładów Zieliński C.: Podstawy projektowania układów cyfrowych, Wydawnictwo Naukowe PWN, Warszawa 2003. Kamionka-Mikuła H.: Układy cyfrowe – teoria i przykłady, Pracownia komputerowa Jacka Skalmierskiego, Gliwice 2002. Tyszer J., Mrugalski G.: Układy cyfrowe. Zbiór zadań z rozwiązaniami, Wydawnictwo Politechniki Poznańskiej, Poznań 2002. Kalisz J.: Podstawy elektroniki cyfrowej, WKiŁ, Warszawa 1998. Traczyk W.: Układy cyfrowe. Podstawy teoretyczne i metody syntezy, WNT, Warszawa 1994. Baranowski, Kalinowski.: Układy elektroniczne cz. III. Układy i systemy cyfrowe, WNT, Warszawa 1994.
Kody liczbowe stosowane w technice cyfrowej Problematyka wykładu Wprowadzenie Kody liczbowe stosowane w technice cyfrowej Arytmetyka dwójkowa Metody opisu układów kombinacyjnych Metody minimalizacji funkcji logicznych (przełączających)
(p wtedy i tylko wtedy, gdy q) Rachunek zdań Zdania Zmienne zdaniowe Koniunkcja (p i q) Alternatywa (p lub q) Implikacja (jeśli p to q) Równoważność (p wtedy i tylko wtedy, gdy q) Negacja (nie p) 1
Poziomy logiczne 1 t 0,8 2 5 U[V] Dla układów TTL serii standardowej:
Poziomy logiczne 1 t 0,8 2 5 U[V] Marginesy zakłóceń:
Zerojedynkowa algebra Boole’a sygnałów binarnych Podstawowe funkcje logiczne: iloczyn logiczny I (AND), suma logiczna LUB (OR), negacja NIE (NOT).
Algebra Boole’a X Y Suma – ‘+’ Iloczyn – ‘*’ Negacja – ‘ ‘ 1
Prawa algebra Boole’a
Prawa algebra Boole’a
Przykłady stosowania algebry Boole’a 1 1 1
Przykłady stosowania algebry Boole’a Znajdź najprostszą postać funkcji. Przekształć, wykorzystując prawa de Morgana, poniższe funkcje do postaci zawierającej jedynie operatory sumy i negacji.
Systemy liczbowe Liczba w kodzie naturalnym: Najbardziej rozpowszechnione systemy liczbowe system dwójkowy (binarny) system ósemkowy (oktalny) system dziesiętny (dziesiątkowy, decymalny) system szesnastkowy (heksadecymalny, heksagonalny)
Systemy liczbowe Przykład zapisu liczb w zaprezentowanych kodach Kod dziesiętny Naturalny kod binarny Kod ósemkowy Kod szesnastkowy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 17 20 A B C D E F
Systemy liczbowe - konwersja liczb Istotą konwersji liczb jest przekształcenie liczby zapisanej w jednym systemie liczbowym na równoważną jej liczbę zapisaną w innym systemie liczbowym. Ze względu na to, że wynik konwersji zapisu liczby z dowolnego systemu na binarny jest dłuższy niż pierwotna postać tej liczby, konwersję do postaci binarnej nazywa się również znajdowaniem rozwinięcia dwójkowego liczb, zaś jej wynik rozwinięciem dwójkowym liczby poddawanej konwersji. dla części całkowitej - ciągu reszt dzielenia przez dwa, który w odwrotnym porządku daje część całkowitą wyniku; dla części ułamkowej - ciągu części całkowitych mnożenia przez dwa. Prostym sposobem znajdowania rozwinięcia dwójkowego liczby dziesiętnej, czyli przeprowadzania konwersji dziesiętno-dwójkowej, jest znalezienie:
Systemy liczbowe - konwersja liczb Znaleźć rozwinięcie dwójkowe liczby 61.5625 Część ułamkowa liczby . 5625 Kolejne wyniki mnożenia przez 2 Część całkowita liczby: 61 . Kolejne wyniki dzielenia przez 2 30 1 1 1250 Część całkowita Reszta 15 2500 7 1 5000 3 1 1 0000 1 1 61.562510 = 111101.10012
Systemy liczbowe - konwersja liczb Konwersja z systemu dwójkowego do dziesiętnego liczby 111101.1001 Nr pozycji Waga Nr pozycji Waga 1 2 1 2 4 -1 0.5 3 8 -2 0.25 4 16 -3 0.125 5 32 -4 0.0625 6 64 -5 0.03125 7 128 -6 0.015625 8 256 -7 0.0078125 9 512 -8 0.00390625 10 1024 -9 0.00195312 111101.10012 = 61.562510
Systemy liczbowe - konwersja liczb Konwersja z systemu dwójkowego do ósemkowego liczby 1111000111000.111000111B dokonuje się podziału na grupy: 1 111 000 111 000.111 000 111 oraz podstawienia (w razie potrzeby po uzupełnieniu na początku końcu odpowiednią ilością zer, aby skrajne grupy były trzycyfrowe): 001 111 000 111 000.111 000 111 1 7 0 7 0 . 7 0 7 uzyskany wynik: 1111000111000.111000111B = 17070.707oct
Systemy liczbowe - konwersja liczb Konwersja z systemu ósemkowego do dwójkowego liczby 2340.5671oct przedstawienie każdej cyfry w postaci binarnej: 2 3 4 0 . 5 6 7 1 010 011 100 000 . 101 110 111 001 uzyskany wynik: 2340.5671oct = 010011100000.101110111001B
Systemy liczbowe - konwersja liczb Konwersja z systemu dwójkowego do szesnastkowego liczby 1111000111000.111000111B dokonuje się podziału na grupy: 1 1110 0011 1000.1110 0011 1 oraz podstawienia (w razie potrzeby po uzupełnieniu na początku końcu odpowiednią ilością zer, aby skrajne grupy były trzycyfrowe): 0001 1110 0011 1000.1110 0011 1000 1 E 3 8 . E 3 8 uzyskany wynik: 1111000111000.111000111B = 1E38.E38H
Systemy liczbowe - konwersja liczb Konwersja z systemu szesnastkowego do dwójkowego liczby 0E6C.7F8H przedstawienie każdej cyfry w postaci binarnej: E 6 C . 7 F 8 1110 0110 1100 . 0111 1111 1000 uzyskany wynik: 0E6C.7F8H = 111001101100.011111111000B
System dziesiętny kodowany dwójkowo Systemy liczbowe System dziesiętny kodowany dwójkowo Jest to system liczbowy, w którym cyfry dziesiętne są przedstawiane w kodzie dwójkowym (są kodowane dwójkowo). Dla jednoznacznego przedstawienia 10 cyfr {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} systemu dziesiętnego trzeba zastosować kod dwójkowy przynajmniej 4-pozycyjny (4-bitowy). Kody służące do kodowania dwójkowego cyfr systemu dziesiętnego noszą nazwę kodów dwójkowo-dziesiętnych (ang. Binary Coded Decimal). 8 1 5 1000 0001 0101 setki dziesiątki jednostki
System dziesiętny kodowany dwójkowo Systemy liczbowe System dziesiętny kodowany dwójkowo Kody dwójkowo-dziesiętne wagowe Kod 8 4 2 1 2* 4 2 1 Aikena 2 4 2 1 7 4 2 1 8 4-2-1 Cyfra 0 0 0 0 1 0 0 0 1 0 1 1 1 2 0 0 1 0 0 1 1 0 3 0 0 1 1 0 1 0 1 4 0 1 0 0 5 1 0 1 1 6 1 1 0 0 1 0 1 0 7 1 1 0 1 1 0 0 0 1 0 0 1 8 1 1 1 0 9 1 1 1 1
System dziesiętny kodowany dwójkowo Systemy liczbowe System dziesiętny kodowany dwójkowo Kody dwójkowo-dziesiętne niewagowe Kod Z nadmiarem 3 Wattsa 1 z 10 (pierścieniowy) Johnsona pseudopierście- niowy Cyfra 0 0 1 1 0 0 0 0 0000000001 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0000000010 0 0 0 0 1 2 0 1 0 1 0000000100 0 0 0 1 1 0 1 1 0 0 0 1 0 0000001000 0 0 1 1 1 4 0 1 1 1 0000010000 0 1 1 1 1 5 1 0 0 0 1 1 1 0 0000100000 1 1 1 1 1 6 1 0 0 1 1 0 1 0 0001000000 1 1 1 1 0 7 1 0 1 1 0010000000 1 1 1 0 0 8 0100000000 1 1 0 0 0 9 1 1 0 0 1000000000 1 0 0 0 0
System dziesiętny kodowany dwójkowo Systemy liczbowe System dziesiętny kodowany dwójkowo Przykład. Liczbę dziesiętną A=197 można przedstawić: 1 9 7 w kodzie 8421 A8421 = 0001 1001 0111B w kodzie 2421 A2421 = 0001 1111 1101B w kodzie 84-2-1 A84-2-1= 0111 1111 1001B
Kod Graya Kod dziesiętny Kod refleksyjny 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00000 00001 00011 00010 00110 00111 00101 00100 01100 01101 01111 01110 01010 01011 01001 01000 11000
Konwersja liczby z NKB na kod Graya przy czym: Przykład 1 1 1 1
Równania manipulacyjne dla funkcji EX-OR Funkcja EX-OR Równania manipulacyjne dla funkcji EX-OR L.p. Równanie 1 XY = X’Y’ 2 XY’ = X’Y = (XY)’ 3 XX = 0 4 XX’ = 1 5 X1 = X’ 6 X0 = X 7 11 = 0 8 10 = 1 9 00 = 0 10 Jeśli XY = Z, to XZ = Y i ZY = X
Dodawanie liczb dwójkowych Arytmetyka dwójkowa Dodawanie liczb dwójkowych Przeniesienie 1 1 1 1 1 1 1 Liczba pierwsza Liczba druga Wynik
Odejmowanie liczb dwójkowych z zastosowaniem kodów uzupełnieniowych Arytmetyka dwójkowa Odejmowanie liczb dwójkowych z zastosowaniem kodów uzupełnieniowych Uzupełnienie p-1 Reguła praktyczna: uzupełnienie U(p-1) liczby dodatniej otrzymuje się przez odjęcie każdej cyfry tej liczby od (p-1). Przykład: U1(1011001) = 0100110 U1(10.11001) = 01.00110 U1(0) = 1 U1(0.0) = 1.1 Przedział wartości: - 2n-1 do 2n-1-1
Operacje arytmetyczne Reguła odejmowania: A-B = A+U1(B) Odjąć liczbę 19 od liczby 15 1510 = 000011112 1910 = 000100112 U1(19) = 111011002 1 1 1 1 1 1 1 1 1 Wynik = -11111011U1 = -410
Operacje arytmetyczne Reguła odejmowania: A-B = A+U1(B) Odjąć liczbę 15 od liczby 19 1510 = 000011112 1910 = 000100112 U1(15) = 111100002 1 1 1 1 1 1 1 1 1 Wynik = 000001002 = 410
Operacje arytmetyczne Odejmowanie liczb dwójkowych z zastosowaniem kodów uzupełnieniowych Uzupełnienie p Reguła praktyczna: uzupełnienie U(p) liczby dodatniej otrzymuje się przez dodanie jedynki na namniej znaczącej pozycji uzupełnienia U(p-1). Przykład: U2(1011001) = 0100111 U2(10.11001) = 01.00111 U2(0) = 0 U2(0.0) = 0.0 Przedział wartości: - 2n-1 do 2n-1-1
Operacje arytmetyczne Reguła odejmowania: A-B = A+U2(B) Odjąć liczbę 19 od liczby 15 1510 = 000011112 1910 = 000100112 U2(19) = 111011012 1 1 1 1 1 1 1 1 1 Wynik = -11111100U2 = -410
Operacje arytmetyczne Reguła odejmowania: A-B = A+U2(B) Odjąć liczbę 15 od liczby 19 1510 = 000011112 1910 = 000100112 U2(15) = 111100012 1 1 1 1 1 1 1 1 Wynik = 00000100U2 = 410
Arytmetyka dwójkowa Dodawanie w kodzie BCD 9 5 3 6 1 Dodawanie dwójkowe 1 Korekcja (-10 = 0110U2) 1 3
Metody opisu układów kombinacyjnych Opis słowny: Wyznaczyć funkcję przełączającą układu, który stanem F=1 wyróżnia wśród liczb wejściowych z przedziału 0-7, podawanych w naturalnym kodzie binarnym takie, w których liczba jedynek jest parzysta. Tabela prawdy: i x0 x1 x2 .................. xn-1 F 1 2 3 . 2n - 1 ...................
Metody opisu układów kombinacyjnych Opis słowny: Wyznaczyć funkcję przełączającą układu, który stanem F=1 wyróżnia wśród liczb wejściowych z przedziału 0-7, podawanych w naturalnym kodzie binarnym takie, w których liczba jedynek jest parzysta. Tabela prawdy: i x0 x1 x2 F 1 2 3 4 5 6 7
Metody opisu układów kombinacyjnych Kanoniczna forma sumacyjna gdzie: ai = 0 lub 1; Ii - reprezentuje postać w naturalnym kodzie binarnym wartości i; - znak oznaczający sumę logiczną.
Metody opisu układów kombinacyjnych Przykład Wyznaczyć kanoniczną formę sumacyjną funkcji przełączającej układu, który stanem F=1 wyróżnia wśród liczb wejściowych z przedziału 0-7, podawanych w naturalnym kodzie binarnym takie, w których liczba jedynek jest parzysta. i x0 x1 x2 F 1 2 3 4 5 6 7
Metody opisu układów kombinacyjnych Kanoniczna forma iloczynowa gdzie: ai = 0 lub 1; Si - reprezentuje postać w naturalnym kodzie binarnym wartości i; - znak oznaczający iloczyn logiczny.
Metody opisu układów kombinacyjnych Przykład Wyznaczyć kanoniczną formę sumacyjną funkcji przełączającej układu, który stanem F=1 wyróżnia wśród liczb wejściowych z przedziału 0-7, podawanych w naturalnym kodzie binarnym takie, w których liczba jedynek jest parzysta. i x0 x1 x2 F 1 2 3 4 5 6 7
Metody opisu układów kombinacyjnych Wyznaczenie kanonicznej formy sumacyjnej poprzez rozkład funkcji: Rozkład funkcji względem zmiennej x1: Rozkład funkcji względem zmiennej x2: Przykład:
Metody opisu układów kombinacyjnych Wyznaczenie kanonicznej formy iloczynowej poprzez rozkład funkcji: Rozkład funkcji względem zmiennej x1: Rozkład funkcji względem zmiennej x2: Przykład:
Metody opisu układów kombinacyjnych Wyznaczenie kanonicznej formy sumacyjnej oraz iloczynowej z wykorzystaniem binarnego diagramu decyzyjnego:
Metody opisu układów kombinacyjnych Wyznaczenie kanonicznej formy sumacyjnej oraz iloczynowej z wykorzystaniem binarnego diagramu decyzyjnego: Przykład: F1={(00x);(011);(101);(11x)} F0={(010);(100)}
Metody minimalizacji funkcji przełączającej Tablicą Karnaugha nazywamy uporządkowaną strukturę prostokątną, złożoną z prostokątów elementarnych (kratek), z których każdy reprezentuje jedno wyrażenie logiczne. Przy n zmiennych tablica Karnaugha zwiera 2n kratek, obejmując wszystkie możliwe wyrażenia. x1x0 x2 00 01 11 10 1 Reguła upraszczania:
Metody minimalizacji funkcji przełączającej x1x0 x2 00 01 11 10 1 Zasady łączenia kratek: liczba kratek elementarnych łączonych ze sobą musi być potęgą dwójki (1, 2, 4, ..., 2n); łączone kratki muszą być sąsiednimi, tzn. oddzielonymi od siebie linią pionową, poziomą lub krawędzią tablicy. Ewentualnie, jak ma to miejsce w przypadku tablicy dla ilości zmiennych większej od czterech, można sklejać kratki zajmujące pozycje będące swoimi zwierciadlanymi odbiciami; łączone pola muszą mieć kształt symetryczny względem swych osi (kwadraty lub prostokąty);
Metody minimalizacji funkcji przełączającej x1x0 x3x2 00 01 11 10
Metody minimalizacji funkcji przełączającej x2x1x0 x4x3 000 001 011 010 110 111 101 100 00 01 11 10
Metody minimalizacji funkcji przełączającej Wyznaczyć funkcję przełączającą układu, który stanem F=1 wyróżnia wśród liczb wejściowych z przedziału 0-7, podawanych w naturalnym kodzie binarnym takie, które są podzielne przez 2. i x0 x1 x2 F 1 2 3 4 5 6 7 x1x2 x0 00 01 11 10 1
Metody minimalizacji funkcji przełączającej Wyznaczyć funkcję przełączającą układu, który stanem F=1 wyróżnia wśród liczb wejściowych z przedziału 0-7, podawanych w naturalnym kodzie binarnym takie, które są podzielne przez 2. i x0 x1 x2 F 1 2 3 4 5 6 7 x1x2 x0 00 01 11 10 1
Metody minimalizacji funkcji przełączającej Wyznaczyć, wykorzystując tablicę Karnaugha, postać minimalną funkcji przełączającej, która stanem logicznym 1 sygnalizuje pojawienie się na wejściu układu liczby z zakresu 0-24, której suma z następną w kolejności zawiera się w przedziałach od 3 do 9 oraz od 17 do 24. Liczbą kolejną dla 24 jest 0. Liczby podawane są na wejście układu w postaci binarnej. x2x1x0 x4x3 000 001 011 010 110 111 101 100 00 01 11 10 1 3 2 6 7 5 4 8 9 11 10 14 15 13 12 24 25 27 26 30 31 29 28 16 17 19 18 22 23 21 20 1 ---
Metody minimalizacji funkcji przełączającej Wyznaczyć, wykorzystując tablicę Karnaugha, postać minimalną funkcji przełączającej, która stanem logicznym 1 sygnalizuje pojawienie się na wejściu układu liczby z zakresu 0-24, której suma z następną w kolejności zawiera się w przedziałach od 3 do 9 oraz od 17 do 24. Liczbą kolejną dla 24 jest 0. Liczby podawane są na wejście układu w postaci binarnej. x2x1x0 x4x3 000 001 011 010 110 111 101 100 00 01 11 10 1 ---
Podstawowe układy kombinacyjne Funktor Symbol Realizowana funkcja AND OR NOT NAND NOR EX-OR Konwencja prostokątna & X Y F ³1 =1 1 Y X F
Podstawowe układy kombinacyjne System wskaźników negacji (SWN) Wskaźnik negacji stosuje się przy konstrukcji schematów logicznych w konwencji abstrakcyjnych stanów logicznych (0,1), tzn. abstrahując od występujących w realnych układach poziomów wielkości fizycznych (np. napięć) reprezentujących te stany. Ten system oznaczeń określa się jako system wskaźników negacji (SWN). SWN jest oparty na następujących regułach: brak wskaźnika negacji (kółeczka) pomiędzy symbolem podstawowym a jego końcówką oznacza, że stan wewnętrzny jest taki sam jak zewnętrzny; obecność wskaźnika negacji oznacza, że stan wewnętrzny jest negacją stanu zewnętrznego.
Podstawowe układy kombinacyjne System wskaźników negacji (SWN) Z reguły drugiej można wysnuć wniosek, że obecność wskaźnika negacji na wejściu symbolu oznacza negację odpowiedniej zmiennej wejściowej w zapisie matematycznym funkcji logicznej, realizowanej przez ten element. Natomiast obecność wskaźnika negacji na wyjściu symbolu oznacza negację tej funkcji. System wskaźników negacji może być użyty do opisu realnych układów, jeżeli dodatkowo wprowadzone zostaną jednoznaczne związki miedzy abstrakcyjnymi stanami 0 i 1 i rzeczywistymi poziomami L i H.
Podstawowe układy kombinacyjne System wskaźników negacji (SWN) Istnieją tylko dwie takie konwencje (przeciwstawne), które określa się jako „logika dodatnia” i „logika ujemna”. Definicje tych konwencji w odniesieniu do schematów logicznych są następujące: logika dodatnia oznacza, że na wszystkich końcówkach symboli stan 1 jest równoważny poziomowi wysokiemu H, a stan 0 jest równoważny poziomowi niskiemu L; logika ujemna oznacza, że na wszystkich końcówkach symboli stan 1 jest równoważny poziomowi niskiemu L, a stan 0 jest równoważny poziomowi wysokiemu H.
Podstawowe układy kombinacyjne Symbole dualne podstawowych funktorów
Wyprowadzenie x y z 1
Wyprowadzenie Powrót