| 1 |
2 |
fabiop |
# FPz8 - An open-source VHDL implementation of the Zilog Z8 encore
|
| 2 |
|
|
|
| 3 |
3 |
fabiop |
FPz8 mk1 v0.99
|
| 4 |
2 |
fabiop |
|
| 5 |
3 |
fabiop |
Version: 0.99 Nov, 24th, 2016 (changed LDWX instruction, interrupts, condition code function, debugger command processor)
|
| 6 |
|
|
Version: 0.91 Nov, 15th, 2016
|
| 7 |
|
|
Version: 0.9 Nov, 11th, 2016
|
| 8 |
2 |
fabiop |
|
| 9 |
3 |
fabiop |
FPz8 is a softcore almost 100% object-code compatible with the Z8 encore microcontroller line. Current implementation includes
|
| 10 |
|
|
2kb of file registers (RAM), 16kb of program memory (using FPGA RAM), 8 vectored interrupts with programmable priority,
|
| 11 |
|
|
full-featured onchip debugger 100% compatible with Zilog's OCD and ZDS-II IDE.
|
| 12 |
|
|
It was designed to work as a SoC and everything (except the USB chip) fits inside a single FPGA (I have used an Altera
|
| 13 |
|
|
Cyclone IV EP4CE6 device). The debugger connection makes use of a serial-to-USB chip (it is part of the low-cost FPGA
|
| 14 |
|
|
board used on the project).
|
| 15 |
2 |
fabiop |
In a near future I plan to add some more features to the device (such as a timer and maybe other peripherals).
|
| 16 |
3 |
fabiop |
The idea behind the FPz8 was to learn more on VHDL and FPGAs (this is my second design using these technologies). I also
|
| 17 |
|
|
believe FPz8 can be a very interesting tool for learning/teaching VHDL, computing and microprocessors/microcontrollers
|
| 18 |
|
|
programming.
|
| 19 |
2 |
fabiop |
|
| 20 |
3 |
fabiop |
You are free to use and to modify FPz8 to fit your needs, except for comercial use (I don't expect anyone would do that anyway).
|
| 21 |
|
|
If you want to contribute to the project, contact me and share your thoughts.
|
| 22 |
2 |
fabiop |
Don't forget to credit the author!
|
| 23 |
|
|
|
| 24 |
|
|
Note: currently there are only a few SFRs physically implemented, they are:
|
| 25 |
|
|
0xFC0 - IRQ0
|
| 26 |
|
|
0xFC1 - IRQ0ENH
|
| 27 |
|
|
0xFC2 - IRQ0ENL
|
| 28 |
|
|
0xFCF - IRQCTL
|
| 29 |
|
|
0xFD2 - PAIN
|
| 30 |
|
|
0xFD3 - PAOUT
|
| 31 |
|
|
0xFF8 - FCTL
|
| 32 |
|
|
0xFFC - FLAGS
|
| 33 |
|
|
0xFFD - RP
|
| 34 |
|
|
0xFFE - SPH
|
| 35 |
|
|
0xFFF - SPL
|
| 36 |
|
|
|
| 37 |
3 |
fabiop |
What else is missing from the original architecture?
|
| 38 |
|
|
A: no watchdog (WDT instruction runs as a NOP), no LDE and LDEI instructions (data memory related), no option bytes,
|
| 39 |
|
|
no data memory related debug commands, no CRC debug command, no ID bytes
|
| 40 |
|
|
|
| 41 |
|
|
FPz8 was tested on an EP4CE6 mini board (50MHz clock)
|
| 42 |
|
|
http://www.ebay.com/itm/EP4CE6-Mini-Board-USB-Blaster-Altera-Cyclone-IV-FPGA-CPLD-Nano-Size-
|
| 43 |
|
|
|
| 44 |
2 |
fabiop |
This work is licensed under the Creative Commons Attribution 4.0 International License.
|
| 45 |
|
|
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
|