Zelfstudie practicum 3

advertisement
Zelfstudie practicum 3
3.4
Converteer de volgende getallen van het decimale talstelsel naar het binaire talstelsel.
Gebruik zo min mogelijk cijfers, m.a.w., schrijf geen ’leading zeros’ op.
(a)
3
(b)
25
(c)
345
(d)
5643
3.5
Een half adder is een circuit dat twee 1–bits getallen bij elkaar kan optellen. Aangezien
het resultaat twee bits breed is, heeft een half adder twee uitgangen. Ontwerp een 2–level circuit dat 2–bits getallen kan optellen.
3.6
Converteer de volgende getallen van het binaire talstelsel naar het decimale talstelsel.
Je mag ervan uitgaan dat alle getallen positief zijn.
(a)
1011
(b)
11001101
(c)
111111
(d)
0011001111
3.7
Gebruik half adders om de functionaliteit van een full adder te implementeren.
3.8
In deze opdracht onderzoeken we hoe een binaire vermenigvuldiging er uit ziet. We
gaan uit van unsigned binaire getallen.
(a)
Stel we hebben een getal A in een binaire representatie. Wat is het effect als we achter
deze binaire representatie een 0 plakken? Bijvoorbeeld, stel A
0110. Nu plakken
Wat
is
het
effect
als
we
k
nullen
achter
we een 0 achter A: A
01100.
A plakken?
(b)
Aan de hand van de observatie die je gedaan hebt in onderdeel (a) moet je nu in staat
zijn om A te vermenigvuldigen met binaire getallen waarvan slechts één bit op 1 staat.
Deze kennis is genoeg om vermenigvuldiging in het binaire domein uit te voeren. Immers, elk binair getal kan gezien worden als de optelling van een aantal andere binaire
getallen waarvan maar één bit op 1 staat. Voer de volgende vermenigvuldiging in het
binaire domein uit: 110 101.
(c)
Hoeveel bits wordt het resultaat in onderdeel (b)? Kun je dat generaliseren tot gevallen
waarin de twee getallen respectievelijk M en N bits breed zijn?
47
3.9
Geef de two’s complement representatie van de volgende getallen. Geef ook aan hoeveel bits je minimaal nodig hebt.
(a)
–3
(b)
–4
(c)
8
(d)
–345
3.10 Voer de volgende (binaire) optellingen uit. Geef voor elk getal, inclusief het resultaat,
de decimale waarde. De binaire getallen zijn two’s complement getallen. Je mag ervan
uitgaan dat indien beide getallen n bits zijn, het resultaat ook n bits is: breek het resultaat af op n bits.
(a)
011 + 111
(b)
00110 + 11001
(c)
11100 + 11010
Wat valt je op aan de bovenstaande optellingen?
3.11 We gaan in deze opgave een circuit ontwerpen dat zowel kan optellen als aftrekken.
We gaan hierbij uit van een ripple carry adder en van two’s complement getalrepresentaties.
(a)
Teken een 3–bits ripple carry adder. Je mag hierbij gebruik maken van half adders en
full adders.
(b)
Gegeven twee positieve getallen A en B, beide in de two’s complement representatie.
Pas je ripple carry adder aan zodat deze in staat is om A en B bij elkaar op te tellen en
om B van A af te trekken. De laatste operatie vindt plaats indien een signaal ’substract’
gelijk is aan 1. (Tips: denk aan opgave 3.10. Met welke poort kun je verder een signaal
conditioneel inverteren?)
3.12 Gegeven twee two’s complement getallen, A en B. A en B zijn beide twee bits breed.
(a)
Welke decimale getallen kunnen door een twee bits breed two’s complement getal worden gerepresenteerd?
We gaan een circuit ontwerpen dat A en B met elkaar kan vergelijken; een zogenaamde comparator. De uitgang van deze comparator is ook een two’s complement getal dat het resultaat
van de vergelijking weergeeft. Indien A
B, dan zal dit getal gelijk zijn aan –1. Als A
B,
dan is het getal gelijk aan 1. Indien A en B gelijk zijn, dan zal het getal gelijk zijn aan 0.
(b)
Hoeveel uitgangen heeft de comparator?
(c)
Stel de waarheidstabel op van de comparator.
(d)
Geef een implementatie van de comparator.
48
3.13 Een circuit heeft vier ingangen waarop een two’s complement getal wordt gezet. Het
circuit kan detecteren of de absolute waarde van het aangeboden getal een priem–getal
is of niet. Neem in deze opgave aan dat 1 ook een priem–getal is. Ontwerp het circuit.
49
50
Download