Way back in 2012 I came across the Intel 4004 35th Anniversary Project, which had unearthed the original schematic for the Intel 4004 CPU and related chips, and got the idea to implement the CPU using discrete components. This seemed like the kind of project that would teach me a lot, while not representing much of a risk. After all, the Anniversary Project had already done this once; I'd seen it running in an exhibit in the Intel Museum.
I had the "hobbyist" license for Eagle, which limited me to 100mm x 160mm boards. This was nowhere near large enough to implement the entire CPU, so I divided the CPU into several smaller modules. I decided my first board would implement the Instruction Pointer module.
After I assembled and tested the Instruction Pointer board, Tim McNerney informed me that they'd run out of time and funds to do a discrete component implementation, and the museum exhibit runs on a PC. Talk about a surprise; I didn't realize I was blazing a new trail. Still, thousands (millions?) of the original chip proves the basic design.
I'd fully intended to complete my implementation of the CPU, but Real Life intervened and the project got shelved. Since then I've corresponded with several people who wanted information about my implementation, and I've always been happy to comply. The 4-terminal MOSFET I used, the NXP BSS83N, went out of production, and we discussed alternatives.
Now the renamed 50th Anniversary Project has announced that Klaus Scheffler has succeeded in constructing a complete, working CPU from discrete components. Congratulations to him!
I was hoping to find details of their implementation, but the Anniversary Project website doesn't have much more than a photo of the board. Not having the constraints imposed by my Eagle license, he was able to put everything on a single board. To someone who has studied the schematics and original chip design, the functional blocks are readily apparent. I know this was Tim McNerney's original intent, and it would be much more useful in a museum exhibit than my stack of smaller boards.
Klaus tells me he used the SST-215 MOSFET throughout, which is quite similar to the NXP BSS83 I used in critical places. He also mentioned it's currently running at 25 KHz, but I don't know if that's its maximum speed.
I still plan to finish my CPU re-construction at some point. Being "first" was never part of my plan, as I thought Tim had already done this when I started. I have all the parts I need except the boards themselves, and it would be a shame to have come this far and not complete the project.
Thanks Reece! I went up to 250 kHz clock, the 4004-PCB was driven by a Teensy 4.1 for which Lajos Kintli implemented a console to simulate the connected RAM and ROM. This entire project wouldnt be possible without Lajos Kintli´s simulator. I am now working on a transistor-based 4002.
ReplyDeleteHallo. Ich bewundere ihre Leistung. Ich hab ihren Sohn bei einem Forschungswetbewerb kennen gelehrn. Ich hab diverse Fragen bezüglich der 4004.
ReplyDeleteSehr gerne, meine Email finden Sie im Internet (aus Tuebingen)
Delete