The formula in An65974 application note says:
When writing from an external master to the synchronous Slave FIFO: (a) The number of data words that may be written after the clock edge at which the partial flag is sampled low = watermark x (32/bus width) – 4
So, no. of words after FLag B low = 4 * 32/32 - 4 = 0
This means in your case, after Flag B has reached low, you can no longer write any more data. This means in your case, the Flag B becomes low only after 1024th byte is written. (In your case size of each buffer is 1024 as you mentioned)
So after 1019, you can still write 5 more bytes (ofcourse you can wait in between if you do not have Data)/.. Only after that the flag B samples low.
- Madhu Sudhan
Thanks for your reply.
But I think you don't catch my question.
I put the waveform here.
The configuration of waveform is: DMA buffer size if 16384,and watermark is 4.
FLAGA is Thread_0_DMA_Ready, FLAGB is Thread_0_DMA_Watermark
So I think for random write access, if watermark is actived, we can only use single write and delay 4 cycles to check FLAGA.
slfifo_flag.png 12.3 K
DO you understand the watermark? I don't understand, could you tell me?