
GR716-DS-UM, May 2019, Version 1.29
121
www.cobham.com/gaisler
GR716
Figure 10 shows a block diagram of the integer unit.
16.2.2 Instruction pipeline
The LEON3 integer unit uses a single instruction issue pipeline with 7 stages:
1.
FE (Instruction Fetch): The instruction is fetched from the local instruction memory or external memory located on
the AMBA bus. The instruction is valid at the end of this stage and is latched inside the IU.
2.
DE (Decode): The instruction is decoded and the CALL and Branch target addresses are generated.
3.
RA (Register access): Operands are read from the register file or from internal data bypasses.
4.
EX (Execute): ALU, logical, and shift operations are performed. For memory operations (e.g., LD) and for JMPL/
RETT, the address is generated.
5.
ME (Memory): Data memory is read or written at this time.
6.
XC (Exception) Traps and interrupts are resolved. For internal memory reads, the data is aligned as appropriate.
7.
WR (Write): The result of any ALU, logical, shift, or internal memory operations are written back to the register file.
Figure 10.
LEON3 integer unit datapath diagram
alu/shift
mul/div
y
register file
D-Memory
address/dataout
datain
32
32
e_op2
e_op1
imm
Y
wres
result
m_y
Decode
Execute
Memory
Write-back
rs2
rs1
rd
tbr, wim, psr
30
jmpl address
e pc
30
+1
d_pc
jmpa
f_pc
Add
call/branch address
tbr
‘0’
e_pc
m_pc
w_pc
d_inst
e_inst
m_inst
w_inst
Fetch
I-Memory
address
data
Register Access
x_y
xres
Exception
x_pc
x_inst
r_pc
r_inst
y, tbr, wim, psr
r_imm