11.3 Reverse Execution 12.1 A Simple Example
Simics User's Guide  /  III Low-Level Debugging  / 

12 Using Simics for Hardware Bring-Up and Firmware Development

Simics makes hardware bring-up, firmware development, and other low-level programming tasks easier in a number of ways:

Hardware replacement
A simulator replaces hardware. This has two key benefits during hardware bring-up: you can start working on the software before the hardware is available, and you can have as many copies of the simulated hardware as you like. Both of these translate directly to reduced total development time for the combined hardware+software product.
Inspection and modification
You can inspect the state of the entire simulation—memory, processor registers, device registers, anything—all entirely non-intrusively. And time is simply paused while you do so. You can run backward in time, modify memory or register contents, and then run forward again and see the effects of this change.
Full debug support
The full power of Simics debugging (see chapter 11), with breakpoints, symbolic debugging, reverse execution, scripting, and so on, is available everywhere, even at the very lowest levels.

11.3 Reverse Execution 12.1 A Simple Example