CLA Assembly Parallel Instructions
Parallel bars indicate a parallel instruction
Parallel instructions operate as a single instruction with
a single opcode and performs two operations
Example: Add + Parallel Store
MADDF32 MR3, MR3, MR1
|| MMOV32 @_Var, MR3
Instruction Example Cycles
Multiply
& Parallel Add/Subtract
MMPYF32 MRa,MRb,MRc
|| MSUBF32 MRd,MRe,MRf
1
Multiply, Add, Subtract
& Parallel Store
MADDF32 MRa,MRb,MRc
|| MMOV32 mem32,MRe
1
Multiply, Add, Subtract, MAC
& Parallel Load
MADDF32 MRa,MRb,MRc
|| MMOV32 MRe, mem32
1
Both operations complete in a single cycle
CLA Assembly Addressing Modes
Two addressing modes: Direct and Indirect
Both modes can access the low 64Kw of memory only:
All of the CLA data space
Both message RAMs
Shared peripheral registers
Direct –
Populates opcode field with 16-bit address of the variable
example 1: MMOV32 MR1, @_VarA
example 2: MMOV32 MR1, @_EPwm1Regs.CMPA.all
Indirect –
Uses the address in MAR0 or MAR1 to access memory;
after the read or write MAR0/MAR1 is incremented by a
16 bit signed value
example 1: MMOV32 MR0, *MAR0[2]++
example 2: MMOV32 MR1, *MAR1[-2]++