Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2012-12-17 Skrivtid 9.00-14.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng 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 Result hex Result decimal unsigned Result Decimal signed C V A+B 1001 1110 0100 1111 A-B 1011 0100 1101 0111 A >>1 (aritmetisk 1011 - - shift höger) B 2p) Vi antar 4 bitars operander och 8 bitars resultat. - Visa hur du beräknar resultatet för 1011*1101. - 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 1011*0101. - 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. x3x2\x 1x0 00 01 11 10 00 1 1 1 01 1 1 1 11 1 1 1 10 1 a)2p. Ange funktionen f(x3,x2,x1,x0) från Karnaughdiagrammet ovan 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. 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)1p. 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? h)1p. Använd Boolesk algebra för att förenkla y = x1*(x1 +x1) + x2 * x1 + x2 * x1 Visa hur du gått tillväga. x3x2\x 1x0 00 01 11 10 00 1-1 01 1 1 1 11 1 1 - - 10 1
3 Sekvenskretsar 5p. a) 1p Rita tillståndsgrafen för en Mooreautomat som kan detektera delvis överlappande sekvenser,0,1,1,1 (senaste signalen i sekvensen längst till höger) b) 2p Ställ upp en tillståndstabell för (3a) med tillståndskodningen binär och en med one-hot kod. c) 2p Rita tillståndsgrafen (Mealy) för skiftregister med 2 minnesbitar (en ingång, en utgång). Antag minnesbitarna är nollstälda vid start (reset). Du behöver inte se reset som en ingång. Sekvensen 10110xx, kommer ge 0010110. 4 Komponentlära, CMOS, Minne, FPGA, etc. 5p. 1p för rätt svar, -0.5 p för fel svar. Du kan inte få mindre än 0p totalt på uppg 4. a) Ett dynamiskt RAM minne a. Går både att läsa och skriva till b. Kan endast läsas c. Kan endast skrivas b) Ett statisk RAM minne a. Går både att läsa och skriva till b. Kan endast läsas c. Kan endast skrivas c) Skillnaden mellan en D FlipFlop och D Latch är a. En D FlipFlopen är nivåtriggad b. En D Latchen är nivåtriggad c. Inget av ovanstående. d) Bilden ovan beskriver en a. En T FlipFlop b. En T Latch c. Inget av ovanstående
e) Bilden nedan beskriver en cell i en Look-Up Table FGPA, där a. f = x 1 and x 2 b. f = x 1 and x 2 c. Inget av ovanstående
5 Kretsanalys an sekvensmaskiner 5p. 5p. Du har tillgång till T-FF (toggle Flip Flop) som är flanktriggad och har en setuptime tid på 2 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) b) c)
a) 1p Indikera i bild a) ovan hur du med hjälp av topologisk sortering kan avgöra om kretsen innehåller kombinatoriska loopar. (Använd gärna färger, och skriv vid sidan av vad du gjort). b) 2p Indikera i bild b) ovan, hur du med hjälp av topologisk sortering kan avgöra den den kritiska vägen i kretsen (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å. c) 1p Antag att nuvarande värde på Q0 = Q1 = Q2 = Q3 = 0. Indikera i c) hur du med hjälp av topologisk sortering kan simulera fram värden för nästa tillstånd. d) 1p Vad gör kretsen? (Tips, det är en vanligt förekommande typ av krets.)
6 VHDL och Systemdesign 15p a) 1.5p. Designa (Rita) 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. Skriv logisk funktion/gör en tabell för utgångarna R och Cout b) 1.5p. Designa (Rita) en 4-bits adderare mha fulladeraren. Enheten ska ha alla signaler som krävs för att passa in i uppgift (6c) c) 4p. Designa (Rita SAMT skriv i VHDL eller VHDL liknande "pseudokod") en ADD/SUB enhet baserad på din 4 bits adderare, enheten skall ha en två operander A,B, ett resultat R, alla skall vara 4 bitar. Du skall ha en ingång SUB (SUB=1 ger subtraktion, dvs R=A+(-B). Dessutom skall den ha tre utgångar C (carry),v (overflow),z (R==zero, dvs 1 om resultatet R är 0). d) 8p Designa en dator (4bits arkitektur), 8bits adress, op-kod längd är valfri. Den skall ha följande egenskaper: Datorn skall ha 8 register. Operationer tar ett register eller immidiate, samt värdet på tmp. Tmp tilldelas enligt nedan. Andra krav Använd ADD/SUB enheten ifrån (c) Du får anta komponenter såsom skiftregister, räknare, multiplexers, vippor, grindar och EN 8bitars adderare. Ladda imm(4bit i) li i (tex: li 0x3) tmp = i Addera register add n (tex: add r1) tmp = tmp + Reg[n] Subtrahera register sub n (tex: sub r1) tmp = tmp - Reg[n] Spara register sr n (tex: sr r1) Reg[n] = tmp, tmp = tmp Ladda register lr n (tex: lr r1) tmp = Reg[n] Programhopp j i (tex j 7) PC = tmp<<4 imm) (Absolut adress, msb: 4bit msb lsb: imm ) Villkorligt hopp1(relativ adress, 4bit imm) bne i (tex: bne -4) PC = PC+1 om tmp = 0 annars PC+imm, tmp = tmp Villkorligt hopp2(relativ adress, 4bit imm) beq i (tex: beq -4) PC = PC+imm om tmp = 0 annars PC+1, tmp = tmp
Exempel på program (aritmetik): tmp = XX 0: li 3 tmp = 3 1: sr r1 tmp = 3 r1 = 3 2: sr r2 tmp = 3 r2 = 3 3: li 2 tmp = 2 4: add r3 tmp = 5 5: sr r1 tmp = 5 r1 = 5 Exempel på program (programloop): 0: li 1 1: sr r2 2: li 5 3: sub r2 4: bne -1 (skall hoppa till address 3 om tmp <> 0) 5: j 5 (tmp kommer att vara 0, därför kommer den hoppa till address 0000 1001 (5). Hints for high points: -Optimize op codes for easy decoding and short word length(word length can be any integer) -Structure and principle is more important than small implementation details. -Your design does not have to include every small implementation detail even for full points. -You may use any notation(drawing/text or a mix of it) for your solution. åsom skiftregister, räknare, multiplexers, vippor och grindar.