Operation | ALUFN code |
Decimal |
---|---|---|
ADD |
000000 | 0 |
SUB |
000001 | 1 |
MUL (extra) |
000010 | 2 |
DIV (extra) |
000011 | 3 |
SHL |
000101 | 5 |
SHR |
000110 | 6 |
SRA |
000111 | 7 |
AND |
011000 | 24 |
XNOR (extra) |
011001 | 25 |
OR |
011110 | 30 |
XOR |
010110 | 22 |
LDR |
011010 | 26 |
CMPEQ |
110011 | 51 |
CMPLT |
110101 | 53 |
CMPLE |
110111 | 55 |
ALUFN
numbers for SHL
, SHR
and SRA
temporarily changed to accomodate the restrictions of io_dip
.
Description | ALUFN | A | B | Output | Extras |
---|---|---|---|---|---|
Adder | A | B | output | (z, v, n) | |
(50) + (50) del | 000000 | 0000000000110010 | 0000000000110010 | 0000000001100100 | 000 |
(-50) + (50) | 000000 | 1111111111001110 | 0000000000110010 | 0000000000000000 | 100 |
(-50) + (-64) del | 000000 | 1111111111001110 | 1111111111000000 | 1111111110001110 | 001 |
(-32767) + (-32767) | 000000 | 1000000000000001 | 1000000000000001 | 0000000000000010 | 010 |
(32767) + (32767) | 000000 | 0111111111111111 | 0111111111111111 | 1111111111111110 | 011 |
Subtract | |||||
(50) – (-50) del | 000001 | 0000000000110010 | 1111111111001110 | 0000000001100100 | 000 |
(50) – (50) | 000001 | 0000000000110010 | 0000000000110010 | 0000000000000000 | 100 |
(-50) – (64) del | 000001 | 1111111111001110 | 0000000001000000 | 1111111110001110 | 001 |
(-32767) – (32767) del | 000001 | 1000000000000001 | 0111111111111111 | 0000000000000010 | 010 |
(32767) – (-32767) del | 000001 | 0111111111111111 | 1000000000000001 | 1111111111111110 | 011 |
Compare: z, v, n | 000…(=, <, =<) | ||||
(50) vs (-50) : 000 del | d51d53d55 | 0000000000110010 | 1111111111001110 | 000 | |
(50) vs (50) : 100 del | d51d53d55 | 0000000000110010 | 0000000000110010 | 101 | |
(-50) vs (64) : 001 del | d51d53d55 | 1111111111001110 | 0000000001000000 | 011 | |
(-32767) vs (32767) : 010 | d51d53d55 | 1000000000000001 | 0111111111111111 | 011 | |
(32767) vs (-32767): 011 | d51d53d55 | 0111111111111111 | 1000000000000001 | 000 | |
Boolean (40 & -40) | |||||
AND (A & -A ) | d24 | 0000000000101000 | 1111111111011000 | 0000000000001000 | |
OR (A | -A) del | d30 | 0000000000101000 | 1111111111011000 | 1111111111111000 |
XOR (A ^ -A) del | d22 | 0000000000101000 | 1111111111011000 | 1111111111110000 | |
XNOR (A ~^ -A) del | d25 | 0000000000101000 | 1111111111011000 | 0000000000001111 | |
LDR (A) | d26 | 0000000000101000 | 1111111111011000 | 0000000000101000 | |
Shifter(40 / -40) | |||||
SL (A<<5) | d5 | 0000000000101000 | 0000000000000101 | 0000010100000000 | |
SR (A>>5) del | d6 | 0000000000101000 | 0000000000000101 | 0000000000000001 | |
SRA (-A>>5) | d7 | 1111111111011000 | 0000000000000101 | 1111111111111110 | |
Multiplier (40 & -40) | |||||
Mul (A * -A) | d2 | 0000000000101000 | 1111111111011000 | 1111100111000000 | |
Mul (-A * -A) | d2 | 1111111111011000 | 1111111111011000 | 0000011001000000 |