Close

Project decisions. The trade-off hell

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 06/27/2017 at 20:340 Comments

Regarding the problem faced on last log entry, I haven't decided yet, but I'm inclined to solve it as follows:

Change the single Execute phase for a dual phase. It makes possible to use any of the registers as both ALU A and B in. All the registers will have its outputs connected together (bus), so only one can be read at a time. The first Execute step would load R1 value in a (new) input temporary register for the ALU A input. In the next step (Execute 2), the R2 value would be driven to ALU B input normally, and (almost) immediatelly the result would be available at ALU output, ready to be loaded in R1 input when CLK-B rises at middle of Execute step 2.

This approach has the notable advantage of barely add hardware complexity (only one new register) while making the Instruction set code far more confortable by allowing all registers to act as both two inputs and the output of ALU.

The main disadvantages is the speed penalty, 25% slower, but I think it's manageable, and one step entirely useless in all non ALU operations. That doesn't make me anyway happy, but...

PS. Just added a list of parts. It's preliminar, and some quantities are very overestimated, as the demux.

Cheers!

Discussions