Digitaalitekniikka osa 2 Sekvenssilogiikka T686SA 2008 syksy Kurssi pohjautuu kirjaan Digitaalitekniikka, Haltsonen et al. Edita 2004 1.9.2008
Sekvenssilogiikka Sekvenssilogiikka on piiri, jossa ulostulo riippuu myös edellisestä ulostulosta, ei vain sisäänmenoista Sekvenssilogiikka voi olla asynkroonista tai synkroonista Asynkrooninen toimii kuten kombinaatiologiikka-kin, eli kun sisäänmeno muuttuu, ulostulo muuttuu huomioiden edellisen ulostulon Synkroonin toiminta tarkoittaa, että kaikki piirin toiminta ajoitetaan yhtäaikaiseksi ulkoisella kello-signaalilla. Kello voi olla mikä tahansa pulssi. 1.9.2008
Sekvenssilogiikan yleinen muoto Ulkoiset tulot Ulkoiset lähdöt A Z Kombinaatiologiikka y Takaisinkytkentä Y Muisti Sisäiset tulot (Nykytilan muuttujat) Sisäiset lähdöt (Seuraavan tilan muuttujat) Kello 1.9.2008
Yksinkertaiset sekvenssilogiik-kapiirit ja takaisinkytkentä Yksinkertaisessa piirissä muisti voi olla pelkkä johdin (muista piirin viive) Nyt tulee tarkastella sekä sisäänmenoja että ulostuloja, kuinka ne vaikuttavat kombinaatioon Input race eli sisäänmenon kilpailu tapahtuu Analysoinnissa KATKAISE takaisinkytkentä ja käytä sisäisiä tuloja kuten ulkoisiakin Tee kaksi K-karttaa: tilataulu ja lähtötaulu Vain ne tilat, jossa langan molemmat päät ovat samassa tilassa ovat vakaita tiloja (stable state) 1.9.2008
Yksinkertaiset sekvenssilogiik-kapiirit ja takaisinkytkentä Z Y y Katkaise takaisinkytkentä Vakaa JOS Y == y Tämä piiri on vakaa, jos A == 0, jos A vaihdetaan tilaan 1, sisäinen ja ulkoinen lähtö y ja Y ovat aina eri, jolloin piiri ei ole vakaa, vaan se oskilloi kunnes A on palautettu nollaan. 1.9.2008
Siirtymät tilojen välillä Perustoimintamuoto: Vain yksi sisäänmeno vaihtaa kerralla tilaansa! Ulkoiset muuttujat ylös Katkaise takaisinkytkentä Sisäiset muuttujat pystyyn Nyt havaitaan, jos A tai B =1, on systeemi vakaa ja ulostulo Z =Y=y=1. Takaisinkykennällä ei ole vaikutusta. MUTTA jos molemmat A ja B ovat nollia, meillä on kaksi vakaata tilaa. Nyt Z:n tila riippuu edellisestä tilasta, tilasta ennenkuin molemmat A ja B asetettiin nollaksi. 1.9.2008
Analyysimenetelmä Katkaise takaisinkytkentäsilmukka Laadi tilataulu seuraavan tilan muuttujille ja lähtötaulu ulostulomuuttujille. (transition table, K-map) Ulkoiset muuttujat yläriville ja sisäiset muuttujat pystysarakkeeseen Määrittele vakaat tilat (Y=y) Piirrä virtauskaavio ja tilakaavio 1.9.2008
Esimerkki y Transition table Tilataulu Karnaugh map Lähtötaulu Flow table Virtaus-, tilanvaihtokaavio 1.9.2008
Kuinka piiri toimii Jos A = B = 1 ja y = 0 niin Y = 0 ja systeemi on vakaa, tilassa numero 3 Jos B muutetaan tästä 0:ksi, piiri siirtyy vaakasuoraan oikealle tilaan AB’y’ Tämä on epävakaa tila ja piiri siirtyy pystysuo-raan tilaan AB’y, vakaaseen tilaan numero 5 Jos B muutetaan takaisin ykköseksi, piiri siirtyy vaakasuoraan vasempaan tilaan ABy, tila 4, ei takaisin tilaan 3 Ulostulon K- kartasta näemme, että ulostulo on myös eri (tila 3 = 0 ja tila 4 = 1) 1.9.2008
Tilakaavio eli State diagram Z = 0 0 1 4 2 Z = 1 1 0 1 1 0 0 0 1 1 1 0 0 1 AB = 1 1 5 3 0 0 10 1.9.2008
Kiikut ja salvat eli Flip-Flops and Latches Analysoi kuinka S-R salpa toimii! Miksi SR= 11 on Not used eli kielletty? Q’ Alkuperäinen piiri Uudelleen piirretty, vain yksi takaisinkytkentä 1.9.2008
S-R-salpa Ulostulo Q(t+1) tarkoittaa kellopulssin jälkeistä tilaa tai yleisesti vain seuraavaa tilaa. Q(t) on hetkeä aikaisempi tila. S-R –salpaa käytetään kytkinvärähtelyiden eliminointiin S R Q 1 Q(t +1) Q(t ) X 1.9.2008
D-salpa ja D-kiikku Ulostulon hallinta tapahtuu C –tulon avulla. Kun C = 1 sisäänmeno siirtyy ulostuloon (C=control) D-kiikussa kello tulee C:n paikalle (C = clock) --> tarkoittaa kellopulssin nousevalla reunalla tapahtuvaa muutosta, D tulee sanasta Delay (tai data). C 1 D X 1 Q(t +1) Q(t ) 1 1D D C Q C1 1D D CLK Q C1 D 1 Q(t +1) 1.9.2008
Kiikkupiirit D-, T- ja JK -kiikut esitellään Useat toiminnot voidaan toteuttaa sekä D että JK –kiikuilla, (T-kiikkua ei voi ostaa) Kellosignaalin nousevalla tai laskevalla reunalla tapahtuvat muutokset ulostuloissa Nousevalla reunalla Laskevalla reunalla 1.9.2008
T-Kiikku T kuten Toggle, eli jokaisella kellopulsilla ulostulo vaihtaa tilaa. Käytetään laskureissa 1T T CLK Q C1 T 1 Q(t +1) Q(t) T CLK Q 1.9.2008
JK-Kiikku Monipuolisin kiikkupiiri, myös D ja T-toiminta K 1 Q(t +1) 1 Q(t +1) Q(t) J 1J J CLK Q C1 1K K 1J C1 1K T K CLK Q J 1J C1 1K 1 D CLK 1.9.2008
JK-Kiikku JK –kiikun täydellinen totuustaulu S 1 R 1 CLK X J X 1 K X 1 R 1 CLK X J X 1 K X 1 Q(t +1) X 1 Q(t) 1J J CLK Q C1 1K K S R Asynkroninen = välitön Synkroninen = kellon tahdistama 1.9.2008
D-Kiikku eri kiikuista D–kiikun täydellinen totuustaulu D-kiikun saa myös SR- tai JK -kiikusta J K 1.9.2008
J K ja D–kiikun Toggle moodi CLK C1 1J CLK C1 Q 1 1K 1T CLK C1 Q 1 1.9.2008
Laskurit Voivat olla asynkroonisia tai synkroonisia Tarvitsemme yhtä monta kiikkua kuin laskuriin halutaan bittejä Sekä JK- että D -kiikkuja voidaan käyttää Asynkroonisissa laskureissa JK- tai D- kiikun Toggle moodia käytetään Kombinaatiologiikkaa käytetään säätämään laskurin toimintaa 1.9.2008
Kellosignaalin generaattori Diodin D1 lisäyksellä saadaan ulostulon pulssisuhde säädettyä alle 50%, valitsemalla R1 < R2. 1.9.2008
Perusbinäärilaskurit (4 ja 8) 1.9.2008
Perusbinäärilaskurit (16) Toteutus nyt D-kiikuilla 1D CLK C1 Q0 Q1 Q2 Q3 1.9.2008
Viiveet asynkroonisessa laskurissa 1.9.2008
Asynkrooninen kymmenlaskuri Lisätään ulkonen NAND portti, joka nollaa laskurin kun luku 10 on laskettu. Vastaavasti voidaan laatia myös muita laskusekvenssejä, esim. 2…6 1.9.2008
Synkrooninen 16-laskuri Huomaa kellosignaalin reitti! Kaikille piireille kello samanaikaisesti. JK’t ovat nyt joko Toggling tai HOLD tilassa Ajoituskaaviosta nähdään AND porttien paikat. 1.9.2008
Synkrooninen kymmenlaskuri 1.9.2008
Ylös/alas -laskuri Sekvenssi on 0,1,2,3,4,5,6,7,6,5,4,3,2,1,0…. Miten nämä piirit saadaan suunniteltua? 1.9.2008
Yleinen sekvenssilogiigan suunnittelu, laskurit Laadi tilataulukko piirin kaikista mahdolli-sista tiloista, ulostuloista Rakenna siirtotaulu Käytä valmistelutulojen totuustauluja, transistion tables (D tai JK) Rakenna K-kartat kullekin valmistelutulolle Kerää loogiset termit kunkin kiikun sisään-menoille Piirrä laskurikytkentä 1.9.2008
Kiikkujen valmistelutulot, FlipFlops Transition Tables Katso kiikun toimintakaaviosta ja muuta ne muotoon, jossa ulostulo on kellopulssia edeltävä sisäänmeno. Katso toimintataulusta, milloin tämä toteutuu. 1.9.2008
Esimerkki, Gray koodi -laskuri Tämä esimerkki toteutetaan JK -kiikuilla. Tee itse sama D-kiikuilla!! Tilakaavio 1.9.2008
Gray koodi -laskuri, vaiheet 2, 3 ja 4 1.9.2008
Karnaugh kartat eri kiikkujen sisäänmenoille 1.9.2008
UP/Down Gray code counter 1.9.2008
UP/Down Gray code counter 1.9.2008
UP/Down Gray code counter 1.9.2008
Piirissä esiintymättömät tilat Jos piirin tilojen kuvaamiseen tarvitaan kolmea bittiä, mutta vain viisi tilaa esiintyy normaalissa toiminnassa. Muut tilat ovat ns. Don’t care tiloja ja ne tulee ohjata johonkin haluttuun tilaan 001 000 010 011 100 111 101 110 001 000 010 011 100 111 101 110 1.9.2008
Piirissä esiintymättömät tilat X 1 A B JA C JB JC KA KB KC 001 000 010 011 100 111 101 110 001 000 010 011 100 111 101 110 1.9.2008
Piirissä esiintymättömät tilat X 1 A B JA C JB JC KA KB KC 001 000 010 011 100 111 101 110 001 000 010 011 100 111 101 110 1.9.2008
Riippuvuusmerkintä Yleinen kontrollilohko 74HC163 4-bit synkrooninen laskuri Mode Dependency M AND Dependency G Control Dependency C Control Dependency (C), yleensä sallii tai estää data tulot. C tarkoittaa kellotuloa ja numero sen perässä on nimi. Nyt 5CT=0 clr tulossa tarkoittaa, että nollaus on synkrooninen toiminta. Mode Dependency kertoo, että on kaksi toimintamoodia. M1 ja 1,5 D kertovat, että kun Load on alhaalla D tulot ladataan kiikuihin. Kun Load on ylhäällä laskuri laskee eteenpäin (M2 ja C5/2,3,4+). And Dependency (G) mikä tahansa tulon ja vastaavalla numerolla merkityn pinnin välillä on AND riippuvuus. Nyt G3 ja 3CT = 15 RCO ovat liittetty yhteen. Eli toiminta on: ENT pitää olla ylhäällä ja count = 15 ennenkuin RCO antaa signaalin. 1.9.2008
Saatavilla olevat komponentit Piirit, jotka tässä esitellään ovat toiminnaltaan ja pinnijärjestykseltään samoja kuin saman toiminnan piirit eri TTL ja CMOS IC perheissä. 1.9.2008
Laskureiden ketjuttaminen Jaa 100:lla laskuri käyttämällä kahta 74LS160 kymmenlaskuria. 1.9.2008
Laskuri ja dekooderi Tuntien ja kymmenien tuntien näytöt 1.9.2008
Siirtorekisterit Bittejä tarvitaan siirtää digitaalisissa järjestelmissä joko rinnakkain tai peräkkäin Bittien ajoitus on yleensä tärkeä PIPO PISO SIPO SISO ja rengaslaskuri Johnson -laskuri 1.9.2008
Siirtorekisterit PIPO Hieman eri aikaan saapuvat bitit saadaan kerättyä D kiikkuihin ja kellopulssin jälkeen ne siirtyvät samanaikaisesti eteenpäin 1D D0 CLK Q0 C1 D1 Q1 Dn Qn . Q2 D2 Q3 D3 1C2 2D EN R G1 1.9.2008
Siirtorekisterit SIPO Peräkkäin sarjaväylältä saapuvat bitit saadaan rinnakkaismuodossa eteenpäin 1D SI CLK PO0 C1 . . . PO1 POn CLK PO0 SI C1/ 1D PO1 PO2 PO3(SO) R SRG4 1.9.2008
Siirtorekisterit PIPO Yhden bitin osalta näytetty rinnakkaislataus SHIFT MUX PIi G1 G1 Di POi-1 1 Di-1 1D 1D POi 1 CLK C1 C1 SHIFT = 0 lataus SHIFT = 1 siirto 1.9.2008
Siirtorekisterit SISO Johdetaan viimeinen ulostulo ensimmäiseen sisään menoon Bittikuvio toistuu, esim. laiteohjauksessa käytetään 1D CLK PO0 C1 R S PO1 PO2 PO3 CLK PO0 PO1 PO2 PO3 1.9.2008
Johnson-laskuri Johdetaan viimeisen JK -kiikun Q -ulostulo ensimmäi-sen kiikun K -sisäänmenoon ja Q’ J-sisäänmenoon Rengaslaskurin variaatio Kun laskuri on täynnä nollia, se alkaa vasemmalta lukien täyttyä ykkösillä ja vuorostaan nollilla kun täynnä ykkösiä Korjauspiirillä saadaan alkuperäinen bittijakso toistumaan CLK Q0 Q1 1J C1 1K Q2 Q3 & CLK Q0 Q1 1J C1 1K Q2 Q3 1.9.2008
Muistipiirit Muistit ovat joko vaihto- tai kiintomuisteja RAM, ROM Staattisia tai dynaamisia Suora- tai peräkkäishakutoiminto RAM, FIFO, LIFO Koko kilotavuissa, megatavuissa Siirtorekisterit ovat alkeellisia muisteja 1.9.2008
Staattinen muisti Kahden invertterin muodostama piiri Kytkin transistorit johtamattomassa tilassa Tieto säilyy, niin kauan kuin piirissä on käyttösähköt Johtavassa tilassa Inverttereiden tilat näkyvät sarakelinjoilla Tallennuksessa toinen sarakelinja maahan ja toinen käyttöjännitteeseen Nopeita, cache sarakelinja 1 rivivalintalinja T1 T2 1.9.2008
Dynaaminen muisti Bitin arvo talletetaan kondensaattorin varaukseen Kun transistori johtaa, voidaan lukea tai tallettaa Vaatii säännöllisen virkistyksen, eli datan uudelleen kirjoittamisen PC:n päämuisti T rivivalintalinja sarakelinja C 1.9.2008
Kiintomuisti Haihtumattomia muisteja 19 A 1048575 G1 CS RAM 1MX8 1EN2[READ] 1C3[WRITE] RD A0 A1 A19 A,3D/2 WR . Haihtumattomia muisteja Tieto säilyy vaikka virta katkaistaan ROM, PROM,OTPROM, EPROM, EEPROM, FLASH Tehtaalla ohjelmoitu, kertaalleen käyttäjän ohjelmoitavissa, tyhjennettävissä (UV, sähkö) D0 D1 D2 D3 D4 D5 D6 D7 1.9.2008
Ohjelmoitava logiikka Erilaisia polkuja suunnitella ASIC piirejä (application specific integrated circuits) Mask programmable ASIC Computer aided design tools Voidaan käyttää vain yhteen tarkoitukseen Field programmable components ROM, PAL, PLA, PEEL, GAL, EPLD, FPGA Yleisiä komponentteja, voidaan käyttää moneen tarkoitukseen 1.9.2008
Programmable logic PLD programmable logic devices (ohjelmoitavat laitteet) PAL programmable AND-fixed OR PLA programmable AND-programmable OR GAL re-programmable AND-fixed OR with programmable output logic macrocell PEEL programmable electrically erasable GAL GAL ja PEEL voidaan käyttää joko Combinational tai Registered moodeissa 1.9.2008
Programmable logic 1.9.2008
Programmable logic Combinational output S1S0 =10 or 11 Registered output S1S0 =00 or 01 1.9.2008
Design example 1.9.2008
Porttipiirien sisäinen rakenne Voidaan luokitella eri piiriperheisiin Logic type TTL, CMOS, ECL Electrical specifications Operating voltage (CMOS can be higher than 5 V, low voltage versions 3.3 V) Noise immunity/margin Power dissipation Propagation delay Fan-out/current sourcing/current sinking Totem-pole/open collector output 1.9.2008
Logic gate’s noise margin Häiriönsietomarginaali on jännite-ero nolla- ja ykköstilan välillä. CMOS operating voltage levels TTLoperating voltage levels 1.9.2008
Logic gate’s noise immunity Noise on high level Häiriönsieto jännitteiden ylitykselle tai alitukselle. Noise on low level 1.9.2008
Logic gate’s power dissipation TTL transistorit vievät tehoa kaiken aikaa. CMOS on pieni staattisen tilan tehonkulutus, mutta dynaamisessa tapauksessa se voi ylittää TTL Tehonkulutuksen. 1.9.2008
Logic gate’s propagation delay 1.9.2008
Logic gate’s Fan-out Se kuinka montaa saman piiriperheen komponentin sisäänmenoa piirin ulostulo pystyy ohjaamaan kutsutaan fan-outiksi. Tyypillisesti 10…20 kpl. 1.9.2008
Logic gate MOSFET 1.9.2008
Logic gate CMOS inverter If input is high, Q1 is on and Q2 is off and output is low. If input is low, Q1 is off and Q2 is on and output is high. 1.9.2008
Logic gate CMOS NAND, NOR CMOS komponentit ovat erittäin herkkiä staattiselle sähkölle. Älä koske pinneihin! Työkalut tulee maadottaa. Kaikki käyttämättömät inputit pitää maadottaa tai kytkeä käyttöjännitteeseen. Open drain output and pull up resistor (vastus) 1.9.2008
Logic gate TTL circuits > 0,7 V 1.9.2008
Logic gate TTL Inverter 1.9.2008
Open collector or Totem-pole Jos joku tai kaikki ulostulot ovat ON, ulostulo on LOW. Jos kaikki ovat OFF, ulostulo on HIGH pull up vastuksen ansiosta. Älä koskaan kytke kahta totem-pole ulostuloa yhteen! Jos kaksi (tai enemmän) totem-pole OUTPUT on kytkettynä yhteen, silloin isot virrat kulkevat transistorien Q1 ja Q2 läpi ja voivat polttaa ne. 1.9.2008
Jatko Pienryhmät suunnittelevat ja toteuttavat jonkin pienen digitaalisen piirin Digitaalinoppa, erikoinen laskuri, ym. Prosessoritekniikan kurssissa jatketaan muistipiireistä ja rekistereistä sekä prosessoreiden yhteistoiminnasta FPGA ja VHDL –kursseilla syvennytään ohjelmoitaviin logiikoihin ja tietokoneella tapahtuvaan piirisynteesiin 1.9.2008