Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обработка данных на ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bva_rzn
Доброго времени суток!

Сильно не пинайте - я в ПЛИС новичёк.

Есть задача:
С 2-х канального 12 разрядного АЦП параллельно идут данные с частотой 10 МГц. Над этими данными необходимо делать несколько мат. операций: перемножить их, возвести в куб, в 4 степень и т.п. всего 11 различных вариантов. Результаты накапливать и выдавать в процессор с частотой 5 кГц для последующей обработки.

ПЛИС Cyclon III. Среда Quartus.

Сейчас делаю так:
1) С внешнего генератора подаю 10 МГц. При помощи pll получаю 100 МГц. Все умножения разбил на 3 этапа для конвейера. На 4 этапе конвейера накапливаю данные.
2) Данные с АЦП сразу преобразую в числа с плавающей точкой altfp_convert и все последующие умножения и суммирования с плавающей точкой в altfp_mult altfp_add_sub.

Дальше вопросы:
1) Имеет ли смысл связываться с плавающей точкой?
2) Результаты накопления планирую передавать по SPI. Но если с конвейером и умножениями понятно, то как результаты накопления слать по SPI? Что реализовывать: мастер или слейв?

Спасибо.



winipuh
Цитата(bva_rzn @ Jul 5 2013, 22:37) *
С 2-х канального 12 разрядного АЦП параллельно идут данные с частотой 10 МГц.
Результаты накапливать и выдавать с частотой 5 кГц.
Результаты накопления планирую передавать по SPI

Боюсь, что вот за это Вас и начнут пинать... sm.gif
Данные поступают с частотой 10 МГц (параллельно?). А выдавать Вы их собираетесь с частотой 5 кГц (последовательно?)...
Это как это? wacko.gif

Ктати, думаю лучше использовать не SPI, а какой-нибудь SSP/I2S и т.п. с нужным настроенным размером фрейма
bva_rzn
Выдавать нужно не сырые данные с АЦП, а результат их обработки.
Если назвать отсчёты АЦП Uc и Us по двум каналам, то задача состоит в суммировании 2000 произведений: Us, Uc, UcUs, Uc^2Us,Us^3,Us^4 и т.п. (Всего 11 произведений) и выдачи их наружу. При этом частота обновлений результатов суммирований 5 кГц.
Maverick
Цитата(bva_rzn @ Jul 5 2013, 21:37) *
Доброго времени суток!
1) Имеет ли смысл связываться с плавающей точкой?
2) Результаты накопления планирую передавать по SPI. Но если с конвейером и умножениями понятно, то как результаты накопления слать по SPI? Что реализовывать: мастер или слейв?

Цитата(bva_rzn @ Jul 5 2013, 23:13) *
Выдавать нужно не сырые данные с АЦП, а результат их обработки.
Если назвать отсчёты АЦП Uc и Us по двум каналам, то задача состоит в суммировании 2000 произведений: Us, Uc, UcUs, Uc^2Us,Us^3,Us^4 и т.п. (Всего 11 произведений) и выдачи их наружу. При этом частота обновлений результатов суммирований 5 кГц.


Для чего Вам FPU для операций умножений, суммирования?
Разрядности переменных будут большие, но Вы можете производить операцию "обрезания" битов в переменных и оставлять только информационную часть битов в переменных... и дальше работать только с "обрезанными" переменными и передавать уже эти информационные биты переменных в микропроцессор...
Насчет мастера или слейва SPI к сожалению я не телепат и не знаю ТЗ на всю разработку - выбор за Вами... Или поясните причины почему Вы спрашивайте?
iosifk
Цитата(bva_rzn @ Jul 5 2013, 22:37) *
Сильно не пинайте - я в ПЛИС новичёк.

C самого начала! Зачем ПЛИС? Частота - низкая, обработка - стандартная. Для таких вещей DSP будет и дешевле и легче в разработке.
Это что, курсовик такой, или мазохизм?
EvgenyNik
Цитата
Данные с АЦП сразу преобразую в числа с плавающей точкой altfp_convert
Зачем? Я допускаю, что на каком-то этапе обработки плавающая запятая может выружить в вопросах снижения разрядности обрабатывающей структуры, но когда речь идёт о 12-битных данных, пусть даже и в количестве 2000 слов (так и хочется подсказать - 2048, чтобы потом делилось проще, т.е. просто сдвигом, если надо), то это всего 23-24 разряда. ИМХО, из пушки по воробьям.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.