1. A software executing device co-operating with a hardware circuit or a hardware simulator, comprising: a software executing unit configured to execute a software; an execution monitoring unit configured to monitor execution of the software by the software executing unit to sequentially obtain an execution state of the software; a determining unit configured to determine whether the software executing unit and the hardware circuit or the hardware simulator are to be synchronized based on an obtained execution state of the software; and a synchronization controlling unit configured to synchronize one cycle of internal time in the software executing unit with generation of clocks in the hardware circuit or the hardware simulator when the determining unit has determined to synchronize the software executing unit with the hardware circuit or the hardware simulator.