yes 23 October 20, 2021 Posted October 20, 2021 · Report post то есть из логики поступают отчеты, их хорошо бы DMA + AXI MASTER засовывать в память цинка, а может лучше обеспечить доступ PS к памяти в PL через Slave? ну а потом этот буфер выпихивать по сети (GbE) в ПК ============================ вопросы - может есть какой-то готовый хелп/пример все сразу? я пока думаю FreeRTOS + LWIP на цинке, передавать UDP (допустима потеря пакетов, но без злоупотреблений). компьютер (линукс) стоит рядом с цинком. то есть Linux или baremetal кажутся мне сложнее. слабость свою вижу в программировании, давно не брал в руки шашки, ну и с эзернетом/сокетами очень редко пересекался. ============= вначале хочу потренироваться с ZEDBOARD - Zynq7000, затем "боевой вариант" на ZynQ Ultrascale (плата ZCU102) - предполагаю, что софт для цинка и для хоста менять не придется (ну и AXI / DMA тоже, в PL источник отсчетов только поменяется - в Z7000 какой-нибудь PRN, а в ZCU102 сигнал из боевого проекта) ----------------------- передавать надо 80 / 40 / 20 МБ/с - то есть 80 это совсем хорошо, но для первого приближения 20 сойдет ----------------------- вопрос - посоветуйте флоу и хелп, задача - сделать это просто (для себя), с минимизацией трудозатрат (витис я посмотрел - "хело ворд" запустил, следующее, наверно собрать какой-то "блок дизайн" - то есть генерация системы для софта, раньше не использовал, и собрать какое-то мигание светодиодом, потом lwip и для хоста передачу по эзернету, ну а потом AXI и собственно решение задачи) ну и вообще - может я что-то упускаю? Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 99 October 20, 2021 Posted October 20, 2021 · Report post Приветствую! А GbE сделан в PS или будет в PL части. Удачи! Rob. Quote Share this post Link to post Share on other sites More sharing options...
fguy 9 October 21, 2021 Posted October 21, 2021 (edited) · Report post 15 часов назад, yes сказал: то есть из логики поступают отчеты, их хорошо бы DMA + AXI MASTER засовывать в память цинка, а может лучше обеспечить доступ PS к памяти в PL через Slave? ну а потом этот буфер выпихивать по сети (GbE) в ПК Если бы у вас была своя плата с физикал эзернета на плис, то задача прекрасно решается в плис - укладываете логи в udp-пакеты и отправляете мультикастом. Но у вас штатные доски и все придется передавать в проц - что бы облегчить нагрузку на проц можно так же формировать пакеты логов в плисе, загружать готовые пакеты в ддр проца и ему останется только отправить его лвипом. После загрузки данных в ддр по дма не забывайте сбрасывать кэш проца, а то данных можно и не увидеть. На 102 конечно можно поднять езернет и через sfp, но на зедборде это не возможно. 15 часов назад, yes сказал: предполагаю, что софт для цинка и для хоста менять не придется (ну и AXI / DMA тоже, в PL источник отсчетов только поменяется К сожалению придется учесть переход проца с 32 бит на 64 - в ультрацинке у проца все указатели будут 64 бита, ну и шина адреса для процессорных AXI то же станет шире - 48 бит. Edited October 21, 2021 by fguy Quote Share this post Link to post Share on other sites More sharing options...
yes 23 October 21, 2021 Posted October 21, 2021 · Report post 20 hours ago, RobFPGA said: Приветствую! А GbE сделан в PS или будет в PL части. Удачи! Rob. в PS - мне кажется, что передать буфер памяти, тем более на на небольшой скорости, справится и процессор, и работать с ним проще. 5 hours ago, fguy said: Если бы у вас была своя плата с физикал эзернета на плис да, тут и вопроса нет. но даже если бы и свою плату делал - кажется, что для такого случая проще (меньше времени на разработку, проще отладить, гибчее :) решение ) использовать процессор. ---------- пока не понятен выбор софта - стоит ли взять линукс и переложить трудность на разбирательство работы с железом/драйверами и "плохой" реалтаймовости, но получить весь изернет из коробки, или брать freertos и там иметь какие-то недостатки встроенного lwip (мне вариант freertos кажется лучше). c бареметалом кажется все однозначно - чтобы lwip и мой код крутились в одном цикле придется сильно постараться, то есть не вариант. ??? Quote Share this post Link to post Share on other sites More sharing options...
nice_vladi 3 October 21, 2021 Posted October 21, 2021 · Report post Для 20-80 Mbit/s через 1G Ethernet за глаза хватит DMA+Linux. Если проц не на 100% нагружен и пакеты большого размера. Наверное, проще всего, взять отладку и поэксериментировать. Quote Share this post Link to post Share on other sites More sharing options...
blackfin 81 October 21, 2021 Posted October 21, 2021 · Report post 10 minutes ago, nice_vladi said: Для 20-80 Mbit/s через 1G Ethernet за глаза хватит DMA+Linux. У ТС'а МегаБайты: 21 hours ago, yes said: передавать надо 80 / 40 / 20 МБ/с 80 МБ/с на Zynq-7000 через 1G Ethernet и DMA+Linux не передать: MacbDriver-Zynq Максимум: 455/8 = 56 МБ/с Quote Share this post Link to post Share on other sites More sharing options...
fguy 9 October 21, 2021 Posted October 21, 2021 · Report post 25 минут назад, blackfin сказал: 80 МБ/с на Zynq-7000 через 1G Ethernet и DMA+Linux не передать На цинке 7015 передавал лвипом 70 Мбайт/с на ПК - данные приходили по каналу 1 Гбит через GT, парсились в плис и записывались в ддр проца, а он уже оттуда по прерыванию готовности данных отсылал пачку udp-пакетов (1500). Имхо линукс в цинках нужен только когда используется периферия для которой писать драйвер очень сложно и долго, например, диски с sata и m.2 nvme, внешние устройства на usb и т.п. Quote Share this post Link to post Share on other sites More sharing options...