Digitális technika II

Download Report

Transcript Digitális technika II

Digitális technika
II. Rész:
Sorrendi hálózatok
Dr. Turóczi Antal
[email protected]
Sorrendi hálózatok
• Bevezető
–
A
0
B
0
0
Q
0
1
0
0 Y
A hálózatban visszacsatolás van
•
–
0
A kimenet nem csak a bemenetektől függ, hanem a VAGY kapu kimenetén előzőleg észlelt logikai értéktől is
A hálózat egyenletének felírásához szükség van egy közbenső (belső) változóra is
•
•
A Q’-vel jelölve a belső változó aktuális, és Q-val az előző értékét logikai függvénykapcsolat írható fel a közbenső
változóra és a kimenetre is
Tegyük fel, hogy kezdetben
A
0
B
0
Q
0
Y
0
A
B
2
Q
Y
Sorrendi hálózatok
• Bevezető
–
A
0
B
1
0
Q
0
1
1
1 Y
A hálózatban visszacsatolás van
•
–
0
A kimenet nem csak a bemenetektől függ, hanem a VAGY kapu kimenetén előzőleg észlelt logikai értéktől is
A hálózat egyenletének felírásához szükség van egy közbenső (belső) változóra is
•
•
A Q’-vel jelölve a belső változó aktuális, és Q-val az előző értékét logikai függvénykapcsolat írható fel a közbenső
változóra és a kimenetre is
Tegyük fel, hogy kezdetben
A
0
0
B
0
1
Q
0
0
Y
0
1
3
A
B
Q
Y
Sorrendi hálózatok
• Bevezető
–
A
1
B
1
10
01
1
Q
01
01
Y
A hálózatban visszacsatolás van
•
–
10
A kimenet nem csak a bemenetektől függ, hanem a VAGY kapu kimenetén előzőleg észlelt logikai értéktől is
A hálózat egyenletének felírásához szükség van egy közbenső (belső) változóra is
•
•
A Q’-vel jelölve a belső változó aktuális, és Q-val az előző értékét logikai függvénykapcsolat írható fel a közbenső
változóra és a kimenetre is
Tegyük fel, hogy kezdetben
A
0
0
1
B
0
1
1
Q
0
0
1
Y
0
1
0
4
A
B
Q
Y
Sorrendi hálózatok
• Bevezető
–
A
0
B
1
1
Q
1
0
1
0 Y
A hálózatban visszacsatolás van
•
–
1
A kimenet nem csak a bemenetektől függ, hanem a VAGY kapu kimenetén előzőleg észlelt logikai értéktől is
A hálózat egyenletének felírásához szükség van egy közbenső (belső) változóra is
•
•
A Q’-vel jelölve a belső változó aktuális, és Q-val az előző értékét logikai függvénykapcsolat írható fel a közbenső
változóra és a kimenetre is
Tegyük fel, hogy kezdetben
A
0
0
1
0
•
•
B
0
1
1
1
Q
0
0
1
1
Y
0
1
0
0
Azonos bemenő jel, mégis különböző kimeneti érték
A kimenet a belső állapotváltozótól is függ
5
A
B
Q
Y
Sorrendi hálózatok
• Bevezető
– Az előző példában a bemeneti (primer) változókon kívül szükség volt köztes változóra
• Belső változó
• Szekunder változó
– Két egyenlet szükséges a működés leírásához
• Belső állapot függvény
Q’ = FQ(A,B,Q)
• Kimeneti függvény
Y = FY(A,B,Q)
– A hálózat működése a bemeneti logikai értékek időbeli sorozatától is függ
• Sorrendi hálózat
• Szekvenciális hálózat
– A hálózat működését befolyásolja a belső változó kezdeti értéke is
6
Logikai hálózatok
• Logikai hálózatnak nevezzük azokat a rendszereket
– melyeknek bemeneti illetve kimeneti jelei logikai jelek,
– a kimeneti jeleket a bemeneti jelek függvényében többé-kevésbé bonyolult logikai
műveletsorozat eredményeként állítják elő.
• A logikai hálózatok két nagy csoportja
– Kombinációs hálózatok
•
•
Kombinációs hálózatoknak nevezzük azokat a logikai hálózatokat, melyeknek kimeneti jelei csak a bemeneti
jelek pillanatnyi értékétől függnek
„Emlékezet” nélküli hálózat
– Sorrendi hálózatok
•
•
•
•
•
Sorrendi (szekvenciális) hálózatoknak nevezzük azokat a logikai hálózatokat, melyek kimeneti jelei nemcsak a
pillanatnyi bemeneti jelkombinációtól függnek, hanem attól is, hogy korábban milyen bemeneti jelkombinációk
voltak
„Emlékezettel” (memóriával) rendelkező hálózat
Ugyanazon bemeneti kombinációhoz más-más kimeneti kombináció tartozhat, a szekunder változók aktuális
értékétől függően.
A szekunder változók értékét a korábbi bemeneti kombinációk és azok sorrendje is befolyásolja
Előző állapotuktól függően különböző módon reagálnak a bemenetükre
– Véges állapotú automaták (Finite State Machines)
7
Sorrendi hálózatok
• Információ tárolás
–
A sorrendi hálózatnak tehát emlékeznie kell ezekre a bemeneti jelkombinációkra
•
•
–
Általában elegendő korlátozott mennyiségű korábbi jelkombinációt megjegyeznie
Az emlékezéshez a sorrendi hálózatnak külön „memóriával”, tárolóegységgel kell rendelkeznie
A sorrendi hálózat leglényegesebb és legbonyolultabb része a tárolóegység.
•
•
A tárolóegység tároló elemekből áll
Egy tároló elem 1 bit információ tárolását végzi
Kimenet
Bemenet
Kombinációs
hálózat
Memória
–
Sorrendi hálózat memória elemekkel (tárolókkal) kiegészített kombinációs hálózatból építhető fel
•
•
A tároló elemek tartalma (a szekunder változók) a hálózat előéletéről őriznek információt
A bemenetek és a hálózat előélete együttesen, és egyértelműen meghatározzák a kimeneti jelet (jeleket)
8
Sorrendi hálózatok
• Információ tárolás
…
N
Q1
Q2
(késleltetés nélküli)
Qr
Ym
Kimenetek
Q’1
Q’2
…
…
Szekunder változók
Ideális
Kombinációs
hálózat
…
Bemeneti (primer) változók
Y1
A
B
Q’r
Dr
D2
D1
– A kombinációs hálózatnál tapasztalt be- és kimenetek közötti késleltetés a tárolási
képesség alapja
• A tranziens lezajlásáig a kapuk kimenetén az előző bemeneti kombinációk hatására kialakult
logikai szint van
9
Sorrendi hálózatok
• Bevezető
–
A
1
B
1
10
10
01
1
Q
01
01
Y
A hálózatban visszacsatolás van
•
–
tpd
A kimenet nem csak a bemenetektől függ, hanem a VAGY kapu kimenetén előzőleg észlelt logikai értéktől is
A hálózat egyenletének felírásához szükség van egy közbenső (belső) változóra is
•
•
A Q’-vel jelölve a belső változó aktuális, és Q-val az előző értékét logikai függvénykapcsolat írható fel a közbenső
változóra és a kimenetre is
Tegyük fel, hogy kezdetben
A
0
0
1
B
0
1
1
Q
0
0
1
Y
0
1
0
10
A
B
Q
Y
Sorrendi hálózatok
• Sorrendi hálózat modelljei
– Mealy modell
Bemenetek
Y
X
Q
Kombinációs
hálózat
Kimenetek
Q’
Szekunder változók
Memória
– A kimenetek a bemenetek és az előző állapot (szekunder változók) függvénye
Q’ = FQ(X,Q)
Y = FY(X,Q)
11
Sorrendi hálózatok
• Sorrendi hálózat modelljei
– Moore modell
Bemenetek
X
Q*
Szekunder változók
Kombinációs
hálózat
Q’*
Memória
Kombinációs
hálózat
Y
Kimenetek
– A kimenetek csak az előző állapot (szekunder változók) függvényei
Q’* = FQ*(X,Q*)
Y = FY*(Q*)
12
Sorrendi hálózatok
• Sorrendi hálózat modelljei
– Bebizonyítható
• Minden Mealy modellnek előállítható egy Moore ekvivalense
• Minden Moore modellnek előállítható egy Mealy ekvivalense
– Bármely modellt is használjuk
• Egy sorrendi hálózat működése két logikai függvénnyel írható le
– Szekunder változók függvénye
– Kimeneti függvény (függő változók függvénye)
• A két függvény együttesen határozza meg a sorrendi hálózat működését
– A belső (szekunder) változók tárolják a hálózat előző vezérlési állapotait
– A bemenő (primer) és belső (szekunder) változók együtt egyértelműen meghatározzák a kimeneteket
– A hálózat modellje, függvényei nem írják le a tranzienseket
• A függvényekben az idő nem szerepel változóként
• Az állapotváltások között azonban rövid átmeneti jelenségek játszódnak le
n-edik állandósult állapot
tranziens állapot
(n+1)-edik állandósult állapot
idő
13
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– A működés folyamata
• A hálózat belső állapotát a szekunder változók értéke határozza meg
– A szekunder változók száma megadja a lehetséges állapotok maximális számát
» Nem feltétlenül jön létre minden lehetséges belső állapot
– A példában 1 változó (Q) 21 = 2 lehetséges állapot
• Bekapcsoláskor a sorrendi hálózat a szekunder változók kezdeti értékeinek megfelelő
állapotban van
• A bemenő kombinációk változásának hatására a rendszer újabb állapotba kerülhet
• További bemeneti változások hatására újabb, vagy akár korábbi állapotokba ugorhat
– Azonos bemenő jelre más-más szekunder változó és kimeneti kombináció tartozhat
• A sorrendi hálózat aktuális állapota megadja a rendszer előéletét
– Mi történt vele az előzőekben
– Egy n hosszúságú bemeneti sorozat (szekvencia hatására)
•
•
•
n hosszúságú belső állapot (szekunder változó) szekvencia jön létre
n hosszúságú kimeneti szekvencia generálódik
Ha n véges: véges sorrendi automatáról beszélünk
14
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Állapot gráf
• Grafikus szemléltetés
• A sorrendi hálózat belső állapotait a gráf csomópontjai szemléltetik
• A csomópontokat összekötő irányított élek (nyilak) az egyik állapotból a másikba történő
átmenetet reprezentálják
–
–
–
–
–
Ha nem teljesül semmilyen továbblépési feltétel, marad az előző állapotban
Több feltétel is kielégítheti a továbblépés feltételét
Egy állapotból visszafelé, egy előző állapotba is lehetséges állapotátmenet
Az éleken az átmenetet előidéző bemeneti x kombináció szerepel
Emellett az y kimeneti értékeket is gyakran fel szokás tüntetni
Egyik
továbblépési
feltétel sem
teljesül
Xi1/yi1
Xj2/yj2
Xi2/yi2
qi
Xj1/yj1
Xk1/yk1
Xk2/yk2
Teljesül
valamely
továbblépési
feltétel
qj
Xm1/ym1
qm
qk
15
Xm2/ym2
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Állapot gráf
• Grafikus szemléltetés
• A sorrendi hálózat belső állapotait a gráf csomópontjai szemléltetik
• A csomópontokat összekötő irányított élek (nyilak) az egyik állapotból a másikba történő
átmenetet reprezentálják
– Az előző példa állapot gráfja
– Két belső állapot, két csomópont
X2/y0
X3/y1
X0/y0
X1/y1
q1
q2
10/0
X1/y0 X /y
2 0
X3/y0
11/1
00/0
0
01/1
X0/y0
1
00/0
A
B
Q
Y
16
01/0 10/0
11/0
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Állapottábla
• Táblázatos formában adja meg, hogy adott bemeneti kombinációk hatására mely állapotból
mely állapotba ugrik a rendszer
• A kimenet alakulását is ebben a táblázatban írhatjuk fel
• A kombinációs hálózatoknál használt igazságtáblázathoz hasonló
10/0
11/1
00/0
0
1
01/1
00/0
Q
0
0
0
0
1
1
1
1
A
0
0
1
1
0
0
1
1
B
0
1
0
1
0
1
0
1
17
Q’
0
0
1
1
0
1
1
1
Y
0
1
0
1
0
0
0
0
01/0 10/0
11/0
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Példa (Lovassy, Pődör: Digitális Technika II. előadás)
– Italautomata
• 150 Ft egy üdítő
• A gép 50 és 100 Ft-os érmét fogad el, és visszaad
• Belső állapotok száma 3
START állapot
0
100Ft be
üdítő ki
50Ft be
üdítő ki
50Ft be
100Ft be
2
50Ft be
1
50 Ft bedobva
100 Ft bedobva
18
100Ft be
üdítő, 50Ft ki
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Példa (Lovassy, Pődör: Digitális Technika II. előadás)
– Italautomata állapot gráf, állapottábla
• x1: 100Ft; x0: 50 Ft
• y1: üdítő ki; y0: 50 Ft ki
• Belső állapotok 00,01,10
00/00
0
10/11
10,10
01,00
01,10
10,00
2
Előző
állapot
01/00
1
00,00
00,00
19
Bemenet (x1x0) 100/50Ft
00
01
10
11
0 (0 Ft)
0
2
1
x
1 (100 Ft)
1
0
0
x
2 (50 Ft)
2
1
0
x
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Vezérlési táblázat
•
Az állapottábla célszerűen átalakított formája
–
–
–
–
Az oszlopok a bemenő jelek
A sorok a visszacsatolt jelek (a késleltetés után előállt)
A cellákba a bemenő jel hatására keletkező Q’ jelet írjuk
Stabil állapotokat bekarikázzuk
» Ahol Q = Q’ nincs állapotváltozás a visszacsatoló hurokban
» Ahol Q ≠ Q’ instabil állapot, állapotváltozás zajlik a
visszacsatoló hurokban (a jel még nem „ért át” a késleltetőn)
– Pl.
» kiindulás: Q = A = B = 0
» bemeneti szekvencia: 01, 11, 01, 00
i
0
A
B
1
2
Q
Y
3
4
5
6
7
Q
0
0
0
0
1
1
1
1
A
0
0
1
1
0
0
1
1
B
0
1
0
1
0
1
0
1
20
Q’
0
0
1
1
0
1
1
1
Y
0
1
0
1
0
0
0
0
Vezérlési táblázat
Átmeneti táblázat
AB
Q
00 01 13 1 2
04 15 1 7 16
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Karnaugh táblás leírás
• Példa két belső (szekunder) változóra
– Kiindulás: Q2Q1 = AB = 00 stabil állapot
– AB bemenet változzon AB = 01-re
»
»
Mindkét belső változó 0-ról 1-re vált
Mi történik, ha eltérő D késleltetések vannak
– Általában nem tudjuk előre melyik hurok a gyorsabb
»
Nem egyértelmű működés
AB
Q2Q1
• Versenyfutás jelenség
00
11
01
00
11
01
11
00
11
11
10
00
00
11
00
00
– Ha két szekunder változónak egyszerre kell változnia
– Kritikus versenyfutásról beszélünk, ha az eltérő
késleltetések miatt a hálózat eltérő stabil
állapotokba kerülhet (példában)
– Azaz ha a vezérlési táblázat versenyfutást
tartalmazó oszlopában több stabil állapot is van
– Nem kritikus, ha egy oszlopban csak egy stabil
állapot van (utolsó oszlop)
21
Sorrendi hálózatok
• Sorrendi hálózat működésének leírása
– Karnaugh táblás leírás
• Példa két belső (szekunder) változóra
– Kiindulás: Q2Q1 = 0; AB = 10 stabil állapot
– AB bemenet változzon AB = 11-re
»
»
»
Csak az Q1-hez tartozó hurok kell változzon
Nincs versenyfutás de instabil állapot
Újabb és újabb instabil állapotokba lépünk
AB
Q2Q1
• Oszcilláció jelenség
00
11
01
00
11
01
11
00
11
11
10
00
00
11
00
00
– A hálózat instabil állapotokat vesz fel egymás után
– Ha nincs stabil állapot a vezérlési tábla egy
oszlopában, az adott bemeneti kombináció esetén a
rendszer biztosan oszcillálni fog
22
Sorrendi hálózatok
• Aszinkron és szinkron sorrendi hálózatok
– Az ideális esettől eltérően
•
•
A valóságban a hálózat különböző pontjain eltérő, és akár időben változó késleltetést tapasztalhatunk
(pl. hőmérséklet változás miatt)
Ezek a tulajdonságok nehezen kézben tarthatók
– Aszinkron sorrendi hálózatok
•
•
•
•
•
•
Az eddigi példákban a hálózat jeleinek terjedését külső
tényezők nem befolyásolták
A kimenetek és a szekunder változók kizárólag a
bemenetek és a belső változók pillanatnyi értékétől
függenek
Az állapotváltozást a bemeneti kombinációk változása
okozza, a változások bármely időpontban
bekövetkezhetnek
A zavaró késleltetések miatt instabil állapotok, egyszeri
vagy többszörös állapotátmenetek, oszcilláció jöhet
létre
A tervezésnél ezekre különös tekintettel kell lenni
Az ilyen sorrendi hálózatokat aszinkron hálózatoknak
nevezzük
23
Sorrendi hálózatok
• Aszinkron és szinkron sorrendi hálózatok
– Szinkron sorrendi hálózatok
•
•
A zavaró késleltetések szempontjából jobban kézben tartható megoldás jelent a szinkronizáló jelek
használata, vagyis szinkron sorrendi hálózat építése
A szinkron sorrendi hálózatok működése ütemezett, az ütemező (szinkronizáló) jel az órajel
Kimenet
Bemenet
Kombinációs
hálózat
Órajel
•
•
Állapotváltozás csak az órajel által meghatározott ütemekben jöhet létre
A bemenő és a visszacsatolt jelek hatása nem azonnal érvényesül, csak a következő ütemben, a
következő órajel beérkezésekor
–
•
Tárolóegység
Az ütemezési időt úgy kell megválasztani, hogy a következő órajel előtt minden zavaró tranziens véget érjen
Az órajel szünetében a primer és szekunder változók csak „előkészülnek” a következő ütemre
–
A jelek már statikusak, nem változnak, így a tranziensek okozta problémák kiküszöbölhetők
24
Sorrendi hálózatok
• Aszinkron és szinkron sorrendi hálózatok
– Szinkron sorrendi hálózatok
• Minden változás az órajellel időzítve, azzal szinkronizálva megy végbe, előre pontosan definiált
időpillanatban, az órajel fel- vagy lefutó élének megérkezését követően
Felfutó él
Lefutó él
„1”
„0”
idő
1 Ciklusidő
• A szinkronizáció lehet
– Szintvezérelt (statikus)
» „0” vagy „1” logikai szintre
– Élvezérelt (dinamikus)
» Felfutó élre, 0 → 1 átmenetre
» Lefutó élre, 1 → 0 átmenetre
25
Sorrendi hálózatok
• Szinkron sorrendi hálózatok
Kimenet
Bemenet
Kombinációs
hálózat
Órajel
Tárolóegység
– Két fő eleme
• Tárolóegység (Memória)
– A korábbi bemeneti kombinációkra vonatkozó információ tárolására
• Bemeneti kombinációs hálózat
– A kimeneti jel előállítása
– A tárolandó információ előállítása
» A bemeneti kombinációkból és az előzőleg eltárolt információk együtt határozzák meg a
következő ciklusban eltárolandó információt
– Fontos különbség az aszinkron sorrendi hálózatokhoz képest
• A jelváltozások nem futnak rögtön végig a hálózaton, csak a következő ciklusban hatnak
26
Sorrendi hálózatok
• Szinkron sorrendi hálózatok
– A kimeneti jel előállítása itt is két féle modellel adható meg
Mealy modell
Moore modell
Q*n+1
Qn+1
Qn
Q*n
Órajel
Órajel
Qn+1 = FQ(Xn,Qn)
Yn = FY(Xn,Qn)
Q*n+1 = FQ(Xn,Q*n)
Yn
= FY(Q*n)
27
Sorrendi hálózatok
• Szinkron sorrendi hálózatok
–
A tárolóegység, memóriaegység tároló elemekből épül fel
•
•
–
Tároló alapelemek, elemi sorrendi hálózatok
•
•
–
Feladata: információ tárolás
Egy tároló elem 1 bit információt tárol
Kétállapotú (bistabil) billenő elemek (Flip-Flopok)
Mindaddig megtartják előző állapotukat míg külső jel ennek megváltoztatására nem kényszeríti
Készítsünk Set-Reset tárolót
•
•
Az S(Set) bemenetre adott „1”-es a kimenetet „1”-be állítja
Az R(Reset) bemenetre adott „1”-es a kimenetet „0”-ba állítja
R
0
0
0
0
1
1
1
1
S
0
0
1
1
0
0
1
1
Qn Qn+1
0
0
Változatlan
1
1
1
0
Beírás
1
1
0
0
Törlés
0
1
X
0
Tiltott
X
1
S
R
Qn
28
Qn+1 = FQ(S,R,Qn)
Yn = Qn
.
Qn+1
Sorrendi hálózatok
• Tároló elemek
–
Készítsünk Set-Reset tárolót
•
•
–
Az S(Set) bemeneten „1”-es a kimenetet „1”-be állítja
Az R(Reset) bemeneten „1”-es a kimenetet „0”-ba állítja
Állapot gráf
01/1
X0/0
0
0X/1
1
R
0
0
0
0
1
1
1
1
S
0
0
1
1
0
0
1
1
Qn Qn+1
0
0
Változatlan
1
1
1
0
Beírás
1
1
0
0
Törlés
0
1
X
0
Tiltott
X
1
10/0
–
Állapottábla
•
•
Nincs versenyfutás vagy oszcilláció - aszinkron működés is stabil
Vannak érdektelen (Don’t care állapotok)
Qn
Qn+1
RS
0 1
•
Qn+1-re
Az állapottáblát Karnaugh-táblának tekintve,
elvégezve az
összevonásokat az egyszerűsített logikai függvény:
1 1
X X
0 0
29
Sorrendi hálózatok
• Tároló elemek
– RS tároló (Filp-flop)
_ megvalósítása
• A Qn+1-et és Qn+1 -et megvalósító kombinációs hálózat logikai függvénye
• NAND kapus megvalósítás
–
Külön jelképi jelölés
R
0
0
1
1
–
Az RS tároló ebben a formájában még aszinkron működésű
30
S Qn+1
0 Qn
1 1
0 0
1 X
Tiltott
Szinkron sorrendi hálózatok
• Tároló elemek
– Szinkron RS tároló (Filp-flop) megvalósítása
• Az R és S bemenetek hatása a szinkronjel (órajel) megérkezésekor érvényesüljön
(Órajel)
C
– Statikus vezérlés (Szint vezérlés)
• A flip-flop csak akkor billen át, ha az órajel „1” értékű
• Ez a megoldás nem használható szinkron hálózat építésére – „átlátszó”
• Az órajel „1” értékénél az esetleges többszöri változás a bemeneten a kimenetet is többször
átbillentheti, és ez tovább is terjed a flip-flopon keresztül
• Ez idő alatt az ilyen elemekből felépített hálózat teljes egésze aszinkron módon viselkedne
• Ez szinkron hálózatban nem megengedhető – egy szinkron jel, egy változás
31
Szinkron sorrendi hálózatok
• Tároló elemek
– Szinkron RS tároló (Filp-flop) megvalósítása
• Élvezérlés (Dinamikus vezérlés)
–
–
–
–
Nem engedjük folyamatosan az órajel „1” értéke alatt hatni a bemeneteket
Csak egy rövid időre, amíg a tároló át tud billeni, ez után elvesszük a beíró (óra) jelet
Lerövidítjük az órajel „1” értékét
Szándékosan hazárdos órajel formáló hálózatot „csinálunk”
A
tpd
C
A
Y
B
32
B
tpd
Y
Szinkron sorrendi hálózatok
• Tároló elemek
– Szinkron RS tároló (Filp-flop) megvalósítása
• Kétfokozatú tároló (Master-Slave flip-flop)
• Az élvezérlésnél bonyolultabb megoldás
–
–
–
–
Az órajel „1” értékénél a beíró kapuk engedélyezik a Master-t, ezalatt a Slave letiltva
Az órajel „0” értékénél az átíró kapuk engedélyezik a Slave-et, ezalatt a Master letiltva
A bemeneten lévő esetleges zavaró tranziensek nem jutnak át a letiltott Slave-en
Bár aszinkron működésű, de nem átlátszó
Beíró kapuk
Átíró kapuk
Master
C
33
Slave
Szinkron sorrendi hálózatok
• Tároló elemek
– Szinkron RS tároló (Filp-flop) megvalósítása
• Kétfokozatú tároló (Master-Slave flip-flop)
– A Master-be írás alatt lehet tranziens
– De az átírás előtt már lecseng
– Átírás alatt Master kimenete állandó
Beíró kapuk nyitnak
Átíró kapuk zárnak
„1”
Átírás Slave-be
Master kimenete
már nem változhat
Beírás Master-ba
„0”
Átíró kapuk nyitnak
Beíró kapuk zárnak
34
Szinkron sorrendi hálózatok
• Tároló elemek
– Szinkron hálózatokban csak nem átlátszó tároló elemek használhatók
• Dinamikus vezérlésű (élvezérelt)
• Kétfokozatú (Master-Slave)
• Nincsenek instabil állapotok
– A legfontosabb alap tároló elemek a bemenetek számában és a bemeneti jel hatására
történő kimeneti jelváltozásban térnek el
•
•
•
•
RS tároló
JK tároló
T tároló
D tároló
35
Szinkron sorrendi hálózatok
• Tároló elemek
– RS tároló
• Működést leíró táblázat
– Az aktuális órajel előtti kimenet Qn
– Az aktuális órajel utáni kimenet Qn+1
• Állapottábla
– Karnaug-táblaként is értelmezhető
– Felírható a kimenet logikai függvénye
» A következő órajel megérkezésekor
R
0
0
0
0
1
1
1
1
S
0
0
1
1
0
0
1
1
Qn Qn+1
0
0
Változatlan
1
1
1
0
Beírás
1
1
0
0
Törlés
0
1
X
0
Tiltott
X
1
R
0
0
1
1
S Qn+1
0 Qn
1 1
0 0
1 X
Tiltott
Qn
RS
0 1
Állapot gráf
1 1
10/1
X0/0
X X
0
0 0
1
01/0
36
0X/1
Szinkron sorrendi hálózatok
• Tároló elemek
K
0
0
0
0
1
1
1
1
– JK tároló
• Kiküszöböli az RS tároló hátrányát
– Nincs tiltott bemeneti kombináció
• Működést leíró táblázat
– Az aktuális órajel előtti kimenet Qn
– Az aktuális órajel utáni kimenet Qn+1
• Állapottábla
J
0
0
1
1
0
0
1
1
Qn Qn+1
0
0
Változatlan
1
1
1
0
Beírás
1
1
0
0
Törlés
0
1
1
0
Billentés
0
1
K
0
0
1
1
J Qn+1
0 Qn
1 1
0 _0
1 Qn
– Karnaug-táblaként is értelmezhető
– Felírható a kimenet logikai függvénye
Qn
KJ
0 1
Állapot gráf
1 1
11/1
10/0
01/1
01/1
1 0
00/0
0 0
0
1
10/0
11/0
37
00/1
Szinkron sorrendi hálózatok
• Tároló elemek
– JK tároló
• Kétfokozatú (Master-Slave) megvalósítás
• RS tárolóból külön visszacsatolásokkal
• A Master-ba írást az előző állapot is vezérli
– A visszacsatoláson keresztül
J
K
0
0
1
1
J Qn+1
0 Qn
1 1
0 0
_
1 Qn
Q
_
Q
K
C
38
Szinkron sorrendi hálózatok
• Tároló elemek
– T tároló
• Csak egy bemenet
• Működést leíró táblázat
T
0
0
1
1
– Az aktuális órajel előtti kimenet
– Az aktuális órajel utáni kimenet Qn+1
Qn
Qn Qn+1
0
0
Változatlan
1
1
1
0
Billentés
0
1
T Qn+1
n
0 Q
_
1 Qn
• Állapottábla
– Karnaug-táblaként is értelmezhető
– Felírható a kimenet logikai függvénye
Qn
T
Állapot gráf
0 1
1/1
1 0
0/0
1 0
0
1
1/0
0 0
39
0/1
Szinkron sorrendi hálózatok
• Tároló elemek
– D tároló
D Qn Qn+1
0 0
0
0 1
0
1 0
1
1 1
1
• Csak egy bemenet
– Átmeneti információtárolásra
• Működést leíró táblázat
– Az aktuális órajel előtti kimenet Qn
– Az aktuális órajel utáni kimenet Qn+1
Törlés
D Qn+1
0 0
1 1
Beírás
• Állapottábla
– Karnaug-táblaként is értelmezhető
– Felírható a kimenet logikai függvénye
Qn
T
0 0
Állapot gráf
1/1
1 1
0/0
1 0
0
1
0/0
0 0
40
1/1
Szinkron sorrendi hálózatok
• Tároló elemek
– Alapállapotba állítás
• A berendezések bekapcsolásakor biztosítani kell a stabil, ismert alapállapot
– Általában aszinkron bemenetek
– A tároló kiindulási állapota lehet „0” vagy „1”
• Clear (Reset) bemenet - A tároló törlése, „0”-ába állítása
• Preset (Set) bemenet - A tároló beállítása, „1”-be állítása
Preset
Q
J
_
Q
K
Clear
C
41
Szinkron sorrendi hálózatok
• Tároló elemek
– T és D tároló megvalósítása
• JK tárolóval
T Qn+1
0 Qn
1 Qn
K
0
0
1
1
J Qn+1
0 Qn
1 1
0 0
1 Qn
42
D Qn+1
0 0
1 1
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
Kimenet
Bemenet
Kombinációs
hálózat
Órajel
Tárolóegység
– A szinkron sorrendi hálózat állapotai
• Minden tároló elem két állapotot vehet fel: „0” vagy „1”
• Ha n tárolóelem van, a teljes hálózatnak 2n állapota lehet
– Működés közben ezek közül nem feltétlenül valósul meg mindegyik (tiltott állapotok)
• Egyik állapotból a másikba csak egy újabb órajel hatására kerülhet a rendszer
– A bemeneti jelek és a tároló elemek tartalma együttesen határozzák meg a következő (Qn+1) állapotot
– A tároló elemek az előző órajel hatására létrejött belső (Qn) állapotot tárolják
• Az aszinkron hálózatokhoz hasonlóan többféle leírás mód
– Kapcsolási rajz
– Állapot gráf
– Állapottáblázat
43
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– Kapcsolási rajz
Q1
Q1
• Két tároló elem (T tárolók)
• Bemeneti és kimeneti kombinációs hálózat
• Sorrendi hálózatoknál a tároló elemek és visszacsatolások nehezítik a megértést
– Még ennél a viszonylag egyszerű hálózatnál is
– Bonyolultabb esetben átláthatatlanná válhat a kapcsolási rajz
– Az összeköttetéseket gyakran összekötő vonalak helyett azonos elnevezéssel helyettesítik
44
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
Q2
– Állapot gráf
• Szemléletes, könnyen áttekinthető
• Két (belső) szekunder változó
• Négy lehetséges állapot
Q1
– A lehetséges állapotokat a tároló elemek
kimeneti jelével kódoljuk
– Q2Q1 = 00, 01, 10, 11
– Egyik sem tiltott
– Ha X = 1 állapotváltozás következik be
X Y
Q2 Q1
0/0
00
1/0
11
0/0
1/0
1/0
0/1
01
1/1
45
10
0/0
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– Állapottáblázat
• Az állapot gráfból könnyen felírható
0/0
00
1/0
11
0/0
1/0
1/0
0/1
01
1/1
10
0/0
46
Q2n Q1n
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
X
0
1
0
1
0
1
0
1
Q2n+1 Q1n+1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
Y
0
0
0
0
0
0
1
1
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– Állapotegyenletek
• Egy sorrendi hálózat elvi működése két logikai függvénnyel írható le
– Állapotegyenlet (szekunder változók függvénye)
– Kimeneti függvény (függő változók függvénye)
Qn+1 = FQ(Xn,Qn)
Yn = FY(Xn,Qn)
– Annyi állapotegyenlet ahány szekunder változó (ahány tároló elem)
– Annyi kimeneti egyenlet, ahány kimenet
– A hálózat tényleges felépítésére nem ad információt
» JK, T vagy D tárolóval, NAND, NOR … ?
Q2nQ1n
X
Q2n+1
Q2n Q1n
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
Q2nQ1n
X
0
1
0
1
0
1
0
1
Q2n+1 Q1n+1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
Q1n+1
X
0
0 1
0 1
1 0
1 0
1 0
1 1
0 1
0
47
Y
0
0
0
0
0
0
1
1
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– Gyakorló feladatok
– Egyszerű szinkron sorrendi hálózatok tervezése
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– VHDL (VHSIC Hardware Description Language)
• VHSIC : very-high-speed integrated circuits
– Hardver leíró nyelv
• Logikai áramkörök egyszerű szöveges leírására fejlesztették ki (USA 1987)
– A logikai áramkörökre jellemző párhuzamosság kezelésére, leírására
» Konkurens
» Szekvenciális utasítások
– Logikai hálózatok
» Modellezésére
» Szimulációjára (testbench)
» Szintetizálására (hardver megvalósítás)
– IEEE szabvány
» IEEE Std 1076-1987
» IEEE Std 1076-1993
• A programozási nyelvekhez hasonló felépítés
– Automatizálható feldolgozás (text)
– Integrált áramkörök gyártásánál
– Programozható logikai áramkörök (CPLD, FPGA) fejlsztéséhez
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– VHDL
Be- kimenetek
definíciója
(portok)
Használt könyvtárak
(hasonló: #include)
in0
in1
Belső jelek,
konstansok stb..
definíciója,
inicializálása
inBus
clk
Működést leíró
utasítások
out0
out1
logic
outBus
Szinkron sorrendi hálózatok
• Szinkron sorrendi hálózat működése
– VHDL
• Értékadás
signal a : STD_LOGIC;
a
signal b : STD_LOGIC;
b
signal c : STD_LOGIC;
signal d : STD_LOGIC;
…
…
begin
a <= ’0’;
b <= ’1’;
c <= a and b;
d <= c or b when a = ’1’ else
a nor b when a = ’0’;
…
…
end Behavioral
c
• Konkurens utasítások
– Az utasítások egyszerre hajtódnak végre, a leírás sorrendjétől függetlenül
– Általában kombinációs hálózatot ír le
d
Szinkron sorrendi hálózatok
•
Szinkron sorrendi hálózat működése
– VHDL
• Értékadás
signal d : STD_LOGIC;
signal q : STD_LOGIC;
signal qn : STD_LOGIC;
signal reset : STD_LOGIC;
signal clk : STD_LOGIC;
…
begin
…
qn <= not q;
process
begin
if (reset = ’1’) then
q <= ’0’;
elsif (clk`event and clk = ’1’) then
q <= d;
end if;
end process;
…
end Behavioral;
• Szekvenciális utasítások
– A leírás sorrendjében hajtódnak végre
– Szekvenciális hálózatot lehet leírni
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Tárolóegységek összekapcsolásával, egyszerű bemeneti kombinációs hálózattal kiegészítve
–
–
–
–
Átmeneti tárolás
Léptetés
Vezérlési feladatok
Soros-párhuzamos, párhuzamos-soros átalakítás
53
Szinkron sorrendi hálózatok
•
Egyszerű szinkron sorrendi hálózatok
–
Regiszterek
•
Átmeneti tárolás
–
–
Azonos órajelű D tárolókból épül fel
Több bites adatok átmeneti tárolására
» Vezérlő információk
» Műveletek operandusainak és eredményének tárolása
signal d : STD_LOGIC_VECTOR(3 downto 0);
signal q : STD_LOGIC_VECTOR(3 downto 0);
signal clk: STD_LOGIC;
…
process
Begin
if (clear = ’1’) then
q <= ”0000”;
elsif (clk`event and clk = ’1’) then
q <= d;
end if;
end process;
54
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Léptetés
– Azonos órajelű D tárolókból épül fel
– A tárolók kimenete egy másik tároló bemenetére csatlakozik
» Az órajel hatására az információ az egyik tárolóból a másikba íródik
» Léptetőregiszter, shift-regiszter
– Léptetés jobbra
Q3
Q2
Process
Begin
if (clear = ’1’) then
q <= ”0000”;
elsif (clk`event and clk = ’1’) then
q(2 downto 0) <= q(3 downto 1);
q(3) <= qin;
end if;
end;
55
Q1
Q0
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Léptetés
– Azonos órajelű D tárolókból épül fel
– A tárolók kimenete egy másik tároló bemenetére csatlakozik
» Az órajel hatására az információ az egyik tárolóból a másikba íródik
» Léptetőregiszter, shift-regiszter
– Léptetés balra
Q3
Q2
Process
Begin
if (clear = ’1’) then
q <= ”0000”;
elsif (clk`event and clk = ’1’) then
q(3 downto 1) <= q(2 downto 0);
q(0) <= qin;
end if;
end;
56
Q1
Q0
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Léptetés
–
–
–
–
Jobbra, balra léptetés
Párhuzamos be- kimenet
Soros be- kimenet
Alkalmas soros/párhuzamos átalakításra
Soros
bemenet
–
–
–
–
–
–
–
–
–
SLI: baloldali soros bemenet
Párhuzamos
SRI: jobboldali soros bemenet
bemenetek
D: párhuzamos bemenetek
Q: párhuzamos kimenetek
CE: órajel engedélyező bemenet
C: órajel
L: beírás engedélyezés
LEFT: balra/jobbra léptetés
R: szinkron törlés
57
Párhuzamos
kimenetek
Soros
kimenet
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Léptetés
–
–
–
–
Jobbra, balra léptetés
Párhuzamos be- kimenet
Soros be- kimenet
Alkalmas soros/párhuzamos átalakításra
–
–
–
–
–
–
–
–
–
SLI: baloldali soros bemenet
SRI: jobboldali soros bemenet
D: párhuzamos bemenetek
Q: párhuzamos kimenetek
CE: órajel engedélyező bemenet
C: órajel
L: beírás engedélyezés
LEFT: balra/jobbra léptetés
R: szinkron törlés
Inputs
R
L
CE
LEFT
1
X X
X
0
1 X
0
SLI
Outputs
SRI
D3 : D0
C
Q0
Q3
Q2 : Q1
X
X
X
↑
0
0
0
X
X
X
D3 : D0
↑
D0
D3
Dn
0 0
X
X
X
X
X
No
Change
No
Change
No
Change
0
0 1
1
SLI
X
X
↑
SLI
q2
qn-1
0
0 1
0
X
SRI
X
↑
q1
SRI
qn+1
qn-1 or qn+1 = state of referenced output one setup time prior to active clock
transition
58
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Speciális számlálók
–
–
–
–
–
Gyűrűs-számláló
A LOAD bemenettel a D3-D0 bemeneteket 0001 alaphelyzetbe állítjuk
Az órajel engedélyezése után minden órajel ciklusban az 1-es továbblép a következő helyi értékre
A visszacsatolás miatt 4 ciklus után újra kezdődik a folyamat
A 2n (16) lehetséges állapotból csak n (4) valósul meg (12 tiltott állapot)
Q3Q2Q1Q0
0 0
0 0
0 1
1 0
0 0
0 0
…
59
0
1
0
0
0
1
1
0
0
0
1
0
0001
1000
CE = 1
0100
0010
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Álvéletlen szám generátor léptetőregiszterrel (LFSR (Linear Feedback Shift Register)
– Bitminta generálás
– Titkosítás
– Hibavédelem
– Ha a regiszterek tartalma 0 ez az állapot marad
– Nem nulla kezdőállapot után véges hosszúságú periodikus jelet állít elő a kimeneten
– A periódus hossz maximum 2n-1 (n a regiszterek száma)
60
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Álvéletlen szám generátor léptetőregiszterrel (LFSR (Linear Feedback Shift Register)
61
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Regiszterek
• Álvéletlen szám generátor léptetőregiszterrel (LFSR (Linear Feedback Shift Register)
62
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris felfelé számláló
– Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
– A hálózat 23 = 8 állapotot vehet fel, nincs tiltott állapot
Q2Q1Q0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Q1
Q0
000
111
T2
Q2
001
110
010
Q0
T1
Q1
011
101
100
– A Q0 bit minden órajelre billen
» T-tároló T = 1 állandó bemenettel
– A Q1 bit akkor billen a következő órajelre ha Q0 = 1
» T-tároló T = Q0 állandó bemenettel
– A Q2 bit akkor billen a következő órajelre ha Q1Q0 = 11
» T-tároló T = (Q0 ÉS Q1) állandó bemenettel
63
„1”
T0
Q0
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris felfelé számláló
– Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
– A hálózat 23 = 8 állapotot vehet fel, nincs tiltott állapot
– VHDL:
use IEE.STD_LOGIC_ARITH.ALL;
…
signal q : STD_LOGIC_VECTOR(2 downto 0);
signal clk: STD_LOGIC;
signal clear: STD_LOGIC;
…
process
Begin
if (clear = ’1’) then
q <= ”000”;
elsif (clk`event and clk = ’1’) then
q <= q+1;
end if;
end process;
64
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris lefelé számláló
– Pl. 7-től 0-ig (111b – 000b) egyesével számlál minden órajel ciklusban (3-bites)
– A hálózat 23 = 8 állapotot vehet fel, nincs tiltott állapot
Q2Q1Q0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
(7)
(6)
(5)
(4)
(3)
(2)
(1)
(0)
_
Q1
_
Q0
000
111
T2
Q2
001
110
010
_
Q0
T1
Q1
011
101
100
– A Q0 bit minden órajelre billen
» T-tároló T = 1 állandó bemenettel
– A Q1 bit akkor billen_a következő órajelre ha Q0 = 0
» T-tároló T = Q0 állandó bemenettel
– A Q2 bit akkor billen _
a következő órajelre ha Q1Q0 = 00
_
» T-tároló T = (Q0 ÉS Q1) állandó bemenettel
65
„1”
T0
Q0
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris lefelé számláló
– Pl. 7-től 0-ig (111b – 000b) egyesével számlál minden órajel ciklusban (3-bites)
– A hálózat 23 = 8 állapotot vehet fel, nincs tiltott állapot
– VHDL:
use IEE.STD_LOGIC_ARITH.ALL;
…
signal q : STD_LOGIC_VECTOR(2 downto 0);
signal clk: STD_LOGIC;
signal clear: STD_LOGIC;
…
process
Begin
if (clear = ’1’) then
q <= ”000”;
elsif (clk`event and clk = ’1’) then
q <= q-1;
end if;
end process;
66
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris fel-le számláló
– Az számlálási irányt megadó X bemenet függvényében
»
»
Pl. 7-től 0-ig (111b – 000b) egyesével számlál minden órajel ciklusban (3-bites)
Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
0
000
1
111
0
T2
0
1
001
1
0
1
110
0
Q2
010
1
1
1
101
0
1
100
0
T1
011
Q1
0
T0
67
Q0
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris fel-le számláló
– Az számlálási irányt megadó X bemenet függvényében
»
»
Pl. 7-től 0-ig (111b – 000b) egyesével számlál minden órajel ciklusban (3-bites)
Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
X
Q1
Q0
T2
Q1
Q2
Q0
X
Q0
X
T1
Q0
Q1
X
„1”
68
T0
Q0
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Bináris fel-le számláló
– Az számlálási irányt megadó X bemenet függvényében
»
»
Pl. 7-től 0-ig (111b – 000b) egyesével számlál minden órajel ciklusban (3-bites)
Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
– VHDL:
use IEE.STD_LOGIC_ARITH.ALL;
…
signal q : STD_LOGIC_VECTOR(2 downto 0);
signal x: STD_LOGIC;
signal clk: STD_LOGIC;
signal clear: STD_LOGIC;
…
process
Begin
if (clear = ’1’) then
q <= ”000”;
elsif (clk`event and clk = ’1’) then
if (x = ’0’) then q <= q+1;
else q <= q-1;
end if;
end if;
end process;
69
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Decimális felfelé számláló
–
–
–
–
Pl. 0-tól 9-ig (0000b – 1001b) egyesével számlál minden órajel ciklusban (4-bites BCD kód)
A hálózat 24 = 16 állapotot vehet fel, ebből 6 tiltott állapot
1001b-ig úgy működik mint egy bináris számláló, de 1001b után 0000b kell következzen
A bemeneti kombinációs hálózat a bináris számlálótól különböző lesz
Q3Q2Q1Q0
0000
1001
0001
1000
0010
0111
0011
0100
0110
0101
0
0
0
0
0
0
0
0
1
1
70
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Decimális felfelé számláló
– Pl. 0-tól 9-ig (0000b – 1001b) egyesével számlál
minden órajel ciklusban (4-bites BCD kód)
– A hálózat 24 = 16 állapotot vehet fel, ebből 6
tiltott állapot
0000
1001
0001
1000
0010
0111
0011
0100
0110
0101
71
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Számlálók
• Decimális felfelé számláló
– Pl. 0-tól 9-ig (0000b – 1001b) egyesével számlál
minden órajel ciklusban (4-bites BCD kód)
– A hálózat 24 = 16 állapotot vehet fel, ebből 6
tiltott állapot
– Q3 kimenet billen ha
» Q0 = Q1 = Q2 = 1 vagy
» Q3Q2Q1Q0 = 1001
– Q2 kimenet billen ha
» Q0 = Q1 = 1
– Q1 kimenet billen ha
» Q0 = 1 és
» Q3Q2Q1Q0 ≠ 1001
– Az ”1001” állapot jelzéséhez BCD kódban elég
ha Q3 = Q0 = 1
72
Szinkron sorrendi hálózatok
• Egyszerű szinkron sorrendi hálózatok
– Frekvenciaosztás
•
n bites számláló frekvenciaosztása: 2n
f0
f0/2
f0/4
f0/8
f0/16
1
f0
0
73
Szinkron sorrendi hálózatok
• Egyszerű aszinkron sorrendi hálózatok
– Aszinkron számlálók
• Bináris felfelé számláló
– Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
– A hálózat 23 = 8 állapotot vehet fel, nincs tiltott állapot
Q2Q1Q0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Q1
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Q0
Q1
Q2
– A T tárolók kimenete a következő tároló órajel bemenetére csatlakozik
– A tárolók kimeneti jelének frekvenciája fele a bemeneti órajel frekvenciájának
– Előny:
» Nem kellenek kiegészítő kapuáramkörök
– Hátrány:
» A késleltetések miatt a tárolók nem egyszerre billennek
» Az órajel változásakor rövid időre határozatlan kimeneti jel
74
Szinkron sorrendi hálózatok
• Egyszerű aszinkron sorrendi hálózatok
– Aszinkron számlálók
• Bináris felfelé számláló
– Pl. 0-tól 7-ig (000b – 111b) egyesével számlál minden órajel ciklusban (3-bites)
– A hálózat 23 = 8 állapotot vehet fel, nincs tiltott állapot
Q2Q1Q0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Q1
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Q0
Q1
75
Q2
Szinkron sorrendi hálózatok
• Egyszerű aszinkron sorrendi hálózatok
– Diszkrét áramkörök
• D flip-flop
– 74AC11074
• J-K tároló
– CD54AC112
• Léptető regiszter
– CD4015
• Számláló
– CD40193
Texas Instruments
76
Memóriák
• Memóriák (tárolók)
– Nagyobb mennyiségű információ átmeneti vagy tartós tárolására szolgáló egységek
• Regiszterek
– Néhány bit, vagy bitcsoport (4, 8, 16, 32 …stb.) tárolására
• Több regiszterből nagyobb tárolókapacitású tárolók építhetők
– Kiegészítő és vezérlő egységek szükségesek
» A tárolt információ célszerű kezeléséhez
» Más áramkörökkel való együttműködés, illeszthetőség
» foglaltság, készenlét stb…
• Memóriák működése
– A „Cím” bemenetre érkező információval jelöljük ki
» az „Adat” csatlakozóra érkező, tárolandó
» az „Adat” csatlakozón távozó, kiolvasandó
információ memórián belüli helyét (memória rekeszt)
– A „Vezérlés” csatlakozásokon keresztül adhatunk
utasításokat
» beírás, kiolvasás stb…
vagy nyerhetünk információkat a memória működésére
vonatkozólag
» foglaltság, készenlét stb…
77
Cím
Memória
Vezérlés
Adat
Memóriák
• Működés
– Általános memória felépítése
Cella
Rekesz
• 1 db cella 1 bit tárolására képes
• 1 rekesz (sor) K db cellából épül fel. 1 sor
mérete K bit. Ettől függően léteznek:
– Byte szervezésű (K = 8)
– Szó szervezésű (K = 16)
– Duplaszó szervezésű (K = 32)
Tömb
Cím
(Address)
• A párhuzamos hozzáférésű memóriáknál az
adatbusz hozzávezetéseinek számát K adja
meg
N db memória
rekesz
• A memória tömb N = 2L db rekeszből épül fel
– A párhuzamos címzésű memóriáknál a
címbusz hozzávezetéseinek száma L
• Memória tárolókapacitása
– tárolt bitek száma = 1 rekesz mérete *
rekeszek darabszáma = K * N bit
• Vezérléstől függően 3 féle állapot:
– Írás:
R = 1, W = 0
– Olvasás :
R = 0, W = 1
– Üresjárat / tárolás: R = 1, W = 1
Vezérlés
R
78
W CLK
Memóriák
• Működés
– Általános memória felépítése
• Cella
– RS tároló + logika
W
R
0
0
1
1
O
I
• Rekesz
– Regiszterhez hasonlóan, tároló cellák párhuzamosan kapcsolva
O0
O1
O2
OK-1
0
1
2
K-1
W
I0
I1
I2
79
IK-1
S Qn+1
0 Qn
1 1
0 0
1 X
Memóriák
• Működés
– Általános memória felépítése
• Rekeszek memória tömbbé szervezése
80
Memóriák
• Működés
– Általános memória felépítése
• Rekeszek memória tömbbé szervezése
– IS65C256AL
81
Memóriák
• Működés
– Olvasás, párhuzamos független adat és címvezetékekkel
•
•
CE: Chip Enable
OE : Output Enable
82
Memóriák
• Működés
– Írás, párhuzamos független adat és címvezetékekkel
•
•
CE: Chip Enable
WE : Write Enable
•
Olvasás
83
Memóriák
• Csoportosítás
• A megcímzett rekesz hozzáférési módja szerint
– Tetszőleges (véletlen) hozzáférésű memória (RAM: Random Access Memory)
» Bármely adat a címtől függetlenül azonos idő alatt elérhető
– Soros hozzáférésű memória (SAM: Serial Access Memory)
» Az adat címétől függő elérési idő
» Pl. Mágnesszalagos tárolás
– Asszociatív memória (CAN : Content Addressable Memory)
» Megadja, hogy az adott információ a memória mely címén található
• Az információ beírhatósága szempontjából
– Csak olvasható memória (ROM: Read Only Memory)
– Módosítható memória (RWM: Read Write Memory)
» RAM
• A tárolás időbeli módja
– Statikus (pl.: SRAM)
» Tápfeszültség esetén az információt korlátlan ideig megőrzi
– Dinamikus (pl.: DRAM)
» A memória tartalma időnként frissítésre szorul (ez hátrány)
» (De) nagy tároló kapacitás érhető el
84
Memóriák
– Pl.:
• 216 bit tárolása (64 Kibit), 216 cella
• 8 bit (byte) szervezés: 8 KiByte, 213 rekesz
• Párhuzamos szervezéssel
– 8 adatvezeték
– 13 cím vezeték
• Soros szervezéssel csökkenteni lehet a kivezetések számát
– Egy 32 bites 2GiByte-os memóriának
» 32 adatvezetés
» 29 címvezeték
– Párhuzamos memória + soros-párhuzamos átalakítás
85
Memóriák
• Csoportosítás
Hozzáférés
Párhuzamos
Független címés adatbusz
Soros
Univerzális (egyesített)
Cím- és adatbusz
Address
Független címés adatbusz
Address/
Address
Data
Univerzális
Cím- és adatbusz
Address/
Data
Data
Data
ALE
WR
WR
WR
WR
RE
RE
RE
RE
CLK
CLK
CLK
CLK
M = 66
Q=1+1
512M x 32 (K =29, L=32) tömb esetén
M = 38
Q=1+1
M: chip lábainak száma
M=7
Q = 29+32
86
M=6
Q = 29 + 32
Q: 1 művelethez szükséges órajel periódusok száma
Memóriák
• Soros hozzáférésű memória
– Párhuzamos memóriából, soros-párhuzamos, párhuzamos-soros átalakítókkal
A0
A1
S→P
A2
AL-1
D1 D0 D2
DK
S↔P
A CLK
D
87
W R
Memóriák
• Bővítés
– Szóhossz bővítés
cs
w
R
Adrr
cs
Data
Data
D2K-1
DK+2
DK+1
DK
DK-1
D2
D1
D0
DK
DK-1
D2
D1
D0
88
Adrr
cs
Adrr
w
R
w
R
2 x 8k * 8 = 8k * 16
Memóriák
• Bővítés
– Kapacitás bővítés
89
Memóriák
• Írás,olvasás, törlés
MEMÓRIÁK
Egyéb
ROM
ROM
•
•
Írás a gyárban
Törlés nem
lehetséges
PROM
•
•
1x felhasználó •
által is írható
(beégethető)
•
Törlés nem
lehetséges
RAM
UVEPROM
Felhasználó
által is írható
Törlés 10”-es
UV-s
levilágítással
EEPROM
•
•
Felhasználó
által is írható
Elektromosan
törölhető
Statikus RAM
•
•
•
Tápfesz nélkül •
elveszti a
tartalmát
Gyors
•
Nem kell
frissíteni
Dinamikus RAM
Tápfeszültség
alatt is néha
frissíteni kell
Lassú
Nem illékony
Illékony
90
Mikroprocesszoros rendszerek
• Algoritmusok megvalósítása
– Műszaki rendszereket mindig valamilyen feladat megoldása érdekében építünk
– A feladatmegoldás általában valamilyen algoritmus szerint történik
•
•
•
•
Mérésadatgyűjtés
Adatok elemzése (pl. összehasonlítás)
Aritmetikai, logikai műveletek végzése az adatokon
Döntéshozatal stb.
– Az információfeldolgozás menetét (programját) építjük be a rendszerbe
• 1. megoldás:
– A rendszer összetevői és egymáshoz való kapcsolódásuk, sorrendiségük a
hardverben fixen „behuzalozva” jelennek meg
• 2. megoldás
– Az algoritmusnak megfelelő sorrendben, előre letárolt program szerint, egy
vezérlő berendezés segítségével aktivizáljuk az egyes műveletvégző
egységeket
91
Mikroprocesszoros rendszerek
• Algoritmusok megvalósítása
1. megoldás: Huzalozott program
• A rendszer összetevői és egymáshoz való kapcsolódásuk, sorrendiségük a hardverben fixen
„behuzalozva” jelennek meg
– Előny
» Egyes részfeladatok párhuzamosan
is végrehajthatók (gyors működés)
– Hátrány
» A hardver a rögzített struktúra miatt
csak az adott feladat megoldására
alkalmas
Kimenet
Bemenet
Hardverben rögzített
algoritmus
2. megoldás: Tárolt program
• Az algoritmusnak megfelelő sorrendben, előre letárolt program szerint, egy vezérlő berendezés
segítségével aktivizáljuk az egyes műveletvégző egységeket
– Előny
» Ha megváltoztatjuk a memória tartalmát
(a programot) más-más feladatra
használhatjuk
– Hátrány
» A részfeladatok nehezen
párhuzamosíthatók (lassúbb működés)
» Szekvenciális utasítás végrehajtás
92
Bemenet
Memória
Vezérlő
További
rendszerösszetevők
Kimenet
Mikroprocesszoros rendszerek
• Algoritmusok megvalósítása tárolt program alapján
Bemenet
Memória
Vezérlő
Kimenet
További
rendszerösszetevők
– Vezérlő egység
• A vezérelt rendszer kívánt algoritmus szerinti működését
– Felügyelik
– Szervezik
• A vezérlő működési programja lehet
– Fázisregiszteres
» Kötött struktúrájú
» A fázisregiszter (ez lehet egy számláló is) tárolja a vezérlő belső állapotát
» A belső állapotnak megfelelően kell előállítani a kimeneti vezérlő jeleket
» A módosítás nehézkes
– Mikroprogramozott
» A vezérlőt működtető utasítások sorozata (a program) egy memóriában van tárolva
» Az aktuális utasítás megadja az adott fázisban végrehajtandó műveletet és a következő utasítás
memórián belüli címét
93
Mikroprocesszoros rendszerek
• Algoritmusok megvalósítása tárolt program alapján
Bemenet
Memória
Vezérlő
Kimenet
További
rendszerösszetevők
– Memória
• A rendszer működése hatékonyabb, ha a memóriában
nem csak az utasítások hanem adatok is tárolhatók későbbi felhasználás céljából
– Programmemória
– Adatmemória
• Lehet közös memória (Neumann architektúra)
• Vagy fizikailag külön adat és programmemória (Harvard architektúra)
– Bemenetek- Kimenetek
• A bementi adatok fogadására
• A kimeneti adatok megjelenítésére
• A külvilággal való kommunikációra, illesztésre
94
Mikroprocesszoros rendszerek
• Algoritmusok megvalósítása tárolt program alapján
Bemenet
Memória
Vezérlő
Kimenet
További
rendszerösszetevők
– Műveletvégző egységek
• A gyakran használt aritmetikai és logikai műveletek végrehajtását célszerű külön erre a célra
tervezett egységre bízni
– ALU (Arithmetic Logic Unit)
• A vezérlési, aritmetikai és logikai, illetve egyéb feldolgozási műveleteket elvégző központi
egységet CPU-nak ( Central Processing Unit, központi feldolgozó egység) hívjuk
95
Mikroprocesszoros rendszerek
• CPU
– Az utasítások alapján előállítja a processzoron belüli és a processzorhoz kapcsolt külső
egységek működéséhez szükséges vezérlőjeleket
• Belső vezérlő jelek
– ALU működtetése
– Regiszterek és a belső sínrendszer közötti adatátvitel
• Külső vezérlőjelek
– A memória – CPU közötti adatátvitel
– A perifériák – CPU közötti adatátvitel
– A művelet-végrehajtás elemi lépéseit mikroprogram írja le, amely a programtárban
(memória) helyezkedik el
• A mikroprogram mikroutasításokból áll
– Műveleti kód
» Az adott fázisban elvégzendő feladathoz rendelt vezérlővonal állapotokat adja meg
– Címzésmód
» A mikroprogram végrehajtása hogyan folytatódik a következő utasítással a tárban , feltétel nélküli
vezérlésátadással (INC) vagy egy külső feltételtől függő vezérlésátadással (JMP)
– Következő mikroutasítás címe
» Automatikus inkrementálásnál lényegtelen
– Operandus(ok) cime(i)
» A memória mely elemeivel akarunk műveletet végezni
» Pl: A = A+B (A és B a memóriában tárolt adatok címei)
96
Mikroprocesszoros rendszerek
• CPU
– Cím- adat- és vezérlősínek (buszrendszer)
•
•
•
CPU a hozzá csatlakoztatott memóriaegységekkel, be- és kimeneti egységekkel, regisztertárakkal ezeken
keresztül tart kapcsolatot.
Több párhuzamos vezeték, melyeken az adatok, a memóriák egyes rekeszeit kiválasztó címek, és egyéb
vezérlőjelek utaznak
A síneken általában több eszköz osztozik, de egyszerre csak egy használhatja őket
97
Mikroprocesszoros rendszerek
• CPU
– Utasítás dekódoló és végrehajtó egység
•
•
•
Irányítja és ütemezi az összes többi egység működését
Az adatokat vagy címeket a megfelelő útvonalon vezeti
végig, hogy a kívánt helyre eljussanak
Ha szükséges, beindítja az ALU valamelyik műveletvégző
áramkörét
– PC (Program Counter Register)
programszámláló regiszter
•
•
A következő utasítás memóriacímét tartalmazza
Minden utasítás végrehajtása során egyel nő az értéke
– IR (Instruction Register) utasítás regiszter
•
•
•
A memóriából kiolvasott utasítást tartalmazza
A dekódoló egység értelmezi a tartalmát és ennek megfelelően ad ki vezérlő jeleket a többi egységnek
Ugrás esetén innen kerül a következő utasítás címe a PC-be, memória íráskor illetve olvasáskor ebből a regiszterből
jut el a kívánt cím a memóriához (az MA regiszteren keresztül)
– MA (Memory Address Register) memória címregiszter
•
•
Az MA és MD regiszterek tartják a közvetlen kapcsolatot a memóriával
Az MA-ból jut a memória bemeneteire a kiválasztott rekesz címe (adatírás, -olvasás, utasításbeolvasás esetén)
– MD (Memory Data Register) memória adatregiszter
•
A memóriából kiolvasott adat közvetlenül ide kerül, illetve a memóriába innen töltjük az adatokat
98
Mikroprocesszoros rendszerek
• CPU
– ALU (Arithmetic Logic Unit)
• CPU "kalkulátora”
• Néhány alapvető műveletet képes végrehajtani
–
–
–
–
–
Összeadás, kivonás, átvitel bitek kezelése
Fixpontos szorzás osztás
Logikai műveletek
Léptetések, bitek mozgatása jobbra/balra
Lebegőpontos aritmetikai műveletek
– Akkumulátor
• Ideiglenes tárolást (munkamemóriát) biztosít(anak)
az ALU számára
– Egyéb regiszterek
• A CPU belső tárolóelemei
• Írásuk és olvasásuk sokkal gyorsabb a memóriákénál
• Segítik a címképzést, tárolnak állapotjellemzőket,
státusokat (ezzel a vezérlést segítik)
• Tartalmuk gyorsan és egyszerűen elérhető a CPU
elemei számára
99
Mikroprocesszoros rendszerek
• CPU
– Pl. Adat beírása az akkumulátor regiszterbe
1.
2.
3.
lépés: A PC-ből az MA-n keresztül a memória bemeneteire jut az utasítás címe. A memória adatvezetékein megjelenik
a rekesz tartalma (vagyis a műveleti kód), az MD-n keresztül az IR-be kerül
lépés: Az utasítás dekódoló és végrehajtó egység beolvassa a műveleti kódot, és értelmezi azt
lépés: A PC értéke eggyel nő (így az operandus címére mutat)
100
Mikroprocesszoros rendszerek
• CPU
– Pl. Adat beírása az akkumulátor regiszterbe
1.
2.
3.
4.
5.
lépés: A PC-ből az MA-n keresztül a memória bemeneteire jut az utasítás címe. A memória adatvezetékein megjelenik
a rekesz tartalma (vagyis a műveleti kód), az MD-n keresztül az IR-be kerül
lépés: Az utasítás dekódoló és végrehajtó egység beolvassa a műveleti kódot, és értelmezi azt
lépés: A PC értéke eggyel nő (így az operandus címére mutat)
lépés: Az operandus címe a PC-ből a memória bemeneteire jut, majd tárolt érték az MD-n keresztül az akkuba kerül
lépés: A PC értéke megint eggyel nő, vagyis a következő utasításra mutat: elkezdődhet annak a végrehajtása.
101
Mikroprocesszoros rendszerek
• Mikroprocesszorok (mP), mikroszámítógépek (mC)
Mikroprocesszoros rendszerek
• Mikroprocesszorok (mP), mikroszámítógépek (mC)
ATmega168
TMS320C28x
TMS320C6416T