FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6359 Discussions

PCI Express & switch boards

Altera_Forum
Honored Contributor II
1,088 Views

Hi, this has both IP & dev board questions... 

 

1) IP: 

If I used 2 Stratix 4 GX dev kits w/ the PCIE (endpoint) IP, and plugged them into a pcie switched system, could they communicate with each other? 

i.e. Does that IP let one card initiate a transaction to the other? (I don't yet understand what the limitation is of the 'endpoint only' IP. I'm hoping it's mostly just a difference of which side is in charge of the initial negotiation.) 

 

2) PCIE system: 

Also, does anyone know of a simple pcie switch (backplane) dev board? I'm flexible as to the specifics, but a few slots (16x mechanical), preferably with at least a few slots that were 4x electrical (2+ slots that are 8x electrical would be a bonus). I'd like one that can boot up & work as a PCIE switch without a host system upstream of it. There seem to be a bunch of systems that I can use that are basically PCs, but I'd like to trim it down to the PCIE cards talking to eachother. Something like a PLX bridge with PCIE connectors (& power) would be good. 

 

Thanks in advance, -Brian
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
376 Views

PCI Express system architecture permits peer-to-peer transactions... packets are routed through the switch based on their addresses so the only thing you would need to do is configure the devices to determine each others' address spaces. The switches take care of the rest. 

 

Every PCI Express system needs one root device, which normally is the CPU and bridge of a computer. The easiest way to have two FPGAs to communicate with each other would be to have one FPGA configured as root, and one as endpoint, and attach their lanes, reset, and PCIE reference clock to each other.
0 Kudos
Altera_Forum
Honored Contributor II
376 Views

For '1: IP', I see that the configuration of the Altera PCIE endpoint IP allows me to select whether the endpoint is slave/sink only, or whether it can send requests out too. So that confirms for me that this endpoint IP should be capable of initiating transactions. 

 

For '2: system', I guess most folks are content w/ a PC as the root complex, and that I'll have to get some root complex IP like fuzzyRobb suggested. 

I was hoping to use PCIE communication without requiring an entire system (CPU/PC) upstream of the switch... for a switched backplane where the switch(es) could power up & bring up the links and maybe allow configuration of endpoint BARs & etc to be initiated by one of the endpoints or something. Or perhaps a small SBC that could include rudimentary PCIE enumeration/configuration to get things to that point. 

 

Oh well, guess I'm stuck w/ a PC playing root complex (& switch) until I can get root complex IP in one of my fpgas. :)
0 Kudos
Altera_Forum
Honored Contributor II
376 Views

1: Yes they can talk with each other. 

2: I know this isn't exactly what you are wanting, but thought it applies somewhat.  

 

http://cyclone.com/products/expansion_systems/600-2703.php 

 

And they have smaller ones as well. 

 

As far as not using a PC as the main host, you can use the Stratix 4 as the RC like you said, but I don't know of any Dev-boards that have a Stratix 4 already on them configured as the RC, well, for that matter i don't know of that many dev boards with a S4 on them. You could always build your own...but i guess that wouldn't be called a devboard and would probably just be called your product.
0 Kudos
Altera_Forum
Honored Contributor II
376 Views

Some other thoughts without really looking at the viability of them by googleing "pcie switch development": 

http://cyclone.com/products/expansion_systems/600-2703.php
0 Kudos
Reply