self
Guest
Tue Nov 15, 2011 7:42 pm
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
Sam Collinson
Guest
Thu Nov 17, 2011 1:45 am
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
On Nov 16, 6:42 am, self <padu...@gmail.com> wrote:
Quote:
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
maxascent
Guest
Sat Nov 19, 2011 9:08 pm
If you want DMA you either need to write your own DMA controller or buy
ready made core. Xilinx only provide the PCIe core. I have done this befor
so if you want to contact me I may be able to help you.
Jon
---------------------------------------
Posted through
http://www.FPGARelated.com
Sam Collinson
Guest
Mon Nov 21, 2011 1:41 am
Jon,
The application note I posted is a DMA controller provided for free by
Xilinx.
Kind regards,
Sam Collinson
On Nov 20, 9:08 am, "maxascent"
<maxascent_at_n_o_s_p_a_m.n_o_s_p_a_m.yahoo.co.uk> wrote:
Quote:
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
throughhttp://www.FPGARelated.com
Brian Drummond
Guest
Mon Nov 21, 2011 12:40 pm
On Sun, 20 Nov 2011 15:41:14 -0800, Sam Collinson wrote:
Quote:
Jon,
The application note I posted is a DMA controller provided for free by
Xilinx.
Kind regards,
Sam Collinson
Verilog only, unfortunately.
- Brian