5 ms·
I wish this wasn't so far above my abilities. It would be fantastic to find a course to work up to this point.
by kevinelliott 16y ago
I wish this wasn't so far above my abilities. It would be fantastic to find a course to work up to this point.
- coin 16y agoThis is pretty much standard Computer Engineering curriculum. Most CE (and computer science) majors will have had a class that built a microprocessor (and of course all the digital electronics leading up to it).
- Natsu 16y agoIt was standard for EEs at my university, too. I remember that we learned the basics of binary (the logic gates, truth tables, Karnaugh maps), then built 1-bit adders, 8-bit adders, an ALU (with only addition and subtraction), a memory cell and a few other things until we had a basic workable CPU.
- sliverstorm 16y agoThough, at least at my school, we did the actual 'design a microprocessor' in software. It's cool to have an end product, but with software you are mostly limited to conceptual errors rather than the joyous world of debugging 8 identical (i.e. 8 bit computer) full data paths.
- Zaak 16y agoThe Elements of Computing Systems: Building a Modern Computer from First Principles http://www.idc.ac.il/tecs/ http://www.idc.ac.il/tecs/
- dfox 16y agoYou need two things to build your own CPU from scratch: 1) Understanding that computers are not magic, but actually state machines built from relatively simple and understandable parts. 2) Enough patience and self-discipline to actually design and build something like that, which at least to me seems like larger problem. In software you get some meaningful partial results that are to some extent interesting by themselves pretty early in development (mostly). In hardware project of this kind you have to build it almost completely for it to do something meaningful.
- Someone 16y agoI think the larger problem is that hardware at this scale is so finicky. You can get 'meaningful' results fairly soon (say a half-adder, a working clock, or an instruction decoder), but making them work reliably, so that parts that work in isolation still work when connected to each other is problematic. Voltages drops may get too large, the clock signal might get too diluted, etc.
- sliverstorm 16y agoAbstraction is key when it comes to CPU's. Do I know how to make a CPU? No. But you know what I do know- how to use transistors to make gates. How to use gates to make flip-flops, ALU's, and memory-mapped IO. How to make a pipeline out of flip-flops and ALU's. So on and so forth. Nobody can envision a whole CPU in their head right down to the gates, they rely on many layers of abstraction.