I love this art/engineering project. The whole concept of extra-large unintegrated circuits is just so amusing.
The team behind this project sells kits for two classic ICs, the 741 op-amp [1] and the 555 timer [2]. Sadly, they've said the Monster6502 is too big and complex to make a practical kit.
The Apple A8X, found in the iPad Air 2, contains about 3 billion transistors. (This is comparable to the number of transistors in modern desktop computer CPUs as well.) At the scale of the MOnSter 6502, that would take about 885,000 square feet (over 20 acres or 8 hectares) — an area about 940 ft (286 m) square.
We used to have circuits, and when integrated on one piece of silicone, we called them "integrated circuits", while the old ones became "discrete circuits".
I have been kicking around the idea of doing this to something like a NES. Then selling them preassembled. But then I remember I can solder at all and it is decently expensive to do.
Wait, so if I understand this correctly (what I don't know about hardware is a lot!), is this basically a "macroprocessor"? As in, it functions the same way as a vanilla 6502, but done at a larger scale?
Actually pretty cool that it's able to get 1/20th the speed when it's this big!
It's a discrete CPU. This is how processors were made before microprocessors. Before 1970, we had discrete component mainframe machines, in fact running at multi-MHz speeds (e.g. CDC 6600).
The main issue isn't the CPU as such, it's memory. You can reasonably make a usable CPU using relays even, but a non-trivial amount of memory takes up sooo much space.
Discrete logic circuits can be fast because they have a lot of area over which to dissipate heat and can guzzle current.
Moreover, most of them used either ECL or TTL, which are logic families much faster than P/N/CMOS. This being a transistor-level replica of an NMOS 6502, it can't go much faster.
> Discrete logic circuits can be fast because they have a lot of area over which to dissipate heat and can guzzle current.
... but not too fast either, because the long trace lengths are antennas so you'll end up in EMF emission regulations hell on the one side, and signal integrity issues on the other side. On top of that come losses from inductive and capacitive coupling.
Yep. The bummer is that the Apple ][ relies on the clock speed of the 6502 to handle some of its functionality (most notably video handling), so you can’t just run a cable to the CPU socket on the Apple motherboard. I wonder if any of the other classic 6502 machines (Commodore, Atari, Acorn, BBC, etc.) would work?
Again, I know basically nothing about hardware, so this is likely a dumb question: could you conceivably get an oscillator/clock chip that also operates at 1/20th the speed, wire that into the Apple ][, and then wire in this giant CPU?
> Does it run at the full speed of an original 6502 chip?
> No; it's relatively slow. The MOnSter 6502 runs at about 1/20th the speed of the original, thanks to the much larger capacitance of the design. The maximum reliable clock rate is around 50 kHz. The primary limit to the clock speed is the gate capacitance of the MOSFETs that we are using, which is much larger than the capacitance of the MOSFETs on an original 6502 die.
Now I'm curious but in way over my head.
Could the speed be improved by using MOSFETs with better capacitance?
Can the full 1.023 Mhz be attained by throwing money at it or are there physical limitations at that scale?
I'm not an expert but a hobbyist. Take what I say with a grain of salt.
> Could the speed be improved by using MOSFETs with better capacitance?
Not using MOSFETs would make it faster, in theory. MOSFETs have a delay time and are considered slow. But it appears they want to be true to how the original was made. There definitely exist mosfets indistinguishable from dust - I made the mistake of designing with a few at one point. So probably, yes.
Another thing I noticed is that the distance between the components on the board is quite high. They might have done that to replicate the original layout, or maybe I'm just not seeing it correctly. But everything - including the traces on the board - has some capacitance.
> Can the full 1.023 Mhz be attained by throwing money at it or are there physical limitations at that scale?
Hard to answer without measuring, though I'd imagine it's possible. 1MHz isn't that fast, but if you have high capacitances or they don't switch fast enough (e.g. MOSFETs) then your signals are going to get muddy.
EDIT: to be clear, not ragging on the project. This stuff is beyond cool.
This is basically a second generation computer, whose heyday was in the first half of the 1960s – after vacuum tubes, but before the first integrated circuits.
It makes me wonder, what transistor family would give you the best performance for this (very unusual nowadays) use case? Obviously not MOSFETs.
From what I understand, germanium transistors were most common for 2nd generation computers, because (at the time) silicon transistor technology wasn't sufficiently mature to be used for that application.
The real question is why would you. This is an educational project that visually demonstrates how a CPU operates. It could clock at 0.5 Hz for that purpose.
I assume they use garden variety MOSFETs like 2N7002, which cost a few pennies when bought in bulk.
The gate capacitance is 20 pF. One logic gate output is typically driving several inputs, so the typical load is several-fold of this capacitance. One could check the schematics for the maximum fan-out in the real circuit. The longest, one foot long traces on the PCB add another few tens of pF. So the capacitance seen by an output of a logic gate will probably be in the range of 20-100 pF most of the time. But it is the slowest gates which determine the speed of the whole circuit, so the worst case could be much worse.
These transistors themselves are extremely fast and can switch on and off in about 3 ns. Their channel resistance is in single Ohm range even at the lowish gate voltages, so the RC time constant is also very small 100pF * 3 Ohms = 0.3 ns. Thus this is also not an issue. The slowness of the circuit comes from elsewhere.
First, from the resistors which pull the logic gate outputs to the supply voltage. There is one for each logic gate, so a total of one thousand of these, and in the first approximation half of them conduct at any given time. To keep power consumption low, these resistors must have relatively high resistance values. If we limit the current for the logic to 1 A total, that is 2 mA for each of the 500 resistors. Therefore the resistors must be 2.5 kOhm for 5 V supply voltage. Thus charging of the nodes of the circuit through these 2.5 kOhm resistors is almost a thousand times slower than discharging the same nodes through the 3 Ohm channel resistance of a fully open transistor. Still, this is not too bad -- on the order of 250 ns of delay per gate.
But the frequency for the whole circuit is determined by delay not through just one, but through many gates in series, plus there are probably parts of the circuit topology which are not optimal for implementing them with discrete transistors, where the delay does not follow from such a simple reasoning as above.
The speed can probably be easily increased by an order of magnitude if one were willing to spend 50W instead of 5W for the circuit. Beyond that, one would want a CPU circuit designed specifically for implementation in discrete transistors, not a discrete element copy of a monolithic chip.
I signed up for the mailing list when it was first on HN a few years ago, but haven't seen many signs of progress. Website still says mid 2023 for a launch.
6502 was my first CPU so I'm totally down to buy one, even though it's going to be pretty expensive. I'd be pleased if they could make them for less than $5k.
Wonder if it's feasable and how much work it would be to record a run of eg Super Mario Land and play the processor instructions back on this thing hanging on the wall.
Would be a nice conversation piece.
Dot matrix display. Progress bar is underneath the Level indicator.
Plus presence sensor. Not PIR. And RTC in/on whatever plays the instructions to always seemlessly pick up on the loop.
Complete working transistor-scale replica of the classic MOS6502 microprocessor - https://news.ycombinator.com/item?id=33841901 - Dec 2022 (38 comments)
MOnSter 6502 - https://news.ycombinator.com/item?id=26507525 - March 2021 (31 comments)
The MOnSter 6502: transistor-scale replica of classic MOS 6502 microprocessor - https://news.ycombinator.com/item?id=17969472 - Sept 2018 (81 comments)
A working, transistor-scale replica of the MOS 6502 microprocessor - https://news.ycombinator.com/item?id=14386413 - May 2017 (44 comments)
The MOnSter 6502 - https://news.ycombinator.com/item?id=11703596 - May 2016 (74 comments)
The team behind this project sells kits for two classic ICs, the 741 op-amp [1] and the 555 timer [2]. Sadly, they've said the Monster6502 is too big and complex to make a practical kit.
[1] https://shop.evilmadscientist.com/tinykitlist/762 [2] https://shop.evilmadscientist.com/tinykitlist/652
I've said it before: I would totally buy one of those just to hang on my wall. It's a truly awesome project, and I love blinkenlights!
[1] https://www.evilmadscientist.com/2024/bantam-tools/
The current iPhone processor (Apple A17) contains 19 billion transistors. So now we have 126 acres in a pocket.
https://en.wikipedia.org/wiki/Apple_A17
We used to have circuits, and when integrated on one piece of silicone, we called them "integrated circuits", while the old ones became "discrete circuits".
Actually pretty cool that it's able to get 1/20th the speed when it's this big!
https://en.wikipedia.org/wiki/CDC_6600
60 bit, 10 MHz processor, introduced in 1964.
Article says that was 10 times faster than other contemporary machines; but that still leaves those at around a solid megahertz.
Discrete logic circuits can be fast because they have a lot of area over which to dissipate heat and can guzzle current.
Moreover, most of them used either ECL or TTL, which are logic families much faster than P/N/CMOS. This being a transistor-level replica of an NMOS 6502, it can't go much faster.
... but not too fast either, because the long trace lengths are antennas so you'll end up in EMF emission regulations hell on the one side, and signal integrity issues on the other side. On top of that come losses from inductive and capacitive coupling.
Also disk I/O and RS-232 are bit-banged.
Deleted Comment
> No; it's relatively slow. The MOnSter 6502 runs at about 1/20th the speed of the original, thanks to the much larger capacitance of the design. The maximum reliable clock rate is around 50 kHz. The primary limit to the clock speed is the gate capacitance of the MOSFETs that we are using, which is much larger than the capacitance of the MOSFETs on an original 6502 die.
Now I'm curious but in way over my head.
Could the speed be improved by using MOSFETs with better capacitance?
Can the full 1.023 Mhz be attained by throwing money at it or are there physical limitations at that scale?
> Could the speed be improved by using MOSFETs with better capacitance?
Not using MOSFETs would make it faster, in theory. MOSFETs have a delay time and are considered slow. But it appears they want to be true to how the original was made. There definitely exist mosfets indistinguishable from dust - I made the mistake of designing with a few at one point. So probably, yes.
Another thing I noticed is that the distance between the components on the board is quite high. They might have done that to replicate the original layout, or maybe I'm just not seeing it correctly. But everything - including the traces on the board - has some capacitance.
> Can the full 1.023 Mhz be attained by throwing money at it or are there physical limitations at that scale?
Hard to answer without measuring, though I'd imagine it's possible. 1MHz isn't that fast, but if you have high capacitances or they don't switch fast enough (e.g. MOSFETs) then your signals are going to get muddy.
EDIT: to be clear, not ragging on the project. This stuff is beyond cool.
It makes me wonder, what transistor family would give you the best performance for this (very unusual nowadays) use case? Obviously not MOSFETs.
From what I understand, germanium transistors were most common for 2nd generation computers, because (at the time) silicon transistor technology wasn't sufficiently mature to be used for that application.
My understanding is that the MOS 6502 was MOS, so MOSFET. Not using MOSFETs would make it less of a replica.
Implementing the replica in an integrated circuit instead of discrete transistors would lower capacitance.
The delay time is a consequence of the capacitance.
The gate capacitance is 20 pF. One logic gate output is typically driving several inputs, so the typical load is several-fold of this capacitance. One could check the schematics for the maximum fan-out in the real circuit. The longest, one foot long traces on the PCB add another few tens of pF. So the capacitance seen by an output of a logic gate will probably be in the range of 20-100 pF most of the time. But it is the slowest gates which determine the speed of the whole circuit, so the worst case could be much worse.
These transistors themselves are extremely fast and can switch on and off in about 3 ns. Their channel resistance is in single Ohm range even at the lowish gate voltages, so the RC time constant is also very small 100pF * 3 Ohms = 0.3 ns. Thus this is also not an issue. The slowness of the circuit comes from elsewhere.
First, from the resistors which pull the logic gate outputs to the supply voltage. There is one for each logic gate, so a total of one thousand of these, and in the first approximation half of them conduct at any given time. To keep power consumption low, these resistors must have relatively high resistance values. If we limit the current for the logic to 1 A total, that is 2 mA for each of the 500 resistors. Therefore the resistors must be 2.5 kOhm for 5 V supply voltage. Thus charging of the nodes of the circuit through these 2.5 kOhm resistors is almost a thousand times slower than discharging the same nodes through the 3 Ohm channel resistance of a fully open transistor. Still, this is not too bad -- on the order of 250 ns of delay per gate.
But the frequency for the whole circuit is determined by delay not through just one, but through many gates in series, plus there are probably parts of the circuit topology which are not optimal for implementing them with discrete transistors, where the delay does not follow from such a simple reasoning as above.
The speed can probably be easily increased by an order of magnitude if one were willing to spend 50W instead of 5W for the circuit. Beyond that, one would want a CPU circuit designed specifically for implementation in discrete transistors, not a discrete element copy of a monolithic chip.
For those too lazy to do the math: the original did 1 MHz to 3 MHz.
Note the units -which I missed the first time- kHz vs mHz.
https://en.wikipedia.org/wiki/MOS_Technology_6502
6502 was my first CPU so I'm totally down to buy one, even though it's going to be pretty expensive. I'd be pleased if they could make them for less than $5k.
[1] https://www.masswerk.at/nowgobang/2021/6502-illegal-opcodes