Jump to content
    

Разработка PCIe

Что использовать ПЛИС или готовый контроллер?

Если ПЛИС, то нужны ли какие либо покупные ядра? Насколько сделать на плис трудоемко и гемморойно?

Посмотрите ПЛИС Акроникс. В них аппаратные контроллеры интерфейсов. И они как раз для телекома подходят...

 

Share this post


Link to post
Share on other sites

pcie tree только для 32-х разрядной системы. Данную программу использовал исключительно для отладки PCIe моста на ПЛИС, чтобы программист мог начать работать с winDrive.

Спасибо, думал у Вас какой-то другой pcie tree.

 

Для bridge PCIe вам необходимо будет делать переход из stream в memory mapped. Data mover вам в помощь. По поводу Gen3 Integrated Block for PCI Express сказать ничего не могу.

Спасибо. Пока читаю про AXI4 to PCIe bridge, но, возможно, Gen3 Integrated Block for PCI Express для моего случая подойдёт больше?

Share this post


Link to post
Share on other sites

Спасибо, думал у Вас какой-то другой pcie tree.

 

 

Спасибо. Пока читаю про AXI4 to PCIe bridge, но, возможно, Gen3 Integrated Block for PCI Express для моего случая подойдёт больше?

Не подойдёт, там уровень транзакций, надо пакеты формировать, чем мост и занимается. Мост к тому же мастером работает, удобно управление делать через регистры на AXI4Lite

Share this post


Link to post
Share on other sites

На Xilinx 7-й серии всё просто, ip-ядро моста + axi central dma controller. Есть xapp по этому поводу. Там только драйвер писать надо. Зато скорость любая.

Подскажите номер этого xapp.

 

Share this post


Link to post
Share on other sites

xapp1171-pcie-central-dma-subsystem.pdf

 

Немного дегтя:

"To test this targeted design platform in hardware, you need a host machine capable of

PCI Express Gen1 x4, and the appropriate drivers and software that allow you to initiate

PCI Express traffic to the FPGA endpoint. The drivers and software are not provided with this

application note, and must be custom developed."

 

И скорость похоже не меряли.

 

 

Share this post


Link to post
Share on other sites

Посоветуйте какую-нибудь прогу под Windows 7 x64, чтоб можно было помониторить PCIe. Чтоб была возможность писать/читать данные из памяти на плате и чтоб можно было посмотреть, что плата записала в память ПК. Есть ли такое?

Share this post


Link to post
Share on other sites

Посоветуйте какую-нибудь прогу под Windows 7 x64, чтоб можно было помониторить PCIe. Чтоб была возможность писать/читать данные из памяти на плате и чтоб можно было посмотреть, что плата записала в память ПК. Есть ли такое?

rweverything

Share this post


Link to post
Share on other sites

rweverything

Спасибо, слил и установил. Если я воткну мою плату в комп при наличии ядра PCIe-AXI bridge - она появится в перечне устройств? А как правильно задаются адреса и адреса перехода? Как система выделит адресное пространство под мою плату?

 

Share this post


Link to post
Share on other sites

Спасибо, слил и установил. Если я воткну мою плату в комп при наличии ядра PCIe-AXI bridge - она появится в перечне устройств? А как правильно задаются адреса и адреса перехода? Как система выделит адресное пространство под мою плату?

Поставьте jungo windriver, мастер там всё за Вас сделает.

Share this post


Link to post
Share on other sites

Поставьте jungo windriver, мастер там всё за Вас сделает.

Спасибо попробуем.

Может кто пояснит правило задания параметров для PCIe:BARs и AXI:BARs для ядра AXI to PCIe bridge? Что-то никак не могу понять, как это правильно делается.

Как понимаю, для PCIe:BARs надо ещё память в системе создать, куда ядро будет писать данные полученные по PCIe или читать по запросу PCIe. Но как адрес и размер данной памяти увязать с параметрами PCIe:BARs?

Share this post


Link to post
Share on other sites

Поставьте jungo windriver, мастер там всё за Вас сделает.

Немного :bb-offtopic: . Вопрос по работе с jungo windriver. Скачал версию 10.10 + кейген и всё класно работало. После перепрошивки FPGA создавал и устанавливал свой драйвер всё работало. Если заливалась новая прошивка в ПЛИС, то сносил созданный ранее драйвер, создавал и устанавливал новый и можно было работать. Т.е. перезагрузка ПК не требовалась.

Сейчас пришлось переустановить Windows 7 и всё работает как-то совсем не так. Плата вставлена в слот PCIe, заливаю прошивку в FPGA, создаю и устанавливаю драйвер - всё работает. Если перепрошить FPGA то при чтении получаю все FFFF (т.е. ничего не читается и не пишется). Если перезагрузить комп, то всё вернётся в работоспособное состояние. Пробую снести ранее установленный драйвер, он удаляется и комп виснет (пробовал сносить из менегера устройств и windriver-визарда, виснет в обоих случаях). После ресета и создания/переустановки драйвера опять могу писать/читать память в FPGA.

Может посоветуете, что тут можно поправить, чтоб работало без перезагрузки компа? Думаю сносить и переустанавливать систему, не понятно, как раньше работало.

Share this post


Link to post
Share on other sites

Может кто пояснит правило задания параметров для PCIe:BARs и AXI:BARs для ядра AXI to PCIe bridge? Что-то никак не могу понять, как это правильно делается.

Я все параметры оставил по умолчанию, за исключением адресов.

Для axi:bar все просто. В параметрах для адреса прописываете адреса мапируемых областей вашей axi системы (Вы так делали на скриншотах).

 

Как понимаю, для PCIe:BARs надо ещё память в системе создать, куда ядро будет писать данные полученные по PCIe или читать по запросу PCIe. Но как адрес и размер данной памяти увязать с параметрами PCIe:BARs?

Создаете память физическую с начальным адресом например AddrPhys (адрес возвращает функция из драйвера windrive). Далее в соответствующие контрольные регистры моста пишете адрес следующий AddrPhys & (Buffersize - 1), где Buffersize - размер выделяемого буфера.

Если необходимо читать из PCIe:BARs с помощью ДМА, то в регистр источника ДМА пишете адрес PCIe:BAR в системе с axi + AddrPhys & (Buffersize - 1)

Share this post


Link to post
Share on other sites

Спасибо, тут я более-менее разобрался. С PCIe:BARs уже всё понятно и уже затестил, как работает. Остаётся проверить работу AXI:BARs, но тут, как понял, без написания драйвера не прокатит (драйвер должен выделить адреса и размеры для буферов на которые ссылаются AXI:BARs + прописать эти параметры в настройки моста).

 

Сейчас наиболее актуально

Немного :bb-offtopic: . Вопрос по работе с jungo windriver. Скачал версию 10.10 + кейген и всё класно работало. После перепрошивки FPGA создавал и устанавливал свой драйвер всё работало. Если заливалась новая прошивка в ПЛИС, то сносил созданный ранее драйвер, создавал и устанавливал новый и можно было работать. Т.е. перезагрузка ПК не требовалась.

Сейчас пришлось переустановить Windows 7 и всё работает как-то совсем не так. Плата вставлена в слот PCIe, заливаю прошивку в FPGA, создаю и устанавливаю драйвер - всё работает. Если перепрошить FPGA то при чтении получаю все FFFF (т.е. ничего не читается и не пишется). Если перезагрузить комп, то всё вернётся в работоспособное состояние. Пробую снести ранее установленный драйвер, он удаляется и комп виснет (пробовал сносить из менегера устройств и windriver-визарда, виснет в обоих случаях). После ресета и создания/переустановки драйвера опять могу писать/читать память в FPGA.

Может посоветуете, что тут можно поправить, чтоб работало без перезагрузки компа? Думаю сносить и переустанавливать систему, не понятно, как раньше работало.

Не знаю что делать, то ли сносить Windows и пробовать всё переустановить?

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...