Instruction
Operation
Constraints
EXECIFB
Execute following instructions if in part B of
sequence
EXECIFNLAST
Execute following instructions if not in last
iteration of sequence
EXECIFLAST
Execute following instructions if in last itera-
tion of sequence
EXECIFCARRY
Execute following instructions if carry bit is
set
EXECIFNCARRY
Execute following instructions if carry bit
not is set
EXECALWAYS
Always execute following instructions
Table 25.4. Special Instructions
Instruction
Operation
Constraints
END
Ends execution.
EXEC
When written to CRYPTO_SEQx register,
automatically triggers execution of all in-
struction up to this point.
AESENC
DATA0 = AESENC(DATA0)
AESDEC
DATA0 = AESDEC(DATA0)
SHA
DDATA0 = SHA(Q1)
DATA1INC
DATA1 = inc(DATA1)See
TA1INC and DATA1INCCLR instructions
DATA1INCCLR
DATA1 = clearinc(DATA1)See
TA1INC and DATA1INCCLR instructions
25.4.2.3 MULx details
For the MULx instructions (not MMUL), MULWIDTH in CRYPTO_WAC specifies the width of operands DDATA1 (and sometimes V1).
This is useful in order to optimize performance because multiplications take the same number of cycles as the bits in the operands plus
a couple of cycles for setup.
As for the other ALU instructions, RESULTWIDTH limits the width of the final result of the MULx and MMUL instructions.
25.4.2.4 DATA1INC and DATA1INCCLR instructions
DATA1INC and DATA1INCCLR operate on the 1, 2, 3 or 4 most significant bytes in DATA1, depending on INCWIDTH in CRYP-
TO_CTRL. DATA1INC increments these bytes in big endian, while DATA1INCCLR clears the bytes.
25.4.2.5 BBSWAP128 instruction
The BBSWAP128 instruction copies the contents of the V0 operand to DDATA0 while swapping the bits of the lower 16 bytes. The
operand is not changed. This operation is required for GCM. See
EFM32JG1 Reference Manual
CRYPTO - Crypto Accelerator
silabs.com
| Smart. Connected. Energy-friendly.
Preliminary Rev. 0.6 | 825