struct_array.sv 399 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
typedef struct packed {
    logic x;
    logic [3:0] y;
    logic [1:0] z;
} Struct_t;

module Unpacker(in, select, a, b, c);
    parameter WIDTH = 8;
    input Struct_t [WIDTH-1:0] in;
    input logic [$clog2(WIDTH)-1:0] select;
    output logic a;
    output logic [3:0] b;
    output logic [1:0] c;
    assign a = in[select].x;
    assign b = in[select].y;
    assign c = in[select].z;
endmodule