Design a simple microprocessor called Custom-ARM which is a simple 16-bit single-cycle processor that implements a custom instruction set. The processor should consist of the following four main...


Design a simple microprocessor called Custom-ARM which is a simple 16-bit single-cycle
processor that implements a custom instruction set.


The processor should consist of the following four main components:
- A register file
- An Arithmetic and Logic Unit (ALU)
- A read-only instruction memory (IMEM)
- A read/write data memory (DMEM)


This processor has 8 registers (R0-R7) and the program code is stored as 22-bit instructions in the IMEM. The processor implements three types of instructions, an instruction format example for 22-bit instructions is shown at Table 1. Some instruction examples are shown at Table 2.


A-) Design the instruction format for your 22-bit instructions for each type of instruction shown in Table 1. Different types of instructions with various parameter types (register and immediate) should be supported in your designs.


- Design four types of data processing instructions that are such as EOR, RSB, ADC, SBC, RSC, TST, TEQ, CMN, BIC, MVN, ...
- Design two types of memory instructions, one load and one store operation.
- Design two types of branch instructions, one B and one BL operation.
- See ARM-REFERENCE for more information about the instructions.



B-) Design your own ALU to support the instructions in your microprocessor more efficiently. You should add the four new data processing operations designed at step (a) to the ALU which implements ADD, SUB, AND and ORR operations. You can draw only the new additions/changes to the ALU


C-) Design and draw the datapath of the Custom-ARM processor by introducing connections to the components listed below. Show necessary control signals from the Control Unit.




Data Path Components:
Program Counter: One 16-bit register
Register File: 8 registers that hold 16-bit
Instruction Memory: 16-bit address input, and outputs 22-bit
Data Memory: 16-bit read/write memory
ALU: Performs arithmetic and logical operations



D-) Design the control unit of the Custom-ARM processor. The Control Unit generates necessary signals to the datapath. Show boolean functions for each signal at Main Decoder and ALU Decoder tables of the control unit. Check single-cycle ARM processor design in the lecture slides to design the signals such as MemToReg, MemWrite, RegWrite, ALUSrc, Branch …


TABLE-1: An Instruction Format Example<br>21:9 8:6 5:3<br>2:0<br>Туре<br>D (Data Processing) Opcode rd<br>ra<br>rb<br>M (Memory)<br>Opcode rd<br>000<br>rb<br>B (Branch)<br>Орсode<br>imm9<br>

Extracted text: TABLE-1: An Instruction Format Example 21:9 8:6 5:3 2:0 Туре D (Data Processing) Opcode rd ra rb M (Memory) Opcode rd 000 rb B (Branch) Орсode imm9
TABLE-2: Ege-ARM Instruction Examples<br>Instruction<br>Туре<br>Орсode/<br>Operation<br>Function<br>ADD rd,ra,rb<br>Data Processing<br>Memory<br>0001<br>rd = rd+rb<br>LDR rd, [rb]<br>0010<br>rd = DataMemory[rb]<br>B #imm9<br>Branch<br>0100<br>рс 3 рс + imm9<br>

Extracted text: TABLE-2: Ege-ARM Instruction Examples Instruction Туре Орсode/ Operation Function ADD rd,ra,rb Data Processing Memory 0001 rd = rd+rb LDR rd, [rb] 0010 rd = DataMemory[rb] B #imm9 Branch 0100 рс 3 рс + imm9
Jun 11, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here