Single Cycle MIPS Processor

A detailed overview of the Single Cycle MIPS Processor project.

Single Cycle MIPS Processor

Project Overview

This project involved the hardware implementation of a single cycle MIPS processor. The processor was designed to execute a subset of the MIPS instruction set and was tested for functionality using a variety of test programs. This Project was to design, develop and complete a single cycle microprocessor in Verilog. The microprocessor was to be programmed on an FPGA board so that I could write assembly code that would run on the processor and perform single cycle operations.

Single Cycle MIPS Processor Circuitry

I took on the challenge of building a single-cycle processor for a digital design project. This processor operates by following five steps: fetching, decoding, executing, handling memory, and writing back. My specific task was to make it work as a level monitor. I tackled this project during a digital logic and computer organization course. The processor consisted of six crucial components, each written in Verilog: a Program Counter (PC) counter, Instruction RAM, Decoder, Register File, and a versatile Arithmetic Logic Unit (ALU) that could perform various operations. To control these operations, I designed a control unit that selected the necessary signals using multiplexers. In the end, I created an assembly program based on the class's instruction set, similar to MIPS. This program turned the processor into a practical level monitor. When implemented on an FPGA board, it made LEDs light up according to specific conditions. This project provided valuable insights into the real-world applications of computer architecture components. It emphasized the importance of careful project planning and step-by-step development to manage complexity effectively. Unfortunately, I can't share the project's code and designs, but I'm here to answer any questions about this fascinating journey into digital design.

Skills

  • Verilog Programming
  • Assembly Language
  • FPGA Programming:
  • Digital Logic Design:
  • Computer Architecture:
  • Hardware Simulation and Testing
  • Verilog Programming
  • Assembly Language
  • FPGA Programming:
  • Digital Logic Design:
  • Computer Architecture:
  • Hardware Simulation and Testing