background image

 

 

Wstęp do Informatyki 

Wykład 3

Cyfrowe układy logiczne

Autor: Dr hab. Marek J. Greniewski

background image

 

 

Podział na części architektoniczną i 

układową współczesnego komputera

Układy we-wy

Procesor

Kompilator

System

operacyjny

(Windows 2K)

Aplikacje (np. Netscape)

Układy cyfrowe

Obwody 

scalone

Lista rozkazów

określająca architekturę

Ścieżki danych i sterowanie

 

Bramki i 

elementy 

pamięci 

Pamięć

Hardware

Software

Assemble
r

Cyfrowe układy logiczne

background image

 

 

.

Elementy podstawowe

• Do realizacji funkcji przechowywania, przenoszenia, 

przetwarzania i sterowania komputera potrzebne 

są tylko 

dwa typy elementów podstawowych: 

– bramki 
– komórki pamięci

.

• Bramka jest przyrządem, który realizuje prostą 

funkcję logiczną, taką jak, AND, OR, NOT, NOR, 

NAND

• Komórka pamięci jest przyrządem, który może 

przechowywać pojedynczy bit danych - oznacza to, 

że przyrząd ten w określonym czasie może 

znajdować się w jednym z dwóch stabilnych stanów

background image

 

 

background image

 

 

 2. Bramka AND (i) - iloczyn logiczny

 3. Bramka OR (lub) - suma logiczna

 4. Bramka NOT (nie) - negacja

 5. Bramka NAND - negacja iloczynu

 6. Bramka NOR - negacja sumy

 7. Bramka XOR - równoważność 

 8. Bramka XNOR - nierównoważność

PODSTAWOWE BRAMKI LOGICZNE

 9. BUFOR

 1. Co to jest bramka?

background image

 

 

• Kombinacyjne  układy  cyfrowe  najczęściej 

budowane są za pomocą tzw. bramek. 

• Bramką  (

gate

)  nazywa  się  układ  elektroniczny 

realizujący  funkcję  boolowską,  posiadający 
określoną liczbę wejść i jedno wyjście. 

• Jak  każdy  układ  elektroniczny,  tak  i  bramki 

opisywane  są  wieloma  parametrami  zarówno 
funkcjonalnymi  (liczba  wejść,  liczba  wyjść, 
realizowana  funkcja,  przeznaczenie  i  in.),  jak  i 
elektrycznymi  (pobierana  moc  zasilania, 
obciążalność  prądem  układów  sterujących 
wejściami,  możliwość  wysterowania  wejść 
innych  układów  itp.)  oraz  dynamicznymi 
(czasy  zmiany  sygnału  na  wyjściu  układu, 
wnoszone opóźnienia i inne).

Co to jest BRAMKA? 

(początek)

background image

 

 

• Bramki  produkowane  są  jako  układy 

scalone. 

• Do  produkcji  układów  scalonych  były  i  są 

stosowane różne technologie. 

• Pierwsza  z  nich  to  technologia  TTL 

(

transistor-transistor 

logic

), 

jedną 

następnych CMOS (

complementary MOS

). 

W  jednym  układzie  scalonym  znajdowało 

się początkowo kilka bramek. 

• Przykładowo  w  jednym  układzie  scalonym 

znajdowały się 4 bramki dwuwejściowe lub 

trzy  bramki  trzy-wejściowe,  lub  dwie 

bramki czterowejściowe, lub jedna bramka 

ośmiowejściowa. 

• Natomiast  współczesne  obwody  scalone 

wielkiej  skali  integracji  -  VLSI  (czyli 

Very 

Large  Scale  Integration

)  zawierają  już 

miliony bramek.

Co to jest BRAMKA? 

(kontynuacja)

background image

 

 

• Bramki  AND,  OR,  NAND  i  NOR  mogą 

występować jako wielowejściowe. 

• Bramki sumy modulo 2 XOR występują tylko jako 

dwuwejściowe. 

• Bramka NOT jest jednowejściowa. 
• Spotyka  się  także  bramki  w  wykonaniu 

specjalnym. Mogą to być tzw. bramki z otwartym 
kolektorem  (

open  collector

)  -  OC  stosowane 

celem  uzyskania  możliwości  zwierania  wyjść 
bramek  lub  bramki  trzystanowe  (

three-state 

logic

)  wykorzystywane  np.  w  magistralach 

(szynach) komputera.

Co to jest BRAMKA? 

(zakończenie)

background image

 

 

BRAMKA

„AND”

Bramka AND realizuje iloczyn logiczny. Jeżeli na jej wejściach podane są jedynki 
to na wyjściu jest jedynka, w każdym innym przypadku na wyjściu jest zero.

A

B

Y

Y=A•B

A

B

Y

1

0

1

0

1

0

Tablica zero-

jedynkowa

Y=A•B

A

B

Y

0

0

0

0

1

0

1

0

0

1

1

1

background image

 

 

PRZYKŁAD BRAMKI „AND”

0

  

1

 = 

0

Przykład pokazuje przypadek, w którym na
wejścia (AB) zostały podane sygnały zero i jeden,
w wyniku czego na wyjściu (Y) otrzymujemy zero.

A

B

Y = A • B

0

1

0

A

B

Y

0

0

0

0

1

0

1

0

0

1

1

1

0

1

0

background image

 

 

BRAMKA

„OR”

Bramka OR realizuje sumę logiczną. Jeżeli przynajmniej na jednym wejściu 
podana jest jedynka, to na wyjściu (Y) jest jedynka.

A

B

Y

Y=A+B

Y=A+B

Tablica zero-

jedynkowa

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

1

A

B

Y

1

0

1

0

1

0

background image

 

 

PRZYKŁAD BRAMKI „OR”

0

 + 

1

 = 

1

Przykład pokazuje przypadek, w którym
na wejścia (AB) zostały podane sygnały
zero i jeden,w wyniku czego na wyjściu
(Y) otrzymujemy jedynkę.

A

B

0

1

1

Y = A + B

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

1

0

1

1

background image

 

 

BRAMKA

„NOT”

A

Y

Y=A

Bramka NOT realizuje operację zaprzeczenia. Jeżeli na wejściu podana jest 
jedynka, to na wyjściu (Y) będzie zero i odwrotnie.

Y=A

A

Y

0

1

1

0

Tablica zero-

jedynkowa

A

Y

1

0

1

0

background image

 

 

PRZYKŁAD BRAMKI  „NOT”

1

Przykład pokazuje przypadek, w którym na
wejście (A) podana została jedynka, w wyniku
czego na wyjściu (Y) otrzymujemy zero.

A

1

 = 

0

0

Y = A

A

Y

0

1

1

0

0

1

background image

 

 

BRAMKA

NAND”

Bramka NAND jest złożona z bramek NOT i AND. Zasada działania jest taka sama 
jak bramki AND z tą różnicą, że sygnał wyjściowy jest jeszcze negowany.

A

B

Y

Y=A•B

A

B

Y

1

0

1

0

1

0

Y=A•B

Tablica zero-

jedynkowa

A

B

Y

0

0

1

0

1

1

1

0

1

1

1

0

background image

 

 

PRZYKŁAD BRAMKI  „NAND”

Przykład pokazuje przypadek, w którym na
wejścia (AB) zostały podane sygnały zero
i jeden, w wyniku czego na wyjściu (Y)
otrzymujemy negację zera, czyli jedynkę.

A

B

0

1

1

0

  

1

=

0

=

1

Y = A • B

A

B

Y

0

0

1

0

1

1

1

0

1

1

1

0

0

1

1

background image

 

 

BRAMKA

„NOR”

Bramka NOR jest złożona z bramek: NOT i OR. Zasada działania jest taka sama jak 
bramki OR z tą różnicą, że sygnał wyjściowy jest jeszcze negowany.

A

B

Y

Y=A+B

A

B

Y

1

0

1

0

1

0

Y=A+B

Tablica zero-

jedynkowa

A

B

Y

0

0

1

0

1

0

1

0

0

1

1

0

background image

 

 

PRZYKŁAD BRAMKI  „NOR”

Przykład pokazuje przypadek, w którym na wejścia
(AB) zostały podane sygnały zero i jeden, w wyniku
czego na wyjściu (Y) otrzymujemy jedynkę.

A

B

Y = A + B

0

+

1

=

1

=

0

0

1

0

A

B

Y

0

0

1

0

1

0

1

0

0

1

1

0

0

1

0

background image

 

 

BRAMKA

XOR”

Jeżeli sygnały wejściowe są sobie równe (A=B=0 lub A=B=1),
to na wyjściu (Y) jest zero.

A

B

Y

Y=A + B

A

B

Y

1

0

1

0

1

0

Y=A + B 

 Y=A•B + A•B

Tablica zero-

jedynkowa

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

0

background image

 

 

PRZYKŁAD BRAMKI „XOR”

Przykład pokazuje przypadek, w którym na wejścia
(AB) zostały podane sygnały zero i jeden, w wyniku
czego na wyjściu (Y) otrzymujemy jedynkę.

A

B

1

0

x

1

+

0

x

1

=

1

+

0

=

1

0

1

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

0

Y=A + B 

 Y=A•B + A•B

0

1

1

Y

background image

 

 

BRAMKA

„XNOR”

Jeżeli sygnały wejściowe są sobie równe (A=B=0 lub A=B=1),
to na wyjściu (Y) jest jedynka.

A

B

Y

Y=A    B

A

B

Y

1

0

1

0

1

0

Y=A    B 

 Y=A•B + A•B

Tablica zero-

jedynkowa

A

B

Y

0

0

1

0

1

0

1

0

0

1

1

1

background image

 

 

PRZYKŁAD BRAMKI  „XNOR”

Przykład pokazuje przypadek, w którym na
wejścia (AB) zostały podane sygnały zero i jeden,
w wyniku czego na wyjściu (Y) otrzymujemy zero.

0

x

1

+

0

x

1

=

0

+

0

=

0

Y=A    B 

 Y=A•B + A•B

A

B

Y

0

0

1

0

1

0

1

0

0

1

1

1

Y

0

1

0

A

B

0

1

0

background image

 

 

BUFOR czyli np. linia 

opóźniająca

A

Y

Y=A

A

Y

0

0

1

1

Y=A

Tablica zero-

jedynkowa

background image

 

 

Zastosowanie bramek

• Z bramek budowane są układy kombinacyjne, 

takie jak:

– Multiplexery,

– Demultiplexery,

– Kodery,

– Dekodery.

• Z bramek budowane są przerzutniki – składowe 

układów sekwencyjnych, takie jak 

– Przerzutnik S-R, 

– Przerzutnik synchroniczny S-R, 

– Przerzutnik D, 

– Przerzutnik J-K. 

• Przerzutniki są wykorzystywane jako składowe:

– Rejestrów (np. równoległych i przesuwanych),

– Liczników (np. szeregowych, synchronicznych).

background image

 

 

Logika kombinacyjna CL

• y

i

 = f(x

0

, x

1

, ..., x

n-1

) gdzie x, y przyjmują wartości {0, 

1}, zaś indeks i przyjmuje wartości {0, 1, 2, ..., n-1}

• y jest funkcją jedynie od x
• jeśli zmienimy wartości zmiennych x, to wartość y 

zmieni się niemal natychmiast

• oznacza to, że czas propagacji układu 

kombinacyjnego można pominąć!!!

background image

 

 

Układy kombinacyjne

• Układ kombinacyjny jest zbiorem wzajemnie połączonych 

bramek, którego stan wyjść w dowolnej chwili (kwancie 

czasowym – określonym taktem zegara) jest wyłącznie funkcją 

stanu wejść w tej samej chwili.

• Podobnie jak w przypadku pojedynczej bramki, po ustaleniu 

stanu na wejściu – prawie natychmiast pojawia się sygnał na 

wyjściu, przy czym występuje tylko opóźnienie bramkowe, 

odpowiadające czasowi propagacji sygnału elektrycznego w 

bramce.

• Ogólnie rzecz biorąc, układ kombinacyjny zawiera n wejść i m 

wyjść binarnych i realizuje określone funkcje boolowskie.

• Układy kombinacyjne budowane są z bramek. 
• Złożoność funkcji jest ograniczoną związkiem pomiędzy 

długością sumy czasu propagacji najdłuższej ścieżki danych 

binarnych układu kombinacyjnego – a długością sygnału 

pojedynczego taktu zegara. Suma czasu propagacji sygnału w 

układzie kombinacyjnym nie może przekraczać czasu trwania 

pojedynczego sygnału taktującego zegara.

background image

 

 

Zasada taktowania 

zegarem 

układu 

kombinacyjnego

Zegar

.
.
.

.
.
.

.
.
.

.
.
.

Układ kombinacyjny

background image

 

 

Algebra Boole’a

Do projektowania i analizowania cyfrowych układów 

logicznych w komputerach i innych systemach cyfrowych 

używana jest gałąź matematyki zwana algebrą Boole’a.

Nazwano ją tak dla uczczenia brytyjskiego matematyka 

Georga’a Boole’a, który zaproponował podstawowe zasady 

tej algebry w pracy zatytułowanej „An Investigation of the 

Laws of Thought on Which to Found Mathematical Theories 

of Logic and Probabilities (Badania praw myśli, które mogą 

być podstawą matematycznych teorii logiki i 

prawdopodobieństwa)”.

W roku 1938 Claude Shannon, wówczas asystent na 

wydziale elektrycznym MIT (późniejszy twórca teorii 

informacji), zasugerował zastosowanie algebry Boole’a do 

rozwiązywania problemów projektowania układów 

przekaźnikowych.

Metody Shannona zostały następnie użyte do analizowania 

oraz projektowania elektronicznych układów cyfrowych.

background image

 

 

Algebra Boole’a

• Podobnie jak inne rodzaje algebry, algebra Boole’a 

używa zmiennych i operacji.

• W tym przypadku są to logiczne zmienne i 

operacje, które mogą przyjmować wartości 1 

(

Prawda

) i 0 (

Fałsz

), natomiast podstawowymi 

operacjami logicznymi są 

AND

 (i), 

OR

 (lub) i 

NOT

(nie).

• Trzy inne użyteczne operatory algebry Boole’a to 

XOR

 (albo – czyli lub wykluczające), 

NAND

 (nie-i) 

oraz 

NOR

 (nie-lub).

• Operator 

NAND

 jest zdefiniowany jako: 

NAND

 b = 

NOT

 ( a 

AND

 b)

• Operator 

NOR

 jest zdefiniowany jako: 

NOR

 b = 

NOT

 ( a 

OR

 b)

• Natomiast operator 

XOR

 jest zdefiniowany jako:

XOR b

 = ( a 

AND

 b) 

OR

 ( a 

NAND

 b). 

background image

 

 

Algebra Boole’a

podstawowe tożsamości

 

 

a   b    

NOT

 a    a 

AND

 b    a 

OR

 b    a 

XOR

 b    

NAND

 b    a 

NOR

 b

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

Podstawowe postulaty
a * b = b * a                              a + b = b + a                            

Prawo przemienności

a * (b + c) = (a * b) + (a * c)      a + (b * c) = (a + b) * (a + c)   

Prawo rozdzielczości

1 * a = a                                     0 + a = a                                 

Prawo tożsamości

Pozostałe tożsamości
a * NOTa = 0                             a + NOTa = 1                          

Prawo odwrotności

0 * a = 0                                     1 + a = 1
a * (b * c) = (a * b) * c                a + (b + c) = (a + b) + c           

Prawo łączenia

         

NOT(a * b) = NOTa + NOTb     NOT(a + b) = NOTa * NOTb   

Twierdzenie DeMorgana

background image

 

 

Podstawowe bramki logiczne

Nazwa Symbol graficzny

Funkcja 

Boolowska

Tabelka funkcji

AND

F = A • B

lub

F = AB

A | 0 0 1 1

B | 0 1 0 1  

F | 0 0 0 1

OR

F = A + B

A | 0 0 1 1

B | 0 1 0 1

F | 0 1 1 1

NOT

      __ 

F = A

A | 0 1

F | 1 0

NAN

D

     ___

F = (A • B)

A | 0 0 1 1

B | 0 1 0 1  

F | 1 0 0 0

NOR

       _____

F = (A + B)

A | 0 0 1 1

B | 0 1 0 1

F | 1 0 0 0

A

B

A

B

F

F

A

B

A

B

F

F

A

F

F

background image

 

 

Twierdzenia DeMorgan’a

NAND Gate

NOR Gate

Out

A

B

A

B

Out

A B Out

1

1

1

0 0

0 1

1 0

1 1

0

A
B

Out

Out

A

B

Out = A • B = A + B

A B Out

0 0

1

0 1

0

1 0

0

1 1

0

A B Out

1 1

1

1 0

1

0 1

1

0 0

0

0 0

0 1

1 0

1 1

A B

A B Out

1 1

1

1 0

0

0 1

0

0 0

0

0 0

0 1

1 0

1 1

A B

Out = A + B = A • B

background image

 

 

Układy kombinacyjne

• Realizacja funkcji Boole’a.
• Realizacja wszystkich funkcji boolowskich za 

pomocą bramki NAND.

• Realizacja wszystkich funkcji boolowskich za 

pomocą bramki NOR.

• Multipleksery.
• Dekodery.
• Sumatory.

background image

 

 

Zastosowanie bramki 

NAND

A

A’

A

B

(A*B)’

A*B

A

B

A’

B’

A+B

background image

 

 

Zastosowanie bramki 

NOR

A

A’

A

B

(A+B)’

A+B

A

B

A’

B’

A*B

background image

 

 

Definiowanie układu 

kombinacyjnego

• Układ kombinacyjny jest zbiorem wzajemnie 

połączonych bramek, którego stan wyjść w dowolnej 

chwili jest wyłącznie funkcją stanu wejść w tej samej 

chwili.

• Układ kombinacyjny zawiera n wejść i m wyjść 

binarnych

• Podobnie jak bramkę, układ kombinacyjny można 

zdefiniować na jeden z trzech sposobów:

– Tablicą zero-jedynkową. Dla każdej z 2

n

 możliwych 

kombinacji sygnałów wejściowych podana jest wartość 

binarna każdego z m sygnałów wyjściowych.

– Schematem graficznym – czyli schematem połączeń bramek
– Funkcjami Boole’owskimi – gdzie każdy sygnał wyjściowy 

jest wyrażony jako funkcja sygnałów wejściowych.

background image

 

 

Układ opisany tablicą zero-

jedynkową

A

B

C

F

0

0

0

0

0

0

1

0

0

1

0

1

0

1

1

1

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

0

background image

 

 

Układ opisany schematem 

wersja (a)

A

B

C

F

background image

 

 

Układ opisany schematem 

wersja (b)

A

B

C

F

background image

 

 

Układ opisany funkcją 

Boolea’owską

(a) F = A’ * B * C’ + A’ * B * C + A 

* B * C’

(b) F = 

(A+B+C)*(A+B+C’)*(A’+B+C)*(
A’+B’+C’)

background image

 

 

Uproszczenia 

algebraiczne

F =  (A’ * B + B * C’)

F = B * (A’ + C’)

A

C

B

F

background image

 

 

Realizacja układu z bramek 

NAND

A

B

C

F

F = B * (A’ + 
C’)

background image

 

 

Multiplekser

• Multiplekser jest układem kombinacyjnym, który łączy wiele 

wejść, (np. D0, D1, D2 i D3) z jednym wyjściem F, a o 
którego działaniu decydują sygnały sterujące (np. S1 i S2).

• Na wyjście F multipleksera dostarczany jest sygnał z 

jednego wybranego wejścia. Sygnały sterujące 
multiplekserem decydują o wyborze wejścia.

• Multipleksery są używane w układach cyfrowych do 

sterowania przepływem sygnałów i danych. 

• Przykładem jest ładowanie licznika programu (PC). Liczba 

wprowadzana do licznika programu, może pochodzić z 
jednego z kilku źródeł:

– Układu pół-sumatora, jeśli stan PC ma być inkrementowany w celu 

określenia adresu następnego rozkazu

– Rejestru rozkazu (IR), jeśli został właśnie wykonany rozkaz skokowy 

używający adresu bezpośredniego

– Wyjścia ALU, jeśli rozkaz skokowy określa adres, używając trybu 

indeksowego.

background image

 

 

Tablica multipleksera

pokazująca jakim kombinacjom sygnałów 

sterującym S1, S2 odpowiada przełączenie 

poszczególnych wejść na wyjście

S2

S1

F

0

0

D0

0

1

D1

1

0

D2

1

1

D3

background image

 

 

Symbol multipleksera

MUX

4 do 1

D0

D
1

D2

D3

F

S1

S2

W

e

ci

a

Sterowanie

Wyjście

background image

 

 

Schemat multipleksera

S1

S2

D0

D1

D2

D3

F

background image

 

 

Wejście multiplekserowe 

do PC

MUX

0

4 do 1

MUX

1

4 do 1

MUX

15

4 do 1

S1

S2

S1

S2

S1

S
2

PC

0

PC

1

PC

15

C

0

  IR

0

 ALU

0

C

1

  IR

1

 ALU

1

C

15

  IR

15

 ALU

15

Przykład dotyczący 16 bitowego adresu (PC

0

, PC

1

, ... , PC

15

). 

Źródła (C

0

, C

1

, ... , C

15

), (IR

0

, IR

1

, ... , IR

15

) oraz ALU – są połączone

z liniami wejściowymi poszczególnych multiplekserów, zaś wyjścia tych
ostatnich – połączone są do poszczególnych bitów rejestru PC.

background image

 

 

Dekoder

Dekoder jest układem kombinacyjnym o pewnej liczbie linii 

wyjściowych, z których w określonej chwili sygnał może być 

wysłany na jedynie jedną linię, zależnie od kombinacji 

sygnałów na liniach wejściowych.

Ogólnie mówiąc, dekoder ma N wejść i 

2

N

 wyjść.

Dekodery znajdują wiele zastosowań w komputerach. 

Jednym z przykładów zastosowań jest dekodowanie adresu.

Załóżmy dalej, że chcemy zbudować pamięć 1-kilobajtową 

przy użyciu 4 układów RAM o pojemności 256x8 bitów 

każdy. Przy czym, chcemy mieć jedną zunifikowaną 

przestrzeń adresową, którą możemy podzielić następująco:

– Adresy szesnastkowe od 0000 do 00FF układ pamięciowy RAM 0
– Adresy szesnastkowe od 0100 do 01FF układ pamięciowy RAM 1
– Adresy szesnastkowe od 0200 do 02FF układ pamięciowy RAM 2
– Adresy szesnastkowe od 0300 do 03FF układ pamięciowy RAM 3

background image

 

 

Tablica dekodera

Pokazuje jakiej kombinacji sygnałów 

wejściowych ABC

- odpowiada pojawienie się sygnału x na jednym 

z wyjść

A

B

C

Dan

e

D0 D1 D2 D3 D4 D5 D6 D7

0

0

0

x

x

0

0

0

0

0

0

0

0

0

1

x

0

x

0

0

0

0

0

0

0

1

0

x

0

0

x

0

0

0

0

0

0

1

1

x

0

0

0

x

0

0

0

0

1

0

0

x

0

0

0

0

x

0

0

0

1

0

1

x

0

0

0

0

0

x

0

0

1

1

0

x

0

0

0

0

0

0

x

0

1

1

1

x

0

0

0

0

0

0

0

x

background image

 

 

Symbol dekodera

Dekoder

N do 2

N

N – bitowy

adres miejsca

przeznaczenia

Wejście
danych

2

N

 wyjść binarnych

background image

 

 

Przykład dekodowania 

adresu

256x8

RAM

Dekoder

2 do 4

256x8

RAM

256x8

RAM

256x8

RAM

A0

A7

A8

A9

Zezwolenie

Zezwolenie

Zezwolenie

Zezwolenie

background image

 

 

Schemat 

dekodera

A

B

C

D0

D1

D2

D3

D4

D5

D6

D7

000

001

010

011

100

101

110

111

background image

 

 

Pamięć stała ROM

• Układy kombinacyjne są często określane jako układy 

„bez pamięci”, ponieważ ich wyjścia zależą jedynie od 

bieżącego stanu ich wejść, a żadne informacje historyczne 

o poprzednich stanach wejść nie są zachowywane.

• Istniej jednak pewien rodzaj pamięci, który jest 

realizowany za pomocą układów kombinacyjnych, a 

mianowicie pamięć stała ROM.

• ROM jest pamięcią, która umożliwia wykonanie wyłącznie 

operacji odczytu. Informacja binarna zawarta w ROM jest 

w związku z tym trwała. Jest ona zapisywana w pamięci 

ROM w toku procesu wytwarzania modułu pamięci.

• Wobec tego określona kombinacja sygnałów wejściowych 

ROM – podana na linie adresowe, prowadzi zawsze do tej 

samej kombinacja sygnałów na liniach wyjściowych.

background image

 

 

Tablica pamięci stałej 

ROM

------Linie wejściowe------              ----- Linie 

wyjściowe------

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

1

0

0

0

1

1

0

0

1

1

0

0

1

0

0

1

0

0

0

1

1

0

0

1

0

1

0

1

1

1

0

1

1

0

0

1

0

1

0

1

1

1

0

1

0

0

1

0

0

0

1

1

0

0

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

0

0

1

0

1

0

1

1

0

1

1

0

1

1

1

1

1

0

1

0

0

1

1

1

1

1

1

0

0

0

background image

 

 

64-bitowa pamięć ROM

D

e

ko

d

e

r 4

 x

 1

6

X

1

X

2

X

3

X

4

Z

1

Z

2

Z

3

Z

4

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

background image

 

 

Sumatory

Obszarem o zasadniczym znaczeniu, którego 

jeszcze nie rozpatrywaliśmy, są operacje 

arytmetyczne.

Obecnie omówimy, jako przykład funkcję 

dodawania binarnego liczb.

Suma binarna różni się tym od sumy w algebrze 

Boole’a, że wynik obejmuje przeniesienie 

pomiędzy pozycjami binarnymi dodawanych 

liczb binarnych.

Dodawanie binarne można wyrazić za pomocą 

wyrażeń algebry Boolea.

background image

 

 

Tablica dodawania 

binarnego

C

in

A

B

Suma

C

out

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

background image

 

 

Sumator 4-bitowy

C

3

S

y

g

n

a

ł

p

rz

e

p

e

łn

ie

n

ia

C

in

C

2

C

in

C

1

C

in

C

0

C

in

0

S

3

S

2

S

1

S

0

A

3

B

3

A

2

B

2

A

1

B

1

A

0

B

0

background image

 

 

Wzory na stany dwóch wyjść 

sumatora

suma

 = A * B * C  +  A * B * C  + A * B * C  + A * B * C

= (A’ * B’ + A * B) * C + (A’ * B + A * B’) * C’

przeniesienie

 = A * B  +  A * C  +  B * C 

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

background image

 

 

Schemat sumatora

suma

przeniesienie

A’

B’

C

A’

B

C’

A

B

C

A

B’

C’

A
B

A
C

B
C

background image

 

 

Sumatory wielobitowe

• Dysponujemy więc układami logicznymi niezbędnymi do budowy 

wielobitowego sumatora.

• Zauważmy, że ponieważ wartość wyjściowa każdego sumatora 

zależy od przeniesienia z poprzedniego sumatora, istnieje 
opóźnienie narastające od najmniej znaczącego do najbardziej 
znaczącego bitu, ponieważ w każdym sumatorze jednobitowym 
następują pewne opóźnienia bramkowe, które się kumulują.

• Gdyby wartości przeniesienia mogły być określone bez 

przechodzenia przez wszystkie pośrednie szczeble, każdy 
sumator jednobitowy mógłby działać niezależnie i opóźnienia by 
się nie kumulowały.

• Można to osiągnąć, stosując rozwiązanie nazywane układem 

przeniesienia na bardziej znaczące pozycje (

carry look-a-head

).

• Dla wyjaśnienia tego rozwiązania ponownie rozważmy sumator 

4-bitowy. 

background image

 

 

Wzory na 

carry look-a-

head

Chcemy więc otrzymać wyrażenia, które określają wartości na wejściu 
Dowolnego szczebla sumatora, bez odnoszenia się do poprzednich 

wartości przeniesienia:

(1)C

0

 = A

0

 * B

0

(2)C

1

 = A

1

 * B

1

 + (A

1

 + B

1

) * C

0

Podstawiając równości (1) do (2) otrzymamy:

(3)C

1

 = A

1

 * B

1

  +  A

1

 * A

0

 * B

0

  +  B

1

 * A

0

 * B

0

Powtarzając tę samą procedurę, otrzymujemy:

(4)C

2

 = A

2

 * B

2

  +  A

2

 * A

1

 * B

1

  + A

2

 * B

1

 * A

0

 * B

0

 

+ B

2

 * A

1

 * B

1

  +  B

2

 * A

1

 * A

0

 * B

0

  +  B

2

 * B

1

 * A

0

 * B

0

 

Postępowanie to możemy powtarzać dla dowolnie długich sumatorów.
Każdy składnik przeniesienia może być wyrażony w postaci sumy
iloczynów jako funkcja wyłącznie oryginalnych danych wejściowych,
bez zależności od przeniesień.

background image

 

 

Układy sekwencyjne

• Układy kombinacyjne służą do wdrażania 

podstawowych funkcji komputera. Jednak, poza 

szczególnym przypadkiem pamięci ROM, nie 

umożliwiają one zrealizowania układów pamięci lub 

przechowywania informacji o stanie, które również 

mają zasadnicze znaczenie dla działania komputera.

• Bieżący stan wyjścia układu sekwencyjnego zależy 

nie tylko od bieżącego stanu wejścia, ale również od 

historii stanu wejścia.

• Inaczej mówiąc, bieżący stan wyjścia układu 

sekwencyjnego zależy od bieżącego stanu wejścia 

oraz od bieżącego stanu samego układu 

sekwencyjnego.

background image

 

 

Przerzutniki

• Najprostszą formą układu sekwencyjnego jest 

przerzutnik.

• Istnieje szereg rodzajów przerzutników, jednak wszystkie 

mają następujące dwie własności:

– Przerzutnik jest układem dwustabilnym. Utrzymuje się w jednym 

z dwóch stanów i bez sygnału wejściowego nie zmienia stanu. 
Czyli przerzutnik działa jako pamięć jednobitowa.

– Przerzutnik ma dwa wyjścia, które zawsze dopełniają się 

wzajemnie. Są one często oznaczane jako Q i Q’.

• W dalszym ciągu omówimy cztery rodzaje przerzutników:

– Przerzutnik zatrzaskowy S-R
– Synchronizowany przerzutnik S-R
– Przerzutnik D
– Przerzutnik J-K.

background image

 

 

Przerzutnik zatrzaskowy

R

S

Q

Q’

S       R      Q

n+1

0     0       Q

n

0     1       0
1     0       1
1     1       ?

Odpowiedzi układu na serie wartości wejściowych

t          0    1    2    3    4    5    6    7    8    9
S         1    0    0    0    0    0    0    0    1    0
R         0    0    0    1    0    0    1    0    0    0
Q

n+1

     1    1    1    0    0    0    0    0    1    1

background image

 

 

Przebiegi czasowe 

przerzutnika S-R

    1
S  
    0

    1
R
     0

     0

     1

    0
Q’
    1

2Δt

Δt

2Δt

Δt

t

background image

 

 

Synchronizacja 

przerzutnika S-R

• Zmiana stanu wyjścia przerzutnika S-R następuje po 

krótkim opóźnieniu, jako reakcja na zmianę stanu 
wejścia. Określimy to jako 

działanie asynchroniczne

• Częściej jednak, zdarzenia w komputerze są 

synchronizowane impulsami zegara, zmiany stanu mogą 
nastąpić tylko wtedy gdy pojawi się impuls zegarowy.

• Przerzutnik S-R synchronizowany impulsami zegara 

nazywamy 

synchronicznym przerzutnikiem S-R

.

• W synchronicznym przerzutniku S-R, stany wejść S i R są 

doprowadzane do bramek NOR przerzutnika tylko 
podczas trwania impulsu zegarowego.

background image

 

 

Synchronizowany 

przerzutnik S-R

R

S

zegar

Q

Q’

background image

 

 

Rozwiązywanie problemu 

S-R

• W przypadku przerzutnika S-R problem jest to, że należy 

zapobiegać powstawaniu sytuacji, w której równocześnie R = 
1, S = 1.

• Jednym ze sposobów osiągnięcia tego jest pozostawienie tylko 

jednego wejścia.

• Tak właśnie jest rozwiązany przerzutnik D, gdzie za pomocą 

inwertora (funkcji negacji) zagwarantowano, że nie-zegarowe 
wejścia do dwóch bramek AND dają stany, które są swoją 
negacją.

• Stan na wyjściu przerzutnika D jest zawsze równy ostatniej 

wartości stanu wejścia. Dlatego przerzutnik D jest często 
określany jako linia opóźniająca, ponieważ pojawienie się na 
wejściu 0 lub 1 – pojawia się na wyjściu z opóźnieniem jednego 
cyklu zegara.

background image

 

 

Przerzutnik D

zegar

D

Q

Q’

D    Q

n+1

0        0
1        1

background image

 

 

Inne rozwiązanie 

problemu S-R

• Kolejnym użytecznym przerzutnikiem jest 

przerzutnik J-K

.

• Podobnie jak przerzutnik S-R ma dwa wejścia. W odróżnieniu 

jednak od przerzutnika S-R wszystkie możliwe kombinacje 

stanów wejść przerzutnika J-K są dopuszczalne.

• Zauważmy, że pierwsze trzy kombinacje wartości wejść i 

wyjść przerzutnika J-K są identyczne jak dla przerzutnika S-

R.

• Samo wejście J umożliwia realizację ustawienia na wejściu 

wartości 1 (

set

), zaś samo wejście K realizuje kasowanie 

(

reset

).

• Gdy oba wejścia (J i K) są równe 1, stan wyjścia ulega 

zanegowaniu. Jeśli więc Q jest równe 1, to ustawienie 

stanów wejść J = 1 i K = 1 powoduje zmianę stanu wyjścia Q 

na 0. Jeśli zaś Q jest równe 0, to ustawienie stanów wejść J 

= 1 i K = 1 powoduje zmianę stanu wyjścia Q na 1.

background image

 

 

Przerzutnik J-K

K

zegar

J

Q

Q’

J   K      Q

n+1

0    0       Q

n

0    1       0
1    0       1
1    1       Q’

n

background image

 

 

Symbole podstawowych 

przerzutników

C

k

C

k

C

k

S   Q

R   Q’

J    Q

K   Q’

D   Q

  Q’

S    R      Q

n+1

0     0        Q

n

0     1         0
1     0         1 
1     1         

?

J    K      Q

n+1

0     0       Q

n

0     1       0
1     0       1 
1     1       Q’

n

D      Q

n+1

0          0
1          1

background image

 

 

Rejestry

• Jako przykład zastosowania przerzutników, 

przeanalizujemy jeden z zasadniczych 
elementów procesora: 

rejestr

.

• Jak wiemy, rejestr jest układem cyfrowym 

używanym między innymi wewnątrz procesora 
do przechowywania jednego lub wielu bitów 
danych.

• Powszechnie używane są dwa rodzaje rejestrów:

– Rejestry równoległe
– Rejestry przesuwające.

background image

 

 

Rejestr równoległy

S  Q

R    

S  Q

R    

S  Q

R    

S  Q

R    

S  Q

R    

S  Q

R    

S  Q

R    

S  Q

R    

D

o7

           D

o6

          D

o5

           D

o4

          D

o3

          D

o2

         D

o1

         D

o0

D

i7

         D

i6

           D

i5

           D

i4

            D

i3

           D

i2

         D

i1

          D

i0

Input

strobe

Reset

Output

strobe

Linie wejścia

Linie wyjściowe

background image

 

 

5-bitowy rejestr 

przesuwający

S

5

  Y

5

C

R

5

 Y’

5

S

4

  Y

4

C

R

4

 Y’

4

S

3

  Y

3

C

R

3

 Y’

3

S

2

  Y

2

C

R

2

 Y’

2

S

1

  Y

1

C

R

1

 Y’

1

zegar

X

background image

 

 

Liczniki

• Inną użyteczną kategorią układów sekwencyjnych są 

liczniki

• Licznik jest rejestrem, którego zawartość może być z łatwością 

inkrementowana 1 modulo pojemność rejestru.

• Rejestr wykonany z n przerzutników może liczyć od 0 do 2

n 

– 1.

• Gdy zawartość licznika jest zwiększana poza jego wartość 

maksymalną, jest on ustawiony na 0.

• Przykładem licznika występującego w procesorze jest licznik 

programu IC.

• Liczniki mogą być projektowane jako 

asynchroniczne

 lub 

synchroniczne

.

• Liczniki asynchroniczne są stosunkowo powolne, ponieważ 

przerzutnik wyzwala zmianę stanu następnego przerzutnika.

• W liczniku synchronicznym wszystkie przerzutniki zmieniają stan 

jednocześnie i dlatego są o wiele szybsze od liczników 

asynchronicznych. Dlatego też, są one powszechnie stosowane 

w procesorach.

background image

 

 

Licznik asynchroniczny 

(szeregowy)

J   Q

Ck

K  Q’

J   Q

Ck

K  Q’

J   Q

Ck

K  Q’

J   Q

Ck

K  Q’

zegar

poziom
wysoki

Q

0

Q

1

Q

2

Q

3

zeg

ar

Q

0

Q

1

Q

2

Q

3

background image

 

 

Licznik synchroniczny

J   C

Ck

K  C’

J   B

Ck

K  B’

J   A

Ck

K  A’

wysoki

zegar


Document Outline