Z80 System on Chip :: Overview

Project maintainers


Name: z80soc
Created: Apr 16, 2008
Updated: Jun 24, 2016
SVN Updated: Jun 24, 2016
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star3you like it: star it!

Other project properties

Category:System on Chip
Development status:Stable
Additional info:
WishBone compliant: No
WishBone version: n/a

Z80 System on Chip

System on chip, based on T80 core.

This project is a SOC designed for Altera DE1 development board and the Diligent Spartan 3E, and provide access to leds, switches, buttons, IO pins, SRAM, VGA, LCD and keyboard using Z80 assembly language.
Comes with a reference ROM application that show how to access all resources on the board. Spartan 3E port provides easy access to the LCD (memory mapped, 32 bytes of ram).

There are tools included in the project files to convert fonts (psf) to MIF and COE, and convert files containing hex codes in VHDL ROM files, what makes it very easy to generate new roms for the system (requires cygwin on windows or linux/unix shell).

Primary home page for this project is:

Previous versions can also be found at:

More information about development here:


All board resources are accessible from Z80 Assembly programs and also using C language.

- Some changes to the memory mapping to have all platforms using the same map
- C library added to access all available hardware resources
- Documentation online at http://retro-cpu.runwiki
- Added Altera DE2-115 to list of supported development kits

- Main change is support for C with release of a basic C library interface with the board resources
- Bugfixes in the video design and support for 80x60

- Video layout can now be up tp 80x40
- Characters are stored im RAM and can be redefined by the user


- Memory
- 24 Kb RAM (external SRAM) for main memory
- 03 Kb RAM for video memory (display up to 80x40)
- 02 Kb RAM for characters (256 chars), can be redefined by user
- 16 Kb ROM
- VGA video out in text mode configurable up to 80x40
- PS/2 keyboard input
- Seven segment display
- 8 Green leds
- 8 Red leds
- 8 Switches
- 4 Push buttons
- 36 IO pins (gpio0)
- 36 IO pins (gpio1)

Spartan 3E:
- Memory
- 24 Kb RAM for main memory
- 03 Kb RAM for video memory (display up to 80x40)
- 02 Kb RAM for characters (256 chars), can be redefined by user
- 16 Kb ROM
- 32 Bytes RAM for LCD video memory
- VGA video out in text mode configurable up to 80x40
- PS/2 keyboard input
- LCD display
- 8 Green leds
- 4 Switches
- 5 Push buttons
- Rotary Knob


- All features listed are now functional

- Future improvements under way:
- (done) Video 80x40
- Serial communication
- Monitor program

Revison History

For a detailed list of changes and features, see file RevisionHistory.txt and README file.

2010/02/26 - V0.7
Modified RAM layout to accomodate new features
Characters definition are now in RAM and can be redefined by the user
Video screen can now be configured up tp 40 rows by 80 columns
Characters can have double pixels (useful when width is less than 40 chars)
Memory cores was redefined, RAM is now 24K

2008/05/24 V0.6
Modified RAM layout to support new and future improvements.
Added ports 0x90, 0x91, 0x92 for vram write
Changed ROM to support 14 bit addresses (16 Kb)

Added support for the Rotary knob on Spartan 3E.
Modified the ROM to move LCD text using the Rotary knob.

Fixed bug in memory access for S3E. ROM now is almost the same as DE1.

Spartan 3E port released, with support for the LCD display.

Added Caps lock support. Upper and lower case characters are now supported for keyboard input.

Added complete character set (video out only)
Changed ROM program

Release of Z80SoC-0.5-DE1-Beta

© copyright 1999-2018, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.