Просто запишите уравнения низкого уровня, полученные в результате умножения вашей матрицы. Каждый элемент выходных данных будет результатом суммирования набора умножений элементов из вашего входного вектора и матрицы.
Если вам нужно сделать это быстро, тогда сложите столько сложных множителей и сумматоров, сколько вам нужно, и подключите к ним входные элементы - это даст вам все ваши выходы одновременно и потребует от вас всех ваших входов доступны сразу.
В качестве альтернативы, поместите свои входные данные в блок памяти (или, возможно, 2, один для вектора, один для матрицы) и расположите некоторую логику, которая будет вводить правильный адрес в этот блок памяти для перебора элементов в соответствующем порядке. , Эти входы поступают на сложный множитель, а затем на сложный аккумулятор (вам, возможно, придется смоделировать его из сумматора и сбрасываемого регистра). Ваша логика управления должна периодически сбрасывать этот аккумулятор.
Выход аккумулятора может быть передан на следующую стадию или сохранен в другом блоке памяти (другой адрес для управления логикой управления).
если ваша таблица кодирования всегда будет иметь элементы, которые только из набора (1, -1, j, -j), то вы можете закодировать их как 2 бита, вместо того, чтобы хранить полностью полностью представленные комплексные числа и писать пользовательские часть логики, которая использует этот факт для создания намного более простого комплексного множителя, чем универсальный.