background image

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.