IV) Układy Logiczne:
1) Podstawy Algebry Boole'a:
Algebra Bool'a opiera się na 3 podstawowych operacjach:
•
negacji:
x lub ¬x
;
•
koniunkcji:
x∗y lub x∧ y
;
•
alternatywie:
x y lub x∨ y
;
wykonywanych na zmiennych mogących przyjmować wartości 0 i 1 oraz na wartościach stałych 0 i 1.
Gdy nie ma nawiasów to kolejność wykonywania działań jest następująca:
•
negacja;
•
koniunkcja;
•
alternatywa.
Gdy występują nawiasy najpierw wykonuje się operacje na nich. Znak negacji zastępuje nawiasy.
Podstawowe prawa algebry Bool'a to:
•
prawa idempotentności:
◦
x + x = x;
◦
x * x = x;
•
prawa przemienności:
◦
x + y = y + x;
◦
x * y = y * x;
•
prawa łączności:
◦
x + (y + z) = (x + y) + z;
◦
x * (y * z) = (x * y) * z;
•
prawa rozdzielności:
◦
x * (y + z) = x * y + x * z;
◦
x + y * z = (x + y) * (x + z);
•
prawo podwójnej negacji:
◦
x= x ;
•
zależności wynikające z definicji funkcji alternatywy i koniunkcji:
◦
x + 0 = x
x * 0 = 0
◦
x + 1 = 1
x * 1 = x
◦
x + x = x
x * x = x
◦
xx=1
x∗x=0
•
operacje wykonywane na stałych:
◦
0 + 0 = 0
0 * 0 = 0
◦
1 + 0 = 1
1 * 0 = 0
◦
1 + 1 = 1
1 * 1 = 1
◦
0=1
1=0
•
prawa pochłaniania:
◦
x + x * y = x;
◦
x * (x + y) = x;
•
prawa sklejania:
◦
x y ∗ xy =x ;
◦
xx∗y= x y ;
◦
x∗ yx∗y =x ;
◦
x∗ x y= x∗y ;
•
prawa De Morgana:
◦
zaprzeczenie koniunkcji: x∗y=xy ;
◦
zaprzeczenie alternatywy:
x y =x∗y ;
2) Metody minimalizacji funkcji logicznych:
Są w zasadzie dwie metody:
•
Metoda Quine'a-McCluskeya;
•
Metoda tablic Karnaugh zwana też metodą Veitch'a;
W ćwiczeniu używa się tablic Karnaugh.
Gdyby ująć w kilka zasad projektowanie przy pomocy siatek Karnaugh’a można by przedstawić je
następująco:
1. Tworzymy siatki o rozmiarze takim by ilość opisujących je zmiennych była równa ilości
sygnałów wejściowych.
2. Tworzymy tyle siatek, ile układ posiada wyjść.
3. Wewnątrz kratek danej siatki wpisujemy stany wewnętrzne jakie mają pojawiać się na
danym wyjściu przy odpowiadającej im kombinacji sygnałów wejściowych opisujących
siatkę.
Na podstawie zakodowanych odpowiednio stanów trzeba stworzyć funkcję logiczną.
Przykładowa siatka dla 4 zmiennych na wejściu wygląda następująco:
CD
AB⋱
00
C=0∧D=0
01
C=0∧D=1
10
C=1∧ D=0
11
C=1∧ D=1
00
A=0∧B=0
1
0
0
0
01
A=0∧B=1
1
0
1
1
10
A=1∧B=0
0
0
1
1
11
A=1∧B=1
0
0
0
0
0 i 1 wpisane w tabele to przykładowe stany wyjścia. Na ich podstawie tworzy się funkcję logiczną
poprzez grupowanie 1 lub 0 (grupy po 2, 4 i 8).
W tym przykładzie na podstawie zaznaczonych 1-nek mamy:
Y =A∗
C∗
DC
Wzór funkcji wziął się z tego, że dla zaznaczonej 2-jki jedynek, niezmiennymi parametrami na
wejściu są A, C i D, a ich wartości dla tej grupy to 0, zatem we wzorze pojawia się A∗
C∗
D . W
przypadku zaznaczonej 4-rki jedynek, stałym parametrem jest C i ma wartość 1, stad we wzorze C.
Parametry w obrębie zaznaczonej grupy się mnoży, a parametry z oddzielnych grup dodaje.
3) Pojęcie układów logicznych sekwencyjnych i kombinacyjnych:
Układy kombinacyjne są to układy cyfrowe, których stany wyjść są zawsze jednoznacznie
określone przez stany wejść. Oznacza to, że doprowadzając na wejście takich układów określoną
kombinację sygnałów binarnych, otrzymujemy na wyjściu odpowiedzi specyficzne dla
zastosowanych wymuszeń i funkcji logicznej, jaką wykonują układy, niezależnie od tego co działo
się z tymi układami wcześniej. Są to zatem układy bez pamięci.
Układy sekwencyjne są to układy cyfrowe, których stany wyjść zależą od aktualnych
stanów wejść oraz od tego, co się działo z układem poprzednio, czyli jakie stany wejść zadawane
były w chwilach poprzedzających. Są to zatem układy z pamięcią, gdyż oprócz wymuszeń
aktualnych istotną rolę odgrywają stany poprzednie.
4) Systemy funkcjonalnie pełne:
Zbiór funkcji boolowskich nazywa się systemem funkcjonalnie pełnym (bazą), jeśli
dowolna funkcja boolowska może być przedstawiona za pomocą stałych 0 i 1 oraz funkcji
należących do tego zbioru i argumentów funkcji.
Funkcje sumy, iloczynu i negacji tworzą tzw. podstawowy system funkcjonalnie pełny. Nie jest to
jednak system minimalny. Systemy funkcjonalnie pełne tworzą również:
•
iloczyn i negacja;
•
suma i negacja;
•
funkcja Sheffer'a (NAND);
•
funkcja Pierce'a (NOR).
W ćwiczeniu używa się funkcji NOR, żeby zaprojektować układ logicznych. Aby to zrobić trzeba
otrzymaną funkcję logiczną z tablicy Karnaugh przedstawić tylko w postaci zaprzeczonych
alternatyw.
5) Realizacja funkcji przełączających na elementach funkcjonalnie pełnych:
Za pomocą funkcji NOR możemy zdefiniować
negację: NOT a=a NOR a ;
alternatywę: a∨b=NOT a NOR b= a NOR b NORa NOR b ;
koniunkcję:
a∧b=NOT NOT a∨ NOT b= NOT a NOR NOT b=a NOR a NORb NOR b
czyli dowolną funkcję logiczną. Dlatego też ta funkcja jest ważna (podobnie jak NAND).
Dla przykładowej funkcji z punktu 2 byłoby to tak:
Y =A∗
C∗
DC= A∗
C∗
DC = A∗
C ∗
DC= A∗
C
DC =A∗
CDC ⇒
⇒
A
C DC =AC DC= ACDC
W efekcie układ:
(NOT a AND NOT c AND NOT d) OR c
zamieniono na:
NOR [(a NOR c NOR d) NOR c].
6) Liczniki jedno i dwukierunkowe (rewersyjne):
Za dużo do pisania :P odsyłam do skryptu dziekana Wawrzyńskiego, strony 195-198 (wyd.
2003).
7) Synteza dekoderów i rozdzielaczy:
Dekoderem nazywamy układ cyfrowy, który zmienia słowo określone w dowolnym kodzie
na słowo w kodzie 1 z N. Przykładowym zastosowaniem koderów jest użycie ich jako dekoderów
adresy w pamięciach półprzewodnikowych. Kombinacja sygnałów wejściowych uaktywnia
odpowiednie wyjście (jedno z wyjść dekodera), które z kolei uaktywnia odpowiednią komórkę
pamięci. Umożliwia to w konsekwencji wpisanie lub pobranie informacji z odpowiednich obszaró
pamięci półprzewodnikowej.
Rozdzielacz jest urządzeniem, które jak nazwa wskazuje rozdziela sygnał z dekodera, na np.
kilka stanowisk pracy (jednoczesny odczyt danych), ewentualnie każde stanowisko ma dekoder,
połączony z rozdzielaczem (jednoczesny odczyt i zapis danych).