Układy logiczne. Instytut Automatyki

Podobne dokumenty
Układy Logiczne i Cyfrowe

Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Tranzystor JFET i MOSFET zas. działania

Podstawy Automatyki. Wykład 12 - synteza i minimalizacja funkcji logicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

LEKCJA. TEMAT: Funktory logiczne.

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

Metoda Karnaugh. B A BC A

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

WSTĘP DO ELEKTRONIKI

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Arytmetyka liczb binarnych

Podstawy Informatyki Elementarne podzespoły komputera

Minimalizacja form boolowskich

dwójkę liczącą Licznikiem Podział liczników:

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Stan wysoki (H) i stan niski (L)

Cyfrowe układy scalone c.d. funkcje

LICZNIKI PODZIAŁ I PARAMETRY

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Architektura komputerów Wykład 2

1.1. Pozycyjne systemy liczbowe

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Automatyzacja i robotyzacja procesów produkcyjnych

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera

funkcja, opisana tablicami rys. 3-8a,b, bez uwzględnienia pozycji nieokreślonych

Krótkie przypomnienie

Układy kombinacyjne Y X 4 X 5. Rys. 1 Kombinacyjna funkcja logiczna.

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

PODSTAWY TEORII UKŁADÓW CYFROWYCH

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Układy kombinacyjne. cz.2

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

4. UKŁADY FUNKCJONALNE TECHNIKI CYFROWEJ

ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

Układy kombinacyjne 1

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Asynchroniczne statyczne układy sekwencyjne

Układy logiczne układy cyfrowe

dr inż. Małgorzata Langer Architektura komputerów

WOJSKOWA AKADEMIA T E CHNI CZNA im. Jarosława Dą brow ski ego ZAKŁAD AWIONIKI I UZBROJENIA LOTNICZEGO

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Wstęp do Techniki Cyfrowej... Algebra Boole a

Układy cyfrowe. Najczęściej układy cyfrowe służą do przetwarzania sygnałów o dwóch poziomach napięć:

UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

Temat 7. Dekodery, enkodery

Część 2. Funkcje logiczne układy kombinacyjne

Funkcja Boolowska a kombinacyjny blok funkcjonalny

Synteza układów kombinacyjnych

Wstęp do Techniki Cyfrowej i Mikroelektroniki

Układy kombinacyjne i sekwencyjne. Podczas ćwiczenia poruszane będą następujące zagadnienia:

Dr inż. Jan Chudzikiewicz Pokój 117/65 Tel Materiały:

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Cyfrowe bramki logiczne 2012

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Algebra Boole a. Ćwiczenie Sprawdź, czy algebra zbiorów jestrównież algebrą Boole a. Padaj wszystkie elementy takiej realizacji.

CYFROWE UKŁADY SCALONE STOSOWANE W AUTOMATYCE

LICZNIKI Liczniki scalone serii 749x

Asynchroniczne statyczne układy sekwencyjne

Podstawy Automatyki. Człowiek- najlepsza inwestycja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Automatyka Treść wykładów: Literatura. Wstęp. Sygnał analogowy a cyfrowy. Bieżące wiadomości:

Układy logiczne. Wstęp doinformatyki. Funkcje boolowskie (1854) Funkcje boolowskie. Operacje logiczne. Funkcja boolowska (przykład)

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

2.1. Metoda minimalizacji Quine a-mccluskey a dla funkcji niezupełnych.

3. SYNTEZA UKŁADÓW KOMBINACYJNYCH

UKŁADY CYFROWE. Układ kombinacyjny

Technika cyfrowa Synteza układów kombinacyjnych

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Systemy liczbowe używane w technice komputerowej

Układy logiczne układy cyfrowe

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Ćw. 1: Systemy zapisu liczb, minimalizacja funkcji logicznych, konwertery kodów, wyświetlacze.

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Architektura komputerów

Układy asynchroniczne

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Transkrypt:

Układy logiczne Instytut Automatyki

Wiadomość, informacja Wiadomość i informacja są podstawowymi pojęciami informatyki. Znaczenie obu pojęć na gruncie informatyki nie całkowicie pokrywa się z potocznym ich rozumieniem. Czynnikiem decydującym w relacji wiadomość - informacja jest zatem sposób interpretacji uzgodniony pomiędzy nadającym i odbierającym wiadomość, czyli pewien abstrakcyjny krok polegający na określeniu przekształcenia wiadomości na informację

Dla wiadomości przekazywanych pomiędzy ludźmi istnieje najczęściej umowa co do formy tego przekazu. O takich wiadomościach mówimy, że są przekazywane w formie językowej, czyli tworzą język. Przedstawienie wiadomości na twardym nośniku nazywamy pismem, a sam nośnik - nośnikiem pisma. Przebieg w czasie wielkości fizycznej transmitującej wiadomości (a zatem również oddającej informacje) nazywa się sygnałem

Mówimy, że sygnał jest znakowy (digital), jeżeli parametry sygnału mogą przyjmować skończoną liczbę wartości. Wiadomości znakowe są to wiadomości przesyłane za pomocą sygnałów znakowych. Regułą przekształcenia zbioru znaków na inny zbiór znaków (albo zbiór słów) nazywamy kodem

Wiadomości nieznakowe, jak na przykład wiadomości w postaci obrazu, mapy, krzywej diagramu, mogą być dyskretyzowane i w ten sposób rozważane jako wiadomości znakowe. Jeżeli przyjmie się założenie, że wszystkie znaki i słowa są zakodowane dwójkowo (tzn. Przyjmują tylko dwie wartości np. 0 i 1) to układ, który służy do przetwarzania takich wiadomości nazywa się układem cyfrowym.

Podział układów cyfrowych elementy logiczne bloki funkcjonalne zespoły funkcjonalne Podział ze względu na strukturę układy specjalizowane układy programowalne

Podział ze względu na właściwości układy kombinacyjne układy sekwencyjne

Dla dwóch argumentów x i y mamy cztery możliwe kombinacje argumentów: x y 0 1 0 0 1 1 1 0

Jeżeli f i (x) będzie funkcją logiczną jednego argumentu x to można określić co najwyżej cztery takie funkcje.

Spośród funkcji dwuargumentowych f(x,y) najważniejszymi są: Nazwa Oznaczenie Wartość funkcji gdy (x,y) równa się (0,0) (0,1) (1,0) (1,1) suma, dysjunkcja x+y, x y 0 1 1 1 iloczyn, konjunkcja xy, x y 0 0 0 1

Funkcje boolowskie spełniają następujące aksjomaty: l.p. Nazwa aksjomatu Aksjomaty dotycz ące dodawania mno żenia 1 prawo łączności (A+B)+C=A+(B+C) (AB)C=A(BC) 2 prawo przemienności A+B=B+C AB=BC 3 prawo istnienia jednego elementu identycznościowego A+0=A A* 1=A 4 prawo dope łnienia A + A = 1 A A = 0

Podstawowe tożsamości

Ogólny zapis liczby dziesiętnej przedstawia poniższy zapis: n L 10 =a n Ka 2 a 1 a = 0 i=0 a i 10 i a 0,9> 3 2 1 0 1305 =1 10 + 3 10 + 0 10 + 5 10

W liczbach ułamkowych podstawa występuje w potęgach ujemnych, a zatem zapis liczby dziesiętnej ma postać: n 10 n 2 1 0 1 2 l i i = l L = a a a a, a a a = a 10 i L = b n b 2 b b 1 0,b 1 b 2 b l = i= n l b i P i gdzie: P oznacza dowolną podstawę

Dla P=2 otrzymujemy system dwójkowy (binarny). 3 2 1 0 1101 =1 2 + 1 2 + 0 2 + 1 2 czyli: 1101 2 = 13 10

Najbardziej rozpowszechnionymi kodami dwójkowymi są: kod naturalny dwójkowy, kod Grey'a, kod dwójkowo-dziesiętny BCD (ang. Binary Coded Decimial), kod pierścieniowy czyli kod 1 z 10 należący do grupy kodów 1 z n kod pseudopierścieniowy Johnsona,

Kod dwójkowy naturalny Kod dwójkowy naturalny jest kodem wagowym, w którym poszczególne wagi są kolejnymi potęgami liczby 2 (tzn. 2 i, gdzie i=0,1,2,3...). Istnieje wiele sposobów konwersji liczb z systemu dziesiętnego do dwójkowego i odwrotnie.

Konw ersja liczby dwójkow ej na dziesiętną. Dla kodów wagowych najprostsza metoda polega na sumowaniu albo wydzielaniu wag. Przykład: Należy zamienić liczbę binarną 11001 2 na liczbę dziesiętną. 11001 2 = 1*2 4 + 1* 2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 16 + 8 +1 = 25 10

Konwersja liczby dziesiętnej na dw ójkow ą. Konwersja liczby dziesiętnej na dwójkową polega na wyszukiwaniu najwyższej potęgi liczby 2. Przykład: Należy zamienić liczbę dziesiętną 27 10 na liczbę binarną. Największą potęgą liczby 2 jest tutaj 2 4 = 16 a zatem, liczba dwójkowa będzie miała 5 bitów i na najstarszym bicie piszemy 1???? 2. Od liczby 27-16 = 11. W 11 najstarszą potęgą 2 jest 2 3. Zatem na następnym bicie piszemy 1 i uzyskujemy 11??? 2.. Następna operacja to: 11-8 = 3. Dla 3 najstarszą potęgą 2 jest 2 1. Ponieważ nie wystąpiła tutaj druga potęga liczby 2, to na drugiej pozycji piszemy 0, i otrzymujemy 110?? 2, natomiast na czwartej pozycji piszemy 1 ponieważ wystąpiła pierwsza potęga liczby 2, 1101? 2. Po odjęciu 3-2 = 1, gdzie 1 jest potęgą zerową liczby 2, bo 2 0 = 1. W ostateczności otrzymujemy liczbę dwójkową 11011 2.

Należy zamienić liczbę 11 10 na liczbę dwójkową: Reszta 11 : 2 = 5 1 najmłodszy bit 5 : 2 = 2 1 2 : 2 = 1 0 1 : 2 = 0 1 11 10 = 1011 2

Kod szesnastkowy Kod szesnastkowy (heksadecymalny) jest kodem wagowym, w którym poszczególne wagi są kolejnymi potęgami liczby 16 (tzn. 16 i, gdzie i=0,1,2,3...). Aby ułatwić zapis w kodzie heksadecymalnym wprowadzono następującą regułę. Dla liczb od 10 do 15 stosuje się odpowiedni zapis literowy: 10 - A, 11 - B, 12 - C, 13 - D, 14 - E, 15 - F.

Zamiana kodu dwójkowego na kod sze snastkowy Przejście pomiędzy kodem dwójkowym a heksadecymalnym polega na pogrupowaniu zapisu dwójkowego w grupy czterobitowe i zapisaniu ich wartości wykorzystując liczby z zakresu 0... 15. Należy zamienić zapis liczby dwójkowej 11011001110 2 na zapis szesnastkowy kod dwójkowy (binarny) 110 1100 1110 kod szesnastkowy (heksadecymalny) 6 C E 11011001110 2 =6CE 16

Kod Grey'a Cechą charakterystyczną kodu Grey'a jest to, że sąsiadujące kombinacje kodowe różnią się wartościami tylko jednego bitu. Tablicę kodu Grey'a można utworzyć na podstawie tablicy kodu dwójkowego naturalnego posługując się następującą regułą: G = B B = B B + B B i i i + 1 i i + 1 i i + 1 gdzie: G i - i-ty bit kodu Grey'a, B i - i-ty bit kodu binarnego, B i+1 - i+1 bit kodu binarnego.

0 0 0 0 0 1 0 0 0 1 2 0 0 1 1 linia lustra 3 0 0 1 0 4 0 1 1 0 linia lustra 5 0 1 1 1 6 0 1 0 1 7 0 1 0 0 8 1 1 0 0 linia lustra 9 10 11 12 13 14 15 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0

Kod dwójkowo dziesiętny BCD Kod dwójkowo dziesiętny jest odmianą kodu dwójkowego naturalnego gdzie każdej cyfrze dziesiętnej przyporządkowywuje się liczbę binarną. Nie następuje tutaj kodowanie całej liczby, a kodowana jest każda cyfra oddzielnie 0 0000 10 0001 0000 1 0001 11 0001 0001 2 0010 12 0001 0010 3 0011 13 0001 0011 4 0100 14 0001 0100 5 0101 15 0001 0101 6 0110 16 0001 0110 7 0111 17 0001 0111 8 1000 18 0001 1000 9 1001 19 0001 1001

Kod pseudopierścieniowy 0 000 1 001 2 011 3 111 4 110 5 100

Kod pierścieniowy 0 000000 1 000001 2 00010 3 00100 4 01000 5 10000

Tablica kodu dwójkowego z bitem parzystości 0 000.0 1 001.1 2 010.1 3 011.0 4 100.1 5 101.0

Tablica kodu dwa z pięciu. 0 11000 5 01010 1 00011 6 01100 2 00101 7 10001 3 00110 8 10010 4 01001 9 10100

Sposoby zapisu funkcji Opis słowny Tablica wartości Wykres czasowy Zbiór wartości zmiennych funkcji Tablica Karnaugha Zapis algebraiczny funkcji

Opis słowny Założenia dotyczące działania układu najczęściej są podawane w postaci opisu słownego. Opis taki musi jednoznacznie określić przypadki, w których sygnały wyjściowe mają wartość 0 lub 1. Przykładem poprawnego opisu może być zdanie: zaprojektować układ o trzech wejściach x 1, x 2, x 3, wyróżniający sygnałem y=1 w przypadku, gdy na wejściu pojawi się liczba dwójkowa nieparzysta lub podzielna przez 3 (x 3 odpowiada pozycji najmniej znaczącej).

Tablica wartości funkcji Numer zbioru Wartość zmiennych Wartość funkcji i x 1 x 2 x 3 f(x 1,x 2,x 3) 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1

Tablica funkcji niepełnej (niezupełnej, nie w pełni określonej), Numer zbioru Wartość zmiennych Wartość funkcji i x 1 x 2 f(x 1,x 2 ) 0 0 0 0 1 0 1 2 1 0 1 3 1 1 0

Wykres czasowy Wykres czasowy dla funkcji niepełnej

Zbiór wartości zmiennych funkcji Numer zbioru Wartość zmiennych Wartość funkcji i x 1 x 2 x 3 f(x 1,x 2,x 3) 0 0 0 0 0 1 0 0 1 0 2 0 1 0 1 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 0

Do jednoznacznego określenia funkcji wystarczy podać zbiór wartości zmiennych funkcji oznaczany: F 1 dla którego funkcja przyjmuje wartość 1, lub zbiór F 0 dla którego funkcja przyjmuje wartość 0. 1 { } F = 010,011,101 x x x 1 2 3 0 { } F = 000,001,100,110,111 x x x 1 2 3

1 { } F = 2,3,5 x x x 1 2 3 0 { } F = 0,1,4,6,7 x x x 1 2 3 - F = { 4,5,6} x x x 1 2 3 1(-) F = { 2,4,6,(0,1) } x x x 1 2 3

Tablica Karnaugha f(x, x, x ) 1 2 3

Zapis algebraiczny funkcji f(x, x, x ) = x x + x x x 1 2 3 1 2 1 2 3

Kanoniczna postać funkcji boolowskiej f(x 1, x,, x ) = x f ( 1, x,, x ) + x f ( 0, x,, x ) 2 n 1 2 n 1 2 n f(x 1, x,, x ) = [ x + f ( 0, x,, x )][ x + f ( 1, x,, x )] 2 n 1 2 n 1 2 n

f ( x 1, x 2,K, x n )=x 1 x 2 f (1,1, x 3, K, x n )+x 1 x f (1,0, x 3, K, x n )+ 2 +x x 2 f (0,1, x 3, K, x n )+x x f (0,0, x 3, K, x n ) 1 1 2 f ( x 1, x 2, K, x n )=[ x 1 + x 2 + f (0,0, x 3, K, x n )][ x 1 + x + f (0,1, x 3, K, x n )] 2 [ x + x 2 + f (1,0, x 3, K, x n )][ x + x + f (1,1, x 3, K, x n )] 1 1 2

f(x 1, x,, x ) = x x x f ( 1, 1, 1,, 1 ) + x x x x f ( 1, 1, 2 n 1 2 n 1 2 n 1 n + + x x x f ( 1, 0,, 0 ) + x x x f ( 0, 0, 1 2 n 1 2 n f(x 1, x,, x ) = [ x + x + + x + f ( 0, 0, 0,, 0 )] 2 n 1 2 [ x + x + + x + x + f ( 0, 0,, 0, 1 )] [ x + x + + x + f ( 0, 1,, 1 )] [ x + x + + x + f ( 1, 1,, 1 )] n 1 2 n 1 1 2 1 2 n n n

f(x 1,x 2,..., x n ) = 2 n -1 i= 0 m f(a i i ) gdzie: i - numer kombinacji sygnałów wejściowych a 1 a 2 a 3 i3 m = x i1 x i2 x x i ain n = n j= 1 x aij j a ij x j = x j x j gdy a ij = gdy a ij = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n j- numer sygnału wejściowego f( a ) = i 1 jeżeli f ( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f ( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych Powyższy zapis nosi nazwę kanonicznej postaci sumy funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: 1 f (x1,x 2,,x n ) = i F 1 m i m i - implikant

f(x 1 gdzie:, x 2,..., x n ) = 2 n ƛ -1 i= 0 (M i + f(a i )) i - numer kombinacji sygnałów wejściowych m = x + x + x + + x = x i a i 1 1 a i 2 2 a i 3 3 a in n n j= 1 a ij j x aij j = x x j j gdy gdy a a ij ij = = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n j- numer sygnału wejściowego f( a ) = i 1 jeżeli f( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych Powyższy zapis nosi nazwę kanonicznej postaci iloczynu funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: f 0 (x, x 1 2,, x n ) = i F 0 M i M i - implicent

f(x 1,x 2,..., x n 2 n -1 ) = m f(a ) f(x, x,..., x ) = (M + f(a )) i= 0 i i 1 2 n 2 n ƛ -1 i= 0 i i gdzie: i - numer kombinacji sygnałów wejściowych gdzie: i - numer kombinacji sygnałów wejściowych a 1 a 2 a 3 a n n i3 ij m = x i1 x i2 x x in = x m = x + x + x + + x = x i j= 1 a j i a i 1 1 a i 2 2 a i 3 3 n ain n j= 1 aij j a ij x j = x j x j gdy a ij = gdy a ij = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n x aij j = x x j j gdy gdy a a ij ij = = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n j- numer sygnału wejściowego j- numer sygnału wejściowego f( a ) = i 1 jeżeli f( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych f( a ) = i 1 jeżeli f( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych Powyższy zapis nosi nazwę kanonicznej postaci sumy funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: Powyższy zapis nosi nazwę kanonicznej postaci iloczynu funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: 1 0 f (x1,x 2,,xn ) = mi f (x1, x2,, xn ) = i F 1 i F 0 M i m i - implikant M i - implicent

1 { } F = 010,011,101 x x x 1 2 3 F= X1 X2 X3+ X1 X2 X3+ X1 X2 X3 0 { } F = 000,001,100,110,111 x x x 1 2 3 F=( X1+ X2+ X3) ( X1+ X2+ X3) ( X1+ X2+ X3) ( X1+ X2+ X3) ( X1+ X2+ X3)

Sposoby minimalizacji funkcji boolowskich metoda przekształceń algebraicznych metoda tablic Karnaugha, metoda Quine a - Mc Cluskeya, metoda tablic harwardzkich, metoda Patricka, metoda Blake a.

Metoda tablic Karnaugha Należy wyznaczyć minimalną postać funkcji, która jest opisana w następujący sposób. W pomieszczeniu znajdują się trzy czujniki pożarowe a, b, c. Przy sygnale równym 1 z dowolnego czujnika należy uruchomić sygnalizację pożaru (f 1 = 1), zaś przy sygnale 1 z co najmniej dwóch czujników należy uruchomić urządzenie gaśnicze (f 2 = 1).

Etap I Przygotowanie tablicy dla danej liczby zmiennych i wpisanie w pola elementarne wartości funkcji. W pola gdzie funkcja jest nieokreślona wpisywany jest znak -. Na podstawie przedstawionego opisu tworzona jest tablica Karnaugha dla funkcji f 1 i f 2 lub dla obu funkcji. f 1 f 2 f 1 f 2

Etap II Należy zakreślić (czyli narysować obwiednie) możliwie największe obszary obejmujące jedynki lub zera. Jeżeli zakreślane będą jedynki to tworzona będzie minimalna postać sumy, natomiast jeżeli zakreślane będą zera, to tworzona będzie minimalna postać iloczynu. Dzięki opisowi tablicy przy pomocy kodu Grey'a dwa sąsiednie pola tablicy różnią się stanem jednego sygnału wejściowego. Gdy w obu polach znajdują się te same wartości funkcji, to można zastosować twierdzenie o sklejaniu funkcji boolowskich.

Rysowanie obwiedni następuje według następujących zasad: liczba pól elementarnych połączonych ze sobą musi być potęgą dwójki; łączone pola muszą być sąsiednimi tzn. dzielonymi od siebie linią pionową, linią poziomą lub krawędzią tablicy; łączone pola muszą mieć kształt symetryczny względem swych osi; jeżeli w tablicy występują znaki nieokreśloności, to pola elementarne, w których występuje ten znak można łączyć z jedynkami lub zerami w zależności od potrzeb; argument zmieniający wartość w ramach wybranej grupy jest odrzucany; podczas wyłączania jedynek z tablicy realizowana jest funkcja suma iloczynów, a zatem rezultat upraszczania będzie iloczynem, przy czym symbolowi 0 odpowiada x, a symbolowi 1 - x; podczas wyłączania zer z tablicy realizowana jest funkcja iloczyn sum, a zatem rezultat upraszczania będzie sumą, przy czym symbolowi 0 odpowiada x, a symbolowi 1 - x

f 1 1 =a+b+c

f 2 1 =ab+ac+bc

f 1 0 = a + b + c f = (a + b)(a + c)(b + c) 2 0 Łatwo można wykazać, że f 1 1 = f 1 0 oraz f = f 2 1 2 0.

Jeżeli podczas zakreślania obszarów wartości zmiennych określających obszar są inne niż zaznaczane wartości funkcji, (np. podczas zaznaczania 1 element funkcji ma 0), to jest on zapisywany jako sygnał zanegowany. Przedstawione to zostało na poniższym przykładzie. f 0 = ac + ab + bc f 1 = ( a + b )( a + c )( b + c )

Metoda Quine'a - Mc Cluskeya Przy większej ilości zmiennych, metoda tablic Karnaugha staje się bardzo uciążliwa. W takich przypadkach wygodniej jest stosować metodę Quine'a - Mc Cluskeya Metoda Quine a Algorytm minimalizacji Quine a polega na stosowaniu dwóch operacji: sklejania niepełnego Ax + Ax = Ax + Ax + A pochłaniania A + Ax = A + Ax = A

Po wykonaniu wszystkich niepełnych sklejeń a następnie wszystkie możliwe pochłaniania to uzyskuje się tzw. postać skróconą. Można to wyjaśnić na poniższym przykładzie. Gdyby do funkcji: y = x x x + x x x + x x x + x x x 2 3 1 3 1 2 1 2 1 2 3 zastosować regułę sklejania zwykłego to uzyskałoby się funkcje: y x x x x x x x x = + + 1 2 1 2 3 1 2 3

Po zastosowaniu reguły niepełnego sklejania otrzymanoby funkcję: y = x x + x x + x x + x + 1x x + x x x + x x x x x 2 3 1 3 1 2 3 3 1 2 3 1 2 3 1 2 a po zastosowaniu reguły pochłaniania postać funkcji byłaby następująca: y = x + x + x x x x 2 3 1 3 1 2

Implikant - funkcji f to taka funkcja g (tych samych argumentów), że dla wszystkich kombinacji wartości argumentów, jeśli g =1, to i f =1; Implikant prosty - to iloczyn G (zmiennych x), który jest implikantem i który, zmniejszony o dowolną zmienną przestaje być implikantem. Skoro każda funkcja może być przedstawiona w postaci kanonicznej sumy, obejmującej wszystkie kombinacje, dla których f=1, to może też być przedstawiona w postaci sumy wszystkich prostych implikantów, które z pewnością pokrywają wszystkie jedynki funkcji. Postać skrócona uzyskana poprzez stosowanie algorytmu Quine a, jest sumą wszystkich prostych implikantów danej funkcji, gdyż zawiera wszystkie nieskracalne iloczyny pochłaniające postać kanoniczną.

Poprzez usuniecie wszystkich zbędnych prostych implikantów otrzymuje się tzw. postać minimalną. Upraszczanie postaci skróconej można przeprowadzić kilkoma różnymi sposobami i wówczas uzyskuje się tzw. postacie końcowe (nieredukowalne), z których jedna jest postacią minimalną. Poszukiwania minimalnego zbioru prostych implikantów, których suma jest równa funkcji, dokonuje się zwykle za pomocą tzw. tablic implikantów.

y = x x x + x x x + x x x + x x x + x x x + x x x 1 2 3 3 1 3 1 2 2 1 2 2 3 1 3 1 2 3 y=x 1 x 3 +x 1 x 2 + x 2 x 3 + x 1 x +x 2 x +x 2 3 1 x 3

Składniki sumy K i x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x 1 3 X X proste x x 1 2 X X impli- x x 2 3 X X kanty x x 1 2 X X G i x x 2 3 X X x 1 x 3 X X

y = x x + x x + x x 1 3 2 1 2 3 y = x x + x x + x x 1 2 3 2 1 2 Implicient - funkcji f to taka funkcja h (tych samych argumentów), że dla wszystkich kombinacji wartości argumentów, jeśli h =0, to i f =0; Implicient prosty - to suma H (zmiennych x), który jest implicientem i który, zmniejszony o dowolną zmienną przestaje być implicientem.

Metoda Mc Cluskey a 1. Wszystkie pełne iloczyny wpisuje się w formie kolumny liczb binarnych, pisząc 0 zamiast x i oraz 1 zamiast x i. 2. Drugą kolumnę tworzy się z liczb pierwszej kolumny, dzieląc je na grupy indeksowe. W pierwszym wierszu wypisuje się liczbę złożoną z samych zer, następnie z liczb zawierających jedną jedynkę, następnie - liczby zawierające dwie jedynki itd. Poszczególne grupy wyraźnie rozdziela się. 3. Trzecia kolumna powstaje z rezultatów sklejeń liczb kolumny drugiej według poniższych zasad: nowe grupy tworzy się poprzez sklejanie liczby należących do sąsiednich grup; sklejane liczby mogą się różnić tylko na jednej pozycji, np. sklejenie (101) z (111) daje w wyniku liczbę (1-1). Sklejone wyrażenia należy zaznaczyć; każde wyrażenie można sklejać dowolną liczbę razy; należy wykorzystać wszystkie możliwości sklejeń;

4. Następne kolumny powstają z poprzednich przy zachowaniu tych samych zasad co w pkt. 2. Wyrażenia sąsiednie muszą mieć kreski na tych samych pozycjach, np. z (11-0) i (10-0) otrzymuje się (1--0). Tworzenie nowych kolumn kończy się w przypadku, gdy nie można już wykonać żadnych sklejeń. 5. Wyrażenia z ostatniej kolumny zamienia się na postać literową poprzez operacje odwrotną niż w pkt.1. 6. Tworzy się tablicę implikantów i wybiera się wszystkie postacie nieredukowalne. 7. Spośród postaci nieredukowalnych wybiera się postać minimalną

y = x x x x + x x x x + x x x x + x x x x + x x x x + 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 + x x x x + x x x x + x x x x + x x x x 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 0001, 0100, 0101, 0110, 0111, 1000, 1001, 1100, 1101

0001 0001 0-01 0100 0100-001 --01 01-- 0111 1000 1001 1100 0110-100 1001 100-1100 1-00 0111 01-1 1101 1101-101 1-01 0101 1000 010- -10-0110 0101 01-0 1-0- 011-110-

--01 01-- -10-1-0- y = x 3 x4 + x 1 x2 + x2 x 3 + x1 x 3

0001 0100 0101 0110 0111 1000 1001 1100 1101 --01* X X X X 01--* X X X X -10- X X X X 1-0-* X X X X y x x x x x x = + + 3 4 1 2 1 3

Minimalizacja funkcji niepełnych Przy minimalizacji funkcji niepełnych etapy 1-5 wykonuje się jak dla funkcji pełnych, z tym że oprócz składników postaci kanonicznej do działań włącza się również kombinacje odpowiadające nieokreślonej wartości funkcji. Tablicę implikantów buduje się tylko dla składników obowiązujących.

Wykorzystanie zapisu dziesiętnego składników postaci kanonicznej funkcji 1. Określić indeksy poszczególnych liczb opisujących postać kanoniczną iloczynu lub sumy i wypisuje się kolumnę z podziałem na grupy o jednakowych indeksach. Indeksy określają ilość jedynek w odpowiedniej liczbie binarnej. Liczby odpowiadające pozycjom nieokreślonym są traktowane tak jak pozostałe; 2. Druga kolumna powstaje z pierwszej w wyniku sklejania, przy czym obowiązują następujące zasady: skleja się liczby należące do sąsiednich grup; sklejane liczby muszą się różnić o 2k (k=0,1,2...); liczby można sklejać tylko wtedy gdy liczba z grupy o większym indeksie jest większa; wynik sklejania a z b zapisuje się w postaci a,b (c) - przy czym c jest różnicą między a i b; każda liczba może być sklejana dowolną ilość razy; należy wyczerpać wszystkie możliwości sklejeń; wyniki sklejeń dzieli się na grupy, jak poprzednio, a wyrażenia powtarzające się nie są wypisywane.

3. Następne kolumny powstają z poprzednich przy zachowaniu tych samych zasad. Dodatkowo różnice umieszczone w nawiasach sklejanych wyrażeń muszą być jednakowe, a wynik ma w nawiasie nie jedną, lecz kilka różnic. Na przykład 1,3 (2) i 5,7 (2) dają 1,3,5,7 (2,4), natomiast 1,3 (2) z 5,9 (4) nie skleja się. 4. Wyrażenia, których nie udało się skleić, odpowiadają prostym implikantom (implicentom) funkcji. Tworzy się z nich tablicę i ruguje wyrażenia zbędne, wybierając postacie minimalne. 5. Wyrażenia nieredukowalne zamienia się na postać binarną a następnie literową, zgodnie z następującymi zasadami: wypisuje się w postaci binarnej pierwszą liczbę wchodzącą w skład implikantu (implicentu); na pozycjach, których waga równa jest podanym w nawiasie różnicom, pisze się kreskę (-); poszczególnym pozycjom zero-jedynkowym przypisuje się odpowiednie litery.

f ( x, x, x, x ) 1 2 3 4 = [0, 1, 2, 4, 5, 10, 12, (8, 14)] 0 1 1 1 2 2 2 1 3 indeksy

0 0 0 0,1 (1) 0, 1, 4,5 (1,4) 1 1 1 0,2 (2) 0, 2, 8,10 (2,8) 2 1 2 0,4 (4) 0, 4, 8,12 (4,8) 4 1 4 0,8 (8) 8,10,12,14 (2,4) 5 2 8 1,5 (4) 8 1 5 2,10 (8) 10 2 10 4,5 (1) 12 2 12 4,12 (8) 14 3 14 8,10 (2) 8,12 (4) 10,14 (4) 12,14 (2)

0,1,4, 5 (1,4) 0, 1, 4, 5 (1,4) 0,2,8,10 (2,8) lub 0, 2, 8,10 (2,8) 0,4,8,12 (4,8) 8,10,12,14 (2,4) 0 0 0 0 00 lub 0 0 0 0 1 0 y = x 1 x 3 + x 2 x 4 + x 3 x 4 lub y = x 1 x 3 + x 2 x 4 + x1 x 4.

Minimalizacja funkcji silnie nieokreślonych 1. Buduje się tablicę, której wiersze odpowiadają składnikom sumy F 1 a kolumny składnikom iloczynu F 0 (lub odwrotnie) wpisanym w postaci zero-jedynkowej; 2. W tablicę wpisuje się liczby dziesiętne, odpowiadające pozycjom, na których symbol wiersza i kolumny różnią się; 3. Dla każdego wiersza (każdej kolumny) wypisuje się minimalne zbiory takich liczb, które występują we wszystkich kolumnach rozpatrywanego wiersza (lub we wszystkich wierszach rozpatrywanej kolumny);

4. Jeżeli wśród wypisanych zbiorów minimalnych są zbiory o mniejszej (niż w pozostałych) liczbie liter, należy sprawdzić, czy nie można ich zastąpić innymi zbiorami spośród wypisanych; 5. Ponieważ minimalne zbiory określają te pozycje wyrażenia zero-jedynkowego, które nie mogą być zastąpione kreskami, wybiera się spośród wypisanych zbiorów taka rodzinę by obejmowała wszystkie elementy F 1 lub F 0.

6. Na podstawie uzyskanych liczb dziesiętnych odtwarza się uproszczoną postać zero-jedynkową wypisując tylko te pozycje, które wchodzą w skład zbiorów wyróżnionych a pozostałe zastępując kreskami, Z tej postaci przechodzi się do postaci literowej wg zasad opisanych poprzednio.

F 0100101 1000110 1010000 1010110 1110101 0 1 = F = 1000101 1011110 1101110 1110111

F 2, 7 4 4 2, 6 1 1 min = lub Fmin = 2, 7 4 4 6, 7 F 0 1 1 1 min 1 = 1 lub Fmin 1 = 0 1 1 11 y = x x + x + x x lub y = x x + x + x x 2 7 4 2 6 2 7 4 6 7

Zbiory minimalne dla postaci minimalnej iloczynu to: 1;2,6-4,7 5;4,7-4,7-2,6; 3,6 W miejsce zbioru (1) można wstawić zbiór (2,6) a w miejsce (5) - (4,7). 2,6-4,7-4,7-4,7-2,6 0 1 = 0 0 0 F min ( ) ( ) 2 6 4 7 y = x + x x + x

Funktory układów cyfrowych Układy cyfrowe dzieli się na dwie podstawowe grupy: 1. układy kombinacyjne 2. układy sekwencyjne

Funktory układów kombinacyjnych - bramki Nazwa Symbol Realizowana funkcja Negacja, NOT a Suma, OR a + b Negacja sumy, NOR a + b Iloczyn, NAD a b Negacja iloczynu, NAND a b Suma modulo, EX-OR a b

Podstawowe funktory układów sekwencyjnych - przerzutniki

Przerzutnik typu RS Tablica przejść Symbol S R Q t+1 0 0 Q t 0 1 0 1 0 1 1 1 -

Przerzutnik typu JK Tablica przejść Symbol J K Q t+1 0 0 Q t 0 1 0 1 0 1 1 1 Q t

Przerzutnik typu D Tablica przejść Symbol D Q t+1 0 0 1 1

Przerzutnik typu T Tablica przejść Symbol T Q t+1 0 Q t 1 Q t

Typowe podzespoły układów cyfrowych Rejestry Liczniki Bloki arytmetyczne Komparatory Multipleksery Demultipleksery Konwertery kodów Pamięci

Rejestry Rejestrem nazywamy układ służący do przechowywania informacji

szeregowe - szeregowe wprowadzanie i wyprowadzanie informacji, tzn. kolejno bit po bicie; równoległe - równoległe wprowadzanie i wyprowadzanie informacji jednocześnie do wszystkich i ze wszystkich pozycji rejestru;

szeregowo-równoległe - szeregowe wprowadzanie i równoległe wyprowadzanie informacji; równoległo-szeregowe - równoległe wprowadzanie i szeregowe wyprowadzanie informacji.

Rejestry szeregowe charakteryzują się możliwością przesuwania wprowadzonej informacji bądź w prawo albo w lewo (rejestry przesuwające jednokierunkowe), bądź też zarówno w prawo, jak i w lewo (rejestry przesuwające dwukierunkowe, rewersyjne). SR

Liczniki Licznikiem nazywany jest sekwencyjny układ cyfrowy służący do zliczania i pamiętania liczby impulsów podawanych w określonym przedziale czasu na jego wejście zliczające.

Liczniki podlegają następującym kryteriom podziału: pod względem długości cyklu: liczniki o stałej długości cyklu liczniki o zmiennej długości cyklu pod względem kierunku zliczania: liczniki jednokierunkowe zliczające w przód zliczające w tył liczniki dwukierunkowe pod względem sposobu oddziaływania impulsów zliczanych na stan przerzutników licznika: liczniki asynchroniczne liczniki synchroniczne liczniki asynchroniczno - synchroniczne

Bloki arytmetyczne Podstawowym układem arytmetycznym jest sumator, którego zadaniem jest dodawanie lub odejmowanie liczb. Odejmowanie liczb jest możliwe w tzw. kodzie uzupełnień do dwóch

Blokiem arytmetycznym może być również tzw. rejestr przesuwający. Przesuwanie liczb binarnych w lewo (w kierunku starszego bitu) lub w prawo (w kierunku młodszego bitu) jest równoznaczne z mnożeniem lub z dzieleniem przez kolejne potęgi liczby 2. Do realizacji mnożenia liczb są również wykorzystywane tzw. multiplikatory. Uniwersalne, programowalne układy realizujące szereg operacji arytmetycznych oraz szereg funkcji logicznych są nazywane jednostkami arytmetyczno - logicznymi.

Komparatory Komparatory służą do porównywania wartości dwu lub więcej liczb dwójkowych.

Multipleksery Multiplekser (inaczej selektor) wybiera jeden sygnał spośród wielu sygnałów wejściowych.

Demultipleksery Demultiplekser (inaczej kolektor) kieruje sygnał na jedną z wielu możliwych dróg.

Konwertery kodów Konwertery kodów służą do zamiany liczby podanej w jednym kodzie na inny kod. Konwersji można dokonać tylko wówczas gdy liczba słów kodowych w obu kodach jest identyczna, natomiast długość słów obydwu kodów nie musi być identyczna.

Można wyróżnić trzy rodzaje konwerterów kodów: enkoder - jest to układ w którym kodem wejściowym jest kod pierścieniowy (jeden z "n"); enkoder priorytetowy - jest to układ w którym kodem dekoder - wejściowym jest kod x z n oraz jest ustalony priorytet poszczególnych wejść. jest to układ w którym kodem wyjściowym jest kod pierścieniowy (jeden z "n"); transkoder - jest to układ w którym kodem wejściowym i wyjściowym jest dowolny kod dwójkowy inny niż pierścieniowy

Pamięci Pamięci - układy służące do przechowywania ciągów cyfr binarnych są nazywane pamięciami. Z punktu wykonywanej funkcji pamięci można podzielić na dwie klasy: pamięci z zapisem i odczytem tzw. pamięci RAM (Random Acces Memory); pamięci stałe, tylko z odczytem tzw. pamięci ROM (Read Only Memory).

Jako pamięci mogą być wykorzystywane następujące układy: przerzutniki: rejestry; układy pamięciowe scalone; pamięci ferrytowe; matryce diodowe

Synteza układów cyfrowych Po przeprowadzeniu minimalizacji funkcji wykorzystując tablicę Karnaugha, należy przystąpić do budowy układu realizującego otrzymaną funkcję. Do budowy układu można wykorzystywać układy stykowe, negacje, bramki AND, OR, negacje, NAND, NOR, multipleksery

Dla układów stykowych przyjmowana jest następująca zasada: sygnał prosty jest realizowany jako styk normalnie rozwarty; sygnał zanegowany jest realizowany jako styk normalnie zwarty;

suma sygnałów jest realizowana jako połączenie równoległe styków; a a+b b iloczyn sygnałów jest realizowany jako połączenie szeregowe styków; a b ab

Budowa układu przy wykorzystaniu układu stykowego, bramek AND i OR Mając funkcję przedstawioną jako minimalną postać normalną sumy lub iloczynu można bezpośrednio przejść do budowy układu składającego się z układów stykowych lub bramek AND i OR. Otrzymano następujące funkcje: f 11 = a+b+c, f 21 = ab+ac+bc, f 20 = (a+b)(a+c)(b+c).

Układ stykowy: c b a a+b+c Układ stykowy realizujący funkcję f 11

a b a c b c ab+ac+bc Układ stykowy realizujący funkcję f 21

a b a c b c (a+b)(a+c)(b+c) Układ stykowy realizujący funkcję f 20

a b c Układ bramek OR realizujący funkcję f 11

a b a c b c ab ac bc ab+ac+bc Układ bramek AND i OR realizujący funkcję f 21

a b a c b c (a+b) (a+c) (b+c) (a+b)(a+c)(b+c) Układ bramek AND i OR realizujący funkcję f 20

Dana jest funkcja a f = a + cb b c a+bc Układ bramek AND, OR realizujący funkcję f a b a+bc c Układ bramek AND, OR i negacji realizujący funkcję f

Budowa układu przy wykorzystaniu bramek NAND lub NOR Na podstawie wzoru funkcji określającej jej minimalną postać sumy (iloczynu) można zaprojektować układ zbudowany z elementów NAND (NOR). Układ tak zaprojektowany będzie składał się z trzech poziomów. Poziom I (licząc od wejść układu) zawiera układy które negują sygnały wejściowe. Poziom II realizuje poszczególne funkcje. Ilość funktorów NAND jest równa ilości składników sumy a ilość funktorów NOR jest równa ilości czynników iloczynu. Poziom III stanowi pojedynczy element NAND (NOR). UWAGA: Dwa ostatnie poziomy są niezbędne.

dla minimalnej postaci sumy funkcji f 11 = a+b+c, f 21 = ab+ac+bc. Poziom I Poziom II Poziom III a b c a b c a b c = a+b+c Realizacja funkcji f 11 przy pomocy bramek NAND

a b c Poziom I Poziom II Poziom III ab ac bc a b ac bc = ab+ac+bc Realizacja funkcji f 21 przy pomocy bramek NAND

dla minimalnej postaci iloczynu funkcji f 10 = (a+b+c), f 20 = (a+b)(a+c)(b+c). Poziom I Poziom II Poziom III a b c a+b+c = a+b+c Realizacja funkcji f 10 przy pomocy bramek NOR

a b c Poziom I Poziom II Poziom III a+b a+c b+c (a+b)+(a+c)+(b+c) = (a+b)(a+c)(b+c) Realizacja funkcji f 20 przy pomocy bramek NOR

UWAGA: Funkcja zapisana w formie sumy iloczynów, zazwyczaj realizowana jest za pomocą elementów typu NAND. Funkcja zapisana w formie iloczynu sum, zazwyczaj realizowana jest za pomocą elementów typu NOR. Jeżeli funkcja zapisana w formie sumy iloczynów, ma być zrealizowana jest za pomocą elementów typu NOR, to należy zanegować wszystkie wejścia i wyjścia. Jeżeli funkcja zapisana w formie iloczynu sum, ma być zrealizowana jest za pomocą elementów typu NAND, to należy zanegować wszystkie wejścia i wyjścia.

Zbudować układ realizujący funkcję, której tablica Karnaugha przedstawiona jest poniżej.

1 f = ac + ab + bc

a b c

0 f = (a + b)(a + c)(b + c)

a b c

Realizacja układu przy wykorzystaniu multipleksera Zasada łączenia wejść multipleksera jest następująca: do wejść adresowych podłączane są sygnały wejściowe do odpowiednich wejść multipleksera (określanych przez odpowiednie wejścia adresowe), podłączane są sygnały 1 lub 0 zgodnie z tablicą wartości funkcji.

1 0 0 1 2 3 4 5 6 f 7 A1 A 2 A 3 a b c

Hazard Hazard określa możliwość powstania, pod wpływem określonych zmian sygnałów wejściowych, na niektórych wyjściach układu: niepożądanych krótkotrwałych sygnałów 1 lub 0 przy wymaganych niezmienionych sygnałach odpowiednio 0 lub 1, jest to tzw. hazard statyczny; krótkotrwałych zmian sygnałów wyjściowych np. 01 lub 10 przy wymaganej jednokrotnej zmianie 01 lub 10, jest to tzw. hazard dynamiczny.

Hazard statyczny Hazard statyczny powstaje w rzeczywistych układach przełączających w wyniku niejednoznaczności zmian sygnału x i jego negacji x co powoduje, że nie są spełnione następujące tożsamości algebry Boole a: x + x = 1; x x = 0.

Normalna postać sumy funkcji jest następująca: y = x + 1x2 x3x1

Przy zmianie stanu wejść x 1x2 x3 z wartości 011 na 111 zmienia się tylko x 1 z 0 na 1 przy x 1 = 1 i x 2 = 1 a funkcja y nie powinna zmieniać swojej wartości

Tablice Karnaugha Aby nie występował hazard musi być spełniona zasada, że każde dwie sąsiednie kratki zawierające jednakowe wartości 1 lub 0 muszą być objęte wspólną grupą.

W normalnej postaci sumy funkcji y = Ax + Bx + Z gdzie: A,B dowolne elementarne iloczyny, Z implikant lub suma implikantów funkcji y występuje hazard statyczny względem zmiennej x, jeżeli: AB ABZ. Aby wyeliminować hazard należy funkcję y uzupełnić implikantem g=ab, co nie zmienia jej wartości, gdyż zgodnie z regułą uogólnionego sklejania zachodzi tożsamość Ax + Bx + AB = Ax + Bx.

Analogicznie w normalnej postaci iloczynu funkcji y = ( A + x )( B + x )Z występuje hazard jeżeli nie jest spełniony warunek A + B= A+ B+ Z. Aby wyeliminować hazard należy funkcję y implicentem g=a+b, co nie zmienia jej wartości. uzupełnić

Normalna postać sumy funkcji jest następująca: y = x + 1x2 x3 x1 y = Ax + Bx1 1 + Z gdzie: A =, B = x3 i Z = 0 x 2 a zatem AB = x2 x3 0 Aby wyeliminować hazard należy dodać implikant x 2 x3. Funkcja będzie miała postać y = x + 1x2 + x3 x1 x2x3

Automaty sekwencyjne

Automatem sekwencyjnym (automatem z pamięcią) nazywamy układ przełączający przetwarzający cyfrową informację x i, dostarczoną na jego wejście w cyfrową informacje y i wytworzoną na wyjściach w ten sposób, że w dowolnej chwili czasowej t i informacja y t i zależy od informacji x i w chwili t oraz we wszystkich chwilach t-1, t-2,... t-n czyli Y t i = f ( x t i, x t i 1, x 2t,... x t n i i )

Zespół sygnałów dostarczanych na wejścia automatu nazywa się stanem wejść automatu X = ( x, x, x,... x 1 2 3 n ) Zespół sygnałów wytwarzanych na wyjściach automatu nazywa się stanem wyjść automatu Y = ( y, y, y,... y 1 2 3 m )

Automat posiada pamięć, która w realnych układach składa się z k elementarnych dwustanowych komórek pamięciowych Q 1, Q 2,... Q k, zwanych automatami elementarnymi. Kombinację stanów wyjść tych automatów nazywa się stanem wewnętrznym automatu sekwencyjnego. A = ( Q1, Q2, Q3,... Qk ) Liczba możliwych stanów wewnętrznych automatu jest równa 2 k.

Stany elementów pamięci zmieniają się pod wpływem odpowiednich sygnałów sterujących q 1, q 2,... q k, zwanych wzbudzeniami. Kombinację sygnałów wzbudzeń doprowadzonych do pamięci autoamtu nazywa się stanem wzbudzeń. B = ( q, q, q,... q 1 2 3 k )

X τ 1 γ K1 B τ 2 P µ A τ 3 λ K2 Y B t+τ1 =γ(x t,a t ) (1) A t+ τ1+τ2 =µ(β t+τ1 ) (2) A t+ τ1+τ2 =σ(x t,a t )

Automat Moore a X τ 1 γ K1 B τ 2 P µ A τ 3 λ K2 Y X τ k σ A τ 3 λ K2 Y

Automat Mealy ego X τ1 γ B τ2 τ3 µ λ A Y K1 P K2 X τ k σ A τ3 λ K2 Y

Automaty dzielą się na: automaty synchroniczne - zmiany następują pod wpływem sygnału taktującego automaty asynchroniczne - zmiany następują pod wpływem zmian sygnałów wejściowych

W automatach synchronicznych taktem określa się odstępy pomiędzy poszczególnymi sygnałami pod wpływem których zachodzą zmiany stanów wewnętrznych automatu. W automatach asynchronicznych taktem określa się odstęp czasu między kolejnymi zmianami sygnałów wejściowych.

X τ = 0 k τ A τ 3 λ K2 Y

X τ=0 τ Y K τ Y t+1 =σ 1 (X t,y t ) Y t+1 =σ 2 (X t,y t,z t ) Z t+1 =σ 3 (X t,y t,z t )

A t +1 =δ( X t, X t- 1 X X, At, At 1 A t ) Y t+1 = λ( X t, A t )

Sposoby zapisywania działania automatu sekwencyjnego Opis słowny Opis za pomocą ciągów zero jedynkowych Wykresy czasowe Tablica kolejności łączeń Grafy automatów Tablica przejść i wyjść

1 2 0 1 1 0 0 0 0 1 3 1 0 1

0 / 0 1 1 / 1 1 1 / 1 1 1 / 0 0 1 2 3 0 / 1 0 0 / 1 0

X t A t 0 1 Y t 1 1 2 00 2 3 3 01 3 2 1 10 A t+1,y t+1

X t A t 0 1 1 1 2 2 1 3 3 2 3 X t A t 0 1 1 01 11 2 10 11 3 10 00 A t+1 Y t+1 X t A t 0 1 1 1/01 2/11 2 1/10 3/11 3 2/10 3/00 A t+ 1/Yt +1

Przekształcenie automatu Moore a w automat Mealyego X t A t X 1 X 2 A 1 A 3 A 2 Y 2 A 2 A 4 A 6 Y 2 A 3 A 3 A 2 Y 1 A 4 A 4 A 6 Y 1 A 5 A 6 A 4 Y 3 A 6 A 1 A 5 Y 3 A t+1 X t A t X 1 X 2 A 1 A 3 /Y 1 A 2 /Y 2 A 2 A 4 /Y 1 A 6 /Y 3 A 3 A 3 /Y 1 A 2 /Y 2 A 4 A 4 /Y 1 A 6 /Y 3 A 5 A 6 /Y 3 A 4 /Y 1 A 6 A 1 /Y 2 A 5 /Y 3 A t+1 /Y t+1

X t A t X 1 X 2 A 1 A 3 /Y 1 A 2 /Y 2 A 2 A 4 /Y 1 A 6 /Y 3 A 3 A 3 /Y 1 A 2 /Y 2 A 4 A 4 /Y 1 A 6 /Y 3 A 5 A 6 /Y 3 A 4 /Y 1 A 6 A 1 /Y 2 A 5 /Y 3 X t A t X 1 X 2 A 1,A 3 A 3 /Y 1 A 2 /Y 2 A 2,A 4 A 4 /Y 1 A 6 /Y 3 A 5 A 6 /Y 3 A 4 /Y 1 A 6 A 1 /Y 2 A 5 /Y 3 A t+1 /Y t+1 A t+1 /Y t+1

X t A t X 1 X 2 A 1 A 1 /Y 1 A 2 /Y 2 A 2 A 2 /Y 1 A 4 /Y 3 A 3 A 4 /Y 3 A 2 /Y 1 A 4 A 1 /Y 2 A 3 /Y 3 A t+1 /Y t+1

Przekształcenie automatu Mealyego w automat Moore a X t X t A t X 1 X 2 A 1 A 1 /Y 1 A 2 /Y 2 A 2 A 2 /Y 1 A 4 /Y 3 A 3 A 4 /Y 3 A 2 /Y 1 A 4 A 1 /Y 2 A 3 /Y 3 A t+1 /Y t+1 A t X 1 X 2 A 1 (D 1 ) A 1 /Y 1 (D 2 ) A 2 /Y 2 A 2 (D 3 ) A 2 /Y 1 (D 4 ) A 4 /Y 3 A 3 (D 4 ) A 4 /Y 3 (D 3 ) A 2 /Y 1 A 4 (D 5 ) A 1 /Y 2 (D 6 ) A 3 /Y 3 A t+1 /Y t+1

X t A t X 1 X 2 A 1 (D 1 ) A 1 /Y 1 (D 2 ) A 2 /Y 2 A 2 (D 3 ) A 2 /Y 1 (D 4 ) A 4 /Y 3 A 3 (D 4 ) A 4 /Y 3 (D 3 ) A 2 /Y 1 A 4 (D 5 ) A 1 /Y 2 (D 6 ) A 3 /Y 3 X t A t X 1 X 2 D 1 D 1 D 2 Y 1 D 2 D 3 D 4 Y 2 D 3 D 3 D 4 Y 1 D 4 D 5 D 6 Y 3 D 5 D 1 D 2 Y 2 D 6 D 4 D 3 Y 3 A t+1 A t+1 /Y t+1

X t A t X 1 X 2 A 3 A 3 A 2 Y 1 A 2 A 4 A 6 Y 2 A 4 A 4 A 6 Y 1 A 6 A 1 A 5 Y 3 A 1 A 3 A 2 Y 2 A 5 A 6 A 4 Y 3 A t+1 X t A t X 1 X 2 A 1 A 3 A 2 Y 2 A 2 A 4 A 6 Y 2 A 3 A 3 A 2 Y 1 A 4 A 4 A 6 Y 1 A 5 A 6 A 4 Y 3 A 6 A 1 A 5 Y 3 A t+1

Wyścig krytyczny X 1 X 2 Q 1 Q 2 Q 3 00 01 11 10 000 100 100 000 100 001 001 000 000 110 011 001 111 010 010 010 011 011 010 110 110 010 010 110 110 111 011 110 111 110 101 101 100 101 101 100 101 100 111 110

X 1 X 2 Wyścig niekrytyczny Q 1 Q 2 Q 3 00 01 11 10 000 100 100 000 110 001 001 000 000 010 011 001 111 010 010 010 011 011 010 110 110 010 010 110 110 111 011 110 111 110 101 101 100 101 101 100 101 100 111 110

X 1 X 2 Wystąpienie drgań Q 1 Q 2 Q 3 00 01 11 10 000 100 100 000 110 001 001 000 000 010 011 001 111 010 010 010 011 011 010 110 110 010 010 110 110 111 011 110 111 110 101 101 100 101 101 100 101 100 111 110

Sposoby eliminacji wyścigu: zmiana kodu stanów wewnętrznych zamiana wyścigu krytycznego na wyścig niekrytyczny

Synteza automatów sekwencyjnych Etapy procesu syntezy automatów sekwencyjnych synteza właściwa- budowa automatu pierwotnego w postaci tablicy, grafu lub modelu matematycznego minimalizacja liczby stanów wewnętrznych kodowanie stanów wewnętrznych synteza kombinacyjna - wyznaczanie struktury wewnętrznej

Automaty elementarne Automaty elementarne są podstawowymi komórkami pamięciowymi automatów sekwencyjnych. Zawsze są stosowane w automatach synchronicznych, natomiast w automatach asynchronicznych tylko wtedy, gdy pamięć jest realizowana za pomocą odrębnych bloków, a nie za pomocą pętli sprzężeń zwrotnych. Automaty elementarne realizuje się za pomocą różnego rodzaju przerzutników bistabilnych.

Przerzutnik bistabilny jest elementem: o dwóch wzajemnie komplementarnych wyjściach, jednym lub kilku wejściach. Rodzaje przerzutnuków: asynchroniczne synchroniczne statyczne (potencjałowe) dynamiczne (impulsowe)

Przerzutniki asynchroniczne: wz rs jk t Przerzutniki synchroniczne: RS JK D T

Przerzutnik wz z Q w w Q z Q

Przerzutnik rs s r Q Q s r Q

Przerzutnik jk j k Q Q j k Q

Przerzutnik t t Q Q t Q

Przerzutnik RS S c R Q Q c S S c R Q Q R Q

Przerzutnik JK J c K Q Q c J J c Q Q K Q

Przerzutnik D D c Q Q c D c Q Q D Q

Przerzutnik T T c Q Q c T c Q Q T Q

Synteza automatu synchronicznego określić liczbę i typ przerzutników niezbędnych do realizacji układu przedstawić wymaganą sekwencję stanów w postaci np. tablicy stanów sporządzić tablicę przejść sporządzić tablicę Karnaugha dla określenia zminimalizowanych funkcji logicznych realizowanych przez układ kombinacyjny rozpatrywanego układu sekwencyjnego zaimplementować układ

Tablice przejść podstawowych przerzutników D Q t 0 1 0 0 1 1 0 1 Q t+1 T Q t 0 1 0 0 1 1 1 0 Q t+1 RS Q t 00 01 11 10 0 0 0-1 1 1 0-1 Q t+1 JK Q t 00 01 11 10 0 0 0 1 1 1 1 0 0 1 Q t+1 Tablice wzbudzeń podstawowych przerzutników Q t Q t+1 D T JK RS 0 0 0 0 0 - - 0 0 1 1 1 1-0 1 1 0 0 1-1 1 0 1 1 1 0-0 0 -

Synteza sumatora szeregowego ab Q t 00 01 11 10 0 0 0 1 0 1 0 1 1 1 Q t+1 ab Q t 00 01 11 10 0 0 1 0 1 1 1 0 1 0 Y

ab Q t 00 01 11 10 0-0 - 0 0 1-0 1 1 0 0-0 - 0 - RS ab Q t 00 01 11 10 0 0-0 - 1-0 - 1-1 - 0-0 - 0 JK ab Q t 00 01 11 10 0 0 0 1 0 1 0 1 1 1 D ab Q t 00 01 11 10 0 0 0 1 0 1 1 0 0 0 T

Tablice wzbudzeń podstawowych przerzutników Q t Q t+1 D T JK RS 0 0 0 0 0 - - 0 0 1 1 1 1-0 1 1 0 0 1-1 1 0 1 1 1 0-0 0 - D=1 T=1 J=1 K=1 R=1 S=1 Warunek konieczny Warunek dozwolony Q t+1 1 1 1 0 0 1 Q t+1 1 0 - - - - Q t+1 - - 0 0 0 1 Q t+1 - - 1 1 - -

D= [ F 1, F 1,( F )] S = [ F 1,( F 1, F )] R= [ F 0,( F 0, F )] J = [ F 1,( F 0, F 1, F )] K = [ F 0,( F 1, F 0, F )] T = [ F 1, F 0,( F )]

ab Q t 00 01 11 10 0 0 0 1 0 1 0 1 1 1 Q t+1

Synteza licznika modulo 8 Q 3 t Q 2 t Q 1 t Q 3 t+1 Q 2 t+1 Q 1 t+1 0 0 0 0 1 0 0 1 1 0 0 1 2 0 1 0 2 0 1 0 3 0 1 1 3 0 1 1 4 1 0 0 4 1 0 0 5 1 0 1 5 1 0 1 6 1 1 0 6 1 1 0 7 1 1 1 7 1 1 1 0 0 0 0

Q 3 t Q 2 t Q 1 t 0 1 00 0 0 01 0 1 11 1 0 10 1 1 Q 3 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 0 1 01 1 0 11 1 0 10 0 1 Q 2 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 1 0 01 1 0 11 1 0 10 1 0 Q 1 t+1

Przekształcanie układów synchronicznych w asynchroniczne Zasady przekształcenia układu synchronicznych w asynchroniczne 1. Jeżeli zbiór pogrubionych symboli przerzutnika Q A mieści się w zbiorze pogrubionych zer (jedynek) przerzutnika Q B, to do wejścia zegarowego c przerzutnika Q A można doprowadzić sygnał Q B (Q B ) zakładając, że przerzutniki są wyzwalane zboczem opadającym 1 0. 2. Sygnały wzbudzeń przerzutnika Q A muszą być przy tym określone tylko w tych kratkach tablicy, w których występują pogrubione zera ( jedynki w tablicy przejść przerzutnika Q B.

Q 3 t Q 2 t Q 1 t 0 1 00 - - 01-1 11-0 10 - - D c 3 3 = = Q Q 3 2 Q 3 t+1 Q 3 t Q 2 t Q 1 t 0 1 00-1 01-0 11-0 10-1 D c 2 2 = Q = Q 2 2 Q 2 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 1 0 01 1 0 11 1 0 10 1 0 Q 1 t+1 D c 1 1 = = Q 1 WE

Q 3 t Q 2 t Q 1 t 0 1 00 - - 01-1 11-0 10 - - J c 3 = K3 = 1 3 = Q 2 Q 3 t+1 Q 3 t Q 2 t Q 1 t 0 1 00-1 01-0 11-0 10-1 J c 2 = K2 = 1 2 = Q 1 Q 2 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 1 0 01 1 0 11 1 0 10 1 0 Q 1 t+1 J1 = K1 = 1 c = WE 1

Licznik dekadowy Q 4 t Q 3 t Q 2 t Q 1 t Q 4 t+1 Q 3 t+1 Q 2 t+1 Q 1 t+1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 2 0 0 1 0 2 0 0 1 0 3 0 0 1 1 3 0 0 1 1 4 0 1 0 0 4 0 1 0 0 5 0 1 0 1 5 0 1 0 1 6 0 1 1 0 6 0 1 1 0 7 0 1 1 1 7 0 1 1 1 8 1 0 0 0 8 1 0 0 0 9 1 0 0 1 9 1 0 0 1 0 0 0 0 0

Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 - - - - 10 1 0 - - Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 1 0 01 1 1 0 1 11 - - - - 10 0 0 - - Q 4 t+1 Q 3 t+1 J K 4 4 = = Q Q 3 1 Q Q 2 1 K = 3 = J3 Q2Q1 Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 1 0 1 Q 4 t Q 3 t Q 2 t Q 1 t 00 01 11 10 00 1 0 0 1 01 0 1 0 1 01 1 0 0 1 11 - - - - 10 0 0 - - 11 - - - - 10 1 0 - - Q 2 t+1 Q 1 t+1 J K 2 2 = Q 3 = Q 1 Q 2 Q 1 J 1 = K1 = 1

Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 - - - - 10 1 0 - - Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 1 0 01 1 1 0 1 11 - - - - 10 0 0 - - Q 4 t+1 Q 3 t+1 Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 1 0 1 01 0 1 0 1 11 - - - - 10 0 0 - - Q 4 t Q 3 t Q 2 t Q 1 t 00 01 11 10 00 1 0 0 1 01 1 0 0 1 11 - - - - 10 1 0 - - Q 2 t+1 Q 1 t+1

Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00-0 0-01 - 0 1-11 - - - - 10-0 - - Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 - - 1-01 - - 0-11 - - - - 10 - - - - Q 4 t+1 Q 3 t+1 J K c 4 4 4 = = = Q 1 Q 3 1 Q 2 J c 3 = K3 = 1 3 = Q 2 Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00-1 0-01 - 1 0-11 - - - - 10-0 - - Q 4 t Q 3 t Q 2 t Q 1 t 00 01 11 10 00 1 0 0 1 01 1 0 0 1 11 - - - - 10 1 0 - - Q 2 t+1 Q 1 t+1 J K c 2 2 2 = Q = 1 = Q 4 1 J1 = K1 = 1 c = WE 1