SPRADT6 July   2026 AWR2944 , AWR2944P

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction to AWR294x and Safety Modules
  5. 2In-Depth Guide to AWR294x Safety Diagnostic Library
    1. 2.1  DPL Data Porting Layer
    2. 2.2  CCM Core Compare Module
    3. 2.3  DCC Dual Clock Comparator
    4. 2.4  ECC Error Correction Code
    5. 2.5  ECC Bus Safety
    6. 2.6  HWA Hardware Accelerator Safety
    7. 2.7  MCRC Cyclic Redundancy Check
    8. 2.8  Parity
    9. 2.9  PBIST Programmable Built-In Self-Test
    10. 2.10 Reset Management
    11. 2.11 ROM Checksum
    12. 2.12 RTI Real-Time Windowed Watchdog
    13. 2.13 STC Self-Test Controller
  6. 3Summary
  7. 4Glossary
  8. 5References

CCM Core Compare Module

The CCM (Core Compare Module) implements the CPU lockstep mechanism. In the AWR2944, two R5F cores can be configured in lockstep mode, where the CCM compares the outputs (instructions, addresses, data) of both cores at every clock cycle, determining a CPU hardware fault when a discrepancy is detected. The CCM supports two categories of monitoring:

  • Output Compare Block monitoring (SDL_CCM_MONITOR_TYPE_OUTPUT_COMPARE_BLOCK), comparing the instruction-level execution outputs of the master and slave cores;
  • VIM Compare monitoring (SDL_CCM_MONITOR_TYPE_VIM). The lockstep mode makes CPU1 run as the diagnostic mirror of CPU0, with both executing the same interrupt handling. Interrupt signals are simultaneously sent to CPU0 and to CPU1 through a delay circuit, and their respective outputs are sent to the CCMR5 module via a dedicated bus for comparison. The output of CPU0 is also delayed to align timing. The CCMR5 compares the two signal paths, and if a mismatch occurs, it generates an MSS_CCMR5_ERR error interrupt, thereby detecting hardware faults in the CPU cores, with the error reported through the ESM module.

The low-level mechanism of this module is described in reference [1]: the lockstep comparator continuously monitors the CPU instruction and data buses, triggering an ESM safety response immediately upon detecting any deviation.

The CCM functional test (sdl_ccm_example) contains three sub-items:

  1. Normal self-test: SDL_CCM_selfTest() verifies the basic functionality of the output compare block.
  2. Error-forcing self-test: Calling SDL_CCM_selfTest() with the SDL_CCM_SELFTEST_TYPE_ERROR_FORCING mode to force error injection and verify the detection path.
  3. Error injection: SDL_CCM_injectError() injects comparison errors to verify the ESM interrupt response and clearing workflow.

The VIM test (sdl_ccm_vim) targets comparison errors in the VIM path with a similar workflow.

Table 2-2 CCM Module Function Descriptions
Key Function Functions
SDL_CCM_init Initializes the CCM module
SDL_CCM_verifyConfig Verifies the CCM configuration
SDL_CCM_selfTest Executes self-test (normal/error-forcing modes)
SDL_CCM_injectError Injects a CCM error
SDL_CCM_getErrorType Gets the error type
SDL_CCM_clearError Clears the CCM error