Uke 10, 6. - 10. mars

Oppgave A4 og A5 denne uken utgjør resten av den første obligatoriske oppgaven. Innleveringen vil bli godkjent ved at den enkelte gruppe, fortrinnsvis i løpet av labtimene, viser til en av faglærerene at testkretsene virker som de skal.

Oppgaver til onsdag 7. mars 10.30 - 11.10

Oppgaver til labtimene

A4  Lag en komplett adderer (Full Adder", FA) makro. Form makroens template slik at den lett kan inngå i makroen du skal lage i neste punkt. Den skal  virke som angitt i følgende sannhetstabell:

X Y Z S C
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Lag en testkrets med interactive input's og LED's og kontrolle at makroen virker som den skal.

A5 Bruk 4 av FA-makroen fra punkt A4 til å lage en 4-bit aritmetisk krets. Denne skal vi senere bruke som vår datamaskins ALU. Lag en ALU makro av denne. Kretsen skal både kunne subtrahere og addere. Det skal antas at tall blir representert på 2'er-komplement form med fortegn (addisjon vil da selvsagt virke utmerket også om man bruker kun positive tall). ALU-makroen skal ha 2x4 input med 4-bits tallene A og B som skal behandles, og 4 output som gir resultatet, et 4-bits talll D. I tillegg skal ALU-makroen ha 3 kontroll input, S1, S0 og Ci som skal brukes til å styre ALU'ens funksjon. Disse kontroll input skal styre ALU'en etter følgende tabell:
 

S1 S0  Ci = 0  Ci = 1
0 0 D = A (overfører A til D) D = A + 1 (inkrement)
0 1 D = A  + B (addisjon) D = A + B + 1 
1 0 D = A + ikkeB D = A + ikkeB + 1 (subtraksjon)
1 1 D = A - 1 (dekrement)  D = A (overfører A til D)

Dermed kan de ønskede funksjoner senere oppnås ved å velge riktige input til S1, S0 og Ci. Kretsen kan designes ved å først lage en 4-bits mentebølgeadderer og la Ci være carry-input til denne addereren. Deretter sendes tallet A rett inn i addereren, mens det andre 4-bits tallet som sendes inn i addereren er henholdsvis, 0, B, ikke B og 1 for de fire radene i tabellen over. Dette oppnås ved å koble bitene til B-tallet til litt ekstra logikk, så de ønskede verdiene går inn i addereren. En mulighet er å bruke den kvadruple 4x1 MUX'en fra deloppgave A3, koble 0, B, ikke B og 1 til MUX'en og la S1 og S0 velge hva som sendes videre inn i addereren. Det er også mulig å oppnå det samme med færre porter om man setter opp et lite K-diagram for den ønskede logikken.

Endelig skal makroen ha to kontroll-output, Co og V. Co er carry fra den siste av FA'ene og V er et bit som er 1 om det har forekommet overflow i beregningene, slik som vist i FIGURE 3-32 i læreboka.

Makro template for ALU'en kan f. eks. se ut som på figuren. Lag en testkrets med interactive input's og LED's og kontroller at den virker som den skal.