dhruvkapur91 wrote
When I put this in hardware simulator and run test, it fails on time 1+ wherein it sets inc = 1, and output immediately changes to 1 while in test case it stays at 0 and changes in next cycle.
This problem is probably solved if I instead make register's out as out and not mux. I'm not sure if I get why.
You are correct. The Register's 'out' needs to be the PC's out.
Remember the structure of the Bit. The DFF's 'out' is the bit's 'out', and it is also fed back to the DFF's 'in' through the load mux.
In your PC, by tying the Register's 'load' input true, you have effectively turned the Register into a DFF16.
You PC's schematic should look amazingly similar to the Bit's. (Mux -> Mux8Way16, DFF -> DFF16 [Register], add the Inc16)
--Mark