|
Выбор ПЛИС для БПФ, 2^16 (100 каналов) |
|
|
|
May 14 2012, 07:27
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-01-11
Пользователь №: 62 100

|
Уважаемые специалисты, помогите подобрать ПЛИС, пожалуйста. (Не судите меня строго, начал заниматься разработкой алгоритмов на системном уровне, но встала задача срочно подобрать ПЛИС и прикинуть затраченное время на процесс обработки и энергию).
Ситуация следующая: имеется сто датчиков, с них сигналы на БПФ, после операций умножения и суммирования получаем энергетический спектр. Отсюда главный вопрос - какую и каким образом ПЛИС выбрать? - БПФ: количество точек от 2^14 (16384) до 2^16 (65536) - Разрядность данных 16-32 бит. Т.к. 100 датчиков, значит ли это, что требуется 100 "каналов"?? Т.к. не являюсь спецом в области программируемой логики - спрашиваю у Вас. Что будет быстрее, с учетом выбранного изделия, распараллеливание процесса обработки или последовательная об-ка? Как выяснить за сколько тактов, секунд реализуется операции умножения, суммы, умножения на вектор поворота?
Существует ли методика какая то? Некогда долго разбираться, результат нужен в ближайшее время! Помогите пожалуйста!
|
|
|
|
|
May 14 2012, 07:37
|

Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806

|
"Я не профи и мне некогда долго разбираться " У xilinx прочтите http://www.xilinx.com/support/documentatio.../xfft_ds260.pdf. Там есть результаты - тип fft, кристалл , частота , сколько умножителей , блоков памяти , вентилей требуется, число тактов. Все кстати зависит от частоты этих датчиков.
|
|
|
|
|
May 14 2012, 07:47
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-01-11
Пользователь №: 62 100

|
Огромное спасибо, сейчас почитаю! Еще вопросик - для Альтеры есть что нибудь? И для общего развития - не предпочтительнее ли использовать dsp?
|
|
|
|
|
May 14 2012, 11:23
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-01-11
Пользователь №: 62 100

|
Что то я всё равно никак не соображу какую ПЛИСину выбрать. Пролистал Xilinx datasheet выше, да мозгов не хватает. Не могли бы Вы "пальцем ткнуть" как выбрать!!!
|
|
|
|
|
May 14 2012, 13:05
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 13-04-10
Пользователь №: 56 623

|
я бы сперва постарался посчитать размер необходимой памяти. Например, количество выборок входного сигнала 16К*16бит=264К бит для хранение сигнала от одного канала. Например столько же для хранения спектра. Умножаем на количество каналов 100, получаем ~6,5Мбайт. Врядли это можно разместить в ПЛИС, значит нужна будет внешняя DDR память. Попробовать оценить скорость потока данных, хватит ли пропускной способности памяти DDR и при скольки разрядах. Какой алгоритм использовать? Теоретически если считать спектр от потока (а не от массива), то можно не вычислять весь спектр с каждой новой выборкой, а пытаться модифицировать текущий спектр. Ведь одна выборка пришла, но и самая старая ушла. В принципе можно сделать за один проход вдоль массива спектра. Правда здесь возможно накопление ошибки вычислений. Не уверен на сколько этот метод возможен, но потенциально он экономит ресурсы.
|
|
|
|
|
May 14 2012, 16:17
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-01-11
Пользователь №: 62 100

|
Благодарю за ответы. Если частота семплов с каждого датчика 100 KHz. И если пренебречь выводом и размером необходимой памяти пока что. То какая FPGA подойдет?
|
|
|
|
|
May 14 2012, 17:14
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Для параметров БПФ: Цитата(andreUF @ May 14 2012, 11:27)  - БПФ: количество точек 2^14 (16384) - Разрядность данных 16 бит. - 100 датчиков... и: Цитата(andreUF @ May 14 2012, 20:17)  Если частота семплов с каждого датчика 100 KHz. И если пренебречь выводом и размером необходимой памяти пока что. То какая FPGA подойдет? вероятно, подойдут: EP4CGX75, EP4CE75 или аналогичные с бОльшим объемом Embedded memory (> 2500 Kbits). Для параметров БПФ: Цитата(andreUF @ May 14 2012, 11:27)  - БПФ: количество точек 2^16 (65536) - Разрядность данных 16 бит. - 100 датчиков... вероятно, подойдут: 5AGXA3, 5AGTC3 или аналогичные с бОльшим объемом Embedded memory (> 10,000 Kbits). Если же: Цитата(andreUF @ May 14 2012, 11:27)  - Разрядность данных 32 бит. то требования по Embedded memory нужно удвоить.
Сообщение отредактировал blackfin - May 14 2012, 17:34
|
|
|
|
|
May 14 2012, 17:51
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-01-11
Пользователь №: 62 100

|
Благодарю! Теперь буду разбиратся с предложенным, постараюсь больше не выпрашивать помощь). И прошу прощения за свою некомпетентность, просто наш спец свалил, а "работа не ждет".
|
|
|
|
|
May 14 2012, 20:07
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(des00 @ May 14 2012, 15:36)  лучшая "ПЛИС" это : 642 или аналогичный техас + мелкая плис - преобразователь интерфейсов +1 65536 точек на 100кГц это 655.36мс времени = 6.5мс на канал. можно даже взять tms32c5505 ему на 1024 точки надо 7315 тактов и 1836 нДж энергии. на 60МГц. если это линейно (что вообще-то не правильно, но для оценки сойдёт) экстраполировать до 65536 - то получится ~500000 тактов, на частоте 150Мгц ~ 3мс, в принципе подходит, но надо аккуратней смотреть. ну и ~200мкДж, то есть ~40мВт, думаю что при реализации на плис такого потребления не получить. а уж С64x так тем более справится.
|
|
|
|
|
May 15 2012, 03:00
|
Частый гость
 
Группа: Участник
Сообщений: 96
Регистрация: 2-04-12
Из: Саратов
Пользователь №: 71 142

|
Цитата(andreUF @ May 14 2012, 20:17)  Благодарю за ответы. Если частота семплов с каждого датчика 100 KHz. И если пренебречь выводом и размером необходимой памяти пока что. То какая FPGA подойдет? Все датчики одновременно нужно обрабатывать? Получится, что раз в 1 us нужно обработать все датчики. Если так, то процессору нужно принять информацию от датчика и обработать ее за 100 ns. Если я правильно все понял то процессор врятли осилит. При такой задаче возможно придется комбинировать ПЛИС + процессор. В ПЛИС принять данные от каждого датчика паралельно, провести преобразование и определить в буфер. А процессором проводить дальнейшую обработку массивов данных. Можно конечно и процессор в плис дополнительно организовать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|