hardware emulation vs simulation