CMPS Logic Design :Use the VHDL compiler or the graphical designer and simulator to design tiny processor able to execute a mini version of the ARM Thumb instruction set in accordance with the specifications below.

profilekuucd
LDPR19.pdf

MIDWESTERN STATE UNIVERSITY

DEPARTMENT OF COMPUTER SCIENCE

CMPS 3023: Logic Design

Spring semester 2019

Project Assignment

03/07/2019 - due on April 24, 2019

This project is to be performed either individually or by a group of at most 4 students.

Use the VHDL compiler or the graphical designer and simulator to design tiny processor

able to execute a mini version of the ARM Thumb instruction set in accordance with the

specifications below.

For this project, you are to design (using VHDL and components design or schematics

capture) and simulate an 8-bit processor (8-bit registers), which includes two registers R0

and R1, able to execute the instruction set shown on table 1.

Table 1. Mini version Thumb Instruction set

Mnemonic Action

ADD Rd,Rs1,Rs2 Add Rs1 and Rs2, stores in Rd 0001 100k kkss sddd

ADD Rd,Rs1,#k Add Rs1 and #k, stores in Rd 0001 110k kkss sddd

SUB Rd,Rs1,Rs2 Subtract Rs2 from Rs1, stores in Rd 0001 101k kkss sddd

SUB Rd,Rs1,#k Subtract #k from Rs1, stores in Rd 0001 111k kkss sddd

EOR Rd,Rs Xor Rs and Rd, stores in Rd 0100 0000 01ss sddd

MOV Rd,#K Move 8 bit value to Rd 0010 0ddd kkkk kkkk

AND Rd,Rs Ands Rs and Rd, stores in Rd 0100 0000 00ss sddd

NEG Rd,Rs Complements Rs, stores in Rd 0100 0010 01ss sddd

LSL Rd,Rs,#1 Left shifts Rs by 1bit, stores in Rd 0000 0000 01ss s ddd

LSR Rd,Rs,#1 Right shifts Rs by 1bit, stores in Rd 0000 1000 01ss s ddd

OUT Rs Displays contents of Rs 1101 1111 0000 0sss

kkk,sss: source register; ddd: destination register; R0 = 000, R1 = 001

The block diagram of the mini version Thumb processor is shown on Figure 1. The

machine has 18 input signals and 14 output signals. The 18 input signals consist of 16 bits

used for instructions and 2 extra bits used to clock the operations: one clock signal will

command the execution of the operation (EXE) and the other will update the destination

register (UPD) (these two bits cannot be zero at the same time). The 14 output bits are

connected to two seven-segment displays and should show the value contained in R0 (in

hexadecimal format), except when instructed to do it differently by the instruction OUT.

Coding example: MOV R0,5 in binary 0010 0000 0000 0101

MOV R1,13 in binary 0010 0001 0000 1101

MOV ADD R1,R0,R1 in binary 0001 1000 0000 1001

VERY IMPORTANT:

1. Clock signals activate circuit components when they are zero.

2. 7-segment lights go ON when their signal is zero (OFF when it is one)

Project report:

Use computer word processing and drawing tools of your choice to generate your report.

It must consist of the following items:

1. Block diagram of the circuit implementation (show major components like registers,

logic units, multiplexers, connections, etc.).

2. Printout of the circuit schematics or VHDL code used to implement the design.

3. Electronic copy of the .vhd or the .bdf file required to run the simulation.

4. Brief description of the experiment with a FPGA implementation.

Your project is due on April 24, 2019. You need to start working NOW!!!! Anything

that you try to do in the last week before the due date will not work for sure. Time is an

important factor in this project. If you write your solution in VHDL and the entire

solution has less than 3 entities described, then your maximum grade is 50. If your

project does not work or you cannot justify why it does not work, then your grade will be

zero. Acceptable justifications are based on software limitations only, and in this case you

must show you had every component defined and tested and only the integration failed.

Failure in reporting the FPGA implementation experiment will reduce your grade by ten

points. NO EXTENSIONS!!

Thumb mini

micro

processor

x15

x13

x11

x9

x7

x5

x3

x1

upd

exe

AL

b0

b5 b1

b4 b6 b2

b3

a0 to a6

a0

a5 a1

a4 a6 a2

a3

b0 to b6