Skip to content

VHDL implementation of a MIPS-based MCU with timer, GPIO and interrupt controller.

Notifications You must be signed in to change notification settings

noamperets/MIPS-based-MCU-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MIPS-Based MCU Architecture and Design

Final project for the Advanced Microprocessor Architecture and Hardware Accelerators Lab Course

πŸ“˜ Project Overview

This project implements a Microcontroller Unit (MCU) architecture based on a MIPS CPU core.
The design includes peripherals such as a basic timer, GPIO, interrupt controller, and an optimized address decoder β€” all written in VHDL.

πŸ“ For full documentation and RTL schematics, see the PDF Report.

πŸ“ Project Structure

Below is a list of the main VHDL modules with short functional descriptions:

πŸ”· CPU Components

  • MIPS.vhd – The full MIPS CPU core: fetch, decode, execute, memory access, and writeback.
  • IFETCH.vhd – Instruction fetch stage.
  • IDECODE.vhd – Instruction decode and control signal generation.
  • EXECUTE.vhd – ALU logic, branch and jump decisions.
  • CONTROL.vhd – Generates control signals based on instruction opcode.
  • DMEMORY.vhd – Data memory access.

πŸ”· MCU Components

  • MCU.vhd – Top-level design connecting CPU and peripherals.
  • Optimized_Addr_Decoder.vhd – Maps 5-bit address inputs to 12-bit chip select lines for peripherals.
  • GPIO.vhd – Drives LEDs and HEX displays; handles memory-mapped I/O.
  • HexDecoder.vhd – Converts 4-bit binary values to 7-segment display.
  • BasicTimer.vhd – Timer module with interrupt generation and PWM-style output.
  • freqdiv.vhd – Frequency divider generating mclk2, mclk4, and mclk8.
  • InterruptController.vhd – Manages multiple interrupt sources (timer, keys) with prioritization.

πŸ’‘ Key Features

  • Modular MIPS-based processor architecture
  • Memory-mapped I/O (LEDs, switches, hex displays)
  • Custom interrupt controller with hardware-generated signals
  • Peripheral integration via chip-select decoding
  • Signal-level simulation in ModelSim and real-time testing using Quartus SignalTap

πŸ”¬ Results & Testing

  • βœ… Verified waveforms using ModelSim
  • βœ… Measured system response using Quartus SignalTap
  • πŸ“ˆ Achieved expected fmax and identified the critical path from the MIPS core to the GPIO write logic

About

VHDL implementation of a MIPS-based MCU with timer, GPIO and interrupt controller.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published