Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2010-06-01 Skrivtid 9.00-14.00 (5 timmar) 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 Result hex Result decimal unsigned Result Decimal signed A+B 1010 0101 1000 1111 A-B 1010 0101 1000 1111 A << B 1001 0010 - - C V B 2p) Vi antar 4 bitars operander och 8 bitars resultat. Visa hur du beräknar resultatet för 0101*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 0101*1101. 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 10 1 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 - - 10 - - 1 1
3 Sekvenskretsar 10p. a) 1p! Rita tillståndsgrafen för en Mooreautomat som kan detektera SEKVENSER, 1,0,1,1 b) 2p! Ställ upp en tillståndstabell 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 SEKVENSER, 1,0,1,1 e) 1p! Ställ upp en tillståndstabell för (d) 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. 4 a) 4p. I figuren nedan ser du en sekvensiell krets. Programpekaren, registerfilen och dataminnet är clockade (du kan se dem som D-FF). Läsningar sker asynkront från registerfil och dataminne (dvs., i samma cykel som du sätter registernummer/adress för läsning kommer utgångarna sättas (registerinnehåll/data för adress). För enkelhets skulle så antar vi clock till output delay till 0ns, för clockade komponenter. I övrigt så antar vi att komponenter har samma in till out delay för alla ingångar. Komponent!! Delay Minnen!! 40ns (data och instruktionsminnen) Registerfil!! 10ns ALU!!! 30ns Decoder!! 10ns instructions splitter!0ns (den komponent som delar upp instruktionen i fält) Branch logic!! 5ns Sign/Zero box! 5ns Muxar!! 5ns Räkna ut med hjälp av topologisk sortering delay för varje väg i konstruktionen. Observera att klockade insignaler till en komponent skall ses som utgångar för kretsen och därmed slutpunkter för topologisk sortering. 4 b). 2p. Konstanten 0x16, är fel vad borde det stå där och varför, förklara utifrån hur konstanten är tänkt att användas. 4 c). 4p. Det finns ytterligare fel i konstruktionen. Finn detta (dessa) och presentera din lösning på problemet (visa i den existerande konstruktionen i tentan Fig 4b elle på separat blad där du tydligt visa på de omkonstruktioner som behövs.
Fig 4.1 Topologisk sortering
Fig 4.2 Fixad konstruktion
4 Designuppgift 10p. Designa en synkron maskin som har: 1st instruktionsminne 1st registerfil med 14 register, (numrerade 1 till 14) 8bitar breda 1st 8bits programpekare Den skall stödja följande instruktioner: call! a! r[14] <- r[15], r[15] <- a inc! a,b! r[a] <- r[b] + 1 dec! a,b! r[a] <- r[b] - 1 cpy! a,b! r[a] <- r[b] sl! a,b! r[a] <- r[b] << 1 sr! a,b! r[a] <- r[b] >> 1 eq! a,b! exekvera nästa instruktion endast om (a == b) neq! a,b! exekvera nästa instruktion endast om (a!= b) li! a,imm!r[a] <- imm r[0] och r[15] har speciella meningar Programpekaren kan läsas/skrivas genom att peka på r[15] r[0] läses alltid 0, och skrivning till r[0] innebär att kasta bort resultatet imm är 8 bitar breda Och kunna exekvera följande program: start:! li 1, 10!!! // Load imm to reg 1! li 2, 3!!! // Load imm to reg 2! li 3, addrof(add)! // Load addr of subroutine to reg 3! call 3!!! // call subroutine pointed to by reg 3, saves the current!!!!! // program counter r[15] into r[14], see definition of call end:! li 15, addrof(end)! // Infinite loop // adds two numbers // arguments in r[1] and r[2], result in r[2] // implemented iteratively, calling add (10,1) will call add (9,2) then add(8,3).. add(1,10) then add(0,11) and then we are done add:! eq 0, 1!!! // check if r[1] is zero ( then we are done)!!!! // executes the next instruction conditionally,!!!! // see definition of eq! inc 15, 14!! // subroutine return, jump back to instruction following!!!! // the call, see definition of inc.! inc 2, 2!! // r[2] <- r[2]+1! dec 1, 1!! // r[1] <- r[1]-1! li 15, addrof(add)! // one more iteration
Tänk på följande för höga poäng: -Definiera lämpliga opkoder, samt lämplig bredd på instruktionsminnet. -Koda instruktionerna smart så att bredden på instruktionminnet blir så smalt som möjligt. -Din lösning skall vara så väl beskriven så att en realisering tex med vhdl blir enkel och rättfram -Alla instruktioner är "single cycle" Lycka Till!