The controller attempts to correct errors in the correction state. The controller always passes through the correction state, even if correction is disabled. During the correction state, status_correction is TRUE.
If the error is a CRC-only error, the controller sets status_uncorrectable and generates a report on the Monitor Interface. It then transitions to the classification state. If the error is not a CRC-only error, then the behavior of the controller depends on how it has been configured to correct errors.
If the controller is configured for correction by replace, it generates a replacement data request on the Fetch Interface. In the system-level design example, the EXT shim translates this request into a read of the external memory. The return data is provided to the controller by the EXT shim. The controller then performs active partial reconfiguration to re-write the frame with the correct contents. The controller clears status_uncorrectable and generates a report on the Monitor Interface. It then transitions to the classification state.
If the controller is configured for correction by repair or correction by enhanced repair, it attempts to correct the error using algorithmic methods. If the error is correctable, the controller performs active partial reconfiguration to re-write the frame with the corrected contents and clears status_uncorrectable . Otherwise, the controller sets status_uncorrectable . In either case, the controller generates a report and then transitions to the classification state.