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

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

|
Цитата(blackfin @ May 15 2012, 06:30)  Что-то Вы как-то странно считаете.
Буфер на 65536 точек при частоте семплирования 100 КГц заполняется за 65536/100000 = 0.65536 секунды и за это время нужно вычислить FFT для каждого датчика. Если датчиков 100, то на вычисление FFT для каждого датчика мы должны тратить не более 0.65536/100 = 0.0065536 секунды или 6.5536 мс. ну вообще-то точное ТЗ не известно. Может быть нужно считать "мгновенный" спектр? В этом случае в 10мкс поступает новая выборка и убывает самая старая. Мгновенный спектр меняется каждые 10мкс
|
|
|
|
|
May 15 2012, 11:55
|
Участник

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

|
Спасибо за комментарии. Уточните пожалуйста по нескольким моментам: 1. Каким образом и на чем основываясь вы выбрали именно - "5AGXA3, 5AGTC3 или аналогичные с бОльшим объемом Embedded memory (> 10,000 Kbits)"? Какими данными руководствовались? 2. Не могли бы Вы уточнить о каналах, а лучше каким образом все 100 преобразований Фурье возможно реализовать? Т.е. предварительно выбрав 5AGXA3 - можно предположить, что все преобразования произойдут одновременно или параллельно? 3. И почему не из High-End FPGA?
пс. прошу понять и простить)
|
|
|
|
|
May 15 2012, 13:38
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(andreUF @ May 15 2012, 15:55)  Спасибо за комментарии. Уточните пожалуйста по нескольким моментам: 1. Каким образом и на чем основываясь вы выбрали именно - "5AGXA3, 5AGTC3 или аналогичные с бОльшим объемом Embedded memory (> 10,000 Kbits)"? Какими данными руководствовались? 2. Не могли бы Вы уточнить о каналах, а лучше каким образом все 100 преобразований Фурье возможно реализовать? Т.е. предварительно выбрав 5AGXA3 - можно предположить, что все преобразования произойдут одновременно или параллельно? 3. И почему не из High-End FPGA?
пс. прошу понять и простить) 1. Это результат запуска MegaWizard Plug-In Manager с дефолтными параметрами: - Transform Length = 16384 (or 65536) Points ; - Data Precision = 18; - Twiddle Precision = 18; - I/O Data Flow = Streaming; 2. Все каналы обрабатываются последовательно, друг за другом. Частота работы FPGA (> 200 MHz) позволяет сделать это с запасом. Но нужен будет внешний буфер. Вы намекнули, что пока для Вас это не важно.. 3. Ну, можете выбрать Stratix IV, или Stratix V, или Virtex-6, или Virtex-7.. Для FFT на 65536 точек и 100 КГц достаточно любого кристалла с "Embedded memory (> 10,000 Kbits)", как, например, 5AGXA3.
|
|
|
|
|
May 15 2012, 16:11
|
Участник

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

|
Благодарю Вас за отзывчивость.
1. Не могли бы Вы сказать, какие именно изменения произойдут при использовании внешнего буфера? И как, вернее на чем, строится его выбор? 2. Возможно ли рассчитать-прикинуть для подобного случая энергию потребления для fpga, на чем основываться? 3. Правильно ли утверждать (хотя бы аналитически), что затраченное время на все преобразования fft будет равно (6.5536 мс * 100)?
|
|
|
|
|
May 15 2012, 16:58
|
Частый гость
 
Группа: Участник
Сообщений: 96
Регистрация: 2-04-12
Из: Саратов
Пользователь №: 71 142

|
Цитата(blackfin @ May 15 2012, 07:30)  Что-то Вы как-то странно считаете.
Буфер на 65536 точек при частоте семплирования 100 КГц заполняется за 65536/100000 = 0.65536 секунды и за это время нужно вычислить FFT для каждого датчика. Если датчиков 100, то на вычисление FFT для каждого датчика мы должны тратить не более 0.65536/100 = 0.0065536 секунды или 6.5536 мс. Да описался, нолик забыл. 10 us на все датчики, а так дальше все правильно. Один датчик 100 ns * количество семплов 65536 получаем Ваши 6,55636ms. Я имел ввиду, что процессор умрет только на обработке входных данных от датчиков не говоря уже об преобразовании фурье (ктото предлогал процессор поставить  ).
|
|
|
|
|
May 15 2012, 17:39
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(seldim @ May 15 2012, 23:58)  Я имел ввиду, что процессор умрет только на обработке входных данных от датчиков не говоря уже об преобразовании фурье (ктото предлогал процессор поставить  ). завести входной поток аж в 10Мсэмплов/с = 20мБайт/с не проблема для практически любого dsp. сигнальным процессорам вычислительной мощности для ффт надо, грубо говоря, 20 тактов на отсчёт. (посмотрите таблички по скорости ффт для tmsов и блэкфинов). то есть 200 мипсов. если бы хватало внутренней или была бы внешняя память для буфера под данные, это смог бы осилить даже двухбаксовый ADSP-BF592. причем даже без достаточного количества внутренней памяти, думаю, можно кусками подтаскивать и убирать обратно данные из внешнего СДРАМА через ДМА без особого ущерба производительности на каком-нибудь ADSP-BF512. одновременно складывая новые данные через PPI в ту же внешнюю память. ну или TMS, как-то С55 с аппаратным ускорителем ффт или С64 у которых вычислительной мощности на порядок больше чем для данной задачи надо.
|
|
|
|
|
May 16 2012, 02:58
|
Частый гость
 
Группа: Участник
Сообщений: 96
Регистрация: 2-04-12
Из: Саратов
Пользователь №: 71 142

|
Цитата(_pv @ May 15 2012, 21:39)  завести входной поток аж в 10Мсэмплов/с = 20мБайт/с не проблема для практически любого dsp. сигнальным процессорам вычислительной мощности для ффт надо, грубо говоря, 20 тактов на отсчёт. (посмотрите таблички по скорости ффт для tmsов и блэкфинов). то есть 200 мипсов. если бы хватало внутренней или была бы внешняя память для буфера под данные, это смог бы осилить даже двухбаксовый ADSP-BF592. причем даже без достаточного количества внутренней памяти, думаю, можно кусками подтаскивать и убирать обратно данные из внешнего СДРАМА через ДМА без особого ущерба производительности на каком-нибудь ADSP-BF512. одновременно складывая новые данные через PPI в ту же внешнюю память. ну или TMS, как-то С55 с аппаратным ускорителем ффт или С64 у которых вычислительной мощности на порядок больше чем для данной задачи надо. Я так понял Вы говорите об обработке уже готовых данных от датчиков. Тут я согласен процессор данные обработает, но их ему надо получить, а датчиков много. Наши програмисты воют, что у них вся производительность уходит на прием данных а на их обработку времени остается очень мало и приходится в плис готовить буфер с входными данными. Выше шла речь о том, что можно разделить задачу ПЛИС + процессор. Я считаю это заработает. Хотя вообще информации мало. Какие сигналы от датчиков? Какой интерфейс?.
|
|
|
|
|
May 16 2012, 03:44
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(andreUF @ May 15 2012, 20:11)  1. Не могли бы Вы сказать, какие именно изменения произойдут при использовании внешнего буфера? И как, вернее на чем, строится его выбор? 2. Возможно ли рассчитать-прикинуть для подобного случая энергию потребления для fpga, на чем основываться? 3. Правильно ли утверждать (хотя бы аналитически), что затраченное время на все преобразования fft будет равно (6.5536 мс * 100)? 1. Вам нужна двухпортовая память на 65536*4*100 = 26,214,400 МБайт + контроллер управления этой памятью (DSP or FPGA). 2. Можете прикинуть сами:  3. Нет, не правильно. Время затраченное на все преобразования fft будет равно 6.5536 мс.
|
|
|
|
|
May 16 2012, 18:33
|
Участник

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

|
Низкий поклон, blackfin!
65536*4*100, а что за 4?
|
|
|
|
|
May 16 2012, 18:35
|
Местный
  
Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023

|
Цитата(blackfin @ May 15 2012, 17:38)  3. Ну, можете выбрать Stratix IV, или Stratix V, или Virtex-6, или Virtex-7.. Для FFT на 65536 точек и 100 КГц достаточно любого кристалла с "Embedded memory (> 10,000 Kbits)", как, например, 5AGXA3. А почему дешёвые Cyclone-3, Cyclone-4 и Spartan-6 не предлагаете? Вроде тоже должны тянуть, хотя в них памяти меньше и нужно будет подгружать из внешней памяти данные для следующего канала, делать БПФ и выгружать результат в внешнюю память. Но всё вместе может быть существенно дешевле
Сообщение отредактировал maksimp - May 16 2012, 18:40
|
|
|
|
|
May 17 2012, 03:04
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(andreUF @ May 16 2012, 22:33)  65536*4*100, а что за 4? Два буфера для 16-ти битных данных на входе и на выходе FFT. Цитата(maksimp @ May 16 2012, 22:35)  А почему дешёвые Cyclone-3, Cyclone-4 и Spartan-6 не предлагаете? Но всё вместе может быть существенно дешевле. Не предлагаю, потому что ни Cyclone-3, ни Cyclone-4, ни Spartan-6, ни любая другая FPGA для этой задачи вообще не нужны. Это всё можно посчитать на любом приличном DSP за 20$. Но ТС упорствует. Возможно, что-то не договаривает...
|
|
|
|
|
May 22 2012, 15:00
|
Участник

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

|
Спасибо за помощь. Сам понимал, что без ТЗ конкретно посоветовать что то тяжело. Однако мне самому нужно было немного понять и подразобраться с рядом моментов, параметров и т.д. Представив свои выводы нашему научному сотруднику, я был разбит пух и прах (этого и следовало ожидать наверное)... но суть не этом.
Не могли бы Вы помочь мне с в данной задачи (продолжить помогать), к примеру оценив достаточность постановки задачи: - разработка предназначенной для реализации на Плис структуры системы обработки информации, выполняющей 65536-точечное БПФ 100 действительных последовательностей. Отсчеты входных последовательностей поступают с АЦП в 16-тибитном коде с частотой дискретизации 0…100 Гц. Время выполнения преобразования не должно превышать времени накопления отсчетов.
Какие еще условия нужно знать для "правильного" решения задачи, а именно аппаратной реализации? И не могли бы Вы также уточнить еще раз собственно требуемые аппаратные затраты для подкорретированной задачи?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|