Układy Cyfrowe

Wstęp

Układy cyfrowe to układy operujące na wartościach dyskretnych. Budowane są w oparciu o bramki logiczne realizujące podstawowe operacje logiczne: iloczyn logiczny (AND, NAND), sumę logiczną (OR, NOR), negację NOT i różnicę symetryczną (XOR). Tworzone są układy o logice sekwencyjnej i kombinacyjnej. Początkowo układy cyfrowe były realizowane jako układy mechaniczne, następnie elektromechaniczne, współcześnie tworzone są układy elektroniczne. Złożone układy cyfrowe wykonuje się je w postaci układów scalonych.

Zalety i wady

Zalety układów cyfrowych:

  • Możliwość bezstratnego kodowania i przesyłania informacji.
  • Uproszczony zapis i przechowywanie informacji cyfrowej.
  • Mniejsza wrażliwość na zakłócenia elektryczne.
  • Możliwość tworzenia układów programowalnych, których działanie określa program komputerowy (mikroprocesor, koprocesor).

Wady układów cyfrowych:

  • Skomplikowanie zarówno na poziomie elektrycznym, jak i logicznym; obecnie ich projektowanie wspomagają komputery.
  • Mimo większej odporności na zakłócenia, wykrywanie przekłamań stanów logicznych, np. pojawienie się wartości 0 zamiast spodziewanej 1, wymaga dodatkowych zabezpieczeń choć nie zawsze jest możliwe wykrycie błędu; jeszcze większy problem stanowi ewentualne odtworzenie oryginalnej informacji.

Rodzaje układów cyfrowych

Podział ze względu na sposób przetwarzania informacji:

  • Układy kombinacyjne – układy „bez pamięci”, w których sygnały wyjściowe są zawsze takie same dla określonych sygnałów wejściowych.
  • Układy sekwencyjne – układy „z pamięcią”, w których stan wyjść zależy nie tylko od aktualnego stanu wejść, ale również od stanów poprzednich.

Ze względu na technologię w jakiej wykonano bramki logiczne:

  • bipolarne:
    • TTL (Transistor-Transistor Logic)
    • ECL (Emitter Coupled Logic)
    • I²L (integrated Injection Logic)
  • unipolarne:
    • NMOS i PMOS
    • CMOS (Complementary MOS)

Istnieją także programowalne układy cyfrowe. W odróżnieniu od programowalnych mikroprocesorów, w ich przypadku programowana jest fizyczna struktura oparta na:

  • matrycach:
    • PLA
    • PAL
  • komórkach:
    • SPLD
    • CPLD
    • FPGA

Działanie układów cyfrowych

Układy cyfrowe operują na dwóch przedziałach napięć: stan wysoki (oznaczany literą H) i stan niski (oznaczany literą L). Pomiędzy tymi przedziałami jest przerwa, dla której nie ma określonej wartości liczbowej - jeśli napięcie przyjmie wartość z tego przedziału, to stan logiczny jest nieokreślony. Jeśli do napięć wysokich zostanie przyporządkowana logiczna jedynka, a do niskich logiczne zero, to układ pracuje w logice dodatniej (pozytywnej), w przeciwnym razie jest to logika ujemna (negatywna).

Układy cyfrowe zazwyczaj posiadają kilka wejść i wyjść. W zależności od tego jakie stany są na wejściach, otrzymamy różne wartości na wyjściach.

Zastosowanie układów cyfrowych

Układy cyfrowe są wykorzystywane w wielu urządzeniach elektronicznych. Do takich urządzeń należą między innymi:

Kodery

Koder priorytetowy

Koder także należy do klasy układów kombinacyjnych. Jest to układ posiadający n wejść oraz k=log2n wyjść (czyli n = 2k). Zamienia on kod "1 z n" na naturalny kod binarny o długości k, czyli służy on do przedstawiania informacji tylko jednego aktywnego wejścia na postać binarną. Ponieważ istnieje fizyczna możliwość aktywacji więcej niż jednego wejścia, musi istnieć możliwość uznania tylko jednego z nich np. poprzez ustalenie priorytetów wejść.

Jeśli na wejście strobujące (blokujące) S (ang. strobe) kodera podane zostanie logiczne zero, to wyjścia ki przyjmują określony stan logiczny (zwykle również zero), niezależny od stanu wejść n. Stosuje się to np. do przekształcania danych z zapisu analogowego na cyfrowy.

Koder priorytetowy to układ kombinacyjny, w którym kodem wejściowym jest kod „x z n” oraz posiada ustalone priorytety poszczególnych wejść.

Dekodery

Dekoder to układ kombinacyjny. Posiada on n wejść oraz k=2n wyjść. Jego działanie polega na zamianie naturalnego kodu binarnego (o długości n), lub każdego innego kodu, na kod „1 z k” (o długości k). Działa odwrotnie do kodera, tzn. zamienia kod binarny na jego reprezentację w postaci tylko jednego wybranego wyjścia. W zależności od ilości wyjść nazywa się go dekoderem 1 z N.

Prosty dekoder
Wejścia Wyjścia
A1 A2 D0 D1 D2 D3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
Tablica prawdy dekodera z 2-bitowego kodu dwójkowego na kod 1 z 4.

Multipleksery

Multiplekser

Multiplekser (MUX) to układ kombinacyjny, służący do wyboru jednego z kilku dostępnych sygnałów wejściowych i przekazania go na wyjście.

Multiplekser jest układem komutacyjnym (przełączającym), posiadającym k wejść informacyjnych (zwanych też wejściami danych x0, x1, …, xk-1, zazwyczaj jest ich 2n), n wejść adresowych (sterujących a0, a1, …, an-1) i jedno wyjście y. Posiada też wejście sterujące działaniem układu oznaczane jako S (wejście strobujące/zegarowe, ang. strobe) lub e (ang. enable).

Działanie multipleksera polega na przekazaniu wartości jednego z wejść xi na wyjście y. Numer i tego wejścia jest podawany na linie adresowe a0, a1, …, an-1. Jeśli na wejście strobujące (blokujące) S podane zostanie logiczne „0”, to wyjście y przyjmuje określony stan logiczny (zazwyczaj również zero), niezależny od stanu wejść danych X i adresowych A.

S x0 x1 y
0 1 1 1
0 1
0 1 0
0 0
1 1 1 1
0 0
0 1 1
0 0
Tablica prawdy dla multipleksera z dwoma wejściami danych x i wejściem strobującym S.

Multiplekser można zbudować także z dekodera o takiej liczbie wejść, ile wejść adresowych posiada dany multiplekser oraz bramek AND. Do jednego wejścia każdej bramki AND należy podłączyć odpowiednie wyjście dekodera, do drugiego – odpowiednią linię wejściową xi. Wyjścia wszystkich bramek AND należy podłączyć do wejść bramki OR.

Demultipleksery

Symbol graficzny demultipleksera

Demultiplekser (w skrócie DEMUX) – układ kombinacyjny, posiadający jedno wejście x, n wejść adresowych (sterujących a0, a1, ..., an-1) oraz k wyjść danych (y0, y1, ..., yk-1, zazwyczaj k=2n), którego działanie polega na przekazaniu sygnału z wejścia x na jedno z wyjść y.

Wyjście, dla danych wejściowych x, jest określane przez podanie jego numeru na linie adresowe a0, a1, ..., an-1 Na pozostałych wyjściach jest ustalany stan zera logicznego. Zazwyczaj spotykane są demultipleksery o wyjściach zanegowanych, czyli na wybranym wyjściu pojawi się stan -x, a na wszystkich pozostałych logiczna „1”. Demultipleksery o wyjściach prostych są znacznie rzadziej stosowane.

Jeśli na wejście strobujące/zegarowe (zegar (generator)) (blokujące, ang. strobe) S podane zostanie logiczne „0”, to wyjścia y przyjmują określony stan logiczny (zwykle zero dla demultiplekserów o wyjściach prostych), niezależny od stanu wejścia x oraz od wejść adresowych A.

Sumatory

Sumator pełny 1-bitowy
Sumator półpełny

Sumator to układ kombinacyjny, który wykonuje operacje dodawania liczb dwójkowych. Sumatory dzielą się na:

  • szeregowe (serial adder): podczas każdej operacji dodają one dwa bity składników oraz bit przeniesienia.
  • równoległe (parallel adder): wielopozycyjne, dodają do siebie jednocześnie bity ze wszystkich pozycji, a przeniesienie realizowane jest w zależności od sposobu połączenia symulatorów jednobitowych.

Sumatory równoległe podzielone są na dwie grupy:

  • z przeniesieniami szeregowymi (ripple-carry adder),
  • z przeniesieniami równoległymi (carry-look-ahead adder).

Każdy sumator charakteryzuje się typem ukończenia:

  • sumator pełny (full adder)
  • sumator półpełny (half adder)

Każdy sumator pełny składa się z dwóch sumatorów półpełnych.

ai bi si ci
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Tablica prawdy dla sumatora półpełnego.
  • ai - pierwszy składnik sumy,
  • bi - drugi składnik sumy,
  • si - suma,
  • ci - przeniesienie.

Symulator układu

Poniższy symulator przedstawia działanie kilku wybranych układów cyfrowych.

Model zapisany w formacie JSON:

Twórcą symulatora układu cyfrowego jest producent oprogramowania Northwoods Software. Wykonany został przy użyciu biblioteki GoJS ich autorstwa. Umożliwia użytkownikowi tworzenie obwodów za pomocą bramek i przewodów, które są aktualizowane za każdym razem, gdy łącze jest modyfikowane.

Link do oficjalnej strony: https://gojs.net/latest/samples/logicCircuit.html

Źródła

  • Bity w elektronice , mgr Jerzy Wałaszek, Serwis Edukacyjny w I-LO w Tarnowie, 2021 [dostęp 27.02.2021]
  • Układ cyfrowy , Wikipedia, wolna encyklopedia [dostęp 22.02.2021]
  • Koder , Wikipedia, wolna encyklopedia [dostęp 23.02.2021]
  • Dekoder , Wikipedia, wolna encyklopedia [dostęp 23.02.2021]
  • Multiplekser , Wikipedia, wolna encyklopedia [dostęp 24.02.2021]
  • Demultiplekser , Wikipedia, wolna encyklopedia [dostęp 25.02.2021]
  • Sumator , Wikipedia, wolna encyklopedia [dostęp 25.02.2021]
  • Przerzutnik typu RS , Wikipedia, wolna encyklopedia [dostęp 26.02.2021]