Xilinx PCI Express - Am I starting too low?

Nov 15, 2011 4 Replies

Hello,



I have used the Xilinx LogiCore Integrated Block for PCI Expres several times in the past. On those occasions I have hacked into the autogenerated example design to bring a standard parallel interface up to the top level for access to registers and block ram. This work has always been for prototyping and was not really production firmware. Working this way the PCI Express performance is really low because the Logicore IP does not support burst transfers or DMA. The software engineer hacks the linux driver to prevent any PCI Express accesses of greater than one word so we don't get bus errors.



I just genenerated a version 2.4 AXI4 compatible PCIe core for V6 using ISE 13.3 and I see the design still supports only single word accesses.



Now we are dong a production design using PCIe and I would like to get the full performance of the interface. In particular I must support burst transfers. Ideally I will also provide DMA logic.



Can anyone advise me where to start in order to get where I want to go?



Am I starting too low using the Xilinx Logicore design?



Does Xilinx provide a better core or reference design with burst transfer and DMA?



Any advice is greatly appreciated.



Pedro


I started out by modifying the base PCIe implementation to accept multiple DWORD packets, however it turned out that the PCIe root port in my PC did not support this. You need to implement DMA to get more performance.

Typing "xilinx pcie dma" into google gave me the following result (you really should try google next time...) : Bus Master Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions

formatting link

I use this design a great deal, it comes with the required registers already implemented but not blockram.

K> Hello,

If you want DMA you either need to write your own DMA controller or buy a ready made core. Xilinx only provide the PCIe core. I have done this before so if you want to contact me I may be able to help you.

Jon

--------------------------------------- Posted through

formatting link

re

Verilog only, unfortunately.

- Brian

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required