To test out all my contraptions, I have built an EPROM emulator. This handy little gadget plugs into your target device in the place of the normal EPROM/ROM, and allows you to debug your code using a "hands off" approach. The idea is basically you can upload new data to the emulator's RAM very quickly and without unplugging, turning power off, etc. After uploading data, the emulator then can reset your target device, which can then start executing the code. I was going to buy one, but I wanted an emulator of at least 1Mbyte in emulated size; which was way out of my budget. Sooo, I decided to build one :-). This particular emulator does 2K through 1Mbyte EPROMs (2716 to 27080). I made 3 seperate emulation headers for 24, 28, and 32 pin chips.
Front of the emulator
The blue plug is where the emulation headers go which then connect to your target system. The LED lights up when data is being transferred to the emulator, and when the target system is being held in reset.
Back of the emulator
Your standard parallel port cable plugs into the back which then plugs into the host PC. Power for the emulator is derived from the target system; and it draws only about 20ma which is very similar to a normal EPROM.
Inside the emulator
The emulator's guts consist of two 512K RAM chips (one of which has been removed for use on another project and hasn't been returned yet), an FPGA which is acting as a 20 bit binary counter and 40 to 20 line multiplexer (for target / counter address selection for the RAMs), a battery backup system that allows you to use the emulator "standalone" without the PC once it has been loaded and configured (take your device on the road to show it off without having to reload the RAM or burn a ROM), a PIC micro which programs the FPGA on powerup and a non-volatile controller to back up the RAM.
One of the emulation headers is shown.