All Projects → risclite → R8051

risclite / R8051

Licence: Apache-2.0 license
8051 soft CPU core. 700-lines statements for 111 instructions . Fully synthesizable Verilog-2001 core.

Programming Languages

Verilog
626 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to R8051

J1sc
A reimplementation of a tiny stack CPU
Stars: ✭ 64 (-8.57%)
Mutual labels:  cpu, verilog
COExperiment Repo
支持 45 条 MIPS 指令的单周期处理器 -- 计算机组成原理实验 NUAA Spring 2017
Stars: ✭ 23 (-67.14%)
Mutual labels:  cpu, verilog
Ustc Rvsoc
FPGA-based RISC-V CPU+SoC.
Stars: ✭ 77 (+10%)
Mutual labels:  cpu, verilog
Hrm Cpu
Human Resource Machine - CPU Design #HRM
Stars: ✭ 43 (-38.57%)
Mutual labels:  cpu, verilog
z80
Single header Z80 emulator for C++ (C++11 or later)
Stars: ✭ 17 (-75.71%)
Mutual labels:  cpu, 8bit
Vexriscv
A FPGA friendly 32 bit RISC-V CPU implementation
Stars: ✭ 1,041 (+1387.14%)
Mutual labels:  cpu, verilog
Biriscv
32-bit Superscalar RISC-V CPU
Stars: ✭ 208 (+197.14%)
Mutual labels:  cpu, verilog
wymlp
tiny fast portable real-time deep neural network for regression and classification within 50 LOC.
Stars: ✭ 36 (-48.57%)
Mutual labels:  cpu, tiny
ARM9-compatible-soft-CPU-core
This ARMv4-compatible CPU core is written in synthesiable verilog.It could launch uCLinux and Linux in MODELSIM. It has high Dhrystone benchmark value: 1.2 DMIPS/MHz. It could be utilized in your FPGA design as one submodule, if you master the interface of this .v file. This IP core is very compact. It is one .v file and has only less 1800 lines.
Stars: ✭ 42 (-40%)
Mutual labels:  cpu, verilog
FPGACosmacELF
A re-creation of a Cosmac ELF computer, Coded in SpinalHDL
Stars: ✭ 31 (-55.71%)
Mutual labels:  cpu, 8bit
Mips Cpu
A MIPS CPU implemented in Verilog
Stars: ✭ 38 (-45.71%)
Mutual labels:  cpu, verilog
ccpu
A 8-bit computer made of 74xx series logic gates and memory ICs.
Stars: ✭ 31 (-55.71%)
Mutual labels:  cpu, 8bit
Zipcpu
A small, light weight, RISC CPU soft core
Stars: ✭ 640 (+814.29%)
Mutual labels:  cpu, verilog
Darkriscv
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
Stars: ✭ 1,062 (+1417.14%)
Mutual labels:  cpu, verilog
Riscv
RISC-V CPU Core (RV32IM)
Stars: ✭ 272 (+288.57%)
Mutual labels:  cpu, verilog
E200 opensource
This repository hosts the project for open-source hummingbird E203 RISC processor Core.
Stars: ✭ 1,909 (+2627.14%)
Mutual labels:  cpu, verilog
Tic 80
TIC-80 is a fantasy computer for making, playing and sharing tiny games.
Stars: ✭ 3,176 (+4437.14%)
Mutual labels:  tiny, 8bit
kianRiscV
KianRISC-V! No RISC-V, no fun! RISC-V CPU with strong design rules and unittested! CPU you can trust! kianv rv32im risc-v a hdmi soc with harris computer architecture in verilog: multicycle, singlecycle and 5-stage pipelining Processor. Multicycle Soc with firmware that runs raytracer, mandelbrot, 3d hdmi gfx, dma controller, etc.....
Stars: ✭ 167 (+138.57%)
Mutual labels:  cpu, verilog
l1vm
L1VM - a tiny virtual machine with a 64 bit core
Stars: ✭ 112 (+60%)
Mutual labels:  cpu, tiny
CSCvon8
A crazy small 8-bit CPU built with only seventeen 7400-series chips.
Stars: ✭ 86 (+22.86%)
Mutual labels:  cpu, verilog

R8051

Thank you for interesting in this new type of 8051 soft core. This core has only 2 files and the main one has 700 statements to support all 111 instructions of 8051. Yes, I make it with fully synthesizable verilog.

First of all, please open rtl/r8051.v and review it.The another file: rtl/instruction.v is an included file which has some verilog functions. These are all RTL files to implementation.

There is a folder: Hello that has 111-instructions compliance tests project. If your have the software "KEIL", you can open this project and check it. You can comment or uncomment any single instruction test and re-compile again. The other folder sim has one testbench file: tb.v, it is understandable easily for verilog designer. You may compile tb.v and r8051.v for your verilog simulator. This testbench file will link the compiled binary file of HELLO directory to the simulation. Instructions in the binary file will be fetched one by one and be executed. You can open a wave window and drag signals you are instresting in.

Maybe you are pulsed with how this works. 8051 has 111-instructions and each has 1 or 2 or 3 bytes.This CPU core will fetch 1 byte every clock. There is a 3-byte-long pipiline, named: A, B, C according to time. For 1-byte instrctions, if it is in A, its operand is loaded from memory pool, and the result is stored to memory pool when this instrcution enters B position. For one 2-bytes intruction, when the head byte of it is in the position A, it has enough info for loading operands from memory pool. When the head byte is in B, the tail byte is in A and it is for storing the result to memory pool since all 2 bytes are available. For one 3-bytes instruction, when the head byte is in B , the middle byte is in A and the tail byte is not present, its two operands are being fetched. In the next clock, its two operands are available and all 3 bytes of it are present in "A-B-C" pipeline, which is good for storing the result into the destination. So, one byte by one byte, different-length instructions are executed in this pipeline.

I made it with an incremental method. As a centipede for example, it has a bulk body and 111 legs. I build the bulk body firstly and give it one leg one time. When all legs are installed, this centipede is finished. In the fold illustration, there are several .v files. The r8051_bulk.v is the bulk body I mentioned and it could not interpret any instruction. It may look ugly but helpful on its structure. Since 111 instruction are divided into five categories(ARITHMETIC/LOGICAL/DATA/BOOLEAN/PROGRAM), the r8051_0/1/2/3/4.v is for every category solely and the r8051_a/b/c/d/e.v is for building these 5 categories incrementally.

If you can read Chinese, please refer this:

book Picture

Amazon Book: How to design 8051-compatiable soft core for FPGA

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].