The PC is a Program Counter. It is a chip that will:
- emit an increasing number. eg. 0, 1, 2, 3, 4...
- allow you to reset the counter, making it start over at 0.. then 1, 2, 3, 4...
- allow you to tell it to emit a particular number ("Hey PC, emit the number 420.")
Because this is an increment operation, the input to the Register should be 1 and the Register's load should be 1.
Can you elaborate on why the load bit should be 1 if we're incrementing? If I've understood everything so far correctly, I am under the impression that load should only be 1 when we want to load from "in". Your previous replies to many questions on this forum have helped me immensely up to this point; I really appreciate your ability to clarify without handing out the answers, as that "A-HA!" moment is truly the essence of this learning experience.
Just an update/FYI I actually did figure this out after reading another comment of yours! My logic was flawed in the assumption that we only wanted the register's load bit to be 1 when we load from "in". I hope this isn't too much of a hint to others looking to solve this the "simple way" but we actually want the register's load bit to be true any time there is an operation requiring a state change in the register. From there it was a simple matter of combinational logic to construct what constitutes a state change - and voila!
I read many other posts with people who came up with all kinds of interesting and (sometimes overly) complex solutions. Glad to report that it is in fact possible to take the straightforward approach with this one!