3 ms·
I got excited when I saw the title, then checked the URL and it is a software simulation / game of building a computer. I'm not denying this can be interesting,
by ElHacker 6y ago
I got excited when I saw the title, then checked the URL and it is a software simulation / game of building a computer. I'm not denying this can be interesting, but I've been thinking for a while to get my hands dirty with hardware as a side project. (I'm a software eng by profession). I haven't really done a lot of research on this yet, but does anyone have any recommended guides/books/tutorials on how to get started designing and building my own computer? (extra points it it's a mobile/embedded computer)
- dghlsakjg 6y agoCheck out Ben Eater on YT. He has a series where he builds an 8 bit CPU from components. And another where he builds a 6502 based computer from scratch. He sells kits to follow along, and explains everything along the way
- chrisdalke 6y agoRecommended the exact same thing -- I'm glad I'm not the only one who immediately thought of his channel.
- chrisdalke 6y agoIf you're a visual learner, check out Ben Eater's channel: https://www.youtube.com/user/eaterbc https://www.youtube.com/user/eaterbc He has a really great video series where he builds a small computer from scratch on breadboards. Also some other highlights: Reliable data transmission, more educational: https://www.youtube.com/watch?v=eq5YpKHXJDM https://www.youtube.com/watch?v=eq5YpKHXJDM DIY VGA "video card": https://www.youtube.com/watch?v=uqY3FMuMuRo https://www.youtube.com/watch?v=uqY3FMuMuRo Super educational, but if you want to get into more embedded hardware hacking, I would say that building a homemade computer like he does is probably not a super exciting place to start. I'd recommend picking up some Teensy 4.0 microcontrollers and build some small hardware projects with the microcontroller before diving into lower-level circuitry.
- amelius 6y agoThe first question you'll need to answer is if you want to build a computer from discrete gates, or if you'd rather glue large existing IP blocks together. In the former approach, you won't get anything in a mobile form factor, as your computer would simply be too big. But you might learn more than in the latter approach.
- fernly 6y agoAlso James Sharman's channel[1]. He has built an 8-bit, pipelined, computer from scratch. He works at the level of TTL chips. Sharman is good at explaining what he's doing, but does not go down to the very detailed level of bit-by-bit explanation of Ben Eater. [1] https://www.youtube.com/user/weirdboyjim https://www.youtube.com/user/weirdboyjim
- Unesco88 6y agoLook at the collections on the side bar. https://www.electronicsforu.com/resources/half-full-wave-rectifier-basics https://www.electronicsforu.com/resources/half-full-wave-rec...
- deleted 6y ago[deleted]
- smt1 6y agoRethink about what a computer or calculator is? It depends on what you value, TBH. For example, let's go back to what Von Neumann architecture, the ENIAC: ENIAC: Von Neumann quickly appreciated the crippling limitations of cable plug-board-and-switches “programming,’’ and in fact had already conceived the revolutionary idea of not only stor- ing a problem’s input data inside the machine but also so storing the program itself that would manipulate that data. Von Neumann was smart and apparently he was known to calculate in his head so he could compare what the computational equivalent, but his wife did most of the accounting for him, as did most of the so called human calculators of the day. He held back progress of computer architectures for a long time. Now, the ENIAC's successor: MANIAC-I 37 commands As a measure of MANIAC-I’s speed, it could add two numbers in ninety microseconds and multiply or divide two numbers in one millisecond. Briefly, the problem was to study how the vibrational energy of the crystal, if initially located in just one mode of oscillation of the crystal’s atoms, would over time spread itself throughout all the possible modes of oscillation (the meaning of mode of oscillation will be explained soon). This mode spreading of the energy is called the equipartition of energy in statistical physics. These days, "seconds" is already defined (at least in the Si system, but generally you'd want to Metrify stuff because it lets you do paper napkin physics much easier). You can build huge "global wires" of information that the "computer" can precalculate, it may require revisiting the limits of what can be achieved "in silico" or without hybrid "data flow"/"control flow" architectures and distributed virtual power transmission still allow for matter field bulk transport when needed, but dispatch shared resource usage more smartly (this includes stuff we can't "see" like consumption of natural resource flows. these tend to be global issues).
- bmitc 6y agoI would recommended just using the Nand2Tetris book Elements of Computing Systems and implement the computer on an FPGA. I went through the course using the original project’s simulation tools, and I am now circling back and implementing the Hack CPU on a Xilinx FPGA using VHDL.
- Teever 6y agoThat's my plan too! I'm still working on the Coursera course and I just started working on the ALU. Can you suggest any resources for FPGAs? What kind of hardware do you intend to implement the Hack CPU on?
- bmitc 6y agoI am currently using a Digilent Nexys A7-100T. https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum https://store.digilentinc.com/nexys-a7-fpga-trainer-board-re... It has a USB host port for a keyboard and VGA out for the display. The jury is still out as to whether I can build the entire CPU using nand gates, including the ROM and RAM memory. Doing so will use a lot of the FPGA's resources from calculations I've seen. If that's not possible for the memory, then I plan on using the block RAM that's included on the Xilinx board, but for everything else I plan on following the book's design as close as possible. So far, I am in chapters 1-3 simply porting my solutions in the course's HDL to VHDL, which is relatively straightforward so far. I'm taking my time to make sure I'm doing things "professionally", as I'd like to learn the Xilinx toolchain in my professional work at some point. My experience with FPGAs has been implementing them with LabVIEW, which actually makes learning VHDL somewhat mechanical although a bit frustrating. (If I had an FPGA big enough that's targetable via LabVIEW, I could probably build and test the computer in a day or two aside from the VGA and keyboard.) The combinatorial gates are done now, and I've implemented a DFF and am building things from there. So now I'm learning about clocking and such with VHDL. The most troublesome part I anticipate is what to do about the ROM and RAM memory and the display and keyboard. I'd also like to update the CPU where I can interactively download new code to the CPU from a PC using the assembler and software stack I'm building, which is in F#. I have several books I am using as reference: - VHDL By Example by Blaine C. Readler (great first intro to VHDL) - Digital Design Using Digilent FPGA Boards: VHDL/Vivado Edition by Haskell and Hanna - Effective Coding with VHDL: Principles and Best Practices by Ricardo Jasinski (I'm using this to sort through the various ways to do things in VHDL and have best practices in my code.) - VHDL for Logic Synthesis by Andrew Rushton - FPGA Prototyping by VHDL Examples: Xilinx MicroBlaze MCS SoC by Pong Chu
- avmich 6y agoI liked this for a beginning - http://web.archive.org/web/20160611061746/http://www.cryogenius.com/hardware/transistors/ http://web.archive.org/web/20160611061746/http://www.cryogen... . Sadly, author now asks Wayback Machine to remove the content of the site...