KPU - the RISC based Open Source CPU
This repository contains complete source code and buillding files for the KPU - a RISC based CPU (Central Processing Unit). The whole CPU is emulated, simulated, and modelled on the lowest level only with primitive AND, OR, XOR, and NOT gates.
It implements a 8-bit wide Data Bus, and a 16-bit wide Address Bus. The following 8-bit wide registers are implemented:
- D (General Purpose)
- E (General Purpose)
- F (General Purpose)
- G (General Purpose)
- H (General Purpose)
- XL (Lower part of the 16-bit wide "X" register
- XH (Upper part of the 16-bit wide "X" register
The following 16-bit wide registers are implemented:
- SP (Stack Pointer)
- BP (Base Pointer)
- PC (Program Counter)
- M (Memory Addressing)
- J (Jump Destination Addressing)
- X (General Purpose)
- Y (General Purpose)
- Z (General Purpose)
The project contains the following sub components:
- Assembler: The Assembler generates from the assembly language binary code that can be executed by the CPU. It is written in C#, and uses ANTLR for the syntax processing.
- Emulation: The C#-based Emulator is able to run binary code in a Console application or within a WinForms application (used for debugging purposes).
- VHDL: This folder contains the whole CPU implementation as VHDL description files.
- Eagle: This folder contains the whole schematics and board files ready for a physical implementation of the CPU based on 74LS TTL logic chips.
- Logicly: This folder contains early Proof-Of-Concept files for the Logicly simulation program.
For more detailed technical information about the CPU, please visit the project website at http://www.cpu-design.at