9.3. The Role of Hardware Simulators
Although the use of in-system testing and debugging (using embedded FPGA processors) is a compelling addition to the complete application testing and debugging environment, there is no reason to abandon the use of hardware simulators. Hardware simulation has many important benefits, not the least of which is the avoidance of the compile/synthesize/map times that are required before a given hardware module can be tested in-system. Hardware simulators also provide much more visibility into a design under test and allow single-stepping and other methods to be used for zeroing in on errors.
If your tests require very specific timing, you will probably find that using an embedded processor to create test data will result in data rates that are only a fraction of what is needed to obtain timing closure. In simulation (using post-route simulation models) you can observe the system running at any simulated clock speed, although it may require a very long timeperhaps hours or even daysto complete that simulation if the application being tested is of any significant size.
In-system testing using embedded processors is a good complement to existing simulation-based testing methods. It allows hardware elements to be tested (typically at lowered clock rates) in a highly efficient way, using actual hardware interfaces and potentially more accurate real-world input stimulus. This helps augment simulation, because even at reduced clock rates the hardware under test will operate substantially faster than is possible in RTL simulation. And when C-to-hardware compilation tools are used, the entire system (test bench included) can be modeled in C and then iteratively ported to hand-coded HDL or optimized from the level of C code to create increasingly high-performance unit and system tests.