Rekisterit ja laskurit

Slides:



Advertisements
Samankaltaiset esitykset
TIES322 Tietoliikenneprotokollat 2
Advertisements

Tietokonetekniikka 4 Tieto ja tiedon talletus
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
Ohjelmiston tekninen suunnittelu
JavaScript (c) Irja & Reino Aarinen, 2007
VBA –ohjelmoinnin perusteet
Digitaalitekniikan matematiikkaLuku 0 Sivu 1 (9) Opintojakson esittely Fe Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA!
Virheen havaitseminen ja korjaus
Digitaalitekniikka osa 2 Sekvenssilogiikka
•Saadaan luotua ”lennosta” muuttujia  tiedon tallennuspaikkoja •Taulukko[indeksinumero] •Indeksinumero alkaa 0:sta •Esimerkissä on taulukon koko 4 •ja.
SoPC-oppimis- ja suunnitteluympäristö Pekka Rantala
NAND I-SOP NOR KOMBINAATIOPIIRIT & 1 & A B A B
Ohjelma on kokoelma toimintaohjeita annetun tehtävän ______________________. Ohjelmassa on peräkkäisten toimintojen lisäksi yleensä valintaa ja _____________.
Lähipäivä T Business process development methods 1.
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen0 - 1 Tervetuloa! CT50A2601Käyttöjärjestelmät (4 op)
A Rakenteiden fysiikka ja mekaniikka (3op) Syksy 2013
Valitse seuraaviin vaihtoehtotehtäviin oikea vastaus…
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
Etusivun otsikko Alarivit tulevat näin lorem ipsum dolor Lorem ipsum dolor sed diam TK00507 Mikrotietokoneet I 3 opintopistettä Petri Nuutinen.
LUKUJÄRJESTELMÄMUUNNOKSET
Kombinaatiopiirielimet
5.3.3 Koodin generointi Koodin generointi tarkoittaa objektikoodin eli konekielisen ohjelman tuottamista. Generointi jakautuu kolmeen osatehtävään: 1.Muistin.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Ohjelman perusrakenteet
m0 M7 Maksimitermi Minimitermi Boole A = A A · 0 = 0 SOP De Morgan POS
Pseudokoodi Tietokoneohjelmien perusidea:
Synkronisen sekvenssipiirin suunnittelu ja toteutus
Java-ohjelmien vianjäljitys Pietu Pohjalainen. Vianjäljitin Vianjäljitin (debuggeri) on ohjelma, jolla voidaan seurata toisen ohjelman suoritusta Tietotekniikan.
Visual Basic -ohjelmointi
Johtokoodaus Historia, toiminnalliset syyt ja toteutustapojen hintaerot ovat johtaneet eri johtokoodaustapojen kehittämiseen. Hyvälle johtokoodaukselle.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
Digitaalitekniikan matematiikkaTäsmätehtävät Fe Luku 1 ?1?1 Sivu 1Luku 1Sivu 2Opetuskerta 1 ?2?2 ?3?3 ?4?4.
KÄYTÄNNÖN LOGIIKKAPIIRIT JA PIIRROSMERKIT
Viestintäsuunnitelma
XNA peliohjelmointi. XNA Perustuu Microsoftin kehittämään.NET- arkkitehtuuriin ja C#-kieleen. XNA:lla tehdyt pelit toimivat Windows ja XBOX360-alustoilla.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Vaasan yliopisto Tietojenkäsittely TiTe.1020 Tietokoneiden luokitus E-Commerce 2010: Business, Technology, Society 6e Prentice Hall © 2010.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Tiedon esitys tietokoneessa
Kytkentäfunktiot ja perusporttipiirit
Tietokoneen rakenne matalalla tasolla KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, kevät 2002.
ELEP-1311 DIGITAALITEKNIIKKA 3 op
Kontrollirakenteet laajemmin
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Funktiokone π, ½, -2, 4  17, -2, 1, 3  f(π), f(½), f(-2), f(4) f Siis: f(π)=7, f(½)=-2, f(-2)=1, f(4)=3 (riippuvuussääntö on tuntematon)
Ohjelmoitavat logiikkaverkot
Digitaalitekniikka (piirit)Täsmätehtävät Fe/AKo Luku 1 ?1?1 Sivu 4Luku 1Sivu 1Opetuskerta 1 ?2?2.
Porin Yksikkö/Tanja Palmroth ELEP-1250 ELEKTRONIIKAN PERUSKURSSI II 4 op Syksy 2010 Aloitusluento
Valintarakenne valintarakenne alkaa aina kysymyksellä eli ehdolla ehto tarkoittaa, että muuttujan sisältöä verrataan toisen muuttujan sisältöön tai vakioon.
Loogiset piirit Puolijohteet Puolijohdekomponentit Loogiset piirit.
Ohjelma Mikro-ohjelmointi Symbolinen konekieli Osoitustavat.
Kiikuista jatkoa.
Mikro-ohjelmoitava tietokone
Digitaalitekniikka (piirit)Luku 3 Sivu 1 (51) Synkronisten sekvenssipiirien suunnittelu Fe Synkronisten sekvenssipiirien suunnittelu.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Nuorisotyön ja koulun yhteistyötä Iisalmessa
T Audiosignaalien käsittely, 3 op
Siirtorekisterin toteutus Javalla
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
ATmega128 Tekijät: Aleksi Hemmilä C5418 Tommi Pihlainen C5375
Tervetuloa jatkamaan DIGITAALI- TEKNIIKAN opiskelua!
Kontrollirakenteet laajemmin
Teknologian opetuskäyttö
Salvat ja kiikut 1D C1 1D C1 S 1D C1 R 1T C1 1J C1 1K 1J S C1 R 1K
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
Langaton tehonsiirto Tiia Moilanen Tiia Moilanen.
Esityksen transkriptio:

Rekisterit ja laskurit HTOL Digitaalitekniikan perusteet Luku 14 Sivu 1 (32) 1998-1999 Luentokalvoseloste 12.6.1998 Fe Rekisterit ja laskurit R C1 SRG4 R C1/ CTRDIV16 1R G2 2CT=15 G3 C1/2,3 + 1D 1D 3 CT

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

1 1 1 1 REG 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 16 Ohjelmoitavissa logiikkaverkoissa ja asiakaspiireissä rekisterit muodostetaan piirin sisäisistä kiikuista 1 1 1 1

REG Rinnakkaisrekisteri Yksinkertaisin rekisterityyppi on rinnakkaisrekisteri Rinnakkaisrekisterissä on n kpl D-kiikkuja, joilla on yhteinen kellotulo ja ehkä nollaustulo Erillisissä rinnakkaisrekistereissä on 4, 6, 8, 10, 16 tai 18 kiikkua/paketti Esimerkki: 4-bittinen rinnakkaisrekisteri Piirikaavio R C1 1D Q0 Q1 Q2 Q3 D0 D1 D2 D3 CLK RES Piirrosmerkki RES R Toimintataulukko CLK C1 RES CLK Qi D0 1D Q0 X D1 Q1 D2 Q2 1  Di D3 Q3

Toiminnan sallintatulolla varustettu rinnakkais-rekisteri Periaate C1 1D Qi Di CLK MUX G1 1 LOAD Lataus- eli sallintatulo LOAD LOAD = 0: rekisterin tila ei muutu LOAD = 1: normaali toiminta Esimerkki: 4-bittinen rekisteri ? 1 Q0 Q1 Q2 Q3 D0 D1 D2 D3 CLK LOAD Piirrosmerkki 2D G1 1C2 1 Toimintataulukko LOAD Qi (t+1) Qi (t) Di (t) REG

REG Nollaus- ja toiminnan sallintatulolla varustetun rinnakkaisrekisterin VHDL-kuvaus ENTITY par_reg_resn_load_8 IS PORT( d: IN BIT_VECTOR (0 TO 7); resn, load, clk: IN BIT; q: OUT BIT_VECTOR (0 TO 7)); END par_reg_resn_load_8; ARCHITECTURE behavior OF par_reg_resn_load_8 IS BEGIN PROCESS (resn, clk) BEGIN IF resn = '0' THEN q <= "00000000"; ELSIF clk'EVENT AND clk = '1' THEN IF load = '1' THEN q <= d; END IF; END PROCESS; END behavior; q(0) q(1) q(2) q(3) d(0) d(1) d(2) d(3) clk load 2D G1 1C2 resn R q(4) q(5) q(6) q(7) d(4) d(5) d(6) d(7)

Rinnakkaisrekisterien käyttökohteet REG Rinnakkaisrekisterien käyttökohteet ASM:n tilarekisteri ASM:n tulo- ja lähtösignaalien tallennusrekisteri Tulosignaalien tallennusrekisteri Lähtösignaalien tallennusrekisterit CLK INA ASM:n kombi- naatio- piiri OUTA G1 G1 1C2 1C2 2D OUTB INB 2D G1 C1 Tila- rekisteri 1C2 1D 2D OUTC Tulo- tai lähtörekisteri mikroprosessorilla toteutetuissa laitteissa

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 Piirikaavio C1 1D Q0 SI CLK Q1 Q2 Q3 SO Aikakaavio CLK SI Q0 Q1 Q2 SO SR

Siirtorekisterityypit SISO ja SIPO Piirrosmerkki SRG4 1D C1/ SI CLK SO 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 PO0 PO1 PO2 PO3 (SO) SI CLK RES Piirrosmerkki 1D R C1/ SRG4 SIPO (serial in - parallel out) erillisissä piireissä 4, 8 tai 16 bittiä keskeinen sovellus sarja-rinnakkaismuunnos käytetään tiedonsiirrossa tarvitaan sananpituuden mukainen siirtorekisteri

Nollaustulolla varustetun SIPO-siirtorekisterin VHDL-kuvaus ENTITY sipo_resn_4 IS PORT( si, resn, clk : IN BIT; po: OUT BIT_VECTOR (0 TO 3)); END sipo_resn_4; ARCHITECTURE behavior OF sipo_resn_4 IS SIGNAL q: BIT_VECTOR (0 TO 3); BEGIN PROCESS (resn, clk) IF resn = '0' THEN q <= "0000"; ELSIF clk'EVENT AND clk = '1' THEN q(3) <= q(2); q(2) <= q(1); q(1) <= q(0); q(0) <= si; END IF; END PROCESS; po <= q; END behavior; po(0) po(1) po(2) po(3) si clk resn 1D R C1/ SRG4 Signaali q on sisäinen kiik-kujen tilasignaali. Se tarvi-taan, koska lähtösignaalin arvot eivät ole VHDL-kielessä tiedossa prosessin sisällä. Sijoitus po(3) <= po(2) jne. ei ole sallittu.

Siirtorekisterityypit PISO ja PIPO PISO (parallel in - serial out) 4, 8 tai 16 bittiä keskeinen sovellus rinnakkais-sarjamuunnos PIPO (parallel in - parallel out) 4, 8 tai 16 bittiä korvaa minkä hyvänsä edellisen monipuolinen datan käsittely SO SI SHIFT RES 1,3D R C3/1 SRG4 LOAD CLK M1 M2 PI0 PI1 1,2,3D PI2 PI3 PIPO PO0 PO1 PO2 PO3 (SO) SI SHIFT RES 1,3D R C3/1 SRG4 LOAD CLK M1 M2 PI0 PI1 1,2,3D PI2 PI3 PISO

Kaksisuuntainen siirtorekisteri 1 S0 Toimintataulukko Toiminta Ei muutosta Siirto eteenpäin Siirto taaksepäin Rinnakkaislataus Siirto eteenpäin eli oikealle eli alas Siirto taaksepäin eli vasemmalle eli ylös Usein myös pysäytys tai rinnakkaislataus Toteutus tulovalitsimilla C1 1D POi PIi CLK POi -1 POi +1 MUX S0 S1 G 3 1 2 Fi Fi -1 Fi +1 SR 

Kaksisuuntainen siirtorekisteri, jatkoa Esittele PIPO-rekisteri Kaksisuuntainen siirtorekisteri, jatkoa Toimintatavan valinta S0- ja S1-tuloilla toimitapariippuvuus (M) piirrosmerkissä M = 0: ei toimintaa M = 1: 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: bitti- järjestyksen kääntö SR  RES PO0(SOL) PO1 PO2 PO3 (SOR) SIR S0 1,4D R C4/1/2 SRG4 S1 CLK 1 PI0 PI1 3,4D PI2 PI3 M 3 SIL 2,4D

Rinnakkais- ja sarjamuotoinen datasiirto Rinnakkaissiirto piirin ja laitteen sisäiseen siirtoon nopea lyhyillä etäisyyksillä yksinkertainen toteutus paljon johtimia (esim. 10 tai 18) 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 ? 2 PAR Piiri 1 CLK DACK DATA DASS Piiri 2 Laite 1 SER Laite 2 DATA12 CLK DATA21

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: CLK T0 T1 T2 T3

Ajoitussignaalien synnyttäminen siirtorekisterillä 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 = 1, kun T0 = T1 = T2 = 0, muulloin SI = 0 saadaan siis SI = T0 · T1 · T2 = T0 + T1 + T2 CLK T0 T1 T2 T3 ? 3 T0 T1 T2 T3 SI CLK 1D C1/ SRG4 1

CTR 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öä laskentajakso on 2 n laskentasekvenssi on yleensä peräkkäiset binaariluvut, esim. 0000  0001  0010  0011  ...  1110  1111  0000 ... erillispiireinä on saatavilla 4-, 8-, 12- ja 14-bittisiä binaarilaskureita, joiden laskentajaksot ovat 16, 256, 4096 ja 16384 Laskuri toimii myös taajuuden jakajana n-bittinen binaarilaskuri jakaa kellotaajuuden 2 n:llä pulssisuhde on 1:1 eli 1-osa ja 0-osa ovat yhtä pitkät Q0 Q1 Q2 Q3 4-bit CTR CLK

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 10 ja 100 laskentasekvenssi on yleensä peräkkäiset NBCD-luvut, esim. 0000  0001  0010  0011  ... 0111  1000  1001  0000 … 4-bittinen dekadilaskuri jakaa kellotaajuuden kymmenellä jaettu taajuus ei ole symmetrinen eli pulssisuhde ei ole 1:1 vaan 1:4 Muut laskurit ja jakajat voidaan suunnitella ASM-menetelmällä laskuriin saadaan haluttu laskentajakso ja -sekvenssi jaettuun taajuuteen saadaan haluttu pulssisuhde Q0 Q1 Q2 Q3 DEC CTR CLK CTR

Asynkroninen binaarilaskuri RCTR Asynkroninen binaarilaskuri 4-bittisen binaarilaskurin aikakaavio: CLK Q0 Q1 Q2 Q3 Muutos kellopulssin laskevalla reunalla 1 1 1 Muutos Q0:n laskevalla reunalla Muutos Q1:n laskevalla reunalla Muutos Q2: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 1:een Voidaan käyttää myös JK-kiikkuja, joiden J- ja K-tulot on kytketty 1:een

4-bittinen asynkroninen binaarilaskuri RCTR 4-bittinen asynkroninen binaarilaskuri Piirikaavio: 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 1T C1 CLK Q0 1 Q1 Q2 Q3 Q0 Q1 Q2 Q3 3 + CT=0 CT CLR CLK RCTRDIV16 Piirrosmerkki Asynkroninen nollaustulo tai RCTR4

Asynkronisten laskureiden ominaisuuksia RCTR Viive-ero lähtöjen välillä 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 ? 4

CTR 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 Binaarilaskurin piirrosmerkki Q0 Q1 Q2 Q3 3 C1/+ 1CT=0 CT CLR CLK CTR4

4-bittinen synkroninen binaarilaskuri Lisä 4-bittinen synkroninen binaarilaskuri Tila- ja lähtötaulu Tulot Nykyinen tila Seuraava tila Lähtö CLR ENP ENT Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 CO 0 X X X X X X 0 0 0 0 0/1* 1 0 X Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 0/1* 1 X 0 Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 Ketjutusta varten laskurissa on laskennan sallintatulot ENP ja ENT: laskuri laskee, kun ENP = ENT = 1 laskuri täynnä -lähtö CO CTRDIV16 tai CTR4 CLR 1CT=0 ENT G2 2CT=15 CO ENP G3 CLK C1/2,3+ Q0 Piirros- merkki Q1 CT Q2 3 Q3 * CO = 1, jos ENT = 1 ja laskuri on täynnä

Laskureiden ketjuttaminen Lisä Laskureiden ketjuttaminen Kahdesta 4-bittisestä binaarilaskurista 8-bittinen binaarilaskuri CTR Q0 Q1 Q2 Q3 3 C1/2,3+ 1CT=0 CT CLR CLK CTRDIV16 G2 G3 2CT=15 1 EN Q4 Q5 Q6 Q7

Kaksisuuntainen binaarilaskuri CTR  Laskenta eteenpäin: 0123 ... 141501 … Laskenta taaksepäin: 01514 ... 21015 … Valintatulo DIR laskentasuunnalle Toinen toteutusvaihtoehto: erilliset kellot laskennalle eteenpäin ja taaksepäin Piirrosmerkki tai CTR4 Q0 Q1 Q2 Q3 3 C1/2+/2- CT DIR CLK CTRDIV16 M2 1CT=0 CLR CLR 1 DIR X Toimintataulukko Toiminta Nollaus Laskenta taakse Laskenta eteen

Ladattava binaarilaskuri CTR Esittele laskuri Ladattava binaarilaskuri Laskennan tai latauksen valintatulo LOAD LOAD = 0  laskenta LOAD = 1  lataus D-tulot laskurin kiikkuihin ladattaessa kiikkuihin tallettuu seuraavalla kellopulssilla D-tulojen lataushetkinen arvo Piirrosmerkki tai CTR4 Q0 Q1 Q2 Q3 C2/1+ 2CT=0 CLR CLK CTRDIV16 M1 LOAD 1,2D [1] [2] [4] [8] D0 D1 D2 D3 CLR 1 LOAD X Toimintataulukko Toiminta Nollaus Laskenta eteen Lataus

Nollaus- ja lataustulolla varustetun laskurin VHDL-kuvaus CTR Nollaus- ja lataustulolla varustetun laskurin VHDL-kuvaus ENTITY ctr_clrn_load_4 IS PORT( load, clrn, clk : IN BIT; d: IN INTEGER RANGE 0 TO 15; q: OUT INTEGER RANGE 0 TO 15); END ctr_clrn_load_4; ARCHITECTURE behav OF ctr_clrn_load_4 IS SIGNAL qi: INTEGER RANGE 0 TO 15; BEGIN PROCESS (clk) IF clk'EVENT AND clk = '1' THEN IF clrn = '0' THEN qi <= 0; ELSIF load = '1' THEN qi <= d; ELSE qi <= qi + 1; END IF; END PROCESS; q <= qi; END behav; CTRDIV16 clrn 2CT=0 load M1 clk C2/1+ d(0) 1,2D [1] q(0) d(1) [2] q(1) d(2) [4] q(2) d(3) [8] q(3) Signaali qi on sisäinen kiikkujen tilasignaali. Se tarvitaan, koska läh-tösignaalin arvot eivät ole VHDL-kielessä tiedossa prosessin sisällä. Sijoitus q <= q + 1 ei ole sallittu.

Dekadilaskurin toteutus ladattavalla binaarilaskurilla Laskentajakso 10 Laskentasekvenssi NBCD-luvut: 0  1  2  3  ...  9  0  1  2 … Vastaavasti voidaan toteuttaa muukin kuin dekadilaskuri Laskentasekvenssin alku määrätään ladattavalla luvulla Laskentasekvenssin loppu määrätään latausehdolla CTR ? 5 CLK & Kun lasku- rissa on luku 9 (1001), ladataan 0 LOAD Q0 Q1 Q2 Q3 C2/1+ CTRDIV16 M1 1,2D [1] [2] [4] [8]

Ladattava dekadilaskuri Lisä Ladattava dekadilaskuri CTR Laskentasekvenssi NBCD-luvut: 0  1  2  3  ...  9  0  1  2 … Laskennan tai latauksen valintatulo LOAD LOAD = 0  laskenta LOAD = 1  lataus D-tulot laskurin kiikkuihin ladattaessa kiikkuihin tallettuu seuraavalla kellopulssilla D-tulojen lataushetkinen arvo Ero binaari- laskuriin Piirrosmerkki Q0 Q1 Q2 Q3 C2/1+ 2CT=0 CLR CLK CTRDIV10 M1 LOAD 1,2D [1] [2] [4] [8] D0 D1 D2 D3 CLR 1 LOAD X Toimintataulukko Toiminta Nollaus Laskenta eteen Lataus

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: 100  010  001  100 … n-bittisen rengaslaskurin laskentajakso on n Johnson-laskuri: esim. 3-bittinen: 000  100  110  111  011  001  000 … 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 SRGn 1D C1/ CLK SO Rengaslaskurin periaate SRGn 1D C1/ CLK SO Johnson-laskurin periaate CTR

Yhteenveto Rinnakkaisrekisteri koostuu useista D-kiikuista, joilla on yhteinen kellosignaali ja ehkä yhteinen nollaus- tai toiminnan sallintatulo Rinnakkaisrekistereitä käytetään ASM:n tilarekistereinä sekä signaalien arvojen tallennukseen Siirtorekisteri koostuu peräkkäin kytketyistä D-kiikuista Siirtorekisterityypit ovat SISO, SIPO, PISO ja PIPO; siirtorekisteri voi olla myös kaksisuuntainen Siirtorekistereitä käytetään mm. sarjamuotoisessa datasiirrossa Ajoitussignaaleja voidaan usein synnyttää siirtorekistereillä Laskurissa sama tila toistuu laskentajakson pituisin välein Laskuri toimii myöskin taajuuden jakajana Tärkeimmät laskurityypit ovat binaarilaskuri ja dekadilaskuri; laskuri voi olla myös kaksisuuntainen ja ladattava Laskuri voidaan toteuttaa joko asynkronisena tai synkronisena; synkronisia laskureita voidaan tarvittaessa ketjuttaa (lisäsisältöä) Rinnakkais- ja siirtorekisteri sekä laskuri voidaan esittää VHDL-kuvauksena