Adding CRC to BIST improves SoC safety & reliability

Built-in self-test (BIST) is an effective way of enhancing the safety of automotive SoCs. The end result of such tests can communicate any abnormality in functioning of any part of the chip, ensuring proper safety of the SoC features. With the number of components on an SoC growing, managing the execution and collecting the status for a large number of BISTs becomes a tedious task for SoCs. A programmable control unit becomes necessary on the SoC to sequence the execution of the BISTs (with user configurability) and collect end status of such an execution.

This BIST control module, being very closely tied with checking the integrity of all the logic and memories, is a safety critical component of the SoC. Any feature built around this module to check its correct functioning can help in making the system more reliable. CRC (Cyclic Redundancy Check) is such a feature that can be built around this safety engine. It helps in improving the intrinsic coverage of the module, guaranteeing its correctness. This paper will mainly discuss how having CRC within the self-test control unit helps in increasing the overall safety, as well as the considerations to be taken while designing such a system.

Before we get into implementation details of the CRC feature in the self-test controller, let us get a brief understanding of the BIST control unit and the CRC feature.