Forum Discussion

rled64's avatar
rled64
Icon for Occasional Contributor rankOccasional Contributor
2 years ago

EMIF writing to DDR through AVMM speed issue

Hello,

I am using Arria 10 device based plateform (HAN Pilot - Terasic) and I want to write data to an FPGA side DDR4 with EMIF.I control this EMIF with avalon memory mapped interface (avmm) but I believe that I reached its maximum throughput and this is slowing me down for writing 256b of data at a rate of 250 MHz. When I issue a write command, I have to wait for the "amm_waitrequest" (also called ~amm_ready) signal from the EMIF to be released which takes a while. Here is a signaltap diagram showing the waitrequest and write signals, compared with the above data updating much faster. Since the waitrequest is too long, the amm_writedata[256] is updated at a much slower rate :

Since the waitrequest is the issue there, I suppose the whole AVMM interface is the issue. Is there any way to speed up the interface, or should I rather use another interface, like DMA ?

Thanks

6 Replies

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    Are you using Platform Designer? Are there any other components connected in a system design that could be causing waitrequest to remain high longer than expected?

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

    Yes I am, the EMIF is accessed both from a customized IP (called Capture) that writes data through AVMM, and from the HPS through an AVMM bridge. Normaly the HPS doesn't issue any read during the write operation from Capture but I can check this indeed.
    Do you think the high state of waitrequest is abnormally long compared to a nominal behavior ? Here it is 8 times slower than the 250 MHz desired writing frequency.

    Here is a capture of the platform designer with the customized ip Capture and the avmm bridge :

    • sstrell's avatar
      sstrell
      Icon for Super Contributor rankSuper Contributor

      This is why you usually want to use dedicated memory for the HPS instead of going through the H2F bridge if possible. Is there a reason why you are going through an additional pipeline bridge for the HPS to access the memory?

      As to the length of the waitrequest, you would need to look at what's happening with the pipeline bridge accessing the RAM.

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

        I'm afraid I lack of knowledge there. My goal is that I want to be able to read data incoming from an ADC on a very wide time window, which for instance would be 1 GB of data generated. I cannot use FIFO or onchip RAM because it's not its purpose on sizes this big, so I'm writing these data to a RAM.
        So the FPGA side should be able to write this data to RAM in real time, I mean faster than the generated data rate. And the HPS side should be able to read it after this was written, it can be delayed, and at it's own speed it's not a matter.
        Is there another solution there instead of using an FPGA side RAM which obligates me to access it through H2F from HPS ?
        I would like to write on a dedicated HPS RAM memory but I guess I was just afraid of timing issues. if the FPGA can access it in real time then I should go for it.

  • AdzimZM_Altera's avatar
    AdzimZM_Altera
    Icon for Regular Contributor rankRegular Contributor

    Hi,


    We sincerely apologize for the inconvenience caused by the delay in addressing your Forum queries. Due to an unexpected back-end issue in our system, your Forum case, did not reach us as intended. As a result, we have a backlog of cases that we are currently working through.


    Please be assured that we are doing everything we can to resolve this as quickly as possible. This will take some time, and we appreciate your patience and understanding during this period of time. Thank you again for your patience and understanding, and we are committed to provide you with the best possible support.


    Does this issue still exist at your end?


    Regards,

    Adzim