background image

ELEKTRONIKA CYFROWA

1

background image

SPIS TREŚCI

1. WPROWADZENIE....................................................................................................4

1.1. Systemy liczbowe.....................................................................................................................4

1.1.1. Dziesiętny system liczbowy

5

1.1.2. Dwójkowy system liczbowy

5

1.1.3. Szesnastkowy system liczbowy

6

1.2. Kody.........................................................................................................................................7

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

..............................................................................................................................9

2.1. Wstęp.......................................................................................................................................9
2.2. Podstawowe funkcje logiczne................................................................................................10
2.3. Sposoby przedstawiania funkcji logicznych............................................................................13
2.4. Funktory układów logicznych.................................................................................................15
2.5. Układy TTL.............................................................................................................................20

3. UKŁADY KOMBINACYJNE I SEKWENCYJNE......................................................23

3.1. Wstęp.....................................................................................................................................23
3.2. Metoda Karnaugha.................................................................................................................24

4. PRZERZUTNIKI......................................................................................................32

4.1. Wstęp.....................................................................................................................................32
4.2. Przerzutniki asynchroniczne...................................................................................................34
4.3. Przerzutniki synchroniczne.....................................................................................................35

4.3.1. Wstęp

35

4.3.2. Przerzutnik synchroniczny D

35

4.3.3. Przerzutnik synchroniczny T

37

4.3.4. Przerzutnik synchroniczny RS

37

4.3.5. Przerzutnik synchroniczny JK

38

5. REJESTRY..............................................................................................................44

5.1. Wstęp.....................................................................................................................................44
5.2. Rejestry równoległe................................................................................................................45
5.3. 5.3 Rejestry szeregowe..........................................................................................................47

6. PAMIĘCI..................................................................................................................48

6.1. 6.1 Wstęp...............................................................................................................................48
6.2. 6.2 Pamięci o dostępie swobodnym RAM..............................................................................48
6.3. Pamięci stałe ROM................................................................................................................51

6.3.1. Zastosowania pamięci ROM (PROM)

53

7. LICZNIKI CYFROWE..............................................................................................55

7.1. Wiadomości ogólne................................................................................................................55
7.2. Liczniki asynchroniczne ........................................................................................................55
7.3. Liczniki synchroniczne...........................................................................................................59

8. UKŁADY ARYTMETYCZNE....................................................................................62

8.1. Wstęp.....................................................................................................................................62
8.2. Sumatory................................................................................................................................62

8.2.1. Sumatory równoległe

65

8.2.2. Sumatory szeregowe

67

8.3. Komparatory...........................................................................................................................68

8.3.1. Komparatory jednobitowych liczb dwójkowych

68

8.3.2. Komparatory równoległe

69

8.3.3. Komparatory szeregowe

71

9. UKŁADY KOMUTACYJNE .....................................................................................73

9.1. Wstęp.....................................................................................................................................73
9.2. Enkodery................................................................................................................................73
9.3. Dekodery................................................................................................................................74
9.4. Transkodery...........................................................................................................................78

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

78

2

background image

9.5. Multipleksery i demultipleksery...............................................................................................84

9.5.1. Wstęp

84

9.5.2. Multipleksery

84

9.5.3. Demultipleksery

86

10. GENERATORY.....................................................................................................89

10.1. Przerzutniki monostabilne....................................................................................................89
10.2. Generatory fali prostokątnej.................................................................................................90

10.2.1. Generowanie pojedynczego impulsu

91

10.2.2. Opóźnienie sygnału o zadany czas

92

10.2.3. Generowanie ciągu impulsów

94

11. BIBLIOGRAFIA:.....................................................................................................95

3

background image

1.

WPROWADZENIE

1.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:

=

=

+

+

+

+

1

0

0

0

1

1

2

2

1

1

...

n

i

i

i

n

n

n

n

p

a

p

a

p

a

p

a

p

a

lub w skróconej postaci:

[

]

p

n

n

a

a

a

a

0

1

2

1

...

gdzie:

p – podstawa systemu, którą jest liczba całkowita dodatnia,
n – numer pozycji
a

i

 – cyfry z zakresu od 0 do p – 1.

Pierwszej cyfrze w lewo od przecinka przypisuje się wagę p

0

, drugiej 

 p

1

, a trzeciej 

 p

2

. 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:

zbiorem dwójkowym (binarnym) o podstawie p = 2,

zbiorem ósemkowym (oktalnym) o podstawie p = 8,

zbiorem dziesiątkowym o podstawie p = 10,

zbiorem szesnastkowym (heksadecymalnym) o podstawie p = 16.

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

4

background image

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.1.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 10

1

)+(5 x 10

0

)

Liczba ta składa się z elementów o wadze 10

0

 = 1 i jednego elementu o wadze 10

1

 = 10

Przykład 1.2:
Zapis:

574, 28

10

jest skróconym zapisem wyrażenia :

(5 x 10

2

)+(7 x 10

1

)+(4 x 10

0

)+(2 x 10

-1

)+(8 x 10

-2

)

W tym przykładzie 5 jest na pozycji setek (10

2

), 7 na pozycji dziesiątek (10

1

), 4 na pozycji jedności (10

0

), 2 na pozycji dziesiętnych (10

-1

) i 8 na 

pozycji setnych (10

-2

).

1.1.2.

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:

1101

2

oznacza liczbę powstałą z sumowania

(1 x 2

3

)+(1 x 2

2

)+(0 x 2

1

)+(1 x 2

0

) = 13

10

Przykład 1.4:
Zapis: 

1001, 1 101

2

jest zapisem skróconym wyrażenia:
(1 x 2

3

)+(0 x 2

2

)+(0 x 2

1

)+(1 x 2

0

)+(1 x 2

-1

)+(1 x 2

-2

)+(0 x 2

-3

)+(1 x 2

-4

) = 9,8125

10

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 N

10

 = 9,8125

9 : 2 = 4 reszta 

1 (LSB)

4 : 2 = 2

0

2 : 2 = 1

0

1 : 2 = 0

1 (MSB)

0,8125 x 2 = 1,6250 = 0,6250 nadmiar

1 (MSB)

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,8125

10

 = 1001,1101

2

5

background image

1.1.3.

Szesnastkowy system liczbowy

Szesnastkowy   system   liczbowy   jest   to   taki   system   pozycyjny,   którego   podstawa  p   =   2

4

.   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, C8

16

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

(15 x 16

2

) + (3 x 16

1

) + (10 x 16

0

) + (12 x 16

-1

) + (8 x 16

-2

) = 3898,78125

10

Przykład 1.7:
Liczba zapisana w systemie heksadecymalnym ma postać: 3F

16

. Liczba ta oznacza liczbę powstałą przez sumowanie:

(3 x 16

1

) + (15 x 16

0

) = 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 N

10

 = 2527,78125

10

2527

10

 = 9DF

16

0,78125

10

 = C8

16

Wynik konwersji: 2527,78125

10

 = 9DF, C8

16

Tablica 1.3 Tablica potęg liczby 2

2

n

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 N

2

 = 11010101000,1111010111

0110

1010

1000,

1111

0101

1100

6

 A

 8,

 F

 5

 C

zatem 1101010100,1111010111

2

 = 6A8,F5C

H

6

background image

1.2.

Kody

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

długość m – jest to liczba bitów informacji albo liczba zmiennych,

pojemność P – jest to liczba kombinacji wartości zmiennych występujących w kodzie.

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ć  2

m 

różnych elementów informacji, np. kod dwójkowy złożony z 

siedmiu bitów umożliwia zakodowanie 2

7

 = 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:

kody zupełne, które zawierają wszystkie możliwe kombinacje wartości zmiennych,

kody niezupełne, które nie wykorzystują wszystkich kombinacji.

2.

Kody systematyczne i niesystematyczne:

kody systematyczne tworzy się na podstawie reguły formalnej, w której każda kombinacja wartości zmiennych jest zdefiniowana w sposób 
jednoznaczny, do kodów systematycznych zaliczamy m.in. wszystkie kody wagowe,

kody niesystematyczne wymagają podania tabeli, która określa kolejność poszczególnych kombinacji występujących w dowolnym porządku, do 
kodów niesystematycznych zaliczamy kod Watha, dalekopisowy i inne.

3.

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ą 2

i

, (gdzie i = 0, 1, 2, ..., 2

n-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

4.

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:  2

3

 < 10 < 2

4

. 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.

7

background image

Tablica 1.5 Kody dwójkowo – dziesiętne wagowe

Kod:

Naturalny

Aikena

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

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

8

background image

2.

PODSTAWOWE FUNKCJE LOGICZNE I FUNKTORY UKŁADÓW LOGICZNYCH

2.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

 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ą:

Iloczyn logiczny I (ang. AND),

Y = A · B

Suma logiczna LUB (ang. OR),

Y = A + B

Negacja (inwersja) NIE (ang. NOT),

A

Y

=

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

Suma zanegowana:

B

A

Y

+

=

NOR

Iloczyn zanegowany:

B

A

Y

=

NAND

Równoważność:

B

A

Y

=

EX-NOR

Nierównoważność, zwana sumą modulo 2:

B

A

Y

=

EOR, XOR

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:

a

A+B B+A

b

A · B = B · A

2. Prawo łączności:

a

mnożenia
A+B+C A+(B+C) = (A+B)+C

b

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

3. Prawo rozdzielczości:

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)

4. Prawa podstawowe:

a

A + 1 = 1

b

A · 1 = A

A + 0=A

b

A · 0 = 0

a

A + A = A

b

A · A = A

a

A

A

A

=

+

b

0

A

A

=

5. Prawa de Morgana:

9

background image

a

...

C

B

A

...

C

B

A

=

+

+

+

b

...

C

B

A

...

C

B

A

+

+

+

=

6.

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+

A

·C=A·B+

A

-C

b

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

A

+C) = (A+B) · (

A

+ C)

a

A · B + 

A

· B = B

b

(A + B) · (

A

+ 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:

B

A

B

A

=

+

B

A

B

A

+

=

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 2

n

 różnych kombinacji argumentów,

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

n

.

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.

2.2.

Podstawowe funkcje logiczne

Funkcja I (AND)

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

B

A

B

A

AB

A·B

X

=

=

=

=

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).

10

background image

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:

B

A

B

A

B

A

Y

=

=

+

=

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 lub klucz B, lub obydwa są zamknięte (patrz rys. 2.3).

Rys. 2.4 Realizacja fizyczna dwuargumentowej funkcji LUB (OR).

Funkcja NIE (NOT)

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

'

A

A

N

=

=

Najczęściej używane jest pierwsze wyrażenie. Symbol A odczytuje się jako „nie A” lub „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ę 

A

 („nie A”). Funkcję NIE (NOT) przedstawiono na rys. 2.5

.

A

N

0

1

1

0

Rys. 2.5 Tablica funkcji NIE (NOT).

11

U

1

A

B

X = AB

Y = A+B

A

B

background image

Tablica 2.1 Funkcje dwóch zmiennych

i

Tablica wartości

Tablica Karnaugha

Zapis algebraiczny

Nazwa funkcji w 

języku

polskim

X

Y

f

i

angielskim

0

0
0
1
1

0
1
0
1

0
0
0
0

f

0

 = 0

stała 0

ZERO
NULL FUNCTION

1

0
0
1
1

0
1
0
1

0
0
0
1

f

1

 = X

Y

I
Koniunkcja

AND
CONJUNCTION

2

0
0
1
1

0
1
0
1

0
0
1
0

f

2

 = X

Y

Zakaz przez Y

INHIBIT

3

0
0
1
1

0
1
0
1

0
0
1
1

f

3

 = X

Zmienna X

INDENTITY X

4

0
0
1
1

0
1
0
1

0
1
0
0

f

4

 = 

Y

X

Zakaz przez X

INHIBIT

5

0
0
1
1

0
1
0
1

0
1
0
1

f

5

 = Y

Zmienna Y

IDENTITY Y

6

0
0
1
1

0
1
0
1

0
1
1
0

f

6

 = 

Y

X

Y

X

+

Y

X

=

ALBO
Suma modulo 2
Wyłącznie LUB

EXCLUSIVE - OR

7

0
0
1
1

0
1
0
1

0
1
1
1

f

7

 = 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

f

i

angielskim

8

0
0
1

0
1
0

1
0
0

f

8

 = 

Y

X

Y

X

+

=

LUB – NIE
Strzałka Peirce’a

12

    

X  

 0    1 

 

 Y

0
1

0

0 1
0 1

     

X  

 0    1 

 

 Y

0
1

0

0 1
0 0

        

X

 0   1 

 

 Y

0
1

0

0 0
0 1

      

 0  1 

 

     Y

0
1

0

0 0
0 0

     

X   

 0   1 

 

 Y

0
1

0

0 0
1 0

     

X  

 0    1 

 

 Y

0
1

0

0 0
1 1

     

X  

 0   1 

 

 Y

0
1

0

0 1
1 0

     

X

 0 1 

 

 Y

0
1

0

0 1
1 1

       

X

  0   1 

 

 Y

0
1

0

1 0
0 0

background image

1

1

0

NOR
PEIRCE FUNCTION

9

0
0
1
1

0
1
0
1

1
0
0
1

f

9

 = 

Y

X

Y

X

XY

=

+

ALBO – NIE
Równoważność

EXCLUSIVE – NOR
EQUALITY
COINCIDENCE

10

0
0
1
1

0
1
0
1

1
0
1
0

f

10

 = 

Y

Negacja Y

NOT Y

11

0
0
1
1

0
1
0
1

1
0
1
1

f

11

 = 

Y

X

+

Implikacja X przez Y

IMPLICATION

12

0
0
1
1

0
1
0
1

1
1
0
0

f

12

 = 

X

Negacja X

NOT X

13

0
0
1
1

0
1
0
1

1
1
0
1

f

13

 = 

Y

X

+

Implikacja Y przez X

IMPLICATION

14

0
0
1
1

0
1
0
1

1
1
1
0

f

14

 = 

Y

X

Y

X

=

+

I – NIE
Kreska Sheffera

NAND
SHEFFER STROKE

15

0
0
1
1

0
1
0
1

1
1
1
1

f

15

 = 1

Stała1

ONE

2.3.

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

 X

0

 X

1

 X

2

 . . X

n-1

f

0
1
2
3

2

– 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ą 2

n

 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.

13

     

X

   0    1 

 

 Y

0
1

0

1 0
0 1

       

 0    1 

 

 Y

0
1

0

1 1
0 1

     

X  

 0    1 

 

 Y

0

 1

0

1 1
0 0

      

 0    1 

 

 Y

0
1

0

1 0
1 0

      

X  

 0   1 

 

 Y

0
1

0

1 0
1 1

      

X  

 0   1 

 

 Y

0
1

0

1 1
1 0

      

X  

 0   1 

 

 Y

0
1

0

1 1
1 1

background image

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:

1

2

0

j

j

j

1

n

1

0

n

I

a

)

X

,...,

X

,

X

(

f

Y

=

=

=

(2.1)

gdzie: 

0

a

j

=

 lub 1, a znak 

oznacza sumę logiczną.

Współczynnik a

j

 przyjmuje wartość 1, gdy dla danego j jest 

1

I

Y

j

j

=

=

, natomiast wartość 0, gdy 

0

I

Y

j

j

=

=

.

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

I

.

Przykład 2.1:

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

I

.

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 

I

 przyjmuje postać:

7

6

5

4

3

2

1

0

1

2

0

j

j

j

I

0

I

1

I

1

I

0

I

1

I

1

I

0

I

0

I

a

)

Z

,

Y

,

X

(

f

3

+

+

+

+

+

+

+

=

=

=

Każdy składnik typu 

0

I

0

j

=

 nie zmienia wartości funkcji, może więc być wyeliminowany. Wtedy funkcja ta przyjmuje postać:

Z

XY

Z

Y

X

YZ

X

Z

Y

X

I

I

I

I

)

Z

,

Y

,

X

(

f

6

5

3

2

+

+

+

=

+

+

+

=

Jako składniki sumy wchodzą te iloczyny I

j

, 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ę 

Z

XY

Z

Y

X

YZ

X

Z

Y

X

)

Z

,

Y

,

X

(

f

+

+

+

=

 w postaci zapisu liczbowego 

I

.

=

+

+

+

=

Z

XY

Z

Y

X

YZ

X

Z

Y

X

)

Z

,

Y

,

X

(

f

 

)

6

,

5

,

3

,

2

(

110

101

011

010

6

5

3

2

=

=

+

+

+

=

Drugą postacią algebraiczną funkcji – zmiennych jest koniunkcyjna postać kanoniczna, nazywana 

S

.

1

2

0

j

j

j

1

n

1

0

n

)

S

a

(

)

X

,...,

X

,

X

(

f

Y

=

+

=

=

(2.2)

gdzie: 

0

a

j

=

 lub 1, a znak 

oznacza iloczyn logiczny.

Przykład 2.3:

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

S

.

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 

S

 przyjmuje postać:

14

background image

)

S

0

)(

S

1

)(

S

1

)(

S

0

)(

S

1

)(

S

1

)(

S

0

)(

S

0

(

)

Z

,

Y

,

X

(

f

7

6

5

4

3

2

1

0

+

+

+

+

+

+

+

+

=

Każdy 

czynnik typu 

1

S

1

j

=

+

 nie zmienia wartości funkcji, może więc być wyeliminowany. Zatem:

)

Z

Y

X

)(

Z

Y

X

)(

Z

Y

X

)(

Z

Y

X

(

S

S

S

S

)

Z

,

Y

,

X

(

f

7

4

1

0

+

+

+

+

+

+

+

+

=

=

Jako 

czynniki   do   iloczynu   wchodzą   te   sumy  S

j

,   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 

I

, jest stosowany liczbowy zapis 

S

.

Przykład 2.4:
Wyrazić funkcję 

)

Z

Y

X

)(

Z

Y

X

)(

Z

Y

X

)(

Z

Y

X

(

)

Z

,

Y

,

X

(

f

+

+

+

+

+

+

+

+

=

 w postaci zapisu liczbowego 

S

.

   

)

7

,

4

,

1

,

0

(

111

100

001

000

)

Z

Y

X

)(

Z

Y

X

)(

Z

Y

X

)(

Z

Y

X

(

)

Z

,

Y

,

X

(

f

7

4

1

0

=

=

=

+

+

+

+

+

+

+

+

=

2.4.

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.

15

background image

 

a)

b)

A

B

F

0

0

0

0

1

0

1

0

0

1

1

1

B

A

F

=

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)

A

B

F

0

0

0

0

1

1

1

0

1

1

1

1

B

A

F

+

=

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 

A

 lub jako A’.

a)

b)

  

A

F

0

1

1

0

A

F

=

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)

A

B

F

0

0

1

0

1

1

1

0

1

1

1

0

B

A

B

A

F

+

=

=

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ą 

)

Z

....

,

B

,

A

(

f

.

a)

b)

A

B

F

16

A

F

B

A

F

B

F

A

A
B

F

A

F

B

background image

0

0

1

0

1

0

1

0

0

1

1

0

B

A

B

A

F

=

+

=

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

17

background image

18

background image

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)

A

B

F

0

0

0

0

1

1

1

0

1

1

1

0

B

A

B

A

B

A

F

+

=

=

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+

AB

 = A

B

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:

=

+

=

+

=

=

B

A

AB

B

A

B

A

B

A

F

A

B

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

A

B

A

AB

)

B

A

)(

B

A

(

B

A

B

A

B

A

B

A

B

A

F

=

+

=

+

+

=

=

+

=

=

B

a)

b)

A

B

F

0

0

1

0

1

0

1

0

0

1

1

1

B

A

AB

B

A

F

+

=

=

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)

Y

X

Y

X

0

1

1

0

0

1

1

1

0

1

1

1

0

0

0

0

=

=

=

=

=

=

=

=

X

X

X

X

X

X

X

X

XY

Y

X

X

Y

X

Y

X

X

Y

X

Y

X

X

Y

X

XY

X

Y

X

XY

Y

X

Y

X

Y

X

Y

X

Y

X

Y

X

Y

X

=

+

+

=

=

+

=

+

=

=

=

=

)

(

)

(

1

0

1

0

1

1

1

0

0

1

0

1

0

1

0

0

=

=

=

=

=

=

=

=

X

X

X

X

X

X

X

X

XY

Y

X

X

Y

X

Y

X

X

Y

X

Y

X

X

Y

X

XY

X

Y

X

XY

Y

X

Y

X

Y

X

Y

X

Y

X

Y

X

Y

X

=

+

+

=

=

+

=

+

=

=

=

=

)

(

)

(

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)

19

A

F

B

A

F

B

background image

b)

c)

d)

Rys. 2.15 Przykłady realizacji podstawowych funkcji logicznych.

2.5.

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.

20

AB

AB

AB

AB

=

+

B

A

B

A

=

+

B

A

B

A

=

+

background image

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);

÷

 5 V – poziom wysoki (stan 1).

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

÷

 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.

21

Dozwolony zakres napięć 
na wejściu bramki dla 
stanu 1

Dozwolony zakres napięć 
na wejściu bramki dla 
stanu 0

Gwarantowany zakres 

napięć na wyjściu bramki 

w stanie 0

Gwarantowany zakres 

napięć na wyjściu bramki 

w stanie 1

U

U

CC

=5

2,4

2

0,4

0,8

0

background image

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

Bramka   spełnia   funkcję   iloczynu,   czyli:  

B

A

B

A

F

+

=

=

.   Stopień   wejściowy   bramki   stanowi   tranzystor 

wieloemiterowy T

1

. Tranzystor T

2

 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 T

3

 i T

4

.

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 T

1

 będą w stanie nieprzewodzenia (czyli zostaną 

spolaryzowane zaporowo), prąd Bazy popłynie przez złącze Baza – Kolektor  T

1

  do Bazy tranzystora  T

2

, powodując jego nasycenie (tranzystor  T

przewodzi) oraz zatkanie tranzystora T

3

.

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ć U

OL

 

 0,4 V, jeżeli prąd wyjściowy I

OL

 

 16 mA.

Gdy  choć   na   jedno   wejście  będzie  podany  sygnał  0,  spowoduje  to   przewodzenie   (nasycenie)  złącza  Baza – Emiter   tranzystora  T

1

  i 

spolaryzowanie złącza Baza – Kolektor w kierunku zaporowym. Wynikiem tego jest zatkanie tranzystorów  T

2

  i  T

4

, przewodzenie tranzystora  T

3

  i 

diody D

3

.

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.

22

A

 B

+U

CC

U

WY

R

1

R

2

 R

4

R

3

D

1

D

2

D

3

T

1

T

2

T

3

T

4

background image

3.

UKŁADY KOMBINACYJNE I SEKWENCYJNE

3.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 = {x

1

, x

2

,...,x

n

,},

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

Y = {y

1

, y

2

,,...,y

n

}.

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

y

= f

1

 (x

1

...x

n

)

(3.2)

y

= f

2

 (x

2

...x

n

)

(3.3)

y

= f

m

 (x

1

...x

n

)

(3.4)

gdzie: – liczba wejść układu kombinacyjnego,

m – liczba wyjść układu kombinacyjnego.
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 = {x

1

, x

2

,...,x

n

}, Y = {y

1

, y

2

,,...,y

n

}: 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) = 

D

C

B

A

D

C

B

A

D

C

B

A

D

C

B

A

+

+

+

.

Grupujemy po dwa iloczyny logiczne: 

Y(A,B,C,D) = 

(

) (

)

D

C

B

A

D

C

B

A

D

C

B

A

D

C

B

A

+

+

+

.

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

Y(A,B,C,D) = 

(

)

(

)

D

D

C

B

A

D

D

C

B

A

+

+

+

.

Następnie korzystamy z tożsamości:

(

D

+D = 1)

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

23

f(X)

x

1

x

2

x

n

f(X)

 X 

 Y 

background image

Y(A,B,C,D) = 

(

)

C

A

B

B

C

A

C

B

A

C

B

A

=

+

=

+

.

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 Q

1

, Q

2

,... 

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:

( ) ( )

[

]

t

Q

,

t

x

F

)

t

t

(

Q

1

1

=

+

(3.5)

( ) ( )

[

]

t

Q

,

t

x

F

)

t

t

(

Y

2

2

=

+

(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ć:

( )

[ ]

t

Q

F

)

t

t

(

Y

3

2

=

+

(3.7)

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

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. 

3.2.

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ą 2

n

 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):

B

0

1

B

B

B

0

)

X

X

(

B

B

B

X

X

X

B

BX

B

B

)

X

B

)(

X

B

(

A

)

X

X

(

A

A

X

A

AX

2

=

+

+

=

+

+

+

=

+

+

+

=

+

+

=

+

=

+

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 (D

0

 i D

1

 ).

a)

b)

 D

0

 D

1

0

1

D

1

D

0

Y = D

1

0

D

24

x(t)

x(t)

K B W

K B W

U P

U P

Q(t)

Q(t)

Q(t+

t

1

)

Q(t+

t

1

)

Y=(t+

t

2

)

Y=(t+

t

2

)

background image

CB

A

B

A

L’

L

T’

T

0

0

0

0

D

1

D

0

Y

1

0

1

1

0

0

0

1

1

3

0

1

0

   D

0

 D

1

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 D

0

 i D

1

 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ą).

 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.

a)

b)

c)

d)

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 ABC (rys. 3.5b) a następnie w tablicę dla czterech sygnałów ABCD (rys. 3.5c,d).

0

1

1

0

00

01

11

10

0

0

1

1

25

A

A'

 B

B'

DA

CB

AB

CD

L’

L

background image

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 AB 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.

26

background image

8.

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’.

27

CD

kolumny

w

ie

rs

ze

AB

kolumny

wiersze

background image

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

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.

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 2

n

,

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) = 

(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.

a)

00

01

11

10

00

1

1

0

0

01

1

1

0

0

11

0

0

0

1

10

0

0

0

1

28

L’

CD

AB

L

M’

M

CDE

AB

L

M’

M

L’

T

T’

D

AC

CD

AB

C

A

background image

D

AC

C

A

D

AC

C

A

Y

=

+

=

b)

D

AC

C

A

Y

=

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) = 

(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ę:

D

C

B

D

B

A

C

B

A

D

C

A

Y

+

+

+

=

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ć:

BD

C

A

C

A

D

B

D

B

C

A

)

C

A

(

D

B

)

D

B

(

C

A

Y

=

+

=

+

+

+

=

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

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)

29

CD

AB

A

C

D

A

B

C

D

A

B

B

D

C

Y

A B C D

background image

CD

AB

Rys. 3.10 Funkcja Y(A, B, C, D) = 

(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.

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

B

A

b

D

C

c

B

A

B

A

+

d

A

e

D

C

+

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:

)

C

D

B

A

(

)

C

B

A

(

)

D

B

A

(

Y

+

+

+

+

+

+

+

=

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).

30

a

c

e

Y

d

b

A
B

C
D

Y

A

C
B
D

background image

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 = X

2

 X

0

          X

1

X

0

 

X

3

X

2

00

01

11

10

00

0

X

X

01

X

X

X

0

11

X

X

X

X

10

0

X

X

0

Rys. 3.14 Siatka Karnaugha do zadania.

31

Y

A
D

A
C

B

B

A

C

B

D

background image

4.

PRZERZUTNIKI

4.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 

Q

. 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

Q

 = 0). Zmienna r zwana jest zmienną zerującą (ang. reset lub clear). 

Służy ona do zerowania przerzutnika w stan niski (Q = 0

Q

 = 1).

2.

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

Zmienne A i w różny sposób oddziałują na zmienne wyjściowe Q i 

Q

. Decyduje to o nazwie typu przerzutnika.

3.

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.

4.

Dwa wyjścia komplementarne Q i 

Q

 (proste i zanegowane).

32

background image

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).

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ą: RSDT 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 

Q

,

czasy propagacji sygnałów od wejść asynchronicznych do wyjść Q i 

Q

,

czas ustalenia t

s

 (t setup),

czas przetrzymywania t

h

 (t thold),

33

C

s

r

Q

Q

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

background image

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  (t

s

)   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  (t

h

)   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.

4.2.

Przerzutniki asynchroniczne

Najprostszym przerzutnikiem asynchronicznym jest przerzutnik s r. Posiada on dwa wejścia informacyjne s i r oraz dwa wyjścia Q i 

Q

Wejścia s i r są wejściami asynchronicznymi, tzn. ich stany natychmiast oddziałują na wartości zmiennych Q i 

Q

.

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)

 sr q

00

01

11

10

0

0

0

0

1

1

1

0

0

1

b)

 sr q

00

01

11

10

0

1

1

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ą:

)

q

s

(

r

Q

+

=

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

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

34

s

r

Q

q

background image

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

funkcję:

rq

s

Q

+

=

Na rys. 4.5 przedstawiono najprostszą realizację.

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).

s

n

r

n

Q

n+1

0

0

Q

n

0

1

0

1

0

1

1

1

X

X – stan nieokreślony,
Q

n

 – 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 Q

n+1

 będą zależne od dominacji wybranego wejścia przerzutnika (dominuje s lub r).

4.3.

Przerzutniki synchroniczne

4.3.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 t

n

 (Q

n

) oraz stany na wyjściach po wystąpieniu impulsu zegarowego w chwili t

n+1

 (Q

n+1

).

W tablicy charakterystycznej w kolumnie odpowiadającej stanowi Q

n+1

 wpisuje się stan, jaki następuje po obecnym stanie Q

n

, czyli przy 

danej kombinacji sygnałów wejściowych. W kolumnie Q

n+1

 mogą wystąpić różne symbole, które mają następujące znaczenie:

0 – zerowanie przerzutnika,

1 – ustawianie przerzutnika,

Q

n

 – niezmieniony stan wyjścia,

n

Q

 - 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 

Q

. 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ń.

4.3.2.

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.

35

r

s

Q

q

background image

a)

b)

c)

D

n

Q

n+1

Q

n

D

n

Q

n+1

0

0

0

0

0

1

1

0

1

1

1

0

0

1

1

1

d)

e)

Q

n+1

Q

n

Q

n+1

D

n

 D

n

 Q

n

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 Q

n+1

, e) tablica wzbudzeń.

Na jego wyjściu  Q pojawi się w następnym takcie zegarowym (Q

n+1

) taki stan, jaki panował na wejściu informacyjnym  D w bieżącym 

takcie zegarowym (Q

n

).

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

Q

n+1

 = D

n

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.

36

 D Q
 C 
 

background image

Rys. 4.8 Przebiegi czasowe dla przerzutnika typu D

4.3.3.

Przerzutnik synchroniczny T

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

a)

b)

c)

T

n

Q

n+1

Q

n

T

n

Q

n+1

0

n

Q

0

0

0

1

n

Q

0

1

1

1

0

1

1

1

0

d)

e)

Q

n+1

Q

n

Q

n+1

T

n

 T

n

 Q

n

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 Q

n+1

, e) tablica wzbudzeń.

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

n

n

n

n

n

n

1

n

Q

T

Q

T

Q

T

Q

=

+

=

+

Zmiana stanu przerzutnika T występuje zawsze podczas opadającego zbocza. Jeżeli Q

n

 jest w stanie wysokim przerzutnik T zmienia swój 

stan na przeciwny.

4.3.4.

Przerzutnik synchroniczny RS

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

a)

b)

c)

S

n

R

n

Q

n+1

Q

n

S

n

R

n

Q

n+1

0

0

n

Q

0

0

0

0

0

1

0

0

0

1

0

1

0

1

0

1

0

1

37

 T Q
 C 
 

 

S Q

 C 
 R 

t

t

t

C

D

Q

background image

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)

Q

n+1

Q

n

Q

n+1

S

n

R

n

 S

n

R

n

 Q

n

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 Q

n+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 

Q

).

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 

Q

, jeśli R = S = 0,

Q

n

 = Q

n+1

2.

przyjąć na wyjściu Q stan 0 i na wyjściu 

Q

 stan 1 (stan na wyjściu Q

n

 = 0), jeśli R = 1 S = 0,

3.

przyjąć na wyjściu Q stan 1 i na wyjściu 

Q

 stan 0 (stan na wyjściu Q

n

 = 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 

Q

 = 1, albo Q = 1 i 

Q

 = 

0.

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

n

n

n

1

n

Q

R

S

Q

+

=

+

4.3.5.

Przerzutnik synchroniczny JK

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

b)

c)

J

n

K

n

Q

n+1

Q

n

J

n

K

n

Q

n+1

0

0

n

Q

0

0

0

0

0

1

0

0

0

1

0

1

0

1

0

1

0

1

1

1

n

Q

0

1

1

1

1

0

0

1

1

0

1

0

1

1

0

1

38

 

J Q

 C 
 K 

background image

1

1

1

0

d)

e)

Q

n+1

Q

n

Q

n+1

J

n

K

n

 J

n

K

n

 Q

n

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 Q

n+1

,e) tablica wzbudzeń.

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ć:

n

n

n

n

1

n

Q

K

Q

J

Q

+

=

+

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)

39

t

t

t

C

J

Q

K

background image

b)

c)

Rys. 4.12 Przerzutnik synchroniczny JK wyzwalany dwustopniowo:

a)

schemat logiczny: M – część Master, S – część Slave,

b)

 fazy przełączania przerzutnika

c)

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;

40

1

2

3

4

J

C

K

M

S

s

r

Q

1

2

3

4

background image

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.

41

background image

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

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:

n

n

n

n

K

Q

J

Q

:

JK

+

n

n

n

n

T

Q

T

Q

:

T

+

n

n

T

J

=

n

n

T

K

=

Zamiana przerzutnika JK na D:

n

n

D

J

=

n

n

D

K

=

(

)

n

n

n

n

n

n

n

n

1

n

D

Q

Q

D

D

Q

D

Q

Q

=

+

=

+

=

+

Zamiana przerzutnika D na T:

n

1

n

D

Q

:

D

=

+

n

n

1

n

Q

T

Q

:

T

=

+

42

 

S Q

 C 
 R 

 

J Q

 C 
 K 

T

 

J Q

 C 
 K 

D

 D Q
 C 
 

T

 

J Q

 C 
 K 

 T Q
 C 
 

 

D Q

 C 
 

 
 Q

 
 

s

r

background image

5.

REJESTRY

5.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)

b)

c)

d)

e)

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

a)

szeregowo – szeregowy,

b)

szeregowo – równoległy,

c)

równoległo – szeregowy,

d)

równoległo – równoległy,
e)

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.

43

We

Wy

Wejścia równoległe 

Wyjścia równoległe 

Rejestr A

Wejście szeregowe
(przesuw wstecz) 

Wyjście szeregowe

W

ej

śc

ia

 

Szeregowe
(przesuw w przód) 

Zegarowe

Sterujące

Zerujące

background image

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.

5.2.

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.

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.

a)

b)

c)

44

 D

0

 Q

0

 C 
  Q

0

 D

1

 Q

1

 C 
  Q

1

 D

2

 Q

2

 C 
  Q

2

 D

3

 Q

3

 C 
  Q

3

Wy

0

Wy

1

Wy

2

Wy

3

We

0

We

1

We

2

We

3

C

Z

A

a

0

We

0

We

n-1

a

n-1

Q

0

Q

n-1

 

J Q

 C 
 K 

s

r

 

J Q

 C 
 K 

s

r

Z
We

i

A
Q

i

Z

A

a

0

We

0

We

n-1

a

n-1

Q

0

Q

n-1

background image

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 We

0

,...We

n

 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  We

i

  na wyjście  Q

i

  odbywa  się 

jednym przewodem a

i

 po uprzednim wyzerowaniu rejestru, a sygnał wpisujący jest równy A = 1.

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

a)

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 We

i

 zostaje przepisana na wyjście Q

i

, którego wartość jest określona dwoma sygnałami (dwuprzewodowo) na wejściach s i 

przerzutnika.

Zasada działania rejestru jest pokazana na rys. 5.5b. Dla A = 1, wartość a

i

 jest określona przez wartość zmiennej We

i

. Gdy a

i

 = 1 oraz A = 

1, następuje wyzerowanie Q

i

, gdy a

i

 = 0, następuje ustawienie Q

i

 = 1.

Poprawne ustawienie informacji do rejestru w czasie trwania sygnału wpisującego A = 1 ma miejsce wtedy, gdy informacja We

i

 w czasie 

trwania wpisywania nie ulega zmianie.

Rejestry równoległe synchroniczne  są zbudowane z przerzutników synchronicznych, do których informacja  We

i

  jest wpisywana w takt 

impulsu zegarowego.

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

a)

b)

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

a)schemat ideowy, b)przebiegi czasowe.

W układzie tym wpisywanie  We

i

  odbywa się na przednim zboczu impulsu taktującego. Pracę rejestru pokazano na  rys. 5.6b. Wartości 

zmiennych  We

i

  muszą być ustalone, zanim pojawi  się impuls  taktujący  T. Wyprzedzenie wartości  We

i

  względem  T  oznaczono przez  t

s

  – czas 

ustalania. Wyzerowanie Q

i

 nastąpi przednim zboczem sygnału T, gdy czas trwania We

i

 = 0 i T = 1 jest większy lub równy wartości t

h

, zwanej czasem 

utrzymania.

45

A

a

0

We

0

We

n-1

a

n-1

Q

0

Q

n-1

 

J Q

 C 
 K 

s

r

 

J Q

 C 
 K 

s

r

We

i

A
Q

i

 D Q

 C 
 

r

We

0

T

Z

 D Q

 C 
 

r

We

n-1

Q

0

Q

n-1

We

i

T
Q

i

t

s

t

h

background image

5.3.

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.

Rys. 5.7 Rejestr szeregowy.

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.

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.

46

 D Q

 C 
 

0

 D Q

 C 
 

 D Q

 C 
 

 D Q

 C 
 

We

Wy

C

 

J Q

 C 
 K 

We

 

J Q

 C 
 K 

C

 

J Q

 C 
 K 

 

J Q

 C 
 K 

Wy

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

background image

6.

PAMIĘCI

6.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 2

10

 = 1024 bajtom;

1 MB odpowiada 2

20

 = 1024 · 1024bajtom;

1 GB odpowiada 2

30

 = 1024 · 1024 · 1024bajtom.

Przykładowo pojemność pamięci może wynosić 512Kx64, co oznacza, że jest to 2

19

  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 2

17

 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 = 2

n

 komórek pamięci potrzebnych jest n wejść adresowych. Dla przykładu: 1 KB = 2

10

 bajtów informacji, trzeba 10 

wejść adresowych, a 16 KB = 2

16

 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 (A

0

,...,A

n

);

wejścia / wyjścia danych (D

0

,...,D

n

);

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

6.2.

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.

47

background image

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.

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.

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 T

1

.

Informacja w niej przechowywana w postaci ładunku zgromadzonego na kondensatorze C

1

. 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  T

2

  jest wspólny dla kolumny adresowej  bj. Gdy komórka jest wybrana, tzn. na wejściach adresowych  ak  i  bj  jest stan 

wysoki, pojemność C

1

 jest dołączona do linii danych. 

48

Układy kontroli 
(sterowania) 
wejścia/wyjścia

Adresy Y

Matryca 

pamięciowa

A

d

re

sy

 X

Dekoder Y

D

ek

od

er

 X

WE/WY

background image

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 C

1

 przemieszcza się do pojemności C

2

 przez co napięcie odczytu 

2

1

1

1

C

ODCZ

C

C

C

U

U

+

=

Pojemność  C

2

  >> C

1

, gdyż składa się z pojemności dren, stąd  U

odcz

  << U

c1

. 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.

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  T

1

  i  T

2

. Tranzystory  T

3

  i  T

4

  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.

49

Rejestr

wiersza

RR

Adres

we

RAS
CAS

WE

8

Matryca

pamięciowa

256 x 256

0

255

Wzmocnienie 

kolumn i układy 

we-wy

0 255

Linie 

wierszy

Układy

stero-

wania

Rejestr

kolumn

CR

wy

background image

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:

CS

 - uaktywnienie pamięci,

OE

 - zezwolenie na odczyt

WE

 - zezwolenie na zapis.

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 (A

0

 - A

6

) są podawane na wejścia adresowe demultipleksera, w celu wybrania jednego ze 128 wierszy. Z kolei mniej znaczące 

bity adresu (A

7

  – A

13

) 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.

6.3.

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).

50

T

1

T

2

T

3

T

4

R

C

R

C

+U

CC

Q

Q

Linia bitu

Linia wyboru

wiersza

Wejście -  wyjście

Wejście -  wyjście

Linia bitu

A

6

A

0

0

127

Matryca

pamięciowa

128 x 128

0 127

Układ

zapisu / odczytu

Sterowan
ie
WE

0 127

D

7

D

0

Dane

WE

CS

OE

Adres

A

13

A

7

Wejścia

adresowe

Wejś
cia

sterujące

Wejścia - 

wyjścia

danych

background image

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.

6.3.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).

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.

51

Wyjście

A

dr

es

Pamięć ROM 

(PROM)

Kod wejściowy

background image

Przykład:
Pomnożyć 4-bitową liczbę A przez 8-bitową liczbę B.

0

0

1

1

2

2

3

3

2

A

2

A

2

A

2

A

A

+

+

+

=

0

0

6

6

7

7

2

B

2

B

2

B

B

+

+

+

=

Jeśli czynnik B zostanie przedstawiony w postaci:

7

4

3

0

B

B

B

÷

÷

+

=

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

7

4

3

0

3

0

3

0

7

4

3

0

3

0

B

A

B

A

)

B

B

(

A

AB

÷

÷

÷

÷

÷

÷

÷

+

=

+

=

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.

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.

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ą.

52

ROM (PROM)

(256 x 8)

ROM (PROM)

(256 x 8)

83

83

C

A

4

÷

7

B

4

÷

7

A

0

÷

3

B

0

÷

3

ROM (PROM)

(256 x 8)

A

7

A

0

Licznik 

dwójkowy

Generator

Przetwornik

C/A

Filtr

Wy

background image

7.

LICZNIKI CYFROWE

7.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.

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   =   2

2

  =   4   stanów,   a  

przerzutników może opisać 2

n

 stanów. Dlatego do utworzenia licznika o s stanach potrzeba n przerzutników:

(2

n-1

 

 s 

 2

n

)

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,

2.

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.

7.2.

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 2

n

).

53

Wyjścia

W

ej

śc

ia

Układ 

sekwencyjny

s - stanowy

Impulsy zliczane

Impuls zerujący

(ustawiający)

background image

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.

a)

b)

We

Q

0

Q

1

Q

2

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)

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 Q

0

 reprezentuje wagę 2

0

 – czyli 1, waga zmiennej Q

1

 wynosi 2

1

 – czyli 2, a zmiennej 

Q

2

 – 2

2

, czyli 4.

W chwili początkowej wszystkie przerzutniki są w stanie 0 (Q

0

 = Q

1

 = Q

2

 = 0). Jeśli na wejście zegarowe pierwszego przerzutnika zostanie 

podany impuls,  to powoduje on zmianę stanu jego wyjścia  Q

0

  z  0  na  1. Stan drugiego przerzutnika nie ulegnie zmianie, ponieważ na wejściu 

zegarowym przerzutnika Q

1

 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 

0 na 1.

Pod wpływem trzeciego impulsu pierwszy przerzutnik zmieni stan z Q

2

 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 Q

1

 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:

54

We

Q

0

Q

1

Q

2

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

0

 J

0

 Q

0

 C 
 K

0

 

0

„1”

 J

1

 Q

1

 C 
 K

1

 

1

Q

0

Q

1

Q

2

 J

2

 Q

2

 C 
 K

2

 

2

„1”

„1”

We

background image

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)

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 = 2

n

.

Tworzymy licznik o większej liczbie stanów takiej, że s = 2

n

, ale jednocześnie s > 2

n-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ę.

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ść (2

n-1

 

  s  

  2

n

). Liczba  n  spełniająca ten 

warunek wynosi 2.Tworzymy więc licznik binarny złożony z dwóch przerzutników.

a)

b)

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

55

 Q

0

 C 
 

0

 Q

1

 C 
 

1

Q

0

Q

1

Q

2

 Q

2

 C 
 

2

We

 J

0

 Q

0

 C 
 K

0

 

0

1

 J

1

 Q

1

 C 
 K

1

 

1

Q

0

Q

1

We

1

R

R

3

We

Q

0

Q

1

Q

2

1

2

3

4

5

6

7

7

6

5

4

3

2

1

8

0

We

Q

0

Q

1

R

1

2

3

1

1

2

0

0

K

X

C

C

C

Q

1

Q

2

Q

0

Q

Q

Q

s

s

s

r

r

r

Q

Q

Z

background image

b) przebiegi czasowe.

Zerowanie licznika nastąpi, gdy pojawi się impuls odpowiadający liczbie 3, czyli  11

2

. 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: 10, 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: 10, 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, 
Q

3

Q

2

Q

1

Q

0

 = 1110.Natomiast wyjście bramki łączymy z wejściami ustawiającymi, czyli początek zliczania zaczyna się od 3, Q

3

Q

2

Q

1

Q

0

 = 0011. Jeżeli 

jest 0, łączymy wyjście bramki z wejściem zerującym 

r

, jeśli 1 – z wejściem 

s

.

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  Q

0

  połączone z wejściem  Q

1

Q

3

), lub jako licznik modulo 10 z symetrycznym  przebiegiem wyjściowym  (wyjście  Q

3

  połączone z 

wejściem Q

0

), o przebiegach czasowych przedstawionych na rys. 7.7b.

a)

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.

56

 T Q

 C 
 

s

r

C

„1”

 T Q

 C 
 

s

r

„1”

0

Q

0

1

Q

1

1

Q

2

1
Q

3

 T Q

 C 
 

s

r

C

„1”

 T Q

 C 
 

s

r

„1”

1

1

0

0

 J Q

 C 
 K 

s

r

We 
Q

0

1

 J Q

 C 
 K 

s

r

Q

0

Q

1

Q

2

Q

3

 J Q

 C 
 K 

s

r

1

 J 

 

Q

 C 
 K  

1

1

We 

Q

0

 Q

3

R9(1) R9(2) R0(1) R0(2) 

We Q

1

 Q

3

Q

1

Q

2

Q

3

, We Q

0

 

1

2

3

4

5

6

7

8

9

10

1

Q

1

R9(1) = 0 R9(2) = 0 R0(1) = 0 R0(2) = 0 WeQ

0

 = 0 

background image

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).

7.3.

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.

Wartość zmiennej wyjściowej  Q

i

  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.

Q

i

t

 

 Q

i

t+1

T

t

J

t

 K

t

D

t

S

t

 R

t

 0

 1

 0

 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ść Q

i

 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 = Q

3

Q

2

Q

1

Q

0

14 = 1110 = Q

3

Q

2

Q

1

Q

0

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)

Q

n

Q

n+1

J

K

0

0

0

-

0

1

1

-

1

0

-

1

1

1

-

0

b)

57

 J

0

 Q

0

 C 
 K

0

 

0

 J

1

 Q

1

 C 
 K

1

 

1

 J

2

 Q

2

 C 
 K

2

 

2

A

UP

background image

Q

1

Q

0

Q

3

Q

2

Q

1

Q

0

Q

3

Q

2

Q

1

Q

0

Q

3

Q

2

Q

1

Q

0

Q

3

Q

2

Q

1

Q

0

Q

3

Q

2

Q

1

Q

0

Q

3

Q

2

Stany

8

4

2

1

J

3

K

3

J

2

K

2

J

1

K

1

J

0

K

0

Q

3

Q

2

Q

1

Q

0

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:

a) tablica wzbudzeń przerzutnika JK,

b) tablica stanów.

Na przykład dla Q

3

 mamy (rys. 7.11):

Q

3

J

3

0

0

0

0

0

1

1

-

1

-

1

-

1

-

1

-

1

-

1

-

Rys. 7.11 Stany wyjściowe J

3

.

Aby otrzymać stan J

3

 – 5 łączymy stan 5 i 6 Q

3

 sygnału wyjściowego i mamy: 00 – daje nam (z tablicy wzbudzeń dla J000 – daje nam 

również 001 – otrzymujemy 1. Jako końcowy stan dla J

3

, łączymy ostatni stan 14 z pierwszym 5.

Na podstawie tablicy stanów sporządzamy tablice Karnaugha dla wejść informacyjnych poszczególnych przerzutników (J

n

K

n

) (rys. 7.12a, 

b, c), a na podstawie tablic Karnaugha wyznaczamy funkcje sterujące dla wejść informacyjnych.

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

J

3

 = Q

1

Q

0

 

K

3

 = Q

2

Q

1

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

-

-

J

2

 = Q

2

K

2

 = 

2

0

Q

Q

00

01

11

10

00

01

11

10

00

-

-

0

0

00

-

-

-

-

01

-

1

1

1

01

-

-

1

0

11

-

-

-

-

11

-

-

-

1

58

background image

10

-

-

-

-

10

-

-

1

0

J

1

 = Q

2

K

1

 = Q

3

Q

2

 + Q

0

J

0

 = „1”

K

0

 = „1”

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 J

0

 wpisujemy „-”, a w tablicy K

0

 wpisujemy 1. Licznik jest w stanie 0101 to 

następnym jego stanem jest stan 0110, czyli stan na wyjściu Q

0

 zmieni się z 1 na 0, co zapewnia kombinacja J

0

K

0

 = - 1. Podobnie w pole 1110 w 

tablicy J

0

 wpisujemy 1, a w tablicy K

0

 „-”.Licznik jest w stanie 1110, to następnym stanem jest 0101, czyli na wyjściu Q

0

 stan zmieni się z 0 na 1, co 

zapewnia kombinacja J

0

K

0

 = 1 -.

59

 J

0

 Q

0

 C 
 K

0

 

0

C

„1”

 J

1

 Q

1

 C 
 K

1

 

1

Q

0

Q

1

Q

2

Q

3

 J

2

 Q

2

 C 
 K

2

 

2

 J

3

 Q

3

 C 
 K

3

 

3

Q

0

Q

1

Q

2

Q

3

background image

8.

UKŁADY ARYTMETYCZNE

8.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 :

a)

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

b)

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:

a)

równoległe:

z przeniesieniem szeregowym,

z przeniesieniem równoległym,

b)

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:
a)

komparatory równoległe,

b)

komparatory szeregowe.

8.2.

SUMATORY

Sumatory są to układy służące do sumowania arytmetycznego dwu liczb binarnych n – bitowych A i B, z jednobitowym przeniesieniem C

i

dając w wyniku n – bitową sumę S

i

 i przeniesienie C

i +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.

a)

b)

A

B

S

C

0
0
1
1

0
1
0
1

0
1
1
0

0
0
0
1

c)

Rys. 8.1 Dodawanie jednobitowych liczb dwójkowych:

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

Zmienna S

i

 reprezentuje wynik operacji, jej wartość jest sumą modulo 2 (EX – OR) składników A

i

, B

i

 i C

i

.

Zmienna  C

i

  reprezentuje przeniesienie z pozycji młodszej sumatora wielopozycyjnego, natomiast  C

i   +1

  jest przeniesieniem do pozycji 

starszej. C

i

 nie występuje w tzw. półsumatorze, a obecność C

i

 daje sumator pełny.

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

suma 

i

i

i

i

i

i

i

B

A

B

A

B

A

S

=

+

=

przeniesienie 

i

i

1

i

B

A

C

=

+

Przykładowy schemat logiczny przedstawia rys. 8.2.

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 

60

Σ

A

B

C

S

A
B

C

S

Dodajna
Dodajnik

Suma

Przeniesienie

 

A 0 1 

 

0 0
0 1

B

0
1

 

A 0 1 

 

0 1
1 0

B

0
1

A B

C = AB

S = A

B

background image

(

) (

)

(

)

(

)

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

B

A

C

B

A

C

B

A

C

B

A

B

A

C

B

A

B

A

C

S

=

+

=

+

+

+

=

przeniesienie

i

i

i

i

i

i

1

i

C

B

C

A

B

A

C

+

+

=

+

i

i

i

i

i

i

1

i

C

B

C

A

B

A

C

=

+

a)

b)

A

i

B

i

C

i

S

i

C

i+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

c)

 

00

01

11

10

0

0

1

0

1

1

1

0

1

0

d)

00

01

11

10

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 S

i

 i C

i

 zatem istnieje możliwość różnej ich interpretacji. Schemat sumatora pełnego, 

dwuargumentowego z przeniesieniem z pozycji poprzedniej C

i

 oraz przeniesienie do pozycji wyższej C

i + 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.

a)

b)

61

Σ

A

i

B

i

C

i

S

i

C

i+1

A

i

B

i

C

i

A

i

B

i

C

i

S

i

C

i+1

A

i

B

i

C

i

S

i

C

i+1

B

i

A

i

C

i

S

i

C

i+1

background image

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 D

i

 i pożyczki V

i

 – tej komórki substraktora ilustruje tabela na rys. 8.5.

a)

b)

Pożyczka

V

i

Odjemna

A

i

Odjemnik

B

i

Różnica

D

i

Pożyczka

V

i+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)

00

01

11

10

0

0

1

0

1

1

1

0

1

0

00

01

11

10

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:

I

I

I

I

V

B

A

D

=

I

I

I

I

I

I

1

I

V

B

V

A

B

A

V

+

+

=

+

Porównując funkcje sumatora i substraktora możemy zauważyć, że różnica D

i

 jest identyczna z sumą S

i

, natomiast są różne wyrażenia dla 

pożyczki V

i +1

 i przeniesienia C

i +1

.

Jeśli w wyrażeniach opisujących działanie substraktora zamiast B

i

 wstawić 

i

B

, a zamiast C

i

 wstawić 

i

V

otrzymamy:

1

i

1

i

V

C

+

+

=

i

i

D

S

=

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

(

)

i

i

i

i

i

1

i

i

i

i

i

B

A

V

B

A

V

,

B

A

V

D

±

+

=

=

+

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

62

Σ

A

i

B

i

V

i

D

i

V

i+1

A

i

B

i

V

i

D

i

V

i+1

A

i

B

i

V

i

background image

8.2.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.

Rys. 8.6 Schemat blokowy sumatora kaskadowego.

Przy sumowaniu liczb dodatnich wejście przeniesienia początkowego C

0

 nie jest wykorzystywane (C

0

 = 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: 

(

)

i

i

i

i

i

i

i

i

i

i

i

1

i

C

B

A

B

A

C

B

C

A

B

A

C

+

+

=

+

+

=

+

 można wyrazić w postaci:

,

C

T

G

C

i

i

i

1

i

+

=

+

gdzie: 

i

i

i

B

A

G

=

i

i

i

B

A

T

+

=

inaczej:

0

0

2

i

1

i

i

0

1

1

i

i

2

i

1

i

i

1

i

i

i

1

i

0

0

1

2

0

1

2

1

2

2

3

0

0

1

0

1

1

2

0

0

0

1

C

T

T

T

T

G

T

T

T

G

T

T

G

T

G

C

,

C

T

T

T

G

T

T

G

T

G

C

,

C

T

T

G

T

G

C

,

C

T

G

C

+

+

+

+

+

+

+

=

+

+

+

=

+

+

=

+

=

Dla modułu czterobitowego 

}

3

,

2

,

1

,

0

{

i

:

0

1

2

3

0

1

2

3

1

2

3

2

3

3

4

T

T

T

T

G

T

T

T

G

T

T

G

T

G

C

+

+

+

+

=

lub

0

4

TC

G

C

+

=

gdzie:

0

1

2

3

1

2

3

2

2

3

G

T

T

T

G

T

T

G

T

G

G

+

+

+

=

0

1

2

3

T

T

T

T

T

=

gdzie:

G – przeniesienie generowane w bloku,
T – sygnał warunkujący transmisję przeniesienia początkowego C

0

.

Wyrażenie dla sumy: 

i

i

i

i

C

B

A

S

=

 można przekształcić do postaci:

(

)

i

i

i

i

i

i

i

i

i

T

G

C

B

A

B

A

C

S

=

+

=

.

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

63

Σ

A

0

B

0

C

0

S

0

C

1

Σ

A

i

B

i

C

i

S

i

C

i+1

Σ

A

n-1

B

n-1

C

n-1

S

n-1

C

n

B

0

A

0

B

1

A

1

B

2

A

2

B

3

A

3

T

3

G

3

T

2

G

2

T

1

G

1

T

0

G

0

C

1

C

2

C

3

C

0

C

4

S

3

S

2

S

1

S

0

background image

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

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 

G

 i 

T

, 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.

64

Σ

A

B

C

0

S

G T

C

4

C

1

C

2

C

3

C

0

T

G

0

T

1

T

2

T

3

T

0

G

1

G

2

G

3

G

A

A

A


B

background image

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

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

8.2.2.

Sumatory szeregowe

W sumatorze szeregowym składniki sumy są podawane kolejno, bit po bicie, zaczynając od bitu o najniższej wadze.
Schemat ideowy sumatora szeregowego przedstawiono na rys. 8.10.

Rys. 8.10 Schemat ideowy sumatora szeregowego.

65

0

G

G

0

T

0

C

1

T

G

A

B

C

0

S

C

4

Σ

T

G

A

B

C

0

S

C

4

Σ

T

G

A

B

C

0

S

C

4

Σ

T

G

A

B

C

0

S

C

4

Σ

G

1

T

1

C

2

G

2

T

2

C

3

G

3

T

3

G T

C

C

0

C

0

74182

– 

bi

to

w

re

je

st

pr

ze

su

w

aj

ąc

y

C

C

n – bitowy rejestr przesuwający

Składnik B

n – bitowy rejestr przesuwający

Składnik B

A

C

C

i-1

C

i

Σ

S

A Q

C

S

um

a

Takt

1

2

3

A

A

A


B

B


B

background image

Sumator   szeregowy   składa   się   z   sumatora   jednobitowego   z   dodatkiem   trzech   rejestrów   przesuwających   oraz   przerzutnika   typu  

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.

8.3.

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 > BA = B i A < B.

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

8.3.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

A > B

A B

A > B

(A > B) =

B

0 0
0 1
1 0
1 1

0
0
1
0

 B

A B

 B

(A 

 B) =

A + 

B

0 0
0 1
1 0
1 1

1
0
1
1

A = B

A B

A = B

(A = B ) =

 B

0 0
0 1
1 0
1 1

1
0
0
1

 B

A B

 B

(A 

 B ) =

A

 + B

0 0
0 1
1 0
1 1

1
1
0
1

A < B

A B

A < B

(A < B) =

A

 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:

(

)

(

)

B

A

B

A

=

>

(8.1)

(

)

(

)

B

A

B

A

<

=

(8.2)

(

)

(

)(

)

B

A

B

A

B

A

<

>

=

=

(8.3)

(

)

(

)

B

A

B

A

>

=

(8.4)

(

)

(

)

B

A

B

A

=

<

(8.5)

66

0 1

0 0

A

B

0
1

0 1

1 0

0 1

A

B

0
1

0 1

1 1

0 1

A

B

0
1

0 1

1 0

1 1

A

B

0
1

0 1

0 0

1 0

A

B

0
1

0 1

A

A


B

B


B

B


B

(A>B)

(A

B)

(A=B)

(A

B)

(A<B)

(

background image

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

i

i

i

B

A

X

=

dla (A > B)

i

i

i

i

i

B

A

B

A

Y

+

=

dla (A = B)

i

i

i

B

A

Z

=

dla (A < B)

8.3.2.

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 = A

n-1

 A

n-2

 ... A

i

... A

0

B = B

n-1

 B

n-2

 ... B

i

... B

0

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

n-1

 = B

n-1

) (A

n-2

 = B

n-2

)...(A

i

 = B

i

)...(A

0

=B

0

) =

= (A

n-1

B

n-1

) (A

n-2

B

n-2

)...(A

i

 

 B

i

)...(A

0

B

0

)

(8.6)

lub krócej:

(A = B) = T

n-1

 T

n-2

...T

i

...T

0

 = 

1

n

0

i

i

T

=

(8.7)

przy czym T

i

 = A

i

B

i

 = A

i

B

i

 + 

i

i

B

A

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

1

n

0

i

i

1

n

0

i

i

T

T

)

B

A

(

=

=

=

=

=

(8.8)

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 AB i C należy określić funkcję:

(

)(

)

i

i

1

n

0

i

i

i

C

A

B

A

)

C

B

A

(

=

=

=

=

(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

A

n-1

, B

n-1

A

n-2

, B

n-2

...

A

2

, B

2

A

1

, B

1

A

0

, B

0

A>B

A<B

A=B

67

A

0

B

0

A

n-1

B

n-1

0

T

1

n

T

A

0

B

0

A

n-1

B

n-1

T

0

T

n-1

(A=B)

(A=B)

(

background image

A

1

A

0

B

1

B

0

A

n-1

>B

n-1

A

n-1

<B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

A

n-1

=B

n-1

X
X

A

n-2

>B

n-2

A

n-2

<B

n-2

A

n-2

=B

n-2

A

n-2

=B

n-2

A

n-2

=B

n-2

A

n-2

=B

n-2

A

n-2

=B

n-2

A

n-2

=B

n-2

A

n-2

=B

n-2










X
X
X
X

A

2

>B

2

A

2

<B

2

A

2

=B

2

A

2

=B

2

A

2

=B

2

A

2

=B

2

A

2

=B

2

X
X
X
X

X
X

A

1

>B

1

A

1

<B

1

A

1

=B

1

A

1

=B

1

A

1

=B

1

X
X
X
X

X
X
X
X

A

0

>B

0

A

0

<B

0

A

0

=B

0

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ę  A

1

  A

0

 

  B

1

  B

0

, napisać równanie określające powyższą relację oraz podać przykładowy 

układ realizujący to równanie.

a)

A

1

A

0

B

1

B

0

A

1

 A

0

 

 B

1

 B

0

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)

00

01

11

10

00

1

1

1

1

01

0

1

1

1

11

0

0

1

0

10

0

0

1

1

1

0

1

1

0

1

0

1

0

1

B

A

B

A

B

A

A

A

B

B

Y

+

+

+

+

=

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

przykładowa realizacja (c).

68

A

1

 A

0

0

Y

background image

8.3.3.

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 

 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.

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  

przedstawiono na rys. 8.14 i 8.15.

a)

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).

a)

b)

69

 J Q

 C 
 K R 

We

A
B

Zerowanie

 B

A = B

 J Q

 C 
 K 

We

A

B

Zer

A > B

A = B

 J Q

 C 
 K 

A < B

A

B

A

B

Zer

A = B

A < B

A > B

 J Q

 C 
 K 

 J Q

 C 
 K 

A > B

A = B

A < B

A

B

Zer

We

B

A

A

A

B

B

A

B

Zer

A = B

A > B

A < B

background image

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. A

i

B

i

.

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.

70

background image

9.

UKŁADY KOMUTACYJNE 

9.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.

9.2.

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. 

Rys. 9.1 Enkoder zwykły.

Przykładem może być zamiana kodu 1 z 10 na kod BCD 8421, oraz zamiana kodu 

10

z

1

 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 

10

1z

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

71

KOD 1 z n

KOD WYJŚCIOWY

background image

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.

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 

10

z

1

 na kod 8421 mają postać:

89

9

8

D

4567

7

6

5

4

C

2367

7

6

3

2

B

13579

9

7

5

3

1

A

=

+

=

=

+

+

+

=

=

+

+

+

=

=

+

+

+

+

=

(3)

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.

9.3.

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ść 2

n

 = m

72

1

2

3

4

5

6

7

8

9

Kod 1 z 
10

A

B

C

D

a)

A

B

C

D

1

2

3

4

5

6

7

8

9

Kod 1 z 
10

b)

1

2

3

4

5

6

7

8

9

Kod 

A

B

C

D

background image

niepełny, jeśli dla rozpatrywanego dekodera zachodzi nierówność 2

n

 > 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: AB 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

4

1z

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 = 

B

A

1 = 

B

A

(1)

2 = 

B

A

3 = AB

albo

0 = 

B

A

B

A

+

=

1 = 

B

A

B

A

+

=

(2)

2 = 

B

A

B

A

+

=

3 = 

B

A

AB

+

=

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

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

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

Jeśli   kodem   wyjściowym   rozpatrywanego   dekodera   jest   kod  

4

z

1

to   dekoder   jest   układem,   którego   działanie   logiczne   opisują 

następujące funkcje przełączające:

B

A

0

=

;

0 = 

B

A

B

A

1

=

;

1 = 

B

A

(3)

B

A

2

=

;

2 = 

B

A

=

3

AB; 3 = 

AB

albo

73

0

1

2

3

0

1

2

3

4

1z

A

A

B

B

background image

0 = 

B

A

B

A

+

=

;

0 = A + B

1 = 

B

A

B

A

+

=

;

1 = 

A

 + B

(4)

2 = 

B

A

B

A

+

=

;

2 = A + 

B

3 = 

B

A

AB

+

=

;

3 = 

A

 

B

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

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

W przypadku dekodera niepełnego (tzn.  2

n

  > 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 (2

4

 > 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)

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

74

0

1

2

3

1z4

0

1

2

3

1z4

A

A

B

B

BA

BA

DC

DC

0

2

background image

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 = 

C

B

A

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

0 = 

D

C

B

A

1 = 

D

C

B

A

2 = 

C

B

A

3 = 

C

AB

4 = 

C

B

A

5 = 

C

B

A

6 = 

BC

A

ABC
8 =
 

D

A

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.

a)

b)

Kod wejściowy

D C B A

Nr wyjścia wyróżnionego

8 4 2 1

75

0

1

2

3

4

5

6

7

8

9

B

C

C

A

B

C

C

B

B

A

A

A

A

A

B

C

D

D

D

A

A

A

A

A

A

B

B

B

B

B

B

C

C

C

C

C

D

D

background image

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.

9.4.

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.

Rys. 9.8 Schematy ideowe transkoderów:

a)

zbudowanych z enkodera i dekodera,

b)

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).

9.4.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)

76

S

ta

ny

 z

ab

ro

ni

on

e

Kod 

wejściowy X

Enkoder

Dekoder

Kod 

pierścieniowy

Kod 

wyjściowy X

Transkoder

Kod 

wejściowy X

Kod 

wyjściowy X

background image

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)

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

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

a)

tablica rozpatrywanych kodów,

b)

tablice Karnaugha,

c)

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' = 

CD

B

D

B

+

C' = 

BC

D

C

+

D' = 

D

C

B

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

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

0
0
0
0
0
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 1
1 0 0 0
1 0 0 1
0 0 0 0

77

BA

BA

DC

DC

B’

C’

A

B

C

D

A’

B’

C’

D’

background image

11
12
13
14
15

1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

1
1
1
1
1

0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1

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

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)

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 2

7

 = 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.

78

BA

DC

BA

DC

B’

C’

BA

DC

BA

DC

D’

A’

A

B

C

D

A’

B’

C’

D’

A’’

background image

a

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:

D

AC

D

B

A

D

C

B

C

B

A

a

+

+

+

=

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

D

C

B

A

BD

C

A

a

+

+

=

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:

BC

A

C

B

A

BD

b

+

+

=

C

B

A

CD

c

+

=

ABC

C

B

A

C

B

A

d

+

+

=

C

B

A

e

+

=

D

C

A

C

B

AB

f

+

+

=

D

C

B

ABC

g

+

=

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

9.11e.

e)

a)

b)

d)

79

 8 9 10 11 12 13 14 15 

 0 1 2 3 4 5 6 7 

DC

BA

a

b

c

d

f

e

g

C

A
B

B

C

D

B

D

A

C

C

D

B

B

A

B

D

A

C

A

C

B

A

C

B

A

C

B

A

C

B

A
C

B

A

B

A

A
C

B

a

b

c

d

e

f

g

A

B

C

D

BI

a

d

g

b

c

f

e

background image

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:

a)

oznakowanie segmentów wskaźnika,

b)

przedstawienie cyfr i znaków dodatkowych,

c)

tablica prawdy,

d)

tablice Karnaugha dla funkcji a,

e)

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.

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.

80

0
1
2
3
4
5
6
7
8
9

0
2
8
6
9
7
1
4
5
3

W

yj

śc

ia

a
f
g
e
d

A

B

C

D

42

C

D

C

B

D

C

background image

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:

g

e

b

e

a

A

+

=

g

e

a

e

b

f

a

B

+

+

=

g

e

a

f

b

f

a

C

+

+

=

abfg

D

=

„ - „=

g

f

a

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

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.

81

A

B

C

D

a

b

e

f

g

background image

9.5.

MULTIPLEKSERY I DEMULTIPLEKSERY

9.5.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”.

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.

9.5.2.

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 = 2

M

, co oznacza, że zamiast  N  linii przesyłowych potrzebnych jest tylko  M  łączy 

adresowych i jedno łącze informacyjne.

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

a)

82

Multiplekser

We

Adr
es

Wy

Demultiplekser

Adr
es

Linia 

przesyłowa

0
1
2
3

2

– 1 

A B

Wyjście

Y

2

M

 w

ej

ść

 in

fo

rm

ac

yj

ny

ch

M wejść adresowych

X

0

 X

1

 X

2

 X

3

 S

Wyjście Y

A

1

A

0

Wejście

adresowe

background image

b)

A

1

A

0

Y

0
0
1
1

0
1
0
1

X

0

X

1

X

2

X

3

3

0

1

2

0

1

1

0

1

1

0

1

X

A

A

X

A

A

X

A

A

X

A

A

Y

+

+

+

=

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

0

D

0

D

0

0

1

0

1

D

1

D

0

1

0

0

2

D

2

D

0

1

1

0

3

D

3

D

1

0

0

0

4

D

4

D

1

0

1

0

5

D

5

D

1

1

0

0

6

D

6

D

1

1

1

0

7

D

7

D

a)

83

A

B

C

W

ej

śc

ia

 a

dr

es

ow

e

D

0

D

1

D

2

D

3

D

4

D

5

D

6

D

7

W

ej

śc

ia

 in

fo

rm

ac

yj

ne

Wejście 
strobujące

S

W

Y

A

B

C

A

B

C

background image

Rys. 9.17 Multiplekser scalony 151:

a)

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  

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.

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

9.5.3.

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 = 2

M

  wyjściach. Wejścia adresowe są 

opisane zwykle wielkimi literami alfabetu, natomiast wejścia informacyjne - liczbami całkowitymi od 0 do 2

M

 – 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).

84

5

1

0

2

3

4

6

7

9

8

10

12

11

13

14

15

16

18

19

20

21

17

26

25

24

23

22

29

27

28

30

31

W

S

A B

C D

E A B C D

0
1
2
3

2

– 1 

A B

2

M

 wyjść

Wejście

Informacyjne

X

M wejść adresowych

background image

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 G

1

 i G

2

 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)

b)

Wejścia

Wyjścia

G

1

 G

2

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 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

L

H
H
H
H
H
H
H
H
H

H

L

H
H
H
H
H
H
H
H

H
H

L

H
H
H
H
H
H
H

H
H
H

L

H
H
H
H
H
H

H
H
H
H

L

H
H
H
H
H

H
H
H
H
H

L

H
H
H
H

H
H
H
H
H
H

L

H
H
H

H
H
H
H
H
H
H

L

H
H

H
H
H
H
H
H
H
H

L

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
H

H
H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H
H

85

G

1

G

2

A

B

C

D

D

C

B

A

G

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

W

yj

śc

ia

W

ej

śc

ia

B

A

C

D

A

1

A

2

B

W

Q

Q

background image

L L
L L
L L
L L
L L
L L

L H
H L

H 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

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
H

H
H
H
H
H
H
H
H
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

L

H
H
H
H
H
H
H

H
H

L

H
H
H
H
H
H

H
H
H

L

H
H
H
H
H

H
H
H
H

L

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.

86

A

1

A

2

B

W

Q

Q

Q

1

1

2

background image

10.

GENERATORY

10.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 RC.

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.

a)

b)

Wejście

Wyjście

A

1

A

2

B

Q

Q

0

0

1

1

1

0

1

0

1

0

1

1

0

0

1

1

0

0

1

0

1

0

1

0

0

0

1

c)

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

c) przebiegi czasowe.

Układ ten posiada:

wejścia wyzwalające A

1

, A

2

 oraz B,

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

wyjścia przerzutnika Q i 

Q

.

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 A

1

A

2

 oraz B, że sygnał W = (

2

1

A

A

+

)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 t

i

 = 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 

= 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.

Podanie niskiego poziomu (0) na wejście Z powoduje natychmiastowe zakończenie generowanego impulsu i przejście wyjścia Q do stanu 

87

A

1

A

2

B

W

Q

Q

C

R

+U

CC

1
0
1
0
1
0
1
0
1
0
1
0

T

1

A

1

A

2

B

W

Q

Q

A
B

W

Q

Q

C

R

+U

CC

Z

Z

1

1

2

background image

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 t

i

 = 0,32RC dobiera się wartości elementów R i C.

a)

b)

Wejście

Wyjście

A

B

R

Q

Q

1

1

0

1

0

1

0

1

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.

10.2.

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  
powoli ładuje się, napięcie U

c

 narasta od zera ze stałą czasową τ = RC do wartości +U

cc

. 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 U

c

 = 1,55 V, wówczas stan na wejściu B zmieni 

się z 0 na 1 (B = 0 

 1), co spowoduje (przy A

1

 = 0; A

2

 = 0) wygenerowanie impulsu o czasie trwania t

2

. Wraz z zakończeniem tego impulsu na 

wejściu przerzutnika P1 pojawi się sygnał wyzwalający go (A

1

 = 0; A

2

 = 0; B = 0 

 1). Spowoduje to wygenerowanie impulsu o czasie trwania t

1

wraz z zakończeniem tego impulsu na wejściu przerzutnika P2 pojawi się sygnał wyzwalający go (A

1

, A

2

 = 0 

 1; B = 1).

a)

b)

88

Q

1

1

1

Q

2

2

2

C

1

R

1

C

2

R

2

R

C

+U

CC

B

A

1

A

2

A

1

A

2

B

U

C

P

1

P

2

Wy

t

t

0

0

0

U

C

U

02

U

01

U

CC

U

CC

U

CC

t

2

t

1

t

2

1,55V

background image

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  R

1

, C

1

, R

2

, C

2

. 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.

a)

b)

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 f

s

, która jest podawana na wejście zlinearyzowanej 

bramki B1

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. 

10.2.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

89

R

1

R

2

R

1

R

2

R

3

R

4

B1

B2

C

Wy

R

1

R

2

R

3

R

4

B1

B2

Wy

B3

1

2

1

2

3

4

5

1

2

3

4

5

0

V

V

U

Wy

U

We

X
X

0

τ

X

0

τ

X

0

τ

X

X

0

τ

X

X

background image

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

Przez zastosowanie opóźnienia 

0

τ

 i inwersji zmiennej sterującej X można uzyskać impulsy sygnalizujące zmianę sygnału sterującego z 

wartości niskiej na wysoką (

0

X

X

τ

), czyli jak gdyby w odpowiedzi na przednie zbocze X. Otrzymać można również krótki impuls 

0

X

X

τ

sygnalizujący zanik sygnału sterującego. Przykłady realizacji takich generatorów przedstawiono na rys. 10.7ab i c. Na rys. 10.7d pokazano sposób 

uzyskania opóźnienia 

0

τ

, 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)

c)

d)

Rys. 10.7 a), b) i c) Przykłady realizacji generatorów pojedynczych impulsów,

 d) układ opóźniający o 

0

τ

.

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)

b)

c)

d)

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 

wyzwalany przednim zboczem impulsu różniczkowanego  A. W układzie opóźniającym  

0

τ

  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.

10.2.2.

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 
przedstawiono w tabeli na rys. 10.9c.

90

X

0

τ

0

τ

X

X

X

0

τ

0

τ

X

X

X

0

τ

0

0

τ

τ

X

X

X

X

+

0

τ

k

2

X

Y

W

2k

X

W

Y

Y

X

2k + 1

D
C

1

X

Y

background image

a)

b)

c)

C

0

τ

20 pF

100 pF

1 nF

10 nF

37 ns

130 ns

µ

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.

a)

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)

b)

c)

Rys. 10.11 a), b) i c) Przykłady realizacji opóźnień za pomocą multiwibratora 4121.

91

A

Y

B

C

A

B

Y

0

τ

A

Y

B

C

A

A

B

B

Y

Y

t

t

t

t

t

t

C=50pF

C=250pF

X

0

Y

Q

Q

0

τ

X

Y

X

1

Q

Q

Y

X

Y

X

0

1

Y

Q

Q

Q

Q

1

τ

X

Y

background image

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.

Rys. 10.12 Przykładowa realizacja generatora pojedynczego impulsu na bramkach NOR.

10.2.3.

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 

)

U

(

f

U

we

wy

=

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)

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)

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.

92

X

Y

Y

R

1

,C

1

R

2

,C

2

X

+U

cc

1/4 402

1/6 505

1/4 402

Y

C

R

R

C

Y

Y

Y

Q

4121

4121

Q

Q

Q

Y

background image

11.

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.1cz.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.

93


Document Outline