On-line fault detection in a hardware/software co-design environment: System partitioning