8 bit Basic ALU with Flags
Processors rely on Arithmetic Logic Units to execute mathematical and logical instructions. Beyond computing the raw result, the ALU must generate status flags that the control unit uses to evaluate conditional branch instructions.
The solution module accepts two 8 bit operands and a 3 bit operation code. It computes an 8 bit result based on the selected operation. Simultaneously, it evaluates the result to produce four status flags: zero, negative, carry, and overflow. The overflow flag specifically monitors signed arithmetic operations to detect when a result exceeds the 8 bit two's complement range; the carry flag indicates unsigned overflow or borrow.
This is a purely combinational circuit. There is no clock or reset. All outputs must reflect the current inputs continuously.
Cycle 1: op=0, a=127, b=1 → result=128, zero=0, negative=1, carry=0, overflow=1 Cycle 2: op=1, a=5, b=10 → result=251, zero=0, negative=1, carry=1, overflow=0
| Signal | Direction | Width | Description | |--------|-----------|-------|-------------| | a | input | 8 | First operand | | b | input | 8 | Second operand | | op | input | 3 | Operation code | | result | output | 8 | Computed result | | zero | output | 1 | Asserted if result is exactly 0 | | negative | output | 1 | Asserted if the most significant bit of result is 1 | | carry | output | 1 | Carry out for addition; borrow out for subtraction; 0 for all other operations | | overflow | output | 1 | Signed overflow flag; 0 for all non arithmetic operations |
Constraints
- The module must be purely combinational.
opcodes are defined as follows:0computesa + b;1computesa - b;2computesa & b;3computesa | b;4computesa ^ b;5computes~a;6passesaunchanged;7passesbunchanged.carryis defined as the unsigned carry out for addition and the unsigned borrow out for subtraction.carryandoverflowmust be strictly forced to0for any operation other than addition and subtraction.
Topics
Solve this problem
Write the module in Verilog, SystemVerilog or VHDL. Your submission is compiled and simulated against a real testbench — you get the waveform back, not a stored answer.
This problem is part of Codiode Pro. The statement above is free to read.
The circuit builder and code editor need a desktop screen. On a phone, read the problem here and open it on a laptop to solve.