I'm trying to construct an 8-Bit Program Counter, in Logisim. It currently has functions LOAD, which makes the 8-Bit input (A0-A7) appear at the output (S0-S7) on the clock pulse:
When LOAD is high, A0-A7 is run through the full adder, which technically is used - it just adds 0, so therefore doesn't affect the output.
Now I'm trying to implement an INC (increment) also, which when high will basically just add 1, but take the current register value as the input, rather than A0-A7. Here is the logic flowing in the simulation, which is exactly what I want (I've circled the value going into the register, which is 2 - perfect):
This is the first time I've tried to build this, so is there something intrinsically wrong with my implementation, or am I missing something small which should make it perform as expected?