Interaktiv 4-bit Ripple-Carry Adder
Vi bruker desimalsystemet (base 10) med sifrene 0-9. Datamaskiner bruker binærsystemet (base 2) med bare 0 og 1.
Hvert siffer kalles en bit. En bit er enten av (0) eller på (1) — som en lysbryter.
| Posisjon | 3 | 2 | 1 | 0 |
|---|---|---|---|---|
| Verdi | 8 | 4 | 2 | 1 |
Eksempel: 1101 = 8 + 4 + 0 + 1 = 13
| Des. | Bin. | Des. | Bin. | Des. | Bin. | Des. | Bin. |
|---|---|---|---|---|---|---|---|
| 0 | 0000 | 4 | 0100 | 8 | 1000 | 12 | 1100 |
| 1 | 0001 | 5 | 0101 | 9 | 1001 | 13 | 1101 |
| 2 | 0010 | 6 | 0110 | 10 | 1010 | 14 | 1110 |
| 3 | 0011 | 7 | 0111 | 11 | 1011 | 15 | 1111 |
Elektronikk kan enkelt skille mellom to spenningsnivåer (høy/lav = 1/0), men ikke ti. Binært er derfor det naturlige «språket» for datamaskiner.
Byggesteinene i alle digitale kretser. Tar inn to bits, gir ut en bit.
Gir 1 bare når begge er 1.
| A | B | AND |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Gir 1 når minst én er 1.
| A | B | OR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Gir 1 når inngangene er forskjellige.
| A | B | XOR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
XOR er nøkkelen til addisjon: 1 + 1 = 10 — XOR gir sum-biten (0), AND gir menten (1)!
Legger sammen to bits (A, B) pluss en mente (Carry in). Gir:
| A | B | Cin | Sum | Cout |
|---|---|---|---|---|
| 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 |
P = A XOR B — delvis sumG = A AND B — direkte carryS = P XOR Cin — endelig sumH = P AND Cin — propagert carryCout = G OR H — total carryFire full adders i serie. Carry «bølger» fra bit 0 til bit 3.
FA0 må beregnes før FA1 kan starte, osv. Menten «bølger» gjennom — som dominobrikker. Se animasjonen!
En moderne CPU har milliarder gater. ALU-en bruker samme prinsipp, men 64-bit og med carry-lookahead for parallell carry — addisjon på under ett nanosekund!
Gater bygges av transistorer (små elektroniske brytere i silisium). Vår 4-bit adder med 20 gater trenger ~150-200 transistorer. En moderne brikke har transistorer på bare noen få nanometer.