Elektronika cyfrowa-2, WSTĘP


ELEKTRONIKA CYFROWA

SPIS TREŚCI

1. WPROWADZENIE

  1. WPROWADZENIE

    1. Systemy liczbowe

Cyframi arabskimi są znaki: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Cyfry te służą do zapisywania liczb.

Do podstawowych systemów zapisywania liczb należą systemy pozycyjno - wagowe, w których wartość cyfry zależy od miejsca, czyli pozycji, jaką ta cyfra zajmuje w napisanej liczbie. Każda pozycja ma określoną stałą wagę liczbową (znaczenie).

Oznaczając podstawę dowolnego pozycyjnego systemu liczbowego przez p, można każdą n - cyfrową liczbę całkowitą przedstawić w postaci szeregu:

0x01 graphic

lub w skróconej postaci:

0x01 graphic

gdzie:

p - podstawa systemu, którą jest liczba całkowita dodatnia,

n - numer pozycji

ai - cyfry z zakresu od 0 do p - 1.

Pierwszej cyfrze w lewo od przecinka przypisuje się wagę p0, drugiej − p1, a trzeciej − p2. Natomiast cyfrom zapisywanym w prawo od przecinka przypisuje się kolejno następujące wagi: pierwszej − p-1, drugiej − p-2, trzeciej p-3 itd. (patrz przykład 1.1 i 1.2).

W systemach cyfrowych bardzo ważną rolę odgrywają zbiory znaków złożone z 2, 8, 10 i 16 elementów. Zbiory takie nazywamy odpowiednio:

Najważniejszą rolę w systemach cyfrowych odgrywa zbiór dwójkowy, ponieważ układy podstawowe, z których zbudowane są te systemy, mają naturę dwójkową.

W tablicy 1.1 przedstawiono cyfry używane w systemach o p = 2, 3, 8, 10 i l6. Zauważmy, że dla p > 10 należy wprowadzić dodatkowe znaki.

Tablica 1.1

Podstawa p

System liczbowy

Cyfry używane w systemie liczbowym

2

Dwójkowy

0, 1

3

Trójkowy

0, 1, 2

8

Ósemkowy

0, 1, 2, 3, 4, 5, 6, 7

10

Dziesiętny

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

16

Szesnastkowy

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Tablica 1.2 Przykłady liczb wyrażonych w różnych systemach

System dziesiętny

System dwójkowy

System

ósemkowy

System

szesnastkowy

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

17

10001

21

11

18

10010

22

12

19

10011

23

13

20

10100

24

14

100

1100100

144

64

1000

1111101000

1750

3E8

      1. Dziesiętny system liczbowy

Do zapisania dowolnej liczby w powszechnie stosowanym dziesiętnym systemie liczbowym wykorzystuje się dziesięć (wszystkie) cyfr arabskich. W dziesiętnym systemie liczbowym podstawa systemu p = 10. Kilka wybranych liczb dziesiętnych przedstawiono w pierwszej kolumnie tablicy 1.2.

Przykład 1.1:

Liczbę 15, zapisana w systemie dziesiętnym można zapisać:

15 = (1 x 101)+(5 x 100)

Liczba ta składa się z elementów o wadze 100 = 1 i jednego elementu o wadze 101 = 10

Przykład 1.2:

Zapis:

574, 2810

jest skróconym zapisem wyrażenia :

(5 x 102)+(7 x 101)+(4 x 100)+(2 x 10-1)+(8 x 10-2)

W tym przykładzie 5 jest na pozycji setek (102), 7 na pozycji dziesiątek (101), 4 na pozycji jedności (100), 2 na pozycji dziesiętnych (10-1) i 8 na pozycji setnych (10-2).

      1. Dwójkowy system liczbowy

Najprostszym systemem liczbowym wykorzystującym zapis pozycyjny jest system dwójkowy. Elementami zbioru znaków systemu dwójkowego jest para cyfr: 0 i 1. Znak dwójkowy (ang. Binary Digit) często jest nazywany w skrócie bit. W dwójkowym systemie liczbowym podstawa systemu p = 2. Kilka wybranych liczb dwójkowych przedstawiono w drugiej kolumnie tablicy 1.2.

Przykład 1.3:

Zapis:

11012

oznacza liczbę powstałą z sumowania

(1 x 23)+(1 x 22)+(0 x 21)+(1 x 20) = 1310

Przykład 1.4:

Zapis:

1001, 1 1012

jest zapisem skróconym wyrażenia:

(1 x 23)+(0 x 22)+(0 x 21)+(1 x 20)+(1 x 2-1)+(1 x 2-2)+(0 x 2-3)+(1 x 2-4) = 9,812510

Przykład ten może posłużyć również jako ilustracja konwersji liczby dwójkowej na równoważną jej liczbę dziesiętną.

Konwersji dziesiętno - dwójkowej można dokonać na drodze wielokrotnego dzielenia na 2 całkowitej części oraz mnożenia przez 2 ułamkowej części przetwarzanej liczby dziesiętnej.

Przykład 1.5:

Niech N10 = 9,8125

9 : 2 = 4 reszta 1 (LSB)

0x08 graphic
4 : 2 = 2 0

2 : 2 = 1 0

1 : 2 = 0 1 (MSB)

0,8125 x 2 = 1,6250 = 0,6250 nadmiar 1 (MSB)

0x08 graphic
0,6250 x 2 = 1,2500 = 0,2500 1

0,2500 x 2 = 0,5000 = 0,5000 0

0,5000 x 2 = 1,0000 = 0,0000 1 (LSB)

Ostatecznie otrzymujemy:

9,812510 = 1001,11012

      1. Szesnastkowy system liczbowy

Szesnastkowy system liczbowy jest to taki system pozycyjny, którego podstawa p = 24. Do przedstawienia liczb w tym systemie potrzebnych jest 16 znaków. Dziesięć znaków stanowią cyfry arabskie, a pozostałe 6 znaków pierwsze litery alfabetu: A reprezentuje 10, B reprezentuje 11, ..., F reprezentuje l5. Kilka wybranych liczb szesnastkowych przedstawiono w czwartej kolumnie tablicy 1.2.

Przykład 1.6:

Niech liczba wyrażona w systemie szesnastkowym ma postać:

F3A, C816

Równoważną jej liczbą dziesiętną jest liczba o postaci:.

(15 x 162) + (3 x 161) + (10 x 160) + (12 x 16-1) + (8 x 16-2) = 3898,7812510

Przykład 1.7:

Liczba zapisana w systemie heksadecymalnym ma postać: 3F16. Liczba ta oznacza liczbę powstałą przez sumowanie:

(3 x 161) + (15 x 160) = 63.

Konwersji dziesiętno - szesnastkowej można dokonać na drodze wielokrotnego dzielenia na 16 części całkowitej oraz mnożenia przez 16 części ułamkowej przetwarzanej liczby dziesiętnej.

Przykład 1.8:

Niech N10 = 2527,7812510

252710 = 9DF16

0,7812510 = C816

Wynik konwersji: 2527,7812510 = 9DF, C816

Tablica 1.3 Tablica potęg liczby 2

2n

n

2-n

1

0

1.0

2

1

0.5

4

2

0.25

8

3

0.125

16

4

0.062 5

32

5

0.031 25

64

6

0.015 625

128

7

0.007 812 5

256

8

0.003 906 25

512

9

0.001 953125

1 024

10

0.000 976 562 5

2 048

11

0.000 488 281 25

4 096

12

0.000 244 140 625

8 192

13

0.000 122 070 312 5

16 384

14

0.000 061 035 156 25

32 768

15

0.000 030 517 578 125

65 536

16

0.000 015 258 789 062 5

131 072

17

0.000 007 629 394 531 25

262 144

18

0.000 003 814 697 265 625

524 288

19

0.000 001 907 348 632 812 5

1 048 576

20

0.000 000 953 674 316 406 25

2 097 152

21

0.000 000 476 837 158 203 125

4 194 304

22

0.000 000 238 418 579 101 562 5

8 388 608

23

0.000 000 019 209 289 550 781 25

16 777 216

24

0.000 000 059 604 644 775 390 625

33 554 432

25

0.000 000 029 802 322 387 695 312 5

67 108 864

26

0.000 000 014 901 161 193 847 656 25

134 217 728

27

0.000 000 007 450 580 596 923 828 125

268 435 456

28

0.000 000 003 725 290 298 461 914 062 5

536 870 912

29

0.000 000 001 862 645 149 230 957 031 25

1 073 741 824

30

0.000 000 000 931 322 574 615 478 515 625

2 147 483 648

31

0.000 000 000 465 661 287 307 739 257 812 5

4 294 967 296

32

0.000 000 000 232 830 643 653 869 628 906 25

8 589 934 592

33

0.000 000 000 116 415 321 826 934 814 453 125

17 179 869 184

34

0.000 000 000 058 207 660 913 467 407 226 562 5

34 359 738 368

35

0.000 000 000 029 103 830 456 733 703 613 281 25

68 719 476 736

36

0.000 000 000 014 551 915 228 366 851 806 640 625

Liczba przedstawiona w systemie dwójkowym może być bezpośrednio przetworzona na liczbę przedstawioną w systemie szesnastkowym. W tym celu należy liczbę dwójkową podzielić na grupy czterobitowe (tetrady) poczynając od przecinka w lewo i w prawo i zastąpić otrzymane tetrady ekwiwalentnymi cyframi szesnastkowymi.

Przykład 1.9

Niech N2 = 11010101000,1111010111

0110 1010 1000, 1111 0101 1100

6 A 8, F 5 C

zatem 1101010100,11110101112 = 6A8,F5CH

    1. Kody

Kodem nazywamy reguły uporządkowujące poszczególne kombinacje zmiennych. Parametry określające kod to:

W celu zautomatyzowania procesów przetwarzania i transmisji informacji dyskretnej, zamiast znaków graficznych, którymi posługujemy się na co dzień, są wykorzystywane specjalne kody zbudowane z bardzo prostych symboli w systemach cyfrowych. Za pomocą kodów najczęściej opisuje się liczby. W układach cyfrowych najczęściej stosuje się dwójkowy system kodowy, zwany kodem binarnym, i jego szczególny przypadek system dwójkowo - dziesiętny.

Kody zbudowane z symboli dwuwartościowych noszą nazwę kodów dwójkowych. Symbole dwuwartościowe (lub dwójkowe), które przyjmują wartości cyfrowe 0 lub 1, nazywają się bitami. Znaki przedstawia się w postaci ciągów symboli dwójkowych, a ciągi te nazywane są słowami kodowymi. Inaczej mówiąc, m (czyt. liczba) bitów, które odpowiadają wartościom M zmiennych tworzy tzw. słowo dwójkowe (kodowe). Jedno słowo dwójkowe składające się z m bitów informacji może reprezentować 2m różnych elementów informacji, np. kod dwójkowy złożony z siedmiu bitów umożliwia zakodowanie 27 = 128 znaków. Kodowanie za pomocą kodu dwójkowego oznacza zapisanie liczb w systemie dwójkowym.

Najlepiej jest, gdy wszystkie znaki są przedstawione za pomocą słów kodowych o jednakowej długości. Z uwagi na szybkość i wydajność procesów przetwarzania informacji, należy posługiwać się słowami o jak najmniejszej długości.

Kodowanie informacji pozwala na zmniejszenie liczby torów transmisji potrzebnych do przesłania tej informacji. Natomiast dekodowanie pozwala nam przywrócić do pierwotnego systemu.

Kody możemy podzielić na:

  1. W zależności od parametru P kody zupełne i niezupełne:

  1. Kody systematyczne i niesystematyczne:

  1. Kody dwójkowe wagowe i niewagowe.

Jeśli każdy bit (pozycja) kodu dwójkowego ma określoną i niezmienną wagę (znaczenie) liczbową to taki kod nazywamy kodem wagowym; pozostałe kody są kodami niewagowymi. Wagi są przeważnie liczbami całkowitymi i mogą przyjmować wartości ujemne. Wartości liczbowe słowa kodowego będą sumą wag tych pozycji, które zawierają jedynki. Najprostszym wagowym kodem dwójkowym jest tzw. naturalny kod dwójkowy (kod binarny, kod BIN) (tablica 1.4).

Wagi naturalnego kodu dwójkowego n - bitowego (n - pozycyjnego) wynoszą 2i, (gdzie i = 0, 1, 2, ..., 2n-1), tzn. są kolejnymi potęgami liczby 2.

Powszechnie stosowanym kodem dwójkowym niewagowym jest kod Graya, w którym sąsiednie słowa różnią się wartością tylko jednego bitu.

Tablica 1.4 Kody 4 - bitowe: naturalny i Graya

Kod Dwójkowy

Kod Graya

A B C D

8 4 2 1

X Y W Z

Niewagowy

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0 0 0 0

0 0 0 1

0 0 1 1

0 0 1 0

0 1 1 0

0 1 1 1

0 1 0 1

0 1 0 0

1 1 0 0

1 1 0 1

1 1 1 1

1 1 1 0

1 0 1 0

1 0 1 1

1 0 0 1

1 0 0 0

  1. Kody dwójkowo - dziesiętne.

Ważną odmianę kodów dwójkowych stanowią kody dwójkowo - dziesiętne BCD (ang. Binary Coded Decimal). W kodach tych poszczególne cyfry dziesiętne są przedstawione w kodzie dwójkowym, każdej cyfrze kodu dziesiętnego są przyporządkowane cztery bity kodu binarnego. Do zakodowania dziesięciu cyfr potrzebne są co najmniej cztery bity, bo: 23 < 10 < 24. Sześć spośród szesnastu kombinacji kodu 4 - bitowego nie będzie wykorzystanych.

Kody BCD mogą być wagowe i niewagowe (przedstawione w tablicy 1.5 i 1.6). W kodach wagowych każda pozycja ma określoną wagę. Ciąg wag kodu jest zwykle używana jako nazwa kodu.

Podstawowym wagowym kodem BCD jest kod 8421 BCD lub po prostu kod BCG (tablica 1.5), w którym wykorzystuje się pierwsze dziesięć tetrad 4 - bitowego naturalnego kodu dwójkowego.

Przykładem kodu niewagowego BCD jest kod z nadmiarem 3 (tablica 1.6). Kod ten otrzymuje się dodając trzy do cyfry dziesiętnej i zapisując ją następnie w kodzie 8421. W kodzie nie ma możliwości przypisania wagi każdej pozycji.

Tablica 1.5 Kody dwójkowo - dziesiętne wagowe

Kod:

Naturalny

Aikena

0x08 graphic
Wagi

Cyfra

8 4 2 1

2* 4 2 1

2 4 2 1

7 4 2 1

8 4-2-1

0

1

2

3

4

5

6

7

8

9

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 1 1 0

1 1 1 1

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

0 0 0 1

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

1 0 0 0

1 0 0 1

1 0 1 0

0 0 0 0

0 1 1 1

0 1 1 0

0 1 0 1

0 1 0 0

1 0 1 1

1 0 1 0

1 0 0 1

1 0 0 0

1 1 1 1

Tablica 1.6 Kody dwójkowo - dziesiętne niewagowe

0x08 graphic
Kod:

Cyfra

Z nadmiarem 3 ( + 3, plus 3,

excess 3. XS3)

Graya z nadmiarem 3

Wattsa

Johnsona pseudopierście

niowy

Wskaźników cyfrowych siedmiosegmentowych

0

1

2

3

4

5

6

7

8

9

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

0 0 1 0

0 1 1 0

0 1 1 1

0 1 0 1

0 1 0 0

1 1 0 0

1 1 0 1

1 1 1 1

1 1 1 0

1 0 1 0

0 0 0 0

0 0 0 1

0 0 1 1

0 0 1 0

0 1 1 0

1 1 1 0

1 0 1 0

1 0 1 1

1 0 0 1

1 0 0 0

0 0 0 0 0

0 0 0 0 1

0 0 0 1 1

0 0 1 1 1

0 1 1 1 1

1 1 1 1 1

1 1 1 1 0

1 1 1 0 0

1 1 0 0 0

1 0 0 0 0

0 1 1 1 1 1 1

0 0 0 0 1 1 0

1 0 1 1 0 1 1

1 0 0 1 1 1 1

1 1 0 0 1 1 0

1 1 0 1 1 0 1

1 1 1 1 1 0 0

0 0 0 0 1 1 1

1 1 1 1 1 1 1

1 1 0 0 1 1 1

  1. PODSTAWOWE FUNKCJE LOGICZNE I FUNKTORY UKŁADÓW LOGICZNYCH

    1. Wstęp

Istotą techniki cyfrowej jest wytwarzanie cyfrowych sygnałów wyjściowych jako odpowiedzi na cyfrowe sygnały wejściowe. Na przykład sumator przetwarza doprowadzone do wejść dwie liczby 16 - bitowe na sumę 16 - bitową tych liczb oraz bit przeniesienia. Można także zbudować układ do mnożenia dwóch liczb. Są to operacje w rodzaju tych, jakie powinna wykonywać jednostka arytmetyczna komputera. Innym zadaniem może być porównanie dwóch liczb w celu sprawdzenia, która z nich jest większa.

Typowymi zadaniami układów cyfrowych jest pobranie pewnych liczb binarnych, ich wyświetlenie, wydrukowanie lub wydziurkowanie jako znaków dziesiętnych. We wszystkich tych zadaniach sygnały (stany) wyjściowe są zdeterminowanymi funkcjami sygnałów (stanów) wejściowych. Wszystkie zadania mogą być wykonane za pomocą urządzeń zwanych bramkami, które realizują działania algebry Boole'a w dziedzinie układów dwustanowych (binarnych) i sieci złożonych z takich elementów, którymi są bramki. Każda ze zmiennych boolowskich może być równa tylko zeru lub równa tylko jedynce. To założenie można zapisać w postaci:

X = 0, jeśli X 1

X 1, jeśli X = 0

Funkcję, której zmienne lub ona sama przyjmuje wartości ze zbioru {0, 1} nazywamy funkcją boolowską (logiczną, przełączającą). Natomiast układ przetwarzający logiczne sygnały wejściowe na logiczne sygnały wyjściowe nazywa się układem logicznym.

Przy projektowaniu dwustanowych (0 - stan niski, 1 - stan wysoki) układów cyfrowych posługujemy się algebrą Boole'a.

Algebra Boole'a, którą stosujemy w układach, opiera się na trzech zasadniczych funkcjach, którymi są:

Stosowane są również operatory złożone (pochodne), jak:

Jedną z postaci algebry Boole'a jest znany rachunek zdań, gdzie zamiast znaków sumy + stosuje się łącznik lub, zamiast znaku iloczynu - łącznik i, a do negacji używamy słowa nie. Algebra Boole'a posługuje się szeregiem praw i tożsamości.

W algebrze Boole'a obowiązują następujące podstawowe prawa:

  1. Prawo przemienności mnożenia i dodawania:

  2. a

    A+B = B+A

    b

    A · B = B · A

    1. Prawo łączności:

    2. a

      mnożenia

      A+B+C = A+(B+C) = (A+B)+C

      b

      dodawania

      A · B · C = A · (B · C) = (A · B) ·C

      1. Prawo rozdzielczości:

      2. a

        mnożenia względem dodawania

        A ·(B + C) = A · B + A ·C

        b

        dodawania względem mnożenia

        A + B · C = (A + B) · (A + C)

        1. Prawa podstawowe:

        2. a

          A + 1 = 1

          b

          A · 1 = A

          a

          A + 0=A

          b

          A · 0 = 0

          a

          A + A = A

          b

          A · A = A

          a

          0x01 graphic

          b

          0x01 graphic

          1. Prawa de Morgana:

          2. a

            0x01 graphic

            b

            0x01 graphic

            1. Podstawowe tożsamości algebry Boole'a:

            a

            A · B + A · C = A · (B + C)

            b

            (A + B) · (A + C) = A + B · C

            a

            A · B +B·C+0x01 graphic
            ·C=A·B+0x01 graphic
            -C

            b

            (A + B) · (B + C) · (0x01 graphic
            +C) = (A+B) · (0x01 graphic
            + C)

            a

            A · B + 0x01 graphic
            · B = B

            b

            (A + B) · (0x01 graphic
            + B) = B

            Funkcje: sumy, iloczynu i negacji tworzą tzw. podstawowy system funkcjonalnie pełny. System funkcji logicznych nazywamy funkcjonalnie pełnym, jeśli za pomocą zasad superpozycji i podstawiania argumentów można uzyskać dowolną funkcję logiczną. Podstawowy system funkcjonalnie pełny nie jest minimalny, ponieważ sumę lub iloczyn można zrealizować za pomocą dwóch pozostałych operatorów, korzystając z praw de Morgana:

            0x01 graphic
            0x01 graphic

            Operacja sumy logicznej jest zdefiniowana następująco:

            • jeżeli co najmniej jeden z argumentów jest równy 1, to wynik jest równy 1. Zatem suma logiczna jest równa 0 tylko dla przypadku, gdy wszystkie argumenty są równe 0.

            Operacja iloczynu logicznego jest zdefiniowana następująco:

            • wynik iloczynu jest równy 1, wtedy i tylko wtedy, gdy wszystkie argumenty przyjmują wartość 1.

            Operacja negacji jest operacją jednoargumentową i jest zdefiniowana jako zmiana wartości argumentu, tj. jeśli argument ma wartość 1, to operacja ta daje w wyniku wartość 0, a jeśli argument ma wartość 0, to operacja ta daje w wyniku wartość 1.

            Łatwo można wykazać, że:

            • dowolna n - argumentowa funkcja logiczna jest określona dla 2n różnych kombinacji argumentów,

            • liczba różnych n - argumentowych funkcji logicznych jest skończona i równa 2n.

            Dowolną funkcję logiczną można wyrazić przez funkcje logiczne dwóch zmiennych (tablica 2.1). Kilka funkcji przedstawionych w tablicy 2.1 jest szczególnie interesujących, ponieważ są one realizowane za pomocą układów w postaci bramek scalonych TTL.

            Do funkcji takich należą funkcje:

            • I (AND),

            • LUB (OR),

            • I - NIE (NAND),

            • LUB - NIE (NOR),

            • ALBO (Ex - OR),

            • NIE (NOT) oraz wzmacniacz logiczny (IDENTITY), które są omówione w podrozdziale 2.4.

              1. Podstawowe funkcje logiczne

          Funkcja I (AND)

          Do przedstawienia iloczynu logicznego X np. dwu zmiennych A i B są stosowane wyrażenia:

          0x01 graphic

          Najczęściej używane jest pierwsze i drugie wyrażenie. Funkcję I (AND) dwóch zmiennych boolowskich przedstawiono na rys. 2.1.

          Funkcja iloczynu logicznego przyjmuje wartość 1 wtedy i tylko wtedy, gdy wszystkie zmienne, A i B przyjmują wartość 1. W każdym innym przypadku iloczyn logiczny tych sygnałów wynosi 0.

          A

          B

          X = AB

          0

          0

          0

          0

          1

          0

          1

          0

          0

          1

          1

          1

          Rys. 2.1 Tablica dwuargumentowej funkcji I (AND).

          0x08 graphic

          Rys. 2.2 Realizacja fizyczna dwuargumentowej funkcji I (AND)

          Operację iloczynu logicznego X, realizują szeregowo połączone klucze A i B w obwodzie elektrycznym. Napięcie baterii będzie wykorzystane do rozświecenia żarówki, tzn. X = 1 tylko wtedy, jeśli zarówno klucz A, jak i klucz B będą zamknięte, tzn. A = 1 i B = 1 (patrz rys. 2.1).

          Funkcja LUB (OR)

          Do przedstawienia sumy logicznej Y np. dwu zmiennych A i B są stosowane wyrażenia:

          0x01 graphic

          Najczęściej używane jest pierwsze wyrażenie.

          Jeżeli na wejścia układu podamy sygnał A i sygnał B, to na jego wyjściu otrzymamy sygnał będący ich sumą A + B. Przyjmuje ona poziom 1, gdy A lub B ma poziom 1. Funkcja sumy logicznej przyjmuje wartość 0 wtedy, gdy wszystkie zmienne przyjmują wartość 0.

          Funkcję LUB (OR) dwóch zmiennych boolowskich przedstawiono na rys. 2.3, który ilustruje różnicę między sumą logiczną a sumą arytmetyczną. W ostatnim wierszu tablicy widzimy, że 1 + 1 = 1 dla sumy logicznej. Liczba zmiennych sumowanych logicznie może być dowolna.

          A

          B

          Y=A+B

          0

          0

          0

          0

          1

          1

          1

          0

          1

          1

          1

          1

          Rys. 2.3 Tablica dwuargumentowej funkcji LUB (OR).

          Obwód elektryczny z równolegle połączonymi kluczami A i B, które realizują operację sumy logicznej Y, jest przedstawiony na rys. 2.4. Napięcie baterii rozświeci żarówkę, tzn. Y = l, wówczas, gdy klucz A lub klucz B, lub obydwa są zamknięte (patrz rys. 2.3).

          0x08 graphic
          Rys. 2.4 Realizacja fizyczna dwuargumentowej funkcji LUB (OR).

          Funkcja NIE (NOT)

          Do przedstawienia negacji N np. zmiennej A są stosowane wyrażenia:

          0x01 graphic

          Najczęściej używane jest pierwsze wyrażenie. Symbol A odczytuje się jako „nie A” lub „A zanegowane”, lub „dopełnienie A".

          Funkcja NIE (NOT) polega na inwersji (negacji) zmiennej, zamienia stan wysoki (1) na stan niski (0) lub odwrotnie. Jeżeli na wejście podamy sygnał logiczny A, to na wyjściu otrzymamy jego negację 0x01 graphic
          („nie A”). Funkcję NIE (NOT) przedstawiono na rys. 2.5.

          A

          N

          0

          1

          1

          0

          Rys. 2.5 Tablica funkcji NIE (NOT).

          Tablica 2.1 Funkcje dwóch zmiennych

          i

          Tablica wartości

          Tablica Karnaugha

          Zapis algebraiczny

          Nazwa funkcji w języku

          polskim

          X

          Y

          fi

          angielskim

          0x08 graphic
          0

          0

          0

          1

          1

          0

          1

          0

          1

          0

          0

          0

          0

          f0 = 0

          stała 0

          ZERO

          NULL FUNCTION

          0x08 graphic
          1

          0

          0

          1

          1

          0

          1

          0

          1

          0

          0

          0

          1

          f1 = X⋅Y

          I

          Koniunkcja

          AND

          CONJUNCTION

          0x08 graphic
          2

          0

          0

          1

          1

          0

          1

          0

          1

          0

          0

          1

          0

          f2 = X⋅0x01 graphic

          Zakaz przez Y

          INHIBIT

          0x08 graphic
          3

          0

          0

          1

          1

          0

          1

          0

          1

          0

          0

          1

          1

          f3 = X

          Zmienna X

          INDENTITY X

          0x08 graphic
          4

          0

          0

          1

          1

          0

          1

          0

          1

          0

          1

          0

          0

          f4 = 0x01 graphic

          Zakaz przez X

          INHIBIT

          0x08 graphic
          5

          0

          0

          1

          1

          0

          1

          0

          1

          0

          1

          0

          1

          f5 = Y

          Zmienna Y

          IDENTITY Y

          0x08 graphic
          6

          0

          0

          1

          1

          0

          1

          0

          1

          0

          1

          1

          0

          f6 = 0x01 graphic

          0x01 graphic

          ALBO

          Suma modulo 2

          Wyłącznie LUB

          EXCLUSIVE - OR

          0x08 graphic
          7

          0

          0

          1

          1

          0

          1

          0

          1

          0

          1

          1

          1

          f7 = X +Y

          LUB

          Dysjunkcja

          Alternatywa

          OR

          DISJUNCTION

          Tablica 2.1 Funkcje dwóch zmiennych - ciąg dalszy

          i

          Tablica wartości

          Tablica Karnaugha

          Zapis algebraiczny

          Nazwa funkcji w języku

          polskim

          X

          Y

          fi

          angielskim

          0x08 graphic
          8

          0

          0

          1

          1

          0

          1

          0

          1

          1

          0

          0

          0

          f8 = 0x01 graphic

          LUB - NIE

          Strzałka Peirce'a

          NOR

          PEIRCE FUNCTION

          0x08 graphic
          9

          0

          0

          1

          1

          0

          1

          0

          1

          1

          0

          0

          1

          f9 = 0x01 graphic

          ALBO - NIE

          Równoważność

          EXCLUSIVE - NOR

          EQUALITY

          COINCIDENCE

          0x08 graphic
          0x08 graphic
          10

          0

          0

          1

          1

          0

          1

          0

          1

          1

          0

          1

          0

          f10 = 0x01 graphic

          Negacja Y

          NOT Y

          11

          0

          0

          1

          1

          0

          1

          0

          1

          1

          0

          1

          1

          f11 = 0x01 graphic

          Implikacja X przez Y

          IMPLICATION

          0x08 graphic
          0x08 graphic
          12

          0

          0

          1

          1

          0

          1

          0

          1

          1

          1

          0

          0

          f12 = 0x01 graphic

          Negacja X

          NOT X

          13

          0

          0

          1

          1

          0

          1

          0

          1

          1

          1

          0

          1

          f13 = 0x01 graphic

          Implikacja Y przez X

          IMPLICATION

          0x08 graphic
          14

          0

          0

          1

          1

          0

          1

          0

          1

          1

          1

          1

          0

          f14 = 0x01 graphic

          I - NIE

          Kreska Sheffera

          NAND

          SHEFFER STROKE

          0x08 graphic
          15

          0

          0

          1

          1

          0

          1

          0

          1

          1

          1

          1

          1

          f15 = 1

          Stała1

          ONE

            1. Sposoby przedstawiania funkcji logicznych

          Do przedstawiania funkcji logicznych służy nam opis słowny. Na podstawie opisu można sporządzić tablicę wartości (rys. 2.6), zwaną tablicą wierności lub tablicą prawdy (ang. Truth Table).

          j

          X0 X1 X2 . . Xn-1

          f

          0

          1

          2

          3

          0x01 graphic

          2n - 1

          0 0 0 . . . 0

          0 0 0 . . . 1

          1 1 1 . . . 1

          Rys. 2.6 Tablica wartości n - argumentowej funkcji logicznej.

          Tablice prawdy bramek rzeczywistych operują bądź abstrakcyjnymi stanami logicznymi 0 i 1, bądź dwoma poziomami wielkości fizycznych określanych umownie jako niski (L) i wysoki (H). Tablica ta składa się z wierszy, w których wpisuje się wszystkie kombinacje zero - jedynkowe zmiennych niezależnych. Wszystkie kombinacje zmiennych zapisujemy tak, aby tworzyły kolejne liczby dziesiętne zapisane w systemie dwójkowym. Ostatnia kolumna jest przeznaczona do zapisania wartości funkcji dla poszczególnych kombinacji zero - jedynkowych.

          Inną metodą bezpośredniego zapisu funkcji n zmiennych są tablice Karnaugha. Tablice te są prostokątne i zwierają 2n pól. Jest to zapis bardzie zwarty i prostszy w użyciu niż tablica wartości. Tablice Karnaugha są dokładniej opisane w podrozdziale 3.2.

          Funkcję logiczną o dowolnej liczbie argumentów można również przedstawić w postaci algebraicznej, za pomocą algebry Boole'a. Postać ta nie jest zazwyczaj tworzone bezpośrednio z opisu, lecz pośrednio bądź z tablicy wartości, bądź z tablic Karnaugha.

          Dowolną funkcję logiczną n zmiennych można przedstawić jako:

          0x01 graphic
          (2.1)

          gdzie: 0x01 graphic
          lub 1, a znak 0x01 graphic
          oznacza sumę logiczną.

          Współczynnik aj przyjmuje wartość 1, gdy dla danego j jest 0x01 graphic
          , natomiast wartość 0, gdy 0x01 graphic
          .

          Ta postać algebraiczna zapisu funkcji nosi nazwę dysjunkcyjnej postaci kanonicznej i jest nazywana krótko postacią 0x01 graphic
          .

          Przykład 2.1:

          Wyrazić funkcję f(X, Y, Z), zadaną tablicą wartości z rys. 2.7 w postaci 0x01 graphic
          .

          j

          X

          Y

          Z

          f

          0

          1

          2

          3

          4

          5

          6

          7

          0

          0

          0

          0

          1

          1

          1

          1

          0

          0

          1

          1

          0

          0

          1

          1

          0

          1

          0

          1

          0

          1

          0

          1

          0

          0

          1

          1

          0

          1

          1

          0

          Rys. 2.7 Tablica wartości funkcji f(X, Y, Z).

          Jak wynika z tablicy wartości, funkcja ta przyjmuje wartość 1 w wierszach 2, 3, 5 i 6, a wartość 0 w pozostałych wierszach. Zatem funkcja f(X, Y, Z) wyrażona jako 0x01 graphic
          przyjmuje postać:

          0x01 graphic

          Każdy składnik typu 0x01 graphic
          nie zmienia wartości funkcji, może więc być wyeliminowany. Wtedy funkcja ta przyjmuje postać:

          0x01 graphic

          Jako składniki sumy wchodzą te iloczyny Ij, które odpowiadają kombinacjom zero - jedynkowym zmiennych niezależnych i, dla których funkcja przyjmuje wartość 1.

          Jeśli funkcja zależy od wielu argumentów, to tworzenie postaci kanonicznej jest pracochłonne i dlatego często jest stosowany zapis skrócony (liczbowy), polegający na wpisywaniu odpowiednich liczb dziesiętnych, symbolizujących składniki jedności.

          Przykład 2.2:

          Wyrazić funkcję 0x01 graphic
          w postaci zapisu liczbowego 0x01 graphic
          .

          0x01 graphic

          0x01 graphic

          Drugą postacią algebraiczną funkcji n - zmiennych jest koniunkcyjna postać kanoniczna, nazywana 0x01 graphic
          .

          0x01 graphic
          (2.2)

          gdzie: 0x01 graphic
          lub 1, a znak 0x01 graphic
          oznacza iloczyn logiczny.

          Przykład 2.3:

          Wyrazić funkcję f(X, Y, Z) zadaną tablicą wartości z rys. 2.7 w postaci 0x01 graphic
          .

          Jak wynika z tablicy wartości, funkcja ta przyjmuje wartość 0 w wierszach 0, 1, 4 i 7, a wartość 1 w pozostałych wierszach. Zatem funkcja wyrażona jako 0x01 graphic
          przyjmuje postać:

          0x01 graphic
          Każdy czynnik typu 0x01 graphic
          nie zmienia wartości funkcji, może więc być wyeliminowany. Zatem:

          0x01 graphic
          Jako czynniki do iloczynu wchodzą te sumy Sj, które odpowiadają kombinacjom zero - jedynkowym zmiennych niezależnych, dla których funkcja przyjmuje wartość 0.

          Jeśli funkcja zależy od wielu argumentów, podobnie jak w przypadku zapisu 0x01 graphic
          , jest stosowany liczbowy zapis 0x01 graphic
          .

          Przykład 2.4:

          Wyrazić funkcję

          0x01 graphic
          w postaci zapisu liczbowego 0x01 graphic
          .

          0x01 graphic

            1. Funktory układów logicznych

          Bramkami nazywane są kombinacyjne układy cyfrowe, realizujące proste funkcje logiczne jednej lub wielu zmiennych logicznych. Zmienną logiczną jest sygnał elektryczny występujący na wejściach i wyjściach tych układów.

          Poniżej zostanie przedstawione działanie logiczne podstawowych typów bramek logicznych.

          BRAMKA I (AND)

          Bramka ta jest układem o dwu lub większej liczbie wejść, realizującym funkcję iloczynu logicznego zmiennych wejściowych.

          W przypadku ogólnym bramki mogą mieć dowolną liczbę wejść, ale typowy układ scalony zawiera zwykle cztery bramki 2 - wejściowe, trzy bramki 3 - wejściowe lub dwie bramki 4 - wejściowe. Wyjście bramki AND jest w stanie wysokim tylko wtedy, gdy oba wejścia są w stanie wysokim (rys. 2.8).

          W algebrze Boole'a symbolowi AND odpowiada kropka (·). „A I B” jest zapisywane jako A · B lub po prostu AB.

          1. b)

          0x08 graphic
          A

          B

          F

          0

          0

          0

          0

          1

          0

          1

          0

          0

          1

          1

          1

          0x01 graphic

          Rys. 2.8 Dwuwejściowa bramka I (AND): a) tablica prawdy, b) symbol graficzny.

          BRAMKA LUB (OR)

          Bramka ta jest układem o dwu lub większej liczbie wejść, realizującym funkcję sumy logicznej zmiennych wejściowych (rys. 2.9). Wyjście bramki OR (LUB) jest w stanie wysokim, jeżeli któreś z wejść (lub oba) jest w stanie wysokim. Można to wyrazić za pomocą „tablicy prawdy”.

          a) b)

          0x08 graphic
          A

          B

          F

          0

          0

          0

          0

          1

          1

          1

          0

          1

          1

          1

          1

          0x01 graphic

          Rys. 2.9 Dwuwejściowa bramka LUB (OR): a) tablica prawdy, b) symbol graficzny.

          W algebrze Boole'a symbolowi OR odpowiada symbol „+”. „A LUB B” jest zapisywane jako A + B.

          BRAMKA NIE (NOT)

          Często potrzebujemy zmienić stan logiczny na przeciwny, nazywa się to również negowaniem stanu logicznego. Jest to funkcja inwertora, „bramki” o jednym wejściu (rys. 2.10).

          Boole'owskim odpowiednikiem symbolu NOT (negacji Nie) jest kreska pozioma stawiana nad negowanym elementem, a czasem apostrof(`). „NIE A” jest zapisywane jako 0x01 graphic
          lub jako A'.

          a) b)

          0x08 graphic

          A

          F

          0

          1

          1

          0

          0x01 graphic

          Rys. 2.10 Bramka NIE (NOT): a) tablica prawdy, b) symbol graficzny.

          Do podstawowych bramek negacyjnych należy bramka I-NIE (Not AND lub krócej NAND) oraz bramka LUB-NIE (Not OR lub krócej NOR).

          BRAMKA I - NIE (NAND)

          Bramka ta jest układem realizującym funkcję negacji iloczynu, a więc zgodnie z prawem de Morgana również funkcje sumy negacji zmiennych wejściowych (rys. 2.11).

          Funkcja NOT może być połączona z innymi funkcjami, tworząc NAND. Bramka I-NIE (NAND) jest bramką podstawową w kilku klasach scalonych układów cyfrowych.

          a) b)

          0x08 graphic
          A

          B

          F

          0

          0

          1

          0

          1

          1

          1

          0

          1

          1

          1

          0

          0x01 graphic

          Rys. 2.11 Bramka I - NIE (NAND): a) tablica prawdy, b) symbol graficzny.

          BRAMKA LUB - NIE (NOR)

          Bramka ta jest układem realizującym funkcję negacji sumy, a więc zgodnie z prawem de Morgana również funkcję iloczynu negacji zmiennych wejściowych. Podobnie jak bramka I-NIE (NAND), również i ta bramka jest podstawową bramką w kilku klasach scalonych układów cyfrowych (rys. 2.12). Ponieważ funkcje I-NIE (NAND) i LUB-NIE (NOR) są wzajemnie dualne, zatem układ bramek LUB-NIE (NOR) realizujący funkcję f(A, B, ..., Z) po zamianie bramek LUB-NIE (NOR) na bramki I-NIE (NAND), bez zmiany jego struktury, realizować będzie funkcję dualną 0x01 graphic
          .

          a) b)0x01 graphic

          0x08 graphic
          A

          B

          F

          0

          0

          1

          0

          1

          0

          1

          0

          0

          1

          1

          0

          0x01 graphic

          Rys. 2.12 Bramka LUB - NIE (NOR): a) tablica prawdy, b) symbol graficzny.

          BRAMKA ALBO (EX - OR)

          Exclusive - OR (czyli WYŁĄCZNIE LUB) - wyjście bramki XOR jest w stanie wysokim, jeżeli jedno albo drugie wejście jest w stanie wysokim - jest to zawsze funkcja dwóch zmiennych (rys. 2.13). Mówiąc inaczej, wyjście jest w stanie wysokim, jeżeli stany wejść są różne. Bramka XOR realizuje dodawanie bitów modulo - 2.

          a) b)

          0x08 graphic
          A

          B

          F

          0

          0

          0

          0

          1

          1

          1

          0

          1

          1

          1

          0

          0x01 graphic

          Rys. 2.13 Bramka ALBO (EX - OR): a) tablica prawdy, b) symbol graficzny.

          BRAMKA ALBO - NIE (EX - NOR)

          Bramka ALBO (Ex-OR) umożliwia bardzo prostą realizację funkcji ALBO - NIE (rys. 2.14), która ma postać:

          F(A, B) = AB+0x01 graphic
          = AB

          Funkcja ALBO-NIE (Exclusive-NOR lub krócej funkcja Ex-NOR), może być zrealizowana bądź za pomocą bramki ALBO (Ex-OR), jeśli na jedno z jej wejść zostanie podany, zamiast sygnału prostego, sygnał zanegowany:

          0x01 graphic
          AB

          bądź przez zanegowanie sygnału wyjściowego tej bramki:

          0x01 graphic
          B

          a) b)

          0x08 graphic
          A

          B

          F

          0

          0

          1

          0

          1

          0

          1

          0

          0

          1

          1

          1

          0x01 graphic

          Rys. 2.14 Bramka ALBO - NIE (EX -NOR): a) tablica prawdy, b) symbol graficzny.

          Podstawowe tożsamości dla funkcji ALBO (Ex - OR) i funkcji ALBO - NIE (Ex - NOR) przedstawiono poniżej w tablicy 2.2.

          Tablica 2.2 Podstawowe tożsamości dla funkcji ALBO (Ex - OR) i ALBO-NIE (Ex - NOR)

          0x01 graphic

          0x01 graphic

          0x01 graphic

          0x01 graphic

          0x01 graphic
          0x01 graphic

          0x01 graphic

          Przy projektowaniu układów cyfrowych należy mieć na uwadze, że za pomocą pewnych rodzajów bramek można utworzyć inne. Na przykład, jeżeli potrzebna jest bramka AND, a mamy do dyspozycji dwie dwuwejściowe bramki NAND, możemy zastosować chwyt jaki przedstawia rys. 2.15a.

          a)

          0x08 graphic

          b)

          0x08 graphic

          0x08 graphic
          c)

          d)

          0x08 graphic

          Rys. 2.15 Przykłady realizacji podstawowych funkcji logicznych.

            1. Układy TTL

          Funktory (bramki logiczne) są produkowane w postaci scalonej.

          Wyróżnia się dwie główne technologie wytwarzania cyfrowych układów scalonych:

          1. TTL (ang. Transistor - Transistor Logic - logika tranzystorowo - tranzystorowa) - technologia bipolarna,

          2. CMOS (ang. Complementary Metal - Oxide - Semiconductor) - technologia unipolarna.

          Z daną technologią wiąże się określony standard. Standard TTL określa charakterystyczne właściwości scalonych układów logicznych zbudowanych z tranzystorów bipolarnych.

          Określony standard jest to ogólnie przyjęta norma definiująca poziomy napięć zasilających, sygnałów wejściowych i wyjściowych, które gwarantują wymienność układów wykonywanych przez różnych producentów oraz poprawne działanie cyfrowych układów scalonych.

          W układach TTL najważniejszą częścią standardu są wymagania dotyczące zakresów wartości napięć wejściowych, które układ wykonany w tym standardzie będzie traktował jako określony stan logiczny (0 lub 1) na wejściu oraz zakresów wartości napięć wyjściowych, które układ będzie gwarantował przy określonym poziomie logicznym (0 lub 1) na wyjściu.

          Na rys. 2.16 przedstawiono zakres napięć wejść i wyjść scalonych układów logicznych.

          0x08 graphic

          Rys. 2.16 Zakresy napięć wejściowych i wyjściowych scalonych układów logicznych wykonanych w technice TTL.

          Po prawej stronie osi zaznaczono dozwolone zakresy wartości napięć wejściowych układu TTL:

          0,5 ÷ 0,8 V - poziom niski (stan 0);

          2 ÷ 5 V - poziom wysoki (stan 1).

          Po lewej stronie osi zaznaczono gwarantowane zakresy wartości napięć na wyjściu:

          0 ÷ 0,4 V - poziom niski (stan 0);

          2,5 ÷ 5 V - poziom wysoki (stan 1).

          Do głównych zalet układów TTL należy:

          • duża szybkość przełączania,

          • mały pobór mocy,

          • duża odporność na zakłócenia,

          • duża obciążalność,

          • duży współczynnik powielania logicznego,

          • małe impedancje wyjściowe w stanie 0 i 1,

          • pojedyncze źródło napięcia zasilania,

          • praca w szerokim zakresie temperatur,

          • duża pewność działania,

          • duży asortyment, który obejmuje ponad 500 różnych układów logicznych od pojedynczych bramek po wielkie pamięci i mikroprocesory.

          Przykładem układu wykonanego w technice TTL jest układ 7400, zawierający cztery bramki NAND. Schemat jednej bramki NAND pokazano na rys. 2.17.

          0x08 graphic

          Rys. 2.17 Schemat ideowy bramki podstawowej NAND (I - NIE).

          Bramka spełnia funkcję iloczynu, czyli: 0x01 graphic
          . Stopień wejściowy bramki stanowi tranzystor wieloemiterowy T1. Tranzystor T2 pracuje w układzie jako wzmacniacz sterujący (rozdzielacz faz), który dostarcza sygnał o odpowiedniej amplitudzie i wydajności prądowej do stopnia wyjściowego zrealizowanego na tranzystorach T3 i T4.

          Do wejść bramki są dołączone diody, które tłumią oscylacje powstałe w liniach łączących bramki w czasie ich przełączania i zapobiegają powstawaniu ujemnych napięć o wartości większej niż około 0,5 V.

          Jeśli na oba wejścia bramki zostaną podane jedynki, to złącza Baza - Emiter tranzystora T1 będą w stanie nieprzewodzenia (czyli zostaną spolaryzowane zaporowo), prąd Bazy popłynie przez złącze Baza - Kolektor T1 do Bazy tranzystora T2, powodując jego nasycenie (tranzystor T2 przewodzi) oraz zatkanie tranzystora T3.

          Typowa wartość napięcia wyjściowego bramki będącej w stanie 0 (na wyjściu jest stan 0) przy prądzie 16 mA - wynosi 220 mV. Dla bramki NAND w stanie 0 napięcie wyjściowe powinno wynosić UOL 0,4 V, jeżeli prąd wyjściowy IOL 16 mA.

          Gdy choć na jedno wejście będzie podany sygnał 0, spowoduje to przewodzenie (nasycenie) złącza Baza - Emiter tranzystora T1 i spolaryzowanie złącza Baza - Kolektor w kierunku zaporowym. Wynikiem tego jest zatkanie tranzystorów T2 i T4, przewodzenie tranzystora T3 i diody D3.

          Jeśli pobór prądu wyjściowego (w stanie wysokim)wynosi 400 μA, a napięcie wejściowe wynosi 0,8 V, to napięcie wyjściowe jest nie mniejsze niż 2,4 V. Jeżeli napięcie wejściowe jest mniejsze niż 0,8 V, to typowa wartość napięcia wyjściowego wynosi około 3,3 V.

          1. UKŁADY KOMBINACYJNE I SEKWENCYJNE

            1. Wstęp

          Do układów przełączających logicznych zaliczamy:

          • układy kombinacyjne,

          • układy sekwencyjne.

          Cechą odróżniającą układy kombinacyjne i sekwencyjne jest właściwość pamiętania stanów logicznych, które charakteryzują się układy sekwencyjne, a której są pozbawione układy kombinacyjne.

          Układ kombinacyjny służy do przetwarzania informacji dyskretnej dwuwartościowej. Informacja dyskretna składa się ze znaków, którymi mogą być zarówno litery, cyfry, jak i inne symbole.

          W układzie kombinacyjnym każda kombinacja sygnałów wejściowych określa jednoznacznie kombinację sygnałów wyjściowych. Sygnały wejścia i sygnały wyjścia przyjmują skończoną liczbę kombinacji i skończoną liczbę wartości. Kombinacje sygnałów wejściowych są to stany wejść układu, a kombinacje sygnałów wyjściowych - stany wyjść układu.

          Z układem kombinacyjnym mamy do czynienia, jeżeli wartość zmiennych ze zbioru Y zależy od wartości zmiennych ze zbioru X.

          Działanie układu kombinacyjnego możemy opisać wyrażeniem:

          Y = f (X) (3.1)

          gdzie: X - zbiór wszystkich możliwych, dla danego układu stanów wejść,

          X = {x1, x2,...,xn,},

          Y - zbiór wszystkich możliwych, dla danego układu stanów wyjść,

          Y = {y1, y2,,...,yn}.

          Zależność Y = f (X) jest równoważna zespołowi (rodzinie) funkcji logicznej:

          y1 = f1 (x1...xn) (3.2)

          y2 = f2 (x2...xn) (3.3)

          ym = fm (x1...xn) (3.4)

          gdzie: n - liczba wejść układu kombinacyjnego,

          m - liczba wyjść układu kombinacyjnego.

          0x08 graphic
          Układ przełączający (logiczny) o n wejściach i m wyjściach można przedstawić w postaci wielobiegunnika pokazanego na rys. 3.1.

          Rys. 3.1 Wielobiegunnik układu przełączającego X = {x1, x2,...,xn}, Y = {y1, y2,,...,yn}: a) wyróżniający poszczególne zmienne, zapis uproszczony.

          Do realizacji fizycznej kombinacyjnych układów cyfrowych są stosowane bramki logiczne, omówione w rozdziale 2, a także generatory funkcji logicznych, omówione w rozdziale 10.

          W układach kombinacyjnych stosuje się metodę Karnaugha.

          Synteza układu kombinacyjnego sprowadza się do realizacji zespołu funkcji logicznych określonych na tym samym zbiorze zmiennych. O złożoności układowej świadczy liczba funktorów w układzie oraz liczba połączeń, czyli sumaryczna liczba wejść wszystkich funktorów. Obie te liczby stanowią o koszcie układu.

          Przy syntezie zespołu funkcji logicznych należy dążyć do minimalizacji funkcji kosztu, biorąc pod uwagę możliwość wykorzystania wspólnych iloczynów (sum) wchodzących w skład rozpatrywanych funkcji.

          W celu dokonania realizacji układu kombinacyjnego należy:

          • określić funkcję logiczną rozpatrywanego problemu, np. za pomocą tablicy wartości,

          • dokonać minimalizacji funkcji logicznej wykorzystując tablice Karnaugha, przedstawione w poniższym rozdziale, lub metody algebraiczne,

          • sporządzić schemat układu logicznego, realizującego zminimalizowaną funkcję logiczną.

          Istnieją dwie podstawowe metody minimalizacji funkcji:

          1. Metoda analityczna algebry Boole'a.

          2. Metoda z użyciem tablicy Karnaugha (czyt. karnafa).

          Minimalizacja analityczna metodą algebry Boole'a polega na zapisaniu funkcji logicznej, a następnie zminimalizowaniu (skróceniu zapisu jej z zastosowaniem praw algebry Boole'a (podanych w rozdz. 2).

          Przykład 3.1:

          Zapisać i zminimalizować funkcję logiczną

          Y(A, B, C, D) = (0, 1, 4, 5).

          Zapisujemy tę funkcję jako sumę logiczną wszystkich jej elementów: Y(A,B,C,D) = 0x01 graphic
          .

          Grupujemy po dwa iloczyny logiczne:

          Y(A,B,C,D) = 0x01 graphic
          .

          Korzystamy z prawa rozdzielności mnożenia względem dodawania:

          Y(A,B,C,D) = 0x01 graphic
          .

          Następnie korzystamy z tożsamości:

          (0x01 graphic
          +D = 1)

          i z prawa rozdzielności mnożenia względem dodawania:

          Y(A,B,C,D) = 0x01 graphic
          .

          Układ sekwencyjny jest to układ dyskretny, którego stan wyjścia nie tylko zależy od stanu wejścia, ale także od wcześniejszego stanu wyjścia. Inaczej mówiąc stan wyjścia zależy od stanu wejścia i stanu wyjścia w chwili T. Oprócz zmiennych wejściowych i wyjściowych, istnieją tzw. stany wewnętrzne Q, a zbiór stanów wewnętrznych określa pamięć układu Q1, Q2,...

          Układy sekwencyjne dzielimy na:

          • układy synchroniczne

          • układy asynchroniczne.

          Układ synchroniczny to układ, w którym zmiany stanów wewnętrznych i stanów wyjścia odbywa się w ściśle określonych interwałach czasu, czyli w takt impulsu zegarowego.

          Układ asynchroniczny to układ, w którym sygnały na wejściu bezpośrednio oddziałują na stany wewnętrzne układu i stany na wyjściu. Układ ten pracuje z szybkością wyznaczoną przez opóźnienie elementów wewnętrznych układu. W układach asynchronicznych sekwencyjnych stosuje się metodę Huffmana.

          Układ sekwencyjny może być opisany następującymi równaniami:

          0x01 graphic
          (3.5)

          0x01 graphic
          (3.6)

          Równanie (3.5) zwane jest równaniem stanów wewnętrznych. Równanie (3.6) zwane jest równaniem wyjść układu sekwencyjnego. Czasami przyjmuje ono postać:

          0x01 graphic
          (3.7)

          Wyżej wymienione równania można przedstawić za pomocą schematów blokowych.

          0x08 graphic
          a)

          b)

          Rys. 3.2 Schemat blokowy układu sekwencyjnego: a) Mealy'ego,
          b) Moore'a: UP - układ pamięci, KBW -Kombinacyjny Blok Wyjściowy.

          Równanie (3.5) i (3.6) opisują układ sekwencyjny zwany układem Mealy`ego, a wyrażenia (3.5) i (3.7) układ Moore`a (rys. 3.2).

          Podstawowymi funktorami sekwencyjnych układów cyfrowych są funktory, umożliwiające budowę układu kombinacyjnego, czyli bramki logiczne oraz przerzutniki, które są omówione w rozdziale 4.

            1. Metoda Karnaugha

          Najczęściej stosowanym i najprostszym rodzajem opisu układu kombinacyjnego jest tablica wartości, która ukazuje zależność sygnałów wyjściowych Y od sygnałów zmiennych wejściowych X.

          Tablice Karnaugha służą do bezpośredniego zapisu n zmiennych. Tablice te są prostokątne i zawierają 2n pól. Kolumnom (i wierszom) siatek zostały przypisane wartości w kodzie, zwanym kodem cyklicznym Graya, gdzie dwie sąsiednie pozycje różnią się jednym znakiem.

          Kolejność taka jest charakterystyczną właściwością tablicy Karnaugha, która jest wykorzystana do przeprowadzenia uproszczenia w oparciu o tzw. regułę sklejania (patrz tabel 2.2):

          0x01 graphic

          gdzie: A, B - zmienne lub funkcje logiczne.

          Zmienną, która w dwóch sąsiednich polach przyjmuje różne wartości można pominąć.

          Najprostszą z możliwych tablic Karnaugha dla układu dwuwejściowego przedstawiono na rys. 3.3. Za jej pomocą możemy opisać funkcję logiczną dwu sygnałów wejściowych (D0 i D1 ).

          a) b)

          0x08 graphic
          D0 D1

          0

          1

          D1

          D0

          Y = D10x01 graphic

          0

          0

          0

          0

          D1

          D0

          Y

          1

          0

          1

          1

          0

          0

          0

          0x08 graphic

          1

          1

          3

          0

          1

          0

          D0 D1

          0

          1

          1

          0

          2

          1

          1

          0

          0

          0

          0

          1

          0

          1

          1

          1

          0

          Rys. 3.3 Tablica Karnaugha dla układu dwuwejściowego: a) niewypełniona,
          b) przykładowe jej wypełnienie.

          Na rysunku zaznaczono strzałkami, jakim kombinacjom sygnałów wejściowych odpowiada dane pole. Tablica ta jest niewypełniona, tzn. nie opisuje żadnej funkcji logicznej. Jej wypełnienie polega na wpisaniu w każde pole takiego stanu (0, 1), jaki powinien pojawić się na wyjściu układu przy danej kombinacji sygnałów wejściowych.

          Na rys. 3.3b przedstawiono wypełnioną przykładowo tablicę Karnaugha. Obok niej zapisano występujące możliwe kombinacje stanów logicznych sygnałów wejściowych D0 i D1 oraz odpowiadający im sygnał wyjściowy Y.

          Zatem, tablica Karnaugha jest to specjalny rodzaj tablicy, do której w pola opisane jednoznacznie kombinacją sygnałów wejściowych wpisuje się odpowiadającą im wartość sygnału wyjściowego. Na rys. 3.4 przedstawiono tablicę czterech zmiennych. Każde dwa sąsiadujące ze sobą pola (stykające się jednym bokiem oraz leżące przy krawędziach A - A' i B-B') tej tablicy różnią się w opisach odpowiadających im sygnałów wejściowych tylko jednym bitem (jedną pozycją).

          0x08 graphic

          CD AB

          00

          01

          11

          10

          00

          0

          1

          3

          2

          01

          4

          5

          7

          6

          11

          12

          13

          15

          14

          10

          8

          9

          11

          10

          Rys. 3.4 Tablica Karnaugha czterech zmiennych.

          Aby zapisać do tablicy Karnaugha funkcję o większej liczbie sygnałów wejściowych, należy stopniowo zwiększać jej rozmiary, stosując w tym celu tzw. metodę odbiciu lustrzanego. Sposób tworzenia tablicy dla czterech zmiennych z tablicy dwóch zmiennych przedstawiono na rys. 3.5.

          0x08 graphic

          1. b)

          2. 0

            1

            1

            0

            00

            01

            11

            10

            0

            0

            1

            1

            c) d)

            0x08 graphic

            00

            01

            11

            10

            00

            01

            11

            10

            00

            00

            01

            01

            11

            11

            10

            10

            Rys 3.5 Etapy tworzenia tablicy Karnaugha dla czterech sygnałów wejściowych L - L' - oś odbicia lustrzanego.

            Polega on na przekształceniu tablicy Karnaugha dla dwóch sygnałów wejściowych A, B (rys. 3.5a) w tablicę dla trzech sygnałów wejściowych AB, C (rys. 3.5b) a następnie w tablicę dla czterech sygnałów A, B, C, D (rys. 3.5c,d).

            Każde zwiększenie liczby sygnałów wejściowych o jeden powoduje podwojenie rozmiarów tablicy.

            Następnym krokiem jest wypełnienie pól tak utworzonej tablicy. Funkcja logiczna może być podana na przykład w postaci: opisu słownego, zbioru liczb, dla których reprezentacji dwójkowej odpowiada na wyjściu poziom 1 lub innego jednoznacznego opisu.

            Przykład 3.2

            Utworzyć tablicę Karnaugha dla funkcji Y(A, B, C, D) = (0, 1 , 4, 5, 10, 14).

            Sposób wypełniania tablicy:

            1. Każdą liczbę, dla której funkcja wyjściowa przyjmuje wartość 1 przedstawiamy za pomocą kodu dwójkowego (rys. 3.6a).

            2. Każdą liczbę możemy zapisać za pomocą czterech bitów (czterech sygnałów wejściowych). Zatem potrzebna jest czterowejściowa tablica Karnaugha.

            3. W poszczególne pola tej tablicy należy wpisać wartości funkcji Y dla poszczególnych kombinacji sygnałów wejściowych. W tym miejscu zwykle wyłania się problem. Jak w stosunkowo krótkim czasie znaleźć pola odpowiadające danej kombinacji wejściowej (problem ten ma większe znaczenie, gdy tworzymy tablice o większej liczbie sygnałów wyjściowych). Kombinacje sygnałów wejściowych dzielimy przerywaną linią w taki sposób, aby przebiegała ona między sygnałami opisującymi kolumny a sygnałami opisującymi wiersze tablicy Karnaugha (rys. 3.6a). W naszym przykładzie bity A, B opisują wiersze, a bity C,. D - kolumny. Zatem każde pole jest opisane kolumną i wierszem.

            4. W tablicy Karnaugha odszukujemy wiersz opisany kombinacją AB (sygnałów wejściowych).

            5. Po odnalezieniu odpowiedniego wiersza. poruszamy się wzdłuż niego, szukając kolumny opisanej kombinacja CD.

            6. W pole tablicy leżące na przecięciu odszukanego wiersza i kolumny wpisujemy wartość 1. (Strzałkami zaznaczono pola, które odpowiadają poszczególnym kombinacjom).

            7. Jeżeli funkcja określała pola, którym odpowiadają poziomy 1, to w pozostałe wolne pola należy wpisać 0.

            0x08 graphic
            Wypełnioną w ten sposób tablicę funkcji Y(A, B, C, D) przedstawiono na rys. 3.6b.

            a) b)

            00

            01

            11

            10

            MSB

            A B

            LSB

            C D

            00

            1

            1

            0

            0

            0

            0

            0

            0

            0

            01

            1

            1

            0

            0

            1

            0

            0

            0

            1

            11

            0

            0

            0

            1

            4

            0

            1

            0

            0

            10

            0

            0

            0

            1

            5

            0

            1

            0

            1

            10

            1

            0

            1

            0

            14

            1

            1

            1

            0

            Rys 3.6 Sposób wypełnienia tablicy Karnaugha.

            Na podstawie wypełnionej tablicy Karnaugha można przystąpić do realizacji funkcji na bramkach logicznych. Każdemu polu tablicy odpowiada bramka AND. Powstaje pytanie, czy przy dużej liczbie jedynek w tablicy należy również stosować tak dużo bramek, czy nie można zmniejszyć ich liczby? Okazuje się, że można. Liczba bramek zależy od tego, w jakim stopniu uda się zminimalizować funkcję Y.

            Jeżeli dwie kombinacje sygnałów wejściowych, przy których na wyjściu powinien pojawić się poziom 1 różnią się między sobą na jednym bicie (jednym sygnałem wyjściowym, np. 0001 i 0011), oznacza to, że sygnał wyjściowy dla tych kombinacji nie zależy od wartości tego bitu. Zatem, zamiast dwóch bramek AND czterowejściowych można użyć tylko jednej bramki AND trójwejściowej.

            W tablicy Karnaugha odpowiada to połączeniu w odpowiedni sposób jedynek w pary. Jedynki można również łączyć w czwórki, ósemki, szesnastki itp. Taką operację nazywamy sklejaniem jedynek lub sprowadzeniem zapisu funkcji do kanonicznej postaci sumy (suma iloczynów).

            Sklejanie dwóch jedynek w tablicy Karnaugha jest możliwe, jeżeli:

            • są one położone obok siebie, tzn. w sąsiednich polach,

            • jedynka ma odbicie lustrzane wzdłuż osi L - L' lub M - M'.

            Na rys. 3.7 przedstawiono tablicę Karnaugha ze sklejonymi parami jedynek.

            0x08 graphic

            00

            01

            11

            10

            00

            1

            1

            1

            0

            01

            0

            1

            1

            0

            11

            0

            0

            0

            1

            10

            0

            0

            1

            1

            Rys 3.7 Przykłady sklejenia dwóch jedynek.

            Sklejane dwójki jedynek można połączyć w czwórki (rys. 3.7), jeżeli:

            • jedna para jedynek jest odbiciem lustrzanym drugiej pary wzdłuż osi L - L' lub M - M',

            • obie pary stykają się bokiem w obrębie jednego z kwadratów T lub T'. W analogiczny sposób skleja się czwórki w ósemki, a ósemki w szesnastki.

            0x08 graphic

            000

            001

            011

            010

            110

            111

            101

            100

            00

            0

            1

            1

            1

            1

            0

            0

            1

            01

            0

            1

            1

            0

            0

            1

            1

            1

            11

            0

            0

            0

            0

            0

            1

            1

            1

            10

            0

            0

            0

            1

            1

            0

            0

            1

            Rys 3.8 Przykłady sklejenia dwóch dwójek.

            Najogólniej mówiąc minimalizację siatki Karnaugha otrzymamy, gdy zastosujemy następujące zasady:

            • wyszukujemy grupy o największej liczbie konstytuent, zawierające te same wartości (jedynki lub zera),

            • liczba konstytuent musi być liczbą parzystą siatek 2n,

            • poszczególne konstytuent muszą być cyklicznie sąsiednie (tzn. pierwsza musi być sąsiednia z drugą, druga z trzecią , ..., a ostatnia z pierwszą.

            Przykład 3.3:

            Zminimalizować funkcję Y(A, B, C, D) = 0x01 graphic
            (0, 1, 4, 5, 10, 14) za pomocą tablicy Karnaugha.

            W tablicy na rys. 3.6b znajduje się sześć jedynek, które można połączyć w trzy dwójki (rys. 3.9a). Dwie dwójki można połączyć w czwórkę (rys. 3.9a). Realizację tej funkcji logicznej na bramkach przedstawiono na rys. 3.9b.

            0x08 graphic
            a)

            00

            01

            11

            10

            00

            1

            1

            0

            0

            0x08 graphic
            01

            1

            1

            0

            0

            11

            0

            0

            0

            1

            10

            0

            0

            0

            1

            0x01 graphic

            b)

            0x08 graphic
            0x01 graphic

            Rys 3.9 Realizacja funkcji Y = (0, 1, 4, 5, 10, 14): a) wypełniona tablica Karnaugha z zakreślonymi parami jedynek (pary jedynek połączone w czwórki), b) układ zbudowany z bramek

            Może się zdarzyć, że fizyczne warunki działania urządzenia nie dopuszczają wystąpienia pewnych kombinacji zmiennych. Jeśli dana kombinacja zero - jedynkowa nigdy na wejściu układu się nie pojawia lub gdy nie jest istotne, jaki stan logiczny pojawi się na wyjściu przy tej kombinacji, można przyjąć, że dla takiej kombinacji wartość funkcji może wynosić 0, jak również 1. Taka możliwość przyjęcia dowolnej wartości funkcji jest bardzo przydatna w procesie minimalizacji.

            W tablicach, dla oznaczenia dowolnej wartości funkcji zapisuje się umownie symbol: -, ∼, ∅, X.

            Niektóre funkcje logiczne , zwłaszcza takie, w których przeważa liczba jedynek nad liczbą zer, można zrealizować w prosty sposób dzięki sklejaniu zer (tak samo jak jedynek). Jedyną różnicą jest to, że otrzymaną funkcję należy zanegować, czyli podać na wyjście układu przez negator.

            Przykład 3.4:

            Zrealizować funkcję Y(A, B, C, D) = 0x01 graphic
            (5, 7, 8, 9, 12, 15).

            W celu zminimalizowania funkcji należy przedstawić ją w tablicy Karnaugha (rys. 3.10a). W tablicy znjduje się sześć jedynek, które można połączyć w cztery pary. Z tablicy otrzymuje się:

            0x01 graphic

            Układ służący do realizacji tej funkcji można zbudować z bramek I (AND), LUB (OR), NIE (NOT). Układem równoważnym jest układ zbudowany z bramek I - NIE (NAND), który przedstawiono na rys. 3.10b.

            Po przekształceniach funkcja przyjmie postać:

            0x01 graphic

            Układ służący do realizacji tej funkcji zbudowany z bramek I (AND), NIE (NOT) i ALBO (Ex - OR) przedstawia rys. 3.10c.

            0x08 graphic
            a)

            00

            01

            11

            10

            00

            0

            0

            0

            0

            01

            0

            1

            1

            0

            11

            1

            0

            1

            0

            10

            1

            1

            0

            0

            b) c)

            0x08 graphic

            0x08 graphic

            Rys. 3.10 Funkcja Y(A, B, C, D) = 0x01 graphic
            (5, 7, 8, 9, 12, 15):
            a) tablica Karnaugha, b, c)schematy logiczne.

            Przykład 3.5:

            1. Wypełnić siatkę Karnaugha dla funkcji, której schemat logiczny pokazano na rys. 3.11.

            2. Zrealizować funkcję na bramkach NOR.

            0x08 graphic

            Rys. 3.11 Schemat logiczny funkcji.

            Aby uzupełnić siatkę Karnaugha należy najpierw określić stany w punktach a, b, c, d, e, co pokazano w tabeli 3.1.

            Tablica 3.1

            A B C D

            a

            0x01 graphic

            b

            0x01 graphic

            c

            0x01 graphic

            d

            0x01 graphic

            e

            0x01 graphic

            0 0 0 0

            0 0 0 1

            0 0 1 0

            0 0 1 1

            0 1 0 0

            0 1 0 1

            0 1 1 0

            0 1 1 1

            1 0 0 0

            1 0 0 1

            1 0 1 0

            1 0 1 1

            1 1 0 0

            1 1 0 1

            1 1 1 0

            1 1 1 1

            1

            1

            1

            1

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            1

            0

            0

            0

            1

            0

            0

            0

            1

            0

            0

            0

            1

            1

            1

            1

            0

            0

            0

            0

            1

            0

            0

            0

            1

            0

            0

            0

            1

            1

            1

            1

            1

            1

            1

            1

            1

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            0

            1

            1

            1

            1

            0

            1

            1

            1

            1

            1

            1

            1

            1

            Następnie wpisujemy wynik z punktu e w tablicę Karnaugha (rys. 3.12). Z tablicy otrzymujemy:

            0x01 graphic

            0x08 graphic

            0x08 graphic
            0x08 graphic

            00

            01

            11

            10

            00

            0

            0

            1

            0

            01

            1

            1

            0

            1

            11

            1

            1

            1

            1

            10

            1

            1

            1

            1

            Rys. 3.12 Siatka Karnaugha dla funkcji.

            Układ budujemy z trzech 3 - wejściowych i jednej 4 - wejściowej bramki NOR (rys. 3.13).

            0x08 graphic

            Rys. 3.13 Realizacja funkcji na bramkach NOR.

            Oprócz przedstawionej wyżej metody, minimalizację funkcji logicznych można przeprowadzić stosując:

            • metodę Quine'a,

            • metodę Quine'a - Mc Cluskeya,

            • metodę Patricka,

            • metodę Blake'a i inne.

            Zadanie:

            Udowodnić, że dla siatki Karnaugha pokazanej na rys. 3.14 funkcja ma postać:

            Y = X2 X00x01 graphic

            0x08 graphic

            X1X0

            X3X2

            00

            01

            11

            10

            00

            0

            X

            X

            0

            01

            X

            X

            X

            0

            11

            X

            X

            X

            X

            10

            0

            X

            X

            0

            Rys. 3.14 Siatka Karnaugha do zadania.

            1. PRZERZUTNIKI

              1. Wstęp

            Zapamiętywanie wartości zmiennych binarnych, jak również sekwencji tych wartości odbywa się w układach zwanych elementami pamięci. Podstawowym elementem jest funktor, którego podstawową funkcją jest pamiętanie jednego bitu informacji, zwany przerzutnikiem.

            Przerzutniki mogą występować oddzielnie lub w zespołach, połączone w rejestry, liczniki lub bloki pamięci.

            W przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych:

            • wejścia asynchroniczne - oznaczone małymi literami,

            • wejścia synchroniczne - oznaczone dużymi literami.

            Wejścia asynchroniczne - to takie, w których zmiana wartości informacji wywołuje bezpośrednio zmianę wartości zmiennych wyjściowych.

            Wejścia synchroniczne - używane są do wywołania zmiany wartości zmiennych wyjściowych, ale zmiana następuje w takt impulsu synchronizującego, zwanego też impulsem zegarowym (ang. clock) lub taktującym. Brak impulsu taktującego oznacza, że przerzutnik nie będzie reagował na zmiany wartości zmiennych informacyjnych synchronicznych przerzutnika.

            Przerzutnik jest układem posiadającym (rys. 4.1):

            1. Dwa wejścia informacyjne asynchroniczne s i r.

            Zmienne s i r oddziałują na wartości zmiennych wyjściowych Q i 0x01 graphic
            . Zmienna s zwana jest zmienną wpisującą (ang. set) lub ustawiającą (ang. preset). Służy ona do ustawiania przerzutnika w stan wysoki (Q = 1; 0x01 graphic
            = 0). Zmienna r zwana jest zmienną zerującą (ang. reset lub clear). Służy ona do zerowania przerzutnika w stan niski (Q = 0; 0x01 graphic
            = 1).

            1. Dwa wejścia informacyjne synchroniczne A i B (programujące).

            Zmienne A i B w różny sposób oddziałują na zmienne wyjściowe Q i 0x01 graphic
            . Decyduje to o nazwie typu przerzutnika.

            1. Wejście zegarowe C.

            Na wejście zegarowe, oznaczone literą C, wprowadza się impuls taktujący. Wejście to zwane jest inaczej synchronizującym albo wyzwalającym.

            1. Dwa wyjścia komplementarne Q i 0x01 graphic
              (proste i zanegowane).

            0x08 graphic

            Rys. 4.1 Schemat graficzny przerzutnika.

            W symbolach graficznych i wielu bardziej złożonych układów logicznych niektóre wejścia są oznaczone literą z zaznaczoną nad nią poziomą kreską (negacją). Oznacza to, że funkcja przypisana temu wejściu jest uaktywniana pojawieniem się na nim stanu logicznego 0 (poziomem aktywnym jest stan niski). Do zaznaczenia sposobu oddziaływania wejść na układ stosuje się również oznaczenia graficzne (rys.4.2).

            0x08 graphic

            Rys. 4.2 Oznaczenia graficzne wejść przerzutnika.

            Jeśli o wartości zmiennej wyjściowej przerzutnika decydują tylko wejścia asynchroniczne to mamy do czynienia z przerzutnikiem asynchronicznym W przerzutniku tym informacja na wyjściu pojawia się w chwilach uzależnionych tylko od zmiany stanu na jego wejściach. Do tej grupy zaliczamy głównie przerzutnik s r.

            Gdy stan przerzutnika ulega zmianie pod wpływem impulsu zegarowego, mówimy wtedy o przerzutniku synchronicznym. Podstawowymi typami przerzutników synchronicznych są: RS, D, T i JK.

            W układach TTL stosuje się:

            • przerzutniki wyzwalane poziomem,

            • przerzutniki wyzwalane zboczem,

            • przerzutniki dwuzboczowe (dwustopniowe).

            Wyzwalanie przerzutnika należy rozumieć jako sposób oddziaływania impulsu zegarowego na wartość zmiennych wyjściowych przerzutnika.

            Wyzwalanie poziomem polega na tym, że sygnał z wejść informacyjnych może oddziaływać na stan przerzutnika tylko wtedy, gdy przebieg zegarowy ma wysoki poziom (H).

            Wyzwalanie zboczem polega na tym, że sygnał z wejść informacyjnych może oddziaływać na stan przerzutnika tylko w czasie narastania (lub opadania) zbocza przebiegu zegarowego.

            W impulsie taktującym wyróżnia się zbocze narastające (pozytywne, dodatnie) oraz zbocze opadające (negatywne, ujemne).

            Wyzwalanie dwuzboczowe polega na tym, że sygnał z wejść informacyjnych w czasie trwania pierwszego zbocza (zbocze narastające) przebiegu zegarowego jest wpisywany do przerzutnika, a w czasie trwania drugiego zbocza (zbocze opadające) jest przekazywany na wyjście.

            Podstawowe parametry przerzutników to:

            • czasy propagacji sygnałów od wejścia synchronizującego do wyjść Q i 0x01 graphic
              ,

            • czasy propagacji sygnałów od wejść asynchronicznych do wyjść Q i 0x01 graphic
              ,

            • czas ustalenia ts (t setup),

            • czas przetrzymywania th (t thold),

            • minimalny czas trwania określonych sygnałów,

            • maksymalna częstotliwość przebiegu synchronizującego.

            Czas propagacji jest to czas, po którym następuje zmiana poziomu logicznego zmiennej wyjściowej przerzutnika.

            Czas ustalania (ts) jest to minimalny czas, w którym sygnał wejściowy musi być obecny na wejściach informacyjnych (synchronizowanych) przerzutnika przed nadejściem wyzwalającego zbocza impulsu synchronizacji.

            Czas przetrzymywania (th) jest to minimalny czas, w którym sygnał wejściowy musi pozostać na wejściu informacyjnym (synchronizowanym) po wystąpieniu wyzwalającego zbocza sygnału synchronizacji.

              1. Przerzutniki asynchroniczne

            Najprostszym przerzutnikiem asynchronicznym jest przerzutnik s r. Posiada on dwa wejścia informacyjne s i r oraz dwa wyjścia Q i 0x01 graphic
            . Wejścia s i r są wejściami asynchronicznymi, tzn. ich stany natychmiast oddziałują na wartości zmiennych Q i 0x01 graphic
            .

            W przerzutniku s r wyróżnia się cztery podstawowe cechy:

            • dominujące wejście wpisujące,

            • dominujące wejście zerujące,

            • aktywny poziom (sygnał) wysoki H, (ustawienie wartości Q = 1 odbywa się sygnałem s = 1, jeśli s = 0 wtedy nie zmienia się stan układu),

            • aktywny poziom (sygnał) niski L, (ustawienie wartości Q = 1 odbywa się sygnałem s = 0, jeśli s = 1 wtedy nie zmienia się stan układu),

            Na podstawie wyżej wymieniony cech możemy zaprojektować cztery układy:

            • aktywny sygnał wysoki i dominujący sygnał wpisujący,

            • aktywny sygnał niski i dominujący sygnał wpisujący,

            • aktywny sygnał wysoki i dominujący sygnał zerujący,

            • aktywny sygnał niski i dominujący sygnał zerujący.

            Na rys. 4.3 przedstawiono siatki Karnaugha dla przerzutników asynchronicznych.

            a)

            0x08 graphic
            sr q

            00

            01

            11

            10

            0

            0

            0

            0

            1

            1

            1

            0

            0

            1

            b)

            0x08 graphic
            sr q

            00

            01

            11

            10

            0

            1

            1

            0

            0

            1

            1

            1

            1

            0

            Rys. 4.3 Siatka Karnaugha dla przerzutników asynchronicznych:
            aktywny sygnał wysoki, dominujące wejście zerujące,
            aktywny sygnał niski, dominujące wejście wpisujące.

            Siatka Karnaugha na rys. 4.3a przedstawia funkcję logiczną dla przerzutnika o wysokim poziomie aktywnym i dominującym wejściu zerującym (r). Z siatki otrzymujemy funkcję logiczną:

            0x01 graphic

            Funkcję tę można zrealizować za pomocą dwóch elementów NOR (rys 4.4).

            0x08 graphic
            0x08 graphic
            0x08 graphic

            Rys. 4.4 Przerzutnik asynchroniczny o aktywnym poziomie wysokim i dominującym wejściem zerującym

            Z siatki Karnaugha (rys. 4.3b) dla przerzutnika o niskim poziomie aktywnym i dominującym wejściu wpisującym (s), otrzymujemy funkcję:

            0x01 graphic

            Na rys. 4.5 przedstawiono najprostszą realizację.

            0x08 graphic
            0x08 graphic

            0x08 graphic

            Rys. 4.5 Przerzutnik asynchroniczny o aktywnym poziomie niskim i dominującym wejściu wpisującym

            Opis pracy przerzutnika można przedstawić za pomocą tablicy charakterystycznej (inaczej tablicy przejść, rys. 4.6).

            sn

            rn

            Qn+1

            0

            0

            Qn

            0

            1

            0

            1

            0

            1

            1

            1

            X

            X - stan nieokreślony,

            Qn - stan poprzedni,

            Rys. 4.6 Tablica charakterystyczna przerzutnika s r z wysokim sygnałem aktywnym.

            Tablica ta opisuje zależność wyjścia Q przerzutnika w chwili n + 1 od wartości zmiennych s i r w chwili n. Przykład tablicy dotyczy przerzutnika zmieniającego wartości na wyjściach Q pod wpływem wysokiego poziomu logicznego sygnału wejściowego. Stan „nieokreślony” w tablicy oznacza, że wartości zmiennych Qn+1 będą zależne od dominacji wybranego wejścia przerzutnika (dominuje s lub r).

              1. Przerzutniki synchroniczne

                1. Wstęp

            Przerzutniki synchroniczne posiadają oprócz wejść informacyjnych synchronicznych i asynchronicznych także wejście synchronizujące, czyli wejście zegarowe.

            Oddziaływanie stanu wejść informacyjnych na stan przerzutnika możliwe jest tylko w obecności impulsu zegarowego na wejściu C.

            Działanie przerzutnika synchronicznego można ogólnie scharakteryzować w sposób następujący:

            • na wejścia informacyjne synchroniczne podaje się odpowiednie stany, stosownie do tablicy stanów przerzutnika,

            • impuls zegarowy umożliwia oddziaływanie tych stanów na stan przerzutnika,

            • stany na wyjściach przerzutnika można ustalić przez chwilową lub dowolnie długo trwającą zmianę stanu wejść informacyjnych asynchronicznych niezależnie od impulsu zegarowego i stanu na wejściach informacyjnych synchronicznych; wejścia asynchroniczne zawsze mają priorytet w stosunku do innych wejść przerzutnika.

            Działanie logiczne przerzutnika synchronicznego najczęściej ilustruje się za pomocą tablicy stanów oraz tablicy charakterystycznej, inaczej zwaną tablicą przejść (częściej używane).

            W tablicy stanów są przedstawione stany na wejściach informacyjnych synchronicznych układu przed nadejściem impulsu zegarowego w chwili tn (Qn) oraz stany na wyjściach po wystąpieniu impulsu zegarowego w chwili tn+1 (Qn+1).

            W tablicy charakterystycznej w kolumnie odpowiadającej stanowi Qn+1 wpisuje się stan, jaki następuje po obecnym stanie Qn, czyli przy danej kombinacji sygnałów wejściowych. W kolumnie Qn+1 mogą wystąpić różne symbole, które mają następujące znaczenie:

            • 0 - zerowanie przerzutnika,

            • 1 - ustawianie przerzutnika,

            • Qn - niezmieniony stan wyjścia,

            • 0x01 graphic
              - zmieniony stan wyjścia, (na przeciwny),

            • X - niedozwolony stan na wejściu, tzn. że nie jest określony stan jaki pojawi się na wyjściach Q i 0x01 graphic
              . Na obu wyjściach mogą się pojawić zera lub jedynki.

            Działanie logiczne przerzutnika synchronicznego można również zilustrować za pomocą tablicy Karnaugha oraz tablicy wzbudzeń.

                1. Przerzutnik synchroniczny D

            Przerzutnik D (przepisujący) stanowi układ pamiętający, opóźniający i synchronizujący. Na rys. 4.7 przedstawiono symbol graficzny przerzutnika D i tablice ilustrujące działanie.

            a)

            0x08 graphic

            b) c)

            Dn

            Qn+1

            Qn

            Dn

            Qn+1

            0

            0

            0

            0

            0

            1

            1

            0

            1

            1

            1

            0

            0

            1

            1

            1

            d) e)

            Qn+1

            Qn

            Qn+1

            Dn

            0x08 graphic
            Dn Qn

            0

            1

            0

            0

            0

            0

            0

            1

            0

            1

            1

            1

            0

            1

            1

            0

            0

            1

            1

            1

            Rys. 4.7 Przerzutnik D: a) symbol graficzny, b) tablica charakterystyczna,
            c) tablica stanów, d) tablica Karnaugha dla Qn+1, e) tablica wzbudzeń.

            Na jego wyjściu Q pojawi się w następnym takcie zegarowym (Qn+1) taki stan, jaki panował na wejściu informacyjnym D w bieżącym takcie zegarowym (Qn).

            Równanie logiczne przerzutnika D otrzymane na podstawie tablicy Karnaugha (rys 4.7d) ma postać:

            Qn+1 = Dn

            Przerzutnik typu D jest typowym przedstawicielem przerzutników, których wartość zmiennej ustalana jest w chwili osiągnięcia wysokiego poziomu (minimum 2,4 V) impulsu zegarowego, czyli w trakcie narastania sygnału taktującego.

            Wartość zmiennej wejściowej D zostaje przesunięta na wyjście Q przednim (dodatnim) zboczem impulsu zegarowego i zapamiętana tak długo, dopóki nie pojawi się następny impuls taktujący. Na rys. 4.8 przedstawiono przebiegi czasowe dla przerzutnika typu D.

            0x08 graphic

            Rys. 4.8 Przebiegi czasowe dla przerzutnika typu D

                1. Przerzutnik synchroniczny T

            Symbol graficzny przerzutnika T i jego działanie zilustrowano na rys. 4.9.

            a) b) c)

            0x08 graphic
            Tn

            Qn+1

            Qn

            Tn

            Qn+1

            0

            0x01 graphic

            0

            0

            0

            1

            0x01 graphic

            0

            1

            1

            1

            0

            1

            1

            1

            0

            d) e)

            Qn+1

            Qn

            Qn+1

            Tn

            0x08 graphic
            Tn Qn

            0

            1

            0

            0

            0

            0

            0

            1

            0

            1

            1

            1

            1

            0

            1

            0

            1

            1

            1

            0

            Rys. 4.9 Przerzutnik T: a) symbol graficzny, b) tablica charakterystyczna,
            c) tablica stanów, d) tablica Karnaugha dla Qn+1, e) tablica wzbudzeń.

            Równanie logiczne przerzutnika T otrzymane na podstawie tablicy Karnaugha (rys. 4.9d) ma postać:

            0x01 graphic

            Zmiana stanu przerzutnika T występuje zawsze podczas opadającego zbocza. Jeżeli Qn jest w stanie wysokim przerzutnik T zmienia swój stan na przeciwny.

                1. Przerzutnik synchroniczny RS

            Na rys. 4.10 przedstawiono symbol graficzny przerzutnika RS i jego działanie.

            a) b) c)

            0x08 graphic
            Sn

            Rn

            Qn+1

            Qn

            Sn

            Rn

            Qn+1

            0

            0

            0x01 graphic

            0

            0

            0

            0

            0

            1

            0

            0

            0

            1

            0

            1

            0

            1

            0

            1

            0

            1

            1

            1

            X

            0

            1

            1

            X

            1

            0

            0

            1

            1

            0

            1

            0

            1

            1

            0

            1

            1

            1

            1

            X

            d) e)

            Qn+1

            Qn

            Qn+1

            Sn

            Rn

            0x08 graphic
            SnRn Qn

            00

            01

            11

            10

            0

            0

            0

            X

            0

            0

            0

            X

            1

            0

            1

            1

            0

            1

            1

            0

            X

            1

            1

            0

            0

            1

            1

            1

            X

            0

            Rys. 4.10 Przerzutnik RS: a) symbol graficzny, b) tablica charakterystyczna,
            c) tablica stanów, d) tablica Karnaugha dla Qn+1,e) tablica wzbudzeń.

            Przerzutnik RS posiada dwa synchroniczne wejścia informacyjne (R i S), wejście zegarowe C oraz dwa wyjścia (Q i 0x01 graphic
            ).

            Zależnie od trzech dozwolonych kombinacji stanów na dwóch wejściach informacyjnych RS, przerzutnik może spełniać 3 funkcje podczas wyzwalania go impulsem zegarowym:

            1. nie zmienić stanu na wyjściach Q i 0x01 graphic
              , jeśli R = S = 0,

            Qn = Qn+1

            1. przyjąć na wyjściu Q stan 0 i na wyjściu 0x01 graphic
              stan 1 (stan na wyjściu Qn = 0), jeśli R = 1 i S = 0,

            2. przyjąć na wyjściu Q stan 1 i na wyjściu 0x01 graphic
              stan 0 (stan na wyjściu Qn = 1), jeśli R = 0 i S = 1.

            Przy stanie R = S = 1 stan wyjściowy przerzutnika jest nieokreślony, tzn. że może zaistnieć albo stan Q = 0 i 0x01 graphic
            = 1, albo Q = 1 i 0x01 graphic
            = 0.

            Równanie logiczne przerzutnika RS otrzymane na podstawie tablicy Karnaugha ma postać:

            0x01 graphic

                1. Przerzutnik synchroniczny JK

            Na rys. 4.11 przedstawiono symbol graficzny oraz tablice ilustrujące jego działanie.

            a) b) c)

            0x08 graphic
            Jn

            Kn

            Qn+1

            Qn

            Jn

            Kn

            Qn+1

            0

            0

            0x01 graphic

            0

            0

            0

            0

            0

            1

            0

            0

            0

            1

            0

            1

            0

            1

            0

            1

            0

            1

            1

            1

            0x01 graphic

            0

            1

            1

            1

            1

            0

            0

            1

            1

            0

            1

            0

            1

            1

            0

            1

            1

            1

            1

            0

            d) e)

            Qn+1

            Qn

            Qn+1

            Jn

            Kn

            0x08 graphic
            JnKn Qn

            00

            01

            11

            10

            0

            0

            0

            X

            0

            0

            0

            1

            1

            0

            1

            1

            X

            1

            1

            0

            0

            1

            1

            0

            X

            1

            1

            1

            X

            0

            Rys. 4.11 Przerzutnik JK: a) symbol graficzny, b) tablica charakterystyczna,
            c) tablica stanów, d) tablica Karnaugha dla Qn+1,e) tablica wzbudzeń.

            0x08 graphic
            Dla przerzutnika JK dozwolona jest kombinacja sygnałów wejściowych J = K = 1, zmieniająca stany na wyjściach przerzutnika na przeciwne.

            Równanie logiczne JK otrzymane na podstawie tablicy Karnaugha ma postać:

            0x01 graphic

            Przerzutnik JK jest przerzutnikiem wyzwalanym dwustopniowo, zwanym również przerzutnikiem Master - Slave. Przerzutnik ten składa się z dwóch przerzutników połączonych kaskadowo (szeregowo) (rys. 4.12). Pierwszy z nich nosi nazwę Master (M) - ang. pan, drugi - Slave (S) - ang. niewolnik.

            a)

            0x08 graphic
            b)

            0x08 graphic

            c)

            Rys. 4.12 Przerzutnik synchroniczny JK wyzwalany dwustopniowo:

            1. schemat logiczny: M - część Master, S - część Slave,

            2. fazy przełączania przerzutnika

            3. przebiegi czasowe.

            W celu zilustrowania działania przerzutnika przedstawiono na rys. 4.12b impuls synchronizujący z wyróżnionymi czterema chwilami:

            1. przerwanie połączenia między częścią Master i częścią Slave (odseparowanie wejść przerzutnika Slave od wyjść Master), zablokowanie bramek 3 i 4;

            2. zmiana stanu przerzutnika Master stosownie do stanu wejść informacyjnych, otwarcie wejść bramek (1 i 2) dla sygnałów J i K oraz zapamiętanie pobudzeń w części Master;

            3. zablokowanie wejść części Master (zablokowanie bramek 1 i 2);

            4. przepisanie wartości zmiennych wyjściowych przerzutnika Master do przerzutnika Slave, tzn. na wyjście układu.

            W rozpatrywanym przerzutniku JK - MS zmiana stanu przerzutnika Master odbywa się podczas zmiany poziomu z 0 na 1 na wejściu zegarowym, natomiast przepisanie informacji z przerzutnika Master do Slave podczas zmiany poziomu na tym wejściu z 1 na 0.

            Przepisanie informacji do Slave odbywa się podczas zmiany poziomu z 1 na 0 jest przedstawione na symbolu graficznym za pomocą kółka przy wejściu zegarowym.

            Przerzutnik JK jest najczęściej stosowanym przerzutnikiem synchronicznym.

            Przerzutnik JK często bywa stosowany jako dzielnik częstotliwości. Wejścia J i K są wtedy łączone równolegle i dołączane do punktu o potencjale wysokim (H). Przełączanie przerzutnika następuje zawsze przy opadającym zboczu sygnału taktującego. Jeżeli obydwa wejścia J i K mają potencjał niski (L), to mimo zmian sygnału taktującego wyjście przerzutnika pozostaje niezmienione.

            Na rys. 4.13 podano symbole ważniejszych przerzutników scalonych.

            0x08 graphic

            0x08 graphic

            Rys. 4.13 Symbole ważniejszych przerzutników scalonych.

            Jeśli nie dysponujemy odpowiednim przerzutnikiem, można go zbudować na podstawie innego rodzaju przerzutnika.

            Zamiana przerzutnika JK na T:

            0x01 graphic

            0x01 graphic

            0x01 graphic
            0x01 graphic

            0x08 graphic

            Zamiana przerzutnika JK na D:

            0x01 graphic

            0x01 graphic

            0x01 graphic

            0x08 graphic

            Zamiana przerzutnika D na T:

            0x01 graphic

            0x01 graphic

            0x08 graphic

            1. REJESTRY

              1. Wstęp

            Rejestrem nazywamy układ składający się z zespołu przerzutników, służący do przechowywania informacji w postaci słów (cztero -, ośmio - lub więcej bitowych ) w systemie cyfrowym. O długości słowa zapamiętywanego w rejestrze decyduje liczba użytych przerzutników.

            Ze względu na sposób wprowadzania i wyprowadzania informacji rejestry dzielą się na:

            • równoległe - umożliwiające równoległe wprowadzanie i wyprowadzanie informacji (całymi słowami) jednocześnie do wszystkich i ze wszystkich pozycji,

            • szeregowe - umożliwiające szeregowe wprowadzanie i wyprowadzanie informacji, tzn. bit po bicie , w takt sygnału zegarowego,

            • szeregowo - równoległe - umożliwiające szeregowe wprowadzanie i równoległe wyprowadzanie informacji,

            • równoległo - szeregowe - umożliwiające równoległe wprowadzanie i szeregowe wyprowadzanie informacji.

            Pierwszy rodzaj rejestrów zalicza się do grupy równoległych, natomiast trzy pozostałe zalicza się ogólnie do rejestrów szeregowych lub przesuwających.

            Wielkości charakteryzujące rejestr to:

            • długość rejestru równa liczbie n zawartych w nim przerzutników,

            • szybkość pracy rejestru równa czasowi trwania lub wyprowadzania informacji dla rejestru równoległego, a dla rejestru szeregowego jest to maksymalna częstotliwość impulsów taktujących.

            Podstawową funkcją rejestrów jest zapamiętywanie informacji. Do tego celu służą przerzutniki, zdolne do zapamiętania wartości jednej zmiennej logicznej. W odróżnieniu od przerzutników rejestry są zdolne zapamiętywać całe słowa. Rejestry spełniają w urządzeniach cyfrowych funkcję pomocniczych pamięci o niewielkich pojemnościach.

            Na rys. 5.1 pokazano podstawowe sposoby wpisywania i pobierania informacji w rejestrach.

            a)

            0x08 graphic

            b)

            0x08 graphic

            c)

            0x08 graphic

            0x08 graphic
            d)

            e)

            0x08 graphic

            Rys.5.1 Podstawowe sposoby wpisywania i pobierania informacji w rejestrach:

            1. szeregowo - szeregowy,

            2. szeregowo - równoległy,

            3. równoległo - szeregowy,

            4. równoległo - równoległy,

            5. pierścieniowy.

            Rejestr, w zależności od trybu pracy (szeregowy, równoległy), może mieć jedno lub więcej wejść informacyjnych, jedno lub więcej wyjść oraz grupę wejść sterujących. Na rys. 5.2 przedstawiono symbol rejestru uniwersalnego A - bitowego.

            0x08 graphic

            Rys. 5.2 Symbol rejestru uniwersalnego A - bitowego.

            Rejestry możemy podzielić na:

            • rejestry asynchroniczne - zbudowane z przerzutników asynchronicznych,

            • rejestry synchroniczne - zbudowane z przerzutników synchronicznych.

              1. Rejestry równoległe

          Najprostszymi rejestrami są rejestry równoległe, ponieważ nie wymagają żadnych połączeń między tworzącymi je przerzutnikami np. układy UCY 74174 i UCY 74175. Z zespołu rejestrów równoległych budowane są tzw. pamięci buforowe, służące do przechowywania informacji podawanej w sposób równoległy. Bufory najczęściej pośredniczą między jednostkami cyfrowymi działającymi z różnymi szybkościami.

          W rejestrze równoległym zarówno wprowadzanie i wyprowadzanie informacji odbywa się równolegle. Rejestr równoległy można sobie wyobrazić jako zestaw przerzutników typu D, których ani wejścia informacyjne D, ani wyjścia nie są ze sobą połączone. Połączone są jedynie wejścia synchronizujące i ewentualnie asynchroniczne wejścia zerujące. Rejestr taki wykonuje mikrooperacje wpisywania do rejestru informacji wejściowej i zerowanie jego zawartości.

          Najogólniej rejestr równoległy można przedstawić jak na rys. 5.3.

          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic

          0x08 graphic
          0x08 graphic

          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic
          0x08 graphic

          Rys. 5.3 Rejestr równoległy.

          Rejestry równoległe asynchroniczne są zbudowane z przerzutników asynchronicznych nie połączonych ze sobą bezpośrednio, a wpisywanie informacji do tych przerzutników odbywa się w tym samym interwale czasu.

          Rejestry asynchroniczne możemy podzielić na:

          • rejestry o „wpisywaniu jednoprzewodowym”,

          • rejestry o „wpisywaniu dwuprzewodowym”.

          Rejestr równoległy „wpisywaniu jednoprzewodowym” zbudowany z przerzutników s r pokazano na rys. 5.4a.

          0x08 graphic
          a)

          b)

          0x08 graphic

          c)

          0x08 graphic

          Rys. 5.4 Rejestr równoległy asynchroniczny z wpisywaniem jednoprzewodowym:

          a), b) przykłady rozwiązań,

          c)przebiegi czasowe.

          W przypadku asynchronicznego wprowadzenia informacji do rejestru, jeżeli dostępne są tylko pozycje We0,...Wen każdego bitu informacji, należy przed podaniem sygnału przepisującego A = 1 wyzerować rejestr.

          Zerowanie wyjść Q odbywa się przewodem Z, natomiast wpisywanie wartości zmiennych We jest bramkowane sygnałem A.

          Na rys. 5.4b przedstawiono rozwiązanie o identycznym działaniu wykorzystujące zmienne s r przerzutników scalonych JK.

          Zasady działania rejestrów ilustrują przebiegi czasowe pokazane na rys. 5.4c. Wpisywanie informacji Wei na wyjście Qi odbywa się jednym przewodem ai po uprzednim wyzerowaniu rejestru, a sygnał wpisujący jest równy A = 1.

          Rejestr równoległy „wpisywaniu dwuprzewodowym” przedstawiono na rys. 5.5.

          0x08 graphic
          a)

          0x08 graphic
          b)

          Rys. 5.5 Rejestr równoległy asynchroniczny z wpisywaniem dwuprzewodowym: a)schemat ideowy, b)przebiegi czasowe.

          W tym układzie zerowanie przerzutników przed wprowadzeniem informacji jest niepotrzebne.

          Informacja Wei zostaje przepisana na wyjście Qi, którego wartość jest określona dwoma sygnałami (dwuprzewodowo) na wejściach s i r przerzutnika.

          Zasada działania rejestru jest pokazana na rys. 5.5b. Dla A = 1, wartość ai jest określona przez wartość zmiennej Wei. Gdy ai = 1 oraz A = 1, następuje wyzerowanie Qi, gdy ai = 0, następuje ustawienie Qi = 1.

          Poprawne ustawienie informacji do rejestru w czasie trwania sygnału wpisującego A = 1 ma miejsce wtedy, gdy informacja Wei w czasie trwania wpisywania nie ulega zmianie.

          Rejestry równoległe synchroniczne są zbudowane z przerzutników synchronicznych, do których informacja Wei jest wpisywana w takt impulsu zegarowego.

          Przykład rejestru synchronicznego przedstawiono na rys. 5.6a.

          0x08 graphic
          a)

          b)

          0x08 graphic

          Rys. 5.6 Rejestr równoległy z wpisywaniem synchronicznym:

          a)schemat ideowy, b)przebiegi czasowe.

          W układzie tym wpisywanie Wei odbywa się na przednim zboczu impulsu taktującego. Pracę rejestru pokazano na rys. 5.6b. Wartości zmiennych Wei muszą być ustalone, zanim pojawi się impuls taktujący T. Wyprzedzenie wartości Wei względem T oznaczono przez ts - czas ustalania. Wyzerowanie Qi nastąpi przednim zboczem sygnału T, gdy czas trwania Wei = 0 i T = 1 jest większy lub równy wartości th, zwanej czasem utrzymania.

            1. 5.3 Rejestry szeregowe

          W rejestrach szeregowych wejścia i wyjścia informacyjne kolejnych przerzutników wchodzących w skład rejestrów są połączone ze sobą tak, że możliwe jest „przepisywanie” zapamiętanych wartości logicznych do sąsiednich przerzutników i w rezultacie „przesuwanie” zapamiętywanego słowa w kolejnych taktach sygnału zegarowego.

          Rejestry szeregowe charakteryzują się możliwością przesuwania wprowadzonej informacji bądź w prawo lub w lewo - rejestry jednokierunkowe, bądź też zarówno w prawo jak i w lewo - rejestry dwukierunkowe, inaczej zwane rewersyjnymi. Rejestry te stosuje się najczęściej jako układy pośredniczące między urządzeniami o różnym sposobie przetwarzania informacji, o różnych szybkościach pracy.

          Rejestry szeregowe zwane przesuwającymi, przyjmują lub przekazują informację szeregowo.

          Na rys. 5.7 i 5.8 przedstawiono przykłady rejestrów, w których informacja jest wprowadzana szeregowo, natomiast jej wyprowadzenie odbywa się szeregowo (rejestr szeregowy) lub równolegle (rejestr przesuwający). Układy te różnią się sposobem taktowania. W pierwszym przypadku układ jest taktowany przednim zboczem impulsu T (rys. 5.7), natomiast w drugim przypadku (rys. 5.8), układ jest taktowany dwustopniowo.

          0x08 graphic

          Rys. 5.7 Rejestr szeregowy.

          0x08 graphic

          Rys. 5.7 Rejestr przesuwający.

          Szeregowe taktowanie przednim zboczem pociąga za sobą problemy związane z właściwym doborem czasów propagacji. W układzie z szeregowo połączonymi przerzutnikami czas propagacji następnego przerzutnika jest większy od czasu propagacji przerzutnika poprzedniego. Wówczas proces przepisywania wartości z wejścia informacyjnego na stopniu następnym nie jest jeszcze zakończony, podczas gdy zakończony został ten proces na stopniu poprzednim. Może się więc zdarzyć, że następny przerzutnik będzie miał zmienioną wartość zmiennej informacyjnej w trakcie procesu przepisywania, przejmując w ten sposób nową wartość tej zmiennej. Nastąpi jak gdyby dwukrotne przepisanie wartości zmiennej informacyjnej w jednym takcie impulsu zegarowego. W układzie taktowanym dwustopniowo nie ma problemów z czasami propagacji.

          Na rys. 5.9 przedstawiono pracę trzybitowego rejestru przesuwającego. Odczyt równoległy słowa wpisanego (zapamiętanego) szeregowo do rejestru następuje równolegle po trzech taktach, natomiast wyprowadzenie szeregowe informacji odbywa się po sześciu taktach impulsu zegarowego, licząc od momentu rozpoczęcia wprowadzania informacji.

          0x08 graphic

          0x08 graphic

          1

          0

          1

          0

          0

          0

          0

          0

          0

          0

          1

          0

          1

          0

          0

          0

          0

          0

          0

          0

          1

          0

          1

          0

          0

          0

          0

          0

          0

          0

          1

          0

          1

          0

          0

          0

          0

          0

          0

          0

          1

          0

          1

          0

          0

          0

          0

          0

          0

          0

          1

          0

          1

          0

          0

          0

          0

          0

          0

          0

          1

          0

          1

          Rys. 5.9 Przesuwanie liczb w rejestrze przesuwającym.

          Rejestry szeregowe służą przede wszystkim do realizacji dwóch mikrooperacji - mnożenia i dzielenia przez dwa (przesuwanie zawartości w prawo i w lewo) oraz do zmiany postaci informacji z szeregowej na równoległą i odwrotnie. Para rejestrów, równoległo - szeregowy i szeregowo - równoległy, może służyć np. do przesyłania długich słów za pomocą niewielkiej liczby przewodów. Słowo wprowadza się równolegle do rejestru równoległo - szeregowego i wyprowadza (nadaje) szeregowo; odbierane kolejne bity słowa wprowadza się do rejestru szeregowo - równoległego i po zakończeniu operacji wyprowadza się równolegle.

          1. PAMIĘCI

            1. 6.1 Wstęp

          Pamięci są to układy logiczne służące do przyjmowania, przechowywania i wydawania zakodowanych informacji (danych). Jednym z rodzajów pamięci są pamięci półprzewodnikowe. Informacja jest zapisywana i pamiętana w postaci ciągów zer - jedynkowych. Jeden element takiej informacji nazywa się bitem (1b), 8 - bitowy element - bajtem (1B), a 16 - bitowy element - słowem 32 - bitowym.

          Najważniejszymi parametrami specyfikowanymi dla pamięci są:

          1) pojemność,

          2) szybkość,

          3) koszt,

          4) pobór mocy.

          Pojemność pamięci (wielkość) oznacza ilość informacji jaką można w niej przechowywać. Mierzy się ją w jednostkach informacji takich jak: bity, bajty lub słowa. Może być ona wyrażona w kilobitach (Kb), megabitach (Mb), gigabitach (Gb), lub kilobajtach (KB), megabajtach (MB), gigabajtach (GB). Pojemność pamięci operacyjnych określa się podając liczbę słów i długość słowa. Liczbę słów podaje się używając przedrostków odpowiadających odpowiednim mnożnikom.

          1 KB odpowiada 210 = 1024 bajtom;

          1 MB odpowiada 220 = 1024 · 1024bajtom;

          1 GB odpowiada 230 = 1024 · 1024 · 1024bajtom.

          Przykładowo pojemność pamięci może wynosić 512Kx64, co oznacza, że jest to 219 słów 64-bitowych. W przypadku gdy słowo ma długość 8 bitów pojemność pamięci jest podawana w bajtach. Wówczas np. 128 KB oznacza 217 bajtów.

          Szybkość pracy pamięci jest parametrem wskazującym na to, jak często procesor lub inne urządzenie może korzystać z niej. Jest ona określana kilkoma parametrami. Są to:

          • czas dostępu (ang. access time),

          • czas cyklu (ang. cycle time),

          • szybkość transmisji (ang. transfer speed).

          Czas dostępu jest to czas jaki upływa od momentu zażądania informacji z pamięci do momentu, w którym ta informacja ukaże się na wyjściu pamięci. Dla pamięci operacyjnych czas ten wynosi od 20 ns do 200 ns.

          Czas cyklu jest to najkrótszy czas jaki musi upłynąć pomiędzy dwoma żądaniami dostępu do pamięci. Zwykle czas ten jest nieco dłuższy od czasu dostępu, a wynika to z fizycznej realizacji pamięci, tj. opóźnień wnoszonych przez układy elektroniczne.

          Szybkość transmisji mierzy się liczbą bitów (bajtów) jaką można przesłać w jednostce czasu pomiędzy pamięcią a innym urządzeniem. Parametr ten jest szczególnie ważny w pamięciach, w których adresowane są fragmenty większe niż słowo (np. pamięci dyskowe). Ponieważ w takich pamięciach odczytuje się lub zapisuje bloki słów, to mniej istotny jest czas dostępu do pamięci, a bardziej istotny jest czas w jakim taka porcja informacji może zostać przesłana. Najczęściej szybkość transmisji mierzy się w bitach lub bajtach na sekundę.

          Nowe technologie pozwalają na ciągłe zmniejszanie kosztu produkcji pamięci i ulepszanie ich parametrów. Dlatego pamięci dość szybko starzeją się, a często po paru latach są wycofywane z użytku. Taki los spotkał rdzeniowe pamięci ferrytowe, które w latach sześćdziesiątych dominowały jako pamięci operacyjne komputerów, a teraz nie są już spotykane. Najniższym kosztem, wśród pamięci operacyjnych komputerów, charakteryzują się pamięci półprzewodnikowe. Jednak one także różnią się między sobą pojemnością i szybkością działania, a co za tym idzie i ceną. Produkowane są tanie układy scalone pamięci półprzewodnikowych, ale charakteryzują się one niezbyt dużą szybkością działania. Natomiast szybkie układy pamięciowe mają niewielkie pojemności a cena ich jest stosunkowo duża. Dlatego poszukuje się nowych rozwiązań w architekturze komputerów, które pozwolą na optymalizację pracy komputerów, a w szczególności parametrów pamięci. Jednym ze stosowanych rozwiązań dla pamięci operacyjnych jest zastosowanie dwóch rodzajów pamięci półprzewodnikowych: pamięci szybkich, ale o mniejszej pojemności i pamięci wolniejszych, ale o dużych pojemnościach. Pamięci wolniejsze umożliwiają budowanie pamięci operacyjnych o dużych pojemnościach, a pamięci szybkie, o mniejszych pojemnościach, umożliwiają przyspieszenie pracy. Szybka pamięć o niewielkiej pojemności współpracująca z pamięcią operacyjną jest nazywana pamięcią kieszeniową (ang. Cache memory).

          Pobór mocy jest też ważnym parametrem, którego znaczenie uwypukla się przy budowaniu pamięci operacyjnych o bardzo dużych pojemnościach, gdzie istnieje problem połączenia dużej liczby układów scalonych i odprowadzenie wydzielanego ciepła. Innym przykładem konieczności dążenia do zmniejszania pobieranej mocy komputerów, a co za tym idzie i pamięci, są komputery kieszonkowe.

          Pamięć jest zbudowana z rejestrów (komórek), w których zapamiętywane jest słowo 1 -, 4 -, 8 - bitowe. W każdej komórce przypisany jest adres, czyli numer zapisany w kodzie dwójkowym oznaczający położenie informacji.

          Jeśli chcemy odczytać (lub zapisać) daną informację, trzeba na wejścia adresowe pamięci podać numer komórki, w której się ona znajduje, a także na wejścia sterujące, odpowiednie sygnały.

          Do zaadresowania N = 2n komórek pamięci potrzebnych jest n wejść adresowych. Dla przykładu: 1 KB = 210 bajtów informacji, trzeba 10 wejść adresowych, a 16 KB = 216 bajtów informacji - 14 wejść adresowych.

          Jak już wspomniano, informacja jest zapisywana i odczytywana w postaci ciągów zero - jedynkowych, dlatego też numery komórek zapisuje się w kodzie szesnastkowym.

          Pamięci posiadają:

          • wejścia adresowe (A0,...,An);

          • wejścia / wyjścia danych (D0,...,Dn);

          • wejścia sterujące (WE, CS, OE), służące do wyboru funkcji wykonywanej przez układ,

          • niekiedy wejścia strobujące adresów (ALE, RAS, OE).

          Ze względu na budowę oraz właściwości pamięci półprzewodnikowe dzieli się na:

          • pamięci o dostępie swobodnym, typu zapis / odczyt

          • pamięci stałe , tylko do odczyt

            1. 6.2 Pamięci o dostępie swobodnym RAM

        Pamięci RAM są wykorzystywane do ciągłego zapisu w postaci słowa lub bitu, zapamiętania i odczytu informacji. Zapewniają one jednakowo szybki dostęp do każdej komórki pamięci. Czynność zapamiętania (odczytu) oznacza konieczność stosowania układów sekwencyjnych, w których informacje są zapisywane (odczytywane) w określonej kolejności. Dlatego dostęp do danej informacji zależy od miejsca (adresu) jej przechowywania i czasu oczekiwania na rozpoczęcie operacji zapisu (odczytu).

        Rozróżnia się pamięci:

        • statyczne SRAM - komórką pamiętającą jest przerzutnik bistabilny (najczęściej asynchroniczny typu RS) w technologii MOS lub technologii bipolarnej. Zapisana informacja utrzymuje się w nich dopóki nie zostanie zastąpiona inną albo nie zaniknie napięcie zasilające.

        • dynamiczne DRAM - funkcje elementów pamiętających pełnią pojemności wejściowe tranzystorów MOS gromadzące ładunek lub odprowadzające go. Zawartość tych elementów musi być odświeżana, musi być uzupełniany ubytek ładunku.

        Blokowy schemat pamięci jest przedstawiony na rys. 6.1 niżej.

        0x08 graphic

        Rys. 6.1 Schemat blokowy pamięci RAM.

        Pamięci RAM komórki pamięciowe ułożone są w słowa, wybierane wejściem adresowym - całość można przedstawić jako dwuwymiarową matrycę składającą się z n słów m - bitowych, czasami podzieloną na robocze obszary zwane np. strefami (ang. zone).

        Dekoder wejściowy oraz wyjścia współpracują z rejestrami równoległymi, gdyż operacja odczytywania i zapisywania w pamięci trwa z reguły kilka cykli zegarowych, podczas których zawartość informacji na szynach adresowej i danych może się zmieniać.

        W zależności od stanu logicznego na wejściu R/W układ komórek pamięciowych przyjmuje informację z rejestru danych (zapisywanie) lub wprowadza na rejestr danych (odczytywanie). Poprzez 2-kierunkowy bufor rejestr przekazuje lub odbiera informację z szyny danych.

        Na rys. 6.2 przedstawiono uproszczony schemat funkcjonalny pamięci o dostępie swobodnym.

        0x08 graphic

        Rys. 6.2 Uproszczony schemat funkcjonalny pamięci o dostępie swobodnym.

        PAMIĘĆ DRAM

        Na rys. 6.3 przedstawiono najekonomiczniejsze rozwiązanie komórki pamięci dynamicznej, stosującej tylko jeden tranzystor MOS oznaczony T1.

        Informacja w niej przechowywana w postaci ładunku zgromadzonego na kondensatorze C1. W wyniku rozładowania kondensatora (Q = 0)powstaje na nim napięcie równe zeru logicznemu, natomiast w wyniku ładowania - napięcie o wartości odpowiadającej logicznej jedynce.

        Przy organizacji adresu jak wyżej, komórka ta ma wejście adresowe ak dla wierszy i jedną linie danych wspólną dla komórek w kolumnie adresowej bj. Tranzystor T2 jest wspólny dla kolumny adresowej bj. Gdy komórka jest wybrana, tzn. na wejściach adresowych ak i bj jest stan wysoki, pojemność C1 jest dołączona do linii danych.

        0x08 graphic

        Rys. 6.3 Schemat elementarnej komórki pamięci dynamicznej.

        Przy zapisie jest doprowadzone do niej ze wzmacniacza zapisu napięcie odpowiadające jedynce lub zeru logicznemu. Przy odczycie ładunek z pojemności C1 przemieszcza się do pojemności C2 przez co napięcie odczytu

        0x01 graphic

        Pojemność C2 >> C1, gdyż składa się z pojemności dren, stąd Uodcz << Uc1. Właściwość ta wymaga dobrych wzmacniaczy odczytu uzupełnionych układem odświeżania pamięci (odświeżanie dokonywane po każdym odczycie i cyklicznie bez względu na odczyt).

        Inne możliwe rozwiązanie polega na zastosowaniu komórek pamięciowych wielotranzystorowych lecz z prostym układem wzmacniacza odczytu i zapisu oraz układem odświeżania.

        Typową strukturę pamięci dynamicznej o pojemności 64 kbitów pokazano na rys. 6.4. Matryca pamięciowa jest zbudowana 256 kolumn i 256 wierszy. W celu zmniejszenia liczby końcowej pamięci dynamicznej i ułatwienia jej odświeżania, wejścia adresowe są multipleksowane.

        Adresowanie polega na podaniu najpierw ośmiu bardziej znaczących bitów adresu (adres wiersza), a następnie ośmiu mniej znaczących bitów (adres kolumny).

        Adres wiersza jest wpisywany z wejść adresowych do rejestru wiersza RR przy narastającym zboczu sygnału RAS (ang. Row Addres Select). Stąd poprzez demultiplekser (dekoder adresu) wybierany jest odpowiadający mu wiersz.

        Adres kolumny jest wpisywany z wejść do rejestru kolumny CR przy narastającym zboczu sygnału CAS (ang. Column Addres Select). Stąd poprzez demultiplekser wybierana jest odpowiadająca mu kolumna. Jednoczesne wybranie wiersza i kolumny w matrycy odpowiada wskazaniu ściśle określonej komórki pamięci.

        0x08 graphic

        Rys. 6.4 Struktura pamięci dynamicznej RAM.

        Gdy wejście WE = 0 wówczas zawartość wybranej komórki jest przesyłana na wyjście układu (operacja czytania danych z komórki pamięci). Gdy natomiast WE = 1 następuje zapisanie informacji wejściowej do komórki wybranej według odpowiedniego adresu.

        PAMIĘĆ SRAM

        Na rys. 6.5 przedstawiono schemat podstawowej komórki pamięci statycznej.

        Zasadniczą częścią komórki jest przerzutnik bistabilny zbudowany z tranzystorów T1 i T2. Tranzystory T3 i T4 pełnią funkcję kluczy przyłączających i odłączających przerzutnik od linii bitów. Podczas odczytywania (zapisywania) informacji z komórki pamięci stanowią one zwarcie, przyłączając przerzutnik do wejścia (wyjścia) - linia bitu.

        Poszczególne pamięci tworzą matrycę zbudowaną z wierszy i kolumn. Położenie komórki w takiej matrycy określa adres składający się z numeru wiersza i numeru kolumny.

        0x08 graphic

        Rys. 6.5 Schemat elementarnej komórki pamięci statycznej RAM.

        Na rys. 6.6 przedstawiono strukturę pamięci statycznej RAM o pojemności wynoszącej 16 KB. Pamięć ta ma trzy wejścia sterujące:

        0x01 graphic
        - uaktywnienie pamięci,

        0x01 graphic
        - zezwolenie na odczyt

        0x01 graphic
        - zezwolenie na zapis.

        0x08 graphic

        Rys. 6.6 Struktura pamięci statycznej RAM: a) symbol ogólny,

        b) przykładowa organizacja.

        Gdy wejście CS = 1, wówczas pamięć jest „wyłączona” i wejścia / wyjścia danych są w stanie wielkiej impedancji (odłączone). Gdy CS = 0, pamięć jest aktywna. Jeżeli wówczas OE = 0, to układ wykonuje operację odczytu danych z komórek o numerze określonym za pomocą wejść adresowych. Jeżeli natomiast WE = 0, to układ wykonuje operację zapisu danych do pamięci.

        Pamięć ta jest zbudowana z ośmiu matryc po 128 wierszy i 128 kolumn. Do jej zaadresowania potrzeba 14 wejść adresowych. Bardziej znaczące bity adresu (A0 - A6) są podawane na wejścia adresowe demultipleksera, w celu wybrania jednego ze 128 wierszy. Z kolei mniej znaczące bity adresu (A7 - A13) są podawane na wejścia adresowe innego demultipleksera, w celu wybrania jednej ze 128 kolumn. W ten sposób zostało wybranych 8 komórek (o takim samym adresie) po jednej z każdej matrycy, co umożliwia odczyt lub zapis jednego słowa 8-bitowego (bajta).

        Spotyka się różne rozwiązania adresowania, zapisywania i odczytywania pamięci RAM. W stosowanych aktualnie pamięciach o dużych pojemnościach adresowanie jest dwuwymiarowe, podzielone na wiersze i kolumny.

        Pamięci DRAM są wolniejsze od pamięci SRAM. Stosuje się je jednak znacznie częściej, ponieważ są tańsze. Na jedną komórkę pamięci dynamicznej potrzeba czterokrotnie mniej tranzystorów, co powoduje czterokrotne zmniejszenie pobieranej mocy i zwiększenie gęstości upakowania (na takiej samej powierzchni mieści się cztery razy więcej komórek pamięci dynamicznej niż statycznej).

        Pamięci RAM o dużych rozmiarach (rzędu Mbitów) są również realizowane jako dynamiczne. Tylko technologia MOS jest przydatna do tego celu gdyż tylko tranzystory MOS mogą zapewnić wielkie rezystancje wejściowe i wyjściowe oraz długotrwałe utrzymanie ładunku na pojemności. Ładunek ten utrzymuje się przez czas rzędu ms, pamięci DRAM wymagają więc cyklicznego odświeżania z f = kilkaset Hz.

          1. Pamięci stałe ROM

        Pamięć stała zawiera informację, która nie może być zmieniona w czasie pracy systemu cyfrowego, realizuje tylko operację odczytu. Zapis informacji jest dokonywany jednokrotnie u producenta.

        Pamięć ROM dla każdego adresu doprowadzonego do jej wejścia wyprowadza na wyjście (zazwyczaj równolegle, 4- lub 8- bitowe) pewien zestaw bitów np. pamięć o organizacji 1Kx8 wydaje 1024 zestawy ośmiobitowe w odpowiedzi na 1024 stany wejściowe określone przez stany 10 linii adresowych (rys.6.7).

        0x08 graphic

        Rys. 6.7 Struktura pamięci ROM.

        Pamięci stałe nie tracą zapisanej w nich informacji po wyłączeniu (przy zaniku) napięcia zasilającego.

        Ze względu na sposób programowania pamięci ROM wyróżnia się:

        • Pamięć programowana maską MROM - bitową strukturę jej wnętrza ustala się w czasie produkcji (macierz tranzystorów MOS).

        • Programowalna pamięć stała PROM - programowana przez użytkownika przez przepalanie cienkich połączeń po odpowiednim ich zaadresowaniu i po odprowadzeniu właściwych sygnałów sterujących. Pamięci PROM są dość szybkie (25 ÷ 50 ns), które pobierają dużo mocy (bipolarne 0,5 ÷ 1 W), o małych i średnich pojemnościach (od 32x8 do 8Kx8). Są to pamięci bipolarne i są wykonywane w technice MOS.

        • Reprogramowalna pamięć stała EPROM- bity informacji są zapisywane jako ładunki elektryczne na pływających bramkach tranzystorów MOS. Kasowanie tych ładunków z bramek następuje przez naświetlenie matrycy pamięciowej promieniami UV - ultrafioletowymi o dużej intensywności przez kilkadziesiąt minut (gdy w obudowie tych pamięci znajdują się okienka kwarcowe przepuszczające ultrafiolet), lub promieniami X (gdy obudowa układu jest nieprzezroczysta). Pamięci EPROM są niezbyt szybkie (200 ns), pobierają niewiele mocy i mają duże pojemności (od 8Kx8 do 12Kx8). Pamięci tego typu produkuje się techniką NMOS i CMOS.

        • Elektrycznie kasowalne PROM - EEPROM - zachowuje się jak pamięć EPROM, ale jest programowana i kasowana elektrycznie, napięciem +5 V, bez wyjmowania z układu aplikacyjnego. Polega to na podaniu impulsów prądowych o określonych parametrach (wartość, kształt, czas trwania), które powodują przepalenie połączeń matrycy pamięciowej. Czas programowania pamięci EEPROM jest długi i wynosi ok. 100 μs.

            1. Zastosowania pamięci ROM (PROM)

      Pamięci ROM (PROM) wykorzystywane są głównie do:

      • konwersji kodów, '

      • realizacji funkcji logicznych,

      • realizacji funkcji arytmetycznych,

      • realizacji generatorów funkcji,

      • tablicowania funkcji,

      • mikroprogramowania.

      Zastosowanie pamięci stałych do realizacji transkoderów jest oczywiste. Kod wejściowy jest podawany na wejścia adresowe pamięci, w której wierszach każdemu adresowi jest przyporządkowane odpowiednie słowo kodu wyjściowego, pojawiające się na wyjściach pamięci (rys. 6.8).

      0x08 graphic

      Rys. 6.8 Pamięć ROM (PROM) w układzie transkodera.

      Pamięci stałe mogą być wykorzystywane do realizacji funkcji logicznych. Przykładowo, pamięć o pojemności 256 słów 4-bitowych może być zastosowana do realizacji czterech funkcji ośmiu zmiennych (8 bitów adresowych). Przez łączenie równoległe pamięci można zwiększyć liczbę wejść. Cztery pamięci o pojemności 256x4 bity umożliwiają realizację 16 funkcji 8 zmiennych. W wielu publikacjach spotyka się informację, że 8 ÷ 16 bitów pamięci stałej zastępuje jedną bramkę logiczną.

      Pamięci stałe mogą być wykorzystane do realizacji podstawowych operacji arytmetycznych dodawania, odejmowania, mnożenia i dzielenia. W przypadku mnożenia liczb dwójkowych część wejść adresowych pamięci zostaje przyporządkowana mnożnej, a część mnożnikowi. Kombinacja zer i jedynek słowa adresowego, utworzona przez bity mnożnej i mnożnika, wskazuje słowo w pamięci określające wartość iloczynu. Bezpośrednie generowanie wyniku iloczynu wymaga zastosowania pamięci o dużych pojemnościach. Przykładowo, pomnożenie dwu czterobitowych liczb dwójkowych wymaga pamięci o pojemności 256x8 bitów. Można jednak postępować nieco odmiennie.

      Przykład:

      Pomnożyć 4-bitową liczbę A przez 8-bitową liczbę B.

      0x01 graphic

      0x01 graphic

      Jeśli czynnik B zostanie przedstawiony w postaci:

      0x01 graphic

      wówczas iloczyn AB może być zapisany jako:

      0x01 graphic

      Dwa powyższe iloczyny można zrealizować z dwu pamięci o pojemności 256x8 bitów, a następnie zsumować wyniki częściowe (rys. 6.9). Podobnie można postępować w przypadku dla większych, niż rozpatrywane, zakresów liczbowych. Należy podkreślić dużą szybkość realizacji operacji mnożenia w porównaniu z układami klasycznymi. Mnożenie jest bowiem realizowane w czasie trwania jednego taktu.

      0x08 graphic

      Rys. 6.9 Schemat ideowy układu mnożącego w oparciu o pamięć stałą.

      Pamięci stałe są często wykorzystywane do realizacji generatorów funkcji. Przykład implementacji generatora funkcji wykorzystującego pamięć stałą jest przedstawiony na rys. 6.10. Sygnały z wyjść licznika 8-bitowego są podawane na wejścia adresowe pamięci stałej. natomiast sygnały z wyjść pamięci na wejścia przetwornika C/A. Zapisując w pamięci 256 słów, odpowiadających kolejnym wartościom funkcji, można w prosty sposób generować funkcje o różnych kształtach. W opisywanym przykładzie przyrost zawartości licznika o 1 odpowiada przesunięciu fazy o 256 stopni. Na wyjściu przetwornika C/A pojawi się przebieg schodkowy. W celu uzyskania przebiegu monotonicznego należy do wyjścia przetwornika dołączyć filtr.

      0x08 graphic

      Rys. 6.10 Schemat ideowy generatora funkcji.

      W oparciu o pamięci stałe są budowane mikroprogramowane urządzenia sterujące, umożliwiające realizację dowolnie skomplikowanych sieci działań.

      Typowe mikroprogramowane urządzenie sterujące składa się z:

      • pamięci stałej,

      • układu zmiany adresu (adres zmieniany jest w zależności od postaci ostatniej instrukcji oraz od stanu warunków wymuszających skoki warunkowe i bezwarunkowe),

      • rejestru mikroinstrukcji.

      Urządzenie działa w sposób sekwencyjny, w takt impulsów taktujących. Informacja wyjściowa (mikrooperacja) zmienia się raz na jeden cykl (takt). Słowo wyjściowe matrycy pamięci składa się z dwóch podstawowych części. Pierwsza określa adres następnej mikroinstrukcji z uzależnieniem warunkowym, druga natomiast określa mikroinstrukcje sterujące. Długość części pierwszej słowa wyjściowego z pamięci ogranicza liczbę możliwych adresów następnych mikroinstrukcji, natomiast długość drugiej części słowa wyjściowego z pamięci określa liczbę i rodzaj rozkazów wykonawczych. Jest ona zwykle podzielona na grupy, w których umieszczone są wzajemnie wykluczające się mikrooperacje sterujące. Mikroprogramowane urządzenie sterujące działa w sposób cykliczny. W ramach każdego cyklu następuje:

      • wygenerowanie słowa wyjściowego z pamięci z dokonaniem ewentualnej modyfikacji adresu słowa pamięci,

      • przekazanie do układów wykonawczych danych określających następną mikrooperację sterującą.

      1. LICZNIKI CYFROWE

        1. Wiadomości ogólne

      Licznikiem nazywamy sekwencyjny układ cyfrowy służący do zliczania i zapamiętywania liczby impulsów zero - jedynkowych, podawanych w określonym przedziale czasu na jego wejście zliczające. Licznik cyfrowy jest zbudowany z odpowiednio ze sobą połączonych przerzutników TTL.

      Ogólnie biorąc, licznik posiada wejścia dla impulsów zliczających, wejście ustawiające (zerujące) jego stan początkowy asynchronicznie względem impulsów zliczanych lub synchronicznie z nimi.

      Ustawienie wszystkich przerzutników, wchodzących w skład licznika, w stan 0 nazywa się zerowaniem. Symbol graficzny licznika pokazano na rys. 7.1, na którym zaznaczono wejście impulsów zliczanych, wejście ustawiające stan początkowy oraz wyjścia.

      0x08 graphic

      Rys. 7.1 Symbol graficzny licznika.

      Na podstawie stanu wyjść można określić ile impulsów pojawiło się na wejściu układu od chwili, kiedy licznik był ostatnio w stanie początkowym.

      Każdy licznik posiada określoną pojemność (zwana długością cyklu), tzn. może zliczyć określoną liczbę impulsów, co odpowiada liczbie stanów układu przyjmowanych przez licznik w jednym pełnym cyklu.

      Licznik jest układem sekwencyjnym, zbudowany z przerzutników i układu kombinacyjnego zapewniającego takie ich sterowanie, aby pod wpływem impulsu wejściowego przeszły do kolejnego stanu działania. Licznik posiada s - stanów, a kolejne stany licznika są ponumerowane liczbami: 0, 1, 2,... s - 2, s - 1. Każdemu określonemu stanowi licznika odpowiada jedna, ściśle określona kombinacja stanów przerzutników, z których jest on zbudowany. Jeden przerzutnik może być w dwu stanach, dwa przerzutniki mogą dać kombinację 2⋅2 = 22 = 4 stanów, a n przerzutników może opisać 2n stanów. Dlatego do utworzenia licznika o s stanach potrzeba n przerzutników:

      (2n-1 s 2n)

      Pojemność zależy od liczby przerzutników wchodzących w skład licznika.

      Ze względu na długość cyklu liczniki można podzielić na:

      1. Liczniki o stałej długości cyklu,

      2. Liczniki o nastawionej długości cyklu.

      Ze względu na sposób powtarzania cyklu liczniki można podzielić na:

      • Liczniki modulo s (dzielnik liczby lub częstotliwości impulsów przez s),

      • Liczniki do s.

      Licznikiem modulo s nazywamy licznik posiadający s wyróżnialnych stanów, przez które przechodzi cyklicznie (powtarza cykl) pod wpływem impulsów wejściowych.

      Licznikiem do s nazywamy licznik posiadający s wyróżnialnych stanów, przez które przechodzi jednokrotnie. Jeśli licznik do s, po osiągnięciu ostatniego stanu cyklu, ma mieć ponownie s wyróżnialnych stanów, to należy sprowadzić go do stanu początkowego.

      Ze względu na kierunek zliczania liczniki dzielimy na:

      1. Liczniki jednokierunkowe:

      • zliczające w przód, jeśli liczby reprezentujące zawartość informacyjną licznika wzrastają w trakcie liczenia kolejnych impulsów,

      • zliczające wstecz, jeśli liczby reprezentujące zawartość informacyjną licznika maleją w trakcie liczenia kolejnych impulsów,

      1. Liczniki dwukierunkowe

      Liczniki dwukierunkowe (rewersyjne) są to liczniki zliczające impulsy zarówno w przód jak i wstecz.

      Ze względu na sposób oddziaływania impulsów zliczanych na stan przerzutników licznika, liczniki można sklasyfikować następująco:

      1. Liczniki asynchroniczne (szeregowe),

      2. Liczniki synchroniczne (równoległe).

      W liczniku asynchronicznym impulsy zliczane są podawane tylko na jedno z wejść zegarowych przerzutników licznika.

      W liczniku synchronicznym impulsy zliczane są podawane na wejścia zegarowe wszystkich przerzutników jednocześnie wchodzących w skład licznika.

      Układ asynchronicznego licznika jest układem szeregowym (połączenie szeregowe). Natomiast układ synchronicznego licznika jest układem równoległym. Dlatego liczniki asynchroniczne są nazywane licznikami szeregowymi, a liczniki synchroniczne - licznikami równoległymi.

      Układ równoległy zapewnia jednoczesność zmian stanów przerzutnika, a więc najkrótszy czas propagacji i największą częstotliwość impulsów wejściowych.

        1. Liczniki asynchroniczne

      W licznikach asynchronicznych (szeregowych) zmiana stanu kolejnego przerzutnika odbywa się pod wpływem zmiany stanu przerzutnika poprzedniego. Najprostszym przykładem licznika szeregowego jest kaskada n szeregowo połączonych przerzutników.

      Liczniki szeregowe realizujemy najczęściej na przerzutnikach typu T lub JK o zwartych wejściach informacyjnych.

      Algorytm projektowania liczników szeregowych:

      1. Ustalić liczbę przerzutników niezbędnych do realizacji licznika (w zależności od pojemności licznika 2n).

      2. Na wejścia informacyjne T lub JK (zwarte) - podać „1”.

      3. Jeżeli licznik liczy w przód - połączyć wejścia zegarowe następnego przerzutnika z wyjściem „Q” poprzedniego.

      Przykład 7.1:

      Na rys. 7.2 przedstawiono schemat logiczny licznika szeregowego zbudowanego z trzech przerzutników JK, zliczającego w przód.

      0x08 graphic
      a)

      b)

      We

      Q0

      Q1

      Q2

      0

      1

      2

      3

      4

      5

      6

      7

      8

      0

      1

      0

      1

      0

      1

      0

      1

      0

      0

      0

      1

      1

      0

      0

      1

      1

      0

      0

      0

      0

      0

      1

      1

      1

      1

      0

      c)

      0x08 graphic

      Rys. 7.2 Licznik szeregowy zliczający w przód o pojemności 8:

      a) schemat logiczny, b) tablica stanów, c) przebiegi czasowe.

      Wejścia synchroniczne przerzutników JK są przyłączone do jedynki logicznej. Czasami mogą być one nie użyte, co jest równoznaczne z przyłączeniem ich do jedynki logicznej.

      Impuls zliczany We jest wprowadzony na wejście zegarowe pierwszego przerzutnika. Wejścia zegarowe kolejnych przerzutników są połączone z wyjściem Q poprzednich przerzutników. Zmienna Q0 reprezentuje wagę 20 - czyli 1, waga zmiennej Q1 wynosi 21 - czyli 2, a zmiennej Q2 - 22, czyli 4.

      W chwili początkowej wszystkie przerzutniki są w stanie 0 (Q0 = Q1 = Q2 = 0). Jeśli na wejście zegarowe pierwszego przerzutnika zostanie podany impuls, to powoduje on zmianę stanu jego wyjścia Q0 z 0 na 1. Stan drugiego przerzutnika nie ulegnie zmianie, ponieważ na wejściu zegarowym przerzutnika Q1 nie wystąpiła zmiana sygnału z 1 na 0.

      Pod wpływem drugiego impulsu pierwszy przerzutnik zmieni stan z 1 na 0. Ta zmiana stanu powoduje zmianę stanu drugiego przerzutnika z 0 na 1.

      Pod wpływem trzeciego impulsu pierwszy przerzutnik zmieni stan z Q2 na 1. Ta zmiana nie powoduje zmiany stanu przerzutnika drugiego.

      Czwarty impuls zmieni stan przerzutnika pierwszego z 1 na 0. Zmiana ta powoduje zmianę stanu z 1 na 0 przerzutnika drugiego, a ta z kolei zmianę stanu z 0 na 1 przerzutnika trzeciego.

      Przed pojawieniem się ósmego impulsu wszystkie przerzutniki licznika są w stanie 1. Po ósmym impulsie pierwszy przerzutnik zmieni stan z 1 na 0. Ta zmiana powoduje zmianę stanu z 1 na 0 drugiego przerzutnika, a ta z kolei zmianę stanu z 1 na 0 przerzutnika trzeciego.

      Przedstawiony licznik charakteryzuje się więc ośmioma stanami. Przerzutnik pierwszy tego licznika zmienia swój stan za każdym razem pojawienia się zmiany impulsu wejściowego z 1 na 0, a więc dzieli częstotliwość impulsów wejściowych przez 2. Drugi przerzutnik zmienia swój stan za każdym pojawieniem się zmiany stanu z 1 na 0 przerzutnika pierwszego, a więc na wyjściu Q1 otrzymuje się impulsy o częstotliwości cztery razy mniejszej, niż częstotliwość impulsów wejściowych. Natomiast trzeci przerzutnik zmieni swój stan, jeśli poprzednie przerzutniki zmieniają swój stan z 1 na 0, otrzymując impulsy o częstotliwości osiem razy mniejszej (pojawia się jeden impuls na osiem impulsów wejściowych).

      Uzyskano w ten sposób kaskadę trzech przerzutników asynchronicznych pracująca zgodnie z przebiegami czasowymi z rys. 7.2c.

      Jeśli licznik ma liczyć w tył (odejmować) - wejścia zegarowe łączymy z wyjściem poprzedniego.

      Przykład 7.2:

      Na rys. 7.3 przedstawiono przykład licznika szeregowego odejmującego, który pomniejsza swój stan w takt impulsu zliczanego oraz przebiegi czasowe.

      a)

      0x08 graphic

      0x08 graphic
      b)

      Rys. 7.3 Szeregowy licznik odejmujący: a) schemat połączeń,

      b) przebiegi czasowe.

      Jeżeli chcemy zaprojektować licznik a s nie jest równe s = 2n.

      Tworzymy licznik o większej liczbie stanów takiej, że s = 2n, ale jednocześnie s > 2n-1. Do takiego licznika dołącza się bramki NAND lub AND w zależności od tego, na co reagują wejścia asynchroniczne przerzutników (NAND - gdy na „0”). Bramki te służą do ograniczania impulsów zliczanych przez licznik.

      Na bramkę podajemy z wyjść przerzutników impuls przy którym nastąpi zerowanie licznika. Natomiast wyjście bramki łączymy z wejściami ustawiającymi.

      Przykład 7.3:

      Na rys. 7.4 przedstawiono licznik pracujący w dwóch kierunkach. Jest on połączeniem liczników z rys. 7.2 i 7.3. Zmiany kierunku zliczania dokonuje się za pomocą sygnału K. Zmiana wartości K może spowodować wyzwolenie przerzutnika. Z tego powodu po zmianie kierunku zliczania należy ustawić warunek początkowy, od którego licznik zaczyna swoją pracę.

      0x08 graphic

      Rys. 7.5 Licznik szeregowy rewersyjny.

      K - zmienna programująca kierunek zliczania.

      Przykład 7.4:

      Na rys. 7.5a przedstawiono licznik modulo 3. Do określenia liczby przerzutników zastosujemy zależność (2n-1 s 2n). Liczba n spełniająca ten warunek wynosi 2.Tworzymy więc licznik binarny złożony z dwóch przerzutników.

      0x08 graphic
      a)

      0x08 graphic
      0x08 graphic
      b)

      Rys. 7.5 Licznik modulo 3: a) schemat połączeń,

      b) przebiegi czasowe.

      Zerowanie licznika nastąpi, gdy pojawi się impuls odpowiadający liczbie 3, czyli 112. Na wejścia bramki podajemy B = A = 1, a na wyjściu bramki pojawi się stan niski („0”) zerujący wszystkie przerzutniki licznika.

      Jeśli stanem początkowym jest stan 0 (stan wyjść BA = 0), pod wpływem impulsu wejściowego wyjście A przechodzi do stanu 1. Na wejściu bramki NAND są wówczas sygnały: 1, 0, a na jej wyjściu stan 1 (rys. 7.4b). Pod wpływem drugiego impulsu wejściowego licznik przechodzi do stanu 2. Na wejściu bramki NAND są wówczas sygnały: 1, 0, a na jej wyjściu stan 1. Pod wpływem następnego impulsu wejściowego na wyjściu licznika pojawi się stan 3. Wówczas na wyjściu bramki NAND, a więc i na wejściu R pojawi się sygnał 0, który spowoduje wyzerowanie licznika, czyli powrót do stanu 0. Licznik ten ma trzy stany, przez które przechodzi cyklicznie. Jest to więc licznik modulo 3.

      Przykład 7.5:

      Na rys. 7.6 pokazano licznik zliczający od 3 do 13 włącznie. Do zapisania liczb w zakresie od 3 do 13 w kodzie dwójkowym potrzebne są cztery bity, czyli cztery przerzutniki. Na bramkę NAND podajemy z wyjść przerzutników impuls przy którym następuje zerowanie licznika, czyli impuls 14, Q3Q2Q1Q0 = 1110.Natomiast wyjście bramki łączymy z wejściami ustawiającymi, czyli początek zliczania zaczyna się od 3, Q3Q2Q1Q0 = 0011. Jeżeli jest 0, łączymy wyjście bramki z wejściem zerującym 0x01 graphic
      , jeśli 1 - z wejściem 0x01 graphic
      .

      0x08 graphic

      Rys. 7.6 Licznik zliczający od 3 do 13.

      Odmianą liczników są tzw. dzielniki częstotliwości tzn. układy, które po określonej liczbie impulsów zliczanych generują jeden impuls wyjściowy.

      Największy zakres zastosowań spośród wszystkich liczników asynchronicznych mają tzw. dekady liczące, tj. dzielniki przez 10. Zwykle jest to połączenie dwójki liczącej z dzielnikiem przez 5. Przykładem takiego rozwiązania jest licznik asynchroniczny 7490 przedstawiony na rys. 7.7a. Jest to licznik modulo 2 i licznik modulo5 z oddzielnymi wejściami i wyjściami. Może on pracować jako dzielnik przez 10 zliczający w kodzie BCD (wyjście Q0 połączone z wejściem Q1Q3), lub jako licznik modulo 10 z symetrycznym przebiegiem wyjściowym (wyjście Q3 połączone z wejściem Q0), o przebiegach czasowych przedstawionych na rys. 7.7b.

      0x08 graphic
      a)

      0x08 graphic
      b)

      Rys. 7.7 Scalony licznik asynchroniczny 7490: a) schemat połączeń,

      b) przebiegi czasowe.

      Licznik ten posiada dwa wejścia sterujące:

      • R9(1) i R9(2) - ustawia (w dwójkową reprezentację liczby 9),

      • R0(1) i i - zerowania.

      Aby wyzerować wyjścia tego licznika, należy na oba wejścia R0(1) i R0(2) podać sygnał 1, natomiast aby ustawić jego wyjścia w dwójkową reprezentację liczby 9, należy na oba wejścia R9(1) i R9(2) podać sygnał 1.

      Zadanie:

      1. Zaprojektować licznik liczący od 3 do 14 w przód (zerowanie przy impulsie 15).

      2. Zaprojektować licznik liczący od 7 do 3 w przód (zerowanie przy impulsie 4).

      3. Zaprojektować licznik liczący od 9 do 4 w tył (zerowanie przy impulsie 3).

        1. Liczniki synchroniczne

      Liczniki synchroniczne (równoległe) są budowane z na dowolnym typie przerzutników w oparciu o siatki Karnaugha . Zmiany stanów poszczególnych przerzutników odbywają się jednocześnie w takt impulsów zegarowych X wprowadzanych równolegle na każdy z przerzutników.

      0x08 graphic
      Wartość zmiennej wyjściowej Qi określają wartość zmiennych wejściowych synchronicznych, określanych przez kombinacyjny układ programujący (UP).

      Rys. 7.8 Schemat blokowy licznika synchronicznego.

      UP - Kombinacyjny Układ Programujący.

      Na rys. 7.8 przedstawiono schemat blokowy licznika synchronicznego, w którym układ tworzą niezależne przerzutniki. Przejście licznika z jednego stanu do drugiego odbywa się na podstawie zadanych wzbudzeń zmiennych informacyjnych. Wektor A reprezentuje dodatkowe zmienne programujące, pozwalające zmienić sposób pracy licznika.

      W rozdziale 4 przedstawiono tablice ilustrujące działanie przerzutników synchronicznych. Przy projektowaniu liczników synchronicznych należy wziąć pod uwagę tablice wzbudzeń. Zadane są przejścia przerzutników, bo zadany jest program pracy licznika, natomiast należy ustalić wzbudzenia przerzutników dla zapewnienia tych przejść.

      Tablice wzbudzeń wszystkich przerzutników synchronicznych przedstawiono na rys. 7.9.

      Qit → Qit+1

      Tt

      Jt Kt

      Dt

      St Rt

      0 → 0

      0 → 1

      1 → 0

      1 → 1

      0

      1

      1

      0

      0

      1

      -

      -

      -

      -

      1

      0

      0

      1

      0

      1

      0

      1

      0

      -

      -

      0

      1

      0

      Rys. 7.9 Tablica wzbudzeń przerzutników synchronicznych.

      Układ programujący (UP) zawiera funkcje kombinacyjne określające wartości zmiennych informacyjnych poszczególnych przerzutników w takcie t, które wymuszą zadaną wartość Qi w takcie t + 1, po przejściu impulsu taktującego.

      Liczniki równoległe projektujemy następująco:

      1. Ustalić liczbę przerzutników w zależności od pojemności licznika.

      2. Ustalić i wykonać tabele stanów licznika (uwzględniając tabele wzbudzeń przerzutników, na których realizujemy licznik). Polega to na rozpisaniu kolejności następujących po sobie stanów i odpowiadającym im stanów przerzutnika, czyli wypełnienie tablicy stanów, a następnie na podstawie tablicy wzbudzeń przerzutnika wypełnia się tablicę Karnaugha, osobno dla poszczególnych wejść informacyjnych każdego przerzutnika.

      3. Zaprojektować układ kombinacyjny ograniczający zliczanie.

      Przykład 7.6:

      Zaprojektować licznik równoległy zliczający od 5 do 14 na przerzutnikach JK.

      Do zapisania liczb od 5 do 14 w kodzie dwójkowym potrzeba czterech bitów, czyli cztery przerzutniki.

      5 = 0101 = Q3Q2Q1Q0

      14 = 1110 = Q3Q2Q1Q0

      W tablicy stanów (rys. 7.10b) zapisujemy stany jakie będą występowały od 5 do 14 w kodzie dwójkowym. Stany wyjściowe odpowiadają stanom przerzutników, które wyznaczamy na podstawie tablicy wzbudzeń (rys. 7.10a).

      a)

      Qn

      Qn+1

      J

      K

      0

      0

      0

      -

      0

      1

      1

      -

      1

      0

      -

      1

      1

      1

      -

      0

      b)

      0x08 graphic
      0x08 graphic
      0x08 graphic
      Stany

      8

      4

      2

      1

      J3

      K3

      J2

      K2

      J1

      K1

      J0

      K0

      Q3

      Q2

      Q1

      Q0

      0x08 graphic
      5

      0

      1

      0

      1

      0

      -

      -

      0

      1

      -

      -

      1

      6

      0

      1

      1

      0

      0

      -

      -

      0

      -

      0

      1

      -

      7

      0

      1

      1

      1

      1

      -

      -

      0

      -

      1

      -

      1

      8

      1

      0

      0

      0

      -

      0

      0

      1

      0

      -

      1

      -

      9

      1

      0

      0

      1

      -

      0

      0

      -

      1

      -

      -

      1

      10

      1

      0

      1

      0

      -

      0

      0

      -

      -

      0

      1

      -

      11

      1

      0

      1

      1

      -

      0

      1

      -

      -

      1

      -

      1

      12

      1

      1

      0

      0

      -

      0

      -

      0

      0

      -

      1

      -

      13

      1

      1

      0

      1

      -

      0

      -

      0

      1

      -

      -

      1

      14

      1

      1

      1

      0

      -

      1

      -

      0

      -

      1

      1

      -

      Rys. 7.10 Licznik równoległy zliczający od 5 do 14:

      1. tablica wzbudzeń przerzutnika JK,

      2. tablica stanów.

      Na przykład dla Q3 mamy (rys. 7.11):

      Q3

      J3

      0x08 graphic
      0

      0

      0

      0

      0

      1

      1

      -

      1

      -

      1

      -

      1

      -

      1

      -

      1

      -

      1

      -

      Rys. 7.11 Stany wyjściowe J3.

      Aby otrzymać stan J3 - 5 łączymy stan 5 i 6 Q3 sygnału wyjściowego i mamy: 00 - daje nam (z tablicy wzbudzeń dla J) 0, 00 - daje nam również 0, 01 - otrzymujemy 1. Jako końcowy stan dla J3, łączymy ostatni stan 14 z pierwszym 5.

      Na podstawie tablicy stanów sporządzamy tablice Karnaugha dla wejść informacyjnych poszczególnych przerzutników (JnKn) (rys. 7.12a, b, c), a na podstawie tablic Karnaugha wyznaczamy funkcje sterujące dla wejść informacyjnych.

      0x08 graphic

      00

      01

      11

      10

      00

      01

      11

      10

      00

      -

      -

      -

      -

      00

      -

      -

      -

      -

      01

      -

      0

      1

      0

      01

      -

      -

      -

      -

      11

      -

      -

      -

      -

      11

      0

      0

      -

      1

      10

      -

      -

      -

      -

      10

      0

      0

      0

      0

      J3 = Q1Q0 K3 = Q2Q1

      00

      01

      11

      10

      00

      01

      11

      10

      00

      -

      -

      -

      -

      00

      -

      -

      -

      -

      01

      -

      -

      -

      -

      01

      -

      0

      0

      -

      11

      -

      -

      -

      1

      11

      0

      0

      -

      0

      10

      0

      0

      -

      0

      10

      1

      0

      -

      -

      J2 = Q2 K2 = 0x01 graphic

      00

      01

      11

      10

      00

      01

      11

      10

      00

      -

      -

      0

      0

      00

      -

      -

      -

      -

      01

      -

      1

      1

      1

      01

      -

      -

      1

      0

      11

      -

      -

      -

      -

      11

      -

      -

      -

      1

      10

      -

      -

      -

      -

      10

      -

      -

      1

      0

      J1 = Q2 K1 = Q3Q2 + Q0

      J0 = „1”

      K0 = „1”

      0x08 graphic

      Rys. 7.12 Synchroniczny licznik zliczający od 5 do 14: a), b), c), tablice Karnaugha dla poszczególnych wejść informacyjnych przerzutników JK,

      d) schemat połączeń.

      Na podstawie funkcji sterujących projektujemy układ kombinacyjny ograniczający zliczanie (rys. 7.12d).

      Przykładowo dla przerzutnika drugiego, w pole 0101 w tablicy J0 wpisujemy „-”, a w tablicy K0 wpisujemy 1. Licznik jest w stanie 0101 to następnym jego stanem jest stan 0110, czyli stan na wyjściu Q0 zmieni się z 1 na 0, co zapewnia kombinacja J0K0 = - 1. Podobnie w pole 1110 w tablicy J0 wpisujemy 1, a w tablicy K0-”.Licznik jest w stanie 1110, to następnym stanem jest 0101, czyli na wyjściu Q0 stan zmieni się z 0 na 1, co zapewnia kombinacja J0K0 = 1 -.

      1. UKŁADY ARYTMETYCZNE

        1. Wstęp

      Prawie wszystkie praktyczne obliczenia matematyczne dają się sprowadzić do działań arytmetycznych, wszystkie zaś działania arytmetyczne sprowadzają się do dodawania. Do podstawowych układów arytmetycznych zalicza się więc sumator, którego zasadniczym zadaniem jest dodawanie (lub odejmowanie) liczb.

      Jeżeli sumator uzupełnimy o układ przesuwający dane - to otrzymamy układ umożliwiający realizacje operacji mnożenia i dzielenia, dzięki wykonaniu ciągu kolejnych dodawań (odejmowań) i przesunięć.

      Sumatory dzielimy na :

      1. dwójkowe, gdzie działania dokonuje się na liczbach dwójkowych,

      2. dziesiętne, wykonujące działania na liczbach dziesiętnych kodowanych dwójkowo.

      Sumatory można również podzielić ze względu na sposób podawania składników sumy:

      1. równoległe:

      • z przeniesieniem szeregowym,

      • z przeniesieniem równoległym,

      1. szeregowe.

      Do układów arytmetycznych zaliczane są również komparatory. Są to układy służące do porównywania wielkości dwu lub więcej liczb binarnych. Można wyróżnić dwa zasadnicze typy komparatorów:

      1. komparatory równoległe,

      2. komparatory szeregowe.

        1. Sumatory

      Sumatory są to układy służące do sumowania arytmetycznego dwu liczb binarnych n - bitowych A i B, z jednobitowym przeniesieniem Ci, dając w wyniku n - bitową sumę Si i przeniesienie Ci +1.

      Dodawanie liczb dwójkowych odbywa się według tych samych zasad co liczb dziesiętnych. Dodawanie dwu liczb dwójkowych A i B jest pokazane na rys. 8.1.

      0x08 graphic
      a) b)

      0x08 graphic
      A

      B

      S

      C

      0

      0

      1

      1

      0

      1

      0

      1

      0

      1

      1

      0

      0

      0

      0

      1

      c)

      0x08 graphic
      0x08 graphic

      Rys. 8.1 Dodawanie jednobitowych liczb dwójkowych:

      a) symbol, b) tablica prawdy, c) tablice Karnaugha.

      Zmienna Si reprezentuje wynik operacji, jej wartość jest sumą modulo 2 (EX - OR) składników Ai, Bi i Ci.

      Zmienna Ci reprezentuje przeniesienie z pozycji młodszej sumatora wielopozycyjnego, natomiast Ci +1 jest przeniesieniem do pozycji starszej. Ci nie występuje w tzw. półsumatorze, a obecność Ci daje sumator pełny.

      Na podstawie siatek Karnaugha przedstawionych na rys. 8.1 otrzymujemy wyrażenia logiczne dla półsumatora:

      • suma 0x01 graphic

      • przeniesienie 0x01 graphic

      Przykładowy schemat logiczny przedstawia rys. 8.2.

      0x08 graphic

      Rys. 8.2 Schemat logiczny półsumatora.

      W przypadku dodawania wielobitowych liczb dwójkowych należy uwzględnić przeniesienie z pozycji sąsiedniej, mniej znaczącej od rozpatrywanej. Operację dodawania bitów z i - tej pozycji dodawanych liczb wielobitowych ilustruje rys. 8.3b.

      Za pomocą siatek Karnaugha można opisać zasadę działania sumatora pełnego (rys.8.3c, d). Z siatek tych otrzymujemy zależności:

      • suma

      0x01 graphic

      • przeniesienie

      0x01 graphic

      0x01 graphic

      a) b)

      0x08 graphic

      Ai

      Bi

      Ci

      Si

      Ci+1

      0

      0

      0

      0

      1

      1

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      1

      0

      1

      0

      0

      1

      0

      0

      0

      1

      0

      1

      1

      1

      0x08 graphic
      c)

      00

      01

      11

      10

      0x08 graphic
      0

      0

      1

      0

      1

      1

      1

      0

      1

      0

      0x08 graphic
      d)

      00

      01

      11

      10

      0x08 graphic
      0

      0

      0

      1

      0

      1

      0

      1

      1

      1

      Rys. 8.3 Sumator dwuargumentowy jednobitowy:

      a) symbol, b) tabela zależności, c) siatka zależności dla sumy, d) siatka zależności dla przeniesienia.

      Ponieważ istnieje wiele równoważnych postaci funkcji Si i Ci zatem istnieje możliwość różnej ich interpretacji. Schemat sumatora pełnego, dwuargumentowego z przeniesieniem z pozycji poprzedniej Ci oraz przeniesienie do pozycji wyższej Ci + 1 pokazano na rys. 8.4a. Sumator z rys. 8.4b jest podstawową komórką występującą w sumatorach średniej skali integracji: 480,482 i 483.

      0x08 graphic

      a)

      b)

      0x08 graphic

      Rys. 8.4 Schemat logiczny sumatora pełnego dwuargumentowego (a), jednobitowego (b).

      Szczególnym przypadkiem sumatora jest układ realizujący odejmowanie dwu liczb dwójkowych. Układ służący do odejmowania nazywa się substraktorem. Wartości funkcji dla różnicy Di i pożyczki Vi - tej komórki substraktora ilustruje tabela na rys. 8.5.

      0x08 graphic
      a)

      b)

      Pożyczka

      Vi

      Odjemna

      Ai

      Odjemnik

      Bi

      Różnica

      Di

      Pożyczka

      Vi+1

      0

      0

      0

      0

      1

      1

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      1

      0

      1

      0

      0

      1

      0

      1

      0

      0

      1

      1

      0

      1

      c)

      0x08 graphic

      00

      01

      11

      10

      0x08 graphic
      0

      0

      1

      0

      1

      1

      1

      0

      1

      0

      0x08 graphic

      00

      01

      11

      10

      0x08 graphic
      0

      0

      1

      0

      0

      1

      1

      1

      1

      0

      Rys. 8.5 Sumator jednobitowy odejmujący - substraktor:

      a) symbol, b) tabela zależności, c) siatka Karnaugha.

      Z tablic Karnaugha (rys. 8.5c) otrzymujemy następujące funkcje logiczne:

      0x01 graphic

      0x01 graphic

      Porównując funkcje sumatora i substraktora możemy zauważyć, że różnica Di jest identyczna z sumą Si, natomiast są różne wyrażenia dla pożyczki Vi +1 i przeniesienia Ci +1.

      Jeśli w wyrażeniach opisujących działanie substraktora zamiast Bi wstawić 0x01 graphic
      , a zamiast Ci wstawić 0x01 graphic
      otrzymamy:

      0x01 graphic

      0x01 graphic

      Korzystając z tej własności, znajdujemy:

      0x01 graphic

      Sumator może być zatem stosowany jako układ odejmujący po dokonaniu powyższych przełączeń.

          1. Sumatory równoległe

      Sumatory równoległe ze względu na sposób wytwarzania przeniesień dzielimy na:

      • sumatory z przeniesieniem szeregowym, zwane również sumatorami kaskadowymi albo iteracyjnymi,

      • sumatory z przeniesieniem równoległym.

      Sumator kaskadowy n - bitowy jest układem powstałym przez połączenie n sumatorów jednobitowych. Schemat blokowy sumatora kaskadowego przedstawiono na rys. 8.6.

      0x08 graphic

      Rys. 8.6 Schemat blokowy sumatora kaskadowego.

      Przy sumowaniu liczb dodatnich wejście przeniesienia początkowego C0 nie jest wykorzystywane (C0 = 0). Wszystkie cyfry dodawanych liczb dwójkowych podawane są na sumator jednocześnie. Czas uformowania się wyniku zależy od prędkości propagacji sygnału przeniesienia przez kolejne komórki sumatora. W najbardziej niekorzystnym przypadku sygnał C musi przejść przez wszystkie komórki sumatora.

      Sumator z przeniesieniem równoległym generuje wszystkie wartości przeniesień jednocześnie na podstawie wartości na poszczególnych bitach obu operandów.

      Przeniesienie: 0x01 graphic
      można wyrazić w postaci:

      0x01 graphic

      gdzie: 0x01 graphic

      0x01 graphic

      inaczej:

      0x01 graphic

      Dla modułu czterobitowego 0x01 graphic
      :

      0x01 graphic

      lub

      0x01 graphic

      gdzie:

      0x01 graphic

      0x01 graphic

      gdzie:

      G - przeniesienie generowane w bloku,

      T - sygnał warunkujący transmisję przeniesienia początkowego C0.

      Wyrażenie dla sumy: 0x01 graphic
      można przekształcić do postaci:

      0x01 graphic
      .

      Na rys. 8.7 przedstawiono schemat czterobitowego sumatora z przeniesieniami równoległymi.

      0x08 graphic

      Rys. 8.7 Czterobitowy sumator z przeniesieniami równoległymi - schemat logiczny.

      0x08 graphic

      Rys. 8.7 Czterobitowy sumator z przeniesieniami równoległymi - oznaczenie.

      Układy wielobitowe - n x 4 bity, montuje się wykorzystując sumator czterobitowy z przeniesieniami równoległymi oraz expander, zwany generatorem przeniesień równoległych (4182). Schemat ideowy expandera pokazano na rys. 8.8. W sumatorze jak i w generatorze zastosowano zamiast zmiennych G i T ich negacje 0x01 graphic
      i 0x01 graphic
      , ze względów praktycznych.

      Na rys. 8.9 przedstawiono tzw. dwupoziomowy sposób łączenia sumatorów równoległych z generatorem przeniesień.

      W szesnastobitowym sumatorze nominalny czas dodawania z rys. 8.9 wynosi około 36 ns. Natomiast w szesnastobitowym sumatorze z przeniesieniami kaskadowymi czas ten wynosi około 60 ns, prawie dwa razy tyle. Ze wzrostem ilości bitów przewaga sumatora z przeniesieniami równoległymi nad sumatorem z przeniesieniami kaskadowymi (szeregowymi) staje się jeszcze bardziej widoczna.

      0x08 graphic

      Rys. 8.8 Generator przeniesień równoległych.

      0x08 graphic

      Rys. 8.9 Dwupoziomowy sposób łączenia sumatorów równoległych z generatorem przeniesień.

          1. Sumatory szeregowe

      W sumatorze szeregowym składniki sumy są podawane kolejno, bit po bicie, zaczynając od bitu o najniższej wadze.

      0x08 graphic
      Schemat ideowy sumatora szeregowego przedstawiono na rys. 8.10.

      Rys. 8.10 Schemat ideowy sumatora szeregowego.

      Sumator szeregowy składa się z sumatora jednobitowego z dodatkiem trzech rejestrów przesuwających oraz przerzutnika typu D zapamiętującego przeniesienie. Dodajna (A) i dodajnik (B) są wprowadzane do sumatora z rejestrów przesuwających.

      Przed rozpoczęciem dodawania, do rejestrów 1 i 2 muszą zostać wpisane składniki A i B, a przerzutnik D służący do przekazywania przeniesień z poprzednich pozycji musi zostać wyzerowany. Dodawanie dwóch bitów składników z odpowiadających sobie pozycji i bitu przeniesienia z poprzedniej pozycji następuje w kolejnych taktach wyznaczanych sygnałem zegarowym. Bity składników pojawiają się kolejno na wyjściach szeregowych rejestrów przesuwających 1 i 2, zaś bity wyniku są szeregowo wprowadzane do rejestru 3.

      Sumator jest układem synchronicznym taktowanym ciągiem impulsów zegarowych. Przeniesienie z przerzutnika D jest wprowadzane do sumatora pełnego w każdym następnym takcie (cyklu).

      W sumatorze akumulacyjnym suma podawana jest na miejsce dodajnej, zamiast rejestru 3 można użyć rejestru 1 lub 2 (linia przerywana rys. 8.10). W miarę dodawania nowych składników cała suma akumuluje się w tym rejestrze.

      Zaletami sumatora szeregowego są:

      • jego prostota,

      • mała liczba elementów logicznych potrzebnych do jego realizacji.

      Wadą sumatora jest jego mała szybkość (około 60 ns). Czas sumowania składników n - bitowych wynosi nT.

      Sumator szeregowy jest układem sekwencyjnym a równoległy kombinacyjnym, dodawanie równoległe trwa krótko, a szeregowe długo. Dlatego można stwierdzić, że różne operacje arytmetyczne można wykonać szybko za pomocą układów kombinacyjnych, bardzo rozbudowanych, lub wolniej za pomocą układów sekwencyjnych, ale o prostszej budowie.

        1. Komparatory

      Komparatory cyfrowe są to układy służące do porównywania dwóch lub więcej słów (liczb) dwójkowych n - bitowych.

      Najprostsze komparatory określają, czy porównywane liczby są sobie równe (A = B?). Bardziej złożone układy mogą określać, która z porównywanych liczb jest większa (A > B?). Istnieją również komparatory tzw. uniwersalne, które określają trzy możliwe, wzajemnie wykluczające się relacje: A > B, A = B i A < B.

      Komparatory liczb mogą być zrealizowane jako układy równoległe bądź szeregowe.

          1. Komparatory jednobitowych liczb dwójkowych

      Relacje zachodzące pomiędzy jednobitowymi liczbami dwójkowymi A i B są przedstawione w tablicy 8.1.

      Tablica 8.1 Relacje zachodzące między jednobitowymi liczbami dwójkowymi

      Relacja

      Tablica wartości

      Tablica Karnaugha

      Funkcja przełączająca

      Schemat logiczny

      0x08 graphic
      A > B

      A B

      A > B

      (A > B) =

      A 0x01 graphic

      0 0

      0 1

      1 0

      1 1

      0

      0

      1

      0

      A ≥ B

      A B

      A ≥ B

      (A ≥ B) =

      A + 0x01 graphic

      0 0

      0 1

      1 0

      1 1

      1

      0

      1

      1

      A = B

      A B

      A = B

      (A = B ) =

      A 0x01 graphic
      B

      0 0

      0 1

      1 0

      1 1

      1

      0

      0

      1

      A ≤ B

      A B

      A ≤ B

      (A ≤ B ) =

      0x01 graphic
      + B

      0 0

      0 1

      1 0

      1 1

      1

      1

      0

      1

      A < B

      A B

      A < B

      (A < B) =

      0x01 graphic
      B

      0 0

      0 1

      1 0

      1 1

      0

      1

      0

      0

      Nietrudno jest wykazać, że następujące zależności są prawdziwe:

      0x01 graphic
      (8.1)

      0x01 graphic
      (8.2)

      0x01 graphic
      (8.3)

      0x01 graphic
      (8.4)

      0x01 graphic
      (8.5)

      Komórkę komparatora opisują następujące funkcje przełączające z tablicy 8.1:

      0x01 graphic
      dla (A > B)

      0x01 graphic
      dla (A = B)

      0x01 graphic
      dla (A < B)

          1. Komparatory równoległe

      Komparator równoległy to taki układ, na wejścia którego są podawane jednocześnie wszystkie bity porównywalnych liczb.

      Określenie tożsamości dwóch liczb n - bitowych A i B, gdzie:

      A = An-1 An-2 ... Ai... A0

      B = Bn-1 Bn-2 ... Bi... B0

      polega na sprawdzeniu czy bity na odpowiadających sobie pozycjach tych liczb są tożsame, co zapisujemy:

      (A = B) = (An-1 = Bn-1) (An-2 = Bn-2)...(Ai = Bi)...(A0=B0) =

      = (An-10x01 graphic
      Bn-1) (An-20x01 graphic
      Bn-2)...(Ai 0x01 graphic
      Bi)...(A00x01 graphic
      B0) (8.6)

      lub krócej:

      (A = B) = Tn-1 Tn-2...Ti...T0 = 0x01 graphic
      (8.7)

      przy czym Ti = Ai0x01 graphic
      Bi = AiBi + 0x01 graphic

      Wyrażenie (7) może być również przedstawione w postaci:

      0x01 graphic
      (8.8)

      0x08 graphic
      Wyrażenia (8.7) i (8.8) realizują układy pokazane na rys. 8.11.

      a)

      b)

      Rys. 8.11 Schemat logiczny układu realizującego:

      a) wyrażenie (8.7), b) wyrażenie (8.8).

      W celu określenia tożsamości trzech n - bitowych liczb A, B i C należy określić funkcję:

      0x01 graphic
      (8.9)

      Funkcja ta może być odpowiednio rozszerzona na większą grupę liczb.

      Aby określić relację A > B, a także relację A < B dla n - bitowych liczb dwójkowych A i B, należy rozpocząć komparację (porównanie) od bitów z pozycji najwięcej znaczącej (czyli z pozycji n - 1) tych liczb:

      • jeśli bit liczby A z pozycji n - 1 jest równy 1 (albo 0), a bit liczby B z tej pozycji jest równy 0 (albo 1), to A > B (albo A < B) i określenie nierówności jest dokonane,

      • jeśli bity z pozycji n - 1 liczb A i B są tożsame (równe), to porównujemy, tak jak poprzednie, bity z pozycji n - 2.

      Czynności te powtarzamy aż do uzyskania jednoznacznej odpowiedzi.

      Z powyższych rozważań można wyznaczyć tablicę wartości (tablica 8.2) opisująca działanie logiczne uniwersalnego komparatora n - bitowych liczb dwójkowych.

      Tablica 8.2 Tablica wartości uniwersalnego komparatora n - bitowych liczb dwójkowych

      Wejścia komparacyjne

      Wyjścia

      An-1, Bn-1

      An-2, Bn-2

      ...

      A2, B2

      A1, B1

      A0, B0

      A>B

      A<B

      A=B

      An-1>Bn-1

      An-1<Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      An-1=Bn-1

      X

      X

      An-2>Bn-2

      An-2<Bn-2

      An-2=Bn-2

      An-2=Bn-2

      An-2=Bn-2

      An-2=Bn-2

      An-2=Bn-2

      An-2=Bn-2

      An-2=Bn-2

      X

      X

      X

      X

      A2>B2

      A2<B2

      A2=B2

      A2=B2

      A2=B2

      A2=B2

      A2=B2

      X

      X

      X

      X

      X

      X

      A1>B1

      A1<B1

      A1=B1

      A1=B1

      A1=B1

      X

      X

      X

      X

      X

      X

      X

      X

      A0>B0

      A0<B0

      A0=B0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      0

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      0

      0

      0

      0

      0

      0

      0

      0

      0

      0

      1

      Przykład 8.1:

      Zaprojektować komparator dwubitowy realizujący funkcję A1 A0 B1 B0, napisać równanie określające powyższą relację oraz podać przykładowy układ realizujący to równanie.

      a)

      A1A0

      B1B0

      A1 A0 ≥ B1 B0

      0 0

      0 0

      0 0

      0 0

      0 0

      0 1

      1 0

      1 1

      1

      0

      0

      0

      0 1

      0 1

      0 1

      0 1

      0 0

      0 1

      1 0

      1 1

      1

      1

      0

      0

      1 0

      1 0

      1 0

      1 0

      0 0

      0 1

      1 0

      1 1

      1

      1

      1

      0

      1 1

      1 1

      1 1

      1 1

      0 0

      0 1

      1 0

      1 1

      1

      1

      1

      1

      b) c)

      0x08 graphic
      0x08 graphic

      00

      01

      11

      10

      00

      1

      1

      1

      1

      01

      0

      1

      1

      1

      11

      0

      0

      1

      0

      10

      0

      0

      1

      1

      0x01 graphic

      Rys. 8.12 Tablica wartości (a), siatka Karnaugha (b),

      przykładowa realizacja (c).

          1. Komparatory szeregowe

      Komparator szeregowy to taki układ, w którym porównywane są kolejno bity poszczególnych pozycji porównywanych liczb.

      Jeśli dwie liczby dodatnie porównujemy począwszy od najbardziej znaczącego bitu, to liczbą większą jest liczba mająca większy pierwszy bit. Jeśli porównania dokonujemy począwszy od najmniej znaczącego bitu, to liczbą większą jest liczba mająca większy ostatni bit. Liczby dodatnie są równe, jeśli bity tych liczb na odpowiadających sobie pozycjach są jednakowe.

      Komparatory szeregowe mogą być zrealizowane na wiele sposobów. Wynika to z faktu, że do zaimplementowania układu mogą być użyte różnego typu elementy logiczne. Na rys. 8.13 jest przedstawiony schemat logiczny komparatora szeregowego służącego do określenia czy zachodzi relacja A = B, czy A B.

      Układ przed porównaniem powinien być wyzerowany. Po wyzerowaniu stan wyjścia Q przerzutnika jest równy 1. Stan ten zmieni się na 0, jeśli kolejne bity liczb A i B będą różne. Stan taki utrzymuje się aż do ponownego wyzerowania układu.

      0x08 graphic

      Rys.8.13 Schemat logiczny komparatora szeregowego służącego do określania czy między liczbami A i B zachodzi relacja A = B czy A B ?

      Przykłady implementacji komparatorów szeregowych służących do wyznaczania relacji A > B, A = B i A < B między liczbami A i B przedstawiono na rys. 8.14 i 8.15.

      0x08 graphic
      a)

      0x08 graphic
      b)

      Rys. 8.14 Komparatory szeregowe porównujące liczby poczynając od najbardziej znaczącego bitu: a) zbudowane w oparciu o przerzutnik JK,

      b) zbudowane z bramek I - NIE (NAND) oraz bramki ALBO (EX - OR).

      0x08 graphic
      a)

      0x08 graphic
      b)

      Rys. 8.15 Komparatory szeregowe porównujące liczby poczynając od najmniej znaczącego bitu: a) zbudowane w oparciu o przerzutnik JK,

      b) zbudowane z bramek I - NIE (NAND) oraz bramki ALBO (EX - OR).

      Porównywanie dokonywane począwszy od najbardziej znaczącego bitu jest pokazane w układach na rys. 8.14. W układach tych wynik pojawia się na wyjściu natychmiast po stwierdzeniu, że jedna z liczb jest większa, tzn. AiBi.

      Na rys. 8.15 są pokazane przykłady implementacji komparatora, w którym porównywanie dokonuje się począwszy od najmniej znaczącego bitu. W układach tych prawidłowy wynik ustala się na wyjściu komparatora dopiero po podaniu bitów z pozycji najczęściej znaczącej.

      1. UKŁADY KOMUTACYJNE

        1. Wstęp

      Układy komutacyjne służą do łączenia ze sobą bloków funkcjonalnych i przełączania sygnałów cyfrowych.

      Określony kod stosujemy zależnie od jego zastosowania. Przy wyborze należy brać pod uwagę możliwość osiągnięcia minimum kosztów układu realizującego daną operację oraz zapewnienie prawidłowości jej realizacji w obecności zakłóceń i uszkodzeń w systemie.

      Aby dokonać konwersji danego kodu na inny kod, liczba słów kodowych w obydwu kodach musi być identyczna, natomiast długość słów obydwu kodów nie musi być jednakowa.

      Układy komutacyjne służą do łączenia ze sobą bloków funkcjonalnych i przełączania sygnałów cyfrowych. Do układów komutacyjnych systemów cyfrowych zaliczamy:

      • konwertery kodów (w tym kodery i dekodery),

      • demultipleksery,

      • multipleksery.

      Konwerterem (przetwornikiem) nazywamy układ służący do przekształcenia jednego kodu w inny kod. Przetwornik przekształcający kod pierścieniowy „1 z n” na żądany kod, nazywa się koderem (zwany też enkoderem), natomiast przetwornik zmieniający dowolny kod w kod „1 z n” - dekoderem. Pozostałe przetworniki noszą nazwę transkoderów. Szczególnym rodzajem dekoderów są multipleksery i demultipleksery, zwane wybierakami bezstykowymi.

        1. Enkodery

      Enkodery zwykłe są to układy zmieniające kod „1 z n” na określony binarny kod wyjściowy. Układy te posiadają n - wejść, przy czym tylko jedno z wejść jest w danym czasie aktywne. Jeśli kodem wejściowym jest kod „1 z n” bez negacji, to wejście aktywne znajduje się w stanie 1, a pozostałe w stanie 0. Natomiast jeśli kodem wejściowym jest kod „1 z n” z negacją, to wejście aktywne znajduje się w stanie 0, a pozostałe w stanie 1.

      Sygnał aktywny, pojawiający się na jednym z n wejść, zostaje zakodowany w słowo binarne m - bitowe (m - wyjść enkodera) i na wyjściach pojawia się numer wyjścia aktywnego, przedstawiony w żądanym kodzie dwójkowym.

      0x08 graphic

      Rys. 9.1 Enkoder zwykły.

      Przykładem może być zamiana kodu 1 z 10 na kod BCD 8421, oraz zamiana kodu 0x01 graphic
      na kod BCD 8421. Tablica prawdy opisująca działanie logiczne tych układów jest przedstawiona w tablicy.

      Tablica 9.1 Tablica prawdy enkoderów zwykłych

      Wejścia

      Wyjścia

      Kod 1 z 10

      Kod 0x01 graphic

      9 8 7 6 5 4 3 2 1 0

      9 8 7 6 5 4 3 2 1 0

      D C B A

      0 0 0 0 0 0 0 0 0 1

      0 0 0 0 0 0 0 0 1 0

      0 0 0 0 0 0 0 1 0 0

      0 0 0 0 0 0 1 0 0 0

      0 0 0 0 0 1 0 0 0 0

      0 0 0 0 1 0 0 0 0 0

      0 0 0 1 0 0 0 0 0 0

      0 0 1 0 0 0 0 0 0 0

      0 1 0 0 0 0 0 0 0 0

      1 0 0 0 0 0 0 0 0 0

      1 1 1 1 1 1 1 1 1 0

      1 1 1 1 1 1 1 1 0 1

      1 1 1 1 1 1 1 0 1 1

      1 1 1 1 1 1 0 1 1 1

      1 1 1 1 1 0 1 1 1 1

      1 1 1 1 0 1 1 1 1 1

      1 1 1 0 1 1 1 1 1 1

      1 1 0 1 1 1 1 1 1 1

      1 0 1 1 1 1 1 1 1 1

      0 1 1 1 1 1 1 1 1 1

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 0 0 0

      1 0 0 1

      Na podstawie tablicy prawdy możemy wywnioskować, że wyjście A = 1, jeśli wejście 1 jest w stanie 1 lub jeśli wejście 3 jest w stanie 1, lub jeśli wejście 5 jest w stanie 1, lub jeśli wejście 7 jest w stanie 1, lub wejście 9 jest w stanie 1.

      Wobec tego w notacji algebry Boole'a można to za pisać w postaci funkcji:

      A = 1+3+5+7+9

      Podobnie

      B = 2+3+6+7

      C = 4+5+6+7 (1)

      D = 8+9

      Funkcje (1) mogą być przedstawione w postaci:

      A = (1+9)+(3+7)+(5+7)

      R = (3+7)+(2+6) (2)

      C = (4+6)+(5+7)

      D = 8+9

      Implementacje funkcji (1) i (2) przedstawiono na rys. 9.2.

      0x08 graphic

      Rys. 9.2 Schematy logiczne enkoderów zwykłych realizujących funkcje:

      a) (1), b) (2).

      Jeśli żadne z wejść nie będzie aktywne tzn. suwak przełącznika obrotowego znajduje się między kolejnymi pozycjami, to na wyjściach pojawią się same jedynki, a więc kombinacja nie należąca do rozpatrywanego kodu wejściowego.

      Funkcje wyznaczone na podstawie tablicy 9.1 dla układu zmieniającego kod 0x01 graphic
      na kod 8421 mają postać:

      0x01 graphic
      (3)

      0x08 graphic
      Schemat logiczny układu realizującego funkcje (3) przedstawiono na rys. 9.3.

      Rys. 9.3 Schemat logiczny enkodera zwykłego realizującego funkcje (3).

      W układzie tym, jeśli żadne wejście nie będzie aktywne (wybrane), to na wyjściach pojawią się same zera, a więc taka sama kombinacja, jak przy wybranym wejściu o numerze 0, co może być niedozwolone w niektórych zastosowaniach.

      Enkodery zwykłe są stosowane głównie do wprowadzania informacji w postaci liczb dziesiętnych, np. z przełączników 10-pozycyjnych obrotowych lub klawiszowych, do systemów cyfrowych.

        1. Dekodery

      Dekodery są to układy kombinacyjne n / m (liczba wejść / liczba wyjść) przekształcające określony kod wejściowy o długości m na kod wyjściowy „1 z n”.

      Dekoder posiada m wyjść, a każdemu ze słów wyjściowych jest przyporządkowany sygnał aktywny (1 lub 0), pojawiający się tylko na jednym z m wyjść, pozostałe zmienne wyjściowe mają wartość przeciwną.

      Rozróżniamy dwa rodzaje dekoderów:

      • pełny, jeśli dla rozpatrywanego dekodera zachodzi równość 2n = m,

      • niepełny, jeśli dla rozpatrywanego dekodera zachodzi nierówność 2n > m, gdzie nie wszystkie słowa kodowe są wykorzystane.

      Przykładowo rozpatrzmy syntezę dekodera pełnego 2/4, czyli dekodera posiadającego 2 wejścia i 4 wyjścia. Wejścia rozpatrywanego dekodera oznaczono literami: A, B a wyjścia liczbami: 0, 1, 2, 3.

      Kod wejściowy i kod wyjściowy dekodera przedstawiono w tablicy 9.2.

      Tablica 9.2 Tablica prawdy dekodera pełnego 2/4

      Wejścia

      B A

      Wyjścia

      1 z 4

      0x01 graphic

      0 1 2 3

      0 1 2 3

      0 0

      0 1

      1 0

      1 1

      1 0 0 0

      0 1 0 0

      0 0 1 0

      0 0 0 1

      0 1 1 1

      1 0 1 1

      1 1 0 1

      1 1 1 0

      Gdy kodem wyjściowym dekodera jest kod 1 z 4 bez negacji, to dekoder jest układem realizującym następujące funkcje przełączające:

      0 = 0x01 graphic

      1 = 0x01 graphic
      (1)

      2 = 0x01 graphic

      3 = AB

      albo

      0 = 0x01 graphic

      1 = 0x01 graphic
      (2)

      2 = 0x01 graphic

      3 = 0x01 graphic

      Schematy logiczne układów realizujących funkcje (1) oraz funkcje (2) przedstawiono na rys. 9.4.

      0x08 graphic

      Rys. 9.4. Schematy logiczne układów realizujących funkcje:

      a) (1), b) (2).

      Jeśli kodem wyjściowym rozpatrywanego dekodera jest kod 0x01 graphic
      to dekoder jest układem, którego działanie logiczne opisują następujące funkcje przełączające:

      0x01 graphic
      ; 0 = 0x01 graphic

      0x01 graphic
      ; 1 = 0x01 graphic
      (3)

      0x01 graphic
      ; 2 = 0x01 graphic

      0x01 graphic
      AB; 3 = 0x01 graphic

      albo

      0 = 0x01 graphic
      ; 0 = A + B

      1 = 0x01 graphic
      ; 1 = 0x01 graphic
      + B (4)

      2 = 0x01 graphic
      ; 2 = A + 0x01 graphic

      3 = 0x01 graphic
      ; 3 = 0x01 graphic
      + 0x01 graphic

      Implementacje układów realizujących funkcje (3) oraz funkcje (4) przedstawiono na rys. 9.5.

      0x08 graphic

      Rys. 9.5 Schematy logiczne układów realizujących funkcje: a) (3), b) (4).

      W przypadku dekodera niepełnego (tzn. 2n > m) przykładem może służyć dekoder służący do konwersji naturalnego 4-bitowego kodu dwójkowego na kod 1 z l0 (24 > l0) - tablica 9.3.

      Tablica 9.3 Tablica prawdy dekodera niepełnego

      Wejścia

      Wyjścia

      8421 BCD

      D C B A

      1 z 10

      0 1 2 3 4 5 6 7 8 9

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 0 0 0

      1 0 0 1

      1 0 0 0 0 0 0 0 0 0

      0 1 0 0 0 0 0 0 0 0

      0 0 1 0 0 0 0 0 0 0

      0 0 0 1 0 0 0 0 0 0

      0 0 0 0 1 0 0 0 0 0

      0 0 0 0 0 1 0 0 0 0

      0 0 0 0 0 0 1 0 0 0

      0 0 0 0 0 0 0 1 0 0

      0 0 0 0 0 0 0 0 1 0

      0 0 0 0 0 0 0 0 0 1

      W dekoderze niepełnym nie wszystkie słowa kodowe są wykorzystane. Nasuwa się pytanie: jak układ ma działać jeśli na jego wejścia zostaną podane kombinacje nie wykorzystane?

      Jeśli wiemy, że na wejścia dekodera nie pojawią się kombinacje nie wykorzystywane, to można dopuścić, by stany wyjściowe dekodera były dla nich dowolne (zależne tylko od stopnia uproszczenia układu). Są to tzw. „stany fałszywe”, które są omówione w rozdziale 3.

      Na podstawie tablicy wypiszmy tablicę Karnaugha dla funkcji 0.

      W tablicy tej określone jest tylko dziesięć stanów spośród szesnastu możliwych. Na podstawie tablicy możemy stwierdzić, że w przypadku funkcji 0, nadmiarowe stany (stany nieustalone) nie mogą być wykorzystane do jej uproszczenia. To samo spostrzeżenie dotyczy funkcji 1. Dopiero dla funkcji 2 „stany fałszywe” mogą wykorzystane, a funkcja 2 może być uproszczona (rys. 9.6):

      a) b)

      0x08 graphic

      00

      01

      11

      10

      00

      01

      11

      10

      00

      1

      0

      0

      0

      00

      0

      0

      0

      1

      01

      0

      0

      0

      0

      01

      0

      0

      0

      0

      11

      X

      X

      X

      X

      11

      X

      X

      X

      X

      10

      0

      0

      X

      X

      10

      0

      0

      X

      X

      Rys. 9.6 Tablice Karnaugha dla funkcji zrealizowanych przez dekoder

      8421 BCD 1 z 10:a) dla funkcji (4). b) dla funkcji (2).

      Funkcja 2;

      2 = 0x01 graphic

      Uproszczone funkcje, wyznaczone na podstawie tablic Karnaugha mają postać:

      0 = 0x01 graphic

      1 = 0x01 graphic

      2 = 0x01 graphic

      3 = 0x01 graphic

      4 = 0x01 graphic

      5 = 0x01 graphic

      6 = 0x01 graphic

      7 = ABC

      8 = 0x01 graphic

      9 = AD

      Przedstawione wyrażenia mogą być zaimplementowane jak pokazano to na rys. 9.7. Dekoder taki posiada zamiast dziesięciu 4-wejściowych funktorów I (AND) tylko dwa takie funktory, pozostałe funktory mają po trzy lub dwa wejścia.

      0x08 graphic
      a)

      b)

      Kod wejściowy

      D C B A

      Nr wyjścia wyróżnionego

      8 4 2 1

      0x08 graphic
      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 0 0 0

      1 0 0 1

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      1 0 1 0

      1 0 1 1

      1 1 0 0

      1 1 0 1

      1 1 1 0

      1 1 1 1

      2

      3

      4,8

      5,9

      6,8

      7,9

      Rys. 9.7 Schemat logiczny dekodera 8421 BCD 1 z 10 (a) oraz tablica ilustrująca działanie (b).

      Gdy zmienna wyjściowa ma przyjmować poziom aktywny (niski lub wysoki) tylko dla zdefiniowanych kombinacji wartości zmiennych wejściowych, dekoder odrzuca stany nieustalone. Jeśli dekoder ma odrzucać „stany fałszywe”, to uproszczenie układu jest niemożliwe.

        1. Transkodery

      Transkodery są to układy służące do konwersji kodu dwójkowego, innego niż kod pierścieniowy (1 z n), na inny kod dwójkowy, ale również nie pierścieniowy. Przykładem transkodera jest konwerter kodu wskaźnika siedmiosegmentowego na kod 8421 BCD. Transkodery są często zaliczane do grupy dekoderów.

      Transkodery można zrealizować w postaci układu (rys. 9.8a), złożonego z dekodera (zmieniającego kod wejściowy X na kod pierścieniowy) i enkodera (zmieniającego kod pierścieniowy uzyskany na wyjściach dekodera na żądany kod wyjściowy Y).

      Takie rozwiązanie jest korzystne wtedy, gdy zarówno wymagany dekoder jak i enkoder, albo przynajmniej jeden z nich, są dostępne w postaci scalonej.

      0x08 graphic

      Rys. 9.8 Schematy ideowe transkoderów:

      1. zbudowanych z enkodera i dekodera,

      2. zbudowanych w postaci kombinacyjnego układu wielowyjściowego.

      Jeśli zarówno dekoder jak i enkoder nie są dostępne w postaci układów scalonych, to lepsze rozwiązanie można uzyskać w wyniku syntezy transkodera jako wielowyjściowego układu kombinacyjnego (rys. 9.8b).

          1. Przykłady syntezy i rozwiązań transkoderów

      Przykład 9.1:

      Zaprojektować transkoder służący do przetwarzania kodu 8421 BCD na kod 2*421 BCD.

      W celu zaprojektowania transkodera: 8421 BCD na kod 2*421 BCD należy przedstawić rozpatrywane kody w tablicy (rys. 9.9a). Tablica kodów stanowi tablicę wartości rozpatrywanego układu kombinacyjnego. Jest to układ 4 - wyjściowy. Kolumny wejścia A i D (patrz tablica kodów) są tożsame z kolumnami wyjściowymi A' i D', a zatem:

      A' = A

      D' = D

      W celu wyznaczenia funkcji B' i C' należy zastosować metody minimalizacji, np. za pomocą tablic Karnaugha (rys. 9.9b), lub dostrzec związki logiczne, jakie otrzymuje się z tych tablic, czyli:

      B' = B+D

      C' = C+D

      Schemat logiczny układu realizującego powyższe funkcje przełączające pokazano na rys. 9.9c.

      a)

      D

      C

      B

      A

      D'

      C'

      B'

      A'

      8

      4

      2

      1

      2*

      4

      2

      1

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 0 0 0

      1 0 0 1

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 1 1 0

      1 1 1 1

      b)

      0x08 graphic

      00

      01

      11

      10

      00

      01

      11

      10

      00

      0

      0

      1

      1

      00

      0

      0

      0

      1

      01

      0

      0

      1

      1

      01

      1

      1

      1

      1

      11

      X

      X

      X

      X

      11

      X

      X

      X

      X

      10

      1

      1

      X

      X

      10

      1

      1

      X

      X

      0x08 graphic

      Rys. 9.9 Transkoder służący do konwersji kodu 8421 BCD na kod 2*421 BCD:

      1. tablica rozpatrywanych kodów,

      2. tablice Karnaugha,

      3. schemat logiczny.

      Przykład 9.2:

      Zaprojektować transkoder przetwarzający 4 - bitowy naturalny kod dwójkowy na kod 8421 BCD.

      Transkoder taki jest układem realizującym następujące funkcje przełączające otrzymane na podstawie tablicy kodów (rys. 9.10a) i tablic Karnaugha (rys. 9.10b):

      A' = A

      B' = 0x01 graphic

      C' = 0x01 graphic

      D' = 0x01 graphic

      A'' = BD + CD

      Schemat logiczny układu realizującego powyższe funkcje przełączające przedstawiono na rys. 9.10c.

      a)

      D C B A

      8 4 2 1

      A''

      D' C' B' A'

      2* 4 2 1

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 0 0 0

      1 0 0 1

      1 0 1 0

      1 0 1 1

      1 1 0 0

      1 1 0 1

      1 1 1 0

      1 1 1 1

      0

      0

      0

      0

      0

      0

      0

      0

      0

      0

      1

      1

      1

      1

      1

      1

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 1

      1 0 0 0

      1 0 0 1

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0x08 graphic
      b)

      00

      01

      11

      10

      00

      01

      11

      10

      00

      0

      0

      1

      1

      00

      0

      0

      0

      0

      01

      0

      0

      1

      1

      01

      1

      1

      1

      1

      11

      1

      1

      0

      0

      11

      0

      0

      1

      1

      10

      0

      0

      0

      0

      10

      0

      0

      0

      0

      0x08 graphic

      00

      01

      11

      10

      00

      01

      11

      10

      00

      0

      0

      0

      0

      00

      0

      0

      0

      0

      01

      0

      0

      0

      0

      01

      0

      0

      0

      0

      11

      0

      0

      0

      0

      11

      1

      1

      1

      1

      10

      1

      1

      0

      0

      10

      0

      0

      1

      1

      c)

      0x08 graphic

      Rys. 9.10 Transkoder służący do konwersji 4 - bitowego naturalnego kodu dwójkowego na kod 8421 BCD: a) tablica rozpatrywanych kodów,

      b) tablice Karnaugha, c) schemat logiczny.

      Przykład 9.3:

      Zaprojektować transkoder przetwarzający kod 8421 BCD na kod wskaźnika siedmiosegmentowego.

      Taki transkoder posiada siedem wyjść służących do sterowania siedmioma segmentami wskaźnika (rys.9.11a). Użycie siedmiu segmentów, z których każdy może przyjmować dwa stany: "włączony" albo "wyłączony", umożliwia wyświetlenie 27 = 128 znaków. Dziesięć z nich jest użytych do przedstawienia dziesięciu cyfr (rys. 9.11b). Rozpatrywany transkoder ma 4 wejścia, a więc liczba możliwych stanów wejściowych wynosi 16. Spośród 118 pozostałych znaków można dodatkowo wybrać 16 - 10 = 6 znaków, np. takich, jakie pokazano na rys. 9.11b. Tablica prawdy takiego transkodera przedstawia się tak, jak pokazano na rys. 9.11c.

      Z tablicy prawdy można wyznaczyć funkcje logiczne dla siedmiu wyjść: a, b, c, d, e, f, g. W tym celu należy wypisać stany wejściowe, dla których rozpatrywane wyjście przyjmuje stan 1, tzn. rozpatrywany segment jest włączony.

      Jako przykład rozważymy funkcję dla segmentu a. Z tablicy prawdy wynika, że jest on włączony, gdy wyświetlany jest: znak o numerze 0, lub znak o numerze 2, lub znak o numerze 3, lub znak o numerze 5, lub znak o numerze 7, lub znak o numerze 8, lub znak o numerze 9, lub znak o numerze 13.

      Korzystając z tablicy Karnaugha dla funkcji a (rys. 9.11d) trzymamy następujące wyrażenie:

      0x01 graphic

      Jeśli zamiast funkcji a zminimalizowanej po jedynkach wykorzystamy funkcję a zminimalizowaną po zerach, to otrzymamy wyrażenie:

      0x01 graphic
      prostsze do zaimplementowania.

      Wykorzystując tablice Karnaugha możemy określić wyrażenia logiczne: b, c, d, e, f, g, które są następujące:

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      Transkoderem działającym zgodnie z tablicą (rys. 9.11c) jest transkoder scalony 49. Schemat logiczny tego układu przedstawiono na rys. 9.11e.

      0x08 graphic

      e)

      a)

      b) d)

      0x08 graphic
      0x08 graphic

      0x08 graphic
      0x08 graphic

      00

      01

      11

      10

      00

      1

      0

      1

      1

      01

      0

      1

      1

      0

      11

      0

      1

      0

      0

      10

      1

      1

      0

      0

      c)

      D

      C

      B

      A

      a

      b

      c

      d

      e

      f

      g

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      0

      0

      0

      0

      0

      0

      0

      0

      1

      1

      1

      1

      1

      1

      1

      1

      0

      0

      0

      0

      1

      1

      1

      1

      0

      0

      0

      0

      1

      1

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      1

      0

      1

      1

      0

      1

      0

      1

      1

      1

      0

      0

      0

      1

      0

      0

      1

      1

      1

      1

      1

      0

      0

      1

      1

      1

      0

      0

      1

      0

      0

      0

      1

      1

      0

      1

      1

      1

      1

      1

      1

      1

      0

      1

      0

      0

      0

      0

      1

      0

      1

      1

      0

      1

      1

      0

      1

      0

      1

      1

      0

      1

      1

      0

      1

      0

      1

      0

      0

      0

      1

      0

      1

      0

      1

      0

      0

      0

      1

      0

      1

      0

      0

      0

      1

      1

      1

      0

      1

      1

      0

      0

      1

      1

      1

      0

      0

      0

      1

      1

      1

      1

      1

      0

      1

      1

      1

      1

      1

      1

      1

      0

      Rys. 9.11 Transkoder przetwarzający kod 8421 BCD na kod wskaźnika 7 - segmentowego:

      1. oznakowanie segmentów wskaźnika,

      2. przedstawienie cyfr i znaków dodatkowych,

      3. tablica prawdy,

      4. tablice Karnaugha dla funkcji a,

      5. schemat logiczny transkodera scalonego 49.

      Działanie logiczne układu 49 przedstawiono w tablicy 9.4.

      Tablica 9.4 Tablica prawdy transkodera scalonego 49

      D

      C

      B

      A

      BI

      a

      b

      c

      d

      e

      f

      g

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      BI

      0

      0

      0

      0

      0

      0

      0

      0

      1

      1

      1

      1

      1

      1

      1

      1

      X

      0

      0

      0

      0

      1

      1

      1

      1

      0

      0

      0

      0

      1

      1

      1

      1

      X

      0

      0

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      0

      0

      1

      1

      X

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      X

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      1

      0

      1

      0

      1

      1

      0

      1

      0

      1

      1

      1

      0

      0

      0

      1

      0

      0

      0

      1

      1

      1

      1

      1

      0

      0

      1

      1

      1

      0

      0

      1

      0

      0

      0

      0

      1

      1

      0

      1

      1

      1

      1

      1

      1

      1

      0

      1

      0

      0

      0

      0

      0

      1

      0

      1

      1

      0

      1

      1

      0

      1

      0

      1

      1

      0

      1

      1

      0

      0

      1

      0

      1

      0

      0

      0

      1

      0

      1

      0

      1

      0

      0

      0

      1

      0

      0

      1

      0

      0

      0

      1

      1

      1

      0

      1

      1

      0

      0

      1

      1

      1

      0

      0

      0

      0

      1

      1

      1

      1

      1

      0

      1

      1

      1

      1

      1

      1

      1

      0

      0

      Przykład 9.4:

      Zaprojektować układ służący do przetwarzania kodu wskaźnika 7 - segmentowego na kod 8421 BCD.

      0x08 graphic
      Transkoder taki może być zrealizowany m. in. W postaci układu złożonego z układu do przetwarzania kodu wskaźnika 7 - segmentowego na kod 1 z 10 (rys. 9.12) oraz z układu zmieniającego kod 1 z 10 na kod BCD, dostępnego w postaci układu scalonego 147.

      Rys. 9.12 Schemat logiczny transkodera przetwarzającego kod wskaźnika 7 - segmentowego na kod 1 z 10.

      Znane są również rozwiązania rozpatrywanego układu w postaci układu kombinacyjnego służącego do bezpośredniego przetwarzania kodu wskaźnika 7-segmentowego (rys. 9.13a) na kod 8421 BCD.

      Transkoder taki realizuje następujące funkcje przełączające:

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      „ - „=0x01 graphic

      Schemat logiczny takiego układu przedstawiono na rys. 9.13a.

      0x08 graphic
      a)

      b)

      a b c d e f g

      „-„

      D C B A

      0

      1

      2

      3

      4

      5

      6

      6

      7

      7

      8

      9

      9

      Wygaszenie

      „ - „

      1 1 1 1 1 1 0

      0 1 1 0 0 0 0

      1 1 0 1 1 0 1

      1 1 1 1 0 0 1

      0 1 1 0 0 1 1

      1 0 1 1 0 1 1

      0 0 1 1 1 1 1

      1 0 1 1 1 1 1

      1 1 1 0 0 0 0

      1 1 1 0 0 1 0

      1 1 1 1 1 1 1

      1 1 1 0 0 1 1

      1 1 1 1 0 1 1

      0 0 0 0 0 0 0

      0 0 0 0 0 0 1

      0

      0

      0

      0

      0

      0

      0

      0

      1

      0

      0

      0

      0

      0

      1

      0 0 0 0

      0 0 0 1

      0 0 1 0

      0 0 1 1

      0 1 0 0

      0 1 0 1

      0 1 1 0

      0 1 1 0

      0 1 1 1

      0 1 1 1

      1 0 0 0

      1 0 0 1

      1 0 0 1

      0 0 0 0

      0 0 0 0

      Rys. 9.13 Transkoder przetwarzający kod wskaźnika 7 - segmentowego na kod 8421 BCD: a) schemat logiczny,

      b) tablica prawdy.

        1. Multipleksery i demultipleksery

          1. Wstęp

      W systemach cyfrowych często istnieje potrzeba przesyłania selektywnie wybranej informacji dwójkowej. Do tego celu służy technika multipleksowa. Podstawowymi układami są multipleksery i demultipleksery, które umożliwiają zrealizowanie multipleksowego systemu transmisji informacji (rys. 9.14).

      Do zrealizowania takiego systemu jest niezbędny po stronie nadawczej przetwornik formatu słów z równoległego na szeregowy (multiplekser), a po stronie odbiorczej przetwornik formatu słów z szeregowego na równoległy (demultiplekser). Układy tych przetworników funkcjonalnie odpowiadają wielopozycyjnym jednobiegunowym przełącznikom z kodowym wyborem pozycji za pomocą dekodera adresu.

      Multiplekser przekazuje sygnał cyfrowy z jednego z wejść na pojedyncze wyjście, tzw. linię przesyłową, natomiast demultiplekser przenosi sygnał cyfrowy z pojedynczego wejścia na jedno z wielu wyjść. Adresy wejść i wyjść multipleksera i demultipleksera muszą być zgodne.

      Nazwa obydwu elementów pochodzi od łacińskiego „multiplex” oznaczającego „wiele razy”.

      0x08 graphic

      Rys. 9.14 Schemat ideowy multipleksowego systemu transmisji informacji.

      W celu zrealizowania transmisji informacji bez zmiany jej postaci, przetworniki powinny być wyposażone w takie same dekodery adresu. Zazwyczaj jest stosowane adresowanie w naturalnym kodzie dwójkowym.

          1. Multipleksery

      Multiplekser zwany również selektorem, jest układem cyfrowym o M wejściach adresowych i N wejściach informacyjnych oraz o jednym wyjściu Y tj. linię przesyłową (rys. 9.15). Istnieje zależność N = 2M, co oznacza, że zamiast N linii przesyłowych potrzebnych jest tylko M łączy adresowych i jedno łącze informacyjne.

      0x08 graphic

      Rys. 9.15 Multiplekser - symbol ogólny.

      Multiplekser umożliwia wybór i przesłanie na wyjście Y sygnału z jednego z N wejść informacyjnych. Numer wejścia (k) jest wyznaczony przez stan wejść adresowych czyli adres. Realizuje on funkcję wielopołożeniowego przełącznika z cyfrowym wyborem pozycji.

      Na jego wejścia adresowe podaje się binarnie zakodowany numer wejścia, z którego informacja (albo jego negacja) ma być przeniesiona na wyjście układu.

      Zasadę działania multipleksera pokazano za pomocą przykładowego schematu multipleksera jednobitowego służącego do komutacji czterech sygnałów (rys. 9.16a). Zasadę działania ilustruje tablica na rys. 9.16b.

      0x08 graphic
      a)

      b)

      A1

      A0

      Y

      0

      0

      1

      1

      0

      1

      0

      1

      X0

      X1

      X2

      X3

      0x01 graphic

      Rys. 9.16 Multiplekser: a) schemat logiczny,

      b) tablica ilustrująca działanie.

      Dwubitowy adres służy do wybrania jednego z czterech sygnałów wejściowych X. Linią kreskową zaznaczono możliwość uwzględnienia dodatkowego sygnału strobującego, które umożliwia funkcję blokowania lub zezwolenia.

      Multipleksery również są wykonane w postaci układów scalonych. Mogą mieć one dodatkowe wejścia lub wyjścia. Wejścia te służą służąc do łączenia scalonych układów w celu uzyskania większej liczby wyjść. Dodatkowe wyjście natomiast może służyć do podawania zanegowanej informacji wyjściowej.

      Inne multipleksery różnią się od opisanego wyżej głównie liczbą wejść. Układ 151 jest multiplekserem mającym:

      • 8 wejść informacyjnych,

      • 3 wejścia adresowych,

      • wejście strobujące S (próbkujące)

      • wyjście komplementarne (pozycyjne lub negacyjne).

      Układ ten pokazano na rysunku 9.17a, a działanie logiczne przedstawia tablica (rys. 9.17b).

      Na wyjściu Y pojawi się poziom wysoki (logicznie 1) wówczas, gdy wejście informacyjne, wybrane odpowiednią kombinacją stanów wejść adresowych, jest w stanie wysokim (1), a wejście próbkujące w stanie niskim (0), czyli zezwolenia.

      b)

      Wejścia

      Wyjścia

      Adresowe

      Strob

      S

      Y

      W

      C

      B

      A

      X

      X

      X

      1

      0

      1

      0

      0

      0

      0

      0x01 graphic

      0x01 graphic

      0

      0

      1

      0

      0x01 graphic

      0x01 graphic

      0

      1

      0

      0

      0x01 graphic

      0x01 graphic

      0

      1

      1

      0

      0x01 graphic

      0x01 graphic

      1

      0

      0

      0

      0x01 graphic

      0x01 graphic

      1

      0

      1

      0

      0x01 graphic

      0x01 graphic

      1

      1

      0

      0

      0x01 graphic

      0x01 graphic

      1

      1

      1

      0

      0x01 graphic

      0x01 graphic

      a)

      0x08 graphic

      Rys. 9.17 Multiplekser scalony 151:

      1. schemat logiczny, b) tablica ilustrująca działanie.

      Wejście strobujące można wykorzystać do łączenia dwu multiplekserów. Powstanie wówczas układ o 32 wejściach informacyjnych (rys 9.18). Dodatkowym wejściem adresowym jest wejście strobujące.

      W celu otrzymania 32-wejściowego multipleksem należy:

      • połączyć odpowiadające sobie wejścia adresowe;

      • wejście strobujące S multipleksera, mającego odpowiadać za wejścia adresowe o niższych numerach, przyłączyć do dodatkowego wejścia E;

      • wejście strobujące S multipleksera, mającego odpowiadać za wejścia adresowe wyższych numerach, przyłączyć do dodatkowego wejścia E przez negator;

      • wyjścia połączyć przez bramkę AND, jeżeli dane są zanegowane, lub przez bramkę NAND, jeżeli dane są nienegowane.

      Multipleksery stosuje się w układach przetworników informacji z postaci równoległej na szeregową, w generatorach określonych sekwencji bitów.

      0x08 graphic

      Rys. 9.18 Sposób połączenia dwóch multiplekserów.

          1. Demultipleksery

      Demultipleksery należą również do grupy dekoderów. Umożliwiają one przełączanie jednego wejścia na N wyjść. Jest to układ komutacyjny (wielowyjściowy) o M wejściach adresowych i o jednym wejściu informacyjnym X oraz o N = 2M wyjściach. Wejścia adresowe są opisane zwykle wielkimi literami alfabetu, natomiast wejścia informacyjne - liczbami całkowitymi od 0 do 2M - 1 (rys. 9.19).

      Układ ten jest sterowany przełącznikiem cyfrowym. Na wejścia adresowe tego układu podaje się binarnie zakodowany numer wyjścia (określoną kombinację stanów ), na który ma być przeniesiony sygnał wejściowy (lub jego negacja).

      0x08 graphic

      Rys. 9.19 Demultiplekser - symbol ogólny.

      Demultipleksery również są wykonane w postaci układów scalonych. Mogą mieć one dodatkowe wejścia strobujące S, umożliwiające zablokowanie wszystkich wyjść.

      Typowym demultiplekserem scalonym jest układ 154 o 4 wejściach adresowych, 2 wejściach informacyjnych i 16 wyjściach (rys. 9.20). Układ ten spełnia funkcję dekodera naturalnego 4 - bitowego kodu dwójkowego na kod 1 z 16. Wejścia informacyjne G1 i G2 mają aktywny sygnał niski L (0). Jedno z tych wejść może służyć jako wejście informacyjne, a drugie jako wejście strobujące.

      Słowo adresowe (dekodowane) jest podawane na wejścia A, B, C i D powodując, że jedno z wyjść znajdzie się w stanie niskim, jeśli na obydwu wejściach informacyjnych jest poziom niski, na innych wyjściach pojawi się stan wysoki. Jeśli na jednym z dowolnych wejść informacyjnych pojawi się sygnał wysoki, to na wszystkich wyjściach otrzymamy stan wysoki.

      Demultipleksery są stosowne do realizacji logicznych funkcji kombinacyjnych np. jako konwertery kodu BCD na kod 1 z 10.

      a)

      0x08 graphic

      b)

      Wejścia

      Wyjścia

      G1 G2

      B C B A

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L L

      L H

      H L

      H H

      L L L L

      L L L H

      L L H L

      L L H H

      L H L L

      L H L H

      L H H L

      L H H H

      H L L L

      H L L H

      H L H L

      H L H H

      H H L L

      H H L H

      H H H L

      H H H H

      X X X X

      X X X X

      X X X X

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      H

      L

      H

      H

      H

      Rys. 9.20 Demultiplekser 154: a) schemat logiczny,

      b) tablica wartości.

      1. GENERATORY

        1. Przerzutniki monostabilne

      Przerzutniki monostabilne w technice cyfrowej służą do generacji impulsu o określonej długości w celu dostarczenia impulsów bramkujących, kasujących, itp. Są to układy, które w odpowiedzi na sygnały wyzwalające wytwarzają impulsy prostokątne o czasie trwania ściśle zależnym od wartości dołączonych do niego zewnętrznych elementów R, C.

      Układy monostabilne mogą być tworzone z bramek, podobnie jak z tranzystorów w technice analogowej. Parametry tego typu przerzutników nie są często zadawalające, szczególnie przy dużych częstotliwościach wyzwalania nie następuje zdecydowany podział częstotliwości. Oprócz tego szerokość impulsu w takich układach zależy dość znacznie od temperatury. Z tych powodów skonstruowano specjalnie bardziej złożone układy przerzutników, których reprezentantem jest układ typu UCY 74121, którego schemat, zasadę działania i przebiegi czasowe przedstawiono na rys. 10.1.

      0x08 graphic

      a) b)

      Wejście

      Wyjście

      A1

      A2

      B

      Q

      0x01 graphic

      -

      -

      0

      0

      1

      1

      1

      -

      0

      1

      0x08 graphic
      0

      1

      0→1

      1

      0

      0→1

      1→0

      0

      1

      0

      1→0

      1

      0

      0

      0→1

      0x08 graphic
      c)

      Rys. 10.1 Przerzutnik monostabilny 74121: a) schemat, b) zasada działania,

      c) przebiegi czasowe.

      Układ ten posiada:

      • wejścia wyzwalające A1, A2 oraz B,

      • wejścia służące do dołączenia zewnętrznych elementów (R, C) ustalających czas trwania impulsów wyjściowych,

      • wyjścia przerzutnika Q i 0x01 graphic
        .

      W multiwibratorze 4121 następny impuls wyzwalający może się pojawić dopiero po pewnym czasie od chwili zaniku sygnału wyjściowego. Na wyjściu Q przerzutnika w stanie stabilnym jest poziom niski (0). Jeżeli tak spolaryzujemy wejścia A1, A2 oraz B, że sygnał W = (0x01 graphic
      )B zmieni wartość z 0 na 1, to przerzutnik ten zostanie wzbudzony. Stan wyjścia Q zmieni się z 0 na 1 na czas określony ti = 0,69 RC. Po upływie tego czasu wyjście Q wraca do stanu 0. Pożądany czas trwania impulsu wyjściowego ustala się, dobierając odpowiednie wartości elementów R i C.

      Innym przykładem scalonego przerzutnika monostabilnego jest układ 74123, którego schemat i zasadę działania przedstawiono na rys. 10.2. Jest to podwójny przerzutnik monostabilny o wspólnym asynchronicznym wejściu zerującym Z.

      Multiwibrator 4123 generuje impuls przy zmianie sygnału wejściowego B z 0 na 1, gdy A = 0, lub przy zmianie sygnału A = 1 na 0, gdy B = 1.Jeżeli przed upływem czasu τ ponownie pojawi się zmienna wyzwalająca, nastąpi wydłużenie sygnału wyjściowego o czas τ, mierzony od momentu pojawienia się tej przyczyny.

      0x08 graphic
      Podanie niskiego poziomu (0) na wejście Z powoduje natychmiastowe zakończenie generowanego impulsu i przejście wyjścia Q do stanu 0. Przerzutniki mogą być wyzwalane osobno lub współbieżnie. Układ jest wyzwalany narastającym zboczem sygnału W=Ā·B·Z. Do założonego czasu trwania impulsu wyjściowego ti = 0,32RC dobiera się wartości elementów R i C.

      a) b)

      Wejście

      Wyjście

      A

      B

      R

      Q

      0x01 graphic

      1

      -

      1

      0

      1

      -

      0

      1

      0

      1

      0x08 graphic
      0

      0→1

      1

      1→0

      1

      1

      -

      -

      0

      0

      1

      0

      1

      0→1

      Rys.10.2 Przerzutnik monostabilny 74123: a) schemat; b) zasada działania.

        1. Generatory fali prostokątnej

      W tym rozdziale będą omówione układy generujące impulsy prostokątne o poziomach napięć wyjściowych zgodnych z obowiązującymi standardami sygnałów cyfrowych (w zależności od stosowanych elementów: TTL, CMOS lub inne). Przebiegi takie są wytwarzane w generatorach zbudowanych z przerzutników monostabilnych lub bramek logicznych. Projektując układ generatora należy przede wszystkim zwrócić uwagę na zapewnienie stałości częstotliwości drgań.

      Na rys. 10.3a przedstawiono schemat generatora fali prostokątnej zbudowanego z dwóch przerzutników 74121, a na rys. 10.3b przebiegi powstające w tym układzie. Jest to układ generujący drgania o poziomach TTL. W chwili włączenia napięcia zasilania kondensator C powoli ładuje się, napięcie Uc narasta od zera ze stałą czasową τ = RC do wartości +Ucc. Dopóki napięcie to nie osiągnie poziomu 1,55 V, dopóty przerzutnik P2 jest zablokowany (w układzie tym powinny ustać wszelkie procesy przejściowe). Gdy Uc = 1,55 V, wówczas stan na wejściu B zmieni się z 0 na 1 (B = 0 1), co spowoduje (przy A1 = 0; A2 = 0) wygenerowanie impulsu o czasie trwania t2. Wraz z zakończeniem tego impulsu na wejściu przerzutnika P1 pojawi się sygnał wyzwalający go (A1 = 0; A2 = 0; B = 0 1). Spowoduje to wygenerowanie impulsu o czasie trwania t1, wraz z zakończeniem tego impulsu na wejściu przerzutnika P2 pojawi się sygnał wyzwalający go (A1, A2 = 0 1; B = 1).

      0x08 graphic
      a)

      0x08 graphic
      b)

      Rys. 10.3 Generator fali prostokątnej zbudowany z monostabilnych przerzutników scalonych 74121: a) schemat połączeń; b) przebiegi czasowe napięć.

      Stany układu powtarzają się cyklicznie, w rezultacie otrzymuje się na wyjściu przebieg prostokątny. Jego częstotliwość i wypełnienie można regulować przez dobór wartości zewnętrznych elementów R1, C1, R2, C2. Zakres regulowanych częstotliwości wynosi od 0,01 Hz do kilku MHz.

      Drugą grupę generatorów fali prostokątnej stanowią układy budowlane z linearyzowanych bramek logicznych. Są to bramki objęte ujemnym sprzężeniem zwrotnym. Schemat zlinearyzowanej bramki NAND oraz jej charakterystykę statyczną przedstawiono na rys. 10.4. Każda zlinearyzowana bramka jest z układowego punktu widzenia wzmacniaczem odwracającym (przesuwającym fazę sygnału o 180°). w wyniku zastosowania dwóch takich bramek uzyskuje się wzmacniacz o przesunięciu fazowym równym 360°. W pętle sprzężenia zwrotnego może być włączony kondensator lub rezonator kwarcowy.

      0x08 graphic
      a)

      0x08 graphic
      b)

      0x08 graphic
      c)

      Rys. 10.4 Generator przebiegu prostokątnego zbudowany z użyciem zlinearyzowanych bramek logicznych, ze sprzężeniem pojemnościowym: a) schemat zlinearyzowanej bramki NAND; b) charakterystyka przejściowa tej bramki; c) schemat generatora.

      Gdy elementem sprzęgającym jest kondensator (rys. 10.4c), wówczas fazowy warunek powstawania drgań jest spełniony w szerokim zakresie widma sygnałów. Z tego powodu przebieg wyjściowy układu nie jest przebiegiem sinusoidalnym, ale zbliżonym do prostokątnego. Jego częstotliwość reguluje się przez zmianę wartości rezystorów i kondensatora. Przebieg uzyskany w takim układzie charakteryzuje się małą stałością częstotliwości.

      Gdy elementem sprzęgającym jest rezonator kwarcowy (rys. 10.5), wówczas fazowy warunek powstawania drgań jest spełniony tylko dla częstotliwości rezonansu szeregowego rezonatora. Z sygnału wyjściowego w obwodzie generacji drgań rezonator kwarcowy (odgrywający tutaj role filtru wąskopasmowego - przepustowego) wydziela składową harmoniczną o częstotliwości fs, która jest podawana na wejście zlinearyzowanej bramki B1.

      0x08 graphic

      Rys. 10.5 Schemat generatora przebiegu prostokątnego zbudowanego z użyciem zlinearyzowanych bramek logicznych, z rezonatorem kwarcowym w pętli sprzężenia zwrotnego.

      Sygnał o przebiegu sinusoidalnym po wzmocnieniu i ograniczeniu w bramkach B1 i B2 przyjmuje kształt prostokątny. Dodatkowa bramka logiczna (B3) separuje wyjście układu od obwodu wytwarzania drgań. W generatorach fali prostokątnej zbudowanych z bramek logicznych z rezonatorem kwarcowym uzyskuje się dużą stałość częstotliwości generowanego przebiegu.

          1. Generowanie pojedynczego impulsu

      W tym rozdziale będą omówione wybrane rozwiązania budowane z bramek logicznych lub produkowane jako monolityczne (scalone) generatory monostabilne w technologii TTL. Poszczególne rozwiązania różnią się od siebie parametrami otrzymanych przebiegów, zakresem zmian czasu trwania impulsu wyjściowego, stałością czasu trwania tego impulsu, stałością amplitudy impulsu itp.

      Impulsy o krótkim czasie trwania można uzyskać przez odpowiednie połączenie ze sobą układów o różnych czasach propagacji impulsu sterującego X. Zasadę tę ilustrują przebiegi czasowe przedstawione na rys. 10.6.

      0x08 graphic

      Rys. 10.6 Przebiegi czasowe ilustrujące zasadę generacji krótkich impulsów.

      Przez zastosowanie opóźnienia 0x01 graphic
      i inwersji zmiennej sterującej X można uzyskać impulsy sygnalizujące zmianę sygnału sterującego z wartości niskiej na wysoką (0x01 graphic
      ), czyli jak gdyby w odpowiedzi na przednie zbocze X. Otrzymać można również krótki impuls 0x01 graphic
      , sygnalizujący zanik sygnału sterującego. Przykłady realizacji takich generatorów przedstawiono na rys. 10.7a, b i c. Na rys. 10.7d pokazano sposób uzyskania opóźnienia 0x01 graphic
      , wykorzystując czasy propagacji kaskadowo połączonych bramek NAND. Ponieważ impulsy są generowane w wyniku zmian wartości zmiennej sterującej X z poziomu 0 na 1 lub 1 na 0, mówimy często o tzw. różniczkowaniu zbocza tej zmiennej.

      a) b)

      0x08 graphic
      0x08 graphic

      0x08 graphic
      c) d)

      0x08 graphic

      Rys. 10.7 a), b) i c) Przykłady realizacji generatorów pojedynczych impulsów,

      d) układ opóźniający o 0x01 graphic
      .

      Na rys. 10.8a przedstawiono układ różniczkujący przednie zbocze zmiennej A. W układzie tym oprócz bramek zastosowano przerzutnik sr, stanowiący dodatkowy układ opóźniający. Pracę tego układu zilustrowano przebiegami czasowymi na rys. 10.8b.

      a)

      0x08 graphic

      b)

      0x08 graphic

      c) d)

      0x08 graphic
      0x08 graphic

      Rys. 10.8 Generatory pojedynczych impulsów: a) i c) przykładowe schematy logiczne,

      b) i d) przebiegi czasowe ilustrujące pracę generatorów.

      Tak samo jak układ z rys. 10.8a, działa układ przedstawiony na rys. 10.8c, w którym wykorzystano przerzutnik synchroniczny typu D wyzwalany przednim zboczem impulsu różniczkowanego A. W układzie opóźniającym 0x01 graphic
      wymagane są dość znaczne czasy opóźnień. Do tych celów produkuje się specjalne bramki o długich czasach propagacji (SN 49703). Wadą układów impulsowych budowanych na bramkach jest fakt, że uzyskane czasy trwania impulsu wyjściowego będą różne dla różnych egzemplarzy bramek.

      Duża stałość czasu trwania impulsu wyjściowego charakteryzuje układy impulsowe zbudowane za pomocą monolitycznego multiwibratora monostabilnego.

          1. Opóźnienie sygnału o zadany czas

      W układach cyfrowych zachodzi czasem potrzeba opóźnienia przedniego lub tylnego zbocza sygnału sterującego lub przesunięcia sygnału względem wartości wejściowej. Podamy kilka takich rozwiązań o różnych własnościach.

      Przedstawiony na rys. 10.9 układ generuje impuls, którego przednie zbocze jest opóźnione względem przedniego zbocza impulsu wejściowego o czas, którego wartość zależy od wartości pojemności C. Gdy sygnał wejściowy A zmieni wartość z poziomu 0 na 1, na wyjściu trwać będzie nadal sygnał 0 tak długo, dopóki pojemność C nie naładuje się do poziomu przełączenia bramki. Zależność czasów opóźnień od wartości C przedstawiono w tabeli na rys. 10.9c.

      a)

      0x08 graphic

      b) c)

      0x08 graphic
      C

      0x01 graphic

      20 pF

      100 pF

      1 nF

      10 nF

      37 ns

      130 ns

      1 μs

      10 μs

      Rys. 10.9 Układ opóźniający przednie zbocze impulsu wejściowego: a) schemat ideowy,

      b) przebiegi czasowe, c) wartości opóźnień dla różnych pojemności.

      W układzie na rys. 10.10a czas trwania impulsu wyjściowego może być dłuższy od czasu trwania impulsu wejściowego. Dzięki sprzężeniu zwrotnemu czas trwania impulsu wyjściowego nie zależy od czasu trwania niskiego poziomu napięcia na wejściu układu. Przebiegi czasowe z rys. 10.10b pokazują zależność czasu trwania impulsu wyjściowego od wartości pojemności C.

      0x08 graphic
      a)

      0x08 graphic
      b)

      Rys. 10.10 Generator pojedynczego impulsu (aktywny niski poziom logiczny) o czasie trwania niezależnym od czasu trwania zmiennej A: a) układ połączeń,

      b) przebiegi czasowe dla C = 50 pF i C = 250 pF.

      Osobną grupę stanowią układy opóźniające zbudowane z multiwibratorów monostabilnych 4121 o dużej stałości czasu trwania impulsu wyjściowego. Oznaczenia multiwibratora 4121 oraz przebiegi czasowe ilustrujące jego pracę przedstawiono na rys. 10.1.

      Przykłady realizacji opóźnień za pomocą omawianego multiwibratora przedstawiono na rys. 10.11. Otrzymane tu opóźnienia nie przekraczają kilkudziesięciu sekund. W celu uzyskania większych opóźnień stosujemy bardziej złożone układy zawierające liczniki. Generator pojedynczego impulsu można wykonać z bramek NOR lub NAND.

      a)

      0x08 graphic

      b)

      0x08 graphic

      0x08 graphic
      c)

      Rys. 10.11 a), b) i c) Przykłady realizacji opóźnień za pomocą multiwibratora 4121.

      Rys. 10.12 jest przykładem rozwiązania generatora monostabilnego zbudowanego z bramek NOR (402) i inwertora z otwartym kolektorem (405 lub 403). Znaczenie tych rozwiązań jest obecnie niewielkie ze względu na znaczne rozpowszechnienie elementu 4121.

      0x08 graphic

      Rys. 10.12 Przykładowa realizacja generatora pojedynczego impulsu na bramkach NOR.

          1. Generowanie ciągu impulsów

      W serii elementów scalonych nie produkuje się generatorów ciągów impulsów, zwanych multiwibratorami astabilnymi. Wykonuje się je zatem z innych elementów scalonych. Najprostszym rozwiązaniem jest układ przedstawiony na rys. 10.13a.

      Multiwibrator astabilny zbudowano na podstawie bramki Schmitta 4132, charakteryzującej się histerezą zmian 0x01 graphic
      . W przedstawionym układzie jest sprzężenie zwrotne poprzez rezystor R. Pojemność C opóźnia zadziałanie sygnału zwrotnego, który po załadowaniu pojemności C do wartości przełączania wejścia, spowoduje zmianę stanu wyjścia bramki. Następuje rozładowanie kondensatora i przełączenie wyjścia bramki do wartości przeciwnej. Stan ten powtarza się cyklicznie. Współczynnik wypełnienia przebiegu wyjściowego zależy od wartości R i C.

      Częstotliwość pracy multiwibratora zilustrowano przykładami zawartymi w tabeli przedstawionej na rys. 10.13b. Rezystor R można zmieniać w zakresie 100 ÷ 1200 Ω. Układ charakteryzuje niewielka obciążalność i wrażliwość na zmiany napięcia zasilającego.

      a) b)

      0x08 graphic

      C

      f

      20 pF

      100 pF

      1 nF

      10 nF

      0,1 μF

      21,7 MHz

      10,6 MHz

      1,8 MHz

      195 kHz

      21,6 kHz

      Rys. 10.13 Generator ciągu impulsów prostokątnych: a) przykładowy schemat, b) tablica przykładowych wartości C i f.

      Największą stałością generacji impulsów charakteryzują się układy przedstawione na rys. 10.14.

      a)

      0x08 graphic
      b)

      Rys. 10.14 Generator ciągu impulsów prostokątnych: a) schemat układu zbudowanego na podstawie elementów 4121, b)przebieg czasowy zmiennej wyjściowej.

      1. BIBLIOGRAFIA:

      1. Chwaleba Augustyn, Moeschke Bogdan, Płoszajski Grzegorz: Elektronika, Wydawnictwo Szkolne i Pedagogiczne, Warszawa 1996.

      2. Piecha Jan: Elementy cyfrowe TTL, Katowice 1985.

      3. Piecha Jan: Elementy i układy cyfrowe, PWN, Warszawa 1990.

      4. Pieńkoś Jan, Turczyński Janusz: Układy scalone TTL w systemach cyfrowych, Wydawnictwo Komunikacji i Łączności, Warszawa 1980.

      5. Pióro Barbara, Pióro Marek: Podstawy elektroniki cz.1, cz.2, Wydawnictwo Szkolne i Pedagogiczne, Warszawa 1996.

      6. Rusek Andrzej: Podstawy elektroniki, Wydawnictwo Szkolne i Pedagogiczne, Warszawa 1986.

      7. Skorupski Andrzej: Podstawy budowy i działania komputerów, Wydawnictwo Komunikacji i Łączności, Warszawa 1997.

      6

      161

      12

      X 0 1

      Y

      0

      1

      0

      0 0

      0 0

      X 0 1

      Y

      0

      1

      0

      0 0

      0 1

      X 0 1

      Y

      0

      1

      0

      0 1

      0 0

      X 0 1

      Y

      0

      1

      0

      0 1

      0 1

      X 0 1

      Y

      0

      1

      0

      0 0

      1 0

      X 0 1

      Y

      0

      1

      0

      0 1

      1 0

      X 0 1

      Y

      0

      1

      0

      0 0

      1 1

      X 0 1

      Y

      0

      1

      0

      0 1

      1 1

      X 0 1

      Y

      0

      1

      0

      1 0

      0 0

      X 0 1

      Y

      0

      1

      0

      1 0

      0 1

      X 0 1

      Y

      0

      1

      0

      1 1

      0 0

      X 0 1

      Y

      0

      1

      0

      1 1

      0 1

      X 0 1

      Y

      0

      1

      0

      1 0

      1 1

      X 0 1

      Y

      0

      1

      0

      1 0

      1 0

      X 0 1

      Y

      0

      1

      0

      1 1

      1 0

      1 1

      1 1

      0

      Y

      0

      1

      X 0 1

      F

      A

      B

      T4

      T3

      T2

      F

      A

      A

      F

      B

      A

      F

      B

      A

      F

      B

      A

      F

      B

      0,8

      0,4

      UCC=5

      2

      2,4

      q

      Q

      Y=(t+Δt2)

      Y=(t+Δt2)

      Q(t+Δt1)

      Q(t+Δt1)

      Q(t)

      Q(t)

      U P

      U P

      K B W

      K B W

      x(t)

      x(t)

      x1

      x2

      xn

      f(X)

      X Y

      f(X)

      D Q

      C

      0x01 graphic

      T Q

      C

      0x01 graphic

      S Q

      C

      R 0x01 graphic

      J Q

      C

      K 0x01 graphic

      Q

      0x01 graphic

      J Q

      C

      K 0x01 graphic

      T Q

      C

      0x01 graphic

      S Q

      C

      R 0x01 graphic

      D Q

      C

      0x01 graphic

      C4

      T

      Cn

      Sn-1

      Cn-1

      Bn-1

      An-1

      Σ

      Ci+1

      Si

      Ci

      Bi

      Ai

      Σ

      C1

      S0

      C0

      B0

      A0

      Σ

      Vi+1

      Vi

      AiBi

      Di

      Vi

      AiBi

      Vi+1

      Di

      Vi

      Bi

      Ai

      Σ

      0x01 graphic

      Ci+1

      Si

      Bi

      Ai

      Ci

      Ci+1

      Si

      Ai

      Bi

      Ci

      Ci+1

      Ci

      AiBi

      Si

      Ci

      AiBi

      Ci+1

      Si

      Ci

      Bi

      Ai

      Σ

      S = A⊕B

      C = AB

      B

      A

      0

      1

      B

      0 0

      0 1

      A 0 1

      0

      1

      R9(1) R9(2) R0(1) R0(2)

      We Q0 Q3

      B

      9

      10

      1

      Q1

      R9(1) = 0 R9(2) = 0 R0(1) = 0 R0(2) = 0 WeQ0 = 0

      A

      Σ

      8

      7

      6

      5

      4

      3

      0 1

      1 0

      A 0 1

      Przeniesienie

      B B'

      A

      A'

      B

      Y = A+B

      A

      B

      F

      A

      T1

      D3

      D1 D2

      R3

      R1 R2 R4

      UWY

      +UCC

      1. A

      B

      T

      T'

      L

      L'

      CB

      A

      B

      A

      L

      L'

      CD

      AB

      CB

      DA

      AB

      wiersze

      kolumny

      CD

      kolumny

      wiersze

      AB

      CD

      L

      L'

      M'

      M

      AB

      CDE

      L

      M'

      M

      L'

      T

      T'

      0x01 graphic

      0x01 graphic

      AB

      CD

      Q

      r

      C

      s

      A B C D

      0x01 graphic

      Wyjścia

      Asynchroniczne

      wejście zerujące

      Asynchroniczne

      wejście ustawiające

      Wejście zegarowe

      Synchroniczne

      wejście informacyjne

      Synchroniczne

      wejście informacyjne

      aktywny stan 1

      aktywny stan 0

      oddziałuje zbocze narastające

      oddziałuje zbocze opadające

      r

      r

      s

      s

      t

      t

      t

      C

      D

      Q

      J

      C

      K

      M

      S

      s

      0x01 graphic

      Q

      0x01 graphic

      1

      2

      3

      4

      Q

      J

      C

      t

      t

      t

      K

      J Q

      C

      K 0x01 graphic

      T

      D

      J Q

      C

      K 0x01 graphic

      D Q

      C

      0x01 graphic

      T

      Wy

      We

      Wejścia równoległe

      Wyjścia równoległe

      Rejestr A

      Wejście szeregowe

      (przesuw wstecz)

      Wyjście szeregowe

      Wejścia

      Szeregowe

      (przesuw w przód)

      Zegarowe

      Sterujące

      Zerujące

      D0 Q0

      C

      0x01 graphic
      0

      D3 Q3

      C

      0x01 graphic
      3

      D2 Q2

      C

      0x01 graphic
      2

      D1 Q1

      C

      0x01 graphic
      1

      Wy0

      Wy1

      Wy2

      Wy3

      We0

      We1

      We2

      We3

      C

      Z

      A

      a0

      We0

      Wen-1

      an-1

      Q0

      Qn-1

      Qn-1

      Q0

      an-1

      Wen-1

      We0

      a0

      A

      Z

      J Q

      C

      K 0x01 graphic

      s

      r

      r

      s

      J Q

      C

      K 0x01 graphic

      Z

      Wei

      A

      Qi

      r

      s

      J Q

      C

      K 0x01 graphic

      r

      s

      J Q

      C

      K 0x01 graphic

      Qn-1

      Q0

      an-1

      Wen-1

      We0

      a0

      A

      Wei

      A

      Qi

      D Q

      C

      0x01 graphic

      r

      We0

      T

      Z

      r

      D Q

      C

      0x01 graphic

      Wen-1

      Q0

      Qn-1

      Wei

      T

      Qi

      ts

      th

      J Q

      C

      K 0x01 graphic

      C

      Wy

      J Q

      C

      K 0x01 graphic

      We

      We

      J Q

      C

      K 0x01 graphic

      C

      J Q

      C

      K 0x01 graphic

      Wy

      D Q

      C

      0x01 graphic

      D Q

      C

      0x01 graphic

      D Q

      C

      0x01 graphic

      D Q

      C

      0x01 graphic
      0

      „1”

      „1”

      „1”

      WE/WY

      Dekoder Y

      Matryca pamięciowa

      Adresy Y

      Układy kontroli (sterowania) wejścia/wyjścia

      Dekoder X

      Adresy X

      C

      0x01 graphic

      0x01 graphic

      T Q

      C

      0x01 graphic

      0x01 graphic

      0x01 graphic

      T Q

      C

      0x01 graphic

      0x01 graphic

      0x01 graphic

      T Q

      C

      0x01 graphic

      „1”

      0

      Q0

      C

      0x01 graphic

      0x01 graphic

      1

      Q1

      1

      Q2

      1

      Q3

      T Q

      C

      0x01 graphic

      1

      1

      0

      0

      Q3Q2

      Q1Q0

      Q3Q2

      Q1Q0

      Q3Q2

      Q1Q0

      Q3Q2

      Q1Q0

      Q3Q2

      Q1Q0

      Q3Q2

      Q1Q0

      U 1

      A B

      n - bitowy rejestr przesuwający

      Składnik B

      C

      Q0

      Q1

      Q2

      Q3

      n - bitowy rejestr przesuwający

      Składnik B

      J3 Q3

      C

      K3 0x01 graphic
      3

      n - bitowy rejestr przesuwający

      X = AB

      A

      C

      Ci-1

      J2 Q2

      C

      K2 0x01 graphic
      2

      Q3

      Q2

      Q1

      Q0

      C

      Ci

      Σ

      J1 Q1

      C

      K1 0x01 graphic
      1

      „1”

      C

      S

      A Q

      C

      J0 Q0

      C

      K0 0x01 graphic
      0

      Q

      q

      1

      2

      3

      4

      Wyjście

      Kierunek przesuwu słowo zapamiętane

      Słowo przesunięte w lewo

      Takt

      0

      I

      II

      III a) odczyt równoległy

      IV

      V

      VI b) odczyt szeregowy

      Adres

      Pamięć ROM (PROM)

      Kod wejściowy

      ROM (PROM)

      (256 x 8)

      ROM (PROM)

      (256 x 8)

      83

      83

      C

      A4÷7

      B4÷7

      A0÷3

      B0÷3

      ROM (PROM)

      (256 x 8)

      A7

      A0

      Licznik

      dwójkowy

      Generator

      Przetwornik

      C/A

      Filtr

      Wy

      Wyjścia

      Impuls zerujący

      (ustawiający)

      Wejścia

      Impulsy zliczane

      Układ sekwencyjny

      s - stanowy

      We

      We

      J2 Q2

      C

      K2 0x01 graphic
      2

      „1”

      Q2

      Q1

      Q0

      J1 Q1

      C

      K1 0x01 graphic
      1

      „1”

      „1”

      J0 Q0

      C

      K0 0x01 graphic
      0

      Q0

      Q1

      Q2

      1

      2

      3

      4

      5

      6

      7

      8

      7

      6

      5

      4

      3

      2

      1

      0

      0

      1

      2

      3

      4

      5

      6

      7

      7

      6

      5

      4

      3

      2

      1

      8

      Q2

      Q1

      Q0

      We

      We

      1

      0x01 graphic

      Q2

      C

      0x01 graphic
      2

      Q2

      Q1

      Q0

      Q1

      C

      0x01 graphic
      1

      We

      Q0

      C

      0x01 graphic
      0

      0

      0x01 graphic

      Q1

      Q0

      J1 Q1

      C

      K1 0x01 graphic
      1

      1

      J0 Q0

      C

      K0 0x01 graphic
      0

      Suma

      Dodajnik

      A

      3

      0

      2

      1

      J2 Q2

      C

      K2 0x01 graphic
      2

      Dodajna

      A

      B

      C S

      UP

      1

      3

      2

      1

      0x01 graphic

      Q1

      Q0

      We

      J1 Q1

      C

      K1 0x01 graphic
      1

      S

      J0 Q0

      C

      K0 0x01 graphic
      0

      C

      Q2

      Q3, We Q0

      1

      1

      Q1

      J 0x01 graphic
      Q

      C

      K 0x01 graphic
      0x01 graphic

      1

      1

      We Q1 Q3

      B

      0x01 graphic

      0x01 graphic

      J Q

      C

      K 0x01 graphic

      Q3

      Q2

      Q1

      Q0

      2

      0x01 graphic

      0x01 graphic

      J Q

      C

      K 0x01 graphic

      1

      We Q0

      0x01 graphic

      0x01 graphic

      J Q

      C

      K 0x01 graphic

      G

      S

      C0

      B

      A

      Σ

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      C0

      C3

      C2

      C1

      74182

      C0

      C0

      C

      G T

      G3T3

      G2T2C3

      G1T1C2

      Σ

      C4

      S

      C0

      B

      A

      G

      T

      Σ

      C4

      S

      C0

      B

      A

      G

      T

      Σ

      C4

      S

      C0

      B

      A

      G

      T

      Σ

      C4

      S

      C0

      B

      A

      G

      T

      G0T0C1

      Suma

      Takt

      1

      2

      3

      A0

      B0

      An-1

      Bn-1

      0x01 graphic

      0x01 graphic

      A0

      B0

      An-1

      Bn-1

      T0

      Tn-1

      (A=B)

      (A=B)

      J Q

      C

      K R 0x01 graphic

      We

      A

      B

      Zerowanie

      A B

      A = B

      B

      0x01 graphic

      A < B

      J Q

      C

      K 0x01 graphic

      A = B

      A > B

      Zer

      B

      A

      We

      J Q

      C

      K 0x01 graphic

      A > B

      A < B

      A = B

      Zer

      B

      A

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      A

      B

      We

      Zer

      B

      A

      A < B

      A = B

      A > B

      J Q

      C

      K 0x01 graphic

      J Q

      C

      K 0x01 graphic

      A < B

      A > B

      A = B

      Zer

      B

      A

      KOD WYJŚCIOWY

        1. KOD 1 z n

      b)

      1. Kod 1 z 10

      9

      8

      7

      6

      5

      4

      3

      2

      1

      D

      C

      B

      A

      a)

      D

      C

      B

      A

      1. Kod 1 z 10

      9

      8

      7

      6

      5

      4

      3

      2

      1

      1

      2

      3

      4

      5

      6

      7

      8

      9

      1. Kod 0x01 graphic

      A

      B

      C

      D

      B

      B

      A

      A

      0x01 graphic

      3

      2

      1

      0

      0x01 graphic

      3

      2

      1

      0

      B

      B

      A

      A

      1z4

      3

      2

      1

      0

      1z4

      3

      2

      1

      0

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      BA

      BA

      DC

      DC

      0

      2

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      A

      A

      A

      A

      A

      A

      B

      B

      B

      B

      B

      B

      C

      C

      C

      C

      C

      D

      D

      Stany zabronione

      Kod wyjściowy X

      Kod wejściowy X

      Transkoder

      Kod wyjściowy X

      Kod pierścieniowy

      Dekoder

      Enkoder

      Kod wejściowy X

      BA

      BA

      DC

      DC

      B'

      C'

      A

      B

      C

      D

      A'

      B'

      C'

      D'

      BA

      DC

      BA

      DC

      B'

      C'

      BA

      DC

      BA

      DC

      D'

      A'

      A

      B

      C

      D

      A'

      B'

      C'

      D'

      A''

      42

      A

      B

      C

      D

      a

      f

      g

      e

      d

      Wyjścia

      0

      2

      8

      6

      9

      7

      1

      4

      5

      3

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      g

      f

      e

      b

      a

      -

      D

      C

      B

      A

      Linia przesyłowa

      1. Adres

      Demultiplekser

      Wy

      1. Adres

      1. We

      Multiplekser

      M wejść adresowych

      2M wejść informacyjnych

      Wyjście

      1. Y

      A B

      2M - 1

      0

      1

      2

      3

      Wejście

      adresowe

      A0

      A1

      Wyjście Y

      S

      X0 X1 X2 X3

      0x01 graphic

      0x01 graphic

      0x01 graphic

      C

      B

      A

      Y

      W

      S

      Wejście strobujące

      Wejścia informacyjne

      D0

      D1

      D2

      D3

      D4

      D5

      D6

      D7

      Wejścia adresowe

      A

      B

      C

      D

      C

      B

      A

      E

      D

      C

      B

      A

      S

      W

      31

      30

      28

      27

      29

      22

      23

      24

      25

      26

      17

      21

      20

      19

      18

      16

      15

      14

      13

      11

      12

      10

      8

      9

      7

      6

      4

      3

      2

      0

      1

      5

      M wejść adresowych

      Wejście

      Informacyjne

      X

      2M wyjść

      A B

      2M - 1

      0

      1

      2

      3

      s

      r

      0x01 graphic

      S0

      S1

      S2

      S3

      C4

      C0

      C3

      C2

      C1

      T0

      G0

      T1

      G1

      T2

      G2

      T3

      G3

      B3

      A3

      B2

      A2

      B1

      A1

      B0

      A0

      1

      0

      0

      1

      A

      B

      0

      1

      0

      1

      1

      0

      1

      0

      B

      A

      0

      0

      1

      0

      1

      0

      1

      0

      B

      A

      1

      0

      1

      1

      1

      0

      1

      0

      B

      A

      1

      1

      0

      1

      1

      0

      1

      0

      B

      A

      0

      1

      0

      0

      A

      0x01 graphic

      A

      0x01 graphic

      A

      B

      0x01 graphic
      B

      B

      0x01 graphic
      B

      B

      (A>B)

      (A≥B)

      (A=B)

      (A≤B)

      (A<B)

      e

      f

      c

      b

      g

      d

      a

      BI

      D

      C

      B

      A

      g

      f

      e

      d

      c

      b

      a

      0x01 graphic

      0x01 graphic

      0x01 graphic

      B

      A

      C

      0x01 graphic

      0x01 graphic

      A

      0x01 graphic

      0x01 graphic

      A

      B

      A

      C

      0x01 graphic

      C

      0x01 graphic

      0x01 graphic

      0x01 graphic

      A

      B

      0x01 graphic

      0x01 graphic

      B

      C

      0x01 graphic

      1. A

      C

      1. B

      D

      1. A

      1. 0x01 graphic

      1. 0x01 graphic

      1. 0x01 graphic

      1. 0x01 graphic

      1. C

      0x01 graphic

      1. B

      D

        1. C

      D

      B

      A

      B

      C

      g

      e

      f

      d

      c

      b

      a

      0 1 2 3 4 5 6 7

      8 9 10 11 12 13 14 15

      a

      DC

      BA

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      1. Wejścia

      1. Wyjścia

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      G

      A

      B

      C

      D

      D

      C

      B

      A

      G1

      G2

      +UCC

      R

      C

      0x01 graphic

      Q

      W

      A1

      A2

      B

      A1

      A2

      B

      W

      Q

      0x01 graphic

      T1

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      1

      0

      Z

      +UCC

      R

      C

      0x01 graphic

      Q

      W

      A

      B

      Wy

      P2

      P1

      UC

      B

      A1

      A2

      A1

      A2

      B

      +UCC

      C

      R

      R2

      C2

      R1

      C1

      0x01 graphic
      2

      Q2

      0x01 graphic
      1

      Q1

      1,55V

      t2

      t1

      t2

      UCC

      UCC

      UCC

      U01

      U02

      UC

      0

      0

      0

      t

      t

      R2

      R1

      Wy

      C

      B2

      B1

      R4

      R3

      R2

      R1

      B3

      Wy

      B2

      B1

      R4

      R3

      R2

      R1

      UWe

      UWy

      V

      V

      0

      5

      4

      3

      2

      1

      5

      4

      3

      2

      1

      2

      1

      0x01 graphic

      0x01 graphic

      A

      0x01 graphic

      0x01 graphic

      0x01 graphic

      B1B0

      A1A0

      AB

      CD

      AB

      CD

      e

      c

      a

      Y

      C

      D

      B

      B

      0x01 graphic

      D

      0x01 graphic

      0x01 graphic

      A

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      A

      B

      A

      B

      C

      D

      b

      d

      Y

      B

      A

      C

      A

      D

      Y

      Y

      0x01 graphic
      0x01 graphic

      A1 A0

      0

      U

      Gwarantowany zakres napięć na wyjściu bramki w stanie 1

      Gwarantowany zakres napięć na wyjściu bramki w stanie 0

      Dozwolony zakres napięć na wejściu bramki dla stanu 0

      Dozwolony zakres napięć na wejściu bramki dla stanu 1

      1. A

      C

      B

      D

      Y

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      r

      r

      r

      s

      s

      s

      Q

      Q

      Q

      Q0

      Q2

      Q1

      C

      C

      C

      X

      K

      T

      1

      T

      2

      T

      3

      T

      4

      R

      C

      R

      C

      +U

      CC

      Q

      Q

      Linia

      bitu

      Linia

      wyboru

      wiersza

      Wejście -

      0x01 graphic

      0x01 graphic

      wyjście

      0x01 graphic

      Wejście -

      0x01 graphic

      0x01 graphic

      wyjście

      0x01 graphic

      Linia

      bitu

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      2k

      1. W

      Y

      X

      Y

      1. W

      X

      1

      C

      D

      2k + 1

      X

      Y

      Y

      X

      C

      B

      Y

      A

      0x01 graphic

      Y

      1. B

      A

      C

      B

      Y

      A

      C=250pF

      C=50pF

      t

      t

      t

      t

      t

      t

      Y

      Y

      B

      B

      A

      A

      Y

      X

      0x01 graphic

      0x01 graphic

      0x01 graphic

      Y

      0

      X

      Y

      X

      0x01 graphic

      Y

      0x01 graphic

      0x01 graphic

      1

      X

      Y

      X

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      Y

      1

      0

      X

      R

      C

      Y

      1/4 402

      1/6 505

      1/4 402

      +Ucc

      X

      R2,C2

      R1,C1

      Y

      Y

      1. X

      Y

      C

      R

      0x01 graphic

      0x01 graphic

      0x01 graphic

      0x01 graphic

      4121

      4121

      0x01 graphic

      Y

      Y

      wy

      Rejestr

      kolumn

      CR

      Układy

      stero-

      wania

      Linie wierszy

      0 255

      Wzmocnienie kolumn i układy we-wy

      0

      255

      Matryca

      pamięciowa

      256 x 256

      8

      we

      RAS

      CAS

      WE

      Adres

      Rejestr

      wiersza

      RR

      Wejścia

      adresowe

      1. Wejścia

      sterujące

      Wejścia - wyjścia

      danych

      Adres

      A13

      A7

      0x01 graphic

      0x01 graphic

      0x01 graphic

      Dane

      D7

      D0

      0 127

      1. Sterowanie

      2. WE

      0 127

      Układ

      zapisu / odczytu

      Matryca

      pamięciowa

      128 x 128

      0

      127

      A6

      A0



      Wyszukiwarka

      Podobne podstrony:
      Elektronika Cyfrowa, Wstęp
      Modul 3 Podstawy elektroniki cyfrowej
      Strona tytułowa sprawozdanie, UTP Elektrotechnika, 1 sesmetr, Wstęp do elektrotechniki, Laborki
      elektronika cyfrowa -pytania dla ib
      Elektronika cyfrowa 2
      Elektronika Cyfrowa, S
      Protokol Cwiczenie 4, UTP Elektrotechnika, 1 sesmetr, Wstęp do elektrotechniki, Laborki
      Protokol Cwiczenie 2, UTP Elektrotechnika, 1 sesmetr, Wstęp do elektrotechniki, Laborki
      POLE ELEKTRYCZNE, edu, Wstęp do Elektrotechniki
      Elektronika cyfrowa
      Protokol Cwiczenie 5, UTP Elektrotechnika, 1 sesmetr, Wstęp do elektrotechniki, Laborki
      Tematy egzaminacyjne z przedmiotu „Wstęp do Elektrotechniki” (20032004), Wstęp do elektrotechniki
      elektronika cyfrowe układy kombinacyjne 3F2Z7LBV3UQWMPV3OADNTCQLCZHPW2DOT4WVVJQ
      Badanie parametrów elektrycznych cyfrowych układów TTL i MOS, Klasa
      przetwarzanie cyfrowe wstep tel Nieznany
      Modul 3 Podstawy elektroniki cyfrowej

      więcej podobnych podstron