
A Z80 from the Ground Up (2014) - glhaynes
http://baltazarstudios.com/z80-ground/
======
userbinator
AFAIK the Z80 hasn't been publicly reverse-engineered to transistor level
completely, it's mostly some important pieces (those that Ken Sherriff did,
mentioned in the article) but apparently that was enough...

Notable that one of its direct predecessors, the Intel 8080, was reverse-
engineered to transistor level:

[https://zeptobars.com/en/read/KR580VM80A-intel-i8080-verilog...](https://zeptobars.com/en/read/KR580VM80A-intel-i8080-verilog-
reverse-engineering)

~~~
jacobush
AFAIK Jeri Ellsworth did the same to the 6502.

[https://www.nytimes.com/2004/12/20/technology/a-toy-with-
a-s...](https://www.nytimes.com/2004/12/20/technology/a-toy-with-a-story.html)

Can't find it in that article, but IIRC she looked at scans of the silicon to
figure out _exactly_ what the chips in a C64 do.

------
sehugg
Fast-forward to the next year, where he's created Z80 and ZX Spectrum models
in Verilog:
[http://baltazarstudios.com/z80-cpu/](http://baltazarstudios.com/z80-cpu/)

I find it interesting that he used transparent latches at first, then after
experiencing random glitches switched to flip-flops. I guess the Z80 designers
had control of and deeply understood their timing, something you don't get
with a FPGA :)

------
bogomipz
The author states:

>"A-Z80 is a conceptual implementation of the venerable Zilog Z80 processor
targeted to synthesize and run on a modern FPGA device."

Could someone say what exactly "synthesize" means in this context? Is this
loading lookup tables in the FPGA in order to implement the code you wrote in
your HDL - Verilog, VHDL, something else?

~~~
guiambros
Exactly, synthesizable HDL code means code that can be actually translated
into logic gates inside an FPGA [1]. Not every HDL instruction is
synthesizable.

Verilog and VHDL have extensive support for non-synthesizable code, which are
used for verification, simulation, testing, etc - e.g., [2].

[1]
[https://en.wikipedia.org/wiki/Logic_synthesis](https://en.wikipedia.org/wiki/Logic_synthesis)

[2] [https://www.nandland.com/articles/synthesizable-vs-non-
synth...](https://www.nandland.com/articles/synthesizable-vs-non-
synthesizable-code-fpga-asic.html)

~~~
bogomipz
Thanks. Your second link looks like a really great resource! Cheers.

------
GeorgeTirebiter
This is a tour-de-force. The Z80 has an enormous number of instructions,
documented and 'undocumented'
[https://drive.google.com/file/d/0BykuPmkS9xS3UzFRTlAtTVA0ZHc...](https://drive.google.com/file/d/0BykuPmkS9xS3UzFRTlAtTVA0ZHc/edit)
In a sense, the Z80 was the 'VAX' of 8-bit microprocessors.

What I didn't see was performance info -- how fast (clock rate) did the CPU
run in the various FPGAs? I see the size (# LUTs etc) at
[https://opencores.org/project/a-z80](https://opencores.org/project/a-z80) but
not max CPU clock. Alternately, timing for 4-cycle instructions like 'LD
A,B'\-- which in the original Z80 took 2 M cycles, 7 T states, 4 MHz execution
time = 1.75 uSec.

------
ChrisRR
What is going on with the website that makes it so slow to scroll on a PC?

------
boznz
Z80 still being manufactured in the form of the eZ80

~~~
jonhendry18
Anyone know what process size is used for them these days? Is it comparable to
the original, or is it a more modern, smaller process?

Just curious. I wouldn't expect anyone go to the expense of doing Z80-class
microprocessors at 14nm.

