• Nie Znaleziono Wyników

5.3. Optymalizacja układów logicznych. 5.2. Bramki logiczne. 5.1. Funkcje boolowskie. 5. Układy logiczne

N/A
N/A
Protected

Academic year: 2021

Share "5.3. Optymalizacja układów logicznych. 5.2. Bramki logiczne. 5.1. Funkcje boolowskie. 5. Układy logiczne"

Copied!
3
0
0

Pełen tekst

(1)

str. 12

c b a c b a c b a c b a c b a f ( , , )

5. Układy logiczne

5.1. Funkcje boolowskie.

Funkcją boolowską nazywamy funkcję, której argumenty (zmienne logiczne) oraz sama funkcja mogą przybierać tylko jedną z dwu wartości, np. 0 lub 1. Funkcja boolowska o n wejściach i m wyjściach to funkcja

f:{0,1}

n

{0,1}

m

Za pomocą funkcji boolowskich opisuje się układy logiczne, tj. układy cyfrowe w których każdy sygnał wejścia i wyjścia przybiera jedną z 2 wartości.

Funkcje logiczne można określić za pomocą:

 opisu słownego

 tabeli prawdy

 wyrażenia boolowskiego

 graficznie za pomocą bramek logicznych

Np. Funkcja f:{0,1}

3

{0,1}, która przyjmuje wartość 1 gdy przynajmniej dwa argumenty przyjmują wartość 0 może być przedstawiona za pomocą

tabeli prawdy: układu logicznego bramek:

wyrażenia boolowskiego:

5.2. Bramki logiczne.

Bramki logiczne to proste układy cyfrowe realizujące podstawowe funkcje boolowskie. Służą do budowy układów logicznych o większej złożoności.

Bramki uniwersalne

negacja b. iloczyn b. suma b. negacja

iloczynu b.

negacja sumy b.

alternatywa wykluczająca

A B NOT (A) AND (A,B) OR (A,B) NAND (A,B) NOR (A,B) XOR (A,B)

0 0 1 0 0 1 1 0

0 1 0 1 1 0 1

1 0 0 1 1 0 1

1 1 0 1 1 0 0 0

5.3. Optymalizacja układów logicznych.

Optymalizacja układów logicznych jest dwutorowa i polega na:

 upraszczaniu wyrażeń logicznych (za pomocą przekształceń algebraicznych wykorzystując prawa algebry Boole’a lub za pomocą specjalnych algorytmów – np. Map Karnaugh)

 ograniczeniu ilości operatorów prowadzące do stosowania bramek uniwersalnych Korzyści z optymalizacji: szybsza stabilizacja sieci, większa niezawodność, niższy koszy wykonania

a b c f(a,b,c)

0 0 0 0 1

1 0 0 1 1

2 0 1 0 1

3 0 1 1 0

4 1 0 0 1

5 1 0 1 0

6 1 1 0 0

7 1 1 1 0

a b c

f(a,b,c)

(2)

str. 13 c

b a c b a c b a c b a c b a f ( , , )

b a

c a

c b

c b c a b a c b a c b a c b a c b a c b a f ( , , )

5.3.1. Mapy Karnaugh

Mapa Karnaugh to metoda minimalizacji funkcji boolowskiej wykorzystująca zapis tablicy prawdy z zastosowaniem kodu Grey’a opracowana w 1953r przez Maurice Karnaugha.

Kod Gray’a – kod w którym dowolne 2 sąsiednie słowa (oraz pierwszy i ostatni) różnią się dokładnie 1 bitem, np.

Algorytm Karnough:

1. Rozdzielamy zmienne na 2 grupy (zapisane w kolumnie i wierszu) i używając kodu Grey’a przypisujemy im wszystkie możliwe wartości

2. Wartości z tablicy prawdy przepisujemy do mapy

3. Wyodrębniamy prostokąty (implikanty) zbudowane z jedynek o bokach 2

n

każdy. Zaczynamy zawsze od jedynek (jądrowych), które można pokryć tylko na jeden sposób implikantem. Implikantów powinno być jak najmniej i każdy powinien być możliwie jak największy. Implikanty mogą zachodzić na siebie i łączyć pierwszy wiersz (kolumnę) z ostatnim wierszem (kolumną).

4. W ramach każdego implikanta obserwujemy argumenty – jeśli argument ma stałą wartość, to go zapisujemy, jeśli nie – pomijamy. Argument o wartości 0 negujemy.

5. W przypadku stanów nieokreślonych (zaznaczane -), kładziemy taką wartość (1 lub 0), która jest wygodniejsza do optymalizacji)

Np. Uprośćmy funkcję (boldem są zaznaczone jedynki jądrowe)

1. 2. 3. 4.

Ostatecznie otrzymujemy, że:

5.3.2. Układy funkcjonalnie pełne bramek

Mówimy, że bramki tworzą układ funkcjonalnie pełny, gdy za ich pomocą można zrealizować dowolną funkcję boolowską. Podstawowy układ funkcjonalnie pełny tworzą bramki: NOT, AND i OR. Okazuje się, że można zmniejszyć ilość typów używanych bramek, nawet do jednej.

Twierdzenie Sheffera (1913)

Każda funkcja boolowska może być zdefiniowana za pomocą jednego działania NAND (lub NOR)

Przykłady układów funkcjonalnie pełnych:

 NOT, AND, OR

 NOT, AND

 NOT, OR

 NAND (bramka uniwersalna)

 NOR (bramka uniwersalna) Kod Gray’a

0 0 0

0 0 1

0 1 1

0 1 0

1 1 0

1 1 1

1 0 1

1 0 0

0 1

0 0 0 1 1 1 1 0

0 1

0 0 1 1

0 1 1 0

1 1 0 0

1 0 1 0

0 1

0 0 1 1

0 1 1 0

1 1 0 0

1 0 1 0

ab c

ab c ab c

(3)

str. 14

cc bb cc

aa bb

aa

c b c a b a

c b c a b a

c b c a b a c

b a f ( , , )

Np.

Zadania

5.1. Zbuduj tabelę prawdy i skonstruuj układ logiczny realizujący funkcję:

a) f ( x , y ) x y y x b) f ( x , y , z ) x z x y z x c) f ( x , y , z ) x ( x z x y z x )

d) f ( x , z ) ( x z xz ) z

e) f ( x , y , z ) x y z x y z x y z f) f ( x , y , z , w ) ( x y z ) w x

5.2. Pewien układ logiczny spełnia tabelę prawdy. Zaprojektuj ten układ logiczny i zbuduj funkcję boolowską:

a) b)

5.3. Napisz wzór funkcji i zbuduj tabelę prawdy realizującą dany układ logiczny:

a) b)

5.4. Udowodnij Twierdzenie Sheffera dla bramki NOR.

5.5. Zapisz za pomocą operacji NAND:

a) a ( b c ) b) a b c

c) a b c a d) ( a b ) c a b

5.6. Uprość funkcje korzystając z map Karnaugh i narysuj odpowiedni układ logiczny z użyciem bramki NAND:

a) f ( x , y , z ) x y z x y z x y z x y z x y z x y z

b) f ( x , y , z , w ) x y z w x y z w x y z w x y z w x y z w x y z w

c) f ( x , y , z , w ) x y z w x y z w x y z w x y z w x y z w x y z w x y z w x y z w

d) x y z w u x y z w u x y z w u x y z w u

u w z y x u w z y x u w z y x u w z y x u w z y x u w z y x

f ( , , , , )

5.7. Zoptymalizuj funkcje z zadania 5.1-5.3.

5.8. Zaprojektuj układ, który będzie sygnalizował sytuację, gdy liczba osób głosujących na tak będzie większa, bądź równa liczbie osób głosujących na nie.

5.9. Zaprojektuj transkoder kodu binarnego na kod Gray’a.

x y z f(x,y,z)

0 0 0 0 0

1 0 0 1 1

2 0 1 0 0

3 0 1 1 0

4 1 0 0 1

5 1 0 1 1

6 1 1 0 0

7 1 1 1 1

x y z f(x,y,z)

0 0 0 0 1

1 0 0 1 0

2 0 1 0 1

3 0 1 1 0

4 1 0 0 1

5 1 0 1 0

6 1 1 0 1

7 1 1 1 1

a b c

f(a,b,c)

a b c a b c

f(a,b,c)

f(a,b,c)

Cytaty

Powiązane dokumenty

sprawdza czy warunek jest spełniony i zwraca jedną wartość jeśli PRAWDA, a drugą wartość, jeśli FAŁSZ.  Przykład: sprawdzenie czy liczba jest dodatnia

*& 0 Aa1 Bbb2 Ccc1 wprowadzenie bramki Aa1 typu „and” o stanie początkowym 0 z dwoma wejściami podłączonymi do bramek Bbb2 oraz

[r]

2 Uzupełnij wyraz˙enia

Rzut karny przyznaje się, gdy: pewna sytuacja bramkowa zostanie powstrzymana przez zawodnika lub działacza drużyny przeciwnej, kiedy bramkarz wszedł do

(5 punktów) W pewnym kraju w 300-osobowym parlamencie wszystkie mandaty dzielą między siebie dwie partie: Unia Algebraików oraz Sojusz LogikówD. Wiemy, że

Prostokąt został podzielony na mniejsze prostokąty, z których każdy ma co najmniej jeden bok o długości będącej liczbą całkowitą. Wykaż, że przynajmniej jeden bok dużego

Wniosek praktyczny: Wykorzystując jedynie bramki logiczne odpowiadające operatorom z danego systemu funkcjonalnie pełnego można zaprojektować układ logiczny odpowiadający