This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Connect EVM6678 to FPGA through PCI-E

Other Parts Discussed in Thread: TMDXEVMPCI, TUSB7320

Hi,

I'd like to connect the EVM6678 evaluation card to a FPGA card through a PCI-E interface. The FPGA card has a standard PCI-E connector.

The EVM6678 card is Root Complex and the FPGA card is End Point.

Is anybody has already done this test?. Which kind of mother board could i use for this test?.

Thanks,


Pascal

  • Pascal,

    eInfochips makes an AMC-to-PCIe adapter for the EVM6678. 

    http://www.einfochips.com/TI-TMDXEVMPCI.php

    If you use that, it may be an easier choice for either a motherboard, or PCIe connector.

    Regards,

    Travis

  • Tscheck,

    Thank you for your answer.

    We have already bought the TMDXEVMPCI card but my difficulty is to find a mother board

    where you can plug the EVM8878+TMDSEVMPCI as a root complex. Usually, mother board

    like PICMG1.3 has a different connector for root complex (see for example SPE-4S from IEI).

    Regards

    Pascal

  • Hi Pascal and Tscheck,

    have you had any success with your problems?

    I am also trying to connect a C6678 EVM to a FPGA by PCIe. At this moment, I am trying to run the TI example (C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_21\packages\ti\drv\pcie\example\sample) that communicates two C6678 EVM between them. However, I get stuck in the pcieLtssmCtrl function (enable link training). My two C6678 are plugged into the backplane Pascal mentioned (PICMG, SPE-4S) through two AMC to PCIe adapters from einfochips.

    In fact, since the backplane documentation is very small (just these four pages http://www.ieiworld.com/files/file_pool/08345539709390234048/file/SPE-4S%20UM%20V1.01_%2020080409.pdf), I do not even know which connector I have to use for both endpoint and rootcomplex. I think that the board has at least 5 different PCIe connectors that may serve. I have tested more than 10 combinations without success (changing the cards from a backbone PCIe connector to another, choosing between the XDS100 and XDS560 emulator, using either external power or the backbone power...)

    Do you know where the C6678 must be connected (which connectors on the backplane)? Do I need some kind of external clock? I think I have read in the forum that each C6678 should work well with its own built-in clock but I am not sure.

    I have also plugged the two boards (C6678 EVM + XDS 560 emulator + AMC to PCIe adapter) into a Windows PC, connecting them by USB to two CCS instances (on different computers) and it happens the same: I get stuck in the pcieLtssmCtrl function.

    Any idea, please?

  • We tried without success to find an "off the shelf" way to do this and failed.

    We then got a jury-rigged solution to work.  First, we put the EVM in the AMC to PCIe adapter, then soldered up a crossover connector (female to femaie) to link this to a Virtex 6 EVM's PCIe connector.  This involved popsicle sticks to hold it rigid.  It breaks all sorts of rules about high-speed digital signals, but actually it worked fine.  I'm afraid I don't know the details of the wiring.

  • Gordon,

    There are multiple ways to do this with off-the shelf components.  TI produces a board where 2 EVMs can be plugged back-to-back where all of the SERDES interfaces are cross-connected.  It also generates common clocks that can be used if desired.  It is known as the Dual EVM BOC or the CI2EVMBOC.  We have successfully tested this with the PCIe to PCIe examples in the MCSDK.  The Dual EVM BOC can be bought from the eStore at:  https://estore.ti.com/CI2EVMBOC--P2685.aspx.

    You can also cable them using SMA cables and the break out card from the vendor Silicon Turnkey Express.  We have also tested this board in an EVM to EVM configuration with PCIe using local clocks.  The STX SMA breakouts are available at: http://silicontkx.com/SMA-AMCULTRA9000.html.  In both this configuration and the previous one you can run the root complex version of the software under CCS control and you can use the boot the endpoint without CCS intervention.

    The AMC to PCIe Adapter Card TMDXEVMPCI can be purchased from the eStore.  Information is available at: http://www.ti.com/tool/tmdxevmpci.  This card allows an EVM to be mounted and placed inside an ATX computer chassis.  The PCIe root complex is on the ATX motherboard.  The IBL loaded on the EVM will allow this configuration to work.  Since the motherboard probably uses a spread spectrum clock, the EVM will need to be configured for external PCIe clock operation.

    Samtec has a cable for connecting PCIe male to male and male to female.  It is the PCIEC family at: http://www.samtec.com/ProductInformation/TechnicalSpecifications/Overview.aspx?series=PCIEC.  Unfortunately, they do not make a female to female which would interconnect the 2 TMDXEVMPCI carriers that you have.

    Tom

     

  • Hi Tom,

    Thanks for a helpful reply.  I think you're misunderstanding the question a little, though.  We (and I think the original poster) have a C6678 EVM and an FPGA EVM, which in our case had a PCIe male connector and not AMC.

    Tom Johnson16214 said:
    TI produces a board where 2 EVMs can be plugged back-to-back where all of the SERDES interfaces are cross-connected. 

    We bought a few of these and they were useful, as we could mock the FPGA's behaviour on a second EVM up to a point, but they didn't solve the issue of connecting an EVM to an FPGA with a PC-style PCIe connector, which we wanted.

    Your second suggestion is basically the same: it's about connecting EVMs or at least AMC boards together.

    We also bought your third suggestion and used it as part of the final solution, but as note, you then need a female-to-female connector which doesn't seem to be easy to find off the shelf.

    The problem we found is that there's a lot of PCIe kit out there, but it all has this deeply rooted assumption that the RC will be a PC motherboard somewhere, and you're just trying to attach some endpoints in wacky ways.  So for example you can get PCIe breakout boxes which will hold the AMC-to-PCI card, but we couldn't find one where the daughter cards can act as RC for the backplane.

    I'm happy to be pointed to a solution we missed, although it's all water under the bridge since we have custom boards to work on now.

  • Gordon, I am in the process of attempting almost the exact same thing.. I am trying to use the c6678 as RC and then interface to a TUSB7320 USB-> PCIe bridge.  I have been unsuccessful in finding a backplane that did not assume a PC as the RC, or master.  My current solutions seem to be limited to the Samtec PCIe -> SMA adapter and then using the SMA-AMC ULTRA 9000 to plug into that.  The one issue I am still trying to solve is providing the PCIe refclk.  The c6678 EVM does not provide this, did you use an external chip for clock generation?  Did you end up creating a custom board with the female sockets?  

  • Hi Gordon,

    we use the PEX 8616 development kit (RDK) from PLX to connect the C6678 EVM to a FPGA development board.

    The RDK can be configured to have the RC on a different PCIe port of the switch. The DSP also has to enumerate the PCIe bus to make routing through the switch work.

    Ralf

  • Hi Ralf, were you able to set the PEX RDK up as a bench top board, as in, no PC motherboard required?  I have the PEX 8606 RDK and it seems to need the power connection from the male PCIe edge connector in order to power up, as opposed to using the 12V and 3.3V from the IDE HD connector.  So I soldered up a PCIe female connector with 12V and 3.3V and GND, but I am still unable to get the c6678 to establish a link.  It does establish a link if I plug the PEX RDK into a motherboard inside a PC and then plug the c6678 into the RDK.  I am curious if you were able to use it without a PC?

  • Hi Scott,

    I used a PC motherboard to supply the RDK with power and a PCIe reference clock. Then, I used a PCIe breakout board which splits up the other x8 connector of the RDK to two x4 connectors, where I plugged my evalutation boards in.

    Maybe you also need to provide a reference clock to your board.

    Ralf

  • Thanks Ralf, I am using a motherboard at the moment and the PCIe link gets established (most of the time).  I am struggling with the enumeration procedure though... Did you find a guide or example or any information to assist you in developing the enumeration procedure?  If you can point me in the right direction, it would be appreciated.  Thanks!

    -Scott

  • Hi Scott,

    I used the following book to implement PCI enumeration:

    "PCI Express System Architecture"
    http://www.mindshare.com/shop/?c=b&section=0BA200B5

    Ralf

  • Hi Scott,

    I tried this week to connect the EVM C6678 card  (RC) with a FPGA PCIe card (EP). I use the same configuration with SMA-AMC ULTRA 9000

    and a PCIe -> SMA from Hitech global, i put SMA cables beetween these two cards (4 cables for TX and 4 cables for RX, each card have its own

    clock). The PCI-E link seems to be not established. We also put a PCIe analyser on the FPGA card and we saw message from Root Complex to

    the End Point but nothing between End Point to the Root Complex.

    Did you have an idea why it doesn't work?. For me, the PCIe external clock is not necessary if SSC is not used and if each clock have a low jitter.

    Best Regards

    Pascal