|
| |
|
When linking to these pages, please use the URL: www.iki.fi/cube/ - it's permanent.
|
|
|
FPGA I've done software for a long time, ranging from high level implementations of rendering systems, all the way down to GPU microcode but I've never really done any hardware design or implementation.
So I thought it would be a fun experiment to design and implement my own 8-bit computer system on an FPGA, starting with the CPU, and adding the graphics and audio subsystems. Along the way I added some other useful subsystems and here's a design what I came up with.
CPU
- 8-bit CISC processor running @ 12.5MHz
- 8 general purpose registers
- 5 special registers
- 858 opcodes
- Instruction set similar to Zilog Z80 and NEC 70K/0
Memory
- 64KB dual port RAM shared by the CPU and graphics unit
- 7 single port 16KB RAM banks accesible only by the CPU
- 16KB dedicated palette RAM
- DMA engine
- SD card controller
Graphics
- Maximum resolution: 320x240 @ 59.18560Hz
- Palette: 16 out of 4096 colors
- Dual playfield
- 7 graphics modes
- 8 32x32 sprites
- Horizontal scrolling
- Line parameter table
- VBL, HBL and raster line interrupts
Audio
- 4 stereo audio channels with antialiasing oscillators using polyBLEP and polyBLAMP
- ADSR and volume control per channel
- 5 waveforms: sawtooth, pulse, triangle, sine, LFSR noise
- 12dB lowpass/highpass/bandpass/bandstop filter per channel
- 2 delay units with 6dB lowpass filters
- Reverb unit
Aggression - Project SC Intro .mp4
Watch in YouTube
Release date: August 2024
|