RobFPGA, у меня XC5VLX110T, 64 DSP, 296 BRAM18. Насколько я понял, Вы предлагаете держать по сути две матрицы, прямую и транспонированую в блоках по 16 бит, где старший байт- прямая матрица, а младший-обратная? К сожалению, боюсь двойной размер я не потяну

. И я не понял зачем там DSP - есть только сложение, без умножения.
Пока что мне нравится такой вариант:
Один BRAM держит один или 2 столбца (матрица до 1125х592). Два набора сумматоров: один делает сумму выбранных столбцов для заданной строки (все строки пробегаем за O(К), т.к. у нас одно чтение с каждого столбца), второй делает сумму выбранных строк для всех столбцов (т.е. у нас по одному сумматору на BRAM) и мы последовательно читаем все выбранные строки, пробегая их за О(М). Тревогу пока вызывает первый сумматор: он должен суммировать за O(1) все столбцы, т.е. иметь ~500 входов, что меня немного пугает и подталкивает до сложения в цикле (10х50, например).