iverilog/ivtest/ivltests/pr1936363.v

29 lines
715 B
Verilog

module tern;
reg [13:0] fdbk_err_wide;
// arithmetic saturation from 14 bits down to 13 bits, and drop lsb
wire [11:0] fdbk_err = ((fdbk_err_wide[13:12]==2'b00) | (fdbk_err_wide[13:12]==2'b11)) ?
fdbk_err_wide[12:1] : {fdbk_err_wide[13],{11{~fdbk_err_wide[13]}}};
initial begin
#10;
$display(fdbk_err_wide, fdbk_err);
// 2008-03-04 snapshot prints x x, 2008-04-02 git prints x z
// 01eb298228d0adce9d62818e21d47fb274af9060 is first "bad" commit
#10;
fdbk_err_wide = 42;
#10;
$display(fdbk_err_wide, fdbk_err);
// everybody agrees this is 42 21
#10;
fdbk_err_wide = 14'bxxxxxxxxxxxxxx;
#10;
// everybody agrees this is x x
$display(fdbk_err_wide, fdbk_err);
#10;
$finish(0);
end
endmodule