Professional Documents
Culture Documents
Multiplexer Áramkör
A multiplexer a távközléstechnikából ismert, ahol néhány vonalon igen nagy számú beszédcsatornát
visznek át. A digitális multiplexer olyan áramkör, amely 2N bemenetről adatokat választ le és azokat
egyetlen kimenő vonalon továbbítja. Az adatcsatorna kiválasztása a cim/szelektor vonalak
segítségével választja ki a bemeneti csatornát, amit a kimenetre írányít.
A példában egy 4 bemenetű multiplexert mutatunk be.
Igazságtáblázat
S1 S0 Y
0 0 I0
0 1 I1
1 0 I2
1 1 I3
Kapcsolási rajza a következő:
Általános függvény:
N
2 −1
Y = ∑ mi ∗ I i
i=0
Demultiplexer Áramkör
A demultiplexer N címvezeték segítségével szétosztja az egy adatvezetéken érkező
információt/adatot 2N kimenetre. Ebben az esetben egyetlen adatcsatornán érkeznek az adatok és
ezeket a demultiplexer szétosztja a megfelelő kimenetre.
A 4 bemenetű demultiplexer igazságtáblázata a következő:
Igazságtáblázat
S1 S0 Y3 Y2 Y1 Y0
0 0 0 0 0 D
0 1 0 0 D 0
1 0 0 D 0 0
1 1 D 0 0 0
Regiszterek
Amennyiben a digitális rendszerekben kis mennyiségű információt kell tárolni és az információ
gyors hozzáférése szükséges, akkor a tárolásra – memóriaként – flip-flopokat használunk. Több
flip-flop csoportos alkalmazásosával, amelyeket szinkron órajellel vezérelünk regisztereket tudunk
kialakítani (ppt => 3. oldal).
A regiszterek felhasználásában betöltött szerepük alapján megkülönböztetünk: sztatikus (tároló),
léptető (shift), forgató (rotate) regisztereket. A regiszterek ugyanakkor lehetővé teszik az információ
soros-párhuzamos átalakítását.
Párhuzamos beírású regiszter
A csak párhuzamos beírású regiszterek egyenlete a következő:
Qi=Di ;
Amennyiben nem csak beírni hanem tárolni is szeretnénk az információt, akkor a regiszter
bemenetére egy 2_1 bemenetű multiplexert csatlakoztatunk, amit a „load” bemenettel vezérelünk
(ppt => 4. oldal). Ebben az esetben a párhuzamos beírású regiszter egyenlete a következő:
Qi=LD ∗ D i + LD ∗Qi ;
Ha LD=1 akkor párhuzamos beírás történik, ha LD=0 akkor adattartás van.
Példa a párhuzamos beírású regiszterre a digitális mérleg (ppt => 5. oldal). A (ppt => 6. oldal) a
sínrendszerek jelölését mutatja be. Lásd ISE sin(7:0) vagy sinr(0:7) sínrendszer esetében a sínek
súlyozása különböző:
7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit
D7 D6 D5 D4 D3 D2 D1 D0
D0 D1 D2 D3 D4 D5 D6 D7
A másik példa (ppt => 7. oldal) „Adatok a visszapillantó tükörben” egy a személygépkocsikban
használatos példa amit műszerfalba, visszapillantó tükörbe épített kijelző segítségével jelenítenek
meg. A bemeneti demultiplexerrel kiválasztjuk, hogy a pillanatnyi sebességet, a megtett utat, a
környezeti hőmérsékletet, vagy az üzemanyag átlagfogyasztását írjuk be a megcímzett regiszterbe.
Míg a kimeneten a multiplexerrel kiválasztjuk az ábrázolni kívánt paramétert.
A (ppt => 8. és 9. oldalon) egy mikroprocesszorral vezérelt elektronikus sakktábla a regiszteres
példa. A 3x8-as dekóder segítségével kiválasztjuk a megfelelő oszlopot, amelybe a tábla állapotának
megfelelően beírjuk az adatot. A (ppt => 9. oldal) a beírás ütemezését és időben történő lefolyását
ábrázolja.
Shift Regiszter (jobbra/balra shift)
A léptető (shift, helyérték toló) regisztert (ppt => 10. oldal) az információ tárolásra és helyi
értékenkénti léptetésre alkalmazzuk. A léptetés iránya szerint megkülönböztetünk jobbra, balra,
illetve kétirányú (reverzibilis) regisztereket. A jobbra léptető regiszter állapotegyenlete a következő:
n n− 1
Q i =Q i − 1 ; Q0 =0 ;
ahol az alsó index a flip-flopnak a regiszterben elfoglalt helyét, a felső index az n/n-1. órajel
utáni/előtti állapotot jelenti.
A balra léptető regiszter állapotegyenlete pedig a következő:
Qni =Qin+1
− 1 ;Q m=0
Többfunkciós regiszter
A (ppt => 13. oldal) visszatér az előzőekben ismertetett példára „adatok a visszapillantó tükörben”
azzal a különbséggel, hogy a jelenlegi megoldás abban különbözik az előzőtől, hogy itt az adatokat
egy soros bemeneten küldjük a regiszterek bemenetére és az adat csupán a megadott regiszterbe
léptetjük be. A párhuzamos beíráshoz (4x8 adat + 3 vezrélő jel) képest itt a vezetékek száma jóval
kisebb (1 adat és 3 vezérlő jel).
A többfunkciós regiszter (ppt => 14. oldal) regiszterek esetében a kötelező állapottartás mellett még
rendelkezhet további választható bemenetekkel (párhuzamos beírás, jobbra/balra forgatás,
jobbra/balra shiftlés, stb.). A funkció kiválasztását a multiplexer vezérlő bemeneteivel lehet
kiválasztani (S1, S0).
A regiszter által végzendő műveletek kiválasztásának egyik lehetőségét mutatja a multiplexer által
választható műveleti függvény tábla a következő:
S1 S0 Művelet
0 0 Állapótartás
0 1 Párhuzamos beírás
1 0 Jobbra shift
1 1 Most nem használt
A (ppt => 15. oldal) által mutatott többfunkciós regiszter az alábbi igazságtábla alapján tartalmazza
a teljes bekötést:
S1 S0 Művelet
0 0 Állapótartás
0 1 Párhuzamos beírás
1 0 Jobbra shift
1 1 Értéktartás
A regiszter logikai függvénye pedig:
Qni =S 1 ∗ S 0 ∗ Qni −1 +S 1 ∗ S 0 ∗ Di+ S 1 ∗ S 0 ∗ Qni+1−1 + S1 ∗ S 0 ∗Qni −1
−1
;
n n−1 n −1
Qmsb =S1 ∗ S0 ∗Qi + S 1 ∗ S0 ∗ D i + S1 ∗ S 0 ∗ SHRIN +S 1 ∗ S 0∗ Q i −1 ;
n n −1 n −1
Qi =S 1 ∗ S 0 ∗ Qi +S 1 ∗ S 0 ∗ Di+ S 1 ∗ S 0 ∗ Qi+1 + S1 ∗ S 0 ∗ SHLIN ;
ahol a jelölések a fentiek szerint értendők. Az egyenlet az i. bemenet egyenlete, míg az lsb és msb
egyenletek esetében az egyenletek a (ppt => 15. oldal) megfelelően változnak.
Tervezési Példa
Feladat: A továbbiakban bemutatjuk egy multifunkciós regiszter tervezési példáját. Tervezzük meg
a (ppt => 16. oldal) által megadott többfunkciós regiszter tervezését. A regiszter által végzett
műveletek: értéktartás, balra shift, jobbra shift, párhuzamos beírás. A regiszter legyen 3 bites.
Megoldás:
A regiszter vezérlő bemenetei ld – párhuzamos beírás, shr – jobbra shift, shl – balra shift. Ennek
alapján az elvégezhető műveletek táblája a következő:
ld(22) shr(21) shl(20) Művelet
0 0 0 Állapottartás
0 0 1 Balra shift
0 1 0 Jobbra shift
0 1 1 Jobbra shift
1 0 0 Párhuzamos beírás
1 0 1 Párhuzamos beírás
1 1 0 Párhuzamos beírás
1 1 1 Párhuzamos beírás
0 1 1 1
ld 0 0 0 0
shl
S0 shr
0 1 0 0
ld 1 1 1 1
shl
Be Összeg
me C B1
net
0 0 0 0
ek
0 0 1 0
A A0 B B0 C S1 S0 A0
1 1 0 1 1 1
A1
0 0 0 0 0 0 0 0 0 1 1
0 0 0 1 0 0 1 B0
0 0 1 0 0 1 0
C= A1 ∗ A0 + A 0 ∗ B 1 ∗ B0 + A 1 ∗ B0
0 0 1 1 0 1 1
0 1 0 0 0 0 1 S1 B1
0 1 0 1 0 1 0 0 0 1 1
0 1 1 0 0 1 1 0 1 0 1
A0
0 1 1 1 1 0 0 1 0 1 1
A1
1 0 0 0 0 1 0 1 1 0 0
1 0 0 1 0 1 1 B0
1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0
Két N-bites szám összege mindig N+1 bites lesz. N>2 bit esetében a kombinációs tábla mérete 2N+N
sor.
Például:
(8+8)
8-bites összeadó: 2 = 65 536 sor
(16+16)
16-bites összeadó: 2 sor
32-bites összeadó: 2(32+32) sor
ppt => 23. oldal
Az egyszerű összeadó áramkör megtervezésének alapja a „paír-ceruza” algoritmus. Először
összeadjuk a legkisebb helyi értékű számjegyeket, ha van továbbvitel, azt megjegyezzük, majd a
következő számjegy következő helyi értékű számjegyeit és az alulról jövő továbbvitelt adjuk össze,
és így tovább az összeadás befejezéséig. Az alkatrész, amely ezt a számjegyenkénti (bitenkénti)
összeadást elvégzi a félösszeadó.
Félösszeadó
ppt => 25. oldal
A félösszeadó áramkör összeadja a bemenetére érkező két bitet és képezi az összeget és a
továbbvitelt.
C= A ∗ B ;
Bemenetek Összeg S= A ∗ B + A ∗ B= A ⊗ B
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
A félösszeadó azonban csak két egyedülálló bit összeadására képes, a kisebb helyi érték felől érkező
átvitelt, amely a több jegyű bináris számok összeadása során megjelenhet, nem tudja figyelembe
venni. Ilyen művelet elvégzéséhez a teljes összeadó alkalmas.
Teljes Összeadó
ppt => 26. oldal
A teljes összeadó segítségével megvalósíthatók az összeadó áramkörök anélkül, hogy sok logikai
kaput használnánk fel. A teljes összeadó igazságtáblázata, algebrai egyenletei és kapcsolási rajza a
következő:
ppt: 27.oldal
Fél összeadó és teljes összeadó áramkör segítségével megvalósítható N-bites összeadó. Ezt a fajta
összeadót „Carry-riple” összeadónak nevezzük. Azonban előnyösebb a 0. bit félösszeadója helyett
is teljes összeadó áramkört betenni, így létrehozhatunk egy komplex áramkört, melyet majd a
kivonó áramkörök megvalósításánál is felhasználunk. Lásd:
ppt => 28. oldal
Azonban a hullám összeadónak is van hátránya. Az áramköri késleltetések miatt az msb bit n*t d
késleltetési idő után jelnitti meg a helyes eredményt. Lásd:
ppt => 29. oldal
ppt => 30. oldal
ppt => 31. oldal
A hullám összeadókat lehet kaszkádban használni, figyelem kell azonban venni a késleltetési időket.
ppt => 32. oldal, 33. oldal, 34. oldal
Példát mutat egy egyszerű összeadó számológép megvalósítására (akár ISE-vel is kipróbálható),
illetve egy alkalmazási példát mutat a 34. fólia, ahol a mérleg „0 - ázását” lehet beállítani.
Inkrementáló Egység
A mikroprocesszorok egyik gyakori művelete az inkrementálás, ami a fólián látható módon
valósítható meg.
Bemenet Ki
Ai Bi EQi
0 0 1
0 1 0
1 0 0
1 1 1
EQ i= A ∗ B+ A ∗ B=A ⊙ B
Két N bites szám összehasonlításakor az érdekel minket, hogy A<B? vagy A=B? vagy A>B?
ppt => 37. oldal
N bites magnitúdó komparátor tervezésekor felhasználható az az algoritmus, amely bitenkénti
összehasonlítást végez, a legsúlyozottabb bitektől (msb) a legkevésbé súlyozottabb bitekig (lsb).
Egyenlőség esetén mint az előzőekben már bemutattuk, hogy minden bitnek egyenlőnek kell lennie,
a nagyobb és a kisebb reláció esetében addig kell végezni az összehasonlítást, míg valamelyik (i)
bitenkénti összehasonlításkor különbséget nem észlelünk.
Egy ilyen magnitúdó komparátort mutat be:
ppt => 38. oldal,
ahol két négy bites számot hasonlítunk össze. A felhasznált egy bitet összehasonlító egység
megtervezésekor figyelembe kell vennünk a felülről érkező összehasonlítási eredményt.
Mivel a felülről jövő összehasonlítási (GT – nagyobb, EQ – egyenlő, LT – kisebb) eredmények
egymást kizárják, ezért egy ilyen egység igazságtáblázata a következő:
ppt => 39. oldal,
1 X X 0 1 1 0 0
1 X X 1 0 1 0 0
1 X X 1 1 1 0 0
Az igazságtábla szerinti komparátor algebrai
egyenletei az alábbiak szerint alakulnak:
Szorzó egység
A szorzás hagyományosan történő megvalósítása esetében figyelembe kell vennünk, hogy:
0x0=0
0x1=1x0=0
1x1=1
A szorzási művelet megvalósításához az ÉS kapcsolatot használjuk. Ahogyan annak idején
tanították az elemi osztályban a szorzás megvalósítható ÉS kapcsolatokkal és összeadó
áramkörökkel. (lásd ppt => 43. oldal és hálózat 45. oldal)
lásd ppt => 43. oldal
Amint az észrevehető a szorzás hagyományos úton történő megvalósítása bonyolult és nagy logikai
erőforrásokat emészt föl (lásd következő fólia).
ppt => 45. oldal
Az összeadó hálózat esetében a a bemenetek megfelelő eltolással vannak bekötve, az egyes al-
szorzatok eltolása miatt.
ppt => 46. oldal
Kivonó egység
A kivonás is megvalósítható kombinációs hálózattal, hasonló módon mint a teljes összeadó áramkör
esetében – ennek ismertetésétől eltekintünk. A kivonás megvalósításakor a kölcsönvétel (borrow) az
amit figyelembe kell venni a teljes kivonó áramkör ilyenfajta megvalósításakor.
ppt => 47. oldal
A mellékelt példa egy 8 bites összeadó-kivonó áramkört valósít meg. A megoldás tartalmaz egy
összeadó és egy kivonó áramkört. A művelet eredményének kiválasztását a választó multiplexer
segítségével valósul, majd az eredményt tároljuk egy regiszterben.
Ez a fajta megoldás igen pazarló, mivel párhuzamosan végezzük az összeadást és a kivonást is.
ppt => 48. oldal – 51. oldal
A kivonás alkalmazására példa a színes nyomtató festékkeverésének megvalósítása.
ppt => 52. oldal – 56.oldal
Negatív számok ábrázolása – Kettes komplemens
A kettes komplemens segítségével negatív számokat ábrázolhatunk. A kettes komplemenst úgy
képezzük, hogy bitenként invertáljuk a binárisan ábrázolt számot, majd hozzáadunk 1-et.
Pl: 01001 (+9) => 10110 => 10110 + 1 =10111 (-9)
ppt => 57. oldal – 58.oldal
Összeadó/kivonó áramkör
ppt => 61. oldal – 62.oldal
Túlcsordulás érzékelés
1. és 2. módszer
ppt => 63. oldal – 67.oldal
Aritmetikai-Logikai egység
ppt => 68. oldal – 72.oldal
Shift regiszteres szorzás, osztás, Barrel shifter
ppt => 73. oldal – 83.oldal
Számláló egységek
N-bites előre számláló: incrementer +shift regiszter; túlcsordulás (Carry) jelzése AND kapuval,
Vezérlőjelek: clr – törlés, cnt – számlálás engedélyezés, clk órajel; Példa: utasszámláló
Előre/vissza számláló: incrementer vagy dekrementer + shift regiszter; túlcsordulás jelzése AND
kapuval, alul csordulás (borrow) NOR kapuval,
Vezérlőjelek: dir számlálási irány, clr -törlés (reset), cnt (ld) számlálás engedélyezés, clk – órajel;
Betölthető számláló: ld -re adott ld jel a bemeneten (d) adatot betölti a regiszterbe és innen indul a
számlálás. Példa: párhuzamos beírású számláló; BÚÉK számlálás – tűzijáték indítás;
Számláló alkalmazása: frekvencia osztó; Példa 6 bites előre számláló digitális óra (perc, óra, stb.),
sebesség mérés,
Számláló alkalmazása: Időzítő; Példa: Lézeres sebészeti rendszer.
S0 S1 S2 S3
S1
S11 S9 S8
0
S1 S1 S1 S1
5 4 3 2
S4 S5 S6 S7
Mivel 16 állapotunk van ezért a jól ismert képlet alapján (log 2N=log216=4) megállapítható, hogy
egy számlálóra van szükségünk.
Először megvizsgáljuk a számláló adatlapját, amelynek segítségével megállapítjuk a számláló
működését és a tervezéshez szükséges jeleket (bemenetek, kimenetek).
A számláló logikai táblájából (lásd lenti táblázat), megállapítható, hogy a számláló 4 bites.
Jelek:
CLR – clear törlés – ha CLR=1 => Qi=0, TC=0, CEO=0; ha CLR=1 a számláló működik a vezérlő
jelek állapota alapján
L – load betöltés – ha L=1 => Qi=Di CLK felfutó élre! ; ha L=0 => számlálás
CE – órajel engedélyezés – ha CE=0 nincs változás; ha CE =1 működés engedélyezése
C – órajel felfutó élre vezérel
UP – számlálás iránya – ha UP=1 => Q=Q+1 inkrementál, ha UP = 0 => Q=Q-1;
TC – túlcsordulás: egyenletét lásd a táblázatban 0-1-0 impulzust ad ha Q=> 1111 => 0000 vagy Q
=> 0000 => 1111 változás történik;
CEO=TC*CE kaszkád a következő számláló egység felé.
Állapottábla
UP Q1 D3 Q1
1 1 1 1 X X 1 X
0 0 0 0 0 X X X
Q2 Q2
0 0 0 0 0 X X X
Q3 Q3
1 1 1 1 X X 1 X
Q0 Q0
UP=[ Q 2 ] D 3=Q 1
D2 Q1
L Q1 X X 0 X
0 0 1 0 0 X X X
Q2
1 0 0 0 1 X X X
Q2 Q3
1 0 0 0 X X 1 X
Q3
0 0 1 0 Q0
Q0 D 2=D 1=D 0=Q3
L=Q 2 ∗Q 1+ Q2 ∗Q 1=Q 2 ⊕Q1
CE=1
Megvalósítás:
RESET
S0 S1 S2 S3
SD SC SB S4
SE SF
Jelenlegi állapotok Következő állapotok Vezérlő függvények
Qi Q3 Q2 Q1 Q0 Q3+ Q2+ Q1+ Q0+ UP L D3 D2 D1 D0
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 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
UP Q1 D3 Q1 D1 Q1
Q2 Q2 Q2
Q3 Q3 Q3
Q0 Q0 Q0
L Q1 D2 Q1 D0 Q1
Q2 Q2 Q2
Q3 Q3 Q3
Q0 Q0 Q0
Megtervezett áramkör:
Elemzés:
Regiszter Tömbök