How to build your own microprocessor? The A-SEED processor project

The A-SEED processor

Perhaps one of the best ways to learn what a microprocessor is is to build one of your own.

Since building a microprocessor or a processor can be an intense task, we are going to use a very simplified design that in an agile way allows us to have an experiential learning with the basic concepts.

Given these premises, we present the design of the A-SEED (Another SimplEst EDucational) processor.

The main characteristics of the A-SEED processor are:

  1. Pipelined architecture. Two instructions are executed simultaneously
  2. Harvard architecture, partially implemented
  3. Control Unit, Registers and ALU – reorganized in Data Unit and Control Unit. We define the registers
  4. RISC or Reduced Instruction Set Computer ISA (uniform, simple instructions, register-based).
  5. We define opcodes (an opcode is a code or portion of machine language that commands a processor to perform an operation and specify how to do it). In this simple example, we have only four types of instructions: Load, Add, Conditional Jumps and No Operation

Harvard architecture is partially implemented, only the instruction memory will exist.

The three main components of the CPU: ALU, registers and Control Unit will be rearranged.

A Data Unit will involve the ALU and some registers, while the Control Unit will be divided into an Instruction Unit and an Execution Unit.

The Data Unit is shown below:

It is implemented as shown below:

The Control Unit is divided into the Execution Unit and the Instruction Unit:
The Finite State Machine of the Execution Unit is shown below:

The opcodes for the four instructions are:
A test program is developed:

And its execution is checked:


For checking the results in a very clear way, you can use the next table: 
A second test program is developed:

And its execution is also checked:


Conclusions
Once we went through this exercise we got a better understanding and some insight on the operation of basic processors.

Base material
A Quartus project for starting building this processor can be found here A-Seed
 









  

   

Comentarios

Entradas populares de este blog