From 6ddc6a7af42d371aa7c08505d82b30628372a16c Mon Sep 17 00:00:00 2001 From: Udi Finkelstein Date: Tue, 26 Sep 2017 19:18:25 +0300 Subject: $size() seems to work now with or without the optional parameter. Multidimensional arrays still don't work. I suspect the problem is that the array is flattened into a 1D array before $size() is evaluated. --- tests/simple/functions01.sv | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/simple/functions01.sv b/tests/simple/functions01.sv index d6cd53e07..e36d6a764 100644 --- a/tests/simple/functions01.sv +++ b/tests/simple/functions01.sv @@ -1,16 +1,26 @@ module functions01; wire [3:0]x; -wire [$size(x)-1:0]x_size; -wire [$size({x, x})-1:0]xx_size; wire [3:0]y[0:5]; -wire [$size(y)-1:0]y_size; wire [3:0]z[0:5][0:7]; -wire [$size(z)-1:0]z_size; -wire [$bits(x)-1:0]x_bits; -wire [$bits({x, x})-1:0]xx_bits; -wire [$bits(y)-1:0]y_bits; -wire [$bits(z)-1:0]z_bits; +//wire [$size(x)-1:0]x_size; +//wire [$size({x, x})-1:0]xx_size; +//wire [$size(y)-1:0]y_size; +//wire [$size(z)-1:0]z_size; + +assert property ($size(x) == 4); +assert property ($size({3{x}}) == 3*4); +assert property ($size(y) == 6); +assert property ($size(y, 1) == 6); +assert property ($size(y, 2) == 4); + +//wire [$bits(x)-1:0]x_bits; +//wire [$bits({x, x})-1:0]xx_bits; + +assert property ($bits(x) == 4); +assert property ($bits(y) == 4*6); +assert property ($bits(z) == 4*6*8); + endmodule -- cgit v1.2.3