cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
greatmaverick
Explorer
Explorer
2,398 Views
Registered: ‎04-06-2017

What is the best example PCIe DMA operation?

Jump to solution

I am using Kintex-7 FPGA which include PCIe gen2 core. What is the best example PCIe DMA operation for Kintex-7 FPGA?

0 Kudos
1 Solution

Accepted Solutions
vortex1601
Explorer
Explorer
2,319 Views
Registered: ‎12-11-2017

XAPP1052 by itself is a bit opaque as far as how the implementation is done. It's pre-Vivado, having been published originally in 2008, and it shows.

The Kintex TRD (UG927) shows a lot more of what's 'under the hood', even though it uses third-party IP for the DMA itself. It's Xilinx's 'halo' for DMA. It's a good (and I argue, the best) reference for understanding high-performance DMA architecture with Xilinx PCIe. There are several other TRDs in that family, all using the Northwest Logic DMA block.

For less-demanding applications, xdma (pg195) is probably the easiest way to get started with PCIe + DMA for most people, despite its limitations and somewhat-buggy history. Besides being relatively easy to use, there's more people familiar with that block in the community than other Xilinx DMA solutions. There are open-source drivers for it.

View solution in original post

6 Replies
vortex1601
Explorer
Explorer
2,395 Views
Registered: ‎12-11-2017

Take a look at the Xilinx Kintex Targeted Reference Design. Link: https://www.xilinx.com/products/boards-and-kits/dk-k7-conn-g.html

0 Kudos
greatmaverick
Explorer
Explorer
2,372 Views
Registered: ‎04-06-2017

I do not like to use the IP in your listed link because it is not a xilinx IP core. Someone thinks XAPP1052 is the best for new learners. But if one searches from xilinx website with "xilinx PCIe", the first listed is "DMA/Bridge Subsystem for PCI
Express v4.1". XAPP1052 is very far from the first searched item. 

Thank you.

0 Kudos
vortex1601
Explorer
Explorer
2,367 Views
Registered: ‎12-11-2017

A popular DMA solution is the one you stated (called 'xdma', aka pg195.) It isn't neccessarily the 'best' (which honestly, you didn't really define what you meant by 'best'.) I would expect that the commerical solution used in the Kintex TRD would be better, as in more capable, higher performing, etc.

At any rate I've used xdma and found that it has some shortcomings compared to other DMA solutions, but it is pretty simple to use if you don't need the ultimate in throughput. It has a history of being somewhat buggy, which you can see in its tactical patch history.

0 Kudos
greatmaverick
Explorer
Explorer
2,354 Views
Registered: ‎04-06-2017

What do you think of XAPP1052? Is it a good example? Thank you.

0 Kudos
vortex1601
Explorer
Explorer
2,320 Views
Registered: ‎12-11-2017

XAPP1052 by itself is a bit opaque as far as how the implementation is done. It's pre-Vivado, having been published originally in 2008, and it shows.

The Kintex TRD (UG927) shows a lot more of what's 'under the hood', even though it uses third-party IP for the DMA itself. It's Xilinx's 'halo' for DMA. It's a good (and I argue, the best) reference for understanding high-performance DMA architecture with Xilinx PCIe. There are several other TRDs in that family, all using the Northwest Logic DMA block.

For less-demanding applications, xdma (pg195) is probably the easiest way to get started with PCIe + DMA for most people, despite its limitations and somewhat-buggy history. Besides being relatively easy to use, there's more people familiar with that block in the community than other Xilinx DMA solutions. There are open-source drivers for it.

View solution in original post

liy
Xilinx Employee
Xilinx Employee
2,302 Views
Registered: ‎08-02-2007

You can use the XDMA IP to generate an example design 

and install the driver in AR65444 ,

https://www.xilinx.com/support/answers/65444.html 

If you already have a xilinx board, when generate  the Example design , select the board,the pins have been fixed for that board

it will be very easy to make it work

If you are using a customer board , make sure the GT locations are selected correctly

------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------