Yes, software reset can be done in PSoC devices. It's a partial reset executed by software to bring part of the system back to a known state. A software reset will restore the M8C to a known state but not PSoC blocks, systems, peripherals, or registers. For a software reset, the CPU registers (CPU_A, CPU_F, CPU_PC, CPU_SP, and CPU_X) are set to 0x00. Therefore, code execution will begin at Flash address 0x0000. M8C_Reset macro performs a software reset function and more details on this function can be found in the SROM chapter in the Technical Reference Manual of the device.