====== Emulation ====== Emulation, or specifically hardware emulation attempts to imitate the behavior of a device or platform to verify and validate firmware and/or software. Hardware emulation is typically a part of the Electronic Design Automation (EDA) workflow. It is more accurate than simulation and works well for very complicated designs (such as those found in VLSI). For embedded systems, emulators are often used in ICE, or in-circuit emulation. ===== Weatherbox Firmware Emulator ===== The SCEL Weatherbox firmware comes with a built in emulator that uses [[ https://github.com/buserror/simavr | simavr]] as the core emulation model. Included is also a thin layer over the simavr model which uses the arduino bootloader to allow the emulation model to self program itself. {{ :weatherbox:emulation:emulator_block_diagram.png?200 |}} Documentation on how to run the emulator can be found [[https://github.com/scel-hawaii/weatherbox-firmware/blob/master/emu/README.md | here]]. ===== Further Reading ===== - https://en.wikipedia.org/wiki/Hardware_emulation - http://electronicdesign.com/eda/11-myths-about-hardware-emulation - http://electronicdesign.com/test-measurement/hardware-emulation-weapon-mass-verification