Digitaalitekniikka (piirit), kertaustehtäviä: Vastaukset Metropolia/AK. Mealyn koneessa on kolme tulosignaalia, joista yksi vaikuttaa pelkästään lähtösignaaleihin, yksi pelkästään koneen tilaan ja yksi molempiin. Koneessa on tilaa ja kaksi lähtösignaalia, joista toinen saadaan suoraan tilarekisterin yhden kiikun lähdöstä ja toinen muodostetaan kombinaatiopiirillä. Koneen seuraava tila ei riipu ollenkaan sen kiikun nykyisestä tilasta, josta lähtösignaali saadaan suoraan. Nimeä tulo-, lähtö- ja tilasignaalit. Piirrä koneen lohkokaavio ja merkitse siihen signaalit. Vastaus: Koska koneessa on tilaa, tarvitaan neljä tilasignaalia. Lohkokaavio, joka täyttää edellä esitetyt ehdot, ja signaalien nimet on esitetty alla olevassa kuvassa. IN IN IN2 Lähdöt muodostava kombinaatiopiiri OU OU CLK Seuraavan tilan muodostava kombinaatiopiiri ilarekisteri PS PS PS2 PS3 NS NS NS2 NS3 2. oteuta -kiikku JK-kiikulla. -kiikun lähtö pysyy ennallaan, kun -tulo on ja vaihtaa tilaansa, kun -tulo on. JK-kiikku saadaan toimimaan näin kytkemällä sen J- ja K-tulot yhteen ja nimeämällä tämä yhdistetty tulo -tuloksi. Siis näin: J C K 3. oteuta -kiikku D-kiikulla ja porteilla a) Piirrä -kiikun ASM-kaavio. b) Laadi piirin tilataulu ja lähtötaulu. c) Esitä D:n lauseke. d) Piirrä -kiikun piirikaavio. a) -kiikulla on kaksi tilaa, joten ASM-kaaviossa on kaksi tilalohkoa. oisessa näistä kiikun lähtö on aktiivinen ja toisessa ei. -kiikkuhan toimii niin, että kun tulo =, piirin tila ei muutu ja kun =, tila muuttuu. Saadaan oheinen ASM-kaavio: N Y
b) Piirin tilataulu ja lähtötaulu. Nykyinen tila ulo Seuraava tila D Nykyinen tila Lähtö c) D:n lauseke tulojen summamuodossa nähdään suoraan: D = d) Piirikaavio: 4. oteuta JK-kiikku D-kiikulla ja porteilla. a) Piirrä JK-kiikun ASM-kaavio. b) Laadi piirin tilataulu ja lähtötaulu. c) Piirrä D:n Karnaugh n kartta ja esitä D:n lauseke tulojen summamuodossa. d) Piirrä JK-kiikun piirikaavio. N a) JK-kiikulla on kaksi tilaa, joten ASM-kaaviossa on kaksi tilalohkoa. oisessa näistä kiikun lähtö on aktiivinen ja toisessa ei. JK-kiikun toimintakaaviosta nähdään, että tilassa vain J-tulosignaalin arvo vaikuttaa seuraavaan tilaan ja vastaavasti tilassa vain K:n arvo. Saadaan oheinen ASM-kaavio: J Y K b) Piirin tilataulu ja lähtötaulu. Nykyinen tila ulot J K Seuraava tila D Nykyinen tila Lähtö
c) D:n Karnaugh n kartta ja siitä D:n lauseke tulojen summamuodossa. D J D = J + K K d) Piirikaavio: 5. Alla on erään sekvenssipiirin toiminnan kuvaava VHDL-koodi. Sen perusteella: a) Piirrä sekvenssipiirin lohkokaavio. b) Piirrä sekvenssipiirin ASM-kaavio. ENIY laite IS POR ( clk, reset, k, : IN BI; a, b, c, d: OU BI); END laite; ARCHIECURE toiminta OF laite IS YPE tilatyyppi IS (P,, R, S); SIGNAL tila: tilatyyppi; BEGIN PROCESS (reset, clk) BEGIN IF reset = '' HEN ELSIF clk'even AND clk = '' HEN CASE tila IS WHEN P => IF k = '' HEN tila <= ; WHEN => IF = '' HEN tila <= R; tila <= ; WHEN R => IF k = '' HEN tila <= S; tila <= R; WHEN S => IF = '' HEN tila <= S; END CASE; END PROCESS; a = ; WIH tila SELEC b <= '' WHEN P, '' WHEN OHERS; WIH tila SELEC c <= '' WHEN P, '' WHEN OHERS; WIH tila SELEC d <= '' WHEN S, '' WHEN OHERS; END toiminta;
a) k clk reset laite a b c d b) P reset a k a,b R a,b,c k S a,b,c,d 6. oteuta alla olevalla PAL-piirillä lauseke F = AB + ABC + BC oisin sanoen merkitse kuvaan ohjelmoitavat kytkennät niin, että F:n lauseke toteutuu. Vastaus: Ohjelmoitavan logiikkaverkon ohjelmointi tarkoittaa sitä, että kytkentämatriiseissa (kuvassa harmaat alueet) synnytetään kontaktit ristikkäin menevien signaalilinjojen välille niin, että tulosignaalit ohjautuvat oikealla tavalla logiikkaverkon sisällä olevien porttien kautta, jolloin lähtösignaalien lausekkeet toteutuvat. Kytkennät on merkitty kuvaan alle. Ylempi väyläpuskuri on passivoitu laittamalla sen EN-tuloon nolla. Silloin sen lähtö on tulosignaalin C kannalta ikäänkuin näkymätön, jolloin C ohjautuu alakautta kytkettäväksi johonkin JA-porttiin. oiseksi ylin väyläpuskuri on aktivoitu laittamalla sen EN-tuloksi ykkönen. ällöin puskuri tulosignaali menee sellaisenaan läpi puskurin lähtöön. Puskurin tulosignaali tulee EHDOON AI -portin kautta, ja kun tuon portin ylempi tulo on laitettu nollaksi, menee toiseksi ylimmän AI-portin lähtö sellaisenaan läpi portin lähtöön. (Jos EHDOON AI -portin ylempään tuloon laitetaan ykkönen, toimii portti invertterinä, eli AI-portti muuttuu AI EI -portiksi.) Alla piiri ohjelmoituna:
7. Oheisessa kuvassa on ladattava nelibittinen synkroninen laskuri. 7-segmenttinäytöllä näkyy biteistä B3-B2-B-B muodostuva heksadesimaaliluku, eli laskurin kunkinhetkinen laskentatulos. Kuvassa on juuri painettu Reset-nappia, jolloin laskuri siis on nollautunut. Kello käynnistetään, kellotaajus = Hz. Selosta mitä tapahtuu, kun aika kuluu. Vastaus: Jokainen kellon nouseva reuna kasvattaa laskentatulosta yhdellä. Kun siis kello käynnistetään, niin tästä eteenpäin aina sekunnin välein laskurin arvo (eli binaariluku B3B2BB ja sen numeronäytössä näkyvä heksadesimaaliarvo) kasvaa yhdellä. Mutta kun laskentatulos on kasvanut arvoon (jolloin numeronäytössä on 7), muuttuu LOAD = B2 B B ykköseksi, jolloin seuraava kellon nouseva reuna lataa laskurin arvoksi eli 3. ämän jälkeen taas laskentatulos kasvaa 7:ään asti, jonka jälkeen taas ei tulekaan 8, vaan ladattava arvo 3. Numeronäytön arvo siis menee näin: 2 3 4 5 6 7 3 4 5 6 7 3 4 5 6 7 3 4...