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.

XIO2001: Customization Required for Device Use

Part Number: XIO2001


I am looking to communicate to a PCI Target Device through using a PCIe IP Core running on an FPGA with very low latency.

This is a relatively custom application, My question is with regards how off-the-shelf of a solution this is. I am looking to be able to send a message such as "write data 0x1234 at address 0xABCD" or "read from address 0xAAAA" in packet form through PCIe, send that too this bridge, and then have that say "write data 0x1234 at address 0xABCD" or whatever the message was on the PCI side(following the PCI spec), and have this device be relatively plug-and-play.

The architecture I am looking into is Primary FPGA=>PCIe-to-PCI-Bridge=> Target PCI Device, in which the target PCI device will never be or attempt to be bus master.

Essentially, I am looking to maybe provide some configuration for XIO2001, the necessary interface circuitry, and have the rest of the support lie on the PCIe development on the primary FPGA side, and the target PCI device development, but nothing else really required for bridge.

Would the XIO2001 help me achieve this goal? Or will there be custom driver development required for the XIO2001?

  • The XIO2001 conforms to all the relevant PCI/PCIe specifications, so it is already supported and plug-and-play in all operating systems.

    If you do not have an OS, then you have to do the enumeration and configuration manually. This is no different from any other PCI bridge.

  • Hi Thank you! I will not have an OS as I am looking to low-level(within the FPGA soft core) send PCIe packets of information and receive it on a target PCI device. 

    So just to confirm, Bus enumeration is performed by attempting to read the Vendor and Device ID register, which would be specific to the endpoint? In which case, if I read the datasheet correctly that can also be accessed by writing these the data an external EEPROM? The more general question I am getting at here, is could all the enumeration and configuration be handled by the external EEPROM(The idea here is I could just provide an avenue to write the configuration space here, and then write-protect and bootup the system, and then have the XIO2001 working within my capabilities)?  

  • All PCI devices (including bridges) are disabled at power up. You have to configure at least their I/O and memory ranges; this cannot be done with an EEPROM.