Как известно, многие дискретные преобразования строятся на базе графов. По структуре графа можно определить поворачивающие вектора для отсчетов знаки множителей для пар свертки дискретного преобразования и, собственно, частичные суммы или разности (см. рис 1).
Сам граф состоит, как правило, из однотипных блоков т.е. умножителей или сумматоров в зависимости от вида преобразования. Данные блоки нет смысла дублировать в схеме - на их базе ставят один универсальный блок математических операций, который полностью покрывает требования к математике. Затем на вход отсчетов ставится двухпортовая память, которая имеется в большинстве семейств современных ПЛИС. Управляется эта память с блока, который реализует структуру графа БП, т.е. на выхода блока генерируются адреса выборок отсчетов для портов памяти. По завершении свертки выход памяти подаем вместе с признаком завершения наружу. Те отсчеты, что уже прошли 1 слой свертки записываются в свои изначальные адреса и процедура выборки повторяется. Таким образом реализуется все преобразование с максимальной экономией памяти и ресурсов. Структура подобного устройства показана на рис.2.
В частности у нас имеется устройство реализующее подобным образом быстрое преобразование Уолша.