Digitaalitekniikka (piirit) Luku 8 Sivu (32) R C D SRG4 R C/ D CTRDIV6 R G2 2CT=5 G3 C/2,3 + CT 3
Digitaalitekniikka (piirit) Luku 8 Sivu 2 (32) Johdanto Tässä luvussa esitellään keskeiset salpoja ja kiikkuja mutkikkaammat yleiskäyttöiset sekvenssipiirielimet: rinnakkaisrekisterit, siirtorekisterit ja laskurit esitetään näiden piirielinten merkittävimpiä sovelluksia käydään läpi rinnakkaisrekisterityypit ja niiden ominaisuudet käydään läpi keskeiset siirtorekisterityypit ja niiden ominaisuudet esitetään tapoja synnyttää ajoituspulssisekvenssejä esitellään rinnakkais- ja sarjamuotoisen tiedonsiirron periaate käydään läpi keskeiset laskurityypit ja niiden ominaisuudet esitetään rinnakkaisrekisterin, siirtorekisterin ja laskurin VHDL-kuvaukset Luvun tavoitteena on saada näkemys keskeisistä sekvenssipiirielimistä ja niiden sovelluksista oppia suunnittelemaan ajoituspulssipiirejä ymmärtää rinnakkais- ja sarjamuotoisen tiedonsiirron periaate
Digitaalitekniikka (piirit) Luku 8 Sivu 3 (32) Rekisterit Rekisterit ovat kiikuista muodostettuja piirejä tallettavat kiikkumäärän mukaisen sanan tietoa esimerkki 8-bittisen rekisterin sisällöstä Rinnakkaisrekisterit useita erillisiä D-kiikkuja yhteinen kellosignaali ehkä yhteinen nollaussignaali Siirtorekisterit tieto siirtyy rekisterin bitistä seuraavaan kellopulssin aktiivisella reunalla Erillispiireinä saatavilla bittimäärä yleensä 4, 8 tai 6 Ohjelmoitavissa logiikkaverkoissa ja asiakaspiireissä rekisterit muodostetaan piirin sisäisistä kiikuista REG
Digitaalitekniikka (piirit) Luku 8 Sivu 4 (32) Rinnakkaisrekisteri Yksinkertaisin rekisterityyppi on rinnakkaisrekisteri Rinnakkaisrekisterissä on n kpl D-kiikkuja, joilla on yhteinen kellotulo ja ehkä nollaustulo Erillisissä rinnakkaisrekistereissä on 4, 6, 8,, 6 tai 8 kiikkua/paketti Esimerkki: 4-bittinen rinnakkaisrekisteri RES D D D2 D3 Piirrosmerkki R C D Q Q Q3 Toimintataulukko RES Qi X Di D RES D D2 D3 REG Piirikaavio D C R D C R D C R D C R Q Q Q3
Digitaalitekniikka (piirit) Luku 8 Sivu 5 (32) Toiminnan sallintatulolla varustettu rinnakkaisrekisteri? Lataus- eli sallintatulo LOAD LOAD = : rekisterin tila ei muutu LOAD = : normaali toiminta Esimerkki: 4-bittinen rekisteri Piirrosmerkki LOAD Di MUX G Periaate D C Qi LOAD G C2 Toimintataulukko D D D2 D3 2D Q Q Q3 LOAD Qi (t+) Qi (t) Di (t) REG
Digitaalitekniikka (piirit) Luku 8 Sivu 6 (32) Nollaus- ja toiminnan sallintatulolla varustetun rinnakkaisrekisterin VHDL-kuvaus REG ENTITY par_reg_resn_load_8 IS PORT( d: IN BIT_VECTOR ( TO 7); resn, load, clk: IN BIT; q: OUT BIT_VECTOR ( TO 7)); END par_reg_resn_load_8; ARCHITECTURE behavior OF par_reg_resn_load_8 IS BEGIN PROCESS (resn, clk) BEGIN IF resn = '' THEN q <= ""; ELSIF clk'event AND clk = '' THEN IF load = '' THEN q <= d; END IF; END IF; END PROCESS; END behavior; resn load clk d() d() d(2) d(3) d(4) d(5) d(6) d(7) R G C2 2D q() q() q(2) q(3) q(4) q(5) q(6) q(7)
Digitaalitekniikka (piirit) Luku 8 Sivu 7 (32) Rinnakkaisrekisterien käyttökohteet ASM:n tilarekisteri ASM:n tulo- ja lähtösignaalien tallennusrekisteri INA INB Tilarekisteri Tulosignaalien tallennusrekisteri G C2 2D C D ASM:n kombinaatiopiiri REG Lähtösignaalien tallennusrekisterit G C2 2D G C2 2D OUTA OUTB OUTC Tulo- tai lähtörekisteri mikroprosessorilla toteutetuissa laitteissa
Digitaalitekniikka (piirit) Luku 8 Sivu 8 (32) Siirtorekisterit Siirtorekisteri (shift register) koostuu D-kiikuista Ainakin ensimmäisen D-tulo SI ja viimeisen Q-lähtö SO on ulkoinen Kiikut ovat ketjussa: edellisen Q-lähtö on kytketty seuraavan D-tuloon Yhteinen kellosignaali SI D C Q D C Piirikaavio Q D D Q3 SO C C SI Q Q SO Aikakaavio SR
Digitaalitekniikka (piirit) Luku 8 Sivu 9 (32) Siirtorekisterityypit SISO ja SIPO SISO (serial in - serial out) 8 bittiä tuhansia bittejä keskeiset sovellukset viivepiiri SO on SI:n viivästetty versio viive riippuu bittimäärästä ja kellotaajuudesta sarjamuisti tallettaa kiikkuihin SI:n bitit SIPO (serial in - parallel out) erillisissä piireissä 4, 8 tai 6 bittiä keskeinen sovellus sarjarinnakkaismuunnos käytetään tiedonsiirrossa tarvitaan sananpituuden mukainen siirtorekisteri SI RES SI Piirrosmerkki SRG4 D C/ Piirrosmerkki SRG4 R C/ D SO SISO SIPO PO PO PO2 PO3 (SO)
Digitaalitekniikka (piirit) Luku 8 Sivu (32) Nollaustulolla varustetun SIPO-siirtorekisterin VHDLkuvaus ENTITY sipo_resn_4 IS PORT( si, resn, clk : IN BIT; po: OUT BIT_VECTOR ( TO 3)); END sipo_resn_4; SIPO ARCHITECTURE behavior OF sipo_resn_4 IS SIGNAL q: BIT_VECTOR ( TO 3); BEGIN PROCESS (resn, clk) BEGIN IF resn = '' THEN q <= ""; ELSIF clk'event AND clk = '' THEN q(3) <= q(2); q(2) <= q(); q() <= q(); q() <= si; END IF; END PROCESS; po <= q; END behavior; resn clk si SRG4 R C/ D po() po() po(2) po(3) Signaali q on sisäinen kiikkujen tilasignaali. Se tarvitaan, koska lähtösignaalin arvot eivät ole VHDL-kielessä tiedossa prosessin sisällä. Sijoitus po(3) <= po(2) jne. ei ole sallittu.
Digitaalitekniikka (piirit) Luku 8 Sivu (32) Siirtorekisterityypit PISO ja PIPO PISO (parallel in - serial out) 4, 8 tai 6 bittiä keskeinen sovellus rinnakkaissarjamuunnos RES SHIFT LOAD SI PI PI PI2 PI3 SRG4 R M M2 C3/,3D,2,3D,2,3D PISO SO PIPO (parallel in - parallel out) 4, 8 tai 6 bittiä korvaa minkä hyvänsä edellisen monipuolinen datan käsittely RES SHIFT LOAD SI PI PI PI2 PI3 SRG4 R M M2 C3/,3D,2,3D,2,3D PIPO PO PO PO2 PO3 (SO)
Digitaalitekniikka (piirit) Luku 8 Sivu 2 (32) Kaksisuuntainen siirtorekisteri Toimintataulukko Siirto eteenpäin eli oikealle eli alas Siirto taaksepäin eli vasemmalle eli ylös Usein myös pysäytys tai rinnakkaislataus Toteutus tulovalitsimilla S S Toiminta Ei muutosta Siirto eteenpäin Siirto taaksepäin Rinnakkaislataus S S PIi MUX G 3 2 3 Fi - Fi Fi+ D C D C D C POi - POi POi+ SR
Digitaalitekniikka (piirit) Luku 8 Sivu 3 (32) Kaksisuuntainen siirtorekisteri, jatkoa Toimintatavan valinta S- ja S-tuloilla toimitapariippuvuus (M) piirrosmerkissä M = : ei toimintaa M = : siirto oikealle M = 2: siirto vasemmalle M = 3: lataus Erilliset sarjatulot ja lähdöt SIR, SOR oikealle siirtoon SIL, SOL vasemmalle siirtoon Rinnakkaistulot ja -lähdöt Käytetään aritmeettisissa piireissä: siirto oikealle = :2 siirto vasemmalle = x2 Toinen sovellusesimerkki: bittijärjestyksen kääntö RES S S SIR PI PI PI2 PI3 SIL SRG4 R M 3 C4/ /2,4D 3,4D 3,4D 3,4D 3,4D 2,4D Esittele PIPO-rekisteri SR PO(SOL) PO PO2 PO3 (SOR)
Digitaalitekniikka (piirit) Luku 8 Sivu 4 (32) Rinnakkais- ja sarjamuotoinen datasiirto? 2 Rinnakkaissiirto piirin ja laitteen sisäiseen siirtoon nopea lyhyillä etäisyyksillä yksinkertainen toteutus paljon johtimia (esim. tai 8) siirron ohjaus kättelyllä (handshake) Sarjasiirto laitteen sisäiseen ja laitteiden väliseen siirtoon hidas (uudet sarjaväylät nopeita) mutkikas toteutus vain muutama johdin siirron ohjaus osana datavuota Piiri Piiri DATA DATA DASS DACK Piiri Piiri 2 Laite Laite DATA2 DATA2 Laite Laite 2 PAR SER
Digitaalitekniikka (piirit) Luku 8 Sivu 5 (32) Ajoitussignaalien synnyttäminen Ajoitussignaaleja tarvitaan ajallisesti peräkkäisten toimintojen toteuttamisessa Ajoitussignaaleissa ei saa olla virhepulsseja ne on otettava suoraan kiikkujen lähdöistä Toteutus siirtorekisterillä tai ASM:na Esimerkki: neljä ajoitussignaalia: T T T2 T3
Digitaalitekniikka (piirit) Luku 8 Sivu 6 (32) Ajoitussignaalien synnyttäminen siirtorekisterillä? 3 Edullinen, jos signaalit ovat muuten samoja, mutta toisiinsa nähden siirtyneitä, kuten tässä esimerkissä Käytetään SIPO-siirtorekisteriä Aaltomuodosta saadaan ehto sarjatulon funktiolle SI SI =, kun T = T = T2 =, muulloin SI = saadaan siis SI = T T T2 = T + T + T2 SI SRG4 C/ D T T T2 T3 T T T2 T3
Digitaalitekniikka (piirit) Luku 8 Sivu 7 (32) Laskurit Laskuri (counter) laskee siihen tuotujen kellopulssien määrän määrä saadaan lähtösignaalien arvoina maksimiarvon jälkeen laskuri nollautuu laskurin tilojen määrä on sen laskentajakso (modulus) Yleisin laskuri on binaarilaskuri (binary counter) laskentajakso on kahden kokonainen potenssi n-bittisessä binaarilaskurissa on n kiikkua ja n lähtöä 4-bit 4-bit CTR CTR CTR laskentajakso on 2 n laskentasekvenssi on yleensä peräkkäiset binaariluvut, esim....... erillispiireinä on saatavilla 4-, 8-, 2- ja 4-bittisiä binaarilaskureita, joiden laskentajaksot ovat 6, 256, 496 ja 6384 Laskuri toimii myös taajuuden jakajana n-bittinen binaarilaskuri jakaa kellotaajuuden 2 n :llä pulssisuhde on : eli -osa ja -osa ovat yhtä pitkät Q Q Q3
Digitaalitekniikka (piirit) Luku 8 Sivu 8 (32) Dekadi- ja muut laskurit Dekadilaskuria (decade counter) käytetään, kun halutaan laskentajaksoksi kymmenen potenssi dekadilaskurissa on neljä kiikkua / dekadi käytännössä on saatavilla 4- ja 8-bittisiä dekadilaskureita laskentajaksot ovat ja DEC DEC CTR CTR laskentasekvenssi on yleensä peräkkäiset NBCD-luvut, esim.... 4-bittinen dekadilaskuri jakaa kellotaajuuden kymmenellä jaettu taajuus ei ole symmetrinen eli pulssisuhde ei ole : vaan :4 Muut laskurit ja jakajat voidaan suunnitella ASM-menetelmällä laskuriin saadaan haluttu laskentajakso ja -sekvenssi jaettuun taajuuteen saadaan haluttu pulssisuhde CTR Q Q Q3
Digitaalitekniikka (piirit) Luku 8 Sivu 9 (32) Asynkroninen binaarilaskuri 4-bittisen binaarilaskurin aikakaavio: RCTR Q Q Q3 Muutos kellopulssin laskevalla reunalla Muutos Q:n laskevalla reunalla Muutos Q:n laskevalla reunalla Muutos :n laskevalla reunalla Laskuri saadaan laskevalla reunalla liipaistavista T-kiikuista käyttämällä kiikun kellona edellisen kiikun lähtöä ja kytkemällä T-tulo :een Voidaan käyttää myös JK-kiikkuja, joiden J- ja K-tulot on kytketty :een
Digitaalitekniikka (piirit) Luku 8 Sivu 2 (32) 4-bittinen asynkroninen binaarilaskuri Piirikaavio: RCTR T T T T C C C C Q Q Q3 Ratkaisu on erittäin yksinkertainen Bittimäärää voidaan helposti lisätä Taaksepäin laskeva laskuri saadaan käyttämällä nousevalla reunalla liipaistavia T- tai JK-kiikkuja CLR Asynkroninen nollaustulo Piirrosmerkki RCTRDIV6 CT= + CT 3 tai RCTR4 Q Q Q3
Digitaalitekniikka (piirit) Luku 8 Sivu 2 (32) Asynkronisten laskureiden ominaisuuksia? 4 Viive-ero lähtöjen välillä RCTR mitä pitempi laskuri, sitä suurempi ero Pitkissä laskureissa suurin kellotaajuus alenee on odotettava, että kaikki lähdöt ovat varmasti muuttuneet koko järjestelmän toiminta voi hidastua Asynkronisten laskurien käyttöä on syytä välttää tai sitten on otettava heikkoudet huomioon suunnittelussa Taajuuden jakajana asynkroninen laskuri toimii hyvin pitkissä jakajissa (eli kun jakosuhde on suuri) yksinkertaisuudella on merkitystä ensimmäinen kiikku voi olla nopeampaa teknologiaa kuin muut edellytyksenä on, että jaettu taajuus saa olla alkuperäisestä viivästynyt
Digitaalitekniikka (piirit) Luku 8 Sivu 22 (32) Synkroniset laskurit ASM:eja: kaikkiin kiikkuihin sama kellopulssi Toteutus D-, T- tai JK-kiikuilla Binaari- ja dekadilaskureita Laskureissa on yleensä nollassa aktiivinen nollaustulo CLR osassa synkroninen (laskuri nollautuu seuraavan kellopulssin jälkeen) osassa asynkroninen (laskuri nollautuu heti) Osassa laskureista on lataustulo laskuriin voidaan ladata haluttu binaariluku käytetään, kun tehdään binaarilaskurista laskuri, jonka laskentajakso on muu kuin kahden potenssi Laskuri voi olla eteenpäin eli ylös laskeva, taaksepäin eli alas laskeva tai kaksisuuntainen CLR CTR Binaarilaskurin piirrosmerkki CTR4 CT= C/+ CT 3 Q Q Q3
Piirrosmerkki Digitaalitekniikka (piirit) Luku 8 Sivu 23 (32) 4-bittinen synkroninen binaarilaskuri Ketjutusta varten laskurissa on laskennan sallintatulot ENP ja ENT: laskuri laskee, kun ENP = ENT = laskuri täynnä -lähtö CO CLR ENT ENP CTRDIV6 CT= G2 2CT=5 G3 C/2,3+ CT 3 tai CTR4 CO Q Q Q3 * CO =, jos ENT = ja laskuri on täynnä Tila- ja lähtötaulu Lisä Tulot Tulot Nykyinen Nykyinen tila tila Seuraava Seuraava tila tilalähtö CLR CLRENP ENPENT ENTQ3 Q3 Q Q Q Q Q3 Q3 Q Q Q Q CO CO X X X X X X /* /* X Q3 Q3 Q QQ Q Q3 Q3 Q QQ Q/* /* X Q3 Q3 Q Q Q Q Q3 Q3 Q Q Q Q
Laskureiden ketjuttaminen Digitaalitekniikka (piirit) Luku 8 Sivu 24 (32) Kahdesta 4-bittisestä binaarilaskurista 8-bittinen binaarilaskuri Lisä CTR CLR EN CTRDIV6 CT= G2 2CT=5 G3 C/2,3+ CTRDIV6 CT= G2 2CT=5 G3 C/2,3+ CT 3 Q Q Q3 CT 3 Q4 Q5 Q6 Q7
Digitaalitekniikka (piirit) Luku 8 Sivu 25 (32) Kaksisuuntainen binaarilaskuri Laskenta eteenpäin: 2 3... 4 5 Laskenta taaksepäin: 5 4... 2 5 Valintatulo DIR laskentasuunnalle Toinen toteutusvaihtoehto: erilliset kellot laskennalle eteenpäin ja taaksepäin Toimintataulukko CLR DIR CTR Piirrosmerkki CTRDIV6 CT= M2 C/2+/2- tai CTR4 CLR DIR X Toiminta Nollaus Laskenta taakse Laskenta eteen CT 3 Q Q Q3
Ladattava binaarilaskuri Laskennan tai latauksen valintatulo LOAD LOAD = laskenta LOAD = lataus D-tulot laskurin kiikkuihin ladattaessa kiikkuihin tallettuu seuraavalla kellopulssilla D-tulojen lataushetkinen arvo CLR Toimintataulukko LOAD X Toiminta Digitaalitekniikka (piirit) Luku 8 Sivu 26 (32) Nollaus Laskenta eteen Lataus CLR LOAD CTR D D D2 D3 Piirrosmerkki CTRDIV6 2CT= M C2/+,2D [] [2] [4] [8] Esittele laskuri tai CTR4 Q Q Q3
Digitaalitekniikka (piirit) Luku 8 Sivu 27 (32) Nollaus- ja lataustulolla varustetun laskurin VHDL-kuvaus CTR ENTITY ctr_clrn_load_4 IS PORT( load, clrn, clk : IN BIT; d: IN INTEGER RANGE TO 5; q: OUT INTEGER RANGE TO 5); END ctr_clrn_load_4; ARCHITECTURE behav OF ctr_clrn_load_4 IS SIGNAL qi: INTEGER RANGE TO 5; BEGIN PROCESS (clk) BEGIN IF clk'event AND clk = '' THEN IF clrn = '' THEN qi <= ; ELSIF load = '' THEN qi <= d; ELSE qi <= qi + ; END IF; END IF; END PROCESS; q <= qi; END behav; clrn load clk d() d() d(2) d(3) CTRDIV6 2CT= M C2/+,2D [] [2] [4] [8] q() q() q(2) q(3) Signaali qi on sisäinen kiikkujen tilasignaali. Se tarvitaan, koska lähtösignaalin arvot eivät ole VHDLkielessä tiedossa prosessin sisällä. Sijoitus q <= q + ei ole sallittu.
Digitaalitekniikka (piirit) Luku 8 Sivu 28 (32) Dekadilaskurin toteutus ladattavalla binaarilaskurilla? 5 Laskentajakso Laskentasekvenssi NBCD-luvut: 2 3... 9 2 Vastaavasti voidaan toteuttaa muukin kuin dekadilaskuri Laskentasekvenssin alku määrätään ladattavalla luvulla Laskentasekvenssin loppu määrätään latausehdolla & LOAD Kun laskurissa on luku 9 (), ladataan CTRDIV6 M C2/+,2D [] [2] [4] [8] CTR Q Q Q3
Ladattava dekadilaskuri Laskentasekvenssi NBCD-luvut: 2 3... 9 2 Laskennan tai latauksen valintatulo LOAD LOAD = laskenta LOAD = lataus D-tulot laskurin kiikkuihin ladattaessa kiikkuihin tallettuu seuraavalla kellopulssilla D-tulojen lataushetkinen arvo CLR Toimintataulukko LOAD X Toiminta Digitaalitekniikka (piirit) Luku 8 Sivu 29 (32) Nollaus Laskenta eteen Lataus CLR LOAD CTR D D D2 D3 Piirrosmerkki CTRDIV 2CT= M C2/+,2D [] [2] [4] [8] Lisä Ero binaarilaskuriin Q Q Q3
Digitaalitekniikka (piirit) Luku 8 Sivu 3 (32) Muut synkroniset laskurit ja jakajat Edellä esitetyistä poikkeava laskentajakso tai laskentasekvenssi tai erityinen pulssisuhde Voidaan usein tehdä ladattavasta binaarilaskurista Joskus voidaan tehdä siirtorekisteristä rengaslaskuri: esim. 3-bittinen: n-bittisen rengaslaskurin laskentajakso on n Johnson-laskuri: esim. 3-bittinen: n-bittisen Johnson-laskurin laskentajakso on 2n Ellei edellä mainituilla tavoilla saada haluttua toimintaa suunnitellaan ASM:na toteutetaan esimerkiksi ohjelmoitavalla logiikkaverkolla Jos jää kiellettyjä tiloja, on varmistettava niistä poistuminen Rengaslaskurin periaate SRGn D C/ SRGn D C/ CTR SO Johnson-laskurin periaate SO
Digitaalitekniikka (piirit) Luku 8 Sivu 3 (32) Yhteenveto Rinnakkaisrekisteri koostuu useista useista D-kiikuista, joilla joilla on on yhteinen kellosignaali ja ja ehkä ehkäyhteinen nollaus- tai tai toiminnan sallintatulo Rinnakkaisrekistereitä käytetään ASM:n ASM:n tilarekistereinä sekä sekäsignaalien arvojen tallennukseen Siirtorekisteri koostuu peräkkäin kytketyistä D-kiikuista Siirtorekisterityypit ovat ovat SISO, SISO, SIPO, SIPO, PISO PISOja ja PIPO; PIPO; siirtorekisteri voi voi olla olla myös myös kaksisuuntainen Siirtorekistereitä käytetään mm. mm. sarjamuotoisessa datasiirrossa Ajoitussignaaleja voidaan usein usein synnyttää siirtorekistereillä Laskurissa sama sama tila tilatoistuu toistuu laskentajakson pituisin pituisin välein välein Laskuri Laskuri toimii toimii myöskin taajuuden jakajana Tärkeimmät laskurityypit ovat ovat binaarilaskuri ja ja dekadilaskuri; laskuri laskuri voi voi olla olla myös myös kaksisuuntainen ja ja ladattava Laskuri Laskuri voidaan toteuttaa joko joko asynkronisena tai tai synkronisena; synkronisia laskureita voidaan tarvittaessa ketjuttaa (lisäsisältöä) Rinnakkais- ja ja siirtorekisteri sekä sekälaskuri laskurivoidaan esittää esittäävhdl-kuvauksena