Jump to content

    
Абырвалг

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

Recommended Posts

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

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

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

 

Share this post


Link to post
Share on other sites
6 minutes ago, Абырвалг said:

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Удачи! Rob.

Share this post


Link to post
Share on other sites
52 minutes ago, Абырвалг said:

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

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

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

 

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

Share this post


Link to post
Share on other sites
35 минут назад, Абырвалг сказал:

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

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

Share this post


Link to post
Share on other sites
21 minutes ago, RobFPGA said:

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

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

17 minutes ago, dmitry-tomsk said:

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

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

Share this post


Link to post
Share on other sites
12 minutes ago, MegaVolt said:

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
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 раз. 

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

Share this post


Link to post
Share on other sites

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

Just now, blackfin said:

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

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

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

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

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

Удачи! Rob.  

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
28 minutes ago, RobFPGA said:

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

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

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

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

Share this post


Link to post
Share on other sites
8 minutes ago, RobFPGA said:

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

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.