Table 31.3. Conditional Instructions
Instruction
Operation
Constraints
EXECIFA
Execute following instructions if in part A of sequence
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 iteration 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 31.4. Special Instructions
Instruction
Operation
END
Ends execution.
EXEC
When written to CRYPTO_SEQx register, automatically triggers execution of all instruction up to this point.
AESENC
DATA0 = AESENC(DATA0)
AESDEC
DATA0 = AESDEC(DATA0)
SHA
DDATA0 = SHA(Q1)
DATA1INC
DATA1 = inc(DATA1).
See
31.4.2.4 DATA1INC and DATA1INCCLR Instructions
DATA1INCCLR
DATA1 = clearinc(DATA1).
See
31.4.2.4 DATA1INC and DATA1INCCLR Instructions
31.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 with the other ALU instructions, RESULTWIDTH limits the width of the final result of the MULx and MMUL instructions.
31.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.
31.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
Reference Manual
CRYPTO - Crypto Accelerator
silabs.com
| Building a more connected world.
Rev. 1.1 | 1033