UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
785 Views
Registered: ‎10-18-2014

PCI express for FPGA to FPGA communication

Jump to solution

Hi everybody,

I am recently studying PCI Express and going to use it for data transfer between two FPGAs. After reading some manuals about PCIe, I want to use PCIe ip core available in Vivado. There are some questions:

 

1: Basically, is it possible to connect high speed serial IOs of two FPGA boards using SMA cables and the two FPGAs communicate by PCIe protocol? OR a PCIe slot is a necessary component to do that?

 

2: According to manuals: an OS is required in a PCIe topology to do some tasks (enumerating the topology or setting some fields of BARs registers in endpoints and bridges and so on). My question is: Does implementing PCIe data transfer between two FPGAs need standalone PC or one of FPGAs can play the role of PC with OS. 

 

Additionally, any suggestions are welcome.

 

Thanks,

farzian

 

0 Kudos
1 Solution

Accepted Solutions
751 Views
Registered: ‎01-08-2012

Re: PCI express for FPGA to FPGA communication

Jump to solution

1: Basically, is it possible to connect high speed serial IOs of two FPGA boards using SMA cables and the two FPGAs communicate by PCIe protocol? OR a PCIe slot is a necessary component to do that?

 

You do not need a physical PCIe slot.  For example, I've designed boards that run PCIe on PCB traces between two FPGAs.

 

SMA is an odd choice.  PCIe uses differential pairs and SMA is an unbalanced connector, which is the opposite of what you want.  Assuming you only need Gen 1 speeds, something like HDMI (or Display Port if you need locking) connectors would be a better choice as these are designed for multiple differential pairs (you need at least three) and are cheap.  (Please note, I am not saying use HDMI video, just the connector.)

 

Are you suggesting SMA because you have a dev board and that's the only connector available?  Or is it that you want to run Gen 3 or Gen 4 speeds and need the better SI that SMA gives?

 

 

2: According to manuals: an OS is required in a PCIe topology to do some tasks (enumerating the topology or setting some fields of BARs registers in endpoints and bridges and so on). My question is: Does implementing PCIe data transfer between two FPGAs need standalone PC or one of FPGAs can play the role of PC with OS. 

 

One end will need to be a root complex, and that will need software, as you noted.  This could very easily be linux running on the PS in a Zynq, etc.

 

Another suggestion would be to run AXI chip to chip.

4 Replies
752 Views
Registered: ‎01-08-2012

Re: PCI express for FPGA to FPGA communication

Jump to solution

1: Basically, is it possible to connect high speed serial IOs of two FPGA boards using SMA cables and the two FPGAs communicate by PCIe protocol? OR a PCIe slot is a necessary component to do that?

 

You do not need a physical PCIe slot.  For example, I've designed boards that run PCIe on PCB traces between two FPGAs.

 

SMA is an odd choice.  PCIe uses differential pairs and SMA is an unbalanced connector, which is the opposite of what you want.  Assuming you only need Gen 1 speeds, something like HDMI (or Display Port if you need locking) connectors would be a better choice as these are designed for multiple differential pairs (you need at least three) and are cheap.  (Please note, I am not saying use HDMI video, just the connector.)

 

Are you suggesting SMA because you have a dev board and that's the only connector available?  Or is it that you want to run Gen 3 or Gen 4 speeds and need the better SI that SMA gives?

 

 

2: According to manuals: an OS is required in a PCIe topology to do some tasks (enumerating the topology or setting some fields of BARs registers in endpoints and bridges and so on). My question is: Does implementing PCIe data transfer between two FPGAs need standalone PC or one of FPGAs can play the role of PC with OS. 

 

One end will need to be a root complex, and that will need software, as you noted.  This could very easily be linux running on the PS in a Zynq, etc.

 

Another suggestion would be to run AXI chip to chip.

Adventurer
Adventurer
744 Views
Registered: ‎10-18-2014

Re: PCI express for FPGA to FPGA communication

Jump to solution

Thank you @allanherriman,

Your responses make a crystal clear view for me.

 

Are you suggesting SMA because you have a dev board and that's the only connector available?  Or is it that you want to run Gen 3 or Gen 4 speeds and need the better SI that SMA gives?

 

Yes, My only available connector on device boards is SMA. However, a new board PCB can be designed with PCB traces between two FPGAs. It only takes a little time to do that.

0 Kudos
Explorer
Explorer
727 Views
Registered: ‎12-11-2017

Re: PCI express for FPGA to FPGA communication

Jump to solution

For a physical connector, Samtec offers Firefly which is made for this purpose. It's similar to iPass used for PCIe but much smaller. SMA can work too if that's what  you have.

For a logical connection, Aurora combined with axi chip-to-chip wouldn't consume the resources that PCIe does. See https://www.xilinx.com/products/intellectual-property/axi-chip2chip.html

0 Kudos
Scholar markcurry
Scholar
718 Views
Registered: ‎09-16-2009

Re: PCI express for FPGA to FPGA communication

Jump to solution

 

I'll second the recommendation for something "lighter" like Aurora.  There's a lot of overhead and legacy within PCIE.  If your application doesn't specifically require PCIE, I'd definitely explore Aurora.

 

Regards,

 

Mark 

 

 

0 Kudos