MicroBlaze Processor Reference Guide
85
UG081 (v14.7)
Fault Tolerance
Fault Tolerance
The fault tolerance features included in MicroBlaze, enabled with
C_FAULT_TOLERANT
, provide
Error Detection for internal block RAMs, and support for Error Detection and Correction (ECC) in
LMB block RAMs. When fault tolerance is enabled, all soft errors in block RAMs are detected and
corrected, which significantly reduces overall failure intensity.
In addition to protecting block RAM, the FPGA configuration memory also generally needs to be
protected. A detailed explanation of this topic, and further references, can be found in the document
SEU Strategies for Virtex-5 Devices (XAPP864)
.
Configuration
Using MicroBlaze Configuration
Fault tolerance can be enabled in the MicroBlaze configuration dialog, on the General page.
After enabling fault tolerance in MicroBlaze, ECC is automatically enabled in the connected LMB
BRAM Interface Controllers by the tools, when the system is generated. This means that nothing
else needs to be configured to enable fault tolerance and minimal ECC support.
It is possible (albeit not recommended) to manually override ECC support, leaving the LMB BRAM
unprotected, by disabling
C_ECC
in the configuration dialogs of all connected LMB BRAM
Interface Controllers. In this case, the internal MicroBlaze block RAM protection is still enabled,
since fault tolerance is enabled.
Using LMB BRAM Interface Controller Configuration
As an alternative to the method described above, it is also possible to enable ECC in the
configuration dialogs of all connected LMB BRAM Interface Controllers. In this case, fault
tolerance is automatically enabled in MicroBlaze by the tools, when the system is generated. This
means that nothing else needs to be configured to enable ECC support and MicroBlaze fault
tolerance.
ECC must either be enabled or disabled in all Controllers, which is enforced by a DRC.
It is possible to manually override fault tolerance support in MicroBlaze, by explicitly disabling
C_FAULT_TOLERANT
in the MicroBlaze configuration dialog. This is not recommended, unless
no block RAM is used in MicroBlaze, and there is no need to handle bus exceptions from
uncorrectable ECC errors.
Features
An overview of all MicroBlaze fault tolerance features is given here. Further details on each feature
can be found in the following sections:
•
•
•
•
•
•
•