exponenta event banner

Архитектуры фильтров HDL

Программное обеспечение HDL Coder™ предоставляет варианты архитектуры, которые расширяют ваш контроль над скоростью и площадями при реализации конструкций фильтров. Для достижения требуемого компромисса для сгенерированного кода HDL можно либо указать полностью параллельную архитектуру, либо выбрать одну из нескольких последовательных архитектур. Настройте последовательную архитектуру с помощью параметров SerityPartition (HDL Coder) и ReuseAccum (HDL Coder). Можно также выбрать фильтр на основе кадров для увеличения пропускной способности.

Используйте параметры конвейерной обработки для повышения быстродействия конструкций фильтров. Добавьте конвейеры в логику сумматора фильтра, используя AddPipelineRegists (HDL Coder) для скалярных входных фильтров и AdderTreePipeline (HDL Coder) для фильтров на основе кадров. Укажите этапы трубопровода до и после каждого множителя с помощью множителя InputPipeline (кодер HDL) и множителя OutputPipeline (кодер HDL). Задайте количество этапов трубопровода до и после фильтра с помощью InputPipeline (кодер HDL) и OutputPipeline (кодер HDL). На схемах архитектуры показаны местоположения различных конфигурируемых этапов конвейера.

Полностью параллельная архитектура

Этот параметр является архитектурой по умолчанию. Полностью параллельная архитектура использует выделенный множитель и сумматор для каждого отвода фильтра. Отводы выполняются параллельно. Полностью параллельная архитектура оптимальна для скорости. Однако она требует больше умножителей и сумматоров, чем последовательная архитектура, и, следовательно, потребляет больше площади чипа. Диаграммы показывают архитектуры для прямой формы и для транспонированных структур фильтров с полностью параллельными реализациями, а также расположение конфигурируемых ступеней конвейера.

Прямая форма

По умолчанию блок реализует линейную логику сумматора. При включении AddPipelineRegisters, логика сумматора реализована в виде конвейерного дерева сумматоров. В дереве сумматора используются типы данных полной точности. При создании модели проверки необходимо использовать полную точность в исходной модели, чтобы избежать несоответствий проверки.

Перемещенный

AddPipelineRegisters параметр не влияет на реализацию транспонированного фильтра.

Последовательные архитектуры

Последовательные архитектуры многократно используют аппаратные ресурсы, экономя площадь чипов. Настройте последовательную архитектуру с помощью параметров SerityPartition (HDL Coder) и ReuseAccum (HDL Coder). Доступные варианты последовательной архитектуры являются полностью последовательными, частично последовательными и каскадными последовательными.

Полностью серийный

Полностью последовательная архитектура сохраняет площадь за счет многократного использования ресурсов умножителя и сумматора. Например, конструкция фильтра с четырьмя отводами использует один умножитель и сумматор, выполняя операцию умножения-накопления один раз для каждого отвода. Секция умножения-накопления конструкции работает с четырехкратной частотой выборки на входе/выходе фильтра. Такая конструкция позволяет экономить площади за счет некоторой потери скорости и более высокого энергопотребления.

В полностью последовательной архитектуре тактовый сигнал системы работает с гораздо большей скоростью, чем частота дискретизации фильтра. Таким образом, для данной конструкции фильтра максимальная скорость, достигаемая полностью последовательной архитектурой, меньше, чем скорость параллельной архитектуры.

Частично серийный

Частично последовательные архитектуры охватывают весь диапазон компромиссов между скоростью и площадью, которые лежат между полностью параллельными и полностью последовательными архитектурами.

В частично последовательной архитектуре отводы фильтра сгруппированы в ряд последовательных разделов. Отводы внутри каждого раздела выполняются последовательно, но разделы выполняются параллельно относительно друг друга. Выходные сигналы секций суммируются на конечном выходе.

При выборе частично последовательной архитектуры указывается количество разделов и длина (количество отводов) каждого раздела. Предположим, вы указываете фильтр с четырьмя отводами с двумя секциями, каждая из которых имеет два отвода. Системные часы работают с удвоенной частотой дискретизации фильтра.

Каскадный последовательный

Каскадно-последовательная архитектура сильно напоминает отчасти последовательную архитектуру. Как и в частично последовательной архитектуре, отводы фильтра группируются в несколько последовательных разделов, которые выполняются параллельно относительно друг друга. Однако накопленный выходной сигнал каждой секции каскадно поступает в накопитель предыдущей секции. Следовательно, выходной сигнал всех секций вычисляется в накопителе первой секции. Этот способ называется повторным использованием аккумулятора. Конечный сумматор не требуется, что позволяет сохранить область.

Каскадно-последовательная архитектура требует дополнительного цикла системных часов для завершения окончательного суммирования выходных данных. Поэтому частота системных часов должна быть немного увеличена по сравнению с часами, используемыми в некаскадной частично последовательной архитектуре.

Чтобы создать каскадно-последовательную архитектуру, укажите частично последовательную архитектуру с включенным повторным использованием накопителя. Если последовательные разделы не указаны, кодер HDL автоматически выбирает оптимальное разделение.

Задержка в последовательных архитектурах

Сериализация фильтра увеличивает общую задержку конструкции на один тактовый цикл. Последовательные архитектуры используют накопитель (сумматор с регистром) для последовательного добавления продуктов. Дополнительный конечный регистр используется для хранения суммированного результата всех последовательных разделов, что требует дополнительного тактового цикла для операции. Для моделирования этой задержки кодер HDL вставляет блок задержки в создаваемую модель после блока фильтра.

Полная точность для последовательных архитектур

При выборе последовательной архитектуры генератор кода использует полную точность в коде HDL. Поэтому кодер HDL обеспечивает полную точность создаваемой модели. При создании модели проверки необходимо использовать полную точность в исходной модели, чтобы избежать несоответствий проверки.

Архитектура на основе фреймов

При выборе архитектуры на основе кадра и предоставлении входного кадра M-выборки кодер реализует архитектуру полностью параллельного фильтра. Фильтр включает в себя М параллельных субфильтров для каждой входной выборки.

Каждый из субфильтров включает в себя каждый коэффициент Mth. Результаты субфильтра добавляются таким образом, что каждая выходная выборка является суммой каждого из коэффициентов, умноженных на одну входную выборку.

Диаграмма показывает архитектуру фильтра для размера кадра из двух выборок (M = 2) и длины фильтра из шести коэффициентов. Входной сигнал представляет собой вектор с двумя значениями, представляющими выборки во времени. Входные выборки x [2n] и x [2n + 1] представляют n-ю входную пару. Каждый второй образец из каждого потока подают в два параллельных субфильтра. Результаты четырех субфильтров добавляются вместе для создания двух выходных выборок. Таким образом, каждая выходная выборка представляет собой сумму каждого из коэффициентов, умноженных на одну из входных выборок.

Суммы реализованы в виде конвейерного сумматора. Задайте AdderTreePipeline (HDL Coder), чтобы указать количество ступеней конвейера между уровнями дерева сумматора. Для повышения тактовой частоты рекомендуется установить для этого параметра значение 2. Чтобы поместить множители в блоки DSP в FPGA, добавьте этапы конвейера до и после множителей, используя MultipliureInputPipeline (Кодер HDL) и MultipleyOutputPipeline (Кодер HDL).

Для симметричных или антисимметричных коэффициентов архитектура фильтра повторно использует множители коэффициентов и добавляет проектную задержку между стадиями умножения и суммирования по мере необходимости.

Связанные темы