BL40A1711 Johdanto digitaalielektroniikkaan: Johdanto ja lukujärjestelmät
Laboratory of Control Engineering and Digital Systems Focus of research and education Energy efficient systems Renewable energy systems Electromechanical systems SYSTEMS ENGINEERING Embedded systems Digital electronics design Automation engineering Modeling Modeling and and simulation simulation TECHNIQUES, METHODS AND TOOLS FOR PRACTICAL UTILIZATION Measurement technology Digital signal processing FUNDAMENTALS Control engineering
Kurssin järjestelyt Luennot: Jero Ahola, h. 6407 1. ja 2. periodi, 3 h/vko, maanantaina klo 10-12 salissa 4502, keskiviikkona klo 12-13, salissa 4501 Harjoitukset: (Lauri Nygren ja Antti Pinomaa), h. 6416 1. ja 2. periodi, 2 h/vko, samat harjoitukset kahdesti viikossa Torstaina klo 14-16 salissa 4510 ja perjantaina klo 8-10 salissa 4510 Osa simulointiharjoituksia Kotitehtävät: Kurssin aikana jaetaan 10 kpl kotitehtäviä Kytkentöjen toiminta verifioidaan simuloimalla Palautus viikon kuluessa tehtävän antopäivästä -> sähköpostitse: osoite Laurilta Pisteytys: Tehtävä oikein: 2 pistettä, hyvä yritys 1 piste Suoritusvaatimukset: Tentin läpäisy + minimissään 14 pistettä kotitehtävistä Kurssin arvostelu: Tenttiarvosana Kotitehtävistä lisäpisteitä tenttiin (max. 5) (lisäpisteet = kotitehtäväpisteet/4)
Kurssimateriaali Oppikirja: Thomas L. Floyd, Digital Fundamentals Kirjastossa (~20 kpl) Muuta kirjallisuutta: M. Morris Mano, Digital Design ja Frank Vahid, Digital Design Luennot: Luentokalvot julkaistaan kurssin kotisivuilla nopassa: https://noppa.lut.fi Harjoitukset: Harjoitustehtävät julkaistaan kurssin kotisivuilla https://noppa.lut.fi
Kurssin päätavoitteet Ymmärtää: Mitä ovat digitaaliset järjestelmät Miten digitaaliset järjestelmät toimivat Miten digitaalisia järjestelmiä implementoidaan elektroniikan avulla ja millaisia rajoituksia siihen liittyy Osata Analysoida, implementoida ja simuloida sekä kombinatorisia että sekventiaalisia digitaalisia järjestelmiä: Boolen algebraan pohjautuen kynä+paperi Hyödyntäen piirisimulaattoria (Cedar logic & Cadence Pspice)
Tentti Tentti: 5 kysymystä Opintojakson arvosana: 5 = 22-25 p. 4 = 19-21 p. 3 = 17-18 p. 2 = 15-16 p. 1 = 13-14 p. 0 = 0-12 p.
Kotitehtäväpisteet ja tenttitulos Case signaalien digitaalinen käsittely Kotitehtäväpisteet vs. tenttitulos 6 5 4 Tenttitulos 3 2 Tenttitulos Linear (Tenttitulos) 1 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Kotitehtäväpisteet
Tentti 13.12.2011 Footer
Footer Johdanto
Digitaalinen vs. Analoginen Digitaalisella signaalilla on äärellinen määrä mahdollisia arvoja, esimerkiksi kymmenluvut: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ja 10 Termi digitaalinen tulee latinan kielen sanasta digit, tarkoittaa sormea Analoginen signaali on puolestaan jatkuva Millä tahansa tarkasteluvälillä signaali voi saada äärettömän määrän mahdollisia arvoja Esmerkiksi lämpötola saattaa olla: 92.356666... C Tietokoneissa käytetään useimmiten signaaleja, joilla voi olla vain kaksi mahdollista arvoa (ON/OFF, tai 0, 1) Kutsutaan binääriseksi esitysmuodoksi Digitaalinen järjestelmä: toimii digitaalisilla tulosignaaleilla ja tuottaa digitaalisia lähtösignaaleja
Teknisten laitteiden digitalisoituminen Tunnetuin digitaalisten piirien sovelluskohde ovat tietokoneet Käytännössä kaikki kodinkoneet, laitteet ja viihdelektroniikka sisältävät digitaalielektroniikan piirejä, esim premium-luokan auto: 100 mikroprosessoria ja 100 miljoonaa riviä koodia 1 [1] Robert N. Charette, This car runs on code, IEEE Spectrum, 2009.
Trendi - Digitaalitekniikka korvaa jatkuvasti analogiatekniikkaa Yhä useampi aiemmin analogiatekniikkaan pohjautuva laite on korvattu ja korvataan digitaalitekniikalla: Esimerkiksi äänen ja videon tallennuksessa pystytään välttämään signaalin laadun heikkeneminen Luettaessa ainoastaan bittien tilat 0 ja 1 tunnistettava jatkuvan signaalin sijaan Virheen havainnointi ja -korjausmenetelmien sekä lisäinformaation avulla vioittuneet bitit voidaan myös tiettyyn rajaan saakka korvata kannettavat musiikki -soittimet satelliitit kamerat matkapuhelimet DVDsoittimet videonauhurit digi-tv soittimet kirjat, lehdet 1995 1997 1999 2001 2003 2005 2007 2008 2011
Tyypillinen digitaalinen järjestelmä Tyypillisen digitaalisen järjestelmän rakenne on esitetty alla: analoginen ilmiö anturit ja muut tulot analoginen sähköinen signaali digitaalinen data A2D digitaalinen data digitaalinen järjestelmä digitaalinen data digitaalinen data D2A analoginen sähköinen signaali toimielimet ja muut lähdöt analoginen lähtösignaali
Digitaalisen järjestelmän toteutus Suunnittelija voi tyypillisesti implementoida digitaalisen järjestelmän joko mikroprosessorilla tai kustomoidulla digitaalipiirillä liikeanturi A ilmaisin digitaalinen järjestelmä F lamppu valaistusanturi B A ilmaisin F ilmaisin B A I0 P0 F B mikroprosessori I1
Lukujärjestelmät Kymmenlukujärjestelmä Sopii hyvin ihmiselle -> sormien lukumäärä Kymmenen numeroa: 0,1,...,9 Sekä numero, että sen paikka luvussa merkitseviä Numeron sijainti luvussa -> painokerroin Painokertoimet: 10 4 3 2 1 0 10 10 10 10.10 Esimerkiksi kymmenkantainen luku (desimaaliluku) 2749.5: 1 10 2 10 3 2*1000 7*100 4*10*9*1 5*0.1 2*10 3 7*10 2 4*10 1 9*10 0 5*10 1 2749.5
Lukujärjestelmät Yleinen esitystapa Kymmenkantaisilla luvuilla kantana on 10 Lukujärjestelmä käyttää 10 desimaalia: 0...9 Vakioita luvuissa kerrotaan 10:n potensseilla Jos puolestaan tarkastellaan binäärilukuja, kantana on luku 2 Lukujärjestelmä käyttää kahta lukua: 0 ja 1 Luvun vakioiden painokertoimina 2:n potenssit Esimerkiksi binääriluku desimaalilukuna: 11010.11 1*2 Yleisesti ottaen minkä tahansa kantainen luku voidaan muuttaa 10- kantaiseksi hyödyntäen seuraavaa: a a n 1 * r n * r a 1 n1 a 2 * r * r 4 n1 2 1*2 3 a a 0*2 2 m * r Usein luku esitetään sulkujen sisällä ja sen kanta ulkopuolella alaindeksinä, esim. (1209) 10 2 * r 2 a m 1*2 1 1 * r a 0*2 0 0 1*2 a 1 j 1*2 2 0r 1 26.75
Lukujärjestelmät Esimerkkejä muunnoksista desimaaliluvuiksi Esimerkkinä 5-kantainen luku 4021.2 desimaalilukuna: 3 2 1 0 1 4021.25 4*5 0*5 2*5 1*5 2*5 511. 4 10 Vastaavasti voidaan esittää 8-kantainen luku 127.4 desimaalilukuna: 2 1 0 1 127.48 1*8 2*8 7*8 4*8 87. 5 10 Luvut 8 ja 9 eivät voi esiintyä 8-kantaisissa luvuissa Tietotekniikassa lukuja esitetään usein heksadesimaalilukuna (kantana 16), numeroiden (0,...,9) lisäksi tarvitaan siten kirjaimia (a,...,f) Esimerkiksi heksadesimaaliluku esitettynä B65F desimaalilukuna: 3 2 1 0 B65F16 11*16 6*16 5*16 15*16 46687 10
Lukujärjestelmät - Binäärijärjestelmä Binäärijärjestelmässä lukuja kutsutaan biteiksi Kun bitti tilassa 0, ei se generoi lisäystä summaan lukujärjestelmäkonversiossa Konversiossa otetaan siten huomioon vain niiden bittien sijainti, joiden tila on 1 110101 2 32 16 4 1 53 10 Tietokoneet toimivat binääriluvuilla, siksi k(ilo) = 2^10 = 1024 M(ega) = 2^20 = 1 048 576 Giga = 2^30 Esimerkiksi: 4k = 4*2^10 = 2^12 = 4096
Lukujärjestelmämuunnokset Muunnos r-kantaisesta luvusta desimaaliluvuksi esitetty Tarkastellaan seuraavaksi käänteistä operaatiota eli muunnosta desimaaliluvusta r-kantaiseksi luvuksi Jos muunnettava luku sisältää desimaalierottimen, kokonaislukuosa ja murtolukuosa on erotettava alussa Tarkastellaan menetelmää esimerkin avulla: (41) 10 -> B Muunnos muihin kantoihin tapahtuu vastaavalla tavalla, jako vain jakaja r muuttuu Kokonaislukuosa Jakojäännös Kerroin 41/2 = 20 + 1 a0 = 1 20/2 = 10 + 0 a1 = 0 10/2 = 5 + 0 a2 = 0 5/2 = 2 + 1 a3 = 1 2/2 = 1 + 0 a4 = 0 1/2 = 0 + 1 a5 = 1 Siten desimaaliluku 41 konveroituna binääriluvuksi on: a5a4a3a2a1a0 = 101001
Oktaali- ja heksadesimaaliluvut Tietotekniikassa käytetään paljon oktaali- (kantana 8) ja heksadesimaalilukuja (kantana 16) Pelkkien binäärilukujen käsittely (ihmiselle) hankalaa Muunnos näiden lukutyyppien välillä tärkeässä asemassa Koska 2^3 = 8 ja 2^4 = 16: Jokainen oktaaliluku vastaa kolmea binäärilukua Jokainen heksadesimaaliluku vastaa neljää binääriluku Muunnos binääriluvuista oktaalilukuihin voidaan toteuttaa jakamalla binääriluku osiin: (10 110 001 101 011. 111 100 000 110) 2 = (26153.746) 8 2 6 1 5 3. 7 4 0 6 Vastaavasti muunnos toisin päin: (673.124) 8 = 6 7 3. 1 2 4 (110 111 011. 001 010 100) 2
Lukujen komplementit Tietokoneissa hyödynnetään yleisesti komplementteja: Loogiset operaatiot Vähennyslaskujen toteuttaminen Luvun N, jolla on kanta r ja n numeroa (r -1):n komplementti määritetään: r n 1 N Esimerkiksi 9:n komplementit desimaaliluvuille: 546700 999999 546700 453299 012398 999999 012398 987601 Binääriluvuilla r = 2 ja r -1 = 1, siten 1:n komplementti saadaan: Esimerkiksi 1:n komplementit binääriluvuille: 1011000 0100111 0101101 1010010 n 2 1 N
Kantakomplementti (Radix Complement) Kantaluvun r komplementti n-numeroisesta luvusta määritetään seuraavasti: n r N Esimerkki 10:n komplementit: Tai binääriluvuille 2:n komplementit: n r 1 N1 999999 012398 1 987602 1101100 1 0010100 01101111 1001001 Komplementin komplementti palauttaa alkuperäisen luvun
Vähennyslasku komplementeilla Kahden n-numeroisen etumerkittömän ja r-kantaisen luvun vähennyslasku voidaan tehdä seuraavasti: Muodosta lukujen summa, vähennettävä luku komplementoidaan: M n n r N M N r Jos M >=N, summat tuottaa ylivuodon r^n, joka voidaan hylätä: jäljelle jäävä osuus on lopputulos M-N Jos M < N, summa ei tuota ylivuotoa, vaan erotuksen (M-N) komplementin. Lopputulos saadaan komplementoimalla saatu luku ja sijoittamalla siihen negatiivista lukua kuvaava etumerkki
Etumerkilliset binääriluvut Positiiviset luvut (mukaanlukien 0) voidaan esittää myös etumerkillisinä Tätä varten lukuun on liitettävä lisäinformaatiota Yleisin tapa toteuttaa tämä tietokoneissa on käyttää etumerkkibittiä, joka on luvun eniten merkitsevä bitti MSB (Most Significant Bit) MSB = 0: positiivinen luku MSB = 1: negatiivinen luku Käyttäjän on aina määritettävä onko kyseessä etumerkillinen vai etumerkitön luku, sekä se, millä tavalla luku on koodattu (0 0 0 0 1 0 0 1) 2 = 9 etumerkitön (1 0 0 0 1 0 0 1) 2 = -9 etumerkki ja magnitudi (1 1 1 1 0 1 1 0) 2 = -9 etumerkillinen 1:n komplementti (1 1 1 1 0 1 1 1) 2 = -9 etumerkillinen 2:n komplementti MSB LSB
Etumerkilliset binääriluvut Kahden komplementti Useimmiten tietokoneiden HW:llä etumerkillisten binäärilukujen esittämiseen käytetään kahden komplementteja: Komplementointi tietokoneelle nopea operaatio Vähennyslasku onnistuu summaimella Luvun 0 koodaus yksikäsitteinen Lukualue n-bittisillä 2:n komplementtiluvuilla: Esimerkkinä lukualueesta 8-bittisillä luvuilla 2...,0,...2 n1 n1 1 (10000000) 2 (11111111) 2 (00000000) 2 (00000001) 2 (01111111) 2 8-bittinen 2:n komplementti -128-1 0 +1 +127 8-bittinen desimaaliluku
Yhteen- ja vähennyslaskut binääriluvuilla Periaatteiltaan samanlaista kuin desimaaliluvuilla Pysyminen sallitulla lukualueella varmistettava Kun käytetään negatiivisten lukujen esitystapana 2:n komplementteja sekä summa että erotus voidaan toteuttaa summaimella Etumerkkibitin ylivuoto jätetään huomiotta Esimerkkejä 2:n komplementeilla: +6 00000110-6 11111010 +13 00001101 +13 00001101 +19 00010011 +7 00000111 +6 00000110-6 11111010-13 11110011-13 11110011-7 11111001-19 11101101
Kerto- ja jakolaskut binääriluvuilla Kertolasku voidaan muuttaa summaksi ja jakolasku erotukseksi Binääriluvuilla kertominen 2:lla vastaan luvun siirtämistä yhdellä bitillä MSB:n suuntaan ja jakaminen LSB:n suuntaan Analoginen tilanteeseen, kun kymmenjärjestelmässä kerrotaan tai jaetaan kymmenellä Tehokas tapa toteuttaa kerto- ja jakolaskuja tietokoneella 68 6 6 6 6 6 6 6 6 8kpl 48 6 / 2 3 6 (2 2 2) 3kpl 6 00000110 6 00000110 * 8 00001000 / 2 00000010 48 00110000 3 00000011
Binääriluvut Kiinteän pilkun esitysmuoto (Fixed point numbers) Murtolukuja voidaan esittää binääriluvuilla ottamalla käyttöön binääripiste Vastaa desimaalipistettä Pisteen vasen puoli (MSB-puoli): kokonaislukuosa Luvun oikea puoli (LSB-puoli): murtolukuosa Painoarvot: Voidaan esittää positiivisia ja negatiivisia lukuja Binääripisteen sijoittaminen on tasapainottelua halutun lukualueen ja halutun lukutarkkuuden välillä Kiinteän pilkun esitysmuodossa tarkkuus koko lukualueella on sama Kiinteää pilkkua esitysmuotona käytetään laajalti digitaalisissa signaaliprosessoreissa (DSP) Sovelluskohteita esim: matkapuhelimet, digi-tv, teollisuuselektroniikka, autoteollisuus, jne 2 1 0.5, 2 2 0.25, 2 3 0.125,...
Binääriluvut Liukuluvut (Floating point numbers) Keskeinen ero kiinteän pilkun lukuihin; kahden peräkkäisen luvun etäisyys riippuvainen etäisyydestä nollasta Lähellä nollaa tarkkuus suurin Esitystapa: eksponentti Lukuarvo = etumerkki kerroin *2 Useita standardeja, esimerkiksi IEEE 754, määrittelee 32-bittisen liukuluvun: X S E127 1 2 M Missä on varattu S = 1 bitti, E = 7 bittiä ja M = 24 bittiä Likulukuja HW-tasolla käsittelevät prosessorit paljon monimutkaisempia (enemmän transistoreja) kuin kiinteän pilkun prosessorit - 0 + - 0 + kiinteän pilkun luku liukuluku