Go to content Go to menu

Doing computation

Apr 6, 10:15 PM

After getting Computer.Build’s output to successfully compile in Quartus, I’ve had to go back and wire up a few things I forgot. First, the program counter was never incremented, which optimized out a bunch of stuff. Second, the ALU operation wasn’t connected, so it got mostly optimized out. Both are now wired in, and I’m pleased to announce the first real computation done by a completely synthesized CPU! It’s taking the values 0×10 and 0×01 from RAM and adding them together into the A register, producing 0×11.

Quartus simulator waveform output

It’s a very small program, but it demonstrates that the processor is up and running. It doesn’t support branching, conditional branching, or indirect addressing yet, but those are fairly easy to add, since I can just write the RTL microcode and let Computer.Build do the rest! I do need to come up with a way of specifying conditionals in the microcode, but indirect addressing will require zero modifications to Computer.Build itself.

1 Responses to "Doing computation"

  1. mskmoorthy Says:

    Fantastic!