Kiikku (digitaalitekniikka)

**Kiikku** on digitaalitekniikassa komponentti, joka säilyttää sille asetetun loogisen tilan eli muistaa yhden bitin. Säilytettävän bitin arvo riippuu kiikun tyypistä, tulojen tilasta ja lähtöjen edellisestä tilasta. Kiikkupiirit koostuvat loogisista porteista, joista osa on takaisinkytketty muisti-ilmiön aikaansaamiseksi. Digitaalisia järjestelmiä suunniteltaessa kiikuista muodostetaan rekistereitä eli useamman bitin tallentavia muistikomponentteja. Esimerkiksi suorittimien nopeat SRAM-tyyppiset rekisterit ja välimuistit on toteutettu kiikuilla.

## Kiikkutyyppejä

### RS-kiikku

RS-kiikku on yksinkertainen tilansa säilyttävä kiikku, jota ohjataan sisääntuloliitännöillä *S* ("set") ja *R* ("reset"). Kiikun lähdön *Q* tila asettuu ykköseksi, kun *S* = 1. Tila säilyy asetettuna riippumatta siitä, miten *S*-liitännän tila sen jälkeen vaihtelee, kunnes *R* = 1 ja piiri nollautuu. Vanhemmassa tekniikassa piirillä on kielletty tila *S* = *R* = 1, jolloin piiri muuttuu epävakaaksi yrittäessään asettaa lähtöä nollaksi ja ykköseksi samaan aikaan. Nykyaikaisessa digitaalitekniikassa kiikku on joko *S*- tai *R*-voittoinen, joka määrittelee mihin tilaan lähtö asettuu, jos *S* ja *R* ovat yhtä aikaa ykkösiä.

Kiikun tilataulu on kuvattu ohessa. Taulukossa Q-1 tarkoittaa edellisen jakson ulostuloa. Toimintaa ei tyypillisesti ole määritelty, jos sekä S että R ovat ylhäällä.

### D-kiikku

D-kiikku on nykyään eniten käytetty kiikkutyyppi. Siinä on datasisääntulo *D*, reunaherkkä kellosisääntulo *Clk*, ulostulo *Q* ja mahdollisesti invertoitu ulostulo **'. D-kiikussa voi myös olla asynkroniset asetus- ja nollausulostulot ''S'' ja ''R'' (''set'' ja ''reset''). Kun kellosignaali ''Clk'' nousee, tallentuu datasisääntulon ''D'' arvo kiikkuun. Kiikun arvo on tällöin luettavissa ''Q''-ulostulosta ja sen inverssi **'-ulostulosta.

D-kiikku voidaan toteuttaa nk. *master-slave*-kytkennällä, jossa kytketään kaksi D-veräjää peräkkäin. Kytkentä on ulkoisesti reunaherkkä, mutta sen sisäiset komponentit ovat tasoherkkiä.

### T-kiikku

T-kiikku eli toggle-kiikku vaihtaa tilaansa kellopulssin aktiivisella reunalla, jos *T = 1* ja säilyttää edellisen tilansa, jos *T = 0*. T-kiikulla voidaan esimerkiksi puolittaa kellosignaalin taajuus. Kytkemällä useampia T-kiikkuja peräkkäin muodostuu laskuri, joka laskee binäärilukuja kellopulssin tahdissa.

### JK-kiikku

JK-kiikkua on aikaisemmin käytetty runsaasti, koska sen kaksi sisääntuloa mahdollistavat monipuolisen ohjauksen yksinkertaisella ohjauslogiikalla. JK-kiikulla on kellosisääntulon lisäksi kaksi sisääntuloa, *J* ja *K*, jotka vaikuttavat kiikun tilaan seuraavasti:

* Kun *J = 0* ja *K = 0*, JK-kiikku säilyttää tilansa.
* Kun *J = 0* ja *K = 1*, JK-kiikun tilaksi tulee 0.
* Kun *J = 1* ja *K = 0*, JK-kiikun tilaksi tulee 1.
* Kun *J = 1* ja *K = 1*, JK-kiikku vaihtaa tilaansa, eli jos aikaisempi tila oli 0, tilaksi tulee 1 ja toisin päin.

JK-kiikku sisältää D- ja T-kiikun toiminnot, joten sopivalla ohjauksella JK-kiikulla voidaan korvata kumpi tahansa edellä mainituista. T-kiikussa J- ja K-tuloon tuodaan sama signaali (*J = K*), kun taas D-kiikussa toinen tuloista invertoidaan (*J = !K*).

## Kirjallisuutta

* 
*