VLSI / Layout

MIPS8 Processor.

An 8-bit MIPS-style processor implemented below the HDL level through a custom IC design flow.

Layout view of the MIPS8 Processor design.

The MIPS8 Processor was developed for my Integrated Circuits Design course at John Brown University. It implements an 8-bit MIPS-style processor in Electric VLSI.

The project followed a complete custom IC design flow, including transistor-level schematics, physical layout design, verification, and functional simulation. Major components such as the datapath, ALU, control logic, and padframe integration were implemented and validated throughout the design process.

Verification was performed using DRC, ERC, NCC, and switch-level simulation to ensure both physical correctness and functional behavior. Test programs and assertion-based command files were used to confirm correct execution of MIPS8 instructions.

The main challenge was not only making the logic work, but also translating the architecture into a physical IC layout that passes verification.

How It Works

Engineering notes.

Building a processor below the HDL level requires more than describing behavior in Verilog or testing an architecture in software. The logic must be constructed from smaller cells, connected through schematics, translated into layout, and checked as a physical design.

The goal was to implement an 8-bit MIPS-style processor while keeping the schematic hierarchy, layout, and functional behavior consistent throughout the custom IC flow.

Instructions move through a simple MIPS-style datapath. The datapath connects the program counter, instruction decoding, register file, ALU, control logic, and memory-related signals. The ALU performs arithmetic and logic operations, while the control logic selects the correct path for each instruction.

The design follows a hierarchy: smaller verified cells build larger blocks, and those blocks connect at the processor level. The final integration includes the processor core and the top-level padframe.

Detailed physical layout of the MIPS8 Processor.

The project followed a custom IC design flow in Electric VLSI:

  1. Design and verify transistor-level cells.
  2. Build larger schematic blocks from verified cells.
  3. Connect the processor datapath and control logic.
  4. Create physical layouts for cells and major blocks.
  5. Run DRC, ERC, and NCC checks.
  6. Simulate behavior with IRSIM and command files.
  7. Integrate the completed design with the top-level padframe.

The physical implementation required careful routing and hierarchy management so each layout block remained consistent with its schematic.

Verification covered both physical correctness and functional behavior. DRC checked layout design rules, ERC checked electrical connection problems, and NCC confirmed that each schematic matched its layout.

IRSIM switch-level simulation tested processor behavior during instruction execution. Test programs and assertion-based .cmd files checked expected outputs, register writes, and program counter changes.

assert register_write == expected_value
assert program_counter == next_instruction

The final processor was completed and successfully verified at the schematic and layout level. The completed design connects the datapath, ALU, control logic, and padframe through a consistent hierarchy.

The project showed the full path from a digital processor architecture to a physical IC implementation, including layout, verification, and switch-level simulation.

Interactive Demo

MIPS8 instruction stepper.

A simplified instruction-level demo inspired by the processor. Step through a short program to see how data moves across the datapath.

Example Program

Instruction Memory

Simplified demo
  1. LOAD R1, 5
  2. LOAD R2, 3
  3. ADD R3, R1, R2
  4. SUB R4, R1, R2
  5. AND R5, R1, R2
  6. OR R6, R1, R2
Program Counter 0
Current Instruction LOAD R1, 5
ALU Operation Pass immediate
PC
Instruction
Control
Registers
ALU
Writeback

Register File

R00
R10
R20
R30
R40
R50
R60
R70