BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut
Sekvenssilogiikka Kombinatooristen logiikkapiirien lähtömuuttujien nykyiset tilat y i (n) ovat pelkästään riippuvaisia tulomuuttujien x i (n) nykyisistä tiloista Useimmat digitaalielektroniikan käytännön sovellukset sisältävät muistielementtejä ja/tai takaisinkytkennän. Tällaisia piirejä kutsutaan sekvenssilogiikaksi Sekvenssilogiikassa lähtöjen y i (n) nykyiset tilat määräytyvät tulomuuttujien x i (n) nykyisistä tiloista ja kytkennän sisäisestä tilasta z i (n), joka määräytyy edellisistä tuloista xi n Tulot z i n Kombinatoorinen logiikkapiiri, esim: - summaimia - perusportteja - jne Lähdöt y i n Muistielementit
Synkroninen ja asynkroninen sekvenssilogiikka Sekvenssilogiikassa muistielementteihin tallentuu piirin sisäinen tila Piirit voidaan jakaa kahteen päätyyppiin: Synkroninen sekvenssilogiikka Asynkroninen sekvenssilogiikka Luokittelu perustuu tapaan, jolla piiri vaihtaa tilaansa: Synkroninen -> tilanvaihdot kellosignaalilla, sisäiset tilat tallennettu kiikkuihin Asynkroninen -> ei tahdistusta, eikä välttämättä erityisiä muistielementtejä Nykyinen digitaalielektroniikka perustuu synkroniseen (kellotettuun) sekvenssilogiikkaan Tulot Kombinatoorinen logiikkapiiri Lähdöt Tulot Kombinatoorinen logiikkapiiri Lähdöt Kellosignaali Kiikut Synkroninen Viive Viive tai pitopiirit Asynkroninen
Pitopiirit Jotta binäärisiä tiloja pystytään varastoimaan, tarvitaan muistielementti Vaatimukset: Pystyy varastoimaan binäärisen tilan: Piirin toimintaa pystytään kontrolloimaan Pitopiiri voidaan toteuttaa esimerkiksi takaisinkytkettyjen NAND tai NOR-porttien avulla 0,1 SR-pitopiiri S R -pitopiiri
SR-pitopiirit (1/2) SR-pitopiirin ominaisuudet: Tulot: S (set) ja R (reset) tai (S ja R ) Lähdöt: Q ja Q Sekä SR- ja S R -pitopiireillä on yksi ongelmallinen tulomuuttujien kombinaatio: Tilat (SR, R=1, S=1) ja (S R, R=0, S=0) Kombinaatio rikkoo piirin lähtöjen sääntöä ja sitä seuraava piirin lähtöjen tilat Q(n+1) ja Q (n+1) riippuvat tulosignaalien keskinäisestä ajoituksesta SR-pitopiirin tilataulukko S R -pitopiirin tilataulukko S R Q (n+1) Q' (n+1) 1 0 1 0 asettaa pitopiirin 0 1 0 1 resetoi pitopiirin 0 0 Q Q' pitää lähtöjen tilan ennallaan 1 1 0 0 ei käytössä S R Q (n+1) Q' (n+1) 1 0 0 1 resetoi pitopiirin 0 1 1 0 asettaa pitopiirin 1 1 Q Q' pitää lähtöjen tilan ennallaan 0 0 1 1 ei käytössä
SR-pitopiirit (2/2) S R -pitopiirin käytettävyyttä muistielementtinä voidaan parantaa lisäämällä piiriin tulo kontrollisignaalille: Pystytään kontrolloimaan tilanvaihtoa Vaatii kaksi kaksituloista NAND-porttia lisättäväksi S R -pitopiiriin SR-pitopiiri ohjaussignaalilla C S R Q (n+1) 0 X X ei muutosta edelliseen 1 0 0 ei muutosta edelliseen 1 0 1 resetoi pitopiirin (Q=0,Q'=1) 1 1 0 asettaa pitopiirin (Q=1,Q'=0) 1 1 1 ei käytössä
D-pitopiiri SR-pitopiirin ongelmana on piirin ei sallittu tila (tulot S=1 ja R=1) Ongelma korjattu D-pitopiirissä lisäämällä kytkentään invertteri: Tulot: C (control) ja D (data), lähdöt: Q ja Q Ongelmallinen edeelleenkin synkronisen sekvenssilogiikan kytkennöissä D-pitopiiri on läpinäkyvä elementti tulosignaalille (D==Q), silloin kun C=1 D-pitopiiri C D Q (n+1) 0 X ei muutosta edelliseen 1 0 resetoi pitopiirin (Q=0,Q'=1) 1 1 asettaa pitopiirin (Q=1,Q'=0)
Kiikut (Flip-flop) Kiikut eroavat pitopiireistä seuraavasti: Pitopiirin tilanmuutosta ohjataan kello- tai kontrollisignaalin aktiivisella tilalla Kiikun tilanmuutosta ohjataan kellosignaalin tilanmuutoksella (nouseva reuna/laskeva reuna) Pitopiirit eivät ole erityisen käytännöllisiä sekvenssilogiikan muistielementteinä Ylhäällä aktivoituva 1 0 Nousevasta reunasta aktivoituva 1 0 Laskevasta reunasta aktivoituva 1 0 Erilaisia tapoja, joilla kellosignaali voi aktivoida tilanvaihdon
D-kiikku (1/2) D-kiikku on käytetyin kiikkutyyppi Voidaan muodostaa kahdesta D-pitopiiristä ja invertteristä (master-slave) Kaikki muut kiikkutyypit voidaan tarvittaessa toteuttaa D-kiikkujen ja perusporttien avulla Toiminta: Kun kello C=1, Master-lukee tilan linjalta D Kun kello C=0, Master deaktivoituu ja Slave aktivoituu lukien tilansa Masterkiikun lähdöstä Q. Laskevasta kellosignaalin reunasta aktivoituva master-slave D-kiikku
D-kiikku (2/2) Käytettäessä kiikkupiirejä on otettava huomioon ajoituskysymykset: Asettumisaika (setup-time): Aika, joka signaalia D on pidettävä vakiona ennen kuin tilanvaihto käynnistetään kellosignaalin reunalla Pitoaika (hold-time): Aika, joka signaalia D on pidettävä vakiona kellon nousevan reunan jälkeen Kiikun parametrit ovat riippuvaisia kytkennän sisäisistä viiveistä Nousevasta reunasta aktivoituva D-kiikku
JK-kiikku JK-kiikulla on D-kiikusta poiketen kolme toimintamoodia: Asetus (set) Resetointi (reset) Kiikun varastoiman tilan komplementointi JK-kiikun toteutus perusporttien ja D-kiikun avulla
T-kiikku T-kiikku (toggle) pystytään muodostamaan yhdestä D-kiikusta ja kaksituloisesta XOR-portista: Tulon T avulla voidaan komplementoida kiikun tila Sovelletaan esimerkiksi laskurikytkennöissä D T Q TQ'T' Q
Kiikkujen tilataulukot ja ominaisyhtälöt Kiikkutyyppien toiminta voidaan kuvata esimerkiksi tilataulukoilla tai ominaisyhtälöillä: Kuvaa lähdön seuraavaa tilaa tulojen ja nykyisen tilan funktiona Kellosignaali aktivoi tilanmuutokset (nouseva reuna tai laskeva reuna ) JK -kiikku J K Q (n+1) 0 0 Q (n) ei muutosta 0 1 0 resetointi 1 0 1 asetus 1 1 Q' (n) komplementointi Q ( n 1) JQ' K' Q D -kiikku T -kiikku D Q (n+1) T Q (n+1) 0 0 resetointi 0 Q (n) ei muutosta 1 1 asetus 1 Q' (n) komplementointi Q(n 1) D Q ( n 1) T Q TQ' T ' Q
Suorat tulot Kiikuissa voi olla myös sellaisia asynkronisia tuloja, joilla pystytään muuttamaan kiikun sisäistä tilaa kellosignaalista riippumatta: Esimerkkinä asynkroninen nollaus tai asetus (reset, set) Hyödyllinen esim. digitaalisen järjestelmän käynnistyksessä, jolloin esim. rekisterien sisältö halutaan nollata Asynkronisesti nollattavan D-kiikun toteutus ja tilataulukko R C D Q (n+1) Q' (n+1) 0 x x 0 1 1 0 0 1 1 1 1 0
Sekvenssilogiikan analyysi Synkroniseksi sekvenssilogiikaksi kytkennän tunnistaa yleisimmin kellotetuista kiikkupiireistä ja takaisinkytkennästä Analyysin tehtävänä on muodostaa tilakaavio, tilataulukko tai boolen funktiot, jotka kuvaavat analysoitavan piirin toimintaa Käydään analyysi läpi D-kiikkujen tapauksessa esimerkin avulla Esimerkkinä käytettävä sekvenssilogiikan kytkentä
Sekvenssilogiikan analyysi: Tilayhtälöt Synkronisen sekvenssilogiikan toiminta voidaan kuvat algebrallisesti tilayhtälöiden avulla: Määrittävät piirin seuraavan tilan tulosignaalien ja nykyisen tilan perusteella Esimerkki (edellinen sivu): D-kiikun nykyinen tulo (n) määrittää sen seuraavan tilan (n+1) -> tilayhtälöt esimerkkikytkennälle A B (n1) Anxn n1 A' nxn B nxn Yleisesti ottaen nykyistä tilaa ei merkitä indeksillä (n). Vastaavalla menettelyllä voidaan muodostaa yhtälö piirin lähdölle y A B x'
Sekvenssilogiikan analyysi: Tilataulukko Synkronisen sekvenssilogiikan toiminta voidaan kuva myös tilataulukon avulla: Taulukkoon kootaan kaikki kytkennän kiikkujen ja tulomuuttujien kombinaatiot sekä niitä vastaavat seuraavat tilat ja lähtömuuttujien arvot Muodostamisessa voidaan hyödyntää kytkennälle johdettuja tilayhtälöitä Esimerkkikytkennälle johdettu tilataulukko Esimerkkikytkennän tilayhtälöt A (n) B( n) x( n) A (n+1) B( n+1) y( n) A(n 1) B y n 1 A' x A B x' Ax Bx 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0
Sekvenssilogiikan analyysi: Tilakaavio Tilataulukon sisältämä informaatio voidaan esittää graafisesti tilakaavion avulla: Ympyröiden avulla kuvataan kytkennän kaikki mahdolliset tilakombinaatiot Tilasta toiseen siirtymiseen vaikuttavat: nykyinen tila ja tulosignaalit Kaavion tulkinta: 0/0 Esimerkkikytkennän tilakaavio 1/0 Kun kytkennän kiikut A ja B ovat tilassa 00, ja piirin tulosignaali x=1, sitä vastaa lähtösignaali y=0 (kaaviossa merkintä 1/0). Seuraavalla nousevalla kellon reunalla piirin sisäiseksi tilaksi tulee AB = 01. 1/0 0/1 00 10 0/1 0/1 1/0 01 1/0 11