Tomer Kronik
Tomer Kronik
  • 1
  • 209 598
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
Переглядів: 209 674

Відео

КОМЕНТАРІ

  • @KatarinaClaes-q1p
    @KatarinaClaes-q1p 7 днів тому

    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

  • @RaizelCadisEtrama-j5d
    @RaizelCadisEtrama-j5d 25 днів тому

    What types of electronic components do you use?

  • @theA731N
    @theA731N Місяць тому

    This is radical 🔋

  • @OMNI_INFINITY
    @OMNI_INFINITY Місяць тому

    *Nice! Replace those brown wires with something that isn't poop color though.*

  • @TulhoKay
    @TulhoKay Місяць тому

    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.

  • @geofisica_aplicada
    @geofisica_aplicada 2 місяці тому

    Great job! I took that course too, it's a great course

  • @erniepasveer8027
    @erniepasveer8027 2 місяці тому

    Wire p0rn!

  • @RoboticsDIY
    @RoboticsDIY 3 місяці тому

    You should make a more detailed video. Is there a blog or article about this hombebrew computer?

    • @tomerkronik
      @tomerkronik 3 місяці тому

      @@RoboticsDIY thanks for the suggestion :) Here's an article: hackaday.io/project/185131-the-hack-computer-from-nand2tetris-on-breadboards

  • @clamr6122
    @clamr6122 3 місяці тому

    Incredible achievement. Most impressive breadboard project I've ever seen

  • @jdxtube68
    @jdxtube68 3 місяці тому

    Outstanding!

  • @PRGatNFSU
    @PRGatNFSU 4 місяці тому

    When you CPU architetuture seriously in you engineering

  • @prasenjeetrathore
    @prasenjeetrathore 5 місяців тому

    the wire management is absolutely beautiful.

  • @GDScriptDude
    @GDScriptDude 6 місяців тому

    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?

  • @engrasad4913
    @engrasad4913 6 місяців тому

    You're gem

  • @cianmoriarty7345
    @cianmoriarty7345 6 місяців тому

    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?

  • @zlsKeksia
    @zlsKeksia 6 місяців тому

    based

  • @jenkinssmith9125
    @jenkinssmith9125 8 місяців тому

    I learned part 1 of that course several years ago, and i forgot all of it.

  • @olw4196
    @olw4196 8 місяців тому

    this should be at at the moma

  • @ani-zxk
    @ani-zxk 8 місяців тому

    this guy is the root of all importer syndrome

  • @AnasAhmadYT
    @AnasAhmadYT 8 місяців тому

    Great work!

  • @Mycatkeepstryingtodestroymybed
    @Mycatkeepstryingtodestroymybed 8 місяців тому

    what are the specs the graphics on that game is too much for my 3070

  • @TOOTIREDTOARGUE
    @TOOTIREDTOARGUE 9 місяців тому

    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

  • @varshneydevansh
    @varshneydevansh 9 місяців тому

    This is just beautiful I'm currently on my journey of building a 6502

  • @TroySchrapel
    @TroySchrapel 9 місяців тому

    Impressive build. Nice work!

  • @edreypomarez6823
    @edreypomarez6823 9 місяців тому

    How much $$ it was needed for all that?

  • @AlperDalm
    @AlperDalm 9 місяців тому

    hocam Türk müsün?

  • @wowe-x5p
    @wowe-x5p 9 місяців тому

    THIS IS A REAL MASTERPIECE

  • @hafo821
    @hafo821 10 місяців тому

    no way 😮😮😮

  • @Hassan-lv9di
    @Hassan-lv9di 10 місяців тому

    That's great man!!! keep up the hard work

  • @greywolf271
    @greywolf271 11 місяців тому

    This is why there's a shortage of ICs

  • @joaodejesus4123
    @joaodejesus4123 Рік тому

    Imagina esse computador 16 Bits rodar o Minecraft eu tenho certeza que o computador 16 bits iria estourar todo e iria virar po

  • @zealotoffire3833
    @zealotoffire3833 Рік тому

    I do wonder what was the cost for all the wires components and breadboards?

    • @tomerkronik
      @tomerkronik Рік тому

      I think all the materials ended up being around 1000 usd.

    • @zealotoffire3833
      @zealotoffire3833 Рік тому

      @@tomerkronik why do i feel like it should be more and less at the same time

  • @prabhatlamichhane8505
    @prabhatlamichhane8505 Рік тому

    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

  • @StekuVideo
    @StekuVideo Рік тому

    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!

  • @rotatingcat1957
    @rotatingcat1957 Рік тому

    bigger than the PC in minecraft i built with my friend

  • @robertogudino1919
    @robertogudino1919 Рік тому

    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.

    • @tomerkronik
      @tomerkronik Рік тому

      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?

    • @robertogudino1919
      @robertogudino1919 Рік тому

      @@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.

  • @hoki8296
    @hoki8296 Рік тому

    I expect you have so much fun while doing this. Fantastic work!

  • @schwarzerritter5724
    @schwarzerritter5724 Рік тому

    Now do it again with relays.

  • @inee6543
    @inee6543 Рік тому

    Bro, it would be nice if you made tutorials for this

  • @takumifujiwara2073
    @takumifujiwara2073 Рік тому

    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

  • @animehub7006
    @animehub7006 Рік тому

    Now that's ART

  • @MikeJohnMentzer
    @MikeJohnMentzer Рік тому

    Beautiful........Can you give some quick tips on how to wire Circuits in BreadBoard so neatly!

  • @CobraTheSpacePirate
    @CobraTheSpacePirate Рік тому

    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!

  • @rot_studios
    @rot_studios Рік тому

    That breadboard aesthetic is probably the most sexy thing about this haha Very cool build!

  • @blendingsentinel4797
    @blendingsentinel4797 Рік тому

    But can it run UNIX?

  • @AlexYaremchuk
    @AlexYaremchuk Рік тому

    Beautiful!

  • @RaySpainPlayer
    @RaySpainPlayer Рік тому

    Mate, that's beautiful.

  • @DavidBerglund
    @DavidBerglund Рік тому

    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).

  • @sagenovalstybes706
    @sagenovalstybes706 Рік тому

    sick bastard

  • @chandimamadushan6529
    @chandimamadushan6529 Рік тому

    Wow!!! Superb