I'd be more suspicious of the wires than the CPS itself.
Have you had any 'no crank' situations/problems recently. I just had my starter go bad, & after one of the no cranks it threw a P0340. After checking fuses, wires, & relay, I used the oldschool 'bang the starter with a hammer!' method & it started right up! :p I cleared the code & since then had the starter replaced & the code hasn't returned.
I'd check the wires to the dizzy & test them for continuity before replacing the dizzy itself.