| //- @pkg1 defines/binding Pkg1 |
| package pkg1; |
| union { |
| //- @var4 defines/binding Var4 |
| int var4; |
| //- @my_var defines/binding MyVar |
| } my_var; |
| |
| //- @f2 defines/binding _ |
| function int f2(); |
| //- @my_var ref MyVar |
| //- @var4 ref Var4 |
| return my_var.var4; |
| endfunction |
| endpackage |
| |
| union { |
| //- @var6 defines/binding Var6 |
| //- Var6 childof MyVar2 |
| int var6; |
| //- @my_var2 defines/binding MyVar2 |
| } my_var2; |
| |
| typedef union packed { |
| //- @a1 defines/binding A1 |
| logic [3:0] a1; |
| //- @b1 defines/binding B1 |
| logic [1:0][1:0] b1; |
| //- @union_type defines/binding UnionType |
| //- UnionType.node/kind record |
| } union_type; |
| |
| //- @union_type ref UnionType |
| //- @my_union defines/binding MyUnion |
| union_type my_union; |
| |
| //- @my_module defines/binding _ |
| module my_module |
| ( |
| //- @out1 defines/binding Out1 |
| output out1, |
| //- @out2 defines/binding Out2 |
| out2, |
| //- @clk defines/binding Clk |
| input clk, |
| //- @in1 defines/binding In1 |
| input in1 |
| ); |
| |
| union { |
| //- @var7 defines/binding Var7 |
| //- Var7 childof MyVar3 |
| int var7; |
| //- @my_var3 defines/binding MyVar3 |
| } my_var3; |
| |
| //- @my_var ref MyVar |
| //- @var4 ref Var4 |
| //- @pkg1 ref Pkg1 |
| initial $display(pkg1::my_var.var4); |
| |
| //- @clk ref Clk |
| always@(posedge clk) begin |
| //- @my_union ref MyUnion |
| //- @a1 ref A1 |
| //- @in1 ref In1 |
| my_union.a1 <= in1; |
| end |
| |
| //@ clk ref Clk |
| always@(posedge clk) begin |
| //- @out1 ref Out1 |
| //- @my_union ref MyUnion |
| //- @b1 ref B1 |
| out1 <= my_union.b1[0]; |
| //- @out2 ref Out2 |
| //- @my_union ref MyUnion |
| //- @b1 ref B1 |
| out2 <= my_union.b1[1]; |
| end |
| endmodule |