Løsningsforslag til 1. del av Del - EKSAMEN Emnekode: ITD13012 Emne: Datateknikk Dato: 27. November 2012 Eksamenstid: kl 9:00 til kl 12:00 Hjelpemidler: 4 sider (A4) (2 ark) med egne notater. Ikke-kummuniserende kalkulator. Faglærer: Erling Strand Eksamensoppgaven: Oppgavesettet består av 3 sider med oppgaver og 2 sider vedlegg, totalt 5 sider. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene. Oppgavesettet består av 3 oppgaver. Alle oppgavene skal besvares. Alle oppgavene teller likt til eksamen. Sensurdato: 18. Desember 2012 Karakterene er tilgjengelige for studenter på studentweb senest dagen etter oppgitt sensurfrist. Følg instruksjoner gitt på: http://www.hiof.no/index.php?id=7027 Alle utregninger må tas med i besvarelsen! Oppgave 1 a) Du har en 64 Kbyte (Kilo byte) med minne. Hvor mange byte er det? Husk å ta med deg hvordan du regnet deg fram til svaret. All telling i det binære system foregår etter totallsystemet, altså 2 n. 1 Kilo er derfor ikke 1000, men det tallet hvor 2 n er nærmest 1000. Det er når n=10, fordi 2 10 =1024. Da blir 64 Kbyte = 64 1024 byte = 65536 byte b) Anta at du har titallet 346 i minnet. Titall vil si et tall angitt i et tallsystem med ti i grunntall, dvs vår vanlige måte å angi tall på. 1) Hva blir binærverdien til titallet 346? 346 = 101011010 Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 1 av 10
2) Gi også en kort beskrivelse av hvordan man kan komme fram til denne binærverdien, hvis man ikke har kalkulator. Det er nok å bare gi en kort beskrivelse av fremgangsmetoden. Vi dividerer på grunntallet i det nye tallsystemet, og tar vare på resten. For å gjøre om et tall i titallsystemet til binært (totallsystemet), dividerer vi titallet med 2, og tar vare på resten, som da blir 0 eller 1. Svaret etter divisjonen, dividerer vi på nytt med 2, og igjen tar vi vare på resten. Slik fortsetter vi til vi svaret har kommet til 0 3) Hva blir den hexadesimale verdien til titallet 346? 346 = 15A Det kan vi finne ved å dividere titallet på 16, og ta vare på resten, og ta svaret og dele på 16 igjen, osv. c) Beskriv hvordan datamaskinen utfører beregningen 6-8= -2. Beskriv fremgangsmetoden datamaskin bruker for å beregne dette. Angi hvilke bitverdier som alle disse tall gir. Bruk 8 bit data. En datamaskin utfører en subtraksjon ved å summere til 2 er komplementet av det tallet som skal subtraheres. I tallene over gjøres tallet 8 om til 2 er komplementær form, som summeres til tallet 6. Man får 2 er komplementet ved å invertere hver bit, og summere til 1: 00001000 = 8 11110111 = invertert + 1 =11111000 = 2 er komplementet til 8, som er -8 Subtraksjonen utføres: 00000110 = 6 +11111000 = -8 =11111110 = -2, altså 2 er komplementet av tallet 2. Finnes, ved å gå motsatt vei - 00000001 11111101 som skal invereres: 00000010 = 2 d) Anta at du bruker 8 bit data. Hvilket tallområde kan du bruke, hvis ditt tall kan være både negativt og positivt? Hva hvis det bare er positive tall? Negative og positive tall gir tallområdet -128 til + 127. Den øverste (MSB) bit avgjør om det er et positivt tall eller ikke. En 0 er sier at det er et positivt tall 7 stk 1 ere gir tallet +127. En 1 er i MSB sier at det er et negativt tall, som er angitt på 2 er komplementær form. Kun positive tall gir tallområdet 0 til +255 Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 2 av 10
Oppgave 2 a) Lag sannhetstabellen for en 3-inngangs NAND gate. b) Bevis følgende Boolsk algebra formel. Gjør det ved bruk av sannhetstabell. A B = (A+B) I sannhetstabellen til venstre har vi satt opp inngangene A og B, med alle de logiske tilstandene de to inngangene kan ha. Som hjelpekolonner har vi satt opp den inverse av A og den inverse av B. Disse to hjelpekolonnene bruker vi da vi skal finne A invers ganger med B invers. Når vi skal finne den invers av A+B, bruker vi kolonnene A og B. Vi ser her at resultatet er det samme. c) Sett opp det logiske uttrykket for kretsen under, og lag den på nytt, med færrest mulige kretselementer. Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 3 av 10
Av sannhets-tabellen ser vi at dette er en XNOR krets d) Gitt følgende logiske uttrykk: Y= A B C D + B C D + C D + A B C D 1) Bruk Karnaugh diagram til å finne det forenklede uttrykket. AB CD 00 01 11 10 00 1 1 1 1 01 1 1 1 1 11 10 _ Vi ser at Y = C 2) Lag en kretstegning av det forenklede uttrykket. Bruk færrest mulig kretselementer. _ Uttrykket Y = C, kan lages vha en inverter. e) Lag en adressedekoder vha logiske porter. Du har 4 stk minnekretser, som skal enables hver og en, gitt av utgangen fra 2 bit (fra en adressebuss). La oss si at du bruker 32 KB minnekretser. I ditt system skal du ha 4 slike kretser, slik at du totalt for 32 KB 4 = 128 KB minne. Du bruker da de to øverste bit i en adressebuss, til å enable en krets. Anta at enablesignalet er aktiv ved 1 på utgangen. (aktiv H). Lag kretstegning av denne adressedekoderen. Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 4 av 10
En 32KB minnekrets bruker en adressebuss på 15 bit, da 2 15 =32768. Hvis vårt minne skal bruke 4 slike minnekretser, må det brukes 2 bit til på adressebussen, fordi 2 2 =4 For at disse 2 ekstra adressebitene, som vi kan kalle A 15 og A 16, skal kunne enable riktig minnekrets, må vi lage en adressedekoder, som har følgende sannhetstabell: Utgangene Y0 til Y3 går til hver sin minnekrets. Adressedekoderen blir slik: Oppgave 3 a) Hvordan kan du lage en krets som dividerer frekvensen på 6 (seks)? Ta utgangspunkt i krets 74LS93, som du finner datablad på i vedlegg. Lag to tegninger. Først en kretstegning, som viser koblingene på JK-vipper. Deretter lager du en utleggstegning, hvor du viser hvordan pinnene på kretsen 74LS93 skal kobles. Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 5 av 10
Denne krets dividerer først på 3, som deretter blir dividert på 2 i den siste JK vippa. Denne koblingen krever 2 stk 74LS93 kretser, da den siste JK vippa ikke skal resettes. Med en slik kobling vil man oppnå 50/50% dutycycle på utgangen. Utleggstegning: Kretsen nedenunder dividerer på 6 direkte. Det vil ikke gi 50/50% dutycycle på utgangen, men man klarer seg med en 74LS93 krets. Det er heller inget krav i oppgaven om at det skal være 50/50% dutycycle, så begge forslagene er riktige. Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 6 av 10
b) Lag et tidsskjema av signalene i oppgave b). Ta med deg inngangsignalet, utgangsignalet og Q utgangene på JK vippene. Løsningsforslag 1, der man kobler slik at utgangssignalet får 50/50% dutycycle. Man må da bruke 2 stk 74LS93 kretser, fordi den siste JK-vippa skal ikke resettes. Løsningsforslag 2, der man kobler slik at utgangssignalet ikke får 50/50% dutycycle. Man trenger da kun 1 stk 74LS93 krets. c) Lag en digital krets som teller fra 0 til 9. Etter 9 begynner telleren på 0 igjen. Utgangen fra telleren skal gå til et syvsegment display, via en BCD-til-syvsegment dekoder. Ta utgangspunkt i krets 74LS93, som du finner datablad på i vedlegg. Selve kodingen fra BCD til syvsegment skal du ikke bry deg om. Det er bare telleren du skal lage. Lag kretstegning. I kretstegningen (på neste side) er inngangen koblet til InA, og utgangen Q A er koblet inn på inngang InB. Den 4 bit utgangen, som skal gå videre til en BCD-til-syvsegment dekoder, kommer fra alle Q utgangene, hvor Q A er LSB og Q D er MSB Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 7 av 10
d) Anta at du skal måle et analogt signal. Du skal da bruke en ADC. Anta at det analoge signalet kommer fra en temperaturmåler, som måler fra -40,0 til + 50,0 ºC. 1) Hvor mange bit må ADC ha, for at nøyaktigheten på temperaturmålingen skal bli bedre enn ±0,01 ºC? 1 LSB skal her være bedre enn 0,02 ºC, da kvantiseringsfeilen er ±½LSB, som angir nøyaktigheten. FSR= +50,0 (-40,0) ºC = 90,0 ºC Tar utgangspunkt i 1LSB = FSR/(2 n -1), hvor n er antall bit. Det gir: (2 n -1) = FSR/1LSB = 90,0 / 0,02 = 4500. Vi må da bruke 13 bit, da 2 13-1=8191. 12 bit hadde blitt for lite, fordi 2 12-1=4095, som er mindre enn 4600. Kan også regnes ut: n >= log4500/log2 =12,13 n=13 2) Anta nå at du skal bruke 10 bit ADC. Hvilken bitverdi kommer fra ADC en, hvis den måler temperaturen -10,0 ºC? Med 10 bit har vi 1023 steg. FSR = 90,0 C. Temperaturen -10,0 ºC, er 30 ºC over -40 ºC: Vi leser av tallet X, som er: X=(30 ºC / 90 ºC) 1023 = 341 Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 8 av 10
VEDLEGG 74LS93 Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 9 av 10
Løsningsforslag til Del-eksamen i ITD13012 Datateknikk, 27/12-2012 Side 10 av 10