iverilog/ivtest/ivltests/const4.v

95 lines
1.4 KiB
Coq
Raw Normal View History

//
// Test the number format insanity
//
module test;
integer err;
reg [31:0] i;
// Ugly specification
initial begin
i = 659;
i = 'h 837FF;
i = 'o7460;
i = 4'b1001;
i = 5 'D 3;
i = 3'b01x;
i = 12'hx;
i = 16'hz;
i = -8 'd 6;
i = 4 'shf;
i = -4 'sd15;
end
//always @(i) $display("%0t:\ti = %d", $time, i);
// Potential ambiguities
initial begin
err = 0;
i = # 9 1'd0;
i = # 9_7 'D 3;
#100;
if (i != 'd3) begin
$display("'d3 != %0d", i);
err = 1;
end
i = # 1 'h 123;
#100;
if (i != 'h123) begin
$display("'h123 != %0h", i);
err = 1;
end
i = #(5 'D 3) 'D 3;
#100;
if (i != 'd3) begin
$display("'d3 != %0d", i);
err = 1;
end
i = # 93 'h 837FF;
#100;
if (i != 'h837ff) begin
$display("'h837ff != %0h", i);
err = 1;
end
i = # 33 20 'h 837ff - 1;
#100;
if (i != 'h837fe) begin
$display("'h837fe != %0h", i);
err = 1;
end
i = # 69 - 20 'd 255 + 20'd1;
#100;
if (i[19:0] != 20'hf_ff_02) begin
$display("- 'd254 != %0d (%h)", i, i);
err = 1;
end
i = #(27 - 20)'d 254 + 1;
#100;
if (i != 10'd255) begin
$display("'d255 != %0d", i);
err = 1;
end
i = # 97.4 'h abcd;
#100;
if (i != 'habcd) begin
$display("'abcd != %0h", i);
err = 1;
end
if (err)
$display("FAILED");
else
$display("PASSED");
end
endmodule