univerza v ljubljani fakulteta za elektrotehniko
TRANSCRIPT
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
Številski sistemi in kode
Številski sistemiNajpreprostejše štetje – zareze (od 6000 pr.n.št.)
Evropa Vzhodna Azija
Južna Amerika
Š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
Številski sistemiEgipčanski sistem (od 3000 pr.n.št.)
= 3244
= 21237
Številski sistemiBabilonski sistem (od 1900 pr.n.št.)
Številski sistemiBabilonski sistem (od 1900 pr.n.št.)
= 55*602 + 11*601 + 5*600 = 198665
Š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
Številski sistemiIndijsko – arabski sistem = desetiški z ničlo (od 300 pr.n.št.)
Š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
Številski sistemiDvojiški sistem – pretvorba iz desetiškega
(41)10
= 25 + 9 = 25 + 23 + 20 = (101001)2
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
Kode in kodiranjeDelitev kod
utežnostne
številske(BCD = Binary Coded Decimal)
kode
splošne (alfanumerične)
neutežnostne
reflektivne
enokoračne
druge
ASCII
Unicode
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
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
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
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
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
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)
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
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
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 = "@"
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: √,∞,∫,≈,∂,☺,☼,♀, ♦,♫, ...
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
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
• 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
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)
Booleova algebra
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)
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
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
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)
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
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
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
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
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"
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
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)
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
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
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
Preklopne funkcije in logična vrata
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
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
Preklopne funkcije in logična vrataK-diagram za funkcije štirih spremenljivk
x3x4
x1x200 01 11 10
00
01
11
10
x4
x1x2
x3
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
Preklopne funkcije in logična vrataK-diagram za funkcije petih spremenljivk
Preklopne funkcije in logična vrataK-diagram za funkcije šestih spremenljivk
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
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
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}
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
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
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
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
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
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
• 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 {↑}
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
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}
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
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
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
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č
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
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
&
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
Preklopne funkcije in logična vrataDinamični hazard
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)
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
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
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
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)
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
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
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"
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
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... ...
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)
...
Kombinacijska vezja
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)
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, ...)
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
=
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
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)
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)
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
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
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
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
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)
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
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
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)
Programirljiva kombinacijska vezja
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)
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
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
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
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
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
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
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)
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
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
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
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č")
Programirljiva kombinacijska vezjaEPROM in EEPROM
32 KB (256 Kbit) EPROM M27C256B(ST Microelectronics)
8 KB (64 Kbit) EEPROM AT28C64B(Atmel)
Programirljiva kombinacijska vezjaFlash
128 GB MLC/e-MMC NAND FlashEEPROM THGBM2T0DBFBAIF
(Toshiba)
2 GB (16 Gbit) SLC NAND Flash EEPROM TC58NVG4S2EBA00
(Toshiba)
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-)
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
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
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
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)
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
Programirljiva kombinacijska vezjaProgramirljivo logično polje (PAL)
≥1
y
1 1
a1 a0
&
&
&
&
programirljiv dekodirnik(matrika AND)
nespremenljivkodirnik(matrika OR)
1 1
a3 a2
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
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)
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
Računalniško podprto načrtovanjedigitalnih struktur
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)
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
Računalniško podprto načrtovanje dig. strukturMinimizatorji: Logic Friday
določitev vhodnih in izhodnih spremenljivk
Računalniško podprto načrtovanje dig. strukturMinimizatorji: Logic Friday
vnos podatkov v pravilnostno tabelo
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)
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
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
Računalniško podprto načrtovanje dig. strukturUrejevalniki shematskih prikazov: OrCAD Capture
vrata povežemo med seboj v preučevano vezje
Računalniško podprto načrtovanje dig. strukturUrejevalniki shematskih prikazov: OrCAD Capture
dodamo še vhodne signale
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
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
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
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
Računalniško podprto načrtovanje dig. strukturVHDL
(1) pisanje in (2) prevajanje kode VHDL v orodju VisualHDL
(1)
(2)
Računalniško podprto načrtovanje dig. strukturProgramatorji
univerzalni programator vezij, ki omogoča tudi programiranje makrostruktur
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
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
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)
Računalniško podprto načrtovanje dig. strukturSintetizatorji geometrije integriranih vezij: Encounter
sinteza geometrije integriranega vezja
Sekvenčna vezja
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... ... ... ... ... ... ... ...
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... ... ... ... ... ... ... ...
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)
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
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
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
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& &
=
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
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
=
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
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
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
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
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!!!
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!!!
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
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
&
&
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
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
&
&≈
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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)
• 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
• 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
• 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
• 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
• 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
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)
• 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
• č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
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
• 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
&
&
• 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
&
&
• 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
&
&
&
• 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
&
&
&
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)
• 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
• 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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
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
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
&
&
Tristanjski izravnalniki in vodila
• 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
• 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
• 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
• 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
• 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
• 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
• 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
Programirljiva sekvenčna vezja
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.)
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
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
=
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
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
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
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 =
=
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
&
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:
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
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
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
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
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
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
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
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
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
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
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
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
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