Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I am using Slave Fifo interface with 2 bit address.
It is written in many threads that when writing to the Fifo I have to monitor the ThreadReady and Watermark flags not to loose any data. I use only ThreadReady and I can not generate the condition where data is lost. I tried with burst lengths changing from 2 to 32 but stil all data is transferred correctly. I also tried slowing down the reading process in my PC program but the result is same. The flag is getting low always 4 clocks after SLRD# goes high. Did I misunderstand something or did you implement a security logic in the latest SDK.
I have 4 Fifos. 2 for reading and 2 for writing. There are 4 ThreadReady flags each of them are connected to one fifo.
When I write to the fifos using SLWR# I monitor one of the ThreadReady flags. My logic is simple: If flag is low don't transfer else transfer using fixed burst lengths. As far as I understand since the flag signal has a delay of 3 clocks I must loose data, but this never happens. If the fifo gets full the flag signal gets low 4 clock after SLWR# gets high.
Note: In my previous post I wrote SLRD# instead of SLWR#.