You are on page 1of 10

ELE654 ADDCA MINI PROJECT: (SEPT 2016)

DESIGN OF 32 BIT SINGLE CYCLE ARM MICROPROCESOR


1. PHASE 1: Design a single cycle ARM microprocessor that can support the
instructions below:(Will be considered as Lab 4)
a. Data-processing instructions:
ADD, SUB, AND, ORR
-with register and immediate Src2, but no shifts
b. Memory instructions:
LDR, STR
-with positive immediate offset
c. Branch instructions:
B
2. PHASE 2: Add more instructions and modifications to the ARM single cycle
above based on the requirements below:(Choose 5 out of 8 instructions)
a. Data-processing instructions:
i. ADC
ii. EOR
iv.BIC
v. RSB
vi. TST
vii.LSL
viii.LSR
3. Rewrite the Assembly code in order to add and test the new instructions. Change
the assembly to machine codes (binary and hex).Rewrite the file as memfile.dat

-Add the new insructions in above


4. Simulate the microprocessor with the testbench and new memfile.dat
1 2014 David Money Harris and Sarah L. Harris

REPORT FORMAT EXAMPLE


TITLE
OBJECTIVE
LITERATURE REVIEW
i.Theory on ARM microprocessor
ii.Explain the theory and function of all modules inside the ARM microprocessor
(cpu,main dec,aludec,condlogic mux etc)
Add more related literatures
Use IEEE format for citations
METHODOLOGY
i. Explain the design process for single cycle ARM microprocessor. Draw the block
diagram and connections.
2 2014 David Money Harris and Sarah L. Harris

ii.Show the changes made for each instructions: (redraw the circuits to show
changes for each instructions)
-controller and datapath circuits
-decoder and conditional logic circuits
-Main decoder circuit and Table
-ALU circuit, ALU decoder circuit and Table
-PC logic
-newly added components
iii. Show the changes made for each instructions by rewriting the System Verilog
and write new one for the new components
Add more design processes and flow charts if needed.

RESULTS AND DISCUSSIONS


i.Raw data from different simulations to be tabulated in tables
ii.Show all of the synthesized modules in the ARM microprocessor (top
module,controller,datapath..etc).Expain.
iii.Explain the results explicitly and relate to the theories.
iv.Simulation:
a. An image of imem data from the waveform simulation that confirmed the
instructions above have been correctly stored in imem.
b. An image of the simulation waveforms showing correct operation of the
processor to store data in dmem. Does it write the correct values to the
addresses?
c. The simulation waveforms should give the signal values in hexadecimal
format and should be in the following order: clk, reset, PC, Instr,
ALUResult, WriteData, MemWrite, and ReadData. While you may
print more signals during debug, do not display any other signals in the
waveform you submit. Check that the waveforms are zoomed out enough
that the grader can read your bus values. Unreadable waveforms will
receive no credit. Use several pages and multiple images as necessary.
3 2014 David Money Harris and Sarah L. Harris

v.Block diagram and gate netlist pictures.Explain.


Add more related results, graph and diagrams.
CONCLUSION
REFERENCE
Use IEEE format
APPENDIX
Source code (New System Verilog codes and testbenches) and memfile.dat
Waveforms/Diagrams/Block Diagrams that dont fit in the above section

4 2014 David Money Harris and Sarah L. Harris

5 2014 David Money Harris and Sarah L. Harris

Figure 2. Single-cycle ARM processor

Figure 3. ARM ALU


Table 2. Extended functionality: Main Decoder
ALUOp

Branch

MemW

RegW

MemtoR
eg

ALUSrc

ImmSrc

RegSrc

Type

Funct0

Funct5

Op
00

DP
Reg

00

XX

00

DP
Imm

X0

00

01

STR

10

01

01

LDR

X0

01

10

X1

10

assign {RegSrc, ImmSrc, ALUSrc, MemtoReg, RegW, MemW, Branch, ALUOp} = controls;

Table 3. Extended functionality: ALU Decoder


ALUO
p

Funct4:1
(cmd)

Funct0
(S)

Notes

ALUControl

FlagW1:

1:0

Not DP

00

00

0100

ADD

00

00

1
0010

11
SUB

01

1
0000

11
AND

10

1
1100

0
1

00

00
10

ORR

11

00
10

Cycle

rese
t

P
C

00

04

08

Instr
SUB R0,
R15, R15
E04F000F
ADD R2,
R0, #5
E2802005
ADD R3,
R0, #12
E280300C

SrcA

Src
B

Branc
h

AluResul
t

Flags3:0
[NZCV
]

CondE
x

WriteDat
a

MemWrit
e

ReadData

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Table 1. First nineteen cycles of executing armtest.asm (all in hexadecimal, except


Flags3:0 in binary).ADD MORE NEW INSTRUCTIONS TO TEST THE NEW
ARCHITECTURE