Xilinx MicroBlaze Reference Manual page 211

32-bit soft processor
Hide thumbs Also See for MicroBlaze:
Table of Contents

Advertisement

fdiv
Floating Point Arithmetic Division
fdiv
rD, rA, rB
0 1 0 1 1 0
0
6
Description
The floating point value in rB is divided by the floating point value in rA and the result is placed into
register rD.
Pseudocode
if isDnz(rA) or isDnz(rB) then
(rD)
0xFFC00000
FSR[DO]
ESR[EC]
else
if isSigNaN(rA) or isSigNaN(rB) or (isZero(rA) and isZero(rB)) or
(isInfinite(rA) and isInfinite(rB)) then
(rD)
FSR[IO]
ESR[EC]
else if isQuietNaN(rA) or isQuietNaN(rB) then
(rD)
else if isZero(rA) and not isInfinite(rB) then
(rD)
FSR[DZ]
ESR[EC]
else if isDnz((rB) / (rA)) then
(rD)
FSR[UF]
ESR[EC]
else if isNaN((rB)/(rA)) then
(rD)
FSR[OF]
ESR[EC]
else
(rD)
Registers Altered
rD, unless an FP exception is generated, in which case the register is unchanged
ESR[EC], if an FP exception is generated
FSR[IO,UF,OF,DO,DZ]
Latency
28 cycles with
Note
This instruction is only available when the MicroBlaze parameter C_USE_FPU is greater than 0.
MicroBlaze Processor Reference Guide
UG984 (v2016.2) June 8, 2016
UG984 (v2016.1) April 6, 2016
Divide
rD
rA
11
1
00110
0xFFC00000
← 1
00110
0xFFC00000
signInfinite((rB)/(rA))
1
00110
signZero((rB) / (rA))
1
00110
signInfinite((rB) / (rA))
1
00110
(rB) / (rA)
=0, 30 cycles with
C_AREA_OPTIMIZED
www.xilinx.com
Chapter 5: MicroBlaze Instruction Set Architecture
rB
0 0 1 1 0 0 0 0 0 0 0
16
21
C_AREA_OPTIMIZED
31
=1
211
Send Feedback

Advertisement

Table of Contents
loading

Table of Contents