struct_bit_struct.sv 442 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
typedef struct packed {
    logic [3:0] a;
    logic [3:0] b;
} pair;

typedef struct packed {
    pair [1:0] x;
    pair [1:0] y;
} pair_list_pair;

module Example(data, p1, p2, out_x, out_y);
    input pair_list_pair data;
    input logic p1;
    input logic p2;
    output logic [3:0] out_x;
    output logic [3:0] out_y;

    assign out_x = p2 ? data.x[p1].a : data.x[p1].b;
    assign out_y = p2 ? data.y[p1].a : data.y[p1].b;
endmodule