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

...нужно выбрать ПЛИС для БПФ на 128 точек х на 16 каналов - скорость каждого канала 1Мсэмпл/с разрядность 16 бит .
На чём это можно сделать если ограничить себя следующими границами :

1. Чтоб не булгрид

2. Чтоб подешевле .

Можно ли так всё устроить что к примеру поступившее сэмплы накапливаются в памяти в плис (не внешней) а затем быстро прогоняются через блок (один) БПФ ? Или параллелить обязательно надо ? Если без внешней памяти не обойтись то какую ставить к примеру ? (но лучше без неё).

Если только булгрид - всё равно предлагайте .

Спасибо .
DmitryR
У Альтеры многоканальности в FFT не вижу, у Xilinx максимум 12 каналов, значит придется поставить 2. Надо на оба 32 умножителя и 18 блоков памяти. Это будет Спартанчик любой, но в BGA. Накапливать думаю не хватит встроенной памяти в QFP все равно, хотя взгляните XC6SLX9 - там 32 блока, минус 18 на FFT - остается 14, может и хватит. А умножителей там как раз 16.
Lmx2315
к стати , вдруг кому пригодится .

128 точечный БПФ , на 16 каналов 1 МГц на канал 16 бит (накопление 256 отсчётов * 16 каналов) затем последовательная обработка блоком БПФ ( взят с opencore) помещается в spartan 500k-pq208 .
Ядро работает на частоте 20 мгц . Спартан забивается на 70 процентов .
soldat_shveyk
Если не зацикливаться на фирменных мегафункциях БПФ, то будет больше свободы.
Входная частота дискретизации 1МГц, берем тактовую частоту 128 МГц (вполне реальная частота для сложного проекта в Альтере с быстродействием -7 и -8).
Значит, накопив 128 отсчетов можно не спеша вычислить обычный ДПФ - 128 сверток длиной 128 поворачивающих множителей.
Расходы: комплексный умножитель (4 умножения + 2 сложения)
память на 128 отсчетов сигнала
память на 128*128=4096 поворачивающих множителей.
Теперь накручиваем многоканальность. Если все каналы будут работать синхронно, то поворачивающих множителей нужен один набор на все каналы.
Остаются 128 буферов по 128 отсчетов плюс 128 комплексных умножителей. Не знаю, какая у Вас разрядность данных, может 8 бит, а может и 18 - исходя из
этого посчитайте сколько конкретно необходимо памяти. Рекомендую посмотреть кристалл EP3C40Q240C8 от ALTERA - достаточно емкий, недорогой и QFP-корпус.
Если не влезет, то распараллелить на два таких корпуса.
И не каких мегафункций sm.gif




Чего-то я не внимательно посмотрел и посчитал на 128 каналов а не на 16 sm.gif
16 каналов на 128 точек разрядностью 16 бит, реализованные как ДПФ, точно поместится в один кристалл EP3C40Q240C8.
yes
а почему на ПЛИС? на процессоре будет дешевле и проще
если я не ошибаюсь
нужно посчитать 16 БПФ (по 128 точек) за 128мкс
BLACKFIN считает 128 точечное БПФ (комплексное, 16-ти битное) где-то за 1000 тактов, при частоте 500МГц получается по 2мкс на БПФ, то есть с большим запасом производительности хватит

вопрос - как закачать данные? я так понимаю, что нужно 16*2*1МБайт/с = 32МБайт/с - вобщем-то вполне доступно засосать через пару линк-портов (они двух битные) или через видео порт, вообще не проблема
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.