1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
module top ( out, clk, in ); output [7:0] out; input signed clk, in; reg signed [7:0] out = 0; always @(posedge clk) begin `ifndef BUG out <= out >> 1; out[7] <= in; `else out <= out << 1; out[7] <= in; `endif end endmodule