R

Chapter 4: MicroBlaze Instruction Set Architecture

get

get from fsl interface

 

get

rD, FSLx

get data from FSL x (blocking)

nget

rD, FSLx

get data from FSL x (non-blocking)

cget

rD, FSLx

get control from FSL x (blocking)

ncget

rD, FSLx

get control from FSL x (non-blocking)

0 1 1 0 1 1

rD

0 0 0 0 0

0 n c 0 0 0 0 0 0 0 0 0 0

FSLx

0

6

11

16

29

31

Description

MicroBlaze will read from the FSLx interface and place the result in register rD.

The get instruction has four variants.

The blocking versions (when ‘n’ bit is ‘0’) will stall microblaze until the data from the FSL interface is valid. The non-blocking versions will not stall microblaze and will set carry to ‘0’ if the data was valid and to ‘1’ if the data was invalid. In case of an invalid access the destination register contents is undefined.

The get and nget instructions expect the control bit from the FSL interface to be ‘0’. If this is not the case, the instruction will set MSR[FSL_Error] to ‘1’. The cget and ncget instructions expect the control bit from the FSL interface to be ‘1’. If this is not the case, the instruction will set MSR[FSL_Error] to ‘1’.

Pseudocode

(rD) FSLx

if (n = 1) then

MSR[Carry] not (FSLx Exists bit) if (FSLx Control bit c) then

MSR[FSL_Error] 1

Registers Altered

rD

MSR[FSL_Error]

MSR[Carry]

Latency

2 cycles. For blocking instructions, MicroBlaze will first stall until valid data is available.

Note

For nget and ncget, a rsubc instruction can be used for counting down a index variable

106

www.xilinx.com

MicroBlaze Processor Reference Guide

 

1-800-255-7778

UG081 (v6.0) June 1, 2006

Page 106
Image 106
Xilinx EDK 8.2i manual Get from fsl interface, Nget, Cget, Ncget