123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # Rapport - Martin Dørum (martindn)
-
- Basisen for min løsning er at `x * 5 * 2 = x * 10`, og at `x + (x * 4) = x * 5`,
- så `x + (x << 2) = x * 5`. Til sammen skal det 11 gates til for å gjøre `x + (x * 4)`;
- det trengs 1 full adder og 3 half adders.
-
- Når vi har ganget tallet med 10, må vi se på `m` (minus). Hvis `m` er på,
- inverterer vi tallet og legger til 1 for å negere det, siden `x * -10 = (x * 10) * -1`.
- Denne negeringen gjør vi med en xor og en half adder per bit.
-
- ## Sannhetstabell
-
- Det kan hende jeg har misforstått denne delen. Dette virker veldig tungvindt,
- spesielt siden kretsen allerede er laget før jeg begynner med dette.
-
- Inputs:
-
- * m: minus
- * i1: input bit 1 (1)
- * i2: input bit 2 (2)
- * i3: input bit 3 (4)
- * i4: input bit 4 (8)
-
- Outputs:
-
- * o1: output bit 1 (1)
- * o2: output bit 2 (2)
- * o3: output bit 3 (4)
- * o4: output bit 4 (8)
- * o5: output bit 5 (16)
- * o6: output bit 6 (32)
- * o7: output bit 7 (64)
- * o8: output bit 8 (128)
-
- (Tabell på neste side)
-
- \pagebreak
-
- | m | i1 | i2 | i3 | i4 | | o1 | o2 | o3 | o4 | o5 | o6 | o7 | o8 |
- |:-:|:--:|:--:|:--:|:--:|:-:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
- | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
- | 0 | 0 | 0 | 0 | 1 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
- | 0 | 0 | 0 | 1 | 0 | | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
- | 0 | 0 | 0 | 1 | 1 | | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
- | 0 | 0 | 1 | 0 | 0 | | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
- | 0 | 0 | 1 | 0 | 1 | | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
- | 0 | 0 | 1 | 1 | 0 | | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
- | 0 | 0 | 1 | 1 | 1 | | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
- | 0 | 1 | 0 | 0 | 0 | | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
- | 0 | 1 | 0 | 0 | 1 | | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
- | 0 | 1 | 0 | 1 | 0 | | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
- | 0 | 1 | 0 | 1 | 1 | | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
- | 0 | 1 | 1 | 0 | 0 | | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
- | 0 | 1 | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
- | 0 | 1 | 1 | 1 | 0 | | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
- | 0 | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
- | 1 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
- | 1 | 0 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
- | 1 | 0 | 0 | 1 | 0 | | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
- | 1 | 0 | 0 | 1 | 1 | | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
- | 1 | 0 | 1 | 0 | 0 | | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
- | 1 | 0 | 1 | 0 | 1 | | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
- | 1 | 0 | 1 | 1 | 0 | | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
- | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
- | 1 | 1 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
- | 1 | 1 | 0 | 0 | 1 | | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
- | 1 | 1 | 0 | 1 | 0 | | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
- | 1 | 1 | 0 | 1 | 1 | | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
- | 1 | 1 | 1 | 0 | 0 | | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
- | 1 | 1 | 1 | 0 | 1 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
- | 1 | 1 | 1 | 1 | 0 | | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
- | 1 | 1 | 1 | 1 | 1 | | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
|