A working, transistor-scale replica of the MOS 6502 microprocessor
monster6502.com
monster6502.com
One of the first software projects I ever developed was a real microcode/bus simulation of the 6502 for a required CP class I took what seems life lifetimes ago. I remember the prof telling the class that if anyone was interested in a project where they didn't have to come to class and still get an A, talk to him after class.
Sure I'll go for that I thought...who wants to sit in a boring class when you can create.
So I built the opcode simulator, which took the individual bits on the various internal busses and propagated them through the "chip", on a pretty kickass Atari ST that I owned, which at the time (1985 or so) represented cutting edge PC technology. What I remember most about it was finding a bug in the damn Turbo-C (or whatever I can't remember exactly) compiler I was using that, in some cases, always gave the output of "50" during an bin-to-hex conversion or something.
I did everything I could to try to fix this bug, but no matter what it kept popping up, fouling up the results of my otherwise slick simulation. I was terrified to show the prof, but he was relatively impressed with my use of a PC instead of the school's timeshared VAX and totally disregarded the bug after reviewing my code.
And yes...I got my A. I sure wish I still had that program.
In reading the linked article the founder is Aaron Swartz's dad.
It'd be cool to build a blinken lights bus expander for the C64, or other 8-bit computers of that era. Complete with switches for data and register access, like a PDP or Altair.
Maybe. Or maybe other patterns would emerge - some LEDs would be dimmer, some brighter, then the pattern would change, as the program progresses. Let's try it.
As a bonus, it could have operated statically -- not clear if this one can or not, but I'd guess not, if they were truly faithful to the original 6502 schematic.
Still a cool hack, though!
NMOS is pretty terrible.
60 kHz? Surely these MOSFETs can do better than that! And even simple modern PCBs can run at much higher speeds.
Anyway, at this speed, I can probably run it in a full SPICE simulation on my PC and still outperform it :)
Any single MOSFET can. The slow clock is due to propagation time across multiple MOSFETs.
With CMOS, both the pull-up and pull-down parts are active, so one can be switched on while the other is off. There's always a low resistance path to Vdd or ground, and the subsequent gate capacitance can both charge and discharge quickly. The drawback is that it's harder to manufacture a chip with both N-channel and P-channel transistors.
And in standard chips nowadays, you can still find transmission gate logic (complementary pass transistors so you can pass both strong 1s and strong 0s), pseudo-NMOS logic (using a boring old enhancement mode PMOS transistor tied off to ground as a pull-up resistor) and domino logic (precharge logic with interleaved CMOS stages) in critical datapath circuits, so even in a bog standard CMOS process there's room for trickery.
> The drawback is that it's harder to manufacture a chip with both N-channel and P-channel transistors.
Yeah, and CMOS wasn't competitive for higher speed chips until the 80s (the 68000 was NMOS based until 1985 and some higher end processors eschewed MOS and used bipolar ECL). CMOS had been around for a good while at that point but was mainly used for applications like battery-powered watches and calculators where static power draw was more important than speed. The 65C02 (a CMOS version of the 6502 with a few other features thrown in) came out in 78 and was competitive in speed to the original 6502, though it was originally designed for a customer for use in calculators, but of course ended up being used in numerous home computers.
http://forum.6502.org/viewtopic.php?t=1768
it took about 30 mins to run through reset and then 20mins to do 10 cycles of instructions.
> How big would the MOnSter 6502 be if it were made with through-hole parts instead of surface mount parts?
> About 19 square feet (1.7 square meters).
How big would a 68000 microprocessor be at the scale of the MOnSter 6502?
Also about 19 square feet (1.7 square meters).
Are you going to make a 68000 next?
No.
I think the cost is driven by this being a one off project. That makes one off costs (programming the pick and place machine; profiling the board in the oven; making solder stencil screens; PCB artwork etc) more expensive. I know the costs of these have dropped considerably since I was doing this stuff (2000), but they still add up.
It also means that you don't get economies of scale when buying components. It's usually cheaper to just buy reels of 5000 components than to buy a couple of hundred. (And it makes handling them much easier if you're using a machine to place them!!)
Then you have actual BOM cost which is maybe another $150-200. A 2N7002 is about $0.02 even at 100k volume. Resistors and small passives are often free, and the remaining bits are cheap.
The board is probably $100 each in small volume. Big four layer beast, not cheap.
I used www.7pcb.co.uk and Mouser/Farnell for prices.
So we're looking at a cost of up to $700-800 plus taxes and shipping. That's without any kind of profit for the designer, distributor cuts and so on. At $1k they're breaking even, $2-3k would be standard markup to cover overheads etc.
So basically, when I understand you correctly, a PC motherboard is only as cheap as it is due to scale advantages and lots of the parts on a motherboard being resistors etc.?
My comment about resistors was that most assembly houses will give you certain components for free because they're an insignificant fraction of the price. Also because almost every digital PCB will use e.g 0.1uF capacitors, they can buy enormous quantities. If you look at the link below you see that most of the cost is in the few specialised parts like the North/southbridge, sound card and connectors.
Here's a teardown and BOM analysis for a motherboard: http://electronics360.globalspec.com/article/3280/asus-p5kpl... . Note the BOM cost is essentially the sale price.
This is partly why Apple's stuff costs so much, because they actually price their devices reasonably (from a business sense). Everyone else works on razor thin margins to give you the illusion that hardware is cheap.
Perhaps also add testing costs in there. With that many components one would have to do some some or all of... flying-probe, automated optical inspection and functional testing. The testing alone would have significant setup costs in the thousands of dollars, that get small when amortized over MANY units (but I seriously doubt there will be more than a few made of these!). Given that this is an actual CPU, functional test is going to be fairly complex.
Really glad that someone has taken the time to do this project, it is effectively a work of art or an interesting discussion piece.
One could put this in an apple 2 with the clock divided down.
The Apple video hardware runs independent of the CPU.
Would be super slow, but functional.
At 60khz, the monitor would be responsive on the order of seconds.