Close

First instruction: loading a value into a register

A project log for JACA 1 & 2 Homebrew Computer

JACA - Just Another CPU Again Homebrew CPU, starting by a simple POC 4-bit CPU on circuit simulator soft. (done), then 8-bit (in progress)

andre-baptistaAndre Baptista 04/16/2018 at 16:130 Comments

This weekend I managed to finally make the computer run a instruction from the beggining to the end.

It's a simple instruction: LD A, 0x20, that means, to load the literal value 0x20 (32 in decimal) into the register A.

Video:

At top right is the output of the register A, displaying 0010 0000, the binary value for decimal 32.

Close to bottom left are four leds, the first three red, the last one yellow. These are the sequencer leds, they show the current state of the machine: Fetch-1, Fetch-2, Fetch-3 and Execute. The fetches are the states in which the 3 bytes of the instruction are get from memory and put on the three Instruction Registers (top left corner). The green leds are the outputs of them (only shows in the last step, Execute).

But not all are good news: I also ran into two stability problems:

-The first one: the automatic clock (yellow led at bottom left) was sometimes causing the sequencer to reset, even in manual clock mode. That was solved by adding a 10uF capacitor (decoupling capacitor) to the power line close to him;

-The second: the register A is not loading the right value all the times, sometimes showing a thrash value. That is driving me crazy. I have no solution for now, but I have one suspect.

Thanks

Discussions