HOME

Technika TTL, podstawowe operacje i funktory logiczne, projektowanie układów kombinacyjnych, zasada minimalizacji funkcji


Spis treści:

  1. Wstep
  2. Program ćwiczenia
  3. Zawartość ćwiczenia
    1. Bramki NAND i NOR z pełnym wyjściem
    2. Bramka NAND z otwartym kolektorem
    3. Bramki AND-OR-INVERT
    4. Bramka EOR
    5. Zasada syntezy układów kombinacyjnych. Metoda Karnaugha.
  4. Spis literatury

  1. Wstęp

    Celem ćwiczenia jest poznanie możliwości realizacji dowolnych wyrażeń logicznych na podstawie wybranych elementów scalonych małej skali integracji. Każdy tzw. kompletny (funkcjonalnie pełny) zestaw funktorów logicznych musi zapewniać możliwość realizacji dowolnej funkcji. Zestaw taki realizuje trzy podstawowe operacje logiczne: sumę, iloczyn i negację, do których można sprowadzić każde wyrażenie logiczne[6,7]
    Zagadnienie praktycznej realizacji zadanej funkcji logicznej rozważa się w dwóch aspektach:
    - z punktu widzenia przypadkowego zestawu wolnych funktorów,
    - z punktu widzenia doboru właściwych funktorów, aby otrzymany układ zawierał minimalną liczbę elementów scalonych.
    W ćwiczeniu zostaną także omówione zagadnienia związane projektowaniem układów kombinacyjnych metodą Karnaugha.

  2. Program ćwiczenia:

    1. Zrealizować zadaną przez prowadzącego ćwiczeni funkcję logiczną:
      1. za pomocą elementów NAND,
      2. za pomocą elementów NOR,
      3. stosując elementy NAND i NOR.
    2. Sprawdzić zasadę "sumowania na drucie":
      1. zrealizować przy użyciu dwuwejściowej bramki NAND-OC (401) zadane przez prowadzącego ćwiczenie funkcje logiczne,
      2. sprawdzić działanie układu przy niewłaściwie dobranych rezystorach Rz.
    3. Zrealizować na podstawie elementów 450 podstawowe funkcje logiczne: AND, OR, NAND, NOR ...
    4. Stosując element AND-OR-INFVERT z ekspanderem, zrealizować zadane przez prowadzącego ćwiczenie funkcje logiczne.
    5. Sprawdzić, z jakimi funkcjami logicznymi Exclusive-OR tworzy układ funkcjonalnie pełny. Zrealizować zadaną przez prowadzącego ćwiczenia funkcję logiczną.
    6. Określić funkcje przełączające zadanego układu kombinacyjnego. Zmontować układ i sprawdzić jego działanie.

  3. Zawartość ćwiczenia:

    1. Bramki NAND i NOR z pełnym wyjściem

      Podstawowym funktorem kombinacyjnym w technice TTL jest bramka NAND. Schemat standardowej bramki NAND z tzw. pełnym kolektorem przedstawiono na rys. 6.1 .


      Rys. 6.1. Schemat bramki NAND z pełnym wyjściem

      Niniejsze ćwiczenie jest poświęcone funkcjonalnym możliwościom scalonych elementów logicznych. podstawowy układ TTL przedstawiony na rys. 6.2 jest modyfikacją układu DTL, w którym iloczyn diodowy zastąpiono układem tranzystorowym. Tranzystor wieloemiterowy można wyrazić diodowym schematem zastępczym (rys. 6.2b). Tak więc pierwszy stopień T1 realizuje koniunkcję. Jeśli choć na jednym wejściu pojawi się "0", to na wyjściu (pierwszego stopnia) otrzymamy również "0". Drugi stopień tranzystora T4 jest inwertorem, czyli że na wyjściu drugiego stopnia otrzymamy negację iloczynu (NAND). Układ przedstawiony na rys. 6.1 jest znacznie bardziej złożony niż układ z rys. 6.2.


      Rys. 6.2. Podstawowe układy TTL: a)schemat, b)schemat zastępczy tranzystora dwuemiterowego) Schemat logiczny tego wyrażenia przedstawiono na rys. 6.3a.

      Zmiany w stosunku do układu z rys. 6.2a wprowadzono w celu zwiększenia obciążalności bramki. Zastąpienie wcześniejszej techniki DTL techniką TTL zostało podyktowane względami technologicznymi. Uzyskano przy tym zwiększenie szybkości propagacji sygnału przez bramkę oraz zmniejszono koszty produkcji [2,5].
      Najczęściej stosowane bramki (NAND) TTL to:
      - dwuwejściowe - 400,
      - trzywejściowe - 410,
      - czterowejściowe - 420,
      - ośmiowejściowe - 430.
      Funktor NAND jest układem funkcjonalnym pełnym, tzn. że za jego pomocą można realizować każdą funkcję logiczną.
      Realizacja sumy za pomocą funktora NAND:
      x1+x2= ~~(x1+x2) =~(~x1 * ~x2).


      Rys. 6.3. Realizacja NAND: a)sumy logicznej, b) iloczynu logicznego

      Realizacja iloczynu za pomocą funktora NAND:
      x1*x2= ~~(x1*x2).
      Schemat logiczny tego wyrażenia przedstawiono na rys. 6.3b.
      Podobną dyskusję można przeprowadzić dla funktora NOR (rys. 2.4):
      - suma logiczna x1 + x2 = ~~(x1 + x2),
      - iloczyn logiczny x1 * x2 = ~(~x1 + ~x2).


      Rys. 6.4. Realizacja NOR: a) sumy logicznej, b) iloczynu logicznego

      Należy zwrócić uwagę na fakt równoważności schematów z rys. 6.5 a) i b). Własność ta może być wykorzystana w syntezie funkcji logicznych. Zapisując funkcję logiczną z warunków działania ( z siatki Karnaugha [6.7]), otrzymujemy postać będącą sumą iloczynów. Zgodnie ze wspomnianą zasadą równoważności w miejsce elementów sumy i iloczynów można wstawić elementy NAND bez zmiany funkcji.


      Rys. 6.5. Równoważność sieci dwupoziomowej: a) NAND z AND-OR, b) NOR z OR-AND

      Przykład 6.1

      Za pomocą elementów NAND zrealizować funkcję zadaną siatką Karnaugha przedstawioną na rys. 6.6a.


      Rys. 6.6. Funkcja logiczna z przykładu 6.1: a) siatka zależności, b) schemat logiczny

      Z siatki tej otrzymujemy funkcję: F= ~a~cd + bcd + a~d. Nie dokonując dodatkowych przekształceń, można stwierdzić, że funkcję tę da się zrealizować za pomocą trzech trzywejściowych i jednego dwuwejściowego funktora NAND. Jeśli dysponujemy tylko prostymi zmiennymi, to należy użyć trzech inwertorów. Funkcję powyższą można przedstawić schematem jak na rys. 6.6b.
      Podobne uproszczenia wynikają z równoważności przedstawionej na rys. 6.5b. Wyrażenia otrzymane z warunków niedziałania można przedstawić układem dwupoziomowym OR-AND lub równoważnym układem NOR. Bramka NOR, podobnie jak bramka NAND, tworzy układ funkcjonalnie pełny, pozwalając na realizację dowolnej funkcji logicznej, mając do dyspozycji wyłącznie funktory NOR. Schemat ideowy dwuwejściowej bramki NOR przedstawiono na rys. 6.7. Układ ten jest nieco bardziej złożony od bramki NAND.
      Obwód T1' - T2' steruje wyjściem T3 - T4 podobnie (alternatywnie) jak obwód T1 - T2. Tranzystory T2 i T2' są względem siebie w relacji OR, inwersja występuje na stopniu wyjściowym, tak jak dla bramki NAND.


      Rys. 6.7. Schemat dwuwejściowej bramki NOR

    2. Bramka NAND z otwartym kolektorem

      W układach cyfrowych stosuje się czasem wspólne przewody transmisyjne, dla kilku bloków funkcjonalnych, zwane magistralą [8]. Ideę tę ilustruje układ przedstawiony na rys. 6.8. Do pojedynczego przewodu jest podłączonych kilka elementów nadających. Jeśli jeden z nadajników zostanie uruchomiony, to potencjał wspólnego przewodu osiąga niski poziom.


      Rys. 6.8. Schemat ideowy układu realizującego "sumowanie na drucie"


      Rys. 6.9. Schemat bramki NAND z otwartym kolektorem


      Rys. 6.10. "Sumowanie na drucie": a) sterowanie magistralą, b) zadana funkcja logiczna

      Gdy niski poziom napięcia na przewodzie magistrali uznamy za aktywny, wtedy mamy do czynienia z funkcją OR na "drucie" magistrali - "sumowanie na drucie" (ang. wired OR). Dla dodatniej konwencji sygnałów logicznych (poziom wysoki odpowiada jedynce logicznej) wyrażenie Y=~x1~x2 ... ~xn. Nie jest to, rzecz jasna, suma logiczna, jednak tradycyjnie mówi się o "sumowaniu na drucie".
      oprócz bramek z pełnym kolektorem produkuje się bramki z kolektorem otwartym (ang. Open Collector). Schemat ideowy bramki NAND-OC(z otwartym kolektorem) przedstawiono na rys. 6.9. Bramki z otwartym kolektorem stosuje się w realizacji "sumowania na drucie". Rys. 6.10 przedstawia dwa przykłady wykorzystania omawianej idei sumowania. Przykład a) jest rozwiązaniem podobnym do układu sterowania magistralą przedstawionego na rys. 6.8. Przykład b) pokazuje realizację zadanej funkcji logicznej na podstawie czterech bramek NAND-OC.
      Niemal każdy typ bramki logicznej TTL z pełnym kolektorem ma swój odpowiednik bramki z otwartym kolektorem. Na rys. 6.11 przedstawiono układ "sumowanie na drucie" zawierający różne bramki OC, na wyjściu którego otrzymujemy wyrażenie:
      Y= ~(x1x2) ~(x3 + x4)~x5 = ~(x1x2) ~x3 ~x4 ~x5
      Stosując bramki z otwartym kolektorem, należy mieć na uwadze fakt, że ze wzrostem liczby bramek m podłączonych do rezystancji Rz maleje obciążalność wyjścia układu. Aby zachować poziom jedynki logicznej i standardowej obciążalności, trzeba odpowiednio dobrać wartość rezystora Rz.

      Liczba
      obciążających
      wejść
      Liczba zwartych bramek
      12345671-7
      18965481432912500201516861452319
      27878448231322407195416451420359
      37027419329882321189716041390410
      46341393928572241184515661361470
      55777371427362166179315291333575
      65306351326262069174414941306718
      74905333325242031169914601280958
      845613170242910691656xx1437
      942623023xxxxx2875
      104000xxxxxx400
      maksimumminimum
      Tablica 6.1 Wartości rezystancji Rz(m) w układzie suma (iloczyn) galwaniczna


      Rys. 6.11. Przykład "sumowania na drucie"

      W tablicy 6.1 przedstawiono wartości (w omach) rezystora Rz w zależności od liczby zwartych bramek OC, pracujących na wspólny przewód, oraz od liczby obciążających ten przewód wejść.

    3. Bramki AND-OR-INVERT

      Funkcję AND-OR-INVERT (inaczej AND-NOR) realizują układy NAND-OC. Funkcje tego typu występują nie tylko w przypadku "sumowania na drucie". Można je często spotkać w: układach arytmetycznych, licznikach, rejestrach, różnego rodzaju multiplekserach itp. Z tego powodu została ona potraktowana jako typowy blok produkowany jako element scalony. Schemat ideowy bramki AND-OR-INVERT (450) pokazano na rys. 6.12. Na schemacie zaznaczono dodatkowe wejścia dla ekspandera (460) rozszerzającego liczbę wejść bramki. Schemat ideowy czterowejściowego ekspandera przedstawiono na rys. 6.13. Liczba ekspanderów, jaką można dołączyć do elementu podstawowego, jest ograniczona. Element bez ekspandera ma taki sam czas propagacji jak element NAND. Każdy dołączony ekspander zwiększa ten czas o kilka nanosekund. Na rys. 6.14 przedstawiono układ, w którym liczbę bloków AND poszerzono do czterech.


      Rys. 6.12. Schemat bramki AND-OR-INVERT 450


      Rys. 6.13. (z lewej) Schemat ideowy ekspandera 460.
      Rys. 6.14. (z prawej) Bramka AND-OR-INVERT z dwoma ekspanderami

    4. Bramka EOR

      Do typowych funkcji bardzo często występujących w różnych układach należy zaliczyć sumę modulo 2, zwaną również alternatywą wyłączającą [6,7] (ang. Exclusive-OR). W literaturze spotyka się też oprócz wymienionych nazw skróty: XOR i EOR. Schemat ideowy bramki EOR (SN 7486) oraz jej symbol przedstawiono na rys. 6.15. Element o dwóch wejściach x1 i x2 realizuje funkcję:
      Y = x1~x2 + ~x1 x2= x1 (+) x2.
      Gdy na wejściu x1 zadamy wartość 1, wtedy:
      Y= 1 ~x2 + 0 x2 = ~x2
      Stała 1 zamienia EOR w inwentor. EOR. mimo że jest elementem bardziej złożonym od bramki NAND czy NOR, sam nie tworzy układu funkcjonalnie pełnego. Oprócz inwersji potrzebny jest dodatkowo funktor AND lub OR.


      Rys. 6.15. Bramka EOR: a) schemat ideowy, b) symbol bramki

    5. Zasada syntezy układów kombinacyjnych. Metoda Karnaugha.

      Funkcja przełączająca może być określona z wykresów czasowych, tablic wartości, opisu słownego itp. Najprostszym i najczęściej stosowanym rodzajem opisu układu kombinacyjnego jest tablica wartości [1,3] (tablica zależności [2]), która ujmuje zależność wartości zmiennych wyjściowych Y układu kombinacyjnego od wartości zmiennych wejściowych X. Funkcja przełączająca jest opisana przez przyporządkowanie kolejnym kombinacjom wartości zmiennych wejściowych odpowiednich wartości zmiennych wyjściowych. Zależność taką zilustrowano przykładem przedstawionym w tablicy 6.2.

      Lp.x3x2x1y1y2
      0
      1
      2
      3
      4
      5
      6
      7
      0 0 0
      0 0 1
      0 1 0
      0 1 1
      1 0 0
      1 0 1
      1 1 0
      1 1 1
      1 1
      1 0
      0 1
      1 1
      1 1
      0 1
      0 0
      0 0
      Tablica 6.2 Zależność wartości zmiennych wyjściowych od wartości zmiennych wejściowych.

      Zmienna y1 przyjmuje wartość 1 dla następujących kombinacji wartości zmiennych wejściowych:
      x3x2x1 = (000,001,011,100),
      co zapisujemy: y1 = E(000,001,011,100)x3x2x1. Są to tzw. warunki działania lub załączenia zmiennej y1. Podobnie zapisujemy warunki działania dla drugiej zmiennej wyjściowej:
      y2=E(000,010,011,100,101)x3x2x1.
      Pozostałe kombinacje wartości zmiennych wejściowych reprezentują warunki niedziałania, które zapisujemy:
      y1 = pi(010,101,110,111)x3x2x1,
      y2 = pi(001,110,111)x3x2x1.
      Zbiory E i pi zwane są również (odpowiednio) zbiorami konstytuent jedynki i konstytuent zera. poszczególnym kombinacjom wartości zmiennych w tablicy 6.2 można przyporządkować cyfry dziesiętne, wtedy warunki działania i niedziałania dla zmiennych wyjściowych zapisać można w postaci dziesiętnej:
      y1 = E(0,1,3,4)x3x2x1, y2 = E(0,2,3,4,5)x3x2x1,
      y1 = pi(2,5,6,7)x3x2x1, y2 = pi(1,6,7)x3x2x1.
      Numeracja dziesiętna w tablicy zależności jest sporządzona według pewnych zasad pozwalających na jednoznaczne odtwarzanie kombinacji wartości zmiennych wejściowych. W systemach zliczających (dziesiętnych lub dwójkowych) pozycja zmieniająca się najczęściej jest zwana najmłodszą, a pozycja zmieniająca swoje wartości najrzadziej jest zwana pozycją najstarszą. W tablicy 6.2 pozycją najmłodszą jest x1, a najstarszą x3. Jeśli poszczególnym pozycjom zmiennych wejściowych przyporządkujemy odpowiednie wagi dziesiętne (np. pozycji najmłodszej 20, a pozycji najstarszej wagę 2n-1, gdzie n jest liczbą zmiennych), to zapis kombinacji wartości zmiennych z postaci zero-jedynkowej (binarnej) można transponować do postaci dziesiętnej. Transpozycja ta odbywa się w ten sposób, że sumuje się wagi na pozycjach, w których zmienne przyjmują wartość 1. Na przykład kombinacja 011 odpowiada wartości 3, kombinacja 101 odpowiada wartości 5 itp. Omówione dwie formy zapisu funkcji przełączających znane są w literaturze pod nazwą (odpowiednio): numerycznego zapisu binarnego i numerycznego zapisu dziesiętnego. Z warunków działania lub niedziałania funkcji przełączającej możemy utworzyć postać kanoniczną wyrażenia y = f(x1,x2,...,xn):
      1. dysjunkcyjną (alternatywną)
        y1 = ~x3~x2~x1 + ~x3~x2x1 + ~x3x2x1 + x3~x2~x1,
        y2 = ~x3~x2~x1 + ~x3x2~x1 + ~x3x2x1 + x3~x2~x1 + x3~x2x1.
      2. koniunkcyjną
        y1 = (x3 + ~x2 + x1) (~x3 + x2 + ~x1) (~x3 +~x2 + x1) (~x3 + ~x2 + ~x1) ,
        y2 = (x3 + x2 + ~x1) (~x3 + ~x2 + x1) (~x3 + ~x2 + ~x1).

      Przedstawione wyżej wyrażenia podlegają prawom dwuelementowej algebry Boole'a [1,2,3]. Stosując prawo łączności, można dokonać uproszczeń powyższych wyrażeń:
      y1 = ~x3x1(~x2 + x2) + ~x2~x1(~x3 +x3),
      y2 = ~x3~x1(~x2 + x2) + ~x3x2(~x1 + x1) + x3~x2(~x1 + x1),
      ponieważ:
      ~xi + xi = 1,
      y1 = ~x3x1 + ~x2~x1,
      y2 = ~x3~x1 + ~x3x2 + x3x2.
      Dokonano w ten sposób minimalizacji algebraicznej funkcji przełączających dla zmiennych y1 i y2. Algebraiczna (ręczna) minimalizacja wyrażeń bulowskich jest operacją bardzo żmudną, szczególnie dla bardziej złożonych funkcji. Jak widać na powyższym przykładzie, proces minimalizacji funkcji przełączającej polega na łączeniu konstytuent różniących się wartością jednej zmiennej, zwanych dalej konstytuentami sąsiednimi. Wyszukiwanie kosntytuent sąsiednich jest operacją bardzo prostą, gdy funkcja zostanie przedstawiona siatką Karnaugha..


      Rys. 6.16. Siatki Karnaugha dla wyrażeń y1 i y2: a,b - konstytuenty sąsiednie.

      Na rys. 6.16 przedstawiono siatkę Karnaugha dla zmiennych wyjściowych y1 i y2 z powyższych przykładów. W siatkach tych zakreślono grupy konstytuent sąsiednich. W siatce pierwszej wartość y1 w grupe a jest niezależna od wartości zmiennej x3, natomiast w grupie b jest niezależna od wartości zmiennej x2. Stąd otrzymamy wyrażenia uproszczone:
      y1 = ~x2~x1 + ~x3x1,
      y2 = ~x2~x1 = x3~x2 + ~x3x2.
      Jak można zauważyć, kolumnom siatek zostały przypisane wartości zmiennych w kodzie przestawnym (cyklicznym), zwanym kodem cyklicznym Graya. Dzięki takiemu opisowi kolumn ( i wierszy ) sąsiedztwo logiczne konstytuent staje się sąsiedztwem graficznym, a minimalizacja wyrażeń logicznych sprowadza się do wyszukiwania konstytuent graficznie sąsiednich. Proces ręcznego sklejania wyrażeń logicznych odbywa się iteracyjnie, jak długo można znaleźć wyrażenia sąsiednie. W siatce Karnaugha wyrażenia minimalne otrzymujemy wtedy, gdy stosujemy następujące zasady:
      • wyszukujemy grupy o największej liczbie konstytuent,
      • liczba konstytuent równa się 2p ( gdzie: p<N),
      • poszczególne konstytuenty muszą być cyklicznie sąsiednie (tzn. pierwsza musi być sąsiednia z drugą, druga z trzecią, ostatnia z pierwszą).



      Rys. 6.17. Przykłady tworzenia grup konstytuent w siatkach zależności: a) dla trzech zmiennych, b) dla czterech zmiennych, c) dla pięciu zmiennych.

      Na rys. 6.17 przedstawiono kilka przykładów prawidłowo utworzonych grup konstytuent w siatkach Karnaugha. Dotychczas omawiano przypadek w pełni określonych funkcji przełączających, tzn. takich, dla których każdej kombinacji wartości zmiennych wejściowych odpowiadają określone wartości zmiennych wyjściowych. Jeśli dla pewnych kombinacji wartości zmiennych wejściowych nie można określić wartości zmiennej wyjściowej, mówimy, że funkcja ta nie jest w pełni określona. Nie określone wartości zmiennych wyjściowych zapisujemy fi( fi równoważne 0 i 1). Przypadek nieokreśloności funkcji przełączającej wystąpi wtedy, gdy pewna kombinacja wartości zmiennych wejściowych nie jest możliwa do osiągnięcia. W takich przypadkach wartość fi możemy traktować dowolnie jako stan działania lub niedziałania dla funkcji przełączającej, tak aby uzyskać najprostszą postać minimalizowanej funkcji [1,2,3].

  4. Literatura

    [1] W. Binkowski, H. Krzyż, J. Piecha: Elektronika analogowa i cyfrowa w zadaniach. Katowice Wydawnictwo Uniwersytetu śląskiego 1981.
    [2] J. Millman, C. Halkias: Układy scalone analogowe i cyfrowe. Warszawa WNT 1976.
    [3] P. Misiurewicz, M. Grzybek: Półprzewodnikowe układy logiczne TTL. Warszawa WNT 1979.
    [4] J. Kalisz: Cyfrowe układy scalone w technice systemowej. Warszawa MON 1977.
    [5] M. Łakomy, J. Zabrodzki: Cyfrowe układy scalone TTL. Warszawa PWN 1974.
    [6] J. Siwiński: Układy przełączające w automatyce. Warszawa WNT 1980.
    [7] W. Traczyk: Układy cyfrowe automatyki. Warszawa WNT 1974.
    [8] F. Wagner: Projektowanie urządzeń cyfrowych. Warszawa WNT 1978.
    [9] W. Majewski: układy logiczne. Warszawa WNT 1974.

    Do góry