295
Digitalne strukture: učno gradivo s predavanj Tadej Kotnik Univerza v Ljubljani Fakulteta za elektrotehniko šolsko leto 2010/2011 http://lbk.fe.uni-lj.si/pdfs/DS-Predavanja.pdf

Univerza v Ljubljani Fakulteta za elektrotehniko

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Univerza v Ljubljani Fakulteta za elektrotehniko

Digitalne strukture:učno gradivo s predavanj

Tadej KotnikUniverza v Ljubljani

Fakulteta za elektrotehniko

šolsko leto 2010/2011http://lbk.fe.uni-lj.si/pdfs/DS-Predavanja.pdf

Page 2: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemi in kode

Page 3: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiNajpreprostejše štetje – zareze (od 6000 pr.n.št.)

Evropa Vzhodna Azija

Južna Amerika

Page 4: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiEgipčanski sistem (od 3000 pr.n.št.)

1 10 100 1000 104 105 106

I

črtica jarem vrv vodna lilija

prst roke žaba

mož se čudi

Page 5: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiEgipčanski sistem (od 3000 pr.n.št.)

= 3244

= 21237

Page 6: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiBabilonski sistem (od 1900 pr.n.št.)

Page 7: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiBabilonski sistem (od 1900 pr.n.št.)

= 55*602 + 11*601 + 5*600 = 198665

Page 8: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiRimski sistem (od 250 n.št.)

1 5 10 50 100 500 1000

I V X L C D M

= 1000 + 500 + 4*100 + 10

= 1910

Page 9: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiIndijsko – arabski sistem = desetiški z ničlo (od 300 pr.n.št.)

Page 10: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiDvojiški (binarni) in šestnajstiški (heksadecimalni) sistem

(B65F)16

= 11*163 + 6*162 + 5*161 + 15*160=

= (46687)10

(1010.011)2

= 23 + 21 + 2-2 + 2-3 = (10.375)10

Page 11: Univerza v Ljubljani Fakulteta za elektrotehniko

Številski sistemiDvojiški sistem – pretvorba iz desetiškega

(41)10

= 25 + 9 = 25 + 23 + 20 = (101001)2

Page 12: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeOsnovni pojmi

(digitalno) kodiranje: prirejanje števil, črk in drugih znakov v obliko, ki je primerna za zapis v dvojiškem sistemu

dekodiranje: obratna pretvorba iz kodirane v osnovno obliko

bit: osnovna enota informacije v dvojiškem sistemu

bajt, byte, beseda: skupina osmih bitov

Page 13: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeDelitev kod

utežnostne

številske(BCD = Binary Coded Decimal)

kode

splošne (alfanumerične)

neutežnostne

reflektivne

enokoračne

druge

ASCII

Unicode

Page 14: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeUtežnostne številske kode

naravna BCD koda:• preprosto kodiranje in

dekodiranje, tudi “na pamet”• seštevanje ne deluje vedno:

28 0010 1000+31 +0011 000159 0101 1001

28 0010 1000+32 +0011 001060 0101 1010

• koda primerna za prenos številskih podatkov, a sama ne omogoča odkrivanja napak

število(digit)

naravna BCD(8 4 2 1)

bikvinarna BCD(5 0 4 3 2 1 0)

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

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

2 0 0 1 0 0 1 0 0 1 0 0

3 0 0 1 1 0 1 0 1 0 0 0

4 0 1 0 0 0 1 1 0 0 0 0

5 0 1 0 1 1 0 0 0 0 0 1

6 0 1 1 0 1 0 0 0 0 1 0

7 0 1 1 1 1 0 0 0 1 0 0

8 1 0 0 0 1 0 0 1 0 0 0

9 1 0 0 1 1 0 1 0 0 0 0

Page 15: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeUtežnostne številske kode

bikvinarna BCD koda:• zaradi lastnosti pomikanja

enic je uporabna za štetje ...

število(digit)

naravna BCD(8 4 2 1)

bikvinarna BCD(5 0 4 3 2 1 0)

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

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

2 0 0 1 0 0 1 0 0 1 0 0

3 0 0 1 1 0 1 0 1 0 0 0

4 0 1 0 0 0 1 1 0 0 0 0

5 0 1 0 1 1 0 0 0 0 0 1

6 0 1 1 0 1 0 0 0 0 1 0

7 0 1 1 1 1 0 0 0 1 0 0

8 1 0 0 0 1 0 0 1 0 0 0

9 1 0 0 1 1 0 1 0 0 0 0 abakus Suan-pan, okoli leta 1200

Page 16: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeUtežnostne številske kode

bikvinarna BCD koda:• ... z dodatnimi operacijami

pa tudi za aritmetiko

število(digit)

naravna BCD(8 4 2 1)

bikvinarna BCD(5 0 4 3 2 1 0)

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

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

2 0 0 1 0 0 1 0 0 1 0 0

3 0 0 1 1 0 1 0 1 0 0 0

4 0 1 0 0 0 1 1 0 0 0 0

5 0 1 0 1 1 0 0 0 0 0 1

6 0 1 1 0 1 0 0 0 0 1 0

7 0 1 1 1 1 0 0 0 1 0 0

8 1 0 0 0 1 0 0 1 0 0 0

9 1 0 0 1 1 0 1 0 0 0 0 računalnik IBM 650, 1953

Page 17: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeUtežnostne številske kode

bikvinarna BCD koda:• parnost enic omogoča

odkrivanje napak brez dodatnih sredstev

število(digit)

naravna BCD(8 4 2 1)

bikvinarna BCD(5 0 4 3 2 1 0)

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

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

2 0 0 1 0 0 1 0 0 1 0 0

3 0 0 1 1 0 1 0 1 0 0 0

4 0 1 0 0 0 1 1 0 0 0 0

5 0 1 0 1 1 0 0 0 0 0 1

6 0 1 1 0 1 0 0 0 0 1 0

7 0 1 1 1 1 0 0 0 1 0 0

8 1 0 0 0 1 0 0 1 0 0 0

9 1 0 0 1 1 0 1 0 0 0 0

Page 18: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeNeutežnostne številske kode

število(digit)

reflektivnaBCD koda

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 1 1 0 0

6 1 0 1 1

7 1 0 1 0

8 1 0 0 1

9 1 0 0 0

reflektivna BCD koda:• zaradi zrcalnosti omogoča

preprosto določanje komplementa25 = 0010 1100

↕ ↕74 = 1010 0100

Page 19: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeNeutežnostne številske kode

število(digit)

enokoračnaGrayeva koda

0 0 0 0 0

1 0 0 0 1

2 0 0 1 1

3 0 0 1 0

4 0 1 1 0

5 0 1 1 1

6 0 1 0 1

7 0 1 0 0

8 1 1 0 0

9 1 1 0 1

število(digit)

enokoračnaGrayeva koda

10 1 1 1 1

11 1 1 1 0

12 1 0 1 0

13 1 0 1 1

14 1 0 0 1

15 1 0 0 0

Grayeva koda:• enokoračna

(sosednji števili se razlikujeta le enem od štirih bitov)

• reflektivna (če z njo kodiramo šestnajstiška ...... osmiška ...... ali štiriška števila)

Page 20: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeKodiranje kota / zasuka

število(digit)

binarnakoda

Grayevakoda

0 0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0 0

1 0 0 1

2 0 1 1

3 0 1 0

4 1 1 0

5 1 1 1

6 1 0 1

7 1 0 0

Grayev kodirnik

binarni kodirnik

0 0 0 0

0 0 1 1

0 1 0 2

0 1 1 3

1 0 0 4

1 0 1 5

1 1 0 6

1 1 1 7

0 0 0 0

0 0 0 0

0 0 1 10 0 0 00 1 0 2

0 1 1 31 1 0 61 0 0 4

1 0 1 51 0 0 41 1 0 6

1 1 1 70 1 0 20 0 0 0

0 0 0 0

0 0 1 1

0 1 1 2

0 1 0 3

1 1 0 4

1 1 1 5

1 0 1 6

1 0 0 7

0 0 0 0

0 0 0 0

0 0 1 1

0 1 1 2

0 1 0 3

1 1 0 4

1 1 1 5

1 0 1 6

1 0 0 7

0 0 0 0

Page 21: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeAlfanumerične kode – 7-bitna ASCII koda

0 NUL

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

SOH

STX

ETX

EOT

ENQ

ACK

VEL

BS

TAB

LF

VF

FF

CR

SO

SI

16 DLE

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

DC1

DC2

DC3

DC4

NAK

SYN

ETB

CAN

EM

SUB

ESC

FS

GS

RS

US

32 SP

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

48 0

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

64 @

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

80 P

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

96 `

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

112 p

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

q

r

s

t

u

v

w

x

y

z

{

|

}

~

DEL

Page 22: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeAlfanumerične kode – 7-bitna ASCII koda

osmi bit - kontrola parnosti

PAR 64 32 16 8 4 2 10 0 1 1 1 0 0 1 = 57 = "9"

1 1 0 1 0 1 1 1 = 87 = "W"0 1 1 1 1 0 1 1 = 123 = "{"

0

1 1 1 1 1 0 1 1 = NAPAKA !

1 1 0 0 0 0 0 = 64 = "@"

Page 23: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeAlfanumerične kode – Unicode (UTF-8, UTF-16)

• 8-bitni Unicode: kot ASCII, a brez kontrole paritete znotraj same kode; tako omogoča 28 = 256 različnih znakov namesto 27 = 128, vendar je napake potrebno iskati z dodatnimi kontrolnimi kodami

• 16-bitni Unicode: dve besedi (bajta) namesto ene, s tem omogoča 216 = 65536 različnih znakov, kar pokrije:- latinske črke z diakritiki: à, á,â,ã,ä,å,æ,ă,ā, ...- grške črke: α,β,γ,δ, ε, ζ,η,θ, ...- cirilske črke: б,в, г,д,ж, з,и,й,л, ...- hebrejske črke: ,א ,ד,ב ה , ,ז ...- arabske črke in številke: ؤ, ,٥,٣,ئجع ...- matematične in druge posebne znake: √,∞,∫,≈,∂,☺,☼,♀, ♦,♫, ...

Page 24: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeOdkrivanje in odpravljanje napak

odkrivanje (detekcija): ugotavljamo le, ali je prišlo do napake

odpravljanje (korekcija): določimo, kje je prišlo do napake in napačne podatke nadomestimo s pravilnimi

Page 25: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeOdkrivanje in odpravljanje napak

• z bitom za kontrolo parnosti odkrijemo vsako enojno napako (napako enega bita) v besedi (bajtu)

• če je verjetnost enojne napake majhna, je verjetnost dvojne napake (torej dveh enojnih napak hkrati) še precej manjša:

p - verjetnost, da je v posameznem bitu prišlo do napake,Pm - verjetnost, da je v posamezni besedi prišlo do m napak,

primer: p = 10-4 ⇒ P1 = 7.994*10-4, P2 = 2.798*10-7

Page 26: Univerza v Ljubljani Fakulteta za elektrotehniko

• za določitev besede, ki vsebuje napako, kontroli parnosti bitov v besedi ("horizontalni" kontroli) dodamo še "vertikalno" kontrolo parnosti po besedah

Kode in kodiranjeOdkrivanje in odpravljanje napak

kontrolni bitv besedi

besede

napaka:parnost v besedi se ne ujema

napaka: parnost v vertikali se ne ujema

bit znapačno

vrednostjo

kontrolna beseda

Page 27: Univerza v Ljubljani Fakulteta za elektrotehniko

Kode in kodiranjeOdkrivanje in odpravljanje napak

• če želimo še večjo natančnost, uvedemo dodatne kontrole (parnost po diagonali, dodatne kontrolne besede, ...)

• v "vertikalni kontroli" se namesto same parnosti uporabljajo tudi vsote po različnih modulih ali komplement takšne vsote (checksum, ciklična kontrola, ...)

• pri večji, predvsem pa spremenljivi pogostosti napak je smiselnoprilagajati tudi pogostost kontrole

• prilagodljiva kontrola parnosti je osnova odkrivanja in odpravljanja napak tudi v najučinkovitejših sodobnih kodah za prenos podatkov: turbo kode (mobilna telefonija, satelitske komunikacije), LDPC kode (WiMAX, digitalna televizija)

Page 28: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebra

Page 29: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraIzjave in Booleove spremenljivke

• vsako izjavo obravnavamo kotspremenljivko

• če je izjava resnična (pravilna), ima ta spremenljivka vrednost 1, če je neresnična (nepravilna), pa vrednost 0

• pravimo, da gre za Booleovo spremenljivko

George Boole (1815-1864)

Page 30: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraIzjave in Booleove spremenljivke

• vsako izjavo obravnavamo kotspremenljivko

• če je izjava resnična (pravilna), ima ta spremenljivka vrednost 1, če je neresnična (nepravilna), pa vrednost 0

• pravimo, da gre za Booleovo spremenljivko

naslovnica Booleove knjigeThe Mathematical Analysis of Logic

Page 31: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraIzjave in Booleove spremenljivke

tip spremenljivke angleško zaloga vrednosti

kompleksna complex vsa kompleksna števila ( )

realna real vsa realna števila ( )

celoštevilska integer vsa cela števila ( )

Booleova Boolean števili 0 in 1

Page 32: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraOperacije z izjavami

• disjunkcija = logično seštevanje = ALI (angl. OR); simboli +, V, ll

• konjunkcija = logično množenje = IN (angl. AND); simboli •, Λ, &

• negacija = logično zanikanje = NE (angl. NOT); simbola ¯, ¬

ČE dežuje ALI slaba vremenska napoved POTEM vzamem dežnik

vhodni izjavi

operacija medvhodnima izjavama

izhodna izjava

(dežuje) + (slaba vremenska napoved) = (vzamem dežnik)

Page 33: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraOperacije z izjavami

• disjunkcija = logično seštevanje = ALI (angl. OR); simboli +, V, ll

• konjunkcija = logično množenje = IN (angl. AND); simboli •, Λ, &

• negacija = logično zanikanje = NE (angl. NOT); simbola ¯, ¬

(vzamem dežnik) = (dežuje) + (slaba vremenska napoved)

ALI(+)

vzamemdežnik

dežuje

slabanapoved

pravilnostna tabela za disjunkcijo

dežuje slaba napoved dežnik

NE NE NE

NE DA DA

DA NE DA

DA DA DA

Page 34: Univerza v Ljubljani Fakulteta za elektrotehniko

x y x + y

0 0 0

0 1 1

1 0 1

1 1 1

Booleova algebraOperacije z izjavami

• disjunkcija = logično seštevanje = ALI (angl. OR); simboli +, V, ll

• konjunkcija = logično množenje = IN (angl. AND); simboli •, Λ, &

• negacija = logično zanikanje = NE (angl. NOT); simbola ¯, ¬

(vzamem dežnik) = (dežuje) + (slaba vremenska napoved)

ALI(+)

vzamemdežnik

dežuje

slabanapoved

pravilnostna tabela za disjunkcijo

Page 35: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraOperacije z izjavami

• disjunkcija = logično seštevanje = ALI (angl. OR); simboli +, V, ll

• konjunkcija = logično množenje = IN (angl. AND); simboli •, Λ, &

• negacija = logično zanikanje = NE (angl. NOT); simbola ¯, ¬

(vzamem dežnik) = ((dežuje) + (slaba vremenska napoved))

• ((peljem se z avtomobilom))

ALI(+)

vzamemdežnik

dežuje

slabanapoved IN

( •)NE(¯)

avtomobil

x y x•y0 0 0

0 1 0

1 0 0

1 1 1

x x

0 1

1 0

pravilnostni tabeli za konjunkcijo in negacijo

Page 36: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraOperacije z izjavami

• disjunkcija = logično seštevanje = ALI (angl. OR); simboli +, V, ll

• konjunkcija = logično množenje = IN (angl. AND); simboli •, Λ, &

• negacija = logično zanikanje = NE (angl. NOT); simbola ¯, ¬

vrstni red izvajanja operacij:- brez oklepajev: najprej negacija,

nato konjunkcija, na koncu disjunkcija- morebitne oklepaje upoštevamo

enako kot v običajni aritmetiki- negacija nad izrazom z več spremenljivkami

se izvaja, kot da je izraz v oklepajih- kot pri običajnem množenju

tudi tukaj znak • včasih opustimo

xz + (yz + xy)z + zx

x•z + y•z + x•y•z

x•(z + y)•z + x•y•z

x•y = (x•y)

x+y = (x+y)

xy = x•y

Page 37: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraAksiomi in teoremi

aksiomi (postulati): pravila, ki se med seboj ne izključujejo in jih privzamemo brez preverjanja

teoremi: dodatna pravila, ki jih lahko izpeljemo iz aksiomov

Huntingtonovi postulati: sistem aksiomov (eden od možnih), ki omogoča postavitev pravil za sistem operacij {+, •, ¯}

P1 x+0 = x P3 x+y = y+x

P1' x •1 = x P3' x •y = y •x

P2 x+x = 1 P4 (x+y)+z = x+(y+z)

P2' x •x = 0komplemen-tarnost P4' (x •y) •z = x • (y •z)

asociativnost

P5 x • (y+z) = x•y+x•zdistributivnost

P5' x+y•z = (x+y)•(x+z)

komutativnostnevtralnost

te lastnosti ustrezajo algebrskistrukturi (kolobarju), odtod "Booleova algebra"

Page 38: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraVennovi diagrami

• z Vennovimi diagrami grafično ponazorimo Booleove spremenljivkein operacije med njimi kot množice

• disjunkcija med Booleovima spremenljivkama je ekvivalentna unijimed množicama, konjunkcija preseku, negacija pa komplementu

konstanta 1 konstanta 0

f(x,y) = xy f(x,y) = x + y

funkcija f(x)=x

f(x,y) = xy

f(x) = x

f(x,y,z) = xy + z

x x

x y x yyxx y

z

Page 39: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraTrije načini dokazovanja teoremov

• iz aksiomov in že dokazanih teoremov• s pravilnostno tabelo (popolna indukcija)• z Vennovimi diagrami

Teorem T1: x + 1 = 1

Dokaz iz aksiomov:

x + 1 = (x + 1)•1 (uporabili smo P1': x•1 = x)

= (x + 1)•(x + x) (P2: x + x = 1)

= x + 1•x (P5': x + y•z = (x + y)•(x + z)

= x + x•1 (P3': x•y = y•x)

= x + x (P1': x•1 = x)

= 1 (P2: x + x = 1)

Page 40: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraTrije načini dokazovanja teoremov

• iz aksiomov in že dokazanih teoremov• s pravilnostno tabelo (popolna indukcija)• z Vennovimi diagrami

Teorem T1: x + 1 = 1

Dokaz s pravilnostno tabelo:

x 1 x + 1

0 1 1

1 1 1

Page 41: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraTrije načini dokazovanja teoremov

• iz aksiomov in že dokazanih teoremov• s pravilnostno tabelo (popolna indukcija)• z Vennovimi diagrami

Teorem T1: x + 1 = 1

Dokaz z Vennovimi diagrami:

konstanta 1funkcija f(x)=x

x + =

konstanta 1

Page 42: Univerza v Ljubljani Fakulteta za elektrotehniko

Booleova algebraTeoremi z eno in dvema spremenljivkama

T1 x + 1 = 1

T2 x + x = x

T3 x • x = x

T4 x • 0 = 0

T5 x = x

T6 x + x •y = x

T7 x •(x + y)= x

T8 (x + y) •y = x •yT9 x •y + y = x + y

T10 x + y + x = 1

T11 x •y•x = 0

T12 x + y = x •yT13 x •y = x + y

Page 43: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrata

Page 44: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataNačini zapisa Booleove (preklopne) funkcije

• zapis v eksplicitni (analitični) obliki:- za preproste funkcije (ena, dve, tri spremenljivke): f(A,B), f(x,y,z)- za funkcije n spremenljivk: f(x1,x2,x3,...,xn)

• zapis s pravilnostno tabelo• zapis z Vennovim diagramom• zapis s Karnaughovim diagramom (K-diagramom)

f(x,y)= xy

x y

x y f(x,y)

0 0 0

0 1 0

1 0 1

1 1 0

Page 45: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataK-diagram za funkcije dveh in treh spremenljivk

• kroge Vennovega diagrama spremenimo v pravokotnike in jih sistematično razporedimo

x2x1

x1

x2

x1x2 x1x2

x1x2 x1x2

x1 x2

x3

x1x2

x3

x1x2x3 x1x2x3 x1x2x3 x1x2x3

x1x2x3 x1x2x3 x1x2x3 x1x2x3

0 1

0

1

x2

x1

x3

x1x200 01 11 10

0

1

Page 46: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataK-diagram za funkcije štirih spremenljivk

x3x4

x1x200 01 11 10

00

01

11

10

x4

x1x2

x3

Page 47: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataK-diagram za funkcije petih spremenljivk

x4x5

x2x300 01 11 10

00

01

11

10

x1 = 0

x4x5

x2x300 01 11 10

00

01

11

10

x1 = 1

Page 48: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataK-diagram za funkcije petih spremenljivk

Page 49: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataK-diagram za funkcije šestih spremenljivk

Page 50: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinterm in maksterm

minterm funkcije f(x1,x2,x3,...,xn): konjunkcija (Booleov produkt) vseh spremenljivk funkcije, v kateri vsaka spremenljivka nastopaenkrat, bodisi v osnovni (nenegirani) ali v negirani obliki

mintermi f(x1,x2): m0=x1x2 , m1=x1x2 , m2=x1x2 in m3=x1x2

maksterm funkcije f(x1,x2,x3,...,xn): disjunkcija (Booleova vsota) vseh spremenljivk funkcije, v kateri vsaka spremenljivka nastopaenkrat, bodisi v osnovni (nenegirani) ali v negirani obliki

makstermi f(x1,x2): M0=x1+x2 , M1=x1+x2 , M2=x1+x2 in M3=x1+x2

Page 51: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinterm in maksterm v K-diagramu

• vsak minterm predstavlja eno polje K-diagrama (odtod tudi ime – člen, ki ustreza minimalni površini)

• vsak maksterm predstavlja vsa polja K-diagrama razen enega (člen, ki ustreza maks

m0 m2 m6 m4

m1 m3 m7 m5

x1x2x3 x1x2x3 x1x2x3 x1x2x3

x1x2x3 x1x2x3 x1x2x3 x1x2x3

x3 00 01 11 10

0

1

x1x2

x3 00 01 11 10

0

1

x1x2

Page 52: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinterm in maksterm v K-diagramu

• vsak minterm predstavlja eno polje K-diagrama (odtod tudi ime – člen, ki ustreza minimalni površini)

• vsak maksterm predstavlja vsa polja K-diagrama razen enega (člen, ki ustreza maksimalni površini)

• negacija vsakega minterma je eden od makstermov, negacija vsakega maksterma pa eden od mintermov:mi = M2n-1-i , Mi = m2n-1-i

m0 m2 m6 m4

m1 m3 m7 m5

x1x2x3 x1x2x3 x1x2x3 x1x2x3

x1x2x3 x1x2x3 x1x2x3 x1x2x3

x3 00 01 11 10

0

1

x1x2

x3 00 01 11 10

0

1

x1x2

M2=x1+x2+x3

Page 53: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPopolni normalni (kanonični) obliki zapisa preklopne funkcije

popolna disjunktivna normalna oblika (PDNO): vsota mintermov

popolna konjunktivna norm. oblika (PKNO): produkt makstermov

Page 54: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPretvorba iz PDNO v PKNO in obratno

f(x1,x2,x3) = m1 + m4 + m7 = M7M5M4M2M1

f(x1,x2,x3,x4) = M1M4M7M11M12M14M15

= m15 + m13 + m12 + m10 + m9 + m7 + m6 + m5 + m2

m 0 1 2 3 4 5 6 7M 7 6 5 4 3 2 1 0

M 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1438 127 5m 6 4

1515 14 13 12 11 10 9 0

Page 55: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis PDNO in PKNO iz pravilnostne tabele

• PDNO: poiščemo vse vrstice, v katerih funkcija zavzame vrednost 1; zapišemo vsoto njim ustreznih mintermov(0 - sprem. negiramo, 1 - ne negiramo)

f(x,y,z) = xyz + xyz + xyz + xyz + xyz= m1 + m2 + m3 + m6 + m7

• PKNO: poiščemo vse vrstice, v katerih funkcija zavzame vrednost 0; zapišemo produkt njim ustreznih makstermov(1 - sprem. negiramo, 0 - ne negiramo)

f(x,y,z) = (x+y+z)(x+y+z)(x+y+z)= M7M3M2

x y z f(x,y,z)

0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1

1

1

0 0 0

0 1 0

1 0 1

1 1 1

Page 56: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis PDNO in PKNO iz pravilnostne tabele

• PDNO: poiščemo vse vrstice, v katerih funkcija zavzame vrednost 1; zapišemo vsoto njim ustreznih mintermov(0 - sprem. negiramo, 1 - ne negiramo)

f(x,y,z) = xyz + xyz + xyz + xyz + xyz= m1 + m2 + m3 + m6 + m7

• PKNO: poiščemo vse vrstice, v katerih funkcija zavzame vrednost 0; zapišemo produkt njim ustreznih makstermov(1 - sprem. negiramo, 0 - ne negiramo)

f(x,y,z) = (x+y+z)(x+y+z)(x+y+z)= M7M3M2

x y z f(x,y,z)

0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1

1

1

0 0 0

0 1 0

1 0 1

1 1 1

Page 57: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis PDNO in PKNO iz K-diagrama

• PDNO: poiščemo vsa polja, v katerih je zapisana vrednost 1; zapišemo vsoto mintermov, ki jih predstavljajo ta polja

f(x1,x2,x3) = x1x2x3+x1x2x3+x1x2x3+x1x2x3= m2 + m6 + m3 + m5

• PKNO: poiščemo vsa polja, v katerih je zapisana vrednost 0; zapišemo produkt makstermov, ki jih predstavljajo komplementi teh polj

f(x1,x2,x3) =

=(x1+x2+x3)(x1+x2+x3)(x1+x2+x3)(x1+x2+x3)

= M7M3M6M0

0 1 1 0

0 1 0 1

x3 00 01 11 10

0

1

x1x2

Page 58: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataVeitchev diagram

x2

x1

m0 m2

m1 m3

x1 x10 1

0

1

m3 m1

m2 m0

m0 m2

m1 m3

x2

=x2

Veitchev diagramza f(x1,x2)

K-diagramza f(x1,x2)

ekvivalentniVeitchev diagram

Page 59: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataVeitchev diagram

x1

x1x2

Veitchev diagramza f(x1,x2,x3)

m6 m7 m3 m2

m4 m5 m1 m0

x2

x4

x3

x3

Veitchev diagramza f(x1,x2,x3,x4)

Page 60: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis preklopnih funkcij z logičnimi vrati

disjunkcija(ALI, OR)

konjunkcija(IN, AND)

negacija(NE, NOT)

mednarodni standard

IEC60617-12

ameriški standard

ANSI/IEEE91,91a

≥1 & 1

Page 61: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis preklopnih funkcij z logičnimi vrati (simbolna shema)

1

≥1

&

f(x,y,z) = xz + xyz

&

1

x

y

zf(x,y,z)

pravimo, da smo funkcijo realizirali v dveh nivojih ("dvonivojska logika")

2. nivo

1. nivo0. nivo

Page 62: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis preklopnih funkcij z logičnimi vrati (simbolna shema)

pri risanju simbolne sheme negatorje pogosto izpustimo, tako spremenljivke kot njihove negirane vrednosti pa prikažemo kot vhodne signale

f(x,y,z) = xz + xyz

≥1

&

&

z

x

y

f(x,y,z)

x

z 2. nivo

1. nivo

Page 63: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPreklopne funkcije dveh spremenljivk (operatorji)

x1 x2 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15

0 ↓ ← x1 → x2 ⊕ ↑ • ≡ x2 → x1 ← + 1

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

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

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

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

trivialne funkcije: dejansko konstante ali funkcije ene spremenljivke

osnovne funkcije: + (OR), • (AND), ↓ (NOR), ↑ (NAND)

izpeljane funkcije: ⊕ (XOR), ≡ (NXOR), dve implikaciji in dve negirani implikaciji

Page 64: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataFunkcijsko polni sistemi

• funkcijsko poln sistem: nabor preklopnih funkcij dveh spremenljivk, ki omogoča zapis poljubne preklopne funkcije

• ker ima vsaka preklopna funkcija svojo pravilnostno tabelo, iz vsake pravilnostne tabele pa lahko zapišemo funkcijo v PDNO, je sistem {+, • , ¯ } funkcijsko poln – to je elementarni FPS

• tudi sistem {+, ¯ } je funkcijsko poln, saj lahko vsako konjunkcijo nadomestimo s kombinacijo disjunkcije in negacije:

xy = x + y in odtod xy = x + y

• prav tako je {• , ¯ } funkcijsko poln sistem, saj lahko disjunkcijo nadomestimo s kombinacijo konjunkcije in negacije:

x + y = xy in odtod x + y = xy

Page 65: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataFunkcijsko polni sistemi

• Ali obstajajo funkcijsko polni sistemi z eno samo funkcijo?

• sistem {↑} je funkcijsko poln:

– negacija: x ↑ x = xx = x + x = x

– disjunkcija: (x ↑ x) ↑ (y ↑ y) = x ↑ y = xy = x + y = x + y

– konjunkcija: (x ↑ y) ↑ (x ↑ y) = (x ↑ y) = xy = xy

• tudi sistem {↓} je funkcijsko poln:

– negacija: x ↓ x = x + x = xx = x

– konjunkcija: (x ↓ x) ↓ (y ↓ y) = x ↓ y = x + y = xy

– disjunkcija: (x ↓ y) ↓ (x ↓ y) = (x ↓ y) = x + y

Page 66: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataFunkcijsko polni sistemi

• poljubno preklopno funkcijo je torej mogoče realizirati izključno z vrati NAND, pa tudi izključno z vrati NOR

• poleg sistemov {↑}, {↓}, {• , ¯ } in {+, ¯ }, za katere smo že pokazali, da so FPS, sta takšna tudi sistema {≡,+,0} in {⊕, • ,1}

• podobne dualne povezave, kot sta de Morganova teorema pri paru (• ,+), imamo tudi pri paru (↑,↓) in pri paru (≡,⊕), prislednjem paru pa sta funkciji hkrati še negaciji druga druge:

(• ,+) (↑,↓) (≡,⊕)

x + y = x •y x ↑ y = x ↓ y x ≡ y = x ⊕ y = x ⊕ y

x •y = x + y x ↓ y = x ↑ y x ⊕ y = x ≡ y = x ≡ y

Page 67: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZapis preklopnih funkcij z logičnimi vrati (nadaljevanje)

NOR NAND XOR(EXOR)

NXOR(XNOR, EQU)

IEC60617-12

ANSI/IEEE91,91a

≥1 & =1 =1

Page 68: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataDvovhodna logična vrata

≥1x

y+(x,y) = x+y

≥1↓(x,y) = x+y = x↓y

x

y

&x

y•(x,y) = x •y

&↑(x,y) = x •y = x↑y

x

y

=1x

y⊕(x,y) = x⊕y

=1x

y≡(x,y) = x⊕y = x≡y

=x

yenakovredna zapisa za

dvovhodni NXOR (EQU)

Page 69: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataTri- in večvhodna logična vrata

≥1x

y +(x,y,z) = x+y+z

z

&x

y •(x,y,z) = x •y •zz

&

↑(x,y,z)= x •y •z≠ (x↑y)↑z

x

y

z

≥1

↓(x,y,z)= x+y+z≠ (x↓y)↓z= x+y ↓ z= x+y+z

x

y

z

=1x

y ⊕(x,y,z) = x⊕y⊕z

z

=1x

y ≡(x,y,z)= x⊕y⊕z≠ (x≡y)≡zz

Page 70: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPretvorba binarnega zapisa števila v Grayevo kodo

gi = bi⊕bi+1

b3

b2

b1

g0

bn bn-1 ... b2 b1 b0 gn gn-1 ... g2 g1 g0

b0

=1

g1

=1

g2

=1

g3=b3⊕b4=b3⊕0=b3binarna Grayeva

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

... ...

1 1 1 0 1 0 0 1

1 1 1 1 1 0 0 0

Page 71: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPoenostavljanje preklopnih funkcij

• PDNO in PKNO je preprosto zapisati in pretvarjati iz druge v drugo,a za realizacijo z logičnimi vrati potrebujemo veliko število le-teh,in to kar treh različnih vrst (AND, OR, NOT)

• v praksi želimo preklopno funkcijo realizirati čim bolj preprosto: (i) s čim manjšim skupnim številom vrat in/ali(ii) s čim manj različnimi vrstami vrat

• za (i) minimiziramo funkcijo; pri PDNO uporabimo teorem

xy + xy = x(y + y) = x

v pomoč pa nam je tudi K-diagram

• za (ii) prevedemo operatorje; FPS {+, • , ¯ } nadomestimo z bolj primernim za realizacijo obravnavane funkcije: { • , ¯ }, {+, ¯ }, {↑}ali {↓}, včasih tudi {⊕, • ,1} (npr. pretvorba binarno-Gray) ali {≡,+,0}

Page 72: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinimizacija

• sosednja minterma: minterma (konjunktivna izraza), ki se razlikujeta po negaciji natanko ene spremenljivke

• sosednja minterma lahko skrajšamo v konjunktivni izraz, ki vsebuje eno spremenljivko manj:

x1x2x3 + x1x2x3 = x1x3(x2 + x2) = x1x3

x1x2x3x4 + x1x2x3x4 = x1x2x4(x3 + x3) = x1x2x4

• če krajši izraz še vedno vsebuje člena, ki se razlikujeta po eni sami negaciji, lahko postopek ponovimo:

x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3

= x1x3(x2 + x2) + x1x3(x2 + x2) = x1x3 + x1x3

= x1(x3 + x3) = x1

Page 73: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataSosednost v K-diagramu

• sosednji polji, ki obevsebujeta enici, sta sosednja minterma:

• tudi preko robov:

1 1 1 1

1 1

1 1

• sosednost prekorobov je jasno razvidna, če dia-gramu dodamo še dve njegovi kopiji:

1 1 1 1

1 1

1 1

1 1 1 1

1 1

1 1

1 1 1 1

1 1

1 1

x3x4

x1x200 01 11 10

00

01

11

10

x3x4

x1x200 01 11 10

00

01

11

10

00

01

11

10

x3x4

x1x200 01 11 10

Page 74: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinimizacija s K-diagramom

• glavni vsebovalnik (GV): 2k sosednjih mintermov v skupini polj, ki je pravokotne oblike; tudi minterm brez sosedov je GV (k=0)

• ključni minterm (KM): minterm, vsebovan le v enem GV• potrebni GV (PGV): GV, ki vsebuje

vsaj en KM• postopek minimizacije:

1. funkcijo zapišemo s K-diagramom,1 1 1 1

1 1

1 1

x3x4

x1x200 01 11 10

00

01

11

10

Page 75: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinimizacija s K-diagramom

• glavni vsebovalnik (GV): 2k sosednjih mintermov v skupini polj, ki je pravokotne oblike; tudi minterm brez sosedov je GV (k=0)

• ključni minterm (KM): minterm, vsebovan le v enem GV• potrebni GV (PGV): GV, ki vsebuje

vsaj en KM• postopek minimizacije:

1. funkcijo zapišemo s K-diagramom,2. označimo vse GV,

1 1 1 1

1 1

1 1

x3x4

x1x200 01 11 10

00

01

11

10

Page 76: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinimizacija s K-diagramom

• glavni vsebovalnik (GV): 2k sosednjih mintermov v skupini polj, ki je pravokotne oblike; tudi minterm brez sosedov je GV (k=0)

• ključni minterm (KM): minterm, vsebovan le v enem GV• potrebni GV (PGV): GV, ki vsebuje

vsaj en KM• postopek minimizacije:

1. funkcijo zapišemo s K-diagramom,2. označimo vse GV,3. označimo vse KM,

1 1 1 1

1 1

1 1

x3x4

x1x200 01 11 10

00

01

11

10

Page 77: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataMinimizacija s K-diagramom

• glavni vsebovalnik (GV): 2k sosednjih mintermov v skupini polj, ki je pravokotne oblike; tudi minterm brez sosedov je GV (k=0)

• ključni minterm (KM): minterm, vsebovan le v enem GV• potrebni GV (PGV): GV, ki vsebuje

vsaj en KM• postopek minimizacije:

1. funkcijo zapišemo s K-diagramom,2. označimo vse GV,3. označimo vse KM,4. označimo vse PGV in zapišemo

vsoto členov, ki jih pokrivajo; to je minimalna disjunktivnanormalna oblika (MDNO)preklopne funkcije

1 1 1 1

1 1

1 1

x3x4

x1x200 01 11 10

00

01

11

10

f(x1,x2,x3,x4) = x1x2x3 + x1x2x4

+ x1x2x3 + x1x2x4

Page 78: Univerza v Ljubljani Fakulteta za elektrotehniko

• za prevedbo iz DNO uporabimo naslednji formuli (teorema):

x1x2x3...xk + y1y2y3...ym + ... + z1z2z3...zn

= x1x2x3...xk + y1y2y3...ym + ... + z1z2z3...zn

= x1x2x3...xk • y1y2y3...ym • ... • z1z2z3...zn

= ↑(x1x2x3...xk , y1y2y3...ym , ... , z1z2z3...zn )

= ↑(↑(x1,x2,x3,...,xk), ↑(y1,y2,y3,...,ym), ↑(z1,z2,z3,...,zn))

in x = x ↑ x

• primer: f(x1,...,x4) = x1x2x3 + x1x3x4 + x1x2x3 + x1x3x4

= ↑(↑(x1,x2,x3),↑(x1,x3,x4),↑(x1,x2,x3),↑(x1,x3,x4))= ↑(↑(x1,x2,↑(x3,x3)),↑(x1,x3,↑(x4,x4)),

↑(↑(x1,x1),x2,x3),↑(↑(x1,x1),↑(x3,x3),↑(x4,x4)))

Preklopne funkcije in logična vrataPrevedba operatorjev iz {+, • , ¯ } v {↑}

Page 79: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPosebne funkcije

linearne funkcije:f(x1,x2,...,xn) = a0 ⊕ a1x1 ⊕ a2x2 ⊕ ... ⊕ anxn , ai ∈ {0,1}

pozitivno monotone funkcije:x1≤ y1, x2≤ y2, ..., xn≤ yn ⇒ f(x1,x2,...,xn) ≤ f(y1,y2,...,yn)

lokalno simetrične funkcije glede na xi in xk:f(x1,x2,...,xi,...,xk,...,xn) = f(x1,x2,...,xk,...,xi,...,xn) (pišemo xi ~xk)

globalno simetrične funkcije: simetrične glede na vsak par {xi,xk},t.j. za vsak par {xi,xk} velja xi ~xkzapis: Sa,b,... (x1,x2,...xn) – funkcija, ki v PDNO vsebuje vse minterme z a nenegiranimi spremenljivkami, vse minterme z b nenegiranimi spremenljivkami, ...

S3(x1,x2,x3) = x1x2x3 S1(x1,x2,x3) = x1x2x3 +x1x2x3 +x1x2x3

S0,3(x1,x2,x3,x4) = x1x2x3x4 +x1x2x3x4 +x1x2x3x4 +x1x2x3x4 +x1x2x3x4

Page 80: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataPosebne funkcije

pragovna funkcija: f(x1,x2,...,xn), za katero obstajata takšna množica celih števil{w1,w2,...,wn} in takšno celo število P, da velja

številom w1,w2,...,wn pravimo uteži, številu P pa prag funkcije.

pragovni element:skupina logičnih vrat, katere izhod f je pragovna funkcija vhodov {x1,x2,...,xn}

Page 81: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataŽivčna celica (nevron)

trije nevroni v človeških možganih© Photo Researchers, 2006

jedro

soma

dendrit aksonski končič

akson

• dve stanji: aktivno (oddaja signal) in pasivno (ne oddaja)

• povezave med nevroni so sinapse; na eni strani je končič aksona, na drugi dendrit

• prevajanje vselej v smeri dendrit → soma → akson

• sinapse ekscitacijske (signal na aksonu - signal na dendritu) ali inhibicijske (signal "negirajo")

• soma glede na signale z dendritov in glede na svoj prag pošlje živčni signal naprej v akson (aktivira nevron) ali ne

Page 82: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataFormalni nevron – pragovni model nevrona

• formalni nevron je pragovni element, s katerim lahko približno opišemo ali simuliramo obnašanje dejanskega biološkega nevrona

• izberemo število sinaps (n), njihovo naravo (torej množico {w1,w2,...,wn}, kjer za ekscitacijske sinapse izberemo wi > 0, za inhibicijske wi < 0) in prag aktivacije nevrona (P)

• zapišemo pravilnostno tabelo, iz nje DNO in odtod realizacijo z logičnimi vrati – torej realizacijo pragovnega elementa

x1 x2 x3 Σwixi y0 0 0 0 00 0 1 3 00 1 0 -1 00 1 1 2 01 0 0 2 01 0 1 5 11 1 0 1 01 1 1 4 1

Page 83: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataZakasnitve v sistemih logičnih vrat in hazard

• pri dosedanji obravnavi smo privzeli, da se logična vrata na spremembo vrednosti na (enem ali več) vhodih odzovejo brez zakasnitve – da se torej sočasno s spremembo x oziroma x1, x2, ..., xn spremeni tudi f(x) oziroma f(x1, x2, ..., xn)

• pri dejanskih logičnih vratih pa so ne glede na tehnološko izvedbo vselej prisotne zakasnitve

• prehodni pojav: časovni potek vrednosti izhodne in notranjihspremenljivk v strukturah, sestavljenih iz logičnih vrat, od trenutka, ko se spremeni vrednost na vhodu, do trenutka, ko se vrednost na izhodu ustali na pravilni vrednosti

• hazard: možnost, da ob spremembi na vhodu pride do začasne spremembe izhoda v vrednost, ki je glede na vrednosti na vhodih nepravilna

Page 84: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataStatični in dinamični hazard

• statični hazard: možnost, da ob spremembi vhoda, ob kateri se pravilna vrednost izhoda ne spremeni, pride do začasne spremembe izhoda na nepravilno vrednost in nato do vrnitve na pravilno vrednost

• dinamični hazard: možnost, da ob spremembi vhoda, ob kateri se pravilna vrednost izhoda spremeni, ta sprememba sicer nastopi, nato pa pride do začasnega preskoka nazaj na nepravilno vrednost in do ponovne vrnitve na pravilno vrednost; preskokov pred ustalitvijo na pravilni vrednosti je lahko tudi več

Page 85: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataStatični hazard

≥1

&

1

x

z

y

f

&a

b

c

• sprememba (x,y,z)iz (1,1,1) v (1,1,0):

1

0

1

0

1

0

1

0

1

0

1

0

1

0

x(t)

y(t)

z(t)

a(t)

b(t)

c(t)

f(t)

f(x,y,z) = xz + yz

f(1,1,1) = 1•0 + 1•1 = 1

f(1,1,0) = 1•1 + 1•0 = 1

Page 86: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataStatični hazard

x

z

y

• K-diagram vezja:

f(x,y,z) = xz + yz

f(1,1,1) = 1•0 + 1•1 = 1

f(1,1,0) = 1•1 + 1•0 = 1

1 1

1 1

z 00 01 11 10

0

1

xy

• hazard odpravimo tako, da dodamo člen, ki pokrije problematični prehod:

f(x,y,z) = xz + yz + xy

≥1

&

1f

&

Page 87: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataStatični hazard

x

z

y

• K-diagram vezja:

1 1

1 1

z 00 01 11 10

0

1

xy

• hazard odpravimo tako, da dodamo člen, ki pokrije problematični prehod:

f(x,y,z) = xz + yz + xy

&

1

&

&

f≥1

Page 88: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataDinamični hazard

Page 89: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataTehnološke izvedbe preklopnih funkcij

• preklopne funkcije izvedemo z električno krmiljenimi stikali- od začetka 1930-ih: releji- od sredine 1940-ih: elektronke (hitrejše, brez gibljivih delov)- od začetka 1950-ih: tranzistorji (še hitrejši, manjši in cenejši)- od začetka 1960-ih: integrirana vezja (vsi tranzistorji, ostali

elementi logičnih vrat in povezave med njimi združeni v skupno strukturo iz trdnih polprevodnih snovi)

Page 90: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataTehnološke izvedbe preklopnih funkcij

• od sredine 1950-ih: RTL tehnologija (Resistor-Transistor Logic) – iz bipolarnih tranzistorjev in uporov;

• od konca 1950-ih: DTL (Diode-Transistor Logic) – iz bipolarnih tranzistorjev, diod in uporov;

• od začetka 1960-ih: TTL (Transistor-Transistor Logic) – iz bipolarnih tranzistorjev in uporov; v integriranih vezjih hitro izrinila starejši tehnologiji

• od sredine 1960-ih: NMOS / PMOS (n-channel /p-channel Metal-Oxide Semiconductor) – iz unipolarnih tranzistorjev (MOS FET – MOS Field-Effect Transistor)

• od konca 1970-ih: CMOS (Complementary MOS) – iz parov NMOS in PMOS tranzistorjev z zrcalno simetričnimi karakteristikami; danes že skoraj povsem izrinila TTL

Page 91: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataIzvedba preklopnih funkcij v tehnologiji CMOS

p-kanalni MOSFETtranzistor (PMOS)

UGS<0in IDS<0

UDS<0

sicer IDS=0

n-kanalni MOSFETtranzistor (NMOS)

UGS>0in IDS>0

UDS>0

sicer IDS=0

komplementarnavezava (CMOS)

x T1 T2 f(x)0 V skl raz 5 V5 V raz skl 0 V

Page 92: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataIzvedba preklopnih funkcij v tehnologiji CMOS

x T1 T2 f(x)0 S R 11 R S 0

NOT (negator)v izvedbi CMOS

x y T1 T2 T3 T4 f(x,y)0 0 S R R S 10 1 S R S R 11 0 R S R S 11 1 R S S R 0

NAND vizvedbi CMOS

AND v izvedbi CMOS

Page 93: Univerza v Ljubljani Fakulteta za elektrotehniko

Preklopne funkcije in logična vrataStarejše tehnološke izvedbe preklopnih funkcij

vrata NAND vRTL tehnologiji

(prototip)

vrata NAND vDTL tehnologiji

(prototip)

vrata NAND vTTL tehnologiji

(prototip) vrata NANDv TTL tehnologiji(primer dejanske

izvedbe)

Page 94: Univerza v Ljubljani Fakulteta za elektrotehniko

SN74HC02Nrazporeditev logičnih vrat NOR v integriranem vezju SN74HC02N(štirikratni dvovhodni NOR proizvajalca Texas Instruments z izvedbo logičnih vrat v tehnologiji CMOS in z izvedbo ohišja v tehnologiji DIP)

Preklopne funkcije in logična vrataIntegrirana vezja

Page 95: Univerza v Ljubljani Fakulteta za elektrotehniko

SN74HC02N

Preklopne funkcije in logična vrataPoimenovanje integriranih vezij

1. predpona (neobvezna), 1- do 3-mestna črkovna: proizvajalec

2. predpona, 2-mestna številska: pogoji za pravilno delovanje

1. del korena, 1- do 3-mesten črkovni:tehnološka izvedba logičnih vrat

2. del korena, 2- ali 3-mesten številski: funkcija vezja

pripona (neobvezna), 1- do 3-mestna črkovna:tehnološka izvedba ohišja

Page 96: Univerza v Ljubljani Fakulteta za elektrotehniko

SN74HC02N

Preklopne funkcije in logična vrataPoimenovanje integriranih vezij

1. predpona (neobvezna), 1- do 3-mestna črkovna: proizvajalec

2. predpona, 2-mestna številska: pogoji za pravilno delovanje

AD Analog DevicesDP National SemiconductorF,FC FairchildMC MotorolaPA IntelSA Signetics

SC,SE PhilipsSN Texas Instruments... ...

54 zunanja temperaturaod –55°C do +125°C("vojaška izvedba")

74 zunanja temperaturaod –40°C do +85°C("civilna izvedba");

nekaj nižji maksimalni dovoljeni tokovi kot

pri "54"

Page 97: Univerza v Ljubljani Fakulteta za elektrotehniko

SN74HC02N

Preklopne funkcije in logična vrataPoimenovanje integriranih vezij

1. del korena, 1- do 3-mesten črkovni: tehnološka izvedba logičnih vrat

koda LS AS ALS F HC HCT AHC AHCT ALVC AUCtehnologija TTL TTL TTL TTL CMOS CMOS CMOS CMOS CMOS CMOSnapetost (V) 5 5 5 5 5 5 5 5 3.3 1.8vrata f(x,y) = x y :• zakasnitev (ns) 9 1.7 4 3 9 10 3.7 5 2.5 2.0• izh. tok pri f = 0(mA) 8 20 8 20 0.02 0.02 0.05 0.05 0.02 0.01• izh. tok pri f = 1(mA) 0.4 2 0.4 1 0.02 0.02 0.05 0.05 0.02 0.01• poraba moči (mW) 2 8 1.2 4 0.01a) 0.01a) 0.03a) 0.03a) 0.01a) 0.01a)

0.55/MHzb)

0.38/MHzb)

0.06/MHzb)

0.07/MHzb)

0.54/MHzb)

0.05/MHzb)

a) v stacionarnem stanjub) pri periodičnem preklapljanju

Page 98: Univerza v Ljubljani Fakulteta za elektrotehniko

2. del korena, 2- ali 3-mesten številski: funkcija vezja

SN74HC02N

Preklopne funkcije in logična vrataPoimenovanje integriranih vezij

00 4x 2-vhodni NAND02 4x 2-vhodni NOR08 4x 2-vhodni AND10 3x 3-vhodni NAND11 3x 3-vhodni AND20 2x 4-vhodni NAND21 2x 4-vhodni AND27 3x 3-vhodni NOR32 4x 2-vhodni OR86 4x 2-vhodni XOR... ...

147 BCD kodirnik 10/4 s prioriteto148 binarni kodirnik 8/3 s prioriteto150 16-vhodni multipleksor155 2x 4-izhodni demultipleksor85 4-bitni primerjalnik velikosti283 4-bitni paralelni seštevalnik382 4-bitna 8-operacijska ALU73 2x spominska celica JK79 2x spominska celica D91 8-bitni pomikalni register... ...

Page 99: Univerza v Ljubljani Fakulteta za elektrotehniko

SN74HC02N

Preklopne funkcije in logična vrataPoimenovanje integriranih vezij

pripona (neobvezna), 1- do 3-mestna črkovna:tehnološka izvedba ohišja

J,N Y F,FK D,DB,W,PW ...DIP

(dual in-line package)

SIP (single in-line

package)

PGA(pin grid array)

SMD(surface-mount

device)

...

Page 100: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezja

Page 101: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaGradniki nizke, srednje in visoke stopnje integracije

• kombinacijsko vezje (angl. combinational logic circuit): vezje, katerega izhodi so Booleove funkcije Booleovih vhodnihspremenljivk

• kombinacijska vezja so sestavljena iz logičnih vrat (AND, OR, XOR, NAND, NOR, NXOR, ...), ki smo jih spoznali v prejšnjem poglavju

• integrirana vezja, ki vsebujejo do 10 logičnih vrat (t.j. nekaj deset tranzistorjev), uvrščamo med gradnike nizke stopnje integracije (angl. Small Scale Integration (SSI) circuits)

Page 102: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaGradniki nizke, srednje in visoke stopnje integracije

• v tem poglavju bomo spoznali tipične gradnike srednje stopnje integracije (angl. Medium Scale Integration (MSI)), ki vsebujejo do 100 logičnih vrat:- kodirnike in dekodirnike,- multipleksorje in demultipleksorje,- primerjalnike in seštevalnike,- aritmetično-logične enote (ALU)

• v prihodnjem poglavju pa bomo govorili o tipičnih gradnikih visoke stopnje integracije (angl. Large Scale Integration (LSI)), ki vsebujejo do 10000 vrat; danes so tipični predstavniki preprosta programirljiva vezja (PROM, EPROM, EEPROM, PAL, PLA, ...)

Page 103: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaGradniki nizke, srednje in visoke stopnje integracije

• vezja SSI so bila vrhunec tehnologije od konca 1950-ih do sredine 1960-ih, vezja MSI od konca 1960-ih do začetka 1970-ih, vezja LSI, med katerimi so bili že prvi mikroprocesorji in bralno-pisalni pomnilniki, pa od sredine do konca 1970-ih

• v 1980-ih so sledila vezja zelo visoke stopnje integracije (angl. Very Large Scale Integration (VLSI) – od 10000 do 106 vrat), v 1990-ih pa ultra visoke stopnje integracije (angl. Ultra Large Scale Integration (ULSI) – več kot 106 vrat, redkeje uporabljano)

• danes imajo nekatera vezja že več kot 1010 vrat, okrajšave SSI, MSI, LSI oz. VLSI pa uporabljamo le še kot sinonime za vezja z nekaj, nekaj deset, nekaj sto do nekaj tisoč oz. več logičnimi vrati, saj dobesedni pomen npr. pojma "zelo visoka stopnja integracije" ne odraža več trenutnega stanja tehnologije

Page 104: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaVezja z več vhodi in izhodi

• logična vrata – kombinacijskovezje z dvema ali več vhodiin enim izhodom:

• kodirniki in dekodirniki –tudi izhodov je več:

• multipleksorji in demultipleksorji –dve vrsti vhodov, podatkovniin izbirni (naslovni):

f

dvovhodna vrata

fn

večvhodna vrata

2n/n n2n

kodirnik

n/2nn 2n

dekodirnik

multipleksorn

2n M

n

2n

demultipleksor

D

Page 105: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaKodirniki

• kodirnik (angl. encoder) na izhodih generira kodo (binarno, BCD, ...) naslova (številke) vhoda, na katerem je enica

• najpreprostejši primer: binarni kodirnik 4/2to je nepopolna pravilnostnatabela; vezje na njeni osnovibo delovalo pravilno le, če bo enica vedno na natanko enemvhodu; v tem primeru velja

y1=x2+x3 ; y0=x1+x3

• delovanje pri preostalih vhodnih kombinacijah običajno določimo tako, da vhodom pripišemo prioriteto; tako dobimo kodirnik s prioriteto(angl. priority encoder)

x0 x1 x2 x3 y1 y0

1 0 0 0 0 00 1 0 0 0 10 0 1 0 1 00 0 0 1 1 1

x0 x1 x2 x3 y1 y001 0 0 0 0 001 1 0 0 0 101

01 1 0 1 0

01

01

01 1 1 1

0 ali 1 (ni pomembno)najvišja prioriteta

4/2

kodirnik 4/2

x0x1x2x3

y1

y0

Page 106: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaKodirniki

x0 x1 x2 x3 y1 y001 0 0 0 0 001 1 0 0 0 101

01 1 0 1 0

01

01

01 1 1 1

y1(x0,x1,x2,x3)=x2+x3 y0(x0,x1,x2,x3)=x1x2+x3

x2x3

x0x100 01 11 10

00

01

11

10

11

11

11

1

1

1

1

1

1 1

11

1

1

x2x3

x0x100 01 11 10

00

01

11

10

1

1

1

11

Page 107: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaKodirniki

= 4/2

kodirnik 4/2s prioriteto

x0x1x2x3

y1

y0

y1(x0,x1,x2,x3)=x2+x3

y0(x0,x1,x2,x3)=x1x2+x3

x0

1

x1

x2

x3

y0

&

≥1

y1

≥1

Page 108: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaKodirniki

Primera standardnih kodirnikov:• binarni kodirnik 8/3

(n=3, izhod v binarni kodi)

binarni kodirnik 8/3SN74LS148NS

(Texas Instruments)

• BCD kodirnik 10/4(n=4, izhod v BCD kodi, zato le 10 namesto 16 vhodov)

BCD kodirnik 10/4SN74LS147FK

(Texas Instruments)

10/4

kodirnik 10/4(simbolna shema)

kodirnik 8/3(simbolna shema)

8/3

Page 109: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDekodirniki

y0=x1x0

y1=x1x0

y2=x1x0

y3=x1x0

x1 x0 y0 y1 y2 y3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

• dekodirnik (angl. decoder) generira enico na tistem izhodu, katerega naslov (številka) ustrezavrednosti kode (binarne, BCD, ...) na vhodu

• najpreprostejši primer: binarni dekodirnik 2/4 tokrat je pravilnostna tabelapopolna, določanje prioritetezato ni potrebno, iz tabele pa hitro razberemo:

2/4

dekodirnik 2/4

y0y1y2y3

x1

x0

Page 110: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDekodirniki

=

y0

&

&y2

&y1

&y3

1

1

x1

x0

y0=x1x0

y1=x1x0

y2=x1x0

y3=x1x0

2/4

dekodirnik 2/4

y0y1y2y3

x1

x0

Page 111: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDekodirniki

Primera standardnih dekodirnikov:• dekodirnik 4/10

(iz BCD kode)

BCD dekodirnik 4/1074HC42

(Philips Semiconductors)

• dekodirnik 4/16(iz binarne kode)

binarni dekodirnik 4/16DM74154N

(National Semiconductor)

negacija izhoda pove, da dekodirnik na aktivnem izhodu generira ničlo,na neaktivnih pa enice

dekodirnik 4/16(simbolna shema)

4/164/10

dekodirnik 4/10(simbolna shema)

Page 112: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaPozitivna in negativna logika

• če v integriranem vezju logični enici ustreza višja, logični ničli pa nižja napetost (npr. 1 = +5V, 0 = 0V), pravimo, da gre za vezje s pozitivno logiko

• če v integriranem vezju logični enici ustreza nižja, logični ničli pa višja napetost (npr. 1 = 0V, 0 = +5V), pa gre za vezje znegativno logiko

• poglavitni vzrok za uporabo negativne logike je možnost gradnje vezja z manjšim številom vrat in/ali s hitrejšimi vrati

• prototipa kodirnika 4/2 in dekodirnika 2/4, ki smo ju obravnavali, smo zapisali v DNO in izvedli z vrati AND in OR; dejanske izvedbe pretežno uporabljajo vrata NAND in/ali NOR, ki tudi pogosto delujejo hitreje v negativni logiki kot v pozitivni

Page 113: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

• multipleksor (angl. multiplexer, MUX) ima 2n podatkovnihin n izbirnih vhodov ter en izhod

• na izhodu je vrednost tistega podatkovnega vhoda (Booleove spremenljivke), katerega naslov je zapisan na izbirnih vhodih

2n-vhodni multipleksor

n

2n M

s2 s1 s0 y0 0 0 d0

0 0 1 d1

0 1 0 d2

0 1 1 d3

1 0 0 d4

1 0 1 d5

1 1 0 d6

1 1 1 d7

8-vhodni multipleksor

d0

M

d7

s2 s1s0

y

y = s2s1s0d0 + s2s1s0d1

+ s2s1s0d2 + s2s1s0d3

+ s2s1s0d4 + s2s1s0d5

+ s2s1s0d6 + s2s1s0d7

= m0d0+m1d1+...+m7d7

vektor mintermovizbirnih vhodov

vektor podat-kovnih vhodov

skalarni produkt(vsota produktov)

izhod(skalar)

y = m • d

Page 114: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

• multipleksor (angl. multiplexer, MUX) ima 2n podatkovnihin n izbirnih vhodov ter en izhod

• na izhodu je vrednost tistega podatkovnega vhoda (Booleove spremenljivke), katerega naslov je zapisan na izbirnih vhodih

2n-vhodni multipleksor

n

2n M

s2 s1 s0 y0 0 0 d0

0 0 1 d1

0 1 0 d2

0 1 1 d3

1 0 0 d4

1 0 1 d5

1 1 0 d6

1 1 1 d7

8-vhodni multipleksor

d0

M

d7

s2 s1s0

y

y = s2s1s0d0 + s2s1s0d1

+ s2s1s0d2 + s2s1s0d3

+ s2s1s0d4 + s2s1s0d5

+ s2s1s0d6 + s2s1s0d7

= m0d0+m1d1+...+m7d7

vektorska enačba

multipleksorja

y = m • d

Page 115: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

s1 s0 y0 0 d0

0 1 d1

1 0 d2

1 1 d3

y = s1s0d0 + s1s0d1 + s1s0d2 + s1s0d3 (primerno za izvedbo AND-OR)

= s1s0d0 + s1s0d1 + s1s0d2 + s1s0d3

= s1s0d0 • s1s0d1 • s1s0d2 • s1s0d3

= ( (s1, s0, d0), (s1, s0, d1), (s1, s0, d2), (s1, s0, d3))(primerno za izvedbo NAND-NAND)

• za vajo izrišite simbolne sheme 4-vhodnega multipleksorja:– v izvedbi z negatorji ter vrati AND in OR– v izvedbi z negatorji ter vrati NAND

Page 116: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaUporaba multipleksorja za realizacijo preklopne funkcije

• z multipleksorjem lahko realiziramo poljubno preklopno funkcijo:– trivialna realizacija: za y= f(x1,x2,...,xn) uporabimo 2n-vhodni

multipleksor; na izbirne vhode pripeljemo spremenljivke, na podatkovne pa konstante iz izhodnega stolpca pravilnostne tabele

x1 x2 x3 y0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

10101101

M

x1x2x3

y

Page 117: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaUporaba multipleksorja za realizacijo preklopne funkcije

• z multipleksorjem lahko realiziramo poljubno preklopno funkcijo:– netrivialna realizacija: uporabimo manjši multipleksor;

na izbirne vhode pripeljemo nekaj spremenljivk, na podatkovnepa preostale spremenljivke, njihove funkcije in/ali konstante

y = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3

= x1x2x3 + x1x2x3 + x1x2(x3+x3) + x1x2x3

= x1x2(x3) + x1x2(x3) + x1x2(1) + x1x2(x3)

x1 x2 x3 y0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 11 0 1 11 1 0 01 1 1 1

x3

M

x3

x1 x2

yx3

1

Page 118: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

Primera standardnih multipleksorjev:• 16-vhodni multipleksor

16-vhodni MUXDM74150N(National

Semiconductor)

• dvojni 8-vhodni multipleksor(dva 8-vhodna, skupni izbirni vh.)

dvojni 8-vhodni MUX 100363-CPK

(NationalSemiconductor)

16-vhodni multipleksor(simbolnashema)

M

dvojni 8-vhodni multipleksor

(simbolna shema)

M

M

Page 119: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

• dvojni multipleksor je najpreprostejši primer splošnejšega vektorskega multipleksorja; navadnemu multipleksorju v takšni terminologiji pravimo skalarni multipleksor

2n-vhodniskalarni

multipleksor

snsn-1 s0

M

d0

yd1

d2n-1

snsn-1 s0

M

d0,0

y0

d0,1

d0,2n-1

k 2n-vhodnih skalarnih multipleksorjevs skupnimi izbirnimi vhodi

M

d1,0

y1

d1,1

d1,2n-1

snsn-1 s0

M

dk,0

yk

dk,1

dk,2n-1

snsn-1 s0

Page 120: Univerza v Ljubljani Fakulteta za elektrotehniko

M

dk,0

yk

dk,1

dk,2n-1

M

d1,0

y1

d1,1

d1,2n-1

Kombinacijska vezjaMultipleksorji

• dvojni multipleksor je najpreprostejši primer splošnejšega vektorskega multipleksorja; navadnemu multipleksorju v takšni terminologiji pravimo skalarni multipleksor

2n-vhodniskalarni

multipleksor

snsn-1 s0

M

d0

yd1

d2n-1

snsn-1 s0

M

d0,0

y0

d0,1

d0,2n-1

k×2n-vhodnivektorski multipleksor

sn sn-1... s0 y0 y1

... yk

0 0 ... 0 d0,0 d1,0... dk,0

0 0 ... 1 d0,1 d1,1... dk,1

0 0 ... 0 d0,2 d1,2... dk,2

......

......

......

......

1 1 ... 1 d0,2n-1

d1,2n-1

... dk,2n-1

k-bitniizhod

k-bitnivhodi

Page 121: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

• dvojni multipleksor je najpreprostejši primer splošnejšega vektorskega multipleksorja; navadnemu multipleksorju v takšni terminologiji pravimo skalarni multipleksor

sn sn-1... s0 y0 y1

... yk

0 0 ... 0 d0,0 d1,0... dk,0

0 0 ... 1 d0,1 d1,1... dk,1

0 0 ... 0 d0,2 d1,2... dk,2

......

......

......

......

1 1 ... 1 d0,2n-1

d1,2n-1

... dk,2n-1

y0 = m0d0,0+m1d0,1+...+m2n-1d0,2n-1

y1 = m0d1,0+m1d1,1+...+m2n-1d1,2n-1

y2 = m0d2,0+m1d2,1+...+m2n-1d2,2n-1

yk = m0dk,0+m1dk,1+...+m2n-1dk,2n-1

vektor mintermovizbirnih vhodov

matrika podatkovnih vhodov

skalarni produkt

vektorizhodov

y = m • D

Page 122: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaMultipleksorji

• dvojni multipleksor je najpreprostejši primer splošnejšega vektorskega multipleksorja; navadnemu multipleksorju v takšni terminologiji pravimo skalarni multipleksor

sn sn-1... s0 y0 y1

... yk

0 0 ... 0 d0,0 d1,0... dk,0

0 0 ... 1 d0,1 d1,1... dk,1

0 0 ... 0 d0,2 d1,2... dk,2

......

......

......

......

1 1 ... 1 d0,2n-1

d1,2n-1

... dk,2n-1

y0 = m0d0,0+m1d0,1+...+m2n-1d0,2n-1

y1 = m0d1,0+m1d1,1+...+m2n-1d1,2n-1

y2 = m0d2,0+m1d2,1+...+m2n-1d2,2n-1

yk = m0dk,0+m1dk,1+...+m2n-1dk,2n-1

matrična enačba

vektorskega multipleksorja

y = m • D

Page 123: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDemultipleksorji

• demultipleksor (angl. demultiplexer) ima en podatkovni in n izbirnih vhodov ter 2n izhodov

• vrednost podatkovnega vhoda se prenese na tisti izhod, katerega naslov je zapisan na izbirnih vhodih

2n-izhodni demultipleksor

2n

n

D

8-izhodni demultipleksor

s2 s1s0

y0

D

y7

d

y0 = s2s1s0d = m0dy1 = s2s1s0d = m1d

y7 = s2s1s0d = m7d

transponirani vektor min-termov izbirnih vhodov

podatkovni vhod (skalar)

vsota produktov(skalarni produkt)

vektorizhodov

s2 s1 s0 y0 y1... y7

0 0 0 d 0 ... 00 0 1 0 d ... 00 1 0 0 0 ... 00 1 1 0 0 ... 01 0 0 0 0 ... 01 0 1 0 0 ... 01 1 0 0 0 ... 01 1 1 0 0 ... d

y = mT • d

Page 124: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDemultipleksorji

• demultipleksor (angl. demultiplexer) ima en podatkovni in n izbirnih vhodov ter 2n izhodov

• vrednost podatkovnega vhoda se prenese na tisti izhod, katerega naslov je zapisan na izbirnih vhodih

2n-izhodni demultipleksor

2n

n

D

8-izhodni demultipleksor

s2 s1s0

y0

D

y7

d

y0 = s2s1s0d = m0dy1 = s2s1s0d = m1d

y7 = s2s1s0d = m7d

s2 s1 s0 y0 y1... y7

0 0 0 d 0 ... 00 0 1 0 d ... 00 1 0 0 0 ... 00 1 1 0 0 ... 01 0 0 0 0 ... 01 0 1 0 0 ... 01 1 0 0 0 ... 01 1 1 0 0 ... d

vektorska enačba (skalarnega)

demultipleksorja

y = mT • d

Page 125: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDemultipleksorji

• če 2n-izhodnemu demultipleksorju na podatkovni vhod vežemo enico, dobimo dekodirnik n/2n

x1 x0 y0 y1 y2 y3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

dekodirnik 2/4 spravilnostno tabelo

2/4y0

y3

y1y2

x1

x0

D

x0x1

d

y0

y3

y1y2

x1 x0 y0 y1 y2 y3

0 0 d 0 0 00 1 0 d 0 01 0 0 0 d 01 1 0 0 0 d

4-izh. demultipleksor spravilnostno tabelo

n/2nn 2n

2n

n

D1

=

Page 126: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaDemultipleksorji

• več enakih demultipleksorjev s skupnimi izbirnimi vhodi lahko obravnavamo kot vektorski demultipleksor; navadni demulti-pleksor je v takšni terminologiji skalarni demultipleksor

2n-izhodniskalarni

demultipleksor

snsn-1 s0

D

y0

dy1

y2n-1

D

yk,0

dk

yk,1

yk,2n-1

D

y1,0

d1

y1,1

y1,2n-1

k×2n-izhodnivektorski demultipleksor

snsn-1 s0

D

y0,0

d0

y0,1

y0,2n-1matrična enačba

vektorskega demultipleksorja

Y = mT • d

k-bitnivhod

k-bitniizhodi

Page 127: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaPrimerjalniki (komparatorji)

a0 =1

=1a1

=1a2

=1a3

b0

b1

b2

b3

&

• n-bitni primerjalnik enakosti (angl. identitity comparator) ima dva n-bitna (= vektorska) vhoda in en izhod, ki pove, ali sta števili na obeh vhodih enaki (t.j. ali so vsi istoležni biti obeh vhodov enaki):

A

BA=B

4-bitni primerjalnik

enakosti(simbolnashema)

izvedba 4-bitnega primerjalnika enakostiz vrati NXOR in AND

8-bitni primerjalnikenakosti MC74AC521

(Motorola)

Page 128: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaPrimerjalniki (komparatorji)

• n-bitni primerjalnik velikosti (angl. magnitude comparator) ima dva n-bitna vhoda in tri izhode, ki odražajo razmerje velikosti števil na vhodih:

(A<B) = a3b3

+ (a3⊕b3)a2b2

+ (a3⊕b3)(a2⊕b2)a1b1

+ (a3⊕b3)(a2⊕b2)(a1⊕b1)a0b0

(A=B) =

(a3⊕b3)(a2⊕b2)(a1⊕b1)(a0⊕b1)

A

BA=BA<B

A>B

4-bitni primerjalnik

velikosti(simbolnashema)

4-bitni primerjalnikvelikosti DM74LS85

(Natl. Semiconductor)(A>B) = (A<B)(A=B)

Page 129: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• n-bitni seštevalnik (angl. adder) ima dva n-bitna vhoda, na katera privedemo binarna zapisa dveh n-bitnih števil, na izhodu pa dobimo binarni zapis njune vsote in podatek, ali je pri seštetju prišlo do prenosa z najvišjega bita

• z 1-bitnim polovičnim seštevalnikom (angl. half adder, HA) dobimo 1-bitno vsoto (s) in podatek o prenosu na višji bit (c)

a b c s0 0

0

0

1

1

0

1

10

1 0

0

0

1

1

HA

polovični 1-bitni

seštevalnik

a

b

s

c

c = abs = a⊕b

Page 130: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• 1-bitni polni seštevalnik (angl. full adder, FA) upošteva še morebitni prenos z nižjega bita (cvh)

• s kaskadno vezavo FA dobimo n-bitni serijski(zaporedni) seštevalnik (angl. ripple adder)

a b cvh cizh s001

0 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 0

0

1

000100

11

1 11

000

1

cizh= ab + (a⊕b)cvh

s = a⊕b⊕ cvh

polni 1-bitni seštevalnik

a

bs

cvh

cizh

FA

ci = aibi + (ai⊕bi)ci-1

si = ai⊕bi⊕ ci-1

enačbe in zgradban-bitnega serijskega seštevalnika

a0

b0

s0FA

a1

b1

s1

an-1

bn-1

sn-1

FA

c0

cn-2

c1

cvh

cizh

FA

vhod za prenos pri prvem FA v kaskadi in izhod za prenos pri zadnjem omogočata

združevanje takšnih seštevalnikov v večje

Page 131: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• v serijskem seštevalniku za izračun s1 in c1potrebujemo c0, za izračun s2 in c2potrebujemo c1, ...,

• ker ima odziv vsakega FA zakasnitev, se pravilne vrednosti s0, s1, ..., sn-1 ne pojavijo naenkrat, temveč druga za drugo

• celotni zakasnilni čas serijskega seštevalnika je tako odvisen od njegove velikosti (t.j. od n)

a0

b0

s0FA

a1

b1

s1

an-1

bn-1

sn-1

FA

c0

cn-2

c1

cvh

cizh

FA

ci = aibi + (ai⊕bi)ci-1

si = ai⊕bi⊕ ci-1

enačbe in zgradban-bitnega serijskega seštevalnika

Page 132: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• paralelni (vzporedni) seštevalnik (angl. carry look-ahead adder) vse prenose izračuna samo iz vhodnih podatkov:

označimo cvh = c-1, Gi = aibi in Pi = ai⊕bi; tedaj jec0 = G0+ c-1P0 s0 = P0⊕c-1

c1 = G1+ c0P1 = G1+G0P1+ c-1P0P1 s1 = P1⊕c0

c2 = G2+ c1P2 = G2+G1P2+G0P1P2+ c-1P0P1P2 s2 = P2⊕c1

1

-10 1 0

=k kk

k k j i ij i j i

c G G P c P−

= = + =

⎛ ⎞+ +⎜ ⎟

⎝ ⎠∑ ∏ ∏ sk = Pk⊕ck–1

Page 133: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• paralelni seštevalnik takozgradimo iz treh delov:– modul PG določi vse Pi in Gi– modul prenosov določi vse ci– modul vsote določi vse si

1

-10 1 0

=k kk

k k j i ij i j i

c G G P c P−

= = + =

⎛ ⎞+ +⎜ ⎟

⎝ ⎠∑ ∏ ∏

sk = Pk⊕ck–1

modulPG

a0

b0

a1

b1

an-1

bn-1

P0

P1

Pn-1

G0

G1

Gn-1

modulpren.

cn-1=cizh

c0c1

cn-2

c-1=cvh

zgradba n-bitnega paralelnega seštevalnika

modulvsote

s0s1

sn-1

4-bitni paralelni seštevalnik DM74LS283 (Fairchild)

Page 134: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• za odštevanje uporabimo binarni zapis števil s predznakom: najpomembnejši bit predstavlja predznak (1-negativno, 0-pozitivno), število –a pa je dvojiški komplement števila a, ki ga dobimo tako, da v binarnem zapisu števila a zamenjamo vse enice z ničlami in obratno, nato pa rezultatu prištejemo 1

• na ta način z n biti lahko zapišemo števila od –2n-1+1 do 2n-1–1

-3 -2 -1 0 1 2 3

101 110 111 000 001 010 011

3-bitni zapis števil s predznakom

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

1001 0011 01100100 01011010 1011

7

1100 1101 1110 1111 0000 0001 0010 0111

4-bitni zapis števil s predznakom

Page 135: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaSeštevalniki

• razliko (b–a) izračunamo tako, da številu b prištejemo dvojiški komplement a, morebitni prenos z najvišjega bita pa zanemarimo

• izračun razlik (7–3) ter (2–3) v 4-bitnem zapisu:

0111 (= +7) 0010 (= +2)+1101 (= -3) +1101 (= -3)10100 01111

⇓ ⇓0100 (= +4) 1111 (= -1)

• če imata a in b enaka predznaka in sta znotraj območja izbranega n-bitnega zapisa, je opisani izračun razlike vselej pravilen

• v bolj splošnem primeru, ko imata a in b različna predznaka, pa lahko pride do preliva, t.j. dejanska vrednost (b–a) preseže območje n-bitnega zapisa, dobljeni rezultat pa je zato napačen

Page 136: Univerza v Ljubljani Fakulteta za elektrotehniko

Kombinacijska vezjaAritmetično-logična enota (ALU)

• aritmetično-logična enota (angl. arithmetic logic unit, ALU) je večnamensko vezje, ki izvaja logične in aritmetične operacije

• na podatkovne vhode dovedemo Booleove spremenljivke ali binarni zapis števil, z izbirnimi vhodi pa določimo operacijo, ki bo izvedena

S2 S1 S0 izhod0 0 0 0

B minus AA minus BA plus B

A⊕BA+BA · B

1

0 0 10 1 00 1 11 0 01 0 11 1 01 1 14-bitna 8-operacijska

ALU SN74LS382-N(Texas Instruments)

seznam operacijSN74LS382-N

4-bitna 32-operacijskaALU 74LS181 (Signetics)

Page 137: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezja

Page 138: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivost

• v kombinacijskih vezjih, ki smo jih obravnavali v prejšnjem poglavju, so povezave med logičnimi vrati vnaprej določene in nespremenljive – pravimo, da vezja niso programirljiva

• v tem poglavju pa bomo spoznali nekaj osnovnih programirljivih vezij (angl. Programmable Logic Device, PLD), v katerih nekatere povezave v notranjosti določa uporabnik:- programirljivi bralni pomnilnik (PROM),- izbrisljivi PROM (EPROM), - električno izbrisljivi PROM (EEPROM),- EEPROM s hitrim izbrisom (Flash)- programirljivo logično mrežo (PLA),- programirljivo logično polje (PAL)

Page 139: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaPomnilna mreža

• pomnilna mreža je struktura, ki v notranjosti hrani urejeno N-terico M-bitnih besed, z zunanjostjo pa jo povezuje N 1-bitnih vhodov inM 1-bitnih izhodov, ki delujejo kot en M-bitni (vektorski) izhod

• na izhodu dobimo tisto besedo, na vhodu katere je enica

M–1 j 1 0x0 k0,M-1

... k0,j... k0,1 k0,0 0– 1

x1 k1,M-1... k1,j

... k1,1 k1,0 1– 1...

......

......

......

xi ki,M-1... ki,j

... ki,1 ki,0 i– 1...

......

......

......

x2n-1 k2n-1,M-1... k2n-1,j

... k2n-1,1 k2n-1,0 2n–1yM-1 ...

yj

...y1

y0

Page 140: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaPomnilna mreža

• pomnilna mreža je struktura, ki v notranjosti hrani urejeno N-terico M-bitnih besed, z zunanjostjo pa jo povezuje N 1-bitnih vhodov inM 1-bitnih izhodov, ki delujejo kot en M-bitni (vektorski) izhod

• na izhodu dobimo tisto besedo, na vhodu katere je enica

M–1 j 1 00 k0,M-1

... k0,j... k0,1 k0,0 0– 1

0 k1,M-1... k1,j

... k1,1 k1,0 1– 1...

......

......

......

1 ki,M-1... ki,j

... ki,1 ki,0 i– 1...

......

......

......

0 k2n-1,M-1... k2n-1,j

... k2n-1,1 k2n-1,0 2n–1

ki,M-1 ...

ki,j ...

ki,1

ki,0

Page 141: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaPomnilna mreža

• pomnilna mreža je struktura, ki v notranjosti hrani urejeno N-terico M-bitnih besed, z zunanjostjo pa jo povezuje N 1-bitnih vhodov inM 1-bitnih izhodov, ki delujejo kot en M-bitni (vektorski) izhod

• na izhodu dobimo tisto besedo, na vhodu katere je enica• vhodno-izhodne povezave

mreže torej podaja izraz

ali matričnoy = x • K

kjer ima lahko le eden od vhodov xi vrednost 1

1

,0

N

j i i ji

y x k

M–1 j 1 0x0 k0,M-1

... k0,j... k0,1 k0,0 0– 1

x1 k1,M-1... k1,j

... k1,1 k1,0 1– 1...

......

......

......

xi ki,M-1... ki,j

... ki,1 ki,0 i– 1...

......

......

......

x2n-1 k2n-1,M-1... k2n-1,j

... k2n-1,1 k2n-1,0 2n–1yM-1 ...

yj

...y1

y0

Page 142: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaPomnilna mreža

• spomnimo se, kako deluje kodirnik: če je na i-tem vhodu enica, na preostalih pa ničle, dobimo na izhodu M-bitni vektor, ki predstavlja M-bitni zapis kode (binarne, BCD, ...) za število i

x0 x1 x2 x3 x4 x5 x6 x7 y2 y1 y0

1 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 00 0 0 1 0 0 0 0 0 1 10 0 0 0 1 0 0 0 1 0 00 0 0 0 0 1 0 0 1 0 10 0 0 0 0 0 1 0 1 1 00 0 0 0 0 0 0 1 1 1 1

binarni kodirnik 8/3(M=3) in njegova

pravilnostna tabela

8/3

Page 143: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaPomnilna mreža

• tudi pomnilno mrežo lahko obravnavamo kot kodirnik, le da izhodni vektor {ki,0, ki,1, ..., ki,M-1} v splošnem ni ena standardnih kod za število i, temveč poljubno zaporedje M bitov, ki smo ga zapisali (programirali) v i-to vrstico mreže

• zagotoviti moramo še, da bo v vhodnem vektorju xenica le v i-ti vrstici, ki jo želimo brati

• vhode mreže povežemo na izhode dekodirnika iz binarne kode, na vhode le-tega pa pripeljemo binarni zapis števila i

M–1 j 1 00 k0,M-1

... k0,j... k0,1 k0,0 0– 1

0 k1,M-1... k1,j

... k1,1 k1,0 1– 1...

......

......

......

1 ki,M-1... ki,j

... ki,1 ki,0 i– 1...

......

......

......

0 k2n-1,M-1... k2n-1,j

... k2n-1,1 k2n-1,0 2n–1

ki,M-1 ...

ki,j ...

ki,1

ki,0

Page 144: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaBralni pomnilnik (ROM)

• iz binarnega dekodirnika in splošnega kodirnika smo sestavilibralni pomnilnik (angl. Read-Only Memory, ROM):

x0=0 k0,M-1... k0,j

... k0,1 k0,0

x1=0 k1,M-1... k1,j

... k1,1 k1,0.iiiii.iiiii.iiiii

......

......

......

xi=1 ki,M-1... ki,j

... ki,1 ki,0.iiiii.iiiii.iiiii

......

......

......

x2n-1=0 k2n-1,M-1... k2n-1,j

... k2n-1,1 k2n-1,0

yM-1

=ki,M-1

... yj

=ki,j

... y1

=ki,1

y0

=ki,0

binarnizapis

števila i(naslov

i-te vrstice)

dekodirnik

kodirnik (pomnilna mreža)

bralni pomnilnik (ROM)

an-1...a1 a0

binarna vrednost, shranjena v i-ti vrstici kodirnika

Page 145: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivi bralni pomnilnik (PROM)

≥1

y3

1 1

a1 a0

&

&

&

&

≥1

y2

≥1

y1

≥1

y0

dekodirnik(matrika AND)

kodirnik (matrika OR)

povezave v matrikiAND so stalne (niso programirljive)

povezave v matrikiOR določa uporabnik (so programirljive)

Page 146: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaUporaba PROM za shranjevanje in branje podatkov

≥1

y3

1 1

a1 a0

&

&

&

&

≥1

y2

≥1

y1

≥1

y0

dekodirnik

kodirnik

2) na vhod vpišemo binarni naslov vrstice, ki jo želimo prebrati

1) s prekinjanjem povezav v pomnilni mreži (kodirniku) vanjo vpisujemo ničle, preostale povezave so enice

= 1 0 1 0

= 0 0 0 0

= 1 1 0 1

= 0 1 0 1

3) na izhodu preberemovsebino naslovljene vrstice

Page 147: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaUporaba PROM za realizacijo preklopnih funkcij

≥1

y3

1 1

a1 a0

&

&

&

&

≥1

y2

≥1

y1

≥1

y0

dekodirnik

y3(a1,a0) = a1a0 + a1a0y2(a1,a0) = a1a0 + a1a0y1(a1,a0) = a1a0y0(a1,a0) = a1a0 + a1a0kodirnik

Page 148: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaIzvedbe pomnilnika PROM

• prvotni programirljivi bralni pomnilnik (angl. Programmable Read-Only Memory, PROM) je enkrat električno zapisljiv: pove-zave so varovalke, ki jih prežgemo z visoko napetostjo (10-30 V); z vsako prežgano varovalko izbrišemo enega od mintermov v eni od izhodnih funkcij yj(ak,ak-1,...,a1,a0)

• v izbrisljivem PROM (angl. Erasable PROM, EPROM): povezave so MOS tranzistorji, v katerih z visoko napetostjo (10 V) ustvarimotrajno neprevodno plast; ob izpostavitvi ultravijolični svetlobi (valovna dolžina ~235 nm) se ta plast poruši, kar omogoči ponovno programiranje

Page 149: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaIzvedbe pomnilnika PROM

• v električno izbrisljivem PROM (angl. Electrically Erasable PROM, EEPROM ali E2PROM) izvedemo brisanje z izpostavitvijo tranzistorjev v pomnilni mreži napetosti nasprotne polaritete od tiste, ki jo uporabljamo za pisanje; pisanje, branje in brisanje potekajo korakoma po zaporednih besedah (byte-ih) pomnilnika

• EEPROM s hitrim izbrisom (Flash) ima besede organizirane v strani (po 512 - 4096 besed), strani pa v bloke (32-128 strani); zaradi višje zmogljivosti postopoma izrinjajo starejše izvedbe;

- v različici NOR Flash poteka pisanje in branje po besedah, brisanje pa po blokih (t.j. izbriše se celoten blok naenkrat);primer uporabe je vezje BIOS v osebnih računalnikih;

- v različici NAND Flash poteka pisanje in branje po straneh, brisanje pa po blokih; primer uporabe je zunanji pomnilnik s priključkom v formatu USB ("USB ključ")

Page 150: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaEPROM in EEPROM

32 KB (256 Kbit) EPROM M27C256B(ST Microelectronics)

8 KB (64 Kbit) EEPROM AT28C64B(Atmel)

Page 151: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaFlash

128 GB MLC/e-MMC NAND FlashEEPROM THGBM2T0DBFBAIF

(Toshiba)

2 GB (16 Gbit) SLC NAND Flash EEPROM TC58NVG4S2EBA00

(Toshiba)

Page 152: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaFlash

klasični trdi disk zmagnetnim zapisom

(angl. hard disk drive - HDD)

trdi "disk" izpomnilnika Flash

(angl. solid-state drive - SSD)

SSD:+ nekajkrat hitrejši+ porabi manj moči+ brez gibljivih delov– dražji (zaenkrat)– manjša pomnilna gostota (-II-)

Page 153: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljiva logična mreža (PLA)

• v vseh naštetih izvedbah vezij PROM obsežnost dekodirnika eksponentno narašča s številom vhodnih spremenljivk

• za realizacijo obsežnejših preklopnih funkcij zato potrebujemo velik in posledično drag bralni pomnilnik

• programirljiva logična mreža (angl. Programmable Logic Array, PLA) je bolj prilagodljiva od bralnega pomnilnika, saj je programirljiv tudi dekodirni del pomnilnika, t.j. matrika AND

• zaradi večje prilagodljivosti je vezje PLA precej manjše od vezja PROM, ki bi ga potrebovali za realizacijo iste preklopne funkcije

Page 154: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljiva logična mreža (PLA)

≥1

y3

1 1

a1 a0

&

&

&

&

≥1

y2

≥1

y1

≥1

y0

programirljiv dekodirnik(matrika AND)

programirljiv kodirnik (matrika OR)1 1

a3 a2

Page 155: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljiva logična mreža (PLA)

≥1

y3

1 1

a1 a0

&

&

&

&

≥1

y2

≥1

y1

≥1

y0

programirljiv dekodirnik(matrika AND)

programirljiv kodirnik (matrika OR)1 1

a3 a2

y3(a3,a2,a1,a0) = a3a0

y0(a3,a2,a1,a0) = a2a1+a2a0

y2(a3,a2,a1,a0) = a2a1+a2a1a0+ a2a0y1(a3,a2,a1,a0) = a2a1a0

Page 156: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljiva logična mreža (PLA)

16x48x8 PLA vezje 82S100[16 vhodov, 48 vrat AND, 8 vrat OR / izhodov;

2x16x48=1536 varovalk v matriki AND in 48x8=384 v matriki OR](Signetics)

Page 157: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivo logično polje (PAL)

• vezja PLA so sicer bolj prilagodljiva, a hkrati počasnejša od vezij PROM, saj so zakasnitve signala na programirljivih povezavah praviloma daljše kot na nespremenljivih, zato se danes le še redko uporabljajo

• v programirljivem logičnem polju (angl. Programmable Array Logic, PAL) je programirljiva le matrika AND, matrika OR pa je nespremenljiva; takšno vezje deluje hitreje kot PLA, a je manj fleksibilno

Page 158: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivo logično polje (PAL)

≥1

y

1 1

a1 a0

&

&

&

&

programirljiv dekodirnik(matrika AND)

nespremenljivkodirnik(matrika OR)

1 1

a3 a2

Page 159: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivo logično polje (PAL)

≥1

y

1 1

a1 a0

&

&

&

&

programirljiv dekodirnik(matrika AND)

nespremenljivkodirnik(matrika OR)

1 1

a3 a2

y(a3,a2,a1,a0) = a3a2a1+a3a2a0

+ a3a0+ a3a1a0

Page 160: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivo logično polje (PAL)

16x64x8 PAL vezje PAL16L8[od 10 do 16 vhodov, 8x8=64 vrat AND, od 8 do 2 izhodov;

2x16x64=2048 varovalk v matriki AND](MMI)

Page 161: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva kombinacijska vezjaProgramirljivo logično polje (PAL)

• v prvotnih vezjih PLA in PAL je programiranje tako kot v PROM potekalo s prežiganjem varovalk in je bilo izvedljivo le enkrat;

• postopoma so jih pričela nadomeščati vezja, ki vsebujejo tudi spominske celice; to pri podobni velikosti vezja omogoča večjo prilagodljivost

• v t.i. generičnih logičnih poljih (angl. Generic Array Logic, GAL)so povezave dekodirnika programirljive električno (kot v vezjihEEPROM), zato je mogoče vsako povezavo izbrisati in/ali ponovno vzpostaviti; novejša vezja PAL in GAL vsebujejo na nekaterih izhodih pomnilne mreže tudi spominske celice in jih lahko uporabljamo tudi za izvajanje sekvenčnih funkcij, zato bomo ta vezja obravnavali med programirljivimi sekvenčnimi vezji

Page 162: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanjedigitalnih struktur

Page 163: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturPregled programskih orodij

• minimizator (angl. minimizer) je programsko orodje za avtomatizirano poenostavljanje preklopnih funkcij

• z urejevalnikom shematskih prikazov (angl. schematic editor) izrišemo simbolno shemo vezja

• simulator vezij (angl. circuit simulator) omogoča simulacijo in analizo delovanja načrtovanega vezja

• v strojno opisnem jeziku (angl. hardware description language, HDL) opišemo gradnike vezja in povezave med njimi v obliki, ki omogoča realizacijo vezja s programirljivo makrostrukturo

• sintetizator geometrije (angl. layout designer) izdela načrt postavitve elementov in povezav na nivoju tiskanega vezja (postavitev integriranih vezij in ostalih komponent na tiskani plošči, angl. PCB layout) ali na nivoju integriranega vezja (postavitev tranzistorjev in ostalih elementov v čipu, angl. IC layout)

Page 164: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturMinimizatorji

• minimizatorji omogočajo poenostavljanje preklopnih funkcij z različnimi metodami minimizacije (Quine-McCluskeyev algoritem, Petrickova metoda, algoritem Espresso, ...), prevedbe operatorjev (AND-OR ↔ OR-AND ↔ XOR ↔ NAND ↔ NOR ...) in realizacije funkcij (z MUX, PROM, PAL ...):- Logic Friday* (http://sontrak.com/download_lf.aspx)- Minilog* (http://www.brothersoft.com/minilog-download-26547.html)- ...

• mnoga programska orodja za simulacijo in sintezo že vsebujejo algoritme za minimizacijo in prevedbo funkcij; če imamo na razpolago takšno orodje, ne potrebujemo ločenega minimizatorja

* brezplačen

Page 165: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturMinimizatorji: Logic Friday

določitev vhodnih in izhodnih spremenljivk

Page 166: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturMinimizatorji: Logic Friday

vnos podatkov v pravilnostno tabelo

Page 167: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturMinimizatorji: Logic Friday

(1) minimizacija v DNO(2) realizacija F1 z MUX, prevedba F2 v NOR

(1)

(2)

Page 168: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturUrejevalniki shematskih prikazov

• v urejevalniku shematskih prikazov izrišemo simbolno shemo vezja, ki ga načrtujemo, kar je uporabno za dokumentiranje, predstavlja pa tudi izhodišče tako za simulacijo in analizo delovanja vezja kot za končno sintezo geometrije vezja:- CadSoft Eagle* (http://www.cadsoftusa.com/download.htm.en)- gEDA*(prej gschem, http://geda.seul.org/wiki/geda:download)- NI Multisim (prej Electr. Workbench; http://www.ni.com/multisim/)- OrCAD Capture (http://www.cadence.com/orcad/)- TARGET 3001!* (http://server.ibfriedrich.com/wiki/ibfwikien/) - ...

• paketi za simulacijo in sintezo geometrije vezij imajo pogosto že vgrajene tudi tovrstne urejevalnike

* obstaja tudi brezplačna verzija

Page 169: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturUrejevalniki shematskih prikazov: OrCAD Capture

razporedimo logična vrata vezja, v katerem smo v poglavju Preklopne funkcije in logična vrata (str. 46) ugotovili pojav dinamičnega hazarda

Page 170: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturUrejevalniki shematskih prikazov: OrCAD Capture

vrata povežemo med seboj v preučevano vezje

Page 171: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturUrejevalniki shematskih prikazov: OrCAD Capture

dodamo še vhodne signale

Page 172: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSimulatorji vezij

• s simulatorjem vezij preučujemo časovne poteke notranjih in izhodnih spremeljivk (preklopnih funkcij) v vezjih:- Logisim* (http://ozark.hendrix.edu/~burch/logisim/)- OrCAD PSpice A/D (http://www.cadence.com/orcad/)- Simulo* (http://simulo.codeplex.com/)- Synopsis HSPICE (http://www.hspice.com)- Virtuoso Spectre

(http://www.cadence.com/products/cic/spectre_circuit/)- ...

• profesionalne izvedbe vsebujejo knjižnice s podatki o dejanskih integriranih vezjih različnih proizvajalcev in tehnologij, kar omogoča analizo zakasnitev, padcev napetosti, tokov, porabe moči ipd.

* brezplačen

Page 173: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSimulatorji vezij: OrCAD PSpice A/D

v programu OrCAD Capture poimenujemo spremenljivke (x1,x2,...A,B,...), dodamo sonde za njihov zajem, nato pa s klikom na ikono aktiviramo simulacijo

Page 174: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSimulatorji vezij: OrCAD PSpice A/D

s tem se zažene program OrCAD PSpice A/D, ki izvede simulacijo delovanja vezja in prikaže časovne poteke spremenljivk, ki jih zajemamo s sondami

Page 175: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturStrojno opisni jeziki

• strojno opisni jeziki (HDL), med katerimi sta danes najbolj razširjena VHDL in Verilog, omogočajo realizacijo najrazličnejših digitalnih vezij s programirljivimi makrostrukturami (CPLD, FPGA);

• takšna realizacija poteka v treh korakih:- v urejevalniku besedila (angl. text editor) napišemo kodo (program), ki v sintaksi izbranega HDL opisuje gradnike vezja in povezave med njimi,- s prevajalnikom (angl. HDL compiler) kodo prevedemo v splošno obliko, primerno za programiranje makrostruktur- s sintetizatorjem (angl. HDL synthesizer) priredimo prevedeno kodo specifični makrostrukturi, v kateri nato s programatorjem(angl. CPLD/FPGA programmer) vzpostavimo povezave, ki zagotovijo njeno delovanje skladno z opisom delovanja vezja v HDL

Page 176: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturVHDL

(1) pisanje in (2) prevajanje kode VHDL v orodju VisualHDL

(1)

(2)

Page 177: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturProgramatorji

univerzalni programator vezij, ki omogoča tudi programiranje makrostruktur

Page 178: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSintetizatorji geometrije vezij

• s sintetizatorjem geometrije vezja izdelamo načrt postavitve elementov in povezav na nivoju tiskanega vezja:- Allegro PCB (http://www.cadence.com/products/pcb/pcb_design/)- Altium Designer (http://www.altium.com/products/altium-designer/)- CadSoft Eagle* (http://www.cadsoftusa.com/download.htm.en)- OrCAD PCB Designer (prej OrCAD Layout,

http://www.cadence.com/products/orcad/orcad_pcb_designer/)- ...

• ali na nivoju integriranega vezja:- Encounter (http://www.cadence.com/products/di/edi_system/)- MagmaHydra/Talus (http://www.magma-da.com/products-solutions/)- Synopsis Galaxy Custom Designer LE- ...

* obstaja tudi brezplačna verzija

Page 179: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSintetizatorji geometrije tiskanih vezij: OrCAD PCB Designer

sinteza geometrije tiskanega vezja matične plošče osebnega računalnika

Page 180: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSintetizatorji geometrije tiskanih vezij: OrCAD PCB Designer

sinteza geometrije tiskanega vezja matične plošče osebnega računalnika (povečava)

Page 181: Univerza v Ljubljani Fakulteta za elektrotehniko

Računalniško podprto načrtovanje dig. strukturSintetizatorji geometrije integriranih vezij: Encounter

sinteza geometrije integriranega vezja

Page 182: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezja

Page 183: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaKombinacijsko in sekvenčno izvajanje nalog

• s kombinacijskimi vezji izvajamo naloge, katerih rezultat (izhod) je v vsakem trenutku enolično določen s trenutno vrednostjo končnega števila dejavnikov (vhodov)

• za izvedbo naloge te dejavnike in rezultat izrazimo z Booleovimi spremenljivkami, zapišemo pravilnostno tabelo, odtod preklopno funkcijo in iz nje zgradimo vezje

• za izvajanje nalog, katerih rezultat ni odvisen le od trenutne, temveč tudi od preteklih vrednosti vhodov, pa potrebujemo še način shranjevanja podatkov

• če je zgodovina vhodov, ki vpliva na rezultat,časovno omejena, lahko tudi takšno nalogo načeloma opišemo s pravilnostno tabelo, vkateri navedemo izhodne vrednosti pri vseh možnih zaporedjih vrednosti vhodov

x1 x2 y

0 0 00 1 01 0 11 1 0

t-n... t-1 t0 t0

x1 x2... x1 x2 x1 x2 y

0 0 ... 0 0 0 0 00 0 ... 0 0 0 1 1... ... ... ... ... ... ... ...

Page 184: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaKombinacijsko in sekvenčno izvajanje nalog

• enice funkcije y so mintermi ...

y(t0) = x1(t-n)x2(t-n)...x1(t-1)x2(t-1)x1(t0)x2(t0)+ ...

• celotna funkcija y pa je njihova vsota:

• kombinacijsko vezje, ki izvaja takšno funkcijo,lahko zgradimo z n zakasnilnimi elementi:

∆t ∆tx1(t-1) x1(t-2)

∆tx1(t-n)

. . .x1(t0)

∆t ∆tx2(t-1) x2(t-2)

∆tx2(t-n)

. . .x2(t0)

&. . .

. . .

y(t0)

≥1

• za splošno nalogo takšne vrste, kjer na rezultat vpliva dolga zgodovina vhodov, je tak pristop zelo okoren; če zgodovina ni omejena, pa je sploh neizvedljiv

t-n... t-1 t0 t0

x1 x2... x1 x2 x1 x2 y

0 0 ... 0 0 0 0 00 0 ... 0 0 0 1 1... ... ... ... ... ... ... ...

Page 185: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpremenljivke stanja, stanja in sekvenčna vezja

• v praksi se običajno omejimo na naloge, katerih rezultat je moč zapisati kot funkcijo končnega števila trenutnih vrednosti vhodov in končnega števila vrednosti notranjih spremenljivk – spremenljivk stanja; celotnemu naboru spremenljivk stanja pravimo stanje

• sekvenčno vezje (angl. sequential logic circuit): vezje, katerega naslednje stanje in vrednosti na izhodih so enolično določeni s trenutnim stanjem in trenutnimi vrednostmi na vhodih

• ker je število spremenljivk stanja končno, te spremenljivke pa so Booleove, je končno tudi število možnih stanj; če je spremenljivk stanja n, je torej število možnih stanj 2n

• v sinhronskem sekvenčnem vezju (angl. synchronous sequen-tial circuit) vse strukture spremenijo stanje sočasno; to dosežemo s proženjem, ki je lahko aperiodično ali periodično (npr. s pulzi ure)

Page 186: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: primitivna spominska celica

• sekvenčna vezja temeljijo na gradnikih, ki jim omogočajo pomnjenje (hranjenje) podatkov o prejšnjem stanju – spominskih celicah

• najpreprostejšo, t.i. primitivno spominsko celico, zgradimo iz dveh zaporedno vezanih negatorjev:

• če na vhod pripeljemo vrednost x,se po eni zakasnitvi na izhodu prvega negatorja pojavi x, po šeeni pa na izhodu drugega negatorja x

x x x1 1

Page 187: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: primitivna spominska celica

• sekvenčna vezja temeljijo na gradnikih, ki jim omogočajo pomnjenje (hranjenje) podatkov o prejšnjem stanju – spominskih celicah

• najpreprostejšo, t.i. primitivno spominsko celico, zgradimo iz dveh zaporedno vezanih negatorjev:

• če na vhod pripeljemo vrednost x,se po eni zakasnitvi na izhodu prvega negatorja pojavi x, po šeeni pa na izhodu drugega negatorja x

• če stikalo preklopimo, s tem ustvarimo povratno zvezo, ki bo odtlej v spominski celici vzdrževala zapisani vrednosti x in x

• če želimo v spominsko celico shraniti novo vrednost spremenljivke x, ponovno preklopimo stikalo na vhod in nato nazaj v povratno zvezo

x x1 1

Page 188: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: primitivna spominska celica

• za zapisovanje v primitivno spominsko celico potrebujemo stikalo• v digitalni izvedbi je to dvovhodni multipleksor:

x zapisovanje trenutne vrednosti x

pomnjenje zapisane vrednosti x

x x x1 1

=

x x x1 1M

s

s = 0: zapisovanje trenutne vrednosti x

s = 1: pomnjenje zapisane vrednosti x

Page 189: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: primitivna spominska celica

• ker velja x = x x = x x, lahko namesto iz para zaporednih negatorjev primitivno spominsko celico z enakim delovanjem zgradimo tudi iz para zaporednih vrat NOR ali para zaporednih vrat NAND:

x zapisovanje trenutne vrednosti x

pomnjenje zapisane vrednosti x

x x x1 1 x x x≥1 ≥1

=

x x x& &

=

Page 190: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirana zapaha SR in SR

• izvedbi s parom dvovhodnih vrat omogočata predelavo v obliko, vkateri stikala (multipleksorja) ne potrebujemo več, saj za zapiso-vanje in pomnjenje uporabimo po en vhod vsakih vrat:

& &

1 1≥1 ≥1 ≥1 ≥1S R

nesinhronizirani zapah SR

& &S R

nesinhronizirani zapah SR

Page 191: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirana zapaha SR in SR

• ker sta S in R vhoda zapaha SR, S in R pa vhoda zapaha SR, vezji teh spominskih celic običajno prikažemo nekoliko drugače:

& &S R

nesinhronizirani zapah SR

≥1 ≥1S R

nesinhronizirani zapah SR

=

≥1

≥1

S

R

&

&

S

R

=

Page 192: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirana zapaha SR in SR

• da bi bili ti spominski celici uporabni, potrebujemo še dostop do vrednosti, ki jih hranita – vrednosti na izhodih njunih vrat

• kot bomo spoznali v nadaljevanju, sta ti vrednosti (tako kot v primitivni spominski celici) pri pravilnem delovanju oziroma uporabi spominske celice negaciji druga druge; običajno ju označujemo s simboloma Q in Q (to sta spremenljivki stanja spominske celice)

nesinhronizirani zapah SRnesinhronizirani zapah SR

≥1

≥1

&

&

S

R

S

R

Q

Q

Q

Q

Page 193: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirani zapah SR

≥1

≥1

S

R

Q

Q

S R Q* Q*

0 0 Q Q0 1 0 11 0 1 01 1 0 0

1) pri R=0 postavimo S=1:- ker velja x 1 = 0, bo po eni zakasnitvi na

izhodu zgornjih vrat vrednost Q=0, ki se bo prenesla tudi na zgornji vhod spodnjih vrat;

- ker je 0 0 = 1, bo po drugi zakasnitvi na izhodu spodnjih vrat vrednost Q=1, ki se bo prenesla tudi na spodnji vhod zgornjih vrat;

- ker je 1 1 = 0, to ne bo spremenilo vrednostina izhodu zgornjih vrat in celica bo ostala v stanju {Q=1, Q=0}

2) ohranimo R=0 in vrnimo S na vrednost 0:- na izhodu zgornjih vrat imamo 0 1 = 0, na iz-

hodu spodnjih pa 0 0 = 1; celica torej ostaja v vzpostavljenem stanju {Q=1, Q=0}

naslednji stanji Q in Q

Page 194: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirani zapah SR

≥1

≥1

S

R

Q

Q

3) pri S=0 postavimo R=1:- ker velja x 1 = 0, bo po eni zakasnitvi na

izhodu spodnjih vrat vrednost Q=0, ki se bo prenesla tudi na spodnji vhod zgornjih vrat;

- ker je 0 0 = 1, bo po drugi zakasnitvi na izhodu zgornjih vrat vrednost Q=1, ki se bo prenesla tudi na zgornji vhod spodnjih vrat;

- ker je 1 1 = 0, to ne bo spremenilo vrednostina izhodu spodnjih vrat in celica bo ostala v stanju {Q=0, Q=1}

4) ohranimo S=0 in vrnimo R na vrednost 0:- na izhodu zgornjih vrat imamo 0 0 = 1, na iz-

hodu spodnjih pa 1 0 = 0; celica torej ostajav vzpostavljenem stanju {Q=0, Q=1}

S R Q* Q*

0 0 Q Q0 1 0 11 0 1 01 1 0 0

Page 195: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirani zapah SR

≥1

≥1

S

R

Q

Q

S R Q* Q*

0 0 Q Q0 1 0 11 0 1 01 1 0 0

5) postavimo sedaj hkrati S=1 in R=1:- ker velja x 1 = 0, bo po eni zakasnitvi na

izhodu zgornjih vrat vrednost Q=0 in hkrati na izhodu spodnjih vrat vrednost Q=0, obese bosta sočasno tudi prenesli na vhoda;

- ker je 1 0 = 0 1 = 0, to ne bo spremenilo vrednosti na izhodih vrat in celica bo ostala v stanju {Q=0, Q=0}

6) vrnimo S in R na vrednost 0:- če prej vrnemo R, velja analiza iz primera (1)

in dobimo stanje {Q=1, Q=0}; če prej S, pa analiza iz primera (3) in stanje {Q=0, Q=1};

- če obe vrednosti vrnemo na 0 sočasno ali ne vemo, katera se je vrnila prej, pa stanja celice ne moremo predvideti

Page 196: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirani zapah SR

≥1

≥1

S

R

Q

Q

S R Q* Q*

0 0 Q Q0 1 0 11 0 1 01 1 0 0

• s kombinacijo {S=1, R=0} torej v celico zapišemo vrednost Q=1, s kombinacijo {S=0, R=1} vrednost Q=0, pri kombinaciji {S=0, R=0} pa se zapisana vrednost ohranja

• odtod tudi ime celice: z vhodom S=1 v celico zapišemo vrednost 1, z vhodom R=1 pa jo z zapisom vrednosti 0 spet izbrišemo (angl. set = postaviti, reset = vrniti v izhodiščno stanje)

• pri naštetih treh kombinacijah je dosledno tudi poimenovanje notranjih spremenljivk Q in Q, saj je Q dejansko vselej negacija Q

• pri kombinaciji {S=1, R=1} pride do "proti-slovnega" stanja {Q=0, Q=0}, po vrnitvi na {S=0, R=0} pa stanje ni več predvidljivoQ=Q!!!

Page 197: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirani zapah SR (angl. SR latch)

&

&

S

R

Q

Q

S R Q* Q*

0 0 1 10 1 1 01 0 0 11 1 Q Q

• na enak način lahko analiziramo tudi delovanje zapaha SR in ugotovimo, da s kombinacijo {S=1, R=0} vanj zapišemo vrednost Q=1, s {S=0, R=1} vrednost Q=0, pri {S=0, R=0} se zapisana vrednost ohranja, pri {S=1, R=1}pa nastopi stanje, v katerem velja Q=1 in Q=1 (t.j. Q ni negacija Q) in stanje po vrnitvi na {S=1, R=1} ni več predvidljivo

• zapah SR torej deluje enako kot zapah SR, le (i) z negativno vhodno logiko namesto

pozitivne (odtod tudi ime) in (ii) s "protislovnim" stanjem {Q=1, Q=1}

namesto {Q=0, Q=0}

Q=Q!!!

Page 198: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: nesinhronizirana zapaha SR in SR

&

&

S

R

Q

Q

S R Q* Q*

0 0 1 10 1 1 01 0 0 11 1 Q Q

≥1

≥1

S

R

Q

Q

S R Q* Q*

0 0 Q Q0 1 0 11 0 1 01 1 0 0

pravilnostna tabela

Q Q* S R0 0 0 0

1

0 1 1 01 0 0 11 1 0

1 0

Q Q* S R0 0 1 0

1

0 1 0 11 0 1 01 1 0

1 1

vzbujalnatabelasimbol

S Q

R Q

S Q

R Q

Page 199: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: sinhronizirani zapah SR

• nesinhronizirana zapaha SR in SR se vseskozi odzivata na vhoda• to odzivnost lahko časovno omejimo tako, da na vhoda zapaha SR

dogradimo par vrat AND, na vhoda zapaha SR pa par vrat NAND:

≥1

≥1

S

R

Q

Q

&

&

C

&

&

Q

Q

S

R

C

&

&

Page 200: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: sinhronizirani zapah SR

≥1

≥1

S

R

Q

Q

&

&

C=1

&

&

Q

Q

S

R

C=1

&

&

S

R

S

R

x•1=x x 1=x

• delovanje obeh zapahov smo tako sinhronizirali s signalom C(angl. clock = ura oz. control = nadzor, kontrola); vrednosti S in Rimata dostop v notranjost vezja le takrat, ko je C=1:

• s sinhronizacijo smo dobili celici, ki imata obe vhoda S in R ter se na kombinacije {S=1, R=0}, {S=0, R=1} in {S=0, R=0} odzivata enako, le pri "prepovedani" kombinaciji {S=1, R=1} zavzameta v izvedbi na levi Q in Q vrednost 0, v izvedbi na desni pa vrednost 1

Page 201: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: sinhronizirani zapah SR

• ker je pri pravilni uporabi delovanje obeh celic enako, ju pogosto poimenujemo kar z istim imenom – sinhronizirani zapah SR(angl. SR latch with control oz. SR latch with enable)

• zaradi tehnoloških prednosti vrat NAND je v uporabi predvsem desna različica – sinhronizirani zapah SR v izvedbi NAND

≥1

≥1

S

R

Q

Q

&

&

C

&

&

Q

Q

S

R

C

&

&≈

Page 202: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: sinhron. zapaha SR v izvedbah NOR in NAND

S R C Q* Q*

01

01 0 Q Q

0 0 1 Q Q0 1 1 0 11 0 1 1 01 1 1 1 1

pravilnostna tabela

Q Q* S R0 0 0 0

1

0 1 1 01 0 0 11 1 0

1 0

vzbujalnatabelasimbol

≥1

≥1

S

R

Q

Q

&

&

C

&

&

Q

Q

S

R

C

&

&

S Q

R QC

S Q

R QC

Q Q* S R0 0 0 0

1

0 1 1 01 0 0 11 1 0

1 0

S R C Q* Q*

01

01 0 Q Q

0 0 1 Q Q0 1 1 0 11 0 1 1 01 1 1 0 0

Page 203: Univerza v Ljubljani Fakulteta za elektrotehniko

1 2 34 5 67 8 9

0

Sekvenčna vezjaSpominske celice: zapahi SR in SR

• zapahi SR in SR so uporabni za izvajanje nalog, pri katerih sta pogoja za zapis enice in za zapis ničle (izbris enice) med seboj neodvisna

• primer: preprosta alarmna naprava – aktivira jo signal s senzorja, deaktivira pa signal z vezja, v katero vtipkamo kodo za deaktivacijo

alarm(zvočnik)senzorji gibanja (vezja

s svetlobno občutljivimi elementi – fotoupori,

fotodiodami, ...)

≥1

A

BA=B

primerjalnik enakosti

S Q

R Q

tipkovnica

shranjeno geslo

EEPROM

Page 204: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: zapahi SR in SR

integrirano vezje DM74LS279 (Fairchild) s štirimi nesinhroniziranimi zapahi SR:• zapaha 1 in 3 imata po dva vhoda S in en vhod R, za vpis enice mora biti ničla

vsaj na enem vhodu S (t.j. veljati mora 1S1 • 1S2 = 0 oz. 3S1 • 3S2 = 0);• zapaha 2 in 4 sta običajna zapaha SR s po enim vhodom S in enim vhodom R

Page 205: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: zapah D

• če je namen celice pomnjenje (hranjenje) 1-bitnega podatka, za zapis tega podatka potrebujemo le en vhod (in ne dveh neodvisnih)

• takšno spominsko celico lahko zgradimo tako, da v vhodni del sinhroniziranega zapaha SR dodamo negator, ki zagotavlja R=S:

• tako onemogočimo nastop "prepovedane" kombinacije {S=1, R=1}

&

&

Q

Q

S

R

C

&

&

R=D

&

&

Q

Q

D

C

&

&1

S=D

Page 206: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: zapah D

• v takšni celici pri C=1 zavzame Q vrednost vhoda D, pri C=0 pa vhod D ne vpliva na zapisano vrednost; v celico torej zapisujemo 1-bitni podatek D (angl. datum = podatek oz. data = podatki)

• odtod tudi poimenovanje zapah D (angl. D latch); ker ta celica pri C=1 prepušča vrednost D na izhod Q, jo nekateri imenujejo tudi prepustni ali "prosojni" zapah (angl. transparent latch)

D C Q* Q*

01 0 Q Q0 1 0 11 1 1 0

Q Q* D0 0 00 1 11 0 01 1 1pravilnostna

tabela vzbujalnatabela

D Q

C Q

simbol

&

&

Q

Q

D

C

&

&1

Page 207: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: zapahi in flip-flopi

• nesinhronizirani zapahi so celice brez proženja, saj se na spremembe vhodov odzivajo vseskozi

• sinhronizirani zapahi se odzivajo le v tistih časovnih intervalih, ko je C=1, zato jim pravimo tudi celice s statičnim proženjem

• odzivnost lahko še dodatno omejimo le na tiste trenutke, ko se vrednost C spremeni; tedaj govorimo o dinamičnem proženju, spominskim celicam s takšno lastnostjo pa pravimo celice z dinamičnim proženjem oz. krajše flip-flopi

• odzivnosti ob spremembi C z vrednosti 0 na 1 pravimo proženje ob pozitivni fronti, odzivnosti ob spremembi C z vrednosti 1 na 0 pa proženje ob negativni fronti

Page 208: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flop D s proženjem ob pozitivni fronti

• flip-flop D s proženjem ob pozitivni fronti (angl.positive-edge-triggered D flip-flop) tvorita dva zapaha D in dva negatorja:

D2 Q2

C2 Q2

D1 Q1

C1 Q1

1 1C

D Q

Q

1) pri C=0 postavimo D=1:- ker je C1 = 1, levi zapah

prepušča D1=1 na Q1=D2=1;- ker je C2 = 0, se na desnem

zapahu ohranja dosedanji Q2=Q2) ohranimo D=1, postavimo C=1:

- ker je C1 = 0, se na levem zapahu ohranja Q1=D2=1;- ker je C2 = 1, desni zapah prepušča D2=1 na Q2 in dobimo Q2=Q=1

3) ohranimo D=1, vrnimo C na vrednost 0:- ker je C1 = 1, levi zapah prepušča D1=1 na Q1=D2=1 (kot prej);- ker je C2 = 0, se na desnem zapahu ohranja Q2=Q=1;- D = 1 se torej zapiše v flip-flop (t.j. v Q) le ob prehodu C iz 0 na 1

Page 209: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flop D s proženjem ob pozitivni fronti

• flip-flop D s proženjem ob pozitivni fronti (angl.positive-edge-triggered D flip-flop) tvorita dva zapaha D in dva negatorja:

D2 Q2

C2 Q2

D1 Q1

C1 Q1

1 1C

D Q

Q

4) če korake analize (1)-(3) pono-vimo še pri D=0, ugotovimo, dase tudi D=0 zapiše v flip-flop(t.j. v Q) le ob le ob prehodu C iz 0 na 1

• prikazana spominska celica torej zapisuje vrednost D le ob prehodu C iz 0 na 1 – proženju ob pozitivni fronti signala C;

• v simbolu flip-flopa takšno proženje odraža trikotnik ob vhodu C:• flip-flope pogosto prožimo periodično, t.j. s

pulzi ure, zato spremenljivko C in/ali vhod v simbolu označujemo tudi s CLK (angl. clock)

D Q

C Q=

D Q

QCLK

Page 210: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flop D s proženjem ob negativni fronti

• flip-flop D s proženjem ob negativni fronti (angl.negative-edge-triggered D flip-flop) dobimo z odstranitvijo prvega negatorja:

• razlog, da v flip-flopu D s proženjem ob poz. fronti signal C dovajamona C2 skozi dva negatorja in ne neposredno, je v zakasnitvah nega-torjev; pri izvedbi z dvema negatorjema proženje (dvig C z 0 na 1) najprej zapre prvi zapah D in šele nato odpre drugega; pri neposred-nem dovajanju C na C2 pa bi bil vrstni red nasproten in bi bila nekaj časa odprta (t.j. bi prepuščala) oba zapaha

D2 Q2

C2 Q2

D1 Q1

C1 Q1

D Q

Q

C 1

D2 Q2

C2 Q2

D1 Q1

C1 Q1

1 1C

D Q

Q

Page 211: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flopa D s proženjem ob poz. in neg. fronti

D C Q* Q*

01

01 Q Q

0 0 11 1 0

Q Q* D0 0 00 1 11 0 01 1 1

pravilnostna tabela

vzbujalnatabelasimbol

D C Q* Q*

01

01 Q Q

0 0 11 1 0

Q Q* D0 0 00 1 11 0 01 1 1

D Q

C Q

D Q

C Q

1 1C

D Q

Q

D2 Q2

C2 Q2

D1 Q1

C1 Q1

D Q

Q

C 1

D Q

C Q

D Q

QCLK

D Q

C Q

D Q

QCLK

Page 212: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: zapahi D in flip-flopi D

• zapahe D in flip-flope D uporabljamo za izvajanje nalog, ki temeljijo na zapisovanju, pomnjenju (hranjenju) in branju podatkov

• med najpomembnejšimi vezji, ki vsebujejo zapahe in flip-flope D, so pomikalni registri in statični bralno-pisalni pomnilnik (SRAM),najdemo pa jih tudi v nekaterih števcih; zgradbo in delovanje teh vezij bomo spoznali v nadaljevanju

integrirano vezje DM74LS74A (Fairchild) z dvema flip-flopoma D s proženjem ob pozitivni fronti in z možnostjo prednastavitve pomnjene vrednosti:• s PR=0 v flip-flop ne glede na C in D zapišemo

Q=1 (angl. preset = prednastaviti);• s CLR=0 v flip-flop ne glede na C in D

zapišemo Q=0 (angl. clear = izbrisati);Ker PR in CLR omogočata spreminjanje Q obpoljubnem trenutku, pravimo, da sta to asin-hronska vhoda flip-flopa

Page 213: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flop T

• v doslej obravnavane spominske celice z ustrezno izbiro vrednosti navhodih zapisujemo vrednost Q=0 ali Q=1; včasih pa želimo trenutno stanje Q (za katero ni nujno, da ga poznamo) negirati

• spominsko celico s takšnim delovanjem lahkozgradimo iz flip-flopa D, ki mu izhod Q pove-žemo z vhodom D; stanje Q se tako negira obvsaki pozitivni fronti signala na vhodu C:

• za nadzor nad odzivnostjo celice izvedemopovratno zvezo z izhoda Q skozi vrata XOR,na drugi vhod teh vrat pa dovedemo signalT (angl. toggle = preklapljati); tako dobi-mo flip-flop T (angl. T flip-flop), ki se priT=1 odziva na proženje (t.j. negira Q ob vsaki poz. fronti na vhodu C), pri T=0 pa vzdržuje obstoječe stanje Q

D Q

C Q

Q

Q

D Q

C Q

Q

QC

T

=1Q+1 =QQ+0 =Q

Page 214: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flopi T

pravilnostna tabela

vzbujalnatabela

simbol

D Q

C Q

Q

QC

T

=1T C Q* Q*

01

01 Q Q

0 Q Q1 Q Q

Q Q* T0 0 00 1 11 0 11 1 0

T Q

C Q

T Q

QCLK

• flip-flopi T so najpogostejši gradniki števcev

Page 215: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flop JK

• flip-flop JK (angl. JK flip-flop, po njegovem izumitelju Jacku Kilbyju)združuje zmožnosti doslej obravnavanih celic, saj omogoča tako zapis vrednosti (stanja) Q=0 ali Q=1 kot negiranje trenutnega stanja Q

• flip-flope JK najdemo v serijskih seštevalnikih in nekaterih števcih,a se v števcih danes uporabljajo redkeje od flip-flopov D in T

D Q

C Q

Q

Q&

&

≥1

K 1

C

J

J Q

K QC

pravilnostna tabela

vzbujalnatabela

J K C Q* Q*

01

01

01 Q Q

0 0 Q Q0 1 0 11 0 1 01 1 Q Q

Q Q* J K0 0 0 0

1

0 1 1 01

1 0 01 1

1 1 01 0

simbol

Page 216: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaSpominske celice: flip-flopi JK

integrirano vezje DM74LS109A (Fairchild)z dvema flip-flopoma JK (t.j. K v negativnilogiki) s proženjem ob poz. fronti (CLK) inmožnostjo prednastavitve pomnjene vred-nosti Q (PR za zapis 1, CLR za zapis 0)

• zaradi svoje prilagodljivosti soflip-flopi JK uporabni v fazi raz-voja in testiranja sekvenčnih vezij (npr. na protoboardu), z njimi pa lahko izvedemo tudidruge flip-flope:

flip-flop T, izveden s flip-flopom JK

J Q

K QCC

T

Page 217: Univerza v Ljubljani Fakulteta za elektrotehniko

• za vnos podatkov v digitalne sisteme, pa tudi za njihov zagon in zaustavitev, pogosto uporabljamo mehanske preklopnike: stikala, tipke in rotacijske preklopnike:

• načeloma bi logično 1 oz. 0 lahko dovedli kar s stika-lom s sponkama na ustrezni napetosti in ozemljitvi (a),a priklop neposredno na vir +U lahkoprivede do prevelikih tokov v digitalnegradnike med njihovim preklapljanjem

• za omejitev teh tokov med vir +U insponko vgradimo upor (nekaj kΩ) (b)

Sekvenčna vezjaStabilizatorji preklopnikov

P

+U

(a)

P

+U

(b)

Page 218: Univerza v Ljubljani Fakulteta za elektrotehniko

• ker je vhodna upornost digitalnih gradnikov v stacio-narnih razmerah zelo visoka (pri CMOS več GΩ), jepadec napetosti na uporu zanemarljiv in P≈+U

• v času, ko se takšno stikalo nahaja med sponkama,napetost P ni določena, pri "plavajoči" vhodni nape-tosti pa digitalni gradniki delujejo nezanesljivo

• nedoločenost lahko odpravimo tako, da uporabimo stikalo z le eno sponko (t.j. enopolno stikalo), vejo z uporom pa prestavimo za stikalo (c); tako dobi upor pri razklenjenem stikalu vlogo "dvigovalca" nivojanapetosti P (angl. pull-up resistor)

• za diskretizacijo izhodnih napetostnihnivojev dodamo na izhod stikala šenegator za negativno izhodno logiko,ali dva negatorja za pozitivno (d)

Sekvenčna vezjaStabilizatorji preklopnikov

PD

+U

P

(c)

P

+U

(b)

(d)

1

+U

1P

Page 219: Univerza v Ljubljani Fakulteta za elektrotehniko

• tudi delovanje takšnega preklopnika pa ni brezhibno, saj lahko zaradiprožnosti stikala ob preklopu pride do kratkotrajnih vibracij, v časukaterih (~5-30 ms) se stik večkrat prekine in spet vzpostavi:

Sekvenčna vezjaStabilizatorji preklopnikov

začetek preklopa

0

+UP

0

+UPD

stik

odboj

PD1

+U

1P

Page 220: Univerza v Ljubljani Fakulteta za elektrotehniko

• ker so zakasnitve v digitalnih gradnikih znatno krajše od časa vibrira-nja preklopnika, se ti gradniki odzovejo na vsak stik in odboj posebej

• to odpravimo s stabilizatorjem preklopnika (angl. switch debouncer oz. debounce circuit), ki ga zgradimo z zapahom SR

1) ko je stikalo v zgornji legi, je A=0 in B=+U,zato je S=0 in R=1, t.j. S=1 in R=0, zato se na izhodu vzdržuje stanje Q=PD=1

2) ko se stikalo giblje navzdol in zgornja sponkaizgubi stik z ozemljitvijo, postane A=+U ins tem S=1, t.j. S=0; ker je R=0, se naizhodu ohranja stanje Q=PD=1

3) ko se stikalo dotakne spodnje lege, postaneB=0 in s tem R=0, t.j. R=1, zato Q=PD=0

4) če se stikalo odbije, spodnja sponka začasno izgubi stik z ozemljitvijo,zato postane B=+U in R=0, a ker je S=0, se ohranja Q=PD=0

Sekvenčna vezjaStabilizatorji preklopnikov

+U

+U

APDS Q

R QB

Page 221: Univerza v Ljubljani Fakulteta za elektrotehniko

• ker so zakasnitve v digitalnih gradnikih znatno krajše od časa vibrira-nja preklopnika, se ti gradniki odzovejo na vsak stik in odboj posebej

• to odpravimo s stabilizatorjem preklopnika (angl. switch debouncer oz. debounce circuit), ki ga zgradimo z zapahom SR

5) če korake (1)-(4) ponovimo še za preklopstikala iz spodnje lege v zgornjo, ugotovimo,da se tudi v tem primeru že ob prvem dotikustikala z zgornjo sponko vzpostavi stanjeQ=PD=1, ki se ohrani tudi ob odbojih stikala

6) celotna analiza (1)-(5) seveda velja le, čeodboji niso nikoli tako izraziti, da bi sestikalo dotaknilo nasprotne sponke; tozagotovimo z ustreznim dimenzioniranjemstikala, prožnostjo vzmeti v njem ipd.

Sekvenčna vezjaStabilizatorji preklopnikov

+U

+U

APDS Q

R QB

Page 222: Univerza v Ljubljani Fakulteta za elektrotehniko

• register (angl. register) je skupi-na dveh ali več spominskih celic D

• iz n celic dobimo n-bitni register; vanj najpogosteje zapišemo en n-bitni podatek, lahko pa tudi nneodvisnih 1-bitnih podatkov

• ločimo registre z dinamičnim proženjem (iz flip-flopov D, zatoimenovani tudi n-bitni flip-flopi D)in reg. s statičnim proženjem(iz zapahov D, n-bitni zapahi D)

• prek vhoda C sinhroniziramo zapis podatkov v vse celice (bite) registra

Sekvenčna vezjaRegistri

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

D0 Q0

D1 Q1

D2 Q2

D3 Q3

C

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

D0 Q0

D1 Q1

D2 Q2

D3 Q3

C4-bitni flip-flop D 4-bitni zapah D

Page 223: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaRegistri

4-bitni flip-flop D s proženjem ob poz. fronti 74HC175N (Motorola);MR: izbris vseh Q (master reset)CP: proženje (control/clock pulse)

8-bitni flip-flop D 74HC273N in 8-bitni zapah D 74HC373N (oba Philips); zapis v celice zapaha je mogoč pri LE=1 (latch enable), branje izho-dov pa pri OE=0 (output enable, neg. logika)

Page 224: Univerza v Ljubljani Fakulteta za elektrotehniko

• n-bitni števec (angl. counter) jeskupina n spominskih celic, katerih množica stanj {Q0,Q1,...,Qn–1} pred-stavlja n-bitno število, ki se obvsakem proženju poveča za 1

• n-bitni serijski števec (angl. ripple counter) zgradimo iz n flip-flopovD ali T s proženjem ob negativni fronti, v katerih izhode Q kaskadnopovežemo s prožilnimi vhodi C

• izvedba s flip-flopi D prišteje 1 obvsaki neg. fronti C, izvedba s flip-flopi T pa le, če je ob neg. fronti CE=1 (angl. enable = aktivirati)

Sekvenčna vezjaŠtevci

4-bitni ser.št. s f.-f.D 4-bitni ser.št. s f.-f.T

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

Q0

Q1

Q2

Q3 T Q

C Q

T Q

C Q

T Q

C QC

Q0

Q1

Q2

Q3

T Q

C Q

E

Page 225: Univerza v Ljubljani Fakulteta za elektrotehniko

• če izhod Q3 enega 4-bitnega serij-skega števca povežemo z vhodomC drugega takšnega števca, dobi-mo 8-bitni serijski števec; iz treh 4-bitnih dobimo tako 12-bitnega, iz štirih 16-bitnega itd.

• serijski števci so preprosti, a podob-bno kot serijski seštevalniki, ki smojih opisali med kombinacijskimi vez-ji, so počasni, saj Q0 vpliva na Q1šele po eni zakasnitvi flip-flopa, na Q2 po še eni zakasnitvi itd.

• serijski števci so asinhronski; čeprav ima v števcu vsak flip-flop svoj vhod C, proženje teh vhodov ne poteka sinhrono, t.j. sočasno

Sekvenčna vezjaŠtevci

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

Q0

Q1

Q2

Q3 T Q

C Q

T Q

C Q

T Q

C QC

Q0

Q1

Q2

Q3

T Q

C Q

E4-bitni ser.št. s f.-f.D 4-bitni ser.št. s f.-f.T

Page 226: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaŠtevci in diagrami stanj

• eno od orodij za analizo delovanja sekvenčnih vezij je t.i. diagram stanj oz. diagram prehajanja stanj (angl. state diagram), ki podaja vsa stanja vezja in vse prehode med njimi

• ker si pri števcih stanja vselej sledijo v enakem vrstnem redu, vsi prehodi pa se zgodijo ob enakem pogoju, so diagrami stanj števcev preprosti; diagram stanj 4-bitnega serijskega števca je takšen:

• če so za posamezen prehod poleg proženja potrebni dodatni pogoji, jih dopišemo k puščici; pri ser. števcu s flip-flopi D teh ni, saj šteje ob vsakem proženju, pri ser. števcu s flip-flopi T pa je pogoj E=1

0000 0001 0010 0011 0100 0101 0110 0111

10001001101010111100110111101111

E=1 E=1 E=1 E=1 E=1 E=1 E=1

E=1 E=1 E=1 E=1 E=1 E=1 E=1

E=1 E=1

Page 227: Univerza v Ljubljani Fakulteta za elektrotehniko

• sinhronski števec (angl. synchronous counter) zgradimo iz flip-flopov T s pro-ženjem ob pozitivni fronti, njihove vhode C pa povežemo na skupni signal C

• ker pri štetju negacija posameznega bita nastopi le, če imajo vsi nižje ležeči biti vrednost 1, izhode Q vežemo kaskadno na vhode T celic, ki vsebujejo višje ležeče bite; izhod Q0 vežemo neposredno, vse ostale pa prek vrat AND

Sekvenčna vezjaŠtevci

4-bitni sinhronski števec

T Q

C Q

T Q

C Q

T Q

C QC

Q0

Q1

Q2

Q3

T Q

C Q

1

&

&

Page 228: Univerza v Ljubljani Fakulteta za elektrotehniko

• proženje flip-flopov in s tem spreminjanje stanj Q je sočasno, zato je tak števec sin-hronski, a spremembe na vratih AND potujejo kaskadno; če naslednje proženje nastopi prehitro, vrednosti na vhodih T, do katerih se te spremembe še niso razširile, lahko še niso pravilne in pride do napake

• za pravilno delovanje takšnega števca mora biti na vhodu T zgornjega flip-flopa enica, tak števec pa (podobno kot serijski števec, izveden s flip-flopi D) tudi ne omogoča deaktivacije štetja (ni vhoda E)

Sekvenčna vezjaŠtevci

4-bitni sinhronski števec

T Q

C Q

T Q

C Q

T Q

C QC

Q0

Q1

Q2

Q3

T Q

C Q

1

&

&

Page 229: Univerza v Ljubljani Fakulteta za elektrotehniko

• deaktivacijo omogočimo tako, da tudi kaskadno vezavo Q0 izvedemo skozi vrata AND, na vhod zgornjega flip-flopa T in hkrati na drugi vhod dodanih vrat AND pa privedemo signal E

• tako dobimo sinhronski števec z akti-vacijo (angl. synchronous counter with enable), ki šteje le pri E=1

• spremembe se skozi vrata AND tudi tu širijo kaskadno, zato prekratek zamik med zaporednimi proženji (oz. previsoka frekvenca ure pri periodičnem proženju) privede do napak pri štetju

Sekvenčna vezjaŠtevci

4-bitni sinhr. števec z aktivacijo

T Q

C Q

T Q

C Q

T Q

C QC

Q0

Q1

Q2

Q3

T Q

C Q

E

&

&

&

Page 230: Univerza v Ljubljani Fakulteta za elektrotehniko

• za povsem paralelno delovanje števca se moramo izogniti kaskadnemu širjen-ju podatkov o vrednostih nižje ležečih bitov, zato v vsak flip-flop dovedemo podatke o vseh nižje ležečih bitih

• za to potrebujemo vrata AND z ustreznim številom vhodov: zgornja so tudi tukaj 2-vhodna (E in Q0), sledijo 3-vhodna (E, Q0, Q1), nato 4-vhodna itd.

• tako dobimo sinhronski paralelni šte-vec z aktivacijo (angl. synchronousparallel counter with enable), ki je najhitrejša, a hkrati tudi najobsežnejša izvedba digitalnega števca

Sekvenčna vezjaŠtevci

4-bitni sinhr. par. števec z aktivacijo

T Q

C Q

T Q

C Q

T Q

C QC

Q0

Q1

Q2

Q3

T Q

C Q

E

&

&

&

Page 231: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaŠtevci

4-bitni sinhronski paralelni števecs štetjem navzgor in navzdol DM-74LS169 (Natl. Semiconductor);U/D=1: štetje navzgor (0-1-2-...)U/D=0: navzdol (0-15-14-13-...)

4-bitna sinhronska paralelna števca: 74HCT161 z binarnim štetjem (0-1-2-3-4-5-6-7-8-9-10-11 -12-13-14-15-0) in 74HCT160 z BCD štetjem (0 -1-2-3-4-5-6-7-8-9-0) (oba Philips);CEP: aktivacija štetja (count enable parallel)PE: asinhronska prednastavitev števca z vhodov D0-D3 (parallel enable, pri PE=0 prednastavitev)

Page 232: Univerza v Ljubljani Fakulteta za elektrotehniko

• pomikalni register (angl. shift register) je register, zgrajen tako,da se podatki v njem ob vsakem proženju pomaknejo za en bit

• serijski pomikalni register(angl. serial-in, serial-out shiftregister, SISO shift register) in serijsko-paralelni pomikalni register (angl. serial-in, para-llel-out shift register, SIPO shift register) zgradimo iz kas-kade flip-flopov D

Sekvenčna vezjaPomikalni registri

4-bitni pomikalniregister SISO

SI

SO

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

4-bitni pomikalniregister SIPO

Q4

Q2

SI Q1

Q3

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

Page 233: Univerza v Ljubljani Fakulteta za elektrotehniko

• v pomikalnem registru SISO je navzven dosegljiv le en izhod, uporaben pa je za zakasnitev signala; če na C dovedemo peri-odično proženje, izhod n-bitnega registra zaostaja za vhodom zan pulzov ure

• v pomikalnem registru SIPO sonavzven dosegljivi izhodi iz vsehflip-flopov, uporabljamo pa jihpredvsem pri pretvorbah podatkov iz serijske v paralelno obliko

Sekvenčna vezjaPomikalni registri

4-bitni pomikalniregister SISO

SI

SO

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

4-bitni pomikalniregister SIPO

Q4

Q2

SI Q1

Q3

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

Page 234: Univerza v Ljubljani Fakulteta za elektrotehniko

• s pomikalnim registrom lahko zgradimo tudi krožni števec (angl. ring counter), katerega stanje tvorijo ničle in ena enica, ki se ob vsakem proženju pomakne za eno mesto oz. en bit;

• diagram stanj 4-bitnega krožnega števca torej izgleda takole:

• izvedemo ga s 4-bitnim registrom SIPO, v kate-rega ob prvih štirih proženjih zapišemo zaporedje {1,0,0,0}, nato pa SI povežemo z izhodom Q4

Sekvenčna vezjaPomikalni registri in krožni števci

4-bitni pomikalniregister SIPO

Q4

Q2

SI Q1

Q3

D Q

C Q

D Q

C Q

D Q

C Q

D Q

C Q

C

0001 0010

01001000

Page 235: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPomikalni registri in krožni števci

4-bitni dvosmerni pomikalni register74HCT194 (Philips);S0=0,S1=0:pomikanje deaktiviranoS0=0,S1=1:pomikanje v levo

(branje podatka iz DSL)S0=1,S1=0:pomikanje v desno

(branje podatka iz DSR)S0=1,S1=1:paralelni zapis vhodov D0-D3

Page 236: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaAnaliza in sinteza sekvenčnih vezij

• analiza sekvenčnega vezja je postopek, s katerim pridemo do razumevanja vezja (t.j. iz zgradbe vezja dobimo opis delovanja), sinteza pa postopek, s katerim načrtujemo vezje, ki bo izvajalo zastavljene naloge (t.j. iz opisa delovanja dobimo zgradbo vezja)

• oba postopka sta najpreprostejša v primeru sinhronskih sekven-čnih vezij s periodičnim dinamičnim proženjem

• takšnim vezjem bomo odslej rekli sekvenčna vezja z uro (angl. clocked sequential circuits); besedi "sinhronska" in "dinamično" bomo opustili, saj je praviloma ura namenjena sinhronizaciji, pro-ženje s pulzi ure pa je dinamično (t.j. celice v teh vezjih so flip-flopi)

• v shematskih prikazih teh vezij bomo signal, ki dovaja pulze ure, označili s "CLK", v simbolih flip-flopov D, T in JK v vezjih pa bomo obdržali splošnejši "C" (control/clock/count/...), saj so sami flip-flopi enaki ne glede na to, ali je proženje periodično ali aperiodično

Page 237: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaAnaliza sekvenčnih vezij

• pri analizi delovanja sekvenčnega vezja so nam v pomoč tabele, enačbe in diagrami, ki opisujejo delovanje vezja na nivoju posameznih flip-flopov:- vzbujalna tabela flip-flopa, ki smo jo že spoznali pri obravnavi

posameznih flip-flopov- karakteristična tabela flip-flopa,- karakteristična enačba flip-flopa in- karakteristični diagram flip-flopa

• ... ter na nivoju vezja kot celote:- vzbujalne enačbe sekvenčnega vezja,- enačbe stanj in izhodov sekvenčnega vezja,- tabela stanj in izhodov sekvenčnega vezja in- diagram stanj sekvenčnega vezja, preprosta primera katerega

smo spoznali pri opisu delovanja navadnega in krožnega števca

Page 238: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaKarakteristična tabela, enačba in diagram flip-flopa D

• karakteristična tabela flip-flopa podaja njegovo naslednje stanje (Q*) kot funkcijo vhodov (D / T / J in K) in trenutnega stanja (Q); dobimo jo s predelavo iz vzbujalne tabele, v kateri prestavimo stolpce tako, da si sledijo vhodi, trenutno stanje in naslednje stanje

• karakteristično enačbo flip-flopa dobimo, če iz karakteristične tabele flip-flopa (tako kot iz pravilnostne tabele preklopne funkcije) zapišemo vsoto mintermov in rezultat poenostavimo

• karakteristični diagram podaja pravila prehajanja stanj še grafično

Q Q* D

0 0 0

0 1 1

1 0 0

1 1 1

D Q

C Q

D Q Q*

0 0 0

0 1 0

1 0 1

1 1 1

Q* = DQ + DQ = D

karakt. tabelavzbuj. tabelaflip-flop D

karakteristična enačba

karakteristični diagram

Q=0 Q=1D=1

D=0

D=1

D=0

Page 239: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaKarakteristična tabela, enačba in diagram flip-flopa T

Q Q* T

0 0 0

0 1 1

1 0 1

1 1 0

T Q

C Q

T Q Q*

0 0 0

0 1 1

1 0 1

1 1 0

Q* = TQ + TQ = T + Q

karakt. tabelavzbuj. tabelaflip-flop T

karakteristična enačba

karakteristični diagram

Q=0 Q=1T=1

T=1

T=0

T=0

Page 240: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaKarakteristična tabela, enačba in diagram flip-flopa JK

Q* = JQ + KQ

J Q

K QC

Q Q* J K

0 0 0 01

0 1 1 01

1 0 01 1

1 1 01 0

J K Q Q*

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 0

karakt. tabela

vzbuj. tabelaflip-flop JK

karakteristična enačba

karakteristični diagram

Q=0 Q=1

JK=1

JK= 1

JK= 0

JK=0

01

01

01

01

Page 241: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaMealyjeva in Mooreova vezja

• po principu delovanja delimo sekvenčna vezja z uro na:- Mealyjeva vezja, v katerih so tako naslednje stanje kot izhodi

funkcije vhodov in trenutnega stanja,- Mooreova vezja, v katerih je naslednje stanje funkcija vhodov in

trenutnega stanja, izhodi pa so funkcije zgolj trenutnega stanja

• tako Mealyjeva kot Mooreova vezja tvorijo trije deli:- vhodna kombinacijska struktura, v katero vstopajo vhodi in

(prek povratne zveze) stanje vezja ter določa naslednje stanje- sekvenčna struktura iz flip-flopov, v kateri je zapisano trenutno

stanje vezja, vsi flip-flopi pa so proženi z istim signalom (CLK),- izhodna kombinacijska struktura, v katero vstopajo vhodi in

stanje (pri Mealyjevih vezjih) oziroma le stanje (pri Mooreovih)ter določa izhode

Page 242: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaMealyjeva in Mooreova vezja

stanje izhodivhodna

kombinacijska struktura

določa naslednje stanje

izhodna kombinacijska

strukturadoloča izhode

sekvenčna struktura

zapisuje in hrani stanje

vhodi

ura

vzbujanje

stanje

izhodivhodna

kombinacijska struktura

določa naslednje stanje

izhodna kombinacijska

strukturadoloča izhode

sekvenčna struktura

zapisuje in hrani stanje

vhodi

ura

vzbujanje

Mealyjevo vezje

Mooreovo vezje

Page 243: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaMealyjeva in Mooreova vezja

• v sekvenčnih vezjih z več izhodi so lahko ti tudi različnih tipov: nekateri Mealyjevi, drugi Mooreovi

• v Mooreovih vezjih so izhodi sinhronski, t.j. spreminjajo se samo ob proženjih, ko se spreminjajo tudi stanja v sekvenčni strukturi vezja

• v Mealyjevih vezjih pa so izhodi asinhronski, saj sprememba vhodov vpliva na izhode tudi mimo sekvenčne strukture, zato se lahko izhodi spremenijo tudi med dvema proženjema (lahko tudi večkrat);

• ker v Mealyjevih vezjih vhodi vplivajo na izhode po dveh poteh z različnima zakasnitvama, lahko začasno pride tudi do nepravilne vrednosti izhodov, ki traja do trenutka, ko se sprememba vhodov odrazi tudi na izhodu sekvenčne strukture

• ti težavi Mealyjevih vezij odpravimo tako, da spreminjanje vhodov omejimo na le eno spremembo na en pulz ure, izhode pa vzorčimo le enkrat na pulz; oboje lahko izvedemo s spominskimi celicami

Page 244: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer analize vezja z uro

• oglejmo si postopek analize sekvenčnega vezja z uro na primeru vezja na desni

• vezje ima en vhod (x), dve spremenljivki stanja (Q0in Q1, t.j. 4 možna stanja: Q0Q1= 00,01,10,11) in en izhod (y)

• sekvenčno strukturo tvorita dva flip-flopa D s proženjem ob poz. fronti, strukturo pa ob vsakem proženju vzbu-jamo skozi vhoda D0 in D1

D0

D1

vzbujanje

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

stanje

izhod

vhod

Page 245: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer analize vezja z uro

• vezje je Mealyjevo, saj vhod vpliva na izhodno kombina-cijsko strukturo v vezju tudi neposredno, ne le skozistanje sekvenčne strukture

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

izh. komb.struktura

sekvenčnastruktura

vh. komb.struktura

Page 246: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaVzbujalne enačbe

• vzbujalne enačbe sekven-čnega vezja podajajo vhodev posamezne flip-flope kot funkcije trenutnih stanj tehflip-flopov in vhodov vezja:

D0 = Q0x + Q1x = (Q0+Q1)x

D1 = Q0x

D0

D1

vzbujanje

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

Page 247: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaEnačbe stanj in izhodov

• enačbe stanj dobimo z vstavitvijo vzbujalnih enačb vezja v karakteristične enačbe ustreznih flip-flopov, enačbe izhodov pa razberemo iz zgradbe vezja:

Q0* = D0 = (Q0+Q1)x

Q1* = D1 = Q0x

y = (Q0+Q1)x

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

stanje

izhod

Page 248: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaTabela stanj in izhodov

• tabelo stanj in izhodovdobimo tako, da zapišemo vse kombinacije trenutega stanja in vhodov, nato pa iz enačb stanj in izhodov dolo-čimo naslednje stanje in izhode za vsako kombinacijo:

Q0*=(Q0+Q1)x

Q1*=Q0x

y=(Q0+Q1)x

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0

Page 249: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaDiagram stanj

• diagram stanj dobimo iz ta-bele st. in izh.: za vsako stanje narišemo krog in vanj vpišemo vrednosti Q0Q1...Qn, za vsak prehod pa puščico ter ob njej vhod, ki povzroči ta prehod, in izhod, ki nastopi ob prehodu

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

00

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0

Page 250: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaDiagram stanj

• diagram stanj dobimo iz ta-bele st. in izh.: za vsako stanje narišemo krog in vanj vpišemo vrednosti Q0Q1...Qn, za vsak prehod pa puščico ter ob njej vhod, ki povzroči ta prehod, in izhod, ki nastopi ob prehodu

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

00

01

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0

0/0

1/0

Page 251: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaDiagram stanj

• diagram stanj dobimo iz ta-bele st. in izh.: za vsako stanje narišemo krog in vanj vpišemo vrednosti Q0Q1...Qn, za vsak prehod pa puščico ter ob njej vhod, ki povzroči ta prehod, in izhod, ki nastopi ob prehodu

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

00

1101

0/0

1/0 0/1

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0 1/0

Page 252: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaDiagram stanj

• diagram stanj dobimo iz ta-bele st. in izh.: za vsako stanje narišemo krog in vanj vpišemo vrednosti Q0Q1...Qn, za vsak prehod pa puščico ter ob njej vhod, ki povzroči ta prehod, in izhod, ki nastopi ob prehodu

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

00 10

1101

0/0

1/0 1/0

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0 1/0

0/1 0/1

Page 253: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaDiagram stanj

• diagram stanj dobimo iz ta-bele st. in izh.: za vsako stanje narišemo krog in vanj vpišemo vrednosti Q0Q1...Qn, za vsak prehod pa puščico ter ob njej vhod, ki povzroči ta prehod, in izhod, ki nastopi ob prehodu

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

00 10

1101

0/0 1/0

1/0 1/0

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0 1/0

0/1

0/1 0/1

Page 254: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPoimenovanje stanj

• stanja lahko tudi poimenujemo:Q0Q1=00=S0, Q0Q1=01=S1, ...ter temu prilagodimo tabelo stanj in izhodov ter diagram stanj

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 10 1 1 1 1 01 0 0 0 0 11 0 1 1 0 01 1 0 0 0 11 1 1 1 0 0

Sx=0 x=1

S* y S* y

S0 S0 0 S1 0S1 S0 1 S3 0S2 S0 1 S2 0S3 S0 1 S2 0

Page 255: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPoimenovanje stanj

• stanja lahko tudi poimenujemo:Q0Q1=00=S0, Q0Q1=01=S1, ...ter temu prilagodimo tabelo stanj in izhodov ter diagram stanj

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

S0 S2

S3S1

0/0 1/0

1/0 1/0

1/0

0/1

0/1 0/1

Sx=0 x=1

S* y S* y

S0 S0 0 S1 0S1 S0 1 S3 0S2 S0 1 S2 0S3 S0 1 S2 0

Page 256: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaBesedni opis delovanja vezja

• iz diagrama stanj sekvenčnega vezja je najlažje razumeti tudi delovanje vezja:

• če izhajamo iz stanja S0, ima izhod vrednost 0 tako dolgo, dokler ima vhod vrednost 1

• ob spremembivhoda na 0 dobiizhod vrednost1, vezje pa se vrne v S0

• vezje je torejdetektor (vhodnega)zaporedja "10"

≥1

&

&

1&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q0

Q1

y

x

S0 S2

S3S1

0/0 1/0

1/0 1/0

1/0

0/1

0/1 0/1

Page 257: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPoimenovanje stanj in kodirna tabela

• za boljše razumevanje delovanja vezja so lahko poimenovanja stanj tudi opisna – npr. pri vezjih, ki upravljajo delovanje semaforjev na križišču: RD(eča), RU(mena), ZE(lena)

• če stanja poimenujemo opisno, diagram stanj več ne vsebuje podat-kov o binarnih vrednostih spremenljivk stanja, zato moramo za popoln opis delovanja vezja priložiti še kodirno tabelo, ki podaja dogovor o kodiranju stanj:

S Q0 Q1 Q2RD-RD1 0 0 0RD-RU1 0 0 1RD-ZE 0 1 0

RD-RU2 0 1 1RD-RD2 1 0 0RU-RD1 1 0 1ZE-RD 1 1 0

RU-RD2 1 1 1

RD-RD1

RD-RU1

ZE-RD

RU-RD2

RD-ZE

RU-RD1

RD-RU2

RD-RD2

Page 258: Univerza v Ljubljani Fakulteta za elektrotehniko

• tako v Mealyjevih kot v Mooreovih vezjih vhodi vplivajo na sekvenčno strukturo in s tem na stanje vezja; vsak prehod med stanjema je tako odvisen od vhodov, zato v diagramu stanj vrednosti vhodov pišemo ob ustrezni puščici

• v Mealyjevih vezjih so izhodi odvisni tako od stanja kot neposredno od vhodov, zato v diagramustanj vrednosti izhodov pišemoob puščici, ki podaja prehod iz ustreznega stanja ob ustrezni vrednosti vhodov

• v Mooreovih vezjih pa so izhodi odvisni samo od stanja,zato v diagramu stanj njihove vrednosti navajamo kar ob ustreznih stanjih diagram stanj

Mooreovega vezja

Sekvenčna vezjaDiagrami stanj Mealyjevih in Mooreovih vezij

S0 S1

S2

1/0 1/1

1/1

0/1

0/00/0

S0/0 S1/1

S2/0

1 1

1

0

00

diagram stanj Mealyjevega vezja

Page 259: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaAnaliza in sinteza sekvenčnih vezij

• postopek analize sekvenčnega vezja z uro, ki smo ga spoznali na pri-meru detektorja zaporedja "10", je sestavljen iz naslednjih korakov:1) določimo vzbujalne enačbe flip-flopov2) določimo enačbe stanj in izhodov3) zapišemo tabelo stanj in izhodov (stanja lahko tudi poimenujemo)4) narišemo diagram stanj (pri opisnih imenih dodamo kodirno tabelo)5) podamo besedni opis delovanja vezja

• pri sintezi vezja sledimo tem korakom približno v nasprotnem redu:1) podamo besedni opis delovanja vezja2) narišemo diagram stanj (število stanj lahko nato še minimiziramo)3) zapišemo kodirno tabelo in tabelo stanj4) določimo enačbe stanj in izhodov ter jih minimiziramo5) izberemo vrsto flip-flopov in določimo vzbujalne enačbe6) narišemo simbolno shemo vezja

Page 260: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer sinteze vezja z uro

• tudi postopek sinteze sekvenčnega vezja z uro si oglejmo na primeru vezja, ki deluje kot detektor zaporedja

• besedni opis delovanja: sekvenčno vezje naj bo Mooreovo, deluje pa naj kot detektor vhodnega zaporedja x="111"; ob takem zapo-redju naj se na izhodu pojavi y=1, sicer pa naj bo na izhodu y=0

• diagram stanj:- v izhodiščnem stanju S0 bo y=0- pri x=0 bo vezje ostalo v S0

- pri x=1 bo prešlo v S1 (detekcija "1"),kjer bo še vedno y=0

- pri x=0 se bo vezje iz S1 vrnilo v S0,pri x=1 pa bo prešlo v S2(detekcija "11"), še vedno z y=0

S0/0

0

S1/0

1

0

S2/0

1

Page 261: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer sinteze vezja z uro

• tudi postopek sinteze sekvenčnega vezja z uro si oglejmo na primeru vezja, ki deluje kot detektor zaporedja

• besedni opis delovanja: sekvenčno vezje naj bo Mooreovo, deluje pa naj kot detektor vhodnega zaporedja x="111"; ob takem zapo-redju naj se na izhodu pojavi y=1, sicer pa naj bo na izhodu y=0

• diagram stanj:... (nadaljevanje)- pri x=0 se bo vezje iz S2 vrnilo v S0,

pri x=1 pa prešlo v S3 (detekcija "111"),kjer bo y=1, saj je prišlo do detekcije "111"

- pri x=0 se bo vezje tudi iz S3 vrnilo v S0,pri x=1 pa bo ostalo v S3, saj tudi zapo-redja štirih in več enic vsebujejo "111"

S0/0

0

S1/0

1

0

S2/0

1

1

0

S3/1

0

1

Page 262: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer sinteze vezja z uro

• za štiri različna stanja, S0-S3, bomo potrebovali dve spremenljivki stanja; kot običajno ju poimenujmo Q0 in Q1, izberimo pa tudi običajni način kodiranja, ki ga podaja spodnja kodirna tabela

• tabelo stanj in izhodov dobimo iz diagrama stanj: iz vsakega od osmih prehodov med stanji razberemo ustrezne vrednosti Q0

*, Q1* in y

S0/0

0

S1/0

1

0

S2/0

1

1

0

S3/1

0

1

S Q0 Q1

S0 0 0S1 0 1S2 1 0S3 1 1

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 00 1 1 1 0 01 0 0 0 0 01 0 1 1 1 01 1 0 0 0 11 1 1 1 1 1

Page 263: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer sinteze vezja z uro

• enačbe stanj in izhodov zapišemo iz tabele stanj in izhodov kot vsote mintermov, ki jih nato minimiziramo (pri obsežnejših izrazih si pomagamo s K-diagramom in/ali drugimi postopki poenostavljanja)

• za Q0 in Q1 potrebujemo dve spominski celici; če izberemo flip-flopa D,velja Q* = D, zato sta vzbujalni enačbi kar enaki enačbama stanj

Q0 Q1 x Q0* Q1

* y0 0 0 0 0 00 0 1 0 1 00 1 0 0 0 00 1 1 1 0 01 0 0 0 0 01 0 1 1 1 01 1 0 0 0 11 1 1 1 1 1

Q0* = Q0Q1x + Q0Q1x + Q0Q1x = (Q0+Q1)x

Q1* = Q0Q1x + Q0Q1x + Q0Q1x = (Q0+Q1)x

y = Q0Q1x + Q0Q1x = Q0Q1

D0 = (Q0+Q1)xD1 = (Q0+Q1)x

Page 264: Univerza v Ljubljani Fakulteta za elektrotehniko

Sekvenčna vezjaPrimer sinteze vezja z uro

• iz vzbujalnih enačb obeh flip-flopov in enačbe izhodasledi še zgradba vezja, ki jo podaja simbolna shema na desni

≥1

&

&

≥1

D Q

C Q

D Q

C Q

CLK

Q0

Q1

Q1

y

x

y = Q0Q1x + Q0Q1x = Q0Q1

D0 = (Q0+Q1)xD1 = (Q0+Q1)x

&

&

Page 265: Univerza v Ljubljani Fakulteta za elektrotehniko

Tristanjski izravnalniki in vodila

Page 266: Univerza v Ljubljani Fakulteta za elektrotehniko

• izravnalnik (angl. buffer oz. noninverting buffer) zgradimo iz dvehzaporednih negatorjev; z njim dosežemo, da se morebitni raznoliki vhodni napetostni nivoji "izravnajo" – pretvorijo bodisi v nivo, ki v dani tehnologiji ustreza logični enici, ali pa v nivo, ki ustreza logični ničli:

Tristanjski izravnalniki in vodilaIzravnalnik

UD1 1U=

UD[V] 5

4

3

2

1

00 1 2 3 4 5 U[V]

simbolizravnalnika

vezje

karakteristika izravnalnika

1

Page 267: Univerza v Ljubljani Fakulteta za elektrotehniko

• izravnalnik s histerezo (angl. buffer with hysteresis oz. Schmitt-trigger buffer) preklopi iz ničle v enico pri nekoliko višji vhodni napetosti kot pa iz enice v ničlo; tako je izhod ob preklopih manj občutljiv na morebitni šum v vhodnem signalu

• negator s histerezo (angl. inverter with hysteresis oz.Schmitt-trigger inverter) deluje enako, le z negativno izhodno logiko (t.j. ima pri-bližno zrcalno karateristiko)

Tristanjski izravnalniki in vodilaIzravnalnik s histerezo in negator s histerezo

UD[V] 5

4

3

2

1

00 1 2 3 4 5 U[V]

simbolizravnalnikas histerezo

karakteristika izravnalnikas histerezo

simbolnegatorjas histerezo

Page 268: Univerza v Ljubljani Fakulteta za elektrotehniko

• tristanjski izravnalnik (angl. three-state buffer) ima še kontrolni vhod, pri vrednosti 0 na njem pa je izhod deaktiviran

• deaktivirani izhod se obnaša tako, kot da bi bila njegova povezava z vhodom prekinjena (to je tretje stanje izravnalnika – t.i. stanje vi-soke impedance), prekinitev pa dejansko ni izvedena z mehanskim stikalom, temveč s tranzistorji

• tudi trist. izr. imajo lahko ne-gativno logiko in/ali histerezo:

Tristanjski izravnalniki in vodilaTristanjski izravnalnik

simboltristanjskegaizravnalnika

nadomestno vezje

1 1=11 1

Page 269: Univerza v Ljubljani Fakulteta za elektrotehniko

• vodilo (angl. bus) je pot, po kateri se v digitalnem sistemu prenašajo podatki

• serijsko vodilo (angl. serial bus) je 1-bitno – podatki potujejo po enem samem vodniku, bit za bitom; danes najbolj razširjen je proto-kol USB (angl. universal serial bus = univerzalno serijsko vodilo)

• paralelno vodilo (angl. parallel bus) pa za prenos podatkov uporablja več vzporednih vodnikov; n-bitno paralelno vodilo tako omogoča sočasen prenos celotnega n-bitnega podatka; v osebnih računalnikih so danes najbolj razširjene različice paralelnih vodil PCI (angl. peripheral component interconnection = medsebojna povezava perifernih komponent) in SCSI (angl. small computer system interface = vmesnik za male računalniške sisteme)

• tristanjski izravnalniki so bistven gradnik tako v serijskih kot v paralelnih vodilih, saj omogočajo, da več komponent digitalnega sistema pošilja podatke po istem vodilu (seveda ne sočasno)

Tristanjski izravnalniki in vodilaVodila

Page 270: Univerza v Ljubljani Fakulteta za elektrotehniko

• princip delovanja serijskega vodilaprikazuje vezje na desni:- osem komponent digitalnega sistema

(na sliki niso prikazane) generira osemrazličnih 1-bitnih izhodnih podatkovd0-d7, ki dostopajo do vodila vsakskozi svoj tristanjski izravnalnik

- deaktivacijske vhode izravnalnikovkrmili binarni dekodirnik 3/8, kizagotavlja, da podatke po vodilu vselej pošilja le ena komponenta

- komponenti pošiljanje podatkov po vo-dilu omogočimo tako, da njen binarni naslov dovedemo na vhode dekodirnika(npr. pri x2x1x0=101 je na vodilu d5)

Tristanjski izravnalniki in vodilaTristanjski izravnalniki in serijska vodila

x2x1x0

3/8

1

1

1

1

d0

d1

d2

d7

1-bitnovodilo

Page 271: Univerza v Ljubljani Fakulteta za elektrotehniko

• po n-bitnem paralelnem vodilu prenašamo n-bitne podatke; da podatke po vodilu vselej pošilja le ena komponenta, zagotavlja n-bitni tristanjski vmesnik (angl. n-bit three-state buffer), ki ga tvorin tristanjskih izravnalnikov:

Tristanjski izravnalniki in vodilan-bitni tristanjski vmesniki in paralelna vodila

simbol n-bitnegatristanjskega

vmesnika vezje

n×1 =

1

1

1

a0

a1

an–1

E

y0

y1

yn–1

x2x1x0

3/8

n-bitnovodilo

d0,0

d0,n–1

n×1

d7,0

d7,n–1

n×1

d2,0

d2,n–1

n×1

d1,0

d1,n–1

n×1

Page 272: Univerza v Ljubljani Fakulteta za elektrotehniko

• tako v serijskih kot v paralelnih vodilih lahko občutljivost na šum znižamo z uporabo tristanjskih izravnalnikov s histerezo

• n-bitni dvosmerni tristanjski vmesnik (angl. n-bit three-state transmitter-receiver oz. n-bit three-state transceiver) omogo-ča, da zamenjamo vlogi vhodov in izhodov vmesnika

Tristanjski izravnalniki in vodilaTristanj. vmesniki s histerezo in dvosmerni tristanj. vmesniki

32-bitni tristanjskivmesnik 74VCX32244

(Fairchild Semiconductor)8-bitni, 8-bitni dvosmerni in 16-bitni tristanjski vmesnik SN74LS541, SN74LS245 in SN74ABT16540 (vsi Texas Instruments);

vsak ima histerezo približno 0.4 V

Page 273: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezja

Page 274: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaBralno-pisalni pomnilnik (RAM)

• spomnimo se zgradbe in delovanja bralnega pomnilnika (ROM/PROM):povezave v pomnilni mreži vzpostavljamo oz. prekinjamo s posebnimi orodji (z nekajkrat večjo napetostjo od običajne, z UV svetlobo ipd.)

Page 275: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaBralno-pisalni pomnilnik (RAM)

• bralno-pisalni pomnilnik (angl. random-access memory, RAM) ima podobno zgradbo, a povezave v mreži izvedemo s spominskimi celicami; to omogoči zapisovanje skozi vhode – brez posebnih orodij

Page 276: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

• statični bralno-pisalni pomnilnik (angl. static RAM, SRAM) je zgrajen iz spominskih celic SRAM (angl. SRAM cells)

• celico SRAM sestavljajo vrata AND, zapah D in tristanjski izravnalnik:

• na vhod I (angl. input = vhod) dovedemo podatek, ki ga želimo zapi-sati v celico, izhod O (angl. output = izhod) pa povežemo z vodilom

• vhod S (angl. select = izbrati) določa, kdaj je celica aktivna: pri S=1 ima zapisani podatek Q dostop do vodila, pri S=0 pa ne

• vhod W (angl. write = pisati) omogoča zapis podatka v aktivno celico:če je S=1 in hkrati W=1, se vrednost z vhoda I zapiše v stanje Q

OI 1D Q

C Q&S

W

I O

WS

simbol

=

Page 277: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

1 1

a1 a0

&

&

&

&

dekodirnik

kodirnik

y3 y2 y1 y0

1 1 1 1&

&WE

OE

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

x3 x2 x1 x0

chip select CSwrite enable

outputenable

Page 278: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

1 1

a1 a0

&

&

&

&

dekodirnik

kodirnik

y3 y2 y1 y0

1 1 1 1&

&WE

OE

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

x3 x2 x1 x0

chip select CSwrite enable

outputenable

Pisanje podatka:1) na vhode x3-x0 dovedemo 4-bitni

podatek, ki ga želimo zapisati2) na vhoda a1-a0 dovedemo naslov

vrstice, v katero ga želimo zapisati3) postavimo CS=1 in WE=14) postavimo WE=0

Page 279: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

1 1

a1 a0

&

&

&

&

dekodirnik

kodirnik

y3 y2 y1 y0

1 1 1 1&

&WE

OE

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

x3 x2 x1 x0

chip select CSwrite enable

outputenable

Branje podatka:1) na a1-a0 dovedemo naslov vrstice,

iz katere želimo prebrati podatek2) postavimo CS=1 in OE=13) odčitamo podatek na izhodih y3-y0

Page 280: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

• ker se zapah odziva na spremembe na vhodu D ves čas, ko je C=1,morajo vrednosti I in s tem vrednosti na podatkovnih vhodih xi ostati stalne ves čas, ko je S=1 in W=1; pri uporabi flip-flopa to ne bi bilo potrebno, a bi bilo vezje z enakim številom celic dvakrat večje

• zahteva po čim večjem številu celic SRAM v vezju je tudi razlog, da v dejanskih tehnoloških izvedbah vrata AND nadomestimo z vrati NOR:

I O

WS O

I 1D Q

C Q≥1S

W

OI 1D Q

C Q&S

W

I O

WS =

=

Page 281: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

• pri pisanju moramo biti še posebej pozorni na to, da se v času, ko je W=1, ne spreminjajo vrednosti na naslovnih vhodih ai, sicer v enem pisalnem ciklu pride do zapisa istega podatka v dve ali več vrstic

• v osnovni izvedbi SRAM, ki smo jo obravnavali doslej, moramo dovajanje podatkov na naslovne vhode ai, podatkovne vhode xj ter kontrolne vhode CS, WE in OE med seboj sinhronizirati z ustrezno vhodno logiko, ki jo dogradimo k vezju pomnilnika; ker sam pomnil-nik te logike ne vsebuje, ga imenujemo tudi asinhronski SRAM

• v sinhronskem SRAM (SSRAM) je ta vhodna logika že vgrajena; onemogoča spremembe ai in xj med trajanjem pisalnega cikla, prožena pa je dinamično, kar zagotavlja še časovno natančen in sočasen zajem podatkov

Page 282: Univerza v Ljubljani Fakulteta za elektrotehniko

&

x/y3 x/y2 x/y1 x/y0

&

&WE

OE

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

I O

WS

CS1 1 1 1

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

• nekatere različice SRAM, od nekaterih najstarejših asinhronskih do najsodobnejše sinhronske izvedbe QDR SSRAM (quad-data-rate =štirikratna hitrost prenosa podatkov), uporabljajo ločeni vodili za vhodne in izhodne podatke

• preostale izvedbe SRAM,npr. LW SSRAM (late-write = zakasnjenozapisovanje) in ZBT SSRAM (zero-bus-turnaround = preklop smeri vodila brez zakasnitve), pa so narejene za dvosmerno vodilo:

Page 283: Univerza v Ljubljani Fakulteta za elektrotehniko

8K×8 SRAM HM6264 z 8192-imi 8-bitnimi vrsticami in 512K×8 SRAM HM628512 s 524288-imi 8-bitnimi vrsticami (oba Hitachi); I/O pri WE = 1 delujejo kot vhodi (skoznje zapisujemo podatke v vrstice, pri WE = 0 pa kot izhodi

(skoznje podatki dostopajo iz pomnilnika na vodilo)

Programirljiva sekvenčna vezjaStatični bralno-pisalni pomnilnik (SRAM)

2M×36 QDR II SSRAM µPD44645362 (NEC/Renesas)

z 2097152-imi 36-bitnimi vrsticami

Page 284: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaDinamični bralno-pisalni pomnilnik (DRAM)

• dinamični bralno-pisalni pomnilnik (angl. dynamic RAM, DRAM)je zgrajen iz spominskih celic DRAM (angl. DRAM cells)

• celico DRAM sestavljata le en tranzistor in en kondenzator:

• napetost na kondenzatorju (UC) je 1-bitni podatek• navpični vodnik je povezan z vodilom• napetost na vodoravnem vodniku določa, kdaj ima podatek dostop do

vodila; tranzistor je zgrajen tako, da ima povezava S-D pri UGS>0 niz-ko upornost in omogoča tok v obe smeri (t.j. tako IDS>0 kot IDS<0), pri UGS≤0 pa zelo visoko upornost in deluje kot razklenjeno stikalo

C

S DG

Page 285: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaDinamični bralno-pisalni pomnilnik (DRAM)

1 1

a1 a0

&

&

&

&

dekodirnik

kodirnik

&

&WE

OE

chip select CSwrite enable

outputenable

1 1 1 11 1 1 1

x/y3 x/y2 x/y1 x/y0

Page 286: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaDinamični bralno-pisalni pomnilnik (DRAM)

1 1

a1 a0

&

&

&

&

dekodirnik

kodirnik

&

&WE

OE

chip select CSwrite enable

outputenable

1 1 1 11 1 1 1

x/y3 x/y2 x/y1 x/y0

CS

Pisanje podatka:1) na x3-x0 dovedemo podatek2) postavimo CS=1 in WE=1; napetost se

z x3-x0 prenese na kondenzatorje navrhu navpičnih vodnikov

3) na a1-a0 dovedemo naslov vrstice, v kateroželimo zapisati podatek; tranzistorji v tej vrstici se odpro in napetost z navpičnih vodnikov se prenese na kondenzatorje vcelicah DRAM v tej vrstici

4) postavimo WE=0

Page 287: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaDinamični bralno-pisalni pomnilnik (DRAM)

1 1

a1 a0

&

&

&

&

dekodirnik

kodirnik

&

&WE

OE

chip select CSwrite enable

outputenable

1 1 1 11 1 1 1

x/y3 x/y2 x/y1 x/y0

CS

Branje podatka:1) na x3-x0 dovedemo napetost na meji med

območjema logične 0 in 1 (UCC/2)2) postavimo CS=1 in WE=1; UCC/2 se pre-

nese na kond. na vrhu navpičnih vodnikov3) postavimo WE=0; UCC/2 ne vzdržujemo več4) na a1-a0 dovedemo naslov vrstice; tranzis-

torji vrstice se odpro, kondenzatorji z UC=0se naelektrijo, z UC=UCC pa razelektrijo,kar napetost na ustreznih navpičnih vodni-kih zniža pod UCC/2 oz. zviša nad UCC/2

5) postavimo OE=1; izravnalniki pretvorijonapetosti pod oz. nad UCC/2 v yi =0 oz. 1

6) odčitamo podatek na izhodih y3-y0

Page 288: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaDinamični bralno-pisalni pomnilnik (DRAM)

• ker pride ob vsakem branju podatka do delne razelektritve konden-zatorjev, v katerih je zapisana logična 1, in delne naelektritve kondenzatorjev, v katerih je zapisana logična 0, je potrebno prebrano vrstico osvežiti: ob branju jo shranimo v register in jonato ponovno zapišemo

• kondenzatorji v celicah DRAM se tudi sicer postopoma praznijo, zato je potrebno občasno osveževati tudi neprebrane vrstice; v tipičnih celicah DRAM se napetost na kondenzatorjih prepolovi po približno 100 ms, zato vse zapisane podatke osvežujemo vsakih 64 ms

• tudi pomnilnik DRAM je v osnovi asinhronski, če mu dodamo logiko za sinhronizacijo vhodov, pa dobimo sinhronski DRAM (SDRAM)

• večina današnjih izvedb, vključno z vsemi različicami trenutno najbolj razširjenega DDR SDRAM (double data rate = dvakratna hitrost prenosa podatkov), uporablja dvosmerno vodilo

Page 289: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaDinamični bralno-pisalni pomnilnik (DRAM)

4 GB DDR3 SDRAM modul MT16JSS51264H (Micron Technology) vsebuje 8 vezij 8M×64 DDR3 SDRAM spo 8388608-imi 64-bitnimi vrsticami

Page 290: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaGenerično logično polje (GAL)

• spomnimo se sedaj še programirljivega logičnega polja (PAL), ki ga uporabljamo za izvedbo preklopnih funkcij: povezave programiramov dekodirniku (spet s posebnimi orodji), kodirnik pa je nespremenljiv

Page 291: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaGenerično logično polje (GAL)

• v generičnih logičnih poljih (angl. Generic Array Logic, GAL) so programirljive povezave dekodirnika električno izbrisljive (kot v vezjihEEPROM), novejša vezja PAL in GAL pa vsebujejo tudi spominske celice (predvsem flip-flope D), zato jih lahko programiramo za izvajanje tako kombinacijskih kot sekvenčnih funkcij

vezja PAL16L8, PAL16R4, PAL16R6 in PAL16R8 (Texas Instruments); L8 je povsem kombinacijski, R4, R6 oz. R8 pa vsebujejo 4, 6 oz. 8 flip-flopov D; vezji GAL16V8

(Lattice) in PALCE16V8 (AMD) lahko emulirata delovanje vseh štirih vezij

Page 292: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaKompleksno programirljivo vezje (CPLD)

• vezja PROM, PLA, PAL in GAL uvrščamo med enostavna programir-ljiva vezja (angl. Simple Programmable Logic Devices, SPLD)

• za reševanje nalog, ki so preobsežne za eno samo vezje SPLD, lahko uporabimo dve ali več takšnih vezij, lahko pa uporabimo tudi kom-pleksno programirljivo vezje (angl. Complex Programmable Logic Device, CPLD), ki v enem integriranem vezju združuje več vezij SPLD (najpogosteje PAL/GAL), shematsko pa ga lahko prikažemo takole:

vhodno-izhodni blok (angl. input-output block, IOB) tvorijo vhodi in izhodi vezja CPLD ter njihove povezave s PSM

programirljiva matrica povezav (angl. programmable interconnect matrix oz. programmable switch matrix, PSM) omogoča povezavo poljubnega zunanjega vhoda ali izhoda SPLD na poljubni vhod katerega od preostalih SPLD ali zunanji izhod

SPLD SPLD SPLD SPLD

SPLD SPLD SPLD SPLD

Page 293: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaKompleksno programirljivo vezje (CPLD)

CPLD MAXII EPM570G (Altera) s 57 vezji SPLD in 34 vhodno-izhodnimi bloki;deluje pri napetosti 1.8 V in z maksimalno frekvenco 304 MHz

Page 294: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaElektrično programirljivo polje vrat (FPGA)

• alternativa vezju CPLD je električno programirljivo polje vrat(angl. Field-Programmable Gate Array, FPGA)

• vezja CPLD so zgrajena iz nekaj vezij PAL ali GAL, vezja FPGA pa iz znatno manjših programirljivih logičnih blokov (angl. program-mable logic block oz. configurable logic block), ki omogočajo le izvajanje preprostih kombinacijskih in/ali sekvenčnih funkcij, a je teh blokov bistveno več (tudi več stotisoč), tvorjenje bolj zapletenih funkcij pa omogoča izredno prilagodljiva matrica povezav:

vhodno-izhodni blok tvorijo vhodi in izhodi vezja FPGA, vsak blok je programirljiv

programirljiva matrica povezav omogoča povezavo poljubnega izhoda PLB na poljubni vhod katerega od preostalih PLB

programirljivi logični blok (PLB) je zgrajen iz nekaj deset celic SRAM, nekaj multipleksor-jev in nekaj flip-flopov D

Page 295: Univerza v Ljubljani Fakulteta za elektrotehniko

Programirljiva sekvenčna vezjaElektrično programirljivo polje vrat (FPGA)

FPGA Spartan-6 XC6SLX45T (Xilinx) s 6822 programirljivimi logičnimi bloki, vsak od katerih vsebuje 60 celic SRAM in 8 flip-flopov D;

deluje pri napetosti 1.2 V in z maksimalno frekvenco 390 MHz