Hacker News new | past | comments | ask | show | jobs | submit login
A Z80 from the Ground Up (2014) (baltazarstudios.com)
75 points by glhaynes 9 months ago | hide | past | web | favorite | 10 comments



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...


AFAIK Jeri Ellsworth did the same to the 6502.

https://www.nytimes.com/2004/12/20/technology/a-toy-with-a-s...

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.


Fast-forward to the next year, where he's created Z80 and ZX Spectrum models in Verilog: 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 :)


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?


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

[2] https://www.nandland.com/articles/synthesizable-vs-non-synth...


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


This is a tour-de-force. The Z80 has an enormous number of instructions, documented and 'undocumented' https://drive.google.com/file/d/0BykuPmkS9xS3UzFRTlAtTVA0ZHc... 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 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.


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


Z80 still being manufactured in the form of the eZ80


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.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: