sv2v/test/basic/dimensions.sv

32 lines
942 B
Systemverilog

`define EXHAUST(t) \
$display($size(t), $size(t,1), $size(t,2)); \
$display($left(t), $left(t,1), $left(t,2)); \
$display($right(t), $right(t,1), $right(t,2)); \
$display($high(t), $high(t,1), $high(t,2)); \
$display($low(t), $low(t,1), $low(t,2)); \
$display($increment(t), $increment(t,1), $increment(t,2)); \
$display($dimensions(t)); \
$display($unpacked_dimensions(t)); \
$display($bits(t));
module top;
typedef logic [16:1] Word;
Word Ram[0:9];
integer ints [3:0];
typedef struct packed { logic x, y, z; } T;
logic [$size(T)-1:0] foo;
initial begin
$display($size(Word));
$display($size(Ram,2));
$display($size(Ram[0]));
$display($bits(foo));
`EXHAUST(Ram);
`EXHAUST(Word);
`EXHAUST(integer);
`EXHAUST(bit);
`EXHAUST(byte);
`EXHAUST(ints);
end
endmodule