blob: 873f7befdf71a8d71ca21457c26e584d0fdf46f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
// test for array indexing in structures
module top;
struct packed {
bit [5:0] [7:0] a; // 6 element packed array of bytes
bit [15:0] b; // filler for non-zero offset
} s;
initial begin
s = '0;
s.a[2:1] = 16'h1234;
s.a[5] = 8'h42;
s.b = '1;
s.b[1:0] = '0;
end
always_comb assert(s==64'h4200_0012_3400_FFFC);
struct packed {
bit [7:0] [7:0] a; // 8 element packed array of bytes
bit [15:0] b; // filler for non-zero offset
} s2;
initial begin
s2 = '0;
s2.a[2:1] = 16'h1234;
s2.a[5] = 8'h42;
s2.a[7] = '1;
s2.a[7][1:0] = '0;
s2.b = '1;
s2.b[1:0] = '0;
end
always_comb assert(s2==80'hFC00_4200_0012_3400_FFFC);
endmodule
|