- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello community,
I originally posted a question there but my question is broader now I guess.
I use a Terasic HAN Pilot Plateform (Arria 10) for analog to digital (ADC) data acquisition project.
The daughter ADC card is generating a bunch of data, more precisely 256 bits at a rate of 250MHz.
I want to be able to store incoming data on a very large time window (millions of samples), that would represent for instance more than a few hundreds of MB. So I cannot use neither FIFO or On-chip RAM because an FPGA has its own limits. So I tried to write to a RAM accessible from FPGA side directly through EMIF but it appears I cannot write at 250 MHz because each write takes around 8 clock period at 250 MHz to be completed as you can see in the previous post.
My question is more general : is it possible to write high speed real time data to a RAM ? How to ? Should I use other IP's like DMA ? I know existance of F2SDRAM bridge but I never used it and couldn't find lot of information about it, is it more appropriate ?
Thanks in advance !
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Are you trying to connect with DDR4 memory on the board through HPS?
If yes, which DDR4 memory interface that you want to access it?
Regards,
Adzim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, thank you for your reply,
I am trying to connect with DDR4 which is on the board through FPGA for writing into it, and through HPS for reading from user application what was wrote.
To access the DDR4, I use the EMIF IP configurated with dedicated parameters from the board so I can write through EMIF amm interface to the DDR4 with FPGA logic, and read through EMIF with HPS side application.
Does this makes sense ? The thing is that it worked when I used to send write commands at around 30 MHz, now that I need to write at 250 MHz, which is close to the 266MHz reference clock of EMIF IP, I'm afraid this is too fast because I can see that EMIF is not ready at a rate of 250 MHz.
Best regards,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
If the reference clock is 266MHz, then the memory clock is 1067MHz.
It's possible to write at 250MHz.
You need to start write operation when the memory is ready.
I think you can refer to Avalon Interface Spec document about how the transfer is done.
I think you're trying to write constantly at 250MHz meaning every 4 ns, the write is done.
But because the memory is not yet ready to accept that write operation, the transfer is not completed.
The memory might be busy with previous transaction in this case.
You can try to write in burst transfer as it help in improve the efficiency.
Regards,
Adzim

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page