Introduction

Statement of Purpose

The goal of my project is to design a simple CPU that can be synthesized to an FPGA and run programs. Through this process, I will learn about the design and structure of a CPU, logic design using Verilog HDL and simulation, and working with FPGA toolchains.

Background Research

I have been interested in CPU design in the past. I have watched much of Ben Eater's breadboard CPU series on YouTube, and completed NandGame.

I have been studying state machines and CPUs in my ECE 120 class.

I looked at several CPUs as inspiration for this project, including the Intel 8008, 8088/8086, Zilog Z80, and MOS 6502.

Design Details

Block Diagram

System Overview

An overview of the ISA I have designed for this proposal can be seen here. This is an important part of the proposal, and the most detailed.

The CPU will start executing at IP=0000h. If the memory is filled with zeroes, the CPU will execute the instruction `ADDU 0` repeatedly, acting as a no-op. The program would be placed somewhere in memory. When powered on, the CPU would very quickly begin executing it.

I will map the buttons, LEDs, and GPIO pins to I/O ports for basic communication with the processor using the `inb` and `outb` instructions. I will also be able to use a JTAG debug connection to monitor the CPU.

First, I will describe the CPU using behavioral Verilog, and verify it on a simulator. Then, I will translate the behavioural Verilog to RTL, synthesize it to the FPGA development board, and attempt to interface with it.

Parts

(1) ULX3S development board with Lattice ECP5 FPGA. Pre-ordered in early October. Should arrive by December.

Possible Challenges

  • Learning to use the Verilog HDL may take a long time.
  • I do not have much time left for this project because of my late start date. I may run out of time.

References

A. Jacobs, “6502 Introduction,” Obelisk, 2001. [Online]. Available: http://www.obelisk.me.uk/6502/. [Accessed: 06-Nov-2020].

B. Eater, “Build an 8-bit computer from scratch,” Ben Eater, 2016. [Online]. Available: https://eater.net/8bit/. [Accessed: 06-Nov-2020].

Attachments:

CPU-full.png (image/png)

Comments:

Approved, sorry for the delay.

Posted by fns2 at Nov 12, 2020 17:39