NandGame

This is a cool little game (in development) that lets you build a CPU from scratch starting with a single nand gate.

nandgame.com/

Post your progress

Attached: harold-0.jpg (2500x1667, 264K)

Other urls found in this thread:

youtube.com/watch?v=SPaI5BJxs5M
twitter.com/NSFWRedditImage

i don't know shit about programming or hardware but this is fun

Surprisingly intriguing.

Attached: dumb_cop (cropped).jpg (424x598, 194K)

I thought it would be as easy as linking a to b and b to a. I guess not

seems similar to MHRD

I'm not autistic enough for this

Can anyone tell me why this solution is wrong? It's kind of driving me crazy. I thought the idea was that each 2-bit input gets its own adder, and the carry output from one adder is the carry input to the next. My only idea is that maybe I'm mixing up 'l' and 'h' somewhere, those confuse me a bit.

Attached: Screen Shot 2018-09-06 at 10.54.52 PM.png (921x595, 76K)

You're adding the wrong things together. You're adding 2-bit binary numbers, so the first digit (from the right) is the number of 1s in the number and the second digit is the number of 2s. You're using the add gate to add the number of 1s and 2s together. You should be adding the 1s from both numbers together, and the 2s from both columns together. The carry is just another count of how many 1s there are. And the high (the h value) of adding the ones together is just another count of how many 2s there are, since adding 2 1s together will result in haivng 1 two, so it acts as a carry for the second add gate.

To put it simply, use one add gate to add all the 1s, and another to add all the 2s, including the 2 that is made by adding 2 ones together. Cheers~

this is difficult

This was basically my undergrad. Pretty fun desu. It's a pretty amazing feeling to pull a CPU out of silicon

CE?

Attached: solution.png (912x691, 57K)

I'm a brainlet and can't get past level 2.

And EE. It was actually mostly verilog, but I think I could design a CPU from basic gates if I tried. Properly wiring it, probably not

Attached: 1525851396983.gif (442x688, 23K)

Don't worry user. If this stuff was easy, everyone would hold a CS degree.

Wow. This is the first 4 labs of my computer organization course in game format

Dev is also working on adding support for starting with only a xor gate instead of a nand gate.

Aha, thanks! That makes sense.

Attached: downloadmoreram.png (489x687, 52K)

swiftly downloaded and installed. Thanks user~

What do I do for counter. I feel like a brainlet, but the "what you did wrong" explanation is using variables that don't exist at all. It's like it was machine translated.

Attached: counter.png (375x686, 45K)

>starting with only a xor gate
That should be a nor gate, surely

Attached: cpu.png (1475x775, 82K)

Behold, true S K I L L S

youtube.com/watch?v=SPaI5BJxs5M

So this fails and I'm not sure why, I think it's because the left latch (Q1?) shouldn't update if cl = 1. But I don't know how to encode "make st = 0 if cl = 1, otherwise leave it alone". What do?

Attached: Screen Shot 2018-09-07 at 1.30.29 AM.png (1280x704, 164K)

Why doesn't it work? I seem to have followed the instructions perfectly.

Attached: Something's wrong.png (1256x803, 150K)

You don't really want st to be controlling _when_ your first latch latches, that's the clock's job. You want it to control whether it it latches at all.

If anyone gets through the whole thing, it'd be cool if they would screenshot all their answers so we'd have a solution guide. Us brainlets would appreciate it.

what would be the point?

"j indicate if the condition specified by the instruction is fulfilled by the ALU output"

Also "The X input of the ALU is always the D register"

OK, I'm stupid. I didn't read half the instructions.

The point would be to learn. If you've given something a good deal of effort but you really can't figure it out, checking the answer helps you see what you did wrong and how to fix it. That's still a learning experience even though you """cheated""" to get there.

Attached: cu.png (1211x689, 105K)

What am I doing wrong here? Trying to make a full adder.

Attached: 1515609667961.png (1044x557, 66K)

Attached: fa.png (277x687, 33K)

the OR should be going to the higher bit, just swap your outputs

Is this just graphical nand2tetris? I completed that one up to where I had a working assembler in python but then I got bored

I got to the full adder and I checked wikipedia and I found the scheme but now I feel like an idiot because I checked the solution. Am I one? Also on which basis am I supposed to get the answer? Just think logically until something falls to my mind or do a research?

yeah just think about it

O I did it haha

the AND gate is the one true gate, our lord and savior.