Forum Discussion

DNguy4's avatar
DNguy4
Icon for Occasional Contributor rankOccasional Contributor
7 years ago

Avalon-ST on Intel PCIe IP

Hi,

I am using the Avalon-ST interface in my FPGA for streaming application. Most of the time, I will be sending data from host to FPGA. Memory write appears to be the right command for this task. However, I can only write 32 or 64 bits per tlp depending on the data width of my BAR. This is very inefficient since 50% of the tlp is the header.

Is there a better way to do it?

Intel/PCIe recommend not to use IO read/write for new design.

Thanks in advance

4 Replies

  • DNguy4's avatar
    DNguy4
    Icon for Occasional Contributor rankOccasional Contributor

    I am using Arria10 10AS066H3F34I2SG and the IP is Intel Arria10/ Cyclone10 Hard IP for PCI Express with Avalon-ST interface.

  • AndyN's avatar
    AndyN
    Icon for Occasional Contributor rankOccasional Contributor

    Your problem is probably on the host software side. How are you commanding the write? Are you sure that it is actually trying to move more than 64 bits in one operation? The IP is definitely capable of receiving an awful lot more than that but it's quite easy (speaking from experience) to have the software-side PCIe driver not actually do what you expected...

  • DNguy4's avatar
    DNguy4
    Icon for Occasional Contributor rankOccasional Contributor

    I agree. It looks like the problem is on the host SW but we can't figure out yet.

    We are using Linux open source driver and application. Do you have any experience to share?

    Thanks