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# 29784

9.2i EDK - In MicroBlaze v7.00.a, erroneous exceptions following an interrupt can occur


When an interrupt is being handled by MicroBlaze, any subsequent instructions already fetched should be ignored and just pass through the processor pipeline without any effect. However, an exception occurring for any of these instructions is not ignored, erroneously causing it to be handled instead of the interrupt. The only affected exceptions are illegal opcode, instruction bus error, and instruction memory management exceptions.

A situation when this can occur is when the fetched instructions are illegal (which can be the case if prefetching past the last instruction in the code section), the interrupt occurs for the last instruction in the code section, and illegal opcode exceptions are enabled.

The problem is more likely to occur in systems where exceptions are more frequent; for example, Linux systems with the MMU enabled.


A patch is available at:


1 - Go into the $Xilinx_EDK\hw\XilinxProcessorIPLib\pcores directory

2 - Rename the microblaze_v7_00_a directory to microblaze_v7_00_a_old

3 - Unzip the file into the $Xilinx_EDK directory

This problem will be resolved in MicroBlaze version 7.00.b.

This problem has been fixed in the latest EDK 9.2i Service Pack, available at:

The first service pack containing the fix is EDK 9.2i Service Pack 2.

AR# 29784
Date 12/15/2012
Status Active
Type General Article