MicroBlaze Processor Reference Guide 271
UG984 (v2018.2) June 21, 2018 www.xilinx.com
Chapter 5: MicroBlaze Instruction Set Architecture
Pseudocode
if MSR[UM] = 1 then
ESR[EC] ← 00111
else
x
← FSLx
if x >= C_FSL_LINKS then
x
← 0
Mx_AXIS_TDATA ← (rA)
if (n = 1) then
MSR[Carry]
← Mx_AXIS_TVALID ∧ Mx_AXIS_TREADY
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 or 2
• 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 when the parameter
C_USE_EXTENDED_FSL_INSTR is set to 1, and the instruction is not atomic.
Notes
To refer to an FSLx interface in assembly language, use rfsl0, rfsl1, ... rfsl15.
The blocking versions of this instruction should not be placed in a delay slot when the parameter
C_USE_EXTENDED_FSL_INSTR is set to 1, since this prevents interrupts from being served.
These instructions are only available when the MicroBlaze parameter C_FSL_LINKS is greater than 0.
The extended instructions (test and atomic versions) are only available when the MicroBlaze
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.