MIPS single-cycle implementation

Report
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
The Five Classic Components of a Computer
Processor
Input
Control
Memory
Datapath
Output
• 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
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.
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.
5-Stage MIPS
Stage 5
PC
Instruction
Memory
(Imem)
Stage 1
Registers
Stage 2
ALU
Stage 3
IFtch Dcd Exec Mem WB
Reg
ALU
IM
DM
Reg
Data
Memory
(Dmem)
Stage 4
STAGES OF EXECUTION IN MIPS
5 stage instruction pipeline
1) I-fetch: Fetch Instruction, Increment PC
2) Decode: Instruction, Read Registers
3) 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
Block Diagram of MIPS single-cycle
processor
Datapath elements
• Instruction memory
– PC register, adder increment PC by 4
• Register file
• ALU
• Data memory
Da ta
Re g ister #
PC
A d d re ss
In stru ction
m e m ory
In stru ctio n
R e giste rs
ALU
A d dre ss
Re g ister #
D a ta
m e m ory
Re g ister #
D ata
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
falling edge
cycle time
rising edge
Edge Triggered Methodology
Register file
• A clocking methodology defines when signals
can be read and written
S tate
e le m en t
1
S ta te
elem en t
2
C o m bina tio na l lo gic
Write Data to Memory
C loc k c yc le
Instruction Read From Memory
Value Written to Register File
Read Register Values
Execute
The MIPS instructions format
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
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
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.
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
MIPS
IFETCH
CONTROL
EXECUTE
DMEMORY
IFETCH
IFETCH
IDECODE
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.
REPORT
•
•
•
•
•
Objective of this lab and intro.
Your implementation
Your test programs and results (simulations)
Your conclusion
Attach your VHDL source code (email)
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
Adding Instructions to MIPS
(Tutorial)
• Branch not Equal (Bne)
• Load Upper Immediate (Lui)
Branch Not Equal (Ben)
Load Upper Immediate (Lui)

similar documents