This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CLA Pipleline conflict



I use the Piccolo 28035. On SPRUGE6B I didn't found any thing about delayed CLA code when the register is not ready (loaded). But on my experience the code1 is about 17ns (1 clock) slower then code2:

Code1:

    MMOVZ16    MR0, @_EPwm2Regs+ePWM_TZSEL                    ; MR0 = Trip Zone Select register 
    MMOVXI        MR1, #0FFBFh                                                              ; Mask for DCAEVT2
    MAND32       MR0, MR0, MR1                                                            ; Clear Bit
    MMOV16       @_EPwm2Regs+ePWM_TZSEL, MR0                   ; Write back

    MMOVZ16    MR0, @_EPwm3Regs+ePWM_TZSEL                    ; MR0 = Trip Zone Select register 
    MMOVXI        MR1, #0040h                                                                 ; Mask for DCAEVT2
    MOR32         MR0, MR0, MR1                                                            ; Set Bit
    MMOV16       @_EPwm3Regs+ePWM_TZSEL, MR0                   ; Write back

Code2:

    MMOVZ16    MR0, @_EPwm2Regs+ePWM_TZSEL                    ; MR0 = Trip Zone Select register 
    MMOVZ16    MR2, @_EPwm3Regs+ePWM_TZSEL                    ; MR2 = Trip Zone Select register 
    MMOVXI       MR1, #0FFBFh                                                               ; Mask for DCAEVT2
    MMOVXI       MR3, #0040h                                                                  ; Mask for DCAEVT2
    MAND32      MR0, MR0, MR1                                                             ; Clear Bit
    MOR32        MR2, MR2, MR3                                                             ; Set Bit
    MMOV16     @_EPwm2Regs+ePWM_TZSEL, MR0                     ; Write back
    MMOV16     @_EPwm3Regs+ePWM_TZSEL, MR2                     ; Write back