veryl-std 0.20.3

A modern hardware description language
Documentation
pub package ecc_pkg {
    function get_check_width (
        data_width: input u32,
    ) -> u32 {
        if data_width == 0 {
            return 0;
        }

        if data_width <= hamming_11_5_pkg::DATA_WIDTH {
            return hamming_11_5_pkg::CHECK_WIDTH;
        } else if data_width <= hamming_26_6_pkg::DATA_WIDTH {
            return hamming_26_6_pkg::CHECK_WIDTH;
        } else if data_width <= hamming_57_7_pkg::DATA_WIDTH {
            return hamming_57_7_pkg::CHECK_WIDTH;
        } else if data_width <= hamming_120_8_pkg::DATA_WIDTH {
            return hamming_120_8_pkg::CHECK_WIDTH;
        } else if data_width <= hamming_247_9_pkg::DATA_WIDTH {
            return hamming_247_9_pkg::CHECK_WIDTH;
        } else {
            return 0;
        }
    }

    function get_code_width (
        data_width: input u32,
    ) -> u32 {
        return data_width + get_check_width(data_width);
    }
}