Распределенная арифметика (DA) - широко используемая методика реализации вычислений суммы произведений без использования множителей. Проектировщики часто используют DA для создания эффективной схемы умножения-накопления (MAC) для фильтров и других приложений DSP. Основным преимуществом DA является его высокая вычислительная эффективность. DA распределяет операции умножения и накопления по блокам сдвига, таблицам поиска (LUT) и сумматорам таким образом, что обычные множители не требуются.
В реализации DA структуры КИХ-фильтра последовательность слов входных данных ширины W подается через параллельно-последовательный сдвиговый регистр, формируя сериализованный поток битов. Затем сериализованные данные подаются в сдвиговый регистр. Этот сдвиговый регистр служит в качестве линии задержки, хранящей битовые последовательные выборки данных.
Линия задержки подключается (на основе размера входного слова W), чтобы сформировать W-bit адрес, который индексирует в таблицу поиска (LUT). LUT хранит все возможные суммы частичных произведений в пространстве коэффициентов фильтра. За LUT следуют сдвиг и сумматор (сумматор масштабирования), который последовательно добавляет значения, полученные из LUT.
Поиск таблицы выполняется последовательно для каждого бита (в порядке значимости, начиная с LSB). В каждом такте результат LUT добавляется к накопленному и сдвинутому результату предыдущего цикла. Для последнего бита (MSB) результат поиска в таблице вычитается с учетом знака операнда.
Эта базовая форма DA является полностью последовательной, работающей на один бит за раз. Если последовательность входных данных W bits wide, то структура FIR принимает W тактовых циклов для вычисления выходного сигнала. Симметричные и асимметричные структуры FIR являются исключением, требующим W+1 , поскольку один дополнительный тактовый цикл необходим для обработки бита переноса предварительных сумматоров.
Вы можете управлять тем, как создается код DA, с помощью DALUTPartition и DARadix параметры реализации. DALUTPartition и DARadix параметры имеют определенные требования и ограничения, специфичные для различных типов фильтров. Эти требования включены в обсуждение каждого параметра.
Уменьшение размера LUT: DALUTPpartition
Повышение производительности благодаря параллелизму: DARadix
Для получения информации о теоретических основах DA см. Дополнительные ссылки.
Генерация кода DA поддерживается только для конструкций фильтров с фиксированной точкой.
Тракт данных в коде HDL, генерируемом для архитектуры DA, тщательно оптимизирован для вычислений с полной точностью. Результат фильтра приводится к размеру выходных данных только на заключительном этапе, когда он представляется на выходе.
Распределенная арифметика объединяет операции произведения и аккумулятора и выполняет вычисления с полной точностью. Этот подход игнорирует выходные и накопительные свойства блока цифрового фильтра и устанавливает эти свойства на полную точность.
DA игнорирует отводы, которые имеют нулевые коэффициенты, и соответственно уменьшает размер DA LUT.
Для симметричных и асимметричных фильтров:
Для добавления значений данных отводов, которые имеют коэффициенты равной величины и/или противоположный знак, требуется предварительный сумматор битового уровня или предварительный блок. Для вычисления результата требуется один дополнительный тактовый цикл из-за дополнительного бита переноса.
ЛПВП Coder™, где это возможно, использует преимущества симметрии фильтра. Это существенно уменьшает размер DA LUT, поскольку эффективная длина фильтра для этих типов фильтров уменьшается вдвое.
Подробное обсуждение теоретических основ DA появляется в следующих публикациях:
Meyer-Baese, U., Цифровая обработка сигналов с помощью программируемых на местах логических матриц, второе издание, Springer, pp 88-94, 128-143
White, S.A., Приложения распределенной арифметики для цифровой обработки сигналов: Учебное пособие. Журнал IEEE ASSP, том 6, № 3