PackedArray conversion supports complex shadowing

This commit is contained in:
Zachary Snow
2019-04-18 15:51:39 -04:00
parent 9c1fc7d020
commit 9305c0f43b
3 changed files with 373 additions and 156 deletions
+167 -8
View File
@@ -94,21 +94,180 @@ module top;
end
initial begin
begin : lol_block
logic [1:0][1:0] arr;
arr = 4'b1001;
$display("LOL: $bits(arr): ", $bits(arr ));
$display("LOL: $bits(arr[0]): ", $bits(arr[0] ));
$display("LOL: $bits(arr[0][0]): ", $bits(arr[0][0]));
$display("LOL: arr[0]: ", arr[0]);
$display("LOL: arr[1]: ", arr[1]);
$display("LOL: arr[0][1]: ", arr[0][1]);
$display("LOL: arr[1][0]: ", arr[1][0]);
$display("LOL: arr[1][1]: ", arr[1][1]);
end
end
task magic;
begin
begin : magic_block
begin : magic_block1
logic [1:0][1:0] magic_arr;
magic_arr = 4'b1001;
$display("$bits(magic_arr): ", $bits(magic_arr ));
$display("$bits(magic_arr[0]): ", $bits(magic_arr[0] ));
$display("$bits(magic_arr[0][0]): ", $bits(magic_arr[0][0]));
$display("magic_arr[0][0]: ", magic_arr[0][0]);
$display("magic_arr[0][1]: ", magic_arr[0][1]);
$display("magic_arr[1][0]: ", magic_arr[1][0]);
$display("magic_arr[1][1]: ", magic_arr[1][1]);
$display("MB1: $bits(magic_arr): ", $bits(magic_arr ));
$display("MB1: $bits(magic_arr[0]): ", $bits(magic_arr[0] ));
$display("MB1: $bits(magic_arr[0][0]): ", $bits(magic_arr[0][0]));
$display("MB1: magic_arr[0]: ", magic_arr[0]);
$display("MB1: magic_arr[1]: ", magic_arr[1]);
$display("MB1: magic_arr[0][1]: ", magic_arr[0][1]);
$display("MB1: magic_arr[1][0]: ", magic_arr[1][0]);
$display("MB1: magic_arr[1][1]: ", magic_arr[1][1]);
end
begin : magic_block2
logic [3:0] magic_arr;
magic_arr = 4'b1001;
$display("MB2: $bits(magic_arr): ", $bits(magic_arr ));
$display("MB2: $bits(magic_arr[0]): ", $bits(magic_arr[0] ));
$display("MB2: magic_arr[0]: ", magic_arr[0]);
$display("MB2: magic_arr[1]: ", magic_arr[1]);
$display("MB2: magic_arr[2]: ", magic_arr[2]);
$display("MB2: magic_arr[3]: ", magic_arr[3]);
end
begin : magic_block3
logic [1:0][1:0][1:0] magic_arr;
magic_arr = 4'b1001;
$display("MB3: $bits(magic_arr): ", $bits(magic_arr ));
$display("MB3: $bits(magic_arr[0]): ", $bits(magic_arr[0] ));
$display("MB3: $bits(magic_arr[0][0]): ", $bits(magic_arr[0][0] ));
$display("MB3: $bits(magic_arr[0][0][0]): ", $bits(magic_arr[0][0][0]));
$display("MB3: magic_arr[0]: ", magic_arr[0]);
$display("MB3: magic_arr[1]: ", magic_arr[1]);
$display("MB3: magic_arr[0][0]: ", magic_arr[0][0]);
$display("MB3: magic_arr[0][1]: ", magic_arr[0][1]);
$display("MB3: magic_arr[1][0]: ", magic_arr[1][0]);
$display("MB3: magic_arr[1][1]: ", magic_arr[1][1]);
$display("MB3: magic_arr[0][0][0]: ", magic_arr[0][0][0]);
$display("MB3: magic_arr[0][0][1]: ", magic_arr[0][0][1]);
$display("MB3: magic_arr[0][1][0]: ", magic_arr[0][1][0]);
$display("MB3: magic_arr[0][1][1]: ", magic_arr[0][1][1]);
$display("MB3: magic_arr[1][0][1]: ", magic_arr[1][0][1]);
$display("MB3: magic_arr[1][0][0]: ", magic_arr[1][0][0]);
$display("MB3: magic_arr[1][1][1]: ", magic_arr[1][1][1]);
$display("MB3: magic_arr[1][1][0]: ", magic_arr[1][1][0]);
begin : magic_block4
logic [1:0][1:0] magic_arr;
magic_arr = 4'b1001;
$display("MB4: $bits(magic_arr): ", $bits(magic_arr ));
$display("MB4: $bits(magic_arr[0]): ", $bits(magic_arr[0] ));
$display("MB4: $bits(magic_arr[0][0]): ", $bits(magic_arr[0][0]));
$display("MB4: magic_arr[0]: ", magic_arr[0]);
$display("MB4: magic_arr[1]: ", magic_arr[1]);
$display("MB4: magic_arr[0][1]: ", magic_arr[0][1]);
$display("MB4: magic_arr[1][0]: ", magic_arr[1][0]);
$display("MB4: magic_arr[1][1]: ", magic_arr[1][1]);
end
magic_arr = 4'b1001;
$display("MB3: $bits(magic_arr): ", $bits(magic_arr ));
$display("MB3: $bits(magic_arr[0]): ", $bits(magic_arr[0] ));
$display("MB3: $bits(magic_arr[0][0]): ", $bits(magic_arr[0][0] ));
$display("MB3: $bits(magic_arr[0][0][0]): ", $bits(magic_arr[0][0][0]));
$display("MB3: magic_arr[0]: ", magic_arr[0]);
$display("MB3: magic_arr[1]: ", magic_arr[1]);
$display("MB3: magic_arr[0][0]: ", magic_arr[0][0]);
$display("MB3: magic_arr[0][1]: ", magic_arr[0][1]);
$display("MB3: magic_arr[1][0]: ", magic_arr[1][0]);
$display("MB3: magic_arr[1][1]: ", magic_arr[1][1]);
$display("MB3: magic_arr[0][0][0]: ", magic_arr[0][0][0]);
$display("MB3: magic_arr[0][0][1]: ", magic_arr[0][0][1]);
$display("MB3: magic_arr[0][1][0]: ", magic_arr[0][1][0]);
$display("MB3: magic_arr[0][1][1]: ", magic_arr[0][1][1]);
$display("MB3: magic_arr[1][0][1]: ", magic_arr[1][0][1]);
$display("MB3: magic_arr[1][0][0]: ", magic_arr[1][0][0]);
$display("MB3: magic_arr[1][1][1]: ", magic_arr[1][1][1]);
$display("MB3: magic_arr[1][1][0]: ", magic_arr[1][1][0]);
end
end
endtask
initial magic();
initial begin
begin : ntf_magic_block1
logic [1:0][1:0] ntf_magic_arr;
ntf_magic_arr = 4'b1001;
$display("NTFMB1: $bits(ntf_magic_arr): ", $bits(ntf_magic_arr ));
$display("NTFMB1: $bits(ntf_magic_arr[0]): ", $bits(ntf_magic_arr[0] ));
$display("NTFMB1: $bits(ntf_magic_arr[0][0]): ", $bits(ntf_magic_arr[0][0]));
$display("NTFMB1: ntf_magic_arr[0]: ", ntf_magic_arr[0]);
$display("NTFMB1: ntf_magic_arr[1]: ", ntf_magic_arr[1]);
$display("NTFMB1: ntf_magic_arr[0][1]: ", ntf_magic_arr[0][1]);
$display("NTFMB1: ntf_magic_arr[1][0]: ", ntf_magic_arr[1][0]);
$display("NTFMB1: ntf_magic_arr[1][1]: ", ntf_magic_arr[1][1]);
end
begin : ntf_magic_block2
logic [3:0] ntf_magic_arr;
ntf_magic_arr = 4'b1001;
$display("NTFMB2: $bits(ntf_magic_arr): ", $bits(ntf_magic_arr ));
$display("NTFMB2: $bits(ntf_magic_arr[0]): ", $bits(ntf_magic_arr[0] ));
$display("NTFMB2: ntf_magic_arr[0]: ", ntf_magic_arr[0]);
$display("NTFMB2: ntf_magic_arr[1]: ", ntf_magic_arr[1]);
$display("NTFMB2: ntf_magic_arr[2]: ", ntf_magic_arr[2]);
$display("NTFMB2: ntf_magic_arr[3]: ", ntf_magic_arr[3]);
end
begin : ntf_magic_block3
logic [1:0][1:0][1:0] ntf_magic_arr;
ntf_magic_arr = 4'b1001;
$display("NTFMB3: $bits(ntf_magic_arr): ", $bits(ntf_magic_arr ));
$display("NTFMB3: $bits(ntf_magic_arr[0]): ", $bits(ntf_magic_arr[0] ));
$display("NTFMB3: $bits(ntf_magic_arr[0][0]): ", $bits(ntf_magic_arr[0][0] ));
$display("NTFMB3: $bits(ntf_magic_arr[0][0][0]): ", $bits(ntf_magic_arr[0][0][0]));
$display("NTFMB3: ntf_magic_arr[0]: ", ntf_magic_arr[0]);
$display("NTFMB3: ntf_magic_arr[1]: ", ntf_magic_arr[1]);
$display("NTFMB3: ntf_magic_arr[0][0]: ", ntf_magic_arr[0][0]);
$display("NTFMB3: ntf_magic_arr[0][1]: ", ntf_magic_arr[0][1]);
$display("NTFMB3: ntf_magic_arr[1][0]: ", ntf_magic_arr[1][0]);
$display("NTFMB3: ntf_magic_arr[1][1]: ", ntf_magic_arr[1][1]);
$display("NTFMB3: ntf_magic_arr[0][0][0]: ", ntf_magic_arr[0][0][0]);
$display("NTFMB3: ntf_magic_arr[0][0][1]: ", ntf_magic_arr[0][0][1]);
$display("NTFMB3: ntf_magic_arr[0][1][0]: ", ntf_magic_arr[0][1][0]);
$display("NTFMB3: ntf_magic_arr[0][1][1]: ", ntf_magic_arr[0][1][1]);
$display("NTFMB3: ntf_magic_arr[1][0][1]: ", ntf_magic_arr[1][0][1]);
$display("NTFMB3: ntf_magic_arr[1][0][0]: ", ntf_magic_arr[1][0][0]);
$display("NTFMB3: ntf_magic_arr[1][1][1]: ", ntf_magic_arr[1][1][1]);
$display("NTFMB3: ntf_magic_arr[1][1][0]: ", ntf_magic_arr[1][1][0]);
begin : ntf_magic_block4
logic [1:0][1:0] ntf_magic_arr;
ntf_magic_arr = 4'b1001;
$display("NTFMB4: $bits(ntf_magic_arr): ", $bits(ntf_magic_arr ));
$display("NTFMB4: $bits(ntf_magic_arr[0]): ", $bits(ntf_magic_arr[0] ));
$display("NTFMB4: $bits(ntf_magic_arr[0][0]): ", $bits(ntf_magic_arr[0][0]));
$display("NTFMB4: ntf_magic_arr[0]: ", ntf_magic_arr[0]);
$display("NTFMB4: ntf_magic_arr[1]: ", ntf_magic_arr[1]);
$display("NTFMB4: ntf_magic_arr[0][1]: ", ntf_magic_arr[0][1]);
$display("NTFMB4: ntf_magic_arr[1][0]: ", ntf_magic_arr[1][0]);
$display("NTFMB4: ntf_magic_arr[1][1]: ", ntf_magic_arr[1][1]);
end
ntf_magic_arr = 4'b1001;
$display("NTFMB3: $bits(ntf_magic_arr): ", $bits(ntf_magic_arr ));
$display("NTFMB3: $bits(ntf_magic_arr[0]): ", $bits(ntf_magic_arr[0] ));
$display("NTFMB3: $bits(ntf_magic_arr[0][0]): ", $bits(ntf_magic_arr[0][0] ));
$display("NTFMB3: $bits(ntf_magic_arr[0][0][0]): ", $bits(ntf_magic_arr[0][0][0]));
$display("NTFMB3: ntf_magic_arr[0]: ", ntf_magic_arr[0]);
$display("NTFMB3: ntf_magic_arr[1]: ", ntf_magic_arr[1]);
$display("NTFMB3: ntf_magic_arr[0][0]: ", ntf_magic_arr[0][0]);
$display("NTFMB3: ntf_magic_arr[0][1]: ", ntf_magic_arr[0][1]);
$display("NTFMB3: ntf_magic_arr[1][0]: ", ntf_magic_arr[1][0]);
$display("NTFMB3: ntf_magic_arr[1][1]: ", ntf_magic_arr[1][1]);
$display("NTFMB3: ntf_magic_arr[0][0][0]: ", ntf_magic_arr[0][0][0]);
$display("NTFMB3: ntf_magic_arr[0][0][1]: ", ntf_magic_arr[0][0][1]);
$display("NTFMB3: ntf_magic_arr[0][1][0]: ", ntf_magic_arr[0][1][0]);
$display("NTFMB3: ntf_magic_arr[0][1][1]: ", ntf_magic_arr[0][1][1]);
$display("NTFMB3: ntf_magic_arr[1][0][1]: ", ntf_magic_arr[1][0][1]);
$display("NTFMB3: ntf_magic_arr[1][0][0]: ", ntf_magic_arr[1][0][0]);
$display("NTFMB3: ntf_magic_arr[1][1][1]: ", ntf_magic_arr[1][1][1]);
$display("NTFMB3: ntf_magic_arr[1][1][0]: ", ntf_magic_arr[1][1][0]);
end
end
endmodule