
i8080 precise replica in Verilog, based on reverse engineering of real die - kens
https://github.com/1801BM1/vm80a
======
cmrdporcupine
I love that this is a replica of the Soviet replica of the 8080. So a replica
of a replica.

~~~
bonzini
Do you have any idea how the Soviet replicas were built?

~~~
virtue3
[https://retrocomputing.stackexchange.com/questions/1858/how-...](https://retrocomputing.stackexchange.com/questions/1858/how-
were-western-computer-chips-reverse-engineered-in-ussr)

There's some pretty famous "signs" that companies would put into their chips
to show that it was blatently stolen. Also at some point it became a game:

[https://micro.magnet.fsu.edu/creatures/pages/russians.html](https://micro.magnet.fsu.edu/creatures/pages/russians.html)

What's fascinating is that you can basically run a country with little to no
"actual" development of computer hardware, and just have an entire industry
around "copying" to keep yourself up to date (or a few years behind at most).

This is pretty evident with China of the past few years in military tech, and
now they are starting to leap frog (See engine issues with their new fighter,
and how they are almost there but not quite. Russia is unwilling to sell them
newer engines for fear of copying essentially)

~~~
a_concerned
Your comment got me interested and i compared die photos of both chips.

Intel 8080A die photo: [https://vintageteardown.com/wp-
content/uploads/2018/04/Intel...](https://vintageteardown.com/wp-
content/uploads/2018/04/Intel8080A_10x-1.jpg)

580BM80A die photo:
[https://raw.githubusercontent.com/1801BM1/vm80a/master/img/v...](https://raw.githubusercontent.com/1801BM1/vm80a/master/img/vm80a.jpg)

I am not an expert in CPU design, so please correct me if i am wrong, but
chips look rather different (at least Intel logo was removed on the 580BM80A
die). Could it be that 580BM80A implements Intel's ISA, but actual CPU
architecture is of their own? And could we call it a "copy"/"replica" if so?
Like could we say that AMD CPUs are replicas of Intel CPUs, because they
implement the same ISA?

~~~
kens
Those two chips are a lot more different than I'd expect. (Even taking into
account the 90 degree rotation.) In particular, the ALU (upper-left in Intel
photo) is fairly regular, while the ALU in the Russian photo (lower-left)
looks like random logic. And the PLAs and instruction register seem entirely
different between the two.

I was skeptical at first, but I think it's possible that the Russian chip is a
different implementation, and not just the same circuitry with the layout re-
done for their process. It would require a closer look at the circuitry to
determine for sure.

For the first link, removing https will avoid the expired certificate warning:
[http://vintageteardown.com/wp-
content/uploads/2018/04/Intel8...](http://vintageteardown.com/wp-
content/uploads/2018/04/Intel8080A_10x-1.jpg)

------
phendrenad2
It's my understanding that photos of a semiconductor die (pre-CMOS) aren't
100% useful, since often the sizes of transistors relative to one another
becomes an important detail, which is hard to extrapolate to standard logic
gates. It's my understanding that the Motorola 68000 still has some
outstanding emulation problems (related to the instruction cache), due to
using HMOS logic. NMOS chips like the 8080 are also affected by this.

~~~
kens
Transistor sizes are easy to extract from photos. What's hard is doping
levels, which can make a transistor enhancement or depletion. The type is
usually obvious from context. However, the Z-80 designers famously used the
"wrong" doping for a few transistors. The purpose of this was to create traps
for companies copying the IC from the die, since a straightforward copy would
yield a few gates that didn't work right.

I've found a few of these traps in the Z-80, and they were placed very
maliciously. The circuit appears reasonable and correct, but fails in subtle
ways.

~~~
bonzini
Have you blogged about it?

~~~
kens
I haven't blogged about the Z-80 traps. I was waiting until Sergei wrote about
the transistors, but then didn't get around to it.

------
oneplane
As a person not fluent in processor design, chip design, FPGAs or Verilog, is
there some demonstration of actual software running on this implementation? Or
is that one or more steps away after synthesising and loading the bitstream in
to the FPGA?

~~~
happycube
There are simple demonstrations in the repo, and he's run it on actual FPGA
boards.

But beyond that, the core has already been ported to MiSTer, which would be
much more enjoyable to use: [https://github.com/MiSTer-
devel/Altair8800_Mister](https://github.com/MiSTer-devel/Altair8800_Mister)

~~~
watersb
(MiSTer is an open-source FPGA-based retro emulator)

[https://emulation.gametechwiki.com/index.php/MiSTer](https://emulation.gametechwiki.com/index.php/MiSTer)

------
xellisx
I've always wondered if a Soviet block made a clone that was better in some
way, or if they ever came up with their own CPU architecture.

Didn't IBM have an ALU design that were more harden again calculation errors?

~~~
metaphor
> _Didn 't IBM have an ALU design that were more harden again calculation
> errors?_

I'm genuinely confused what is meant by this in practice. Like some sort of
redundant ALU architecture or rad hard encapsulation?

~~~
krallja
‘kens has an article about IBM qui-binary arithmetic:
[http://www.righto.com/2015/10/qui-binary-arithmetic-
how-1960...](http://www.righto.com/2015/10/qui-binary-arithmetic-
how-1960s-ibm.html)

this might be what is referenced?

~~~
xellisx
That's what I was thinking about!

