Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: БИХ-фильтр
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Sidoroff
Возможно ли сделать асинхронный сумматор и перемножитель для плавающей точки
хотя-бы одинарной точности (32 бита), ПЛИС Cyclone 3?
Есть ли примеры (VHDL) или надо писать самому?

Собственно задача сделать БИХ-фильтр 16 порядка (32 коэффициента) на поток данных 1 МГц.
Хочется сэкономить на логике и энергопотреблении за счет уменьшения частоты дизайна.
Встроенный конструктор Quartus умеет генерировать только очень латентные (а значит
расходующие много лишней логики на защелкивание промежуточных результатов) умножители и сумматоры.
Поэтому предполагаю рассчитывать последовательно, в 2-4 потока однотактовыми операциями
(2-4 асинхронных умножителя и сумматоры по месту), частота дизайна не более 20МГц,
соответственно 20 тактов на расчет одного результата должно хватить.

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

litv
Вам хочется странногоsm.gif. Спрашиваю Вас - зачем именно БИХ? Вы же неопытны для него(судя во по вопросу можно ли сделать асихронный сумматор sm.gif ).

Сделайте КИХ фильтр. Ему нафиг не понадобится умножитель с плавающей запятой который сожрет кучу ресурсов ,а динамический диапазон скорее всего недалек от диапазона АЦП.
Все прямо слева на право на "очень латентных умножителях и сумматорах". Экономия на умножителях будет Ваша тактовая/выходную тактовую. Наверно у альтеры и компилятор готовый есть.
Sidoroff
КИХ-фильтр у меня давно есть на "очень латентных умножителях и сумматорах", "все прямо слева на право".
Но нужна широкая полоса пропускания в НЧ области, с отношением частоты дискретизации к частоте сигнала порядка
нескольких тысяч, поэтому надо очень много коэффициентов КИХ-фильтра и FIFO-буфера.
В мою ПЛИС (EP3C25E144I7) такой не влезет.
litv
те если выходная частота дискретизации низкая. вообще ких фильтр на 1 умножителе.
Sidoroff
На одном умножителе не получится, надо 4-8, но не в этом дело.
К каждому умножителю нужно два буфера на сигнал и коэффициенты (к которым
этот умножитель "приписан") на встроенной памяти, а память нужна для другой задачи,
значит только на регистрах.
Не влезет именно FIFO данных и массив коэффициентов.
RobFPGA
Приветствую!

Такая реализация называется Distributed Arithmetic - в гугле полно ссылок как это устроенно.

Однако по поводу float реализации стоит подумать - все же может лучше сделать fix реализацию с соответствующим
масштабированием и только потом конвертировать во float.

Тем более частота сигнала низкая - можно на одном-двух широком параллельном умножителе и сумматоре сделать автомат который будет считать в в fix формате последовательно все 16 порядков.

Успехов! Rob.
анатолий
Вот здесь пример, как разрабатывают БИХ-фильтры высокого порядка на ПЛИС: http://kanyevsky.kpi.ua/publicacii2010/HPF_Serg.pdf
Идея такая: структура, в принципе, считает 1 звено фильтра, но за счет латентной задержки в цепи обратной связи на К тактов, структура реализует последовательно-параллельно цепочку К звеньев фильтра. Фильтр может быть и с плавающей запятой.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.