Требуется при помощи языка Verilog спроектировать параметрический блок линейного классификатора. Данный блок получает на вход набор значений признаков и их веса. Для каждого класса вычисляется сумма произведений значений признаков на веса. Среди полученных значений находится максимум и в качестве результата блок выдает индекс класса, на котором был достигнут максимум. Имя модуля должно быть linear_classifier. Параметры модуля: * WIDTH - размер чисел (по умолчанию, 8 бит). * FEATURES - количество признаков (по умолчанию, 2). * C_WIDTH - количество бит, которые используются для хранения индеска класса (по умолчанию, 1). Считается, что число классов является степенью двойки. Входы модуля: * features - шина проводов размера FEATURES * WIDTH, представляющая собой последовательную конкатенацию значений входных признаков. * weights - шина проводов размера (2**C_SIZE) * FEATURES * WIDTH, представляющая собой последовательную конкатенацию значений весов признаков для всех классов. Выходы модуля: * r_value - шина проводов размера WIDTH, представляющая собой результат вычисления максимума. * r_class - шина проводов размера C_WIDTH, представляющая собой индекс класса, на котором достигается максимум (классы нумерутся слева направо, нумерация начинается с 0). При проектировании модуля можно использовать модули tree_adder и max_argmax, описанные в заданиях A и B, в качестве подмодулей (сами модули проектировать не нужно, они будут автоматически использованы при проверке, если были использованы).