blob: 54b4db9e96427322724fe3bd6ad6ac15614a503b [file] [log] [blame]
module top (
input clock,
input [31:0] dinA, dinB,
input [2:0] opcode,
output reg [31:0] dout
);
always @(posedge clock) begin
case (opcode)
0: dout <= dinA + dinB;
1: dout <= dinA - dinB;
2: dout <= dinA >> dinB;
3: dout <= $signed(dinA) >>> dinB;
4: dout <= dinA << dinB;
5: dout <= dinA & dinB;
6: dout <= dinA | dinB;
`ifndef BUG
7: dout <= dinA ^ dinB;
`else
7: dout <= -dinA ^ dinB;
`endif
endcase
end
endmodule