Lab 03: Single-Cycle MIPS Datapath

Objective

This lab aims to implement the first half of a simple processor that runs a subset of the MIPS ISA. This processor includes an instruction fetch unit, instruction decode logic, execution units, memory access, and data write-back unit, similar to a real processor. All students will implement the same datapath, and it is recommended to learn from classmates' experiences and apply that knowledge to your design.

Required Reading Material

  • MIPS32 Instruction Set Architecture
  • Computer Organization and Design - The Hardware/Software Interface 5th Edition (ISDN: 978-0-12-407726-3): Chapter 4.3, 4.4

Specifications of the MIPS CPU

Instruction Set Supported

The machine supports all MIPS instructions specified in Lab 1, excluding those related to multiplication and division: DIV, DIVU, MFHI, MFLO, MTHI, MTLO, MULT, and MULTU. As shown in the following table, there are 45 MIPS instructions that the machine supports.

ADD ADDU ADDI ADDIU AND ANDI BEQ
BNE
DIV DIVU J JAL JALR JR LB
LBU LH LHU LUI LW MFHI MFLO
MTHI MTLO MULT MULTU NOR OR ORI
SB SH SLL SLLV SLT SLTI SLTIU
SLTU SRA SRAV SRL SRLV SUB SUBU
SW SYSCALL XOR XORI

Schematic Diagram

SingleCycMIP32 01 s

In this lab, you will build the schematic provided above by implementing some modules and wiring up all components accordingly. To begin, create a new project in Quartus Prime and target the MAX10-Lite board, as done in the previous lab.

You are going to implement all modules in your project.