Перейти к содержанию
    

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

Привет!

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

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

 

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

 

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

Изменено пользователем Drakonof

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Drakonof said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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, всё сам настраиваю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 не сделать.     

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 открытый ?

Условно да

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

45 minutes ago, dimka76 said:

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

PCI_Express_Base_r3.0_10Nov10.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Igor657

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, Igor657 said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, RobFPGA said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 minutes ago, Igor657 said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

To RobFPGA,

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...