string_param.sv 466 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
`include "string_param.vh"

module Example(inp, out);
    parameter PATTERN = "whatever";
    parameter UNUSED = 0;
    localparam IN_WIDTH = $bits(PATTERN);
    localparam OUT_WIDTH = `COUNT_ONES(PATTERN);

    input [IN_WIDTH - 1:0] inp;
    output [OUT_WIDTH - 1:0] out;
    if (PATTERN[0])
        assign out[0] = inp[0];
    for (genvar j = 1; j < IN_WIDTH; ++j)
        if (PATTERN[j])
            assign out[`COUNT_ONES(PATTERN[j - 1:0])] = inp[j];
endmodule