Exempel på tentamensfrågor Digitalteknik Till dessa frågor (som kommer från lite olika tidgare tentor) gällde förutsättningen: Hjälpmedel: Kurslitteratur, föreläsningsantecknigar lab. med mätresultat, tabeller, räknare. Ofta sätts följande typ av villkor upp: Definiera användna beteckningar, ange mätetalens enheter och motivera antaganden och approximationer. Redovisa tankegångar och beräkningar så att missförstånd ej kan uppstå. Svar utan lösning ger 0 (noll) poäng! Till just dessa frågor gavs följande tips/anvisningar: I uppgifterna 6-9 bör du börja med att fundera över nödvändiga sanningstabeller och tillståndsdiagram. Redovisa dem, det underlättar både lösning och rättning av uppgifterna. Eftersom problemen kommer från olika tentor, är poängviktningen inte alltid ekvivalent, men ger ändå en fingervisning om "storleksordning". 1. Beräkna summan av talen A, B och C där A är ett binärt tal, B är ett tal skrivet på BCD-kod och C är ett hexadecimalt tal. A=10101010, B=01011001 och C=11. Svaret anges på decimal form 2. Sanningstabeller som ger upphov till Karnaughdiagram där varannan ruta är markerad med en etta realiseras enklast med EXOR - grindar. Realisera följande karnaughdiagram med en två-ingångars AND-grind och två stycken 2- ingångars EXOR-grindar. Du har tillgång till variablerna A, B, C och D samt deras inverser AB CD 00 01 11 10 00 1 0 0 0 01 0 0 0 1 11 1 0 0 0 10 0 0 0 1 3.
4. Kombinatoriska nät 5. Syntes av sekvensnät 6. Digitala kretsar/datablad a. Du vill med hjälp av kretsen 74HC390 konstruera en räknare med räknesekvens 0, 1, 2,, 8, 9, 0, 1, (egentligen 0000 0001 0010 1000 1001, 0000, 0001) Rita upp kapseln 74HC390 med samtliga ben markerade. Visa hur benen skall anslutas var skall klockan anslutas, hur skall reset-ingångarna hanteras e.t.c. Ben som ej behöver anslutas markeras med
NC (No Connection). Markera även vilka ben som är utgångar. Den utgång som ger den minst signifikanta siffran markeras ut0 och den mest signifikanta markeras ut3. Det är tillåtet att komplettera kapseln 74HC390 med 2-ingångars NAND-grindar. Eventuella NAND-grindar kan ritas som logiska symboler. Du behöver alltså inte ange ben-nummer för NAND-grindarna. b. Som ovan, men du vill ha räknesekvens 0, 1, 2, 0, 1, 2, Du måste i detta fall ansluta klockan till ben 12. (I detta fall har vi bara två utgångar ut0, ut1.) (Datablad över 74HC390 bifogades.) 7. Kombinatoriskt nät med VHDL. Iris Grönkvist har ärvt ett växthus. Det är bl.a. utrustat med 3 dörrar, 2 takluckor, 4 bevattningsslingor och 2 värmeslingor. Elnätet i växthuset är gammalt (för att inte säga gammalmodigt) så det tål inte för höga strömuttag, dvs i praktiken tål det inte att alltför många anordningar är påkopplade samtidigt. Allting kopplas på och av manuellt, men ibland har Iris inte varit uppmärksam - med påföljd att proppen efter en liten stund har smält. Trött på att byta säkringar, beslutar Iris (som för ett antal år sedan gick kursen Digitalteknik I) att bygga en liten larmanordning, eftersom hon inte har råd att "säkra upp" växthuset just nu. Hjälp Iris komma på grön kvist genom att skriva ett VHDL-program som implementerar den nödvändiga logiken för larmanordningen. Använd (ovillkorligt) följande beteckningar: B1-B4 bevattningsslingor V1, V2 värmeslingor L larmsignal Iris har funnit att följande kombinationer går bra: alla 4 B - inget mer båda V - inget mer endera V och max 2 st B Dessutom visar hennes tunga säkringsbytarerfarenhet att följande kombinationer fungerar smärtfritt: V1, B1, B2, B3 V2, B1, B3, B4 Förutsätt att Iris har ett sätt att få en 5V-signal för varje påslagen strömslukande el.anordning. 8. Sekvenskrets med VDHL. Med hjälp av en programmerad PLD skall en tärning byggas. Varje prick på tärningen består av en lysdiod som aktiveras med en hög-nivå signal. TÄRNING U3 U2 U1 U0 I1 I0 PLD 1 2 3 4 clk 5 6 7 Förutsättningarna är följande. Clk-signalen tas från en färdigkonstruerad pulsgenerator. I1 och I0 är insignaler till PLD-n. De ligger normalt på 0 V. Meddelst knapptryckningar kan de aktiveras (= 5 V). I1=1 och I0=0 (test-mod) tänder alla lysdioder.
I1=0 och I0=1 gör att PLD-n räknar från 1 till 6 i en oändlig slinga (räkne-mod) och tärningen uppdateras kontinuerligt. I1=1 och I0=1 släcker alla lysdioder (off-mod). I1=0 och I0=0 ställer räknaren i viloläge (vilo-mod) och tärningen visar senaste tillståndet. PLD-ns utgångar är ihopkopplade med tärningens lysdioder enligt nedan. Då U3=1 lyser dioderna 1 och 7. Då U2=1 lyser dioderna 3 och 5. Då U1=1 lyser dioderna 2 och 6. Då U0=1 lyser dioden 4. (Då u(u3,u2,u1,u0)= 1001 lyser prickarna 1, 4 och 7 alltså talet 3.) a) Skriv ett fullständigt VHDL-program som realiserar funktionen enligt ovan men endast med insignalerna I0 och clk, sålunda endast 'räkne-mod' och 'vilo-mod'. b) Komplettera koden i a) så att den fullständiga funktionen enligt ovan realiseras. (4p) 9. Kombinatoriska nät med HC-mos-kretsar. Familjen Pihl I familjen Pihl så har man problem med att vakna vid rätt tid på morgnarna. Eftersom sonen Johan nu har börjat utbildning till elektroingenjör så ringer pappa Sven upp Johan, efter ännu en morgon då man försovit sig: - Johan, kan inte du konstruera ett väckningslarm så att vi kommer upp i rätt tid på morgnarna? - Jag kan försöka, vilka insignaler skall styra larmet? Svarar Johan. Sven funderar en stund och säger sedan: - Jag vet inte riktigt vad du menar men jag vill att vi blir väckta klockan sex (kl_6) varje vardagsmorgon (veckans alla dagar utom lördag och söndag). På söndagar så är det ju härligt att komma ut på en skogspromenad, förutsatt att det inte regnar förstås, och då är det bra att komma upp vid klockan sju (kl_7). På lördagar så är det skönt med sovmorgon. Klockan nio (kl_9) är en lämplig tid att vakna då. - Jaha, säger Johan, jag tror jag greppar det. Är det allt? - Nej vänta, nu kommer jag på en sak till, säger Sven. Du vet farmor blir ledsen om vi inte kommer ihåg att uppvakta henne på hennes födelsedag! Hon är ju inte så morgonpigg, så fyller hon år på en vardag åker vi till henne på kvällen men fyller hon år på en lördag eller söndag så kan det vara lämpligt att vi kliver upp klockan åtta (kl_8)! Uppgift: a) Gör en tabell över vilka insignaler Johan behöver. Av tabellen så skall det framgå vilken mening dessa har för respektive logiskt tillstånd: 0, 1, (sant, falskt). b) Konstruera ett logiskt nät som realiserar väckningslarmet. c) Ange den BOOLEska funktionen (uttrycket) för väckningslarmet d) Finns det risk för att Pihls försover sig (larmet utlöses ej)? Dvs finns det något fall som Sven inte fick med i sin specifikation? I så fall vad/under vilka omständigheter? Tips: Koncentrera dig på väckningslogiken, d.v.s signaler för t.ex kl_6, kl_7, kl_8 och kl_9 o.s.v kan du anta att du har tillgängliga (se ex nedan). Du kan även anta att när väl larmet går så ljuder det till dess att någon stänger av det manuellt! Kl_6 utfall 0 Klockan är inte sex 1 Klockan är sex
10. Översiktligt Digitala funktioner kan implementeras (förverkligas) på flera olika sätt, tex med enskilda grindar och vippor eller med programmerbar logik. Diskutera för och nackdelar med dessa två metoder. (3p) 11. Kombinatorik Du vill med hjälp av en 74HC393 och en multiplexer 74HC151 skapa en signal 001100000011000000110000 Komplettera figuren nedan så att du får önskad utsignal på multiplexerns ben 5