A bináris számláló előbbi változata előre felfelé számolt: a
6.10.2. ábrán látható áramkör az ún. visszafelé számláló. Ennél
felhasználjuk, hogy bináris visszafelé számlálásnál a következő
helyiértékben akkor kell változást előidézni, ha az előző helyiértékben
logikai 0 - 1 átmenet jön létre.
A 6.10.3. ábrán a két áramkör kombinációjaként bináris oda-vissza
számláló egy fokozatát látunk. (Az irányt kijelölő vezeték állapotától
függően a következő fokozatra jutó jel vagy a direkt, vagy az
invertált kimenetről jut tovább.)
Gyakran van szükség olyan számlálóra, mely nem kettes
számrendszerben számol, hanem például tizenhármasban. Ezt úgy lehet
megvalósítani, hogy (lásd 6.10.4. ábra) a tizenharmadik beérkező impulzus
után a számláló kapcsolást nullázzuk. Ennek legegyszerűbb módja egy
alkalmasan megválasztott ÉS áramkörön alapul: ez detektálja az ABCD=1011
állapotot és a kimenete a direkt Reset áramkörön keresztül nullázza a
bistabilokat. Ez az eljárás tulajdonképpen univerzálisnak tekinthető:
bármilyen számláló tartalom detektálható ily módon, tehát ún. "n" alapú
számláló kapcsolást állítottunk elő.
A tízes számrendszerben számláló kapcsolásoknak kiemelkedő
szerepük van, ezért számos különböző áramkört találtak ki speciálisan
erre a célra. A 6.10.5. ábrán egy BCD (binary coded decimal) számlálót
látunk. Ez tíz egymástól eltérő állapotot képes felvenni, méghozzá úgy,
hogy 0-10-ig kettes számrendszerben számol, a négy bistabil
multivibrátor többi lehetséges állapotát kihagyja.
(Az A multivibrátor impulzusszám-felező, a további három szabályos
bináris számláló egészen a kilencedik impulzus beérkezéséig.)
A legkülönbözőbb digitális készülékekben gyakran fordulnak elő ún.
shiftregiszterek. Ezek olyan bistabil multivibrátorokból álló
kapcsolások, melyeknél a lánc minden tagjába az óraimpulzus hatására
átíródik az őt közvetlenül megelőző bistabil tartalma. Így a tárolt
információ az óraimpulzusok ütemében egy helyiértékkel továbbhalad. A
6.10.7. ábrán D illetve JK típusú multivibrátorokkal megvalósított
shiftregisztert láthatunk, a 6.10.8. ábrán pedig a mindkét irányban
léptethető shiftregisztert mutatunk. (Természetesen a léptetés irányát
egy logikai jelnek kell megszabnia.)
A shiftregiszterek igen nagyszámú feladat ellátására alkalmasak.
Felhasználhatók egy igen fontos szerepkörben: soros-paralell illetve
paralell-soros átalakítóként. Az időben egymás után érkező bemenő
információ ugyanis egyidejűleg vehető ki a regiszterből, illetve
párhuzamosan beírt információ a regiszter léptetésével annak kimenetén
időben sorosan vehető ki. Nyilvánvalóan jól használható a shift-
regiszter digitális számítógépek aritmetikai egységében: a léptetés
kettővel való szorzásnak vagy osztásnak felelhet meg.
Ha a shiftregiszter kimenetéről az információt a bemenetre
visszacsatoljuk, akkor a számlálólánc "tartalmát" az órajel "körbe
pörgeti". Ez az áramkör az ún. "ring-scaler", gyűrűs számláló. (Úgy
működik, mint egy végtelenített magnetofonszalag.)
A 6.10.10. ábrán egy érdekes áramkört látunk. Itt a kimenetet
invertálva vezetjük vissza a bemenetre. Az elnevezés ezután érthető:
Moebius számlálónak hívják ezt az elrendezést. Érdekessége a
kapcsolásnak, hogyha a 00000 állapotból indulunk ki, akkor pontosan 10
órajel után visszajutunk a kiinduló állapotba - ez a fura kapcsolás
tehát egy decimális számláló.
A 6.10.11. ábrán egy shiftregiszterből kialakított kapcsolás
vázlatát láthatjuk. A bemenetet a kimenet és a - hozzá képest -
késleltett kimenet egy sajátos logikai kapcsolata (XOR) szabja meg.
Nézzük meg, hogyan alakul a kimenet, ha a 0000 állapotból
indulunk. Könnyű belátni, hogy az órajel hatására semmi sem változik, a
shiftregiszter elemei folyamatosan 0 értékűek lesznek.
Ha azonban pl. az 1000 állapotból indulunk, akkor a rendszer
állapotai változni kezdenek és 15 órajel után visszajutunk a kiinduló
állapotba. (Lásd jobboldali ábra.) A változások eléggé furcsák - a kimeneti
bináris értékek "összevissza" változnak. Ha ezeket az egymást követő
fej/írás értékeket valahol látnánk, joggal merülne fel bennünk az a
gyanú, hogy ezek "véletlenszerűen" követik egymást. (Az ábrán
látható gráfot állapot-átmeneti-diagramnak hívják.)
Teljesen természetes, hogy az eredmény nem igazi véletlen, hisz
egy determinisztikus rendszer generálta a kimenő jelsőrozatot, amelyik
kiméletlenül, periódikusan ismétlődik. Nyilvánvaló az is, hogy a kimenő
sorozatban maximálisan négy 1-es szerepelhet egymás után, és legfeljebb
három 0 követheti egymást. Az "igazi" véletlen sorozatokban a 0 és 1
sorozatok tetszőleges hosszúságúak lehetnek.
Azt is érdemes észrevenni, hogy az n-ik és (n-1)-ik fokozat
összegét - persze bináris összegét - vezetjük vissza a bemenetre. (Ennek
a sajátos áramkörnek tehát van valamelyes köze a Fibonacci számokhoz
is...)
Természetesen vetődik fel a kérdés, lehet-e hosszabb ún.
álvéletlen jelsőrozatokat generálni az ábrán látható séma szerint, a
shiftregiszter fokozatszámának növelésével. Matematikusok alaposan
megvizsgálták ezt a kérdést és azt találták, hogy minden n-hez (n a
shiftregiszter fokozatainak száma) lehet találni olyan visszacsatoló
hálózatokat, amelyek ún. maximális hosszúságú szekvenciát állítanak elő
(vagyis a kimenőjel csak 2n-1 lépés után ismétlodik).
Általában azonban nem csak két fokozatról kell viszacsatolnunk,
hanem n különböző értékeinél esetleg többről is. Ezeket az értékeket
XOR-oznunk kell, vagyis a bináris összeget kell előállítanunk. Az
alábbiakban megadjuk néhány n-hez, hogy a shiftregiszter melyik
fokozatáról kell a visszacsatoló hálózatot táplálnunk. Az l,m,n értékek
a shiftregiszternek a visszacsatolásban résztvevő fokozatainak a számát
jelölik.
n | l,m,n |
6 | 5,6 |
8 | 4,5,6,8 |
16 | 4,13,15,16 |
22 | 21,22 |
24 | 17,22,23,24 |
29 | 27,29 |
36 | 25,36 |
A fentiek szerint tehát egy
n = 24 bistabilból álló
shiftregiszterből a 6.10.12. ábra szerint készíthetünk maximális
hosszúságú álvéletlen generátort.