Buffer register outputs in regs after loading them.
Use a single clock for everything, with enable wires.
Add a reset state, initially active but not controlled externally.  This causes registers and instruction pointered to be zeroed.  Add some comments too.