We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 37319

12.1 EDK, MicroBlaze FSL - How do I read the status of the FSL before a read/write?


Is there a way to read the status of the FSL FIFO (Full/Exist) first before issuing read/write to avoid MicroBlaze processor being blocked in the call?


There is no register in the FSL FIFO that the MicroBlaze processor can read to determine the status. To avoid blockage, the non-blocking version of the FSL get/put call can be used. Read the MSR[carry] bit to verify if the data was valid or not.

Valid and error status can be checked by these macros:

For more info about FSL macros, please refer to oslib_rm.pdf.

In addition, the FSL bus portsFSL_Full,FSL_Has_Data andFSL_Control_IRQ can be configured as interrupt source for interrupt controller so that MicroBlaze can be notified the status of FSL bus..
AR# 37319
Date Created 09/10/2010
Last Updated 12/15/2012
Status Active
Type General Article
  • EDK - 10.1 sp2
  • EDK - 10.1
  • EDK - 10.1 sp1
  • More
  • EDK - 10.1 sp3
  • EDK - 11.1
  • EDK - 11.2
  • EDK - 11.3
  • EDK - 11.4
  • EDK - 11.5
  • EDK - 12.1
  • EDK - 12.2
  • EDK - 12.3
  • EDK - 13.1
  • Less
  • FSL v20
  • Microblaze