maxim5353 0 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 05.06.2018 в 22:40, AVR сказал: Готов проконсультировать по всем вопросам касательно PCI-E. Насколько хватит моей скудной компетенции. Только просьба, переименовать тему в сторону более информативного заголовка. Вкратце: хост выделяет у себя кусочки памяти, затем делает их доступными для записи через PCI-E, попутно выясняя по какому адресу это будет видно через PCI-E. Эти адреса могут не совпадать. Все эти действия делаются API ядра операционной системы. Полученные адреса, например, можно засунуть через MMIO (т.е. BARы) в ПЛИС, а потом ПЛИС просто шлет пакеты, заполняя эти кусочки памяти. Можно для начала выделить 1 блок размером 4096. На самом деле всё чудовищно просто, когда осваивал не мог понять/поверить что всё так просто. http://xillybus.com/tutorials/pci-express-...utorial-guide-1 Здравствуйте , хотел бы попросить помощи в реализации PCI express на Xilinx , у меня вопрос такой , есть DMA Bridge subsystem , возможно ли из Endpoint на ПЛИС который расположен у которого есть ддр на плате , писать данные в память оперативную на материнской плате ну то есть память которую использует cpu ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 18 августа, 2021 Опубликовано 18 августа, 2021 · Жалоба 1 hour ago, maxim5353 said: озможно ли из Endpoint на ПЛИС который расположен у которого есть ддр на плате , писать данные в память оперативную на материнской плате ну то есть память которую использует cpu ? Возможно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 31 августа, 2021 Опубликовано 31 августа, 2021 · Жалоба On 8/18/2021 at 2:11 PM, maxim5353 said: Здравствуйте , хотел бы попросить помощи в реализации PCI express на Xilinx , у меня вопрос такой , есть DMA Bridge subsystem , возможно ли из Endpoint на ПЛИС который расположен у которого есть ддр на плате , писать данные в память оперативную на материнской плате ну то есть память которую использует cpu ? На самом деле, спасибо Xilinx за их ядро, а вот остальное. Так ли оно нужно. Всё что Вы спрашиваете, можно реализовать напрямую работая с ядрами DDRx и PCIe, про DMA Bridge subsystem не знаю что это (это такое ядро у Xilinx или общее обозначение механизма?), но как минимум врукопашную это реализовать абсолютно можно. Какая ПЛИС конкретно, какого поколения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 1 сентября, 2021 Опубликовано 1 сентября, 2021 · Жалоба 19 часов назад, AVR сказал: На самом деле, спасибо Xilinx за их ядро, а вот остальное. Так ли оно нужно. Всё что Вы спрашиваете, можно реализовать напрямую работая с ядрами DDRx и PCIe, про DMA Bridge subsystem не знаю что это (это такое ядро у Xilinx или общее обозначение механизма?), но как минимум врукопашную это реализовать абсолютно можно. Bridge subsystem как минимум проще в использовании. Вам не нужно там руками описывать сотни сигналов проприетарных интерфейсов (набор конфигурационных, flow control, phy), вы работаете с шиной AXI. Вам не нужно заботиться о разбиении транзакции на серию TLP в случае, если размер транзакции превышает MPS и MRRS. Вам не нужно париться со склеиванием CplD при разбиении по RCB. Т.е. порог вхождения и время на подъём интерфейса существенно ниже. Это согласуется и с размером документации: на низкоуровневое ядро она порядка 450-550 страниц (в зависимости от Gen), а на Bridge subsystem немногим более 100 страниц. Т.ч. смысл есть. Сам возился с низким уровнем, наелся по полной программе. Но нужно было выжимать скорость, поэтому тут компромиссы были не уместны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plis 0 20 декабря, 2021 Опубликовано 20 декабря, 2021 · Жалоба On 6/5/2018 at 10:40 PM, AVR said: Готов проконсультировать по всем вопросам касательно PCI-E. Насколько хватит моей скудной компетенции. Только просьба, переименовать тему в сторону более информативного заголовка. Вкратце: хост выделяет у себя кусочки памяти, затем делает их доступными для записи через PCI-E, попутно выясняя по какому адресу это будет видно через PCI-E. Эти адреса могут не совпадать. Все эти действия делаются API ядра операционной системы. Полученные адреса, например, можно засунуть через MMIO (т.е. BARы) в ПЛИС, а потом ПЛИС просто шлет пакеты, заполняя эти кусочки памяти. Можно для начала выделить 1 блок размером 4096. На самом деле всё чудовищно просто, когда осваивал не мог понять/поверить что всё так просто. http://xillybus.com/tutorials/pci-express-...utorial-guide-1 А на каких типах \плис реализовывали и какие модули(core) использовали ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 20 декабря, 2021 Опубликовано 20 декабря, 2021 · Жалоба 21 minutes ago, plis said: А на каких типах \плис реализовывали и какие модули(core) использовали ? На текущий момент я освоил подобным образом PCI-E на платформах Lattice Versa ECP3, Altera Cyclone 4 GX, Xilinx Kintex 7 и Kintex UltraScale. Везде, кроме последнего, оказалось всё идентично и аналогично в целом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plis 0 22 декабря, 2021 Опубликовано 22 декабря, 2021 · Жалоба On 12/20/2021 at 5:37 PM, AVR said: На текущий момент я освоил подобным образом PCI-E на платформах Lattice Versa ECP3, Altera Cyclone 4 GX, Xilinx Kintex 7 и Kintex UltraScale. Везде, кроме последнего, оказалось всё идентично и аналогично в целом. А в чем разница ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shide_3 0 23 декабря, 2021 Опубликовано 23 декабря, 2021 · Жалоба On 6/5/2018 at 2:20 PM, polyvyannyy said: Всем привет, уважаемые форумчане! Возникла необходимость поднять на девборде PCIe 3x8. Референсный дизайн загружен и все работает. Но теперь нужно сделать прием и отправку своих данных с/на хост. И вот тут то возникла куча вопросов и непониманий. Информации по теории PCIe полно, но никак не удается найти конкретики относительно ПЛИС...какой именно у меня должен быть порядок действий со стороны ПЛИС, чтобы организовать чтение/запись данных в ОЗУ хоста? таблица дискрипторов...кто её формирует, где она хранится?В голове каша и нет четкого понимания. Прошу помощи у опытных в данной теме людей. За любые ссылки, проекты, которые можно взять за основу, буду благодарен. а не подскажете, с помощью чего пишете софт для чтения/записи данных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 23 декабря, 2021 Опубликовано 23 декабря, 2021 · Жалоба 9 hours ago, shide_3 said: а не подскажете, с помощью чего пишете софт для чтения/записи данных? на каком железе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 24 декабря, 2021 Опубликовано 24 декабря, 2021 · Жалоба On 6/6/2018 at 2:40 AM, AVR said: Готов проконсультировать по всем вопросам касательно PCI-E. Насколько хватит моей скудной компетенции. Только просьба, переименовать тему в сторону более информативного заголовка. Вкратце: хост выделяет у себя кусочки памяти, затем делает их доступными для записи через PCI-E, попутно выясняя по какому адресу это будет видно через PCI-E. Эти адреса могут не совпадать. Все эти действия делаются API ядра операционной системы. Полученные адреса, например, можно засунуть через MMIO (т.е. BARы) в ПЛИС, а потом ПЛИС просто шлет пакеты, заполняя эти кусочки памяти. Можно для начала выделить 1 блок размером 4096. На самом деле всё чудовищно просто, когда осваивал не мог понять/поверить что всё так просто. http://xillybus.com/tutorials/pci-express-...utorial-guide-1 Цена корки от 25000-85000$. Вы почём купили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 24 декабря, 2021 Опубликовано 24 декабря, 2021 · Жалоба 30 minutes ago, dmitry-tomsk said: Цена корки от 25000-85000$. Когда-то давно Альтера к своему киту в качестве демки давала софт для перекачки туда-сюда по PCIe - scatter-gatter DMA - хост составляет таблицу адресов кусочков памяти, посылает ее адрес в FPGA, а она перекачивает туда-сюда через DMA - емнип так оно работало). Как понимаю - софт стоил бесплатно, ну или за стоимость кита - $1200. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shide_3 0 24 декабря, 2021 Опубликовано 24 декабря, 2021 · Жалоба 14 hours ago, new123 said: на каком железе? win10 64 bit, стандартный ПК Core i5, 32 ГБ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 24 декабря, 2021 Опубликовано 24 декабря, 2021 · Жалоба 1 hour ago, Yuri124 said: Когда-то давно Альтера к своему киту в качестве демки давала софт для перекачки туда-сюда по PCIe - scatter-gatter DMA - хост составляет таблицу адресов кусочков памяти, посылает ее адрес в FPGA, а она перекачивает туда-сюда через DMA - емнип так оно работало). Как понимаю - софт стоил бесплатно, ну или за стоимость кита - $1200. Я когда-то писал сам для спартана, сейчас нужно для 7го поколения, вот и думаю стоит ли терять время Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 24 декабря, 2021 Опубликовано 24 декабря, 2021 (изменено) · Жалоба 4 hours ago, shide_3 said: win10 64 bit, стандартный ПК Core i5, 32 ГБ я думал ответ больше будет про плис ) чтобы со стороны PC по pcie общаться с плис, нужно драйвер писать. На винде, скорее всего это будет так же как и на Линуксе, на c языке Изменено 24 декабря, 2021 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 25 декабря, 2021 Опубликовано 25 декабря, 2021 · Жалоба 18 часов назад, dmitry-tomsk сказал: Я когда-то писал сам для спартана, сейчас нужно для 7го поколения, вот и думаю стоит ли терять время В смысле, размышляете, делать или купить готовое ядро? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться