95 lines
1.4 KiB
Coq
95 lines
1.4 KiB
Coq
|
|
//
|
||
|
|
// 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
|