5.4. Desktop Simulation
The term desktop simulation refers to a method of debugging in which your complete Impulse C application, representing both hardware and software processes operating in parallel, is compiled under a standard C development environment (an IDE) for the purpose of functional verification. This is an exceptionally powerful technique because it allows you to bring in the full power of standard C language, and the many third-party libraries available for C and C++, to create comprehensive test fixturesor test benchesand thereby validate the correct function of your application before you attempt to compile it to actual hardware.
When compiled in such a way, the various parallel processes of your application (in the case of the FIR filter application there are three such processes) are implemented using multiple threads. This allows you to emulate the parallel behavior of your application while still allowing you to make use of standard, widely available debugging tools such as Microsoft Visual Studio or open-source tools based on gdb.
Figure 5-6, for example, shows a design session in which the FIR filter example is being debugged using single-stepping and variable probing features of the Visual Studio debugger.
Figure 5-6. Using Visual Studio's debugger to validate the FIR filter example.