lab assignment 2: mips single-cycle implementation electrical and computer engineering university of...

23
Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Upload: tracy-baldwin

Post on 19-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Lab Assignment 2:MIPS single-cycle implementation

Electrical and Computer EngineeringUniversity of Cyprus

Page 2: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Lab Tutorial Assignment

• ISE Tool setup

• Any Questions?

• A solution/tutorial will be uploaded once all assignments have been submitted

Page 3: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

The Five Classic Components of a Computer

• Datapath: The processor elements that operate on and/or store data• Control: The processor element that decides how and when parts of the

datapath are executed FSM

Processor

Control

Datapath

Memory

Input

Output

Page 4: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

INTRODUCTION• The MIPS processor, designed in 1984 by

researchers at Stanford University.• Is a RISC (Reduced Instruction Set Computer)

processor. Compared with their CISC (Complex Instruction Set Computer) counterparts (such as the Intel Pentium processors), RISC processors typically support fewer and much simpler instructions.

• A RISC processor can be made much faster than a CISC processor because of its simpler design.

Page 5: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

INTRODUCTION (…)

• RISC processors typically have a load-store architecture.

• Two instructions for accessing memory: – a load (l) instruction to load data from memory,– a store (s) instruction to write data to memory.

• None of the other instructions can access memory directly.

Page 6: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

DataMemory(Dmem)

PC Registers ALUInstruction

Memory(Imem)

Stage 1 Stage 2 Stage 3 Stage 4

Stage 5

IFtch Dcd Exec Mem WBA

LU IM Reg DM Reg

5-Stage MIPS

Page 7: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

STAGES OF EXECUTION IN MIPS5 stage instruction pipeline 1) I-fetch: Fetch Instruction, Increment PC2) Decode: Instruction, Read Registers3) Execute:

Mem-reference: Calculate Address R-format: Perform ALU Operation

4) Memory: Load: Read Data from Data Memory Store: Write Data to Data Memory

5) Write Back: Write Data to Register

Page 8: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Block Diagram of MIPS single-cycle processor

Page 9: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Datapath elements

• Instruction memory– PC register, adder increment PC by 4

• Register file• ALU• Data memory

Registers

Register #

Data

Register #

Datamemory

Address

Data

Register #

PC Instruction ALU

Instructionmemory

Address

Page 10: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Edge Triggered Methodology

• Unclocked vs. Clocked• Clocks used in synchronous logic

– when should an element that contains state be updated?— wouldn't want to read a signal at the same time it was

being written

cycle time

rising edge

falling edge

Page 11: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Edge Triggered Methodology Register file

• A clocking methodology defines when signals can be read and written

Clock cycle

Stateelement

1Combinational logic

Stateelement

2

Instruction Read From Memory Value Written to Register File

Write Data to Memory

Read Register ValuesExecute

Page 12: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

The MIPS instructions format

Page 13: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Single-cycle Implementation

• All operations take the same amount of time - a single cycle

• long cycle time• Instructions same size• Source registers always in same place• Immediates same size, location• Operations always on registers/immediates

Page 14: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

LAB2

• You will become familiar with the MIPS instruction set by implementing a single-cycle core in VHDL– The example code will be uploaded to the website

• You have two weeks for this project– don’t wait until the night before to tackle

Page 15: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

LAB2

• You will be given the design skeleton of a single-cycle MIPS processor that is capable of performing some instructions.

• Complete the design of the single-cycle implementation in order to support the required MIPS instruction set.

Page 16: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

MIPS 32 Instruction Set- We're ready to look at an implementation of the MIPS- Simplified to contain only:

- memory-reference instructions: lw, sw - arithmetic-logical instructions: add, sub, and, or, slt- control flow instructions: beq

- Generic Implementation:

- use the program counter (PC) to supply instruction address- get the instruction from memory- read registers- use the instruction to decide exactly what to do

Page 17: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

EXECUTE

IFETCH

CONTROL

IDECODE

DMEMORY

IFETCH

IFETCH

MIPS

Page 18: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

DEMO

• You'll want to build a suite of test programs to test the new capabilities of your implementation as you add them.– Test Programs are Stored in the IFETCH.vhd file

• You will be expected to run a number of supplied programs.

Page 19: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

REPORT

• Objective of this lab and intro. • Your implementation• Your test programs and results (simulations) • Your conclusion • Attach your VHDL source code (email)

Page 20: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Important Announcements!

• Lab material (Tutorials, VHDL Files) will be uploaded in the website!

• Deadline for Lab 2 is on: 1/10/2014

• No Lab Lecture next week, but we can be at the lab if there are questions

Page 21: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Adding Instructions to MIPS(Tutorial)

• Branch not Equal (Bne)

• Load Upper Immediate (Lui)

Page 22: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Branch Not Equal (Ben)

Page 23: Lab Assignment 2: MIPS single-cycle implementation Electrical and Computer Engineering University of Cyprus

Load Upper Immediate (Lui)