|
Legge sammen to tall -- multi-bit addisjon
|
|
Vi trenger en mekanisme som adderer to bits og viser summe og carry-bit, men
tar hensyn til en carry-bit som er satt i en annen addisjon, nemlig den som
svarer til addisjonen av bits i nest-lavere bit-posisjon.
|
|
Siden vi opererer nå med to forskjellige carry-bits, skal vi kalle de for
CIN og COUT. Summen som vi beregner heter S; det er
verdien som vi vil skrive ned som resultat på bit-posisjonen vi regner
på. Blir der overdrag (COUT = 1) så sendes dette videre
til nest-høyre bit-posisjon.
|
Her kommer den logiske oppførselen som skal til:
| Inngang A |
Inngang B |
Inngang CIN |
Utgang COUT |
Utgang S |
| 0 |
0 |
0 |
0 |
0 |
| 0 |
0 |
1 |
0 |
1 |
| 1 |
0 |
0 |
0 |
1 |
| 1 |
0 |
1 |
1 |
0 |
| 0 |
1 |
0 |
0 |
1 |
| 0 |
1 |
1 |
1 |
0 |
| 1 |
1 |
0 |
1 |
0 |
| 1 |
1 |
1 |
1 |
1 |
|
Litt uoversiktlig! Men her har du en krets som oppfører seg akkurat
som spesifisert i tabellen:
|
Du kan teste det enten ved direkte etterprøving i et Excel regneark, eller
stille i hodet ditt. Gjør du det i Excel, vil det lønne seg å
bruke litt klipp-og-lim teknikk, og gi navn til enkelte celler.
|
En slik krets heter 1-bit full-adder. Fordi den er brukt veldig ofte, og
samtidig er ganske komplisert, bruker man et symbol som fremstiller det som
en "black box" med innganger og utganger. Det som er av interesse er jo
den logiske funksjonen, ikke implementeringen.
|
Med en slik boks kan du addere 1-bit tall. Hvis du henger sammen flere bokser,
kan du addere multi-bit tall. Det eneste du må gjøre, er å mate
carry-bit'en fra en bit-posisjon inn i boksen som beregner nest-høyre
bit-posisjon. Her har du en 4-bit adderer:
|
|
Du kan implementere dette i Excel, men det begynner å bli vanskelig
å holde styr på alt. Kanskje best å operere med forskjellige
ark, ett for hver 1-bit boks.
|
|
Kretser av den typen er implementert i prosessoren til datamaskinen din. Mens
maskinen kjører, adderer den hele tiden..!
|