iverilog/ivtest/ivltests/size_cast5.v

112 lines
2.6 KiB
Coq
Raw Normal View History

module test();
function [31:0] cast_4uu(input [5:0] value);
cast_4uu = 4'(value) + 'd0;
endfunction
function [31:0] cast_4us(input [5:0] value);
cast_4us = 4'(value) + 'sd0;
endfunction
function [31:0] cast_4su(input signed [5:0] value);
cast_4su = 4'(value) + 'd0;
endfunction
function [31:0] cast_4ss(input signed [5:0] value);
cast_4ss= 4'(value) + 'sd0;
endfunction
function [31:0] cast_6uu(input [5:0] value);
cast_6uu = 6'(value) + 'd0;
endfunction
function [31:0] cast_6us(input [5:0] value);
cast_6us = 6'(value) + 'sd0;
endfunction
function [31:0] cast_6su(input signed [5:0] value);
cast_6su = 6'(value) + 'd0;
endfunction
function [31:0] cast_6ss(input signed [5:0] value);
cast_6ss= 6'(value) + 'sd0;
endfunction
function [31:0] cast_8uu(input [5:0] value);
cast_8uu = 8'(value) + 'd0;
endfunction
function [31:0] cast_8us(input [5:0] value);
cast_8us = 8'(value) + 'sd0;
endfunction
function [31:0] cast_8su(input signed [5:0] value);
cast_8su = 8'(value) + 'd0;
endfunction
function [31:0] cast_8ss(input signed [5:0] value);
cast_8ss= 8'(value) + 'sd0;
endfunction
localparam [31:0] result1a = cast_4uu(6'h3f);
localparam [31:0] result1b = cast_4us(6'h3f);
localparam [31:0] result1c = cast_4su(6'h3f);
localparam [31:0] result1d = cast_4ss(6'h3f);
localparam [31:0] result2a = cast_6uu(6'h3f);
localparam [31:0] result2b = cast_6us(6'h3f);
localparam [31:0] result2c = cast_6su(6'h3f);
localparam [31:0] result2d = cast_6ss(6'h3f);
localparam [31:0] result3a = cast_8uu(6'h3f);
localparam [31:0] result3b = cast_8us(6'h3f);
localparam [31:0] result3c = cast_8su(6'h3f);
localparam [31:0] result3d = cast_8ss(6'h3f);
reg failed = 0;
initial begin
$display("%h", result1a);
if (result1a !== 32'h0000000f) failed = 1;
$display("%h", result1b);
if (result1b !== 32'h0000000f) failed = 1;
$display("%h", result1c);
if (result1c !== 32'h0000000f) failed = 1;
$display("%h", result1d);
if (result1d !== 32'hffffffff) failed = 1;
$display("%h", result2a);
if (result2a !== 32'h0000003f) failed = 1;
$display("%h", result2b);
if (result2b !== 32'h0000003f) failed = 1;
$display("%h", result2c);
if (result2c !== 32'h0000003f) failed = 1;
$display("%h", result2d);
if (result2d !== 32'hffffffff) failed = 1;
$display("%h", result3a);
if (result3a !== 32'h0000003f) failed = 1;
$display("%h", result3b);
if (result3b !== 32'h0000003f) failed = 1;
$display("%h", result3c);
if (result3c !== 32'h000000ff) failed = 1;
$display("%h", result3d);
if (result3d !== 32'hffffffff) failed = 1;
if (failed)
$display("FAILED");
else
$display("PASSED");
end
endmodule // main