Emulation is a technology whereby the design is transformed into an implementation capable of being executed on special purpose hardware. This implementation has no correspondence with the final implementation which would target a particular technology library. Instead, an emulator has a number of blocks capable of taking on a function (such as an FPGA), a programmable interconnect (although some early emulators used fixed interconnect) and a software tool chain that attempts to divide the circuit amongst the programmable elements, configure the interconnect and provide a runtime environment that makes the emulator look similar to a logic simulator.
An emulator can either be connected to a testbench or other part of the circuit running in a logic simulator. This is sometimes called co-emulation or simulation acceleration. Alternatively, the emulator can be connected to a live system. This is usually called in-circuit emulation.
Emulators are faster than simulators and can have higher capacity. This is becoming increasingly true ever since single processor performance stopped scaling. The logic simulation processes does not lend itself to parallel processing easily and so as designs have become larger, simulators are struggling with both the growing size and complexity of designs and scant gains from the advances in computing technology. This has made emulation more attractive. On the downside, emulators are a lot more expensive than simulators even though the cost per gate has steadily declined over the years and in fact faster than design sizes have been increasing. This means that they have been getting more affordable and increasingly required.