DMux8Way ( in = zr , sel = instruction[0..2] , a = Izero , b = Ione , c = Itwo , d = Ithree , e = Ifour , f = Ifive , g = Isix , h = Iseven );
And ( a = Isevenout , b = instruction , out = outIseven); // just one sample. Always use that for A or C
Or8Way ( in = outIzero , in = outIone , in = outItwo , in = outIthree , in = outIfour , in = outIfive , in = outIsix , in = outIseven , out = jump) ;
PC ( in = outAregister , load = jump , inc = true , reset = reset , out[0..14] = pc );
Are you saying that your PC design has four parts in it, one of which is a PC part?
I would guess that it doesn't work because it seems like a complete mishmash
Look at the description of what PC needs to do. Take each case one at a time.
Keep in mind that, in general, what PC needs to output is related to what it output last time. That means that PC has to be able to remember what it output last time. What does that tell you about one of the parts you are going to need (i.e., if you are going to remember something)?
You are defining a part named PC and, as part of that definition, you are using a part named PC. But what is the definition of that part that you are using? It's a definition that involves a part named PC. So you have an infinite number of PC parts, none of which are completely defined.