Jump to content
    

Идея для проекта для изучения PCIe

Привет!

Хочу познать PCIe во всех его темных глубинах

Накидайте, пожалуйста, идей-проектов покодить на RTL

 

С изернетом всё проще, пиши фильтры, изучай стек, красота, а вот относительно PCIe идей никаких...

 

Заранее спасибо!

Edited by Drakonof

Share this post


Link to post
Share on other sites

Проект, позволяющий характеризовать физическое соединение: BER, eye diagram и т.п. Плюс чтобы легко можно было видеть статус установления линка и, возможно, еще какие-то низкоуровневые детали.

Share this post


Link to post
Share on other sites

9 hours ago, Drakonof said:

... изучай стек, красота,

С PCIe все тоже самое - изучай стек и будет красота ... 
Поскольку PCIe имеет схожую с Ethernet структуру стека протоколов.  Вопрос в том какие глубины (уровни стека) вы хотите кодить/изучать,  и в каких "водах" (железе) вы будет это детать?        

Share this post


Link to post
Share on other sites

Начать с теории: "PCI Express System Architecture" by Tom Shanley, Don Anderson, Ravi Budruk, MindShare.

Дальше в той же Vivado выбрать реализацию (голое ядро, мост axi-pcie или корка с DMA) создать example design, посмотреть, как это собирается, как работает на симуляторе. Позапускать на плате (ките). Дальше сами поймёте, куда копать.

Share this post


Link to post
Share on other sites

6 hours ago, Raven said:

Проект, позволяющий характеризовать физическое соединение: BER, eye diagram и т.п. Плюс чтобы легко можно было видеть статус установления линка и, возможно, еще какие-то низкоуровневые детали.

Спасибо за ответ, BER тесты уже писал

В моих начинания всё крутиться вокруг корки xdma, но на этом всё взаимодействие с PCIe кончается

Единственная идея - написать свою корку PCIe или свитч

4 hours ago, RobFPGA said:

С PCIe все тоже самое - изучай стек и будет красота ... 
Поскольку PCIe имеет схожую с Ethernet структуру стека протоколов.  Вопрос в том какие глубины (уровни стека) вы хотите кодить/изучать,  и в каких "водах" (железе) вы будет это детать?        

Все уровни стэка обрабатываются в самой корке, в отличии от PCs/pma + Mac, где можно поиграться с фильтрами, в PCIe так, похоже, не получится 

 

В этом и сложность)) а так да, конектил к xdma всё что угодно, писал туда питоном, си через mmap, но не хватает, именно, rtl

4 hours ago, dxp said:

Начать с теории: "PCI Express System Architecture" by Tom Shanley, Don Anderson, Ravi Budruk, MindShare.

Дальше в той же Vivado выбрать реализацию (голое ядро, мост axi-pcie или корка с DMA) создать example design, посмотреть, как это собирается, как работает на симуляторе. Позапускать на плате (ките). Дальше сами поймёте, куда копать.

Уже прочитал и позапускал, даже без example, всё сам настраиваю

Share this post


Link to post
Share on other sites

7 minutes ago, Drakonof said:

Все уровни стэка обрабатываются в самой корке, в отличии от PCs/pma + Mac, где можно поиграться с фильтрами, в PCIe так, похоже, не получится 

Не все уровни, если говорить про Hard IP PCIe которая есть в FPGA.  В Hard IP релизован на сколько помню только Transaction Layer и Data Link Layer. 
Application Level (XDMA, axi-bridge ...) и PHY уровень идут отдельно и при желани можете релизовать свой PHY с выходом на PIPE интерфейс в эту корку или погрузится в пучину обработки TLP c/на выхода/входа Transaction Level. На 3-6 месяцев разлечений хватит чтобы повторить функционал XDMA ... 

Если же будет интересен интимный мир PCIe то тогда можно замахнутся на Soft реализацию PCIe которая включает Transaction Layer и Data Link Layer уровень. Да и по другому (кроме как Soft core) свой PCIe свитч на FPGA не сделать.     

Share this post


Link to post
Share on other sites

А скажите пожалуйста, стандарт на PCIe открытый ?

Share this post


Link to post
Share on other sites

1 hour ago, RobFPGA said:

Не все уровни, если говорить про Hard IP PCIe которая есть в FPGA.  В Hard IP релизован на сколько помню только Transaction Layer и Data Link Layer. 
Application Level (XDMA, axi-bridge ...) и PHY уровень идут отдельно и при желани можете релизовать свой PHY с выходом на PIPE интерфейс в эту корку или погрузится в пучину обработки TLP c/на выхода/входа Transaction Level. На 3-6 месяцев разлечений хватит чтобы повторить функционал XDMA ... 

Если же будет интересен интимный мир PCIe то тогда можно замахнутся на Soft реализацию PCIe которая включает Transaction Layer и Data Link Layer уровень. Да и по другому (кроме как Soft core) свой PCIe свитч на FPGA не сделать.     

Мне нравиться, да, думаю, начну со свитча, будет хороший старт)

42 minutes ago, dimka76 said:

А скажите пожалуйста, стандарт на PCIe открытый ?

Условно да

Share this post


Link to post
Share on other sites

Возможно более интересным (перспективным для дальнейшего использования) будет подключение NvME накопителя напрямую к группе трансиверов (без использования PCIe hard block).

Edited by Igor657

Share this post


Link to post
Share on other sites

7 hours ago, Igor657 said:

Возможно более интересным (перспективным для дальнейшего использования) будет подключение NvME накопителя напрямую к группе трансиверов (без использования PCIe hard block).

А смысл такого неправильного "бутерброда"?   
NvME по любому подключается к трансиверам (со стороны serial),  а вот с другой строны трансиверов (parallel) что вы предполагаете ставить вместо PCIe? 

Share this post


Link to post
Share on other sites

11 hours ago, RobFPGA said:

А смысл такого неправильного "бутерброда"?   
NvME по любому подключается к трансиверам (со стороны serial),  а вот с другой строны трансиверов (parallel) что вы предполагаете ставить вместо PCIe? 

Pcie блоков в недорогих чипах обычно мало (а если и есть, то выгоднее их использовать для подключения к ПК) а трансиверов может быть довольно много - можно подключить много NvME дисков - тогда можно сделать очень мощную систему сбора данных (например, подключив высокоскоростную фото матрицу) или много AI вычислителей - тогда можно реализовывать более сложные алгоритмы на относительно недорогом железе.

Share this post


Link to post
Share on other sites

22 minutes ago, Igor657 said:

а трансиверов может быть довольно много - можно подключить много NvME дисков

Тогда чем вы будете формировать протокол PCIe для  управления этими "много NvME дисков"?   Много Soft PCIe в недорогом чипе? ... 
Да и "довольно много"  трансиверов в "недорогих чипах"  это как то странно.
 
Если уж  нашелся такой "недорогой чип"  с десятком-другим  трансиверов то тогда не NvME а  обычные SATA лучше уж подключвать.  А для "много NvME дисков" проще  использовать готовый недорогой PCIe свитч. 

Share this post


Link to post
Share on other sites

To RobFPGA,

а может весь протокол в этих случаях и не нужно будет реализовывать. SATA точно не вариант - он медленный. PCIe свитч в виде чипа - довольно экзотическое изделие в плане практической покупки, особенно в небольших количествах.

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.

×
×
  • Create New...