# Pastebin 2rZSOBmP module top(input [31:0] a, input [31:0] b, input [2:0] op, output reg [31:0] out); always @(*) case(op) 3'b000: out = a & b; 3'b001: out = a | b; 3'b010: out = a ^ b; 3'b011: out = ~a; 3'b100: out = a + b; 3'b101: out = a - b; 3'b110: out = -b; 3'b111: out = a >> 1; endcase endmodule