The ultimate goal is to make a Z80 computer, with an interpreter (to be defined), video out, keyboard, and some kind of external mass storage.
There are now two versions available:
- Z80SoC-DE1 for Altera DE1 Development Board. Can easily be ported to DE2. The whole Quartus II project for Altera DE1, can be downloaded here: Z80SoC-DE1-0.6.zip
- Z80SoC-S3E for Diligent Spartan 3E Starter Kit. The Xilinx ISE project files for Spartan 3E can be downloaded here: Z80SoC-S3E-0.6.zip
This project is a glued collection of several other projects, to make a functional Z80 computer. I am using Z80, VGA, Keyboard and serial cores from other engineers in this project. I have also, developed my own functional modules to glue everything together.
In order to fully use this project, you must be able to develop programs in Z80 assembly, or C. If using C, then you will need to develop or adapt the basic IO lib for Z80SoC.
A full list of Z80 opcodes can be found here: http://www.shiar.org/product/z80.txt
To make your own rom, use this procedure:
1. write the assembly code (I use Z80 PC Assembler by Peter Hanratty)
2. compile
3. copy the hex codes (ascii) to a file named "rom.hex" iin the ROM directory
4. convert the rom.hex to rom.vhd. I have written a bash shell script for this purpose: hex2rombin.sh
5. copy the generated rom.vhd to VHDL directory
6. compile your project
Look at the ROM directory for several examples on how to access the board pins and resources.
You can access the video using memory addresses.
For the Spartan 3E, the LCD is also written using memory addresses, what makes it trivial to write into LCD.
Please, take a look in the README files for detailed arquictecture, memory addresses and IO ports.
Enjoy. Back: FPGA projects