Xilinx PCI Express - Am I starting too low?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
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

Re: Xilinx PCI Express - Am I starting too low?
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
http://www.xilinx.com/support/documentation/application_notes/xapp1052.pdf

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

Kind regards,
Sam Collinson

Quoted text here. Click to load it

Re: Xilinx PCI Express - Am I starting too low?
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 http://www.FPGARelated.com

Re: Xilinx PCI Express - Am I starting too low?
Jon,
The application note I posted is a DMA controller provided for free by
Xilinx.
Kind regards,
Sam Collinson

On Nov 20, 9:08A0%am, "maxascent"
Quoted text here. Click to load it

Re: Xilinx PCI Express - Am I starting too low?

Quoted text here. Click to load it

Verilog only, unfortunately.

- Brian

Site Timeline