Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2010-08-27 Skrivtid 9.00-14.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Per Lindgren Tel 070 376 8150 Tillåtna hjälpmedel Pennor, sudd, kaffe och joltcola. Lycka till!
1 Aritmetik 10p. A 5p) Fyll i tabellen nedan, vi använder 4-bitars operander och 4-bitars resultat. För subtraktion använder vi två-komplement metoden. Status koderna är; C = Carry, V = Overflow. Operation A B Result binary A+B 1010 1110 0100 0101 A-B 1010 0000 -A (resultat = -A) Result hex Result decimal unsigned Result Decimal signed C V 1001 1101 1011 - - B 2p) Vi antar 4 bitars operander och 8 bitars resultat. Visa hur du beräknar resultatet för 0011*1011. Vad är motsvarande operander och resultat decimal unsigned. C 3p) Vi antar 4 bitars operander och 8 bitars resultat. Visa hur du beräknar resultatet för 0011*1011. Vad är motsvarande operander och resultat decimal signed.
2 Kombinatorik och logikminimering, Karnaugh 10p. Antag att kostnaden för varje komponent är proportionell mot antalet ingångar, dvs en OR med två ingångar har kostnaden 2. a)2p. Ange funtionen f(x3,x2,x1,x0) från Karnaughdiagrammet nedan som disjunktiv, alltså Sum Of Products (SOP), samt konjunktiv, alltså Product of Sums (POS ) form. OBS ingen minimering. b)1p. Rita motsvarande två nivå grindnät för SOP formen, mha OR och AND grindar med möjliga interterare på ingångarna. c)1p. Vilken är kostnaden för grindnätet 2b) d)2p. Miminera mha Karnaugh diagram funktionen från 2a i SOP form. Ange den resulterande SOP formen. e)1p. Vilken är grindnätskostnaden för den minimerade SOP formen. x3x2\x 00 01 11 10 1x0 00 1 1 01 1 1 11 1 1 1 10 1! f)1p. Antag funktionen f(x3, x2, x1, x0) enligt Karnaugh diagramet nedan. indikerar don t care. Minimera funktionen (som SOP) givet att vi sätter alla don t cares till 0. Vilken blir grindnätskostnaden för den minimerade SOP formen? g)2p. Antag funktionen f(x3, x2, x1, x0) enligt Karnaugh diagramet. indikerar Don t care. Minimera funktionen (som SOP) givet att vi kan sätta don t cares till 0 eller 1 för att minimera funktionen. Vilken blir grindnätskostnaden för den minimerade SOP formen? x3x2\x 00 01 11 10 1x0 00 1 1-01 1 1 11-1 1 10-1
3 Sekvenskretsar 10p. a) 1p! Rita tillståndsgrafen för en Mooreautomat som kan detektera delvis överlappande SEKVENSER,1,0,1 b) 2p! Ställ upp en tillståndstabell för (3a) med tillståndskodningen binär och en med gray kod. c) 2p! Realisera din binärkodade automat (b) mha D-vippor, och kombinatoriska grindar. d) 1p! Rita tillståndsgrafen för en Mealy automat som kan detektera delvis överlappande SEKVENSER,1,0,1 e) 1p! Ställ upp en tillståndstabell för (3d) med tillståndskodningen one-hot f) 3p!! Realisera din one hot kodade automat (d) mha D-vippor, och Kombinatoriska grindar. För full poäng, använd don't care informationen och minimera grindnätet tex mha Karnaughdiagram.
4 Kretsanalys 10p. 10p. Du har tillgång till D-FF som är flanktriggad och har en setup-time tid på 1 ns (som signalen måste vara stabil innan triggning), och en fördröjning på 2 nanosekunder (från klocka till utgång). Varje grind (AND/OR/NOT) har en output-delay fördröjning på 1ns. Externa ingångar kan anses ha en output-delay på 0 nanosekunder. a) 4p Designa och implementera en 3 bits räknare (som skall räkna från 7..0, därefter börja om från 0). Räknaren skall ha en reset ingång som nollställer räknaren (denna skall vara synkron). Räknaren skall ha en utgång som blir 1 om nuvarande tillstånd är 2 eller 3 (i annat fall 0). Det är frivilligt att minimera logiken (tex. med Karnough), detta gör b och d uppgifterna betydligt enklare. Din lösning skall bara använda D-FF och AND/OR/NOT grindar. (Du får naturligtvis använda Q (NOT(Q)) utgången för att förenkla logiken om så önskas, denna har samma fördröjning som Q. Rita grindnät för din implementation. För full poäng krävs att din lösning är komplett och går att följa. b) 2p Räkna ut kritisk väg, den tidsmässigt längsta tid som signalen behöver från en klockpuls till nästa. (I detta skall setup-time och output-delay ingå. (Visa i din lösning (grindnätet ovan) delresultaten som ges vid topologisk sortering.) c) 2p Genomför en simulering av din krets givet att nuvarande tillstånd är 100 (dvs 4). (Detta har du nog redan gjort i designfasen så det är bara att fylla i nedan) Cycle Q Reset Q+ Out n 100 0 n+1 0 n+2 1 n+3 0 d) 2p Genomför samma simulering (Q = 100, reset = {0,0,1,} med hjälp av topologisk sortering. Rita om ditt kretsschema lite större så att du får plats. Ange för varje komponent, input och output vid tidpunkterna n,n+1.
5 VHDL 10p a) 2p. Implementera i VHDL en komponent för en fulladderare, med A, B och Cin (carry in) som ingångar, R (result) och Cout (carry out) som utgångar. b) 5p. Bygg en synkron seriell adderare som adderar insignalerna A och B och producerar utsignalen R seriellt och Cout indikerar om den senast utförda additionen gav en carry. Denna adderare jobbar alltså på bitströmmarna A och B och producerar bitströmmen R. Den seriella adderaren har dessutom en aktivt låg synkron ingång Reset (som ser till att Cin = 0 för den aktuella clockcykeln). Hint, du kan implementera detta med en fulladderare, en D-FF och en mux. För full poäng skall du visa både en designskiss (dvs hur komponenterna sitter ihop), samt skriva den VHDL kod som implementerar detta. Du skall använda din fulladderarkomponent från 5a). c) 3p. Skissa arkitekturen för en 64 bits seriell adderare (A, B och R är 64 bitars register). A,B och är kan implementeras som skiftregister med parallell skrivning och seriell läsning, R kan implementeras som ett skiftregister med parallell läsning och seriell skrivning. R har dessutom en write enable ingång (aktivt låg). Din seriella adderare skall ha en aktivt låg ingång Reset (som ser till att Cin = 0 för den aktuella clockcykeln), samt startar den seriella additionen. Efter 64 cykler kommer resultatet att finnas i R och Cout indikera om den senast utförda additionen gav en carry. Din konstruktion skall ha en utgång som indikerar att beräkningen är färdig. För full poäng krävs endast att du presenterar en designskiss som visar hur komponenternas ut- och insignaler är sammankopplade (inte hur komponenterna är realiserade). Du får anta komponenter såsom skiftregister, räknare, multiplexers, vippor och grindar.