
234
MicroBlaze Processor Reference Guide
UG081 (v14.7)
Chapter 5:
MicroBlaze Instruction Set Architecture
Pseudocode
if MSR[UM] = 1 then
ESR[EC]
←
00111
else
x
←
rB[28:31]
if x >= C_FSL_LINKS then
x
←
0
(FSLx_M_DATA | Mx_AXIS_TDATA)
←
(rA)
if (n = 1) then
MSR[Carry]
←
(FSLx_M_FULL | Mx_AXIS_TVALID
∧
Mx_AXIS_TREADY)
(FSLx_M_CONTROL | Mx_AXIS_TLAST)
←
C
Registers Altered
•
MSR[Carry]
•
ESR[EC], in case a privileged instruction exception is generated
Latency
•
1 cycle with
C_AREA_OPTIMIZED=0
•
2 cycles with
C_AREA_OPTIMIZED=1
The blocking versions of this instruction will stall the pipeline of MicroBlaze until the instruction
can be completed. Interrupts are served unless the instruction is atomic, which ensures that the
instruction cannot be interrupted.
Note
The blocking versions of this instruction should not be placed in a delay slot, since this prevents
interrupts from being served.
These instructions are only available when the MicroBlaze parameter
C_FSL_LINKS
is greater
than 0 and the parameter
C_USE_EXTENDED_FSL_INSTR
is set to 1.
It is not recommended to allow these instructions in user mode, unless absolutely necessary for
performance reasons, since that removes all hardware protection preventing incorrect use of a link.