- 1
- 209 598
Tomer Kronik
Приєднався 25 вер 2018
I built the 16-bit Hack computer from nand2tetris on breadboards
After finishing the nand2tetris course 2.5 years ago, I decided to build the Hack computer using real hardware. I mostly used 74 series Logic ICs for that. I needed to make little modification to the CPU itself to use RAM chip with a single data bus (in/out).
I designed the VGA and keyboard controller, and a memory controller as well to allow CPU and IO to access the RAM.
For more explanations, pictures and schematics: hackaday.io/project/185131-the-hack-computer-from-nand2tetris-on-breadboards
www.nand2tetris.org
I designed the VGA and keyboard controller, and a memory controller as well to allow CPU and IO to access the RAM.
For more explanations, pictures and schematics: hackaday.io/project/185131-the-hack-computer-from-nand2tetris-on-breadboards
www.nand2tetris.org
Переглядів: 209 674
I'm following the nand to tetris course rn and finished chapter 4 so 2 more to go and then I'm through half, I'm thinking of also building something like this later, thanks for putting this on youtube
What types of electronic components do you use?
This is radical 🔋
*Nice! Replace those brown wires with something that isn't poop color though.*
Imagine making a RISC-V 32 with a floating point unit and a simple GPU. I was looking to buy the material for an 8-bit one and I saw a 16-bit one. Your work is incredible.
Great job! I took that course too, it's a great course
Wire p0rn!
You should make a more detailed video. Is there a blog or article about this hombebrew computer?
@@RoboticsDIY thanks for the suggestion :) Here's an article: hackaday.io/project/185131-the-hack-computer-from-nand2tetris-on-breadboards
Incredible achievement. Most impressive breadboard project I've ever seen
Outstanding!
When you CPU architetuture seriously in you engineering
the wire management is absolutely beautiful.
Cool! I have implemented it in a simulator that I call LogicSimX and now I want to write HACK Assembly code to demonstrate it running a simple game. Did you make your code public anywhere for your game demo?
You're gem
Cool! I did NAND to Tetris on Coursera. Was a very elegant architecture except for one fly in the ointment. It is claimed to be a von Neumann architecture machine. It is not, it is a pure Harvard architecture, the program runs from a ROM that is divorced from the data RAM. There isn't even any way to even write the ROM from within the machine itself. Instead you load it externally somehow. Usually that some how is just loading a file into the hardware simulator, analogous to burning and replacing a physical ROM. This is similar to what happens in many embedded microcontrollers. But it's not what happens in computing generally. Not even in the 8 bit micro days. In computing generally an important part of the puzzle is you have real von Neumann architecture, their isn't rigid separation between program and data memory, it all in the same "core", "main store", "main memory", "RAM", whatever you want to call it. This gives the absolutely crucial capability that programs running on the computer can make other programs that run on the computer. Yes this course does a good job showing you how to create a computer and write an assembler, virtual machine and very simple recursive descent compiler for it, but crucially you never get to run said compiler, virtual machine or compiler _on_ the computer you've created. Because in fact by design it's actually physically impossible to get any program running on the computer to write to the program ROM from within the computer. This is really unsatisfying because this is supposed to be a sort of create a computer system from nothing, but in fact you must run the development environment on another computer. In fact you can write everything from the development environment in any programming language you like. Sure such an approach works if you already have a computer with a high-level language for it already, but this is extremely unsatisfactory for answering the question of well by what process did the first assemblers, calling and linking conventions and then high level language, perhaps with a virtual machine layer to ease implementation, come about? Clearly by writing an assembler in machine code, deciding on a calling convention, then writing a linker in assembler that uses this calling convention, then with now having assembly language and a way of creating and using libraries with procedure calls and functions you move on to writing a compiler for a high level language in assembler, maybe coming up with a simpler language than your high level language but more abstract and/or featureful on the way like a virtual machine to make the high level language compiler easier to implement. But you never get to do this. In fact it's impossible without a major hardware addition like adding a ROM burner and swapper I/O device. Also it would perhaps be extremely cramped in the 16K 16bit words and not have any room for compiling decent sized programs?
based
I learned part 1 of that course several years ago, and i forgot all of it.
this should be at at the moma
this guy is the root of all importer syndrome
Great work!
what are the specs the graphics on that game is too much for my 3070
looks at this and wants to take it apart and rebuild it to see if it still works after my ADHD ass gets mits on it
This is just beautiful I'm currently on my journey of building a 6502
Impressive build. Nice work!
How much $$ it was needed for all that?
hocam Türk müsün?
THIS IS A REAL MASTERPIECE
no way 😮😮😮
That's great man!!! keep up the hard work
This is why there's a shortage of ICs
Imagina esse computador 16 Bits rodar o Minecraft eu tenho certeza que o computador 16 bits iria estourar todo e iria virar po
I do wonder what was the cost for all the wires components and breadboards?
I think all the materials ended up being around 1000 usd.
@@tomerkronik why do i feel like it should be more and less at the same time
I am on my first project right now, i cant wait to build it myself. Yours looks amazing, i am going to use this as a wall decor and play some ping pong loll
I admire your creation, I can understand the effort behind it, as I built Ben Eater's computer on the breadboards and the Hack computer on FPGA. Kudos to you!
bigger than the PC in minecraft i built with my friend
Wow! what a great job What integrated circuits have you used to drive the graphics? It looks very dynamic! I'd like to see a schematic. I have also built a 32-bit CPU.
Thanks :) I've used 74 series ICs for the graphics. You can have a look here on the exact parts: hackaday.io/project/185131-the-hack-computer-from-nand2tetris-on-breadboards/details. Do you have pictures or video of the CPU that you've built?
@@tomerkronik I was looking at your blog, and I see how you have organized the RAM for video and for the keyboard. I found the way you handle the RAM very clever, as far as I can see you only used one bit to reflect the pixel in monochrome RGB. Great job, I fully understand how laborious it is to do that. Basically I did the same performance for VGA, but I did it at 640x480pixels. I'll give you the link in case you want to see something: www.youtube.com/@robertogudino1919/videos There you can see the step by step of each stage, which took me almost 4 years.
I expect you have so much fun while doing this. Fantastic work!
Now do it again with relays.
Bro, it would be nice if you made tutorials for this
fuck man. nostalgia. i read this book when i was 11. spent the following years making minecraft CPUs like that. goat video and book u guys should read it too and they have a course on coursera
Now that's ART
Beautiful........Can you give some quick tips on how to wire Circuits in BreadBoard so neatly!
HOLY CRAP! I was getting around to try it on an old DE1 like 5 years ago but never got around to it! This is so awesome, DUDE! I can't believe this post was from a year ago and I just came across it for the first time today!
That breadboard aesthetic is probably the most sexy thing about this haha Very cool build!
But can it run UNIX?
Beautiful!
Mate, that's beautiful.
Recently found Nand2Tetris and started watching the lectures. Very inspiring. Could you potentially scale this architecture up to run early Unix/BSD/Linux (terminal interface only and only keyboard input)? You'd need a proper filesystem and interface with some kind of storage. I don't really care about writing BIOS or OS software, just the DIY hardware bit (CPU/RAM/IO etc).
sick bastard
Wow!!! Superb