Microblaze hangs at FSL read when queue limit is reached
I have a simple question about the FSL bus and Mictoblaze. Does Microblaze wait for the FSL bus to get full or empty in order to perform a read operation? For the past month I have been working on the implementaiton of an image processing system which consits of a custom image processing core which sents and recieves data from Microblaze via the FSL. For verification purposes I write the row and column of the pixel that my core currently processes (this happens roughly every 100 cycles) to the FSL bus which is then read by Microblaze, the length of the FSL is 32. However, when I read back with Microblaze using either blocking or non-blocking semantics I get only the first 32 rows and columns and then the software hangs on the FSL read instruction. When I tried to increase the FSL size to 64, the software hanged after the first 64 rows and columns. So it seems that the FSL stacks at full and no writes can be performed by my custom core. However, my core operates at 50MHz and Microblaze at 125 MHz so I assume that Microblaze would be able to read some data after the FSL is full so that my core can begin writing data again.
Prior to this I write an image to my core, read it back and display it on screen. This happens without any problem.
If anyone can provide any feedback particularly on the behavior of the FSL bus and Microblaze I would greatly appreciate it.