All Projects → MasterQ32 → spu-mark-ii

MasterQ32 / spu-mark-ii

Licence: MIT license
CPU and home computer project

Programming Languages

VHDL
269 projects
Zig
133 projects
assembly
5116 projects
lua
6591 projects
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to spu-mark-ii

Protobuf-Dreamer
A tiled DeepDream project for creating any size of image, on both CPU and GPU
Stars: ✭ 39 (+178.57%)
Mutual labels:  cpu
WMDebugAssistant
CPU 内存(Memory)Network FPS 实时监测 查看沙盒sandbox
Stars: ✭ 52 (+271.43%)
Mutual labels:  cpu
nes-rust
NES emulator in Rust with GUI
Stars: ✭ 78 (+457.14%)
Mutual labels:  cpu
mhrd-solutions
My solutions to the NAND-to-CPU game MHRD
Stars: ✭ 38 (+171.43%)
Mutual labels:  cpu
rasterator
Real-time software rasterizer written in C++ with windowing and model loading support.
Stars: ✭ 15 (+7.14%)
Mutual labels:  cpu
ddcpuid
🔬 dd's x86 CPU Identification tool
Stars: ✭ 21 (+50%)
Mutual labels:  cpu
stress
Single-purpose tools to stress resources
Stars: ✭ 24 (+71.43%)
Mutual labels:  cpu
darknet
Darknet on OpenCL Convolutional Neural Networks on OpenCL on Intel & NVidia & AMD & Mali GPUs for macOS & GNU/Linux
Stars: ✭ 160 (+1042.86%)
Mutual labels:  cpu
mrisc32-a1
A pipelined, in-order, scalar VHDL implementation of the MRISC32 ISA
Stars: ✭ 21 (+50%)
Mutual labels:  cpu
georgios
Hobby Operating System
Stars: ✭ 19 (+35.71%)
Mutual labels:  ziglang
zwld
Experimental wasm linker
Stars: ✭ 37 (+164.29%)
Mutual labels:  ziglang
6502-emulator
An Understandable 6502 Emulator
Stars: ✭ 26 (+85.71%)
Mutual labels:  cpu
BMW-IntelOpenVINO-Detection-Inference-API
This is a repository for a No-Code object detection inference API using the OpenVINO. It's supported on both Windows and Linux Operating systems.
Stars: ✭ 66 (+371.43%)
Mutual labels:  cpu
CSCvon8
A crazy small 8-bit CPU built with only seventeen 7400-series chips.
Stars: ✭ 86 (+514.29%)
Mutual labels:  cpu
psutil
Cross-platform lib for process and system monitoring in Python
Stars: ✭ 8,488 (+60528.57%)
Mutual labels:  cpu
ModernOperatingSystems AndrewTanenbaum
My notes after reading 'Modern Operating Systems' book by Andrew Tanenbaum and Herbert Bos.
Stars: ✭ 71 (+407.14%)
Mutual labels:  cpu
BMW-IntelOpenVINO-Segmentation-Inference-API
This is a repository for a semantic segmentation inference API using the OpenVINO toolkit
Stars: ✭ 31 (+121.43%)
Mutual labels:  cpu
PyCPU
Central Processing Unit Information Gathering Tool
Stars: ✭ 19 (+35.71%)
Mutual labels:  cpu
R8051
8051 soft CPU core. 700-lines statements for 111 instructions . Fully synthesizable Verilog-2001 core.
Stars: ✭ 70 (+400%)
Mutual labels:  cpu
audria
audria - A Utility for Detailed Ressource Inspection of Applications
Stars: ✭ 35 (+150%)
Mutual labels:  cpu

The SPU Mark II Project

A project that focuses on the development and improvement of the SPU Mark II instruction set architecture.

Another focus is development and creation of a concrete implementation of the CPU in VHDL as well as building a small "home computer" around an FPGA board similar to other computers from the 80ies.

SPU Mark II

The SPU Mark II is a 16 bit RISCish cpu that uses the stack machine approach instead of a register machine approach.

The instrution set is documented in documentation/isa.md.

Short feature list:

  • Highly flexible instruction set
  • Conditional instructions instead of special conditional jumps or movs
  • Optional hardware multiplication/division units (WIP)
  • Optional interrupt handling (WIP)

To get a feel for the instruction set, here's a small example for a void puts(char*str) function:

puts:
	bpget ; function prologue
	spget
	bpset
	
	get 2 ; fetch arg 1
puts_loop:
	ld8 [i0:peek] [f:yes]
	[ex:nonzero] st8 0x4000     ; Use MMIO for text output
	[ex:nonzero] add 1
	[ex:nonzero] jmp puts_loop
	pop

	bpget ; function epilogue
	spset
	bpset
	ret

Ashet Home Computer

The Ashet Home Computer is a computer built on top of the SPU Mark II cpu and provides a small environment to use the cpu.

Planned Features

  • MMU
  • Video Output (either FBAS or VGA)
  • Audio Output (signed 16 bit PCM)
  • SD Card Storage
  • Keyboard Interface
  • Joystick Port (C64 style)
  • UART interface

Current Memory Map

Note that this memory map right now does not utilize the MMU, so bus width is 16 bit.

Range Function
0x00000x3FFF Builtin ROM
0x40000x4FFF UART Interface
0x60000x60FF 256 byte fast RAM
0x61000x7FFF Unmapped
0x80000xFFFF 32k byte slow RAM
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].