LINUX.ORG.RU
ФорумTalks

Zynq XC7z010 FPGA + linux - насколько это адская жопа по сложности, кто пробовал?

 


0

3

Есть платка, на борту у которой

  • zynq xc7z010 - там FPGA
  • Cortex-A9 два ядра в том же чипе
  • 512MB DDR3L памяти
  • microsd
  • ethernet
  • какая-то припаяная NAND флешка с которой грузится сейчас какой-то busybox-овы линукс.
  • куча всяких проводочков выведено из FPGA переменного назначения. Нет USB, но через эти проводочки можно заимплементить наверное, но не суть.

Есть идея поднять на этом чипе любой рандомный armbian и запустить в нём в юзерспейсе такой процесс, который сделает mmap 128 мегабайт ОЗУ и дальше самое интересное - как-то пробросить эти 128 мегабайт в FPGA и на FPGA реализовать некий сложный DSP на этом куске памяти. Сообщать FPGA о том что нужно начать обработку и от FPGA в «линукс» о том, что обработка завершена незнаю как пока, не понимаю бывают ли в этом мире какие-то прерывания между ними.

Хочется спросить у опытных чуваков, кто с таким работал, в целом насколько на этом поле деятельности всё хорошо документировано или это для одного человека на уровне хобби просто неподьёмная задача по степени недокументированности и всякого внезапного кала?

На C++ писать могу, линуксы на ARM-ы накатывать могу, осциллографом и паяльником даже умею пользоваться, но вот с FPGA работал последний раз на детском уровне в универе на каком-то курсаче, а тем более не трогал современные FPGA технологии и особенно их связность с линуксами.

Финально чо хочется сделать: поток IQ семплов с rtl-sdr USB-приёмника процессить на FPGA в задачах корелляции сигналов, спрятанных под уровнем шума, типа попробовать программно подетектировать LORA посылки - для этого надо запустить несколько тысяч параллельных корелляторов наверное, проц такое не потянет, FPGA вполне может, но только с внешней памятью. USB на плате не выведено, ну может по ethernet поток семплов запихаю туда. Процессить IQ-семплы с rtl-sdr на обычном железе алгоритмами на C++ пробовал, но ARM-ядра в этой задаче хватит не на особо амбициозные задачи. Заранее чувствую, что это такая невероятная жопа, что проще помоделировать свои идеи в условном матлабе и успокоиться, но всё равно прикольно было бы поиграться в FPGA хоть как-то.



Последнее исправление: lesopilorama (всего исправлений: 3)

Попробуй поискать у производителя аппноты к чипу

cobold ★★★★★
()

...спросить у опытных чуваков, кто с таким работал...

У меня опыта нет, но я на днях запускал на аналогичном девайсе (ТВ-приставка с прошивкой и контроллером ДУ) FreeBSD и ALT. Как дети в школу.

sparkie ★★★★★
()
Ответ на: комментарий от Eulenspiegel

Enter your phone number to get a verification code

Ясно, понятно. ChatGPT такой подлости не просит.

IPR ★★★★★
()

Делить память Zynq и FPGA. Ну сам Linux может и не сложно поднять, по туториалам, там ведь всё готовое, и просто видимо объемы ОЗУ разные, а базовая периферия одинаковая если ничего своего не добавлять

Делить DDR3 так просто не выйдет, придется AXI DMA ставить, и по полноценному интерфейсу AXI пробиваться к памяти, стоя в очередях, если процессору нужнее, хотя там разные приоритеты портов

Несколько тысяч корреляторов XC7Z010 банально не влезет. Надо вот спроектировать один коррелятор, затем сделать их 50 и посмотреть как растет потребление логики. Посимулировать, но первые попытки покажут потребление логики

Надо понять, а сколько потребуется блочной памяти, а сколько умножителей, потому что несмотря на огромный объем памяти DDR она тормозная, поэтому требуется блочная. И какая полоса у LORA? Тогда да, можно коррелировать поочередно

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Есть идея поднять на этом чипе любой рандомный armbian и запустить в нём в юзерспейсе такой процесс, который сделает mmap 128 мегабайт ОЗУ

вот про это есть гайд у производителя

и дальше самое интересное - как-то пробросить эти 128 мегабайт в FPGA и на FPGA реализовать некий сложный DSP на этом куске памяти. Сообщать FPGA о том что нужно начать обработку и от FPGA в «линукс» о том, что обработка завершена незнаю как пока, не понимаю бывают ли в этом мире какие-то прерывания между ними.

а вот с этим у нас за пол года справились пара программистов встроенного ПО, пара программистов под операционной системой, математик и ПЛИСер. Трудоемкость зависит от того, насколько сложный DSP и какая планируется обработка в линукс.

aiqu6Ait ★★★★
()

для этого надо запустить несколько тысяч параллельных корелляторов наверное

Нет, нужен только коррелятор на целевой сигнал.

aiqu6Ait ★★★★
()
Ответ на: комментарий от aiqu6Ait

Целевой непонятно в какой момент времени начинается, отсюда и тысячи - по одному одинаковому на небольшое каждое смещение…

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Ну, тут одно из двух. Или я Вас не понял, или вам в команду нужен специалист по цифровой обработке сигналов.

aiqu6Ait ★★★★
()

Лично сам, я на цинк ничего не поднимал. Но видел много раз, стоял рядом или как-то участвовал частично в такого рода проектах. Ну и на текущем месте работы куча изделий на этой связке. В целом, как я понял, это уже какая-то недостойная внимания рутина уровня ардуины. виваду поставил, пару раз тыкнул мышкой и все готово.

Притом что в сети куча проектов как это все поднимать с нуля. Всякие sdr и т.д.

yax123 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)