background image

List of Figures

1.1

Embedded Systems market share

. . . . . . . . . . . . . . . . . . . . . . .

2

1.2

The double precision floating point format

. . . . . . . . . . . . . . . . . . 11

2.1

Addition between the whole 64bit words

. . . . . . . . . . . . . . . . . . . 16

2.2

Addition between the two 32bit words

. . . . . . . . . . . . . . . . . . . . 17

2.3

Addition between the four 16bit

. . . . . . . . . . . . . . . . . . . . . . . . 17

2.4

Addition between the 8 8bit words

. . . . . . . . . . . . . . . . . . . . . . 17

2.5

PC simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.6

Register File Simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.7

ALU simulating an addi operation

. . . . . . . . . . . . . . . . . . . . . . 24

2.8

Carry out drive between two 64 bit numbers

. . . . . . . . . . . . . . . . . 25

2.9

Carry out drive between four 32 bit numbers

. . . . . . . . . . . . . . . . 25

2.10 Multiplier Simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.11 Odd indexed multiplication

. . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.12 Even indexed multiplication

. . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.13 Mix Unit Simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.14 Shifter Unit Simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.15 The ”jump” instruction decoding

. . . . . . . . . . . . . . . . . . . . . . . 30

3.1

The .bat program

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.2

The random vector generator

. . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3

The two conversion functions

. . . . . . . . . . . . . . . . . . . . . . . . . 41

3.4

The FPU multiplier simulation

. . . . . . . . . . . . . . . . . . . . . . . . 43

3.5

The FPU divider simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.6

The Divisor module

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1

Stage 2 of the pipeline

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2

Stage 2 of the pipeline

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.3

Mirror RTL schematic for data propagation

. . . . . . . . . . . . . . . . . 52

4.4

Mirror RTL simulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.5

The ”and” machine code

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.6

The processor initialization process

. . . . . . . . . . . . . . . . . . . . . . 53

4.7

The execution completion stage

. . . . . . . . . . . . . . . . . . . . . . . . 54

4.8

The register file values

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.1

FPGA block array.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.2

The basic block of a Xilinx XC4000 FPGA

. . . . . . . . . . . . . . . . . 60

5.3

The Virtex 6 FPGA board

. . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.4

Block memory generator

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

viii