реклама на сайте
подробности

 
 
> IIR на FPGA
Igont
сообщение Sep 25 2007, 12:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 25-09-07
Пользователь №: 30 811



Уважаемый All.
Не имея достаточно опыта в проектировании фильтров на логике, обращаюсь за Вашим мнением.
Задача: Имеем 4 канала "цифры" после АЦП (16 бит 500 Гц каждый).
Надо убрать из каждого канала 50Гц (IIR Filter 4 order) и 35Гц (IIR Filter 4 order).
Данные выводятся во внешнее ОЗУ, к которому имеет доступ контроллер (через ту же
ПЛИС)

Вопрос:
1. Реализуемо ли это в принципе
2. На какого объема ПЛИС приходится расчитывать (TQFP144 max)
3. Существуют ли готовые решения

Сбивает с толку, что библиотечный компонент LPM_MUL 16x16 (Altera - MAX II Plus)
ВЛЕЗ ОДИН ТОЛЬКО В ACEX 30K, а на бумажке посчитал, что и 80 триггеров хватает.

Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bav
сообщение Sep 26 2007, 06:59
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



4x500 Гц? FPGA + контроллер? может, дешевле и проще взять к-н DSP? или с этим справится ARM?
не знаю, дело Ваше. Я бы тогда порекомендовал Cyclone II, там ресурсов точно хватит и цена не большая. если плиску грузить с контроллера, можно сэкономить еще 5$.
Go to the top of the page
 
+Quote Post
mse
сообщение Sep 26 2007, 07:28
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(bav @ Sep 26 2007, 10:59) *
4x500 Гц? FPGA + контроллер? может, дешевле и проще взять к-н DSP? или с этим справится ARM?
не знаю, дело Ваше. Я бы тогда порекомендовал Cyclone II, там ресурсов точно хватит и цена не большая. если плиску грузить с контроллера, можно сэкономить еще 5$.

ИМХО, дохлая атмега48 за $0.91 уделает эту задачу и ещё место останется. ;О)
Go to the top of the page
 
+Quote Post
Igont
сообщение Sep 26 2007, 09:14
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 25-09-07
Пользователь №: 30 811



Спасибо за ответ. - широта взглядов позволяет оптимизировать.

Цитата(mse @ Sep 26 2007, 11:28) *
ИМХО, дохлая атмега48 за $0.91 уделает эту задачу и ещё место останется. ;О)


Считал. Не успеет:
1 IIR фильтр 4 порядка 16 бит -> 8 умножений 16x16, 8 сложений 32 бит, 2 циклических буфера 8x16

фильтров 8 шт (4 канала по два фильтра на каждый) * 500 Гц.

По среднему Atmega "делает" 8*10^6 операций/сек
Go to the top of the page
 
+Quote Post
mse
сообщение Sep 26 2007, 11:52
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(Igont @ Sep 26 2007, 13:14) *
Спасибо за ответ. - широта взглядов позволяет оптимизировать.
Считал. Не успеет:
1 IIR фильтр 4 порядка 16 бит -> 8 умножений 16x16, 8 сложений 32 бит, 2 циклических буфера 8x16

фильтров 8 шт (4 канала по два фильтра на каждый) * 500 Гц.

По среднему Atmega "делает" 8*10^6 операций/сек


Ну не знаю. Давайте прикинем без всякого разбора, что у вас и как было прикинуто:
16х16знаковое - 17 тактов. 17*8=136. Ну, пусть ещё до 200 тактов на всё-про всё. Нет, пусть 340! ;О)
Сложения: 20*8=160. Без всякой экономии. Из памяти взяли, в память поклали.
ЦБ, пусть 100. Хотя, считая промежутки, можно тупо перекладывать результаты по мере счёта. Ну да ланна.
Итго: всего на фильтер 340+160+100=600. Пусть 1000 для ровного щщёта. Таких фильтеров 8, итого 8000тактов.
500Гц, это 40килотактов, если м48 будет топтаться на 20МГц. Я ничего не пропустил? Получаицца, что с заметным запасом на допущения "а пусть...", м48 пережуёт эту задачу на тактовой 4МГц. На 20МГц она всё это может смело делать в таймерном прерывании, а в фоне играть в шашматы. ;О)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016