A ROM emulator is an electronic device used in embedded system development. The ROM emulator has the ability to simulate an EPROM, PROM, EEPROM or FLASH-ROM in a circuit. The main advantage of using a ROM emulator over a real ROM is speed, especially when emulating larger ROMS.
Most ROM emulators consist of a dedicated MCU and a bunch of static RAM. The size of the static RAM limits the size of the ROM the emulator can emulate. A cable connects the ROM emulator to the user's PC (this is usually a parallel cable for the sake of speed), another cable connects the emulator to the circuit being debugged. This cable usually has a connector on it that can fit into an IC socket just like a regular ROM chip. The user can load new code into the ROM emulator from a piece of software running on the PC. Usually this is a binary image that he/she wishes to execute on the target.
Writing data into a ROM emulator is much faster than more traditional methods such as burning EEPROMS because writing data into RAM is much faster than burning an EPROM, or even a FLASH ROM. The target circuit never knows the difference; the ROM emulator behaves just like a regular ROM would in that the target circuit cannot alter the data in the emulator's RAM.
ROM emulators are often used in conjunction with in circuit emulators (ICE) when developing code for embedded systems.