Систолический массив Требуется спроектировать на языке Verilog двухмерный систолический массив для выполнения операции матричного умножения https://gyires.inf.unideb.hu/KMITT/a52/ch04.html. Проектируемый модуль должен называться systolic_array. Параметры модуля: ROWS - количество рядов в массиве, COLUMNS - количество столбцов в массиве, WIDTH - размерность шин аргументов. Входы модуля: clock - провод синхросигнала, reset - провод сигнала сброса (сброс при выставлении значения 0), a - шина проводов ширины ROWS*WIDTH, подающая значения вектора a (элементы вектора нумеруются справа налево), b - шина проводов ширины COLUMNS*WIDTH, подающая значения вектора b (элементы вектора нумеруются справа налево). Каждое значение векторов a и b имеет размерность WIDTH. Выходы модуля: c - шина проводов ширины ROWS*COLUMNS*WIDTH, характеризующих текущее состояние вычисляемой матрицы. Элементы матрицы нумеруются справа налево и сверху вниз. Например, для матрицы размера 2 на 2 из 4-х битовых значений шина с будет разбита следующим образом: 00: c[3 : 0], 01: c[7 : 4], 10: c[11: 8], 11: c[15:12]. Примечание: схема должна иметь асинхронный сброс, латентность вычислений (количество тактов, требуемое для вычисления нового значения) равна 1.