The fault tolerance features included in MicroBlaze,
enabled with C_FAULT_TOLERANT
, provide Error Detection for internal
block RAMs (in the Instruction Cache, Data Cache, Branch Target Cache, and MMU), 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 two documents Soft Error Mitigation Controller LogiCORE IP Product Guide (PG036) and UltraScale Architecture Soft Error Mitigation Controller LogiCORE IP Product Guide (PG187).
To further increase fault tolerance, a complete triple modular redundancy (TMR) solution is provided for MicroBlaze, using additional cores to handle majority voting and fault detection. See the Triple Modular Redundancy (TMR) LogiCORE IP Product Guide (PG268) for a complete description and implementation details.