Перейти к содержанию
    

Помогите сориентироваться с FPGA под задачу

Есть некий цифровой приёмник, сейчас это АЦП + DSP. Всё работает, но аппетиты растут, хочется частоты повыше, каналов побольше. DSP не справляется.
Городить гетеродин до АЦП слишком заморочено. После АЦП - только если в ПЛИС.

Есть мысль сделать так.
1) АЦП 24 бита, 500 кГц, 8 каналов одновременно.
2) Далее FPGA, внутри которой на каждый канал гетеродин, фильтр, дециматор.
3) Микропроцессор для дальнейшей обработки на низкой частоте.

Помогите прикинуть, какие FPGA для подобной задачи подойдут из не очень толстых.
Какое ПО ставить, какой отладчик покупать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, Абырвалг said:

Есть некий цифровой приёмник, сейчас это АЦП + DSP. Всё работает, но аппетиты растут, хочется частоты повыше, каналов побольше. DSP не справляется.
Городить гетеродин до АЦП слишком заморочено. После АЦП - только если в ПЛИС.

Есть мысль сделать так.
1) АЦП 24 бита, 500 кГц, 8 каналов одновременно.
2) Далее FPGA, внутри которой на каждый канал гетеродин, фильтр, дециматор.
3) Микропроцессор для дальнейшей обработки на низкой частоте.

Помогите прикинуть, какие FPGA для подобной задачи подойдут из не очень толстых.
Какое ПО ставить, какой отладчик покупать?

 

Очень зависит от интерфейса АЦП. 24 бита параллельно - это нужно много ног. Последовательно - ПЛИС должна быть достаточно скоростная.
Так же, если не принципиальны 24 битика, то можно посмотреть в сторону интегрированных решений. Типа ADAR7251. Там и фильтрация внутри есть и работу с ним потянет даже DSP, ПЛИС не нужна будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 бита - принципиально. Последовательно. АЦП прикинули AK5578.

Кроме описанного выше гетеродина в FPGA будет ещё всякое, но для начала надо прикинуть эту, основную функцию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

3 minutes ago, Абырвалг said:

24 бита - принципиально. Последовательно. АЦП прикинули AK5578.

Кроме описанного выше гетеродина в FPGA будет ещё всякое, но для начала надо прикинуть эту, основную функцию.

Ну так и прикидывайте - соберите структуру вашей обработки в кучу для начала хотя бы чтобы понимать какие ресурсы  потребуются -  какие параметры фильтров, разрядность данных,  потоки данных и требуемые интерфейсы и память для буферизации и коэффициентов, ... Будет первое приближение требуемых ресурсов. Было бы хорошо  реализовать тракт обработки в том же Matlab. Ну или хотя бы попробовать реализовать  критичные блоки в IP корках  основных вендоров и посмотреть на реальные затраты ресурсов.   И тогда будет понятен приблизительный список кандидатов  FPGA. 

А иначе  все вилами по воде  - диапазон требуемых ресурсов очень широк. 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

52 minutes ago, Абырвалг said:

Есть некий цифровой приёмник, сейчас это АЦП + DSP. Всё работает, но аппетиты растут, хочется частоты повыше, каналов побольше. DSP не справляется.
Городить гетеродин до АЦП слишком заморочено. После АЦП - только если в ПЛИС.

Есть мысль сделать так.
1) АЦП 24 бита, 500 кГц, 8 каналов одновременно.
2) Далее FPGA, внутри которой на каждый канал гетеродин, фильтр, дециматор.
3) Микропроцессор для дальнейшей обработки на низкой частоте.

Помогите прикинуть, какие FPGA для подобной задачи подойдут из не очень толстых.
Какое ПО ставить, какой отладчик покупать?

 

xc7a100t должно хватить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 минут назад, Абырвалг сказал:

2) Далее FPGA, внутри которой на каждый канал гетеродин, фильтр, дециматор.

Учитывая входную частоту 500 кГц а частоту плис например 50 МГц (Spartan 6/7, artix) то мы получаем порядка 100 тактов на один отсчёт. Соответственно можно уходить от схем параллельной обработки к схемам с последовательной. Что очень сильно будет экономить ресурсы. Иными словами если для фильтра нужно 100 умножителей и 100 коэффициентов то в новом варианте можно обойтись 1 умножителем и 1 памятью на 100 коэффициентов и укладываться в ту же времянку имея экономию по умножителям в 100 раз. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, RobFPGA said:

А иначе  все вилами по воде  - диапазон требуемых ресурсов очень широк.

Это да. Но надо же с чего-то начинать. С ПЛИС я последний раз имел дело 15 лет назад, это было достаточно поверхностно и никак не связано с цифровой обработкой сигналов. Так что можно сказать - ноль в этом деле. Хотелось бы с помощью сообщества примерно сориентироваться, в какую сторону двигаться и не ошибиться с требованиями на два порядка.

17 minutes ago, dmitry-tomsk said:

xc7a100t должно хватить

Дороговастенько. В диджикее 109$. С текущими задачами TMS320C28342 за 14$ справляется. Понятно, спасибо, будем иметь в виду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, MegaVolt said:

Иными словами если для фильтра нужно 100 умножителей и 100 коэффициентов то в новом варианте можно обойтись 1 умножителем и 1 памятью на 100 коэффициентов и укладываться в ту же времянку имея экономию по умножителям в 100 раз

Ну, в 100 раз "по умножителям" это вы явно хватили.. ;)

Умножение 24-х битных чисел на DSP48 выполняется минимум за 4 такта.

Так что экономия по умножителям будет максимум в 25 раз.

Это если отношение частот 1:100.

Но Spartan, КМК, может умножать и на 200 МГц..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, vitzap said:

Можете обратить внимание на серию Zynq 7000 - FPGA там Artix, но еще и микропроцессор есть.

Цинк имеем в виду. И когда будем понимать чего нам надо, возможно, на него и сядем. Но пока, думается, начать лучше с отдельной ПЛИСины.

12 minutes ago, MegaVolt said:

Учитывая входную частоту 500 кГц а частоту плис например 50 МГц (Spartan 6/7, artix) то мы получаем порядка 100 тактов на один отсчёт. Соответственно можно уходить от схем параллельной обработки к схемам с последовательной. Что очень сильно будет экономить ресурсы. Иными словами если для фильтра нужно 100 умножителей и 100 коэффициентов то в новом варианте можно обойтись 1 умножителем и 1 памятью на 100 коэффициентов и укладываться в ту же времянку имея экономию по умножителям в 100 раз. 

Вот! Спасибо. Как раз была такая мысль и в дальнейшем хотел спросить, как насчёт умножения одним умножителем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Just now, blackfin said:

Ну, в 100 раз "по умножителям" это вы явно хватили.. ;)

Умножение на DSP48 выполняется минимум за 4 такта.

Так что экономия по умножителям будет максимум в 25 раз.

Не за 4 такта,  а c  latency 4 такта.  Но при этом  новое умножение  каждый такт. Так что коэффициент 100 вполне реален. 

Вопрос к TC в другом -  24 бит ADC подразумевают большую разрядность  как данных  так и коэффициентов фильтра. А с учетом неизвестных требований к фильтрам  может быть так что 1000 порядок FIR  нужен будет  или  какой замороченный IIR  понадобится да еще и формате с плавающей точкой.  А мы тут гадаем  влезет в младший цинк или нет. :unknw: Нужны  хотя бы рамочные представления об параметрах и структуре обработки  чтобы не ошибаться на два порядка    :yes3:

Удачи! Rob.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну для обработки 0.5*8 = 4MSPS есть DSP и немного "позлее" чем c2000.

шарки например, со всякими аппаратными ускорителями fft/фильтров с десятком эффективных ГФлопсов, с тысячей операций на отсчёт можно что угодно с сигналом сделать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, RobFPGA said:

Не за 4 такта,  а c  latency 4 такта.  Но при этом  новое умножение  каждый такт. Так что коэффициент 100 вполне реален. 

Ну, вы неявно предполагаете, что у ТС'а КИХ-фильтры.

Но поскольку ТС'ом это явно не указано, то предполагаем худший случай - БИХ-фильтры и интерполяторы Фэрроу..

И тогда конвейер может не получиться..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, RobFPGA said:

Вопрос к TC в другом -  24 бит ADC подразумевают большую разрядность  как данных  так и коэффициентов фильтра. А с учетом неизвестных требований к фильтрам  может быть так что 1000 порядок FIR  нужен будет  или  какой замороченный IIR  понадобится да еще и формате с плавающей точкой.  А мы тут гадаем  влезет в младший цинк или нет. :unknw: Нужны  хотя бы рамочные представления об параметрах и структуре обработки  чтобы не ошибаться на два порядка    :yes3:

У приёмника предполагаются несколько функций. На самом деле сейчас эти функции выполняют два разных прибора.

Первое -  просто полосовой фильтр. Сейчас это примерно 6 Гц по уровню -1 дБ, 46 Гц по уровню -120 дБ. БИХ, целочисленный, 12 порядка. На большие частоты и много каналов DSP не хватает. Хочется перенести гетеродином в ПЛИС на частоты пониже и дофильтровывать в DSP.

Есть ещё задачи, но они на относительно низких частотах, от ПЛИС достаточно ФНЧ с дециматором.

Есть ещё другие задачи, хитрые для ПЛИС. Частоты высокие, но каналов один или два, ДСП справляется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, Абырвалг said:

... от ПЛИС достаточно ФНЧ с дециматором.

Дециматор дробный или целочисленный?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...