Rozdział 2 Digital Design and Computer Architecture, 2nd Edition David Money Harris and Sarah L. Harris
Rozdział 2 :: Zagadnienia Wstęp Równania Boolean Algebra Boolean Od logiki do bramek Wielopoziomowa logika kombinacyjna X i Z , Ooo nie Mapy Karnaugh Kombinacyjne bloki Wykresy czasowe
Wstęp Obwody logiczne składają się: Wejścia Wyjścia Specyfikacja funkcjonalna Specyfikacja czasowa
Obwody Węzły Elementy obwodu Wejścia: A, B, C Wyjścia: Y, Z Wewnętrzne: n1 Elementy obwodu E1, E2, E3 Każdy obwód
Rodzaje logicznych obwodów Logika kombinacyjna Bezpamięciowe Wyjścia zależą tylko od aktualnych wartości wejść Logika sekwencyjna Posiada pamięć Wyjścia zależą od poprzednich i aktualnych wartości wejściowych
Zasady kombinacyjne kompozycji Każdy element jest kombinacyjny Każdy węzeł jest wejściem albo łączy dokładnie jedno wyjście Obwody nie zawierają sprzężenia zwrotnego Przykład:
Równania Boolean Specyfikacja funkcjonalna wyjść w zależności od sygnałów wejściowych Przykład: S = F(A, B, Cin) Cout = F(A, B, Cin)
Definicje Negacja: zmienna z daszkiem ponad nią A, B, C Literal: zmienna albo jej negacja A, A, B, B, C, C Implikant: iloraz literali ABC, AC, BC Minterm: iloraz który zawiera wszystkie zmienne wejściowe ABC, ABC, ABC Maxterm: suma która zawiera wszystkie zmienne wejściowe (A+B+C), (A+B+C), (A+B+C)
Kanoniczna postać sumy (KPS) Wszystkie równania mogą być zapisane jako KPS Każdy wiersz ma minterm Minterm jest ilorazem (AND) literałów Każdy minterm jest PRAWDĄ dla danego wiersza (i tylko dla niego) Łączymy funkcją OR mintermy dla których wyjście jest PRAWDĄ W równaniu otrzymujemy sumę (OR) ilorazów (AND) termów Y = F(A, B) =
Kanoniczna postać sumy (KPS) Sum-of-Products Form Wszystkie równania mogą być zapisane jako KPS Każdy wiersz ma minterm Minterm jest ilorazem (AND) literałów Każdy minterm jest PRAWDĄ dla danego wiersza (i tylko dla niego) Łączymy funkcją OR mintermy dla których wyjście jest PRAWDĄ W równaniu otrzymujemy sumę (OR) ilorazów (AND) termów Y = F(A, B) =
Kanoniczna postać sumy (KPS) Wszystkie równania mogą być zapisane jako KPS Każdy wiersz ma minterm Minterm jest ilorazem (AND) literałów Każdy minterm jest PRAWDĄ dla danego wiersza (i tylko dla niego) Łączymy funkcją OR mintermy dla których wyjście jest PRAWDĄ W równaniu otrzymujemy sumę (OR) ilorazów (AND) termów Y = F(A, B) = AB + AB = Σ(1, 3)
Kanoniczna postać iloczynu (KPI) Wszystkie równania Boolean mogą być zapisane w postaci KPI Każdy wiersz jest maxterm Maxtem jest sumą (OR) literałów Każdy maxterm jest FALSE dla tych wierszy (i tylko dla tych wierszy) Konstruowanie funkcji przez ANDowanie maxtermów dla każdego wyjścia równego FALSE Powstaje iloraz (AND) sum (OR) Y = F(A, B) = (A + B)(A + B) = Π(0, 2)
Przykład równań Bool Idziesz do bufetu na lunch Nie jesz lunchu (E) Nie jest otwarty(O) albo Oferują tylko ciasto (C) Uzupełnij tablicę prawdy do zdefiniowania kiedy zjesz lunch
Przykład równań Boolean Idziesz do bufetu na lunch Nie jesz lunchu (E) Nie jest otwarty(O) albo Oferują tylko ciasto (C) Uzupełnij tablicę prawdy do zdefiniowania kiedy zjesz lunch
Formy KPS & KPI KPS – kanoniczna postać sumy KPI – kanoniczna postać iloczynu
Formy KPS & KPI KPS – kanoniczna postać sumy E = OC KPI – kanoniczna postać iloczynu E = OC = Σ(2) E = (O + C)(O + C)(O + C) = Π(0, 1, 3)
Algebra Boolean Aksjomaty i teorie do upraszczania równań Boolean Jak liniowa algebra, tylko prostsza: zmienne przyjmują tylko dwie wartości (1 or 0) Dualność w aksjomatach in axioms i teoriach: AND i OR, 0 i 1 zamiennie
Boolean Aksjomaty
T1: Twierdzenie o identyczności B 1 = B B + 0 = B
T1: Twierdzenie o identyczności B 1 = B B + 0 = B
T2: Twierdzenie o 0 elemencie B 0 = 0 B + 1 = 1
T2: Twierdzenie o 0 elemencie B 0 = 0 B + 1 = 1
T3: Twierdzenie o dominacji B B = B B + B = B
T3: Twierdzenie o dominacji B B = B B + B = B
T4: Twierdzenie o inwolucji B = B
T4: Twierdzenie o inwolucji B = B
T5: Twierdzenie o uzupełnieniu B B = 0 B + B = 1
T5: Twierdzenie o uzupełnieniu B B = 0 B + B = 1
Podsumowanie twierdzeń Boolean Theorems Summary
Twierdzenia Boolean dla kilku zmiennych ( )
Upraszczanie równań Boolean Equations Przykład 1: Y = AB + AB
Upraszczanie równań Boolean Przykład 1: Y = AB + AB = B(A + A) T8 = B(1) T5’ = B T1
Upraszczanie równań Boolean Przykład 2: Y = A(AB + ABC)
Upraszczanie równań Boolean Example 2: Y = A(AB + ABC) = A(AB(1 + C)) T8 = A(AB(1)) T2’ = A(AB) T1 = (AA)B T7 = AB T3
Teoria DeMorgana Y = AB = A + B Y = A + B = A B
Przesunięcia negacji Przesunięcie w tył: Przesunięcie w przód: Zmiana typu bramki Dodanie negacji do wejścia Przesunięcie w przód: Dodanie negacji do wyjścia
Przesunięcia negacji Jakie jest wyrażenie Boolean dla tego obwodu?
Przesunięcia negacji Jakie jest wyrażenie Boolean dla tego obwodu? Y = AB + CD
Zasady przesunięcia negacji Zacznij od wyjścia i przechodź w kierunku wejścia Przenieś negację na tył ostatniego bloku Narysuj bramki w takiej formie żeby zlikwidować negacje
Przykład przesunięcia negacji
Przykład przesunięcia negacji
Przykład przesunięcia negacji
Przykład przesunięcia negacji
Od logiki do bramek Dwu-poziomowa logika: bramki AND a potem OR Przykład: Y = ABC + ABC + ABC
Zasady projektowania obwodów Wejścia po lewej stronie (albo na górze) Wyjścia po prawej (albo na dole) Przepływ sygnału przez bramki od strony lewej na prawo Proste połączenia są najlepsze
Zasady projektowania obwodów (kont.) Przewody rozdzielają się pod kątem prostym (a) Kropka w miejscu przecięcia linii oznacza połączenie między przewodami (b) Przewody krzyżujące się bez kropki nie łączą się (c) (b) (c) (a)
Obwody z wieloma wyjściami Przykład: Obwód z priorytetem Wyjście uzależnione od najbardziej znaczącego wejścia (TRUE)
Obwody z wieloma wyjściami Przykład: Obwód z priorytetem Wyjście uzależnione od najbardziej znaczącego wejścia (TRUE)
Realizacja sprzętowa obwodu z priorytetem
Uproszczenie tabeli prawdy
Walczące: X Walka: obwód stara się jednocześnie wymusić na wyjściu 1 i 0: Aktualna wartość znajduje się pomiędzy Może być 0, 1 albo w strefie zakazanej Może zmieniać napięcie, temperaturę, czas, zakłócenia Często powoduje rozproszenie mocy Uwaga: Połączenie zazwyczaj oznacza błąd w obwodzie.
Pływająca masa: Z Pływająca, wysoka impedancja, otwarty, wysokie Z. Pływające wyjście może przyjmować wartości 0, 1, albo pomiędzy Woltomierz nie określi czy węzeł jest w stanie wysokiej impedancji Trzystanowy bufor
Trzystanowa magistrala Pływające węzły są wykorzystywane w trzystanowych magistralach Wiele różnych driverow Tylko jedno jest aktywne w danym momencie
Tabele Karnaugh (K-Mapy) Wyrażenia Boolean mogą być zminimalizowane przez połączenie termów K-mapy to graficzna minimalizacja równań PA + PA = P
K-Mapy Łączymy 1 w pary W wyrażenie Boolean wypisujemy tylko te literały, które mają wartość 1 a zanegowana postać nie występuje w zakreślonym kole Y = AB
3-wejściowe K-Mapy
3-wejściowe K-Mapy Y = AB + BC
Definicje K-Mapy Negacja: kreska ponad zmienną A, B, C Literal: zmienna albo jej negacja A, A, B, B, C, C Implikant: iloraz literłów ABC, AC, BC Podstawowy implikant : implikant powiązany z największym kołem grupującym w K-mapie
Zasady K-Mapy Każda 1 musi być zaznaczona przynajmniej jeden raz Każde koło grupujące musi być w potędze dwójki (czyli 1, 2, 4 …) Każde koło grupujące musi być tak duże jak to tylko możliwe Koło grupujące może być łączone na rogach Stan niezdefiniowany (X) jest zaznaczany tylko wtedy jeśli pomaga zminimalizować równania
4-wejściowa K-Mapa
4-wejściowa K-Mapa
4-wejściowa K-Mapa
K-Mapy ze stanami dowolnymi
K-Mapy ze stanami dowolnymi
K-Mapy ze stanami dowolnymi
Bloki kombinacyjne Multipleksery Dekodery
Multipleksery (Mux) Łączą jedno z N wejść do wyjścia log2N-bit wybór wejścia – wejście kontrolne Przykład: 2:1 Mux
Implementacja mutliplekserów Bamki logiczne Kanoniczna postać sumy Trzystanowe Dla N-wejściowego mux, wykorzystuje N trzystanowe Przekazuje dokładnie jedno z wejść na wyjście
Logika zrealizowana na multiplekserach Wykorzystanie mux jako tabeli prawdy dla AND
Logika realizowana na multiplekserach Zmniejszenie rozmiaru mux
Dekodery N wejść, 2N wyjść Jedna 1 na wyjściu: tylko jedno z wyjść jest w stanie wysokim
Implementacja dekodera mplementation
Logika wykorzystująca dekodery OR mintermy
Zależności czasowe Opóźnienie pomiędzy zmianą na wejściu a zmianą na wyjściu Jak budować szybkie obwody?
Opóźnienie Propagacji & Konkatenacji Opóźnienie propagacji: tpd = max opóźnienie od wejścia do wyjścia Opóźnienie konkatenacji : tcd = min opóźnienie od wejścia do wyjścia
Opóźnienie Propagacji&Konkatenacji Opóźnienie jest spowodowane przez Pojemności i rezystancje w obwodzie Ograniczenie prędkości światła Dlaczego tpd i tcd mogą być różne: Różnice w prędkości narastania i opadania zbocza Wiele wejść i wyjść z których jedne mogą być szybsze niż inne Obwody spowalniają prace kiedy jest gorąco i przyspieszają w niższych temperaturach
Krytycznie (Długie) & Krótkie Ścieżki Krytycznie (długa) ścieżka: tpd = 2tpd_AND + tpd_OR Krótka ścieżka: tcd = tcd_AND
Zakłócenia ang. Glitches Kiedy pojedyncza zmiana na wejściu powoduje kilkukrotną zmianę wyjścia.
Przykład Glitch
Przykład Glitch Co się stanie kiedy A = 0, C = 1, B przechodzi z 10?
Poprawa efektu Glitch
Jak rozumieć Glitch? Glitches nie ma wpływu na układy synchroniczne (rozdział 3) Ważne jest poprawnie rozpoznać glitch: podczas symulacji albo na oscyloskopie Nie można pozbyć się wszystkich glitches – jednoczesne przejścia miedzy stanami na wielu wejściach mogą również powodować zakłócenia (ang. glitches)
Zagadnienia do rozdz. 2 Tworzenie równań Boolowskich na podstawie tablicy prawdy: kanoniczna postać sumy, (KPS), kanoniczna postać iloczynu (KPI) Na podstawie równania Bollowskiego narysowanie obwodu kombinacyjnego Upraszczanie obwodów kombinacyjnych przez przesuwanie negacji w przód/do tyłu Tworzenie K-map dla podanej tablicy prawdy, zaznaczanie i opisywanie rejonów do postaci KPS i KPI. Co to jest multiplekser? Co to jest dekoder? Co to jest opóźnieni propagacji i konkatenacji? Jakie są przyczyny jego powstawania oraz sposoby minimalizacji tego rodzaju opóźnień . - Co to jest Glitch? W jakich obwodach występuję.