Chapter 2. The processor
28
Table 2.8: The Shifter Unit ports
Name
Type
Size
Explanation
Rs1
input signal
64
Rs1 register data
Rs2
input signal
64
Rs2 register data
S
input signal
8
operation signals
Imm
input signal
13
Immediate value input
enable
input signal
1
enable signal
Rd
output signal
64
result output value
2.5.5
Predicate File, Sign Extension Unit and multiplexers
Stage 4 contains also a Sign extension unit which performs a sign, zero or one extension
to provide a 64bit output. The Predicate File is also in the fourth stage. Since the
predicate file is updated according to the compare instructions which are executed by
the ALU, this update is performed in the same cycle as the comparisons take place
eliminating any data hazard potentials that could arise from a reference to a predicate
signal not yet set properly. Stage 4 contains 3 data multiplexers and one predicate
multiplexer. The M5 and M6 data multiplexers drive the proper data to the processing
units. Since only one unit can be active at any time all the processing units receive
the same inputs. Multiplexers M7 and M8 drive the proper result form the processing
units to the next stage. The Predicate Multiplexer provides the predicate signal which
is attached to the specific instruction. This bit is driven to the next stages where the
data update takes place.
2.6
The fourth Pipeline
Stage four contains the access to data memory. The memory has only one port so in a
clock cycle either a read or a write is performed. It contains 1024 words with a word
size of 64 bits and it is always enabled. In order for the memory to write or update a
value the ”Write Enable(WE)” signal must be activated. This signal is the ”and” of the
control unit signal that activates the write in the memory and the predicate signal. If
the predicate signal is not 1 there will not be any update on the memory and therefore
the instruction is presumed as not executed. The memory is automatically produced by
the CORE Generator System provided by Xilinx in order to use the FPGA on board
memory. Its maximum frequency os 144MHz and it operates in the falling edge of the
clock cycle.