Digitaalipiirit/Rekisterit ja laskurit

Wikikirjastosta

Rekisterit[muokkaa | muokkaa wikitekstiä]

Rekistereitä käytetään tiedon tallentamiseen. Ne kootaan kiikuista. Koska bitillä on kaksi arvoa ja kiikuilla kaksi tilaa, voidaan rekisterin jokaiseen kiikkuun tallettaa yksi bitti. Rekisterit voidaan jaotella kahteen ryhmään sen mukaan, miten tieto ladataan rekisteriin ja miten rekisterin sisältö saadaan luettua. Ryhmät ovat rinnakkaisrekisteri ja erilaiset siirtorekisterit.

Rinnakkaisrekisteri[muokkaa | muokkaa wikitekstiä]

Yleisimmin käytetty rekisterirakenne on rinnakkaisrekisteri (parallel register), johon tieto kopioidaan kellosignaalin reunalla. Tallennettu tieto on jatkuvasti saatavilla kiikkujen lähdöistä. Rinnakkaisrekisteriin liittyy usein asynkroninen nollaus R-tulon avulla ja toiminnan salliminen ja estäminen sallintatulon EN avulla. Myös asetus S-tulon avulla on mahdollinen.

4-Bittisen rinnakkaisrekisterin piirrosmerkki. Yhteinen ohjauslohko ja neljä D-kiikkua.

Siirtorekisterit[muokkaa | muokkaa wikitekstiä]

Useissa digitaalitekniikan sovelluksissa tarvitaan rekisterin sisällön sivuttaissiirtoa. Alla olevassa kuvassa 3 on esitetty SIPO-tyyppisen (serial-in paraller-out) siirtorekisterin rakenne D-kiikkuja käyttäen. Rekisteriin talletettavat bitit tuodaan yksi kerrallaan vasemmanpuolimmaisen kiikun tuloon ja siirretään eteenpäin kellopulssien avulla. Koska kellopulssi tulee samanaikaisesti kaikkiin kiikkuihin ja kiikuilla on riittävän suuri viive, siirtyy jokaisen kiikun nykyinen tila seuraavaan kiikkuun. Vaikka edellisen kiikun lähtö muuttuisi kiikun viiveen jälkeen, kellopulssi ei enää vaikuta seuraavaan kiikun kellotulossa, eikä kiikun seuraava tila pääse vaikuttamaan seuraavan kiikun tilamuutokseen. Siirtorekisterin bittien määrällä ei ole rajoitusta. Kun rekisteri on täynnä, bitit voidaan lukea samanaikaisesti kiikkujen lähdöistä. Siirtorekisterin sisältö saadaan luettua myös sarjamuodossa viimeisen kiikun lähdöstä bitti kerrallaan tuomalla täyteen rekisteriin kellopulsseja. Mikäli vain viimeisen kiikun lähtö on luettavissa, on kyseessä SISO-tyyppinen (serial-in serial out, kuva 1.) siirtorekisteri. PISO-tyyppinen (parallel-in serial-out, kuva 2.) siirtorekisteri on kyseessä silloin, kun rekisterin sisällä tapahtuu rinnakkais-sarjamuunnos.

kuva 1. 4-bittinen SISO-siirtorekisteri.


kuva 2. 4-bittinen PISO-Siirtorekisteri
kuva 3. 4-bittinen SIPO-Siirtorekisteri


Laskurit[muokkaa | muokkaa wikitekstiä]

Laskurit ovat sekvenssipiirejä, joissa tietty tilasekvenssi toistuu jatkuvasti. Tärkeä laskurien ryhmä ovat binaarilaskurit. Niiden binaariluvuksi tulkittu sisältö kasvaa tai vähenee yhdellä jokaisella kellopulssin aktiivisella reunalla.


Binaarilaskurit[muokkaa | muokkaa wikitekstiä]

Binaarilaskurit (binary counter) ovat sekvenssipiirejä, jotka käyvät läpi piirin kaikki tilat suuruusjärjestyksessä, kun piirin tila tulkitaan binaariluvuksi. Binaarilukulaskureita on useita erilaisia. Ylöspäin laskevassa binaarilaskurissa tilat kierretään suuruusjärjestyksessä nollasta ylöspäin, joten esimerkiksi neljäbittisessä binaarilaskurissa peräkkäiset tilat ovat 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, jne. Neljäibittisen alaspäin laskevan binaarilaskurin tilat ovat päinvastaisessa järjestyksessä. Kaksisuuntainen laskuri laskee molempiin suuntiin. Sen laskemissuunta valitaan ohjastulon avulla. Mikäli ylöspäin laskevan binaarilaskurin alkuarvo on 0, sen voidaan tulkita laskevan saapuvien kellopulssien määrää.

4-bittinen binaarilaskuri

Rengaslaskuri[muokkaa | muokkaa wikitekstiä]

Jos siirtorekisterin viimeisen kiikun lähtö kytketään sen ensimmäisen kiikun tuloon, saadaan rengaslaskuri (ring counter). Rengaslaskurin sisältönä oleva bittikuvio kiertää niin, että n-bittisen laskurin sisältö on ennallaan n:n kellopulssin jälkeen. Useissa digitaalisissa laitteissa tarvitaan joukkoa ohjauspulsseja, joista kukin vuorollaan on ykkönen ja muut nollia.

Ohjauspulssijonon muodostaminen rengaslaskurilla
Rengaslaskuri D-kiikulla toteutettuna

Johnson-laskuri[muokkaa | muokkaa wikitekstiä]

JK-kiikuilla toteutettu Johnson-laskuri (Johnson counter) muodostetaan niin, että siirtorekisterin viimeisen kiikun lähtö kytketään ensimmäisen kiikun K-tuloon ja viimeisen kiikun lähdön komplementti ensimmäisen kiikun J-tuloon. Johnson-laskurissa kopioituu kellopulssin reunalla viimeisen kiikun tilan komplementti ensimmäiseen kiikkuun. Jos Johnson-laskuri on täynnä nollia, se alkaa täyttyä vasemmalta lukien ykkösillä. Kun se on täynnä ykkösiä, se täyttyy vasemmalta lukien nollilla. n-bittisessä Johnson-laskurissa on käytössä 2n tilaa.

Johnson laskuri JK-kiikuilla toteutettuna

Lähteet[muokkaa | muokkaa wikitekstiä]

  • Seppo Haltsonen, Jaakko Levomäki, Esko T. Rautanen: Digitaalitekniikka. Edita, 2004. ISBN 951-37-3886-8.