Simulators
Simulator is
software to run or test a process. The processes can be the design of an
embedded system,
industrial devices, or any other electronic, electrical or mechanical
devices. The simulation is done before the product is developed in its physical form. Electric, electronic, mechanical, manufacturing, and modeling software are used in embedded systems and
industrial designs.
Electronic circuit simulators provide the behavior of real world electronic circuit. This facilitates the designer to evaluate the performance, cost, and other such issues of the product. Simulators contain compilers and debuggers.
Debuggers
All the simulators contain debuggers. A debugger allows the programmer or designer to check the code step by step. It displays the description of each step. So if the program is not running as desired or an error occurs, it is quite easy for the programmer to find out. This also makes the design process fast and efficient. With debugger's break point tool a programmer can also run a program up to a specific point. A debugger may reduce the coding time but it does not give any idea about the response time (real time software /
firmware running).
Compilers
Mostly the compilers are part of simulators. A compiler converts the source code to machine code. Source code is human understand able language or high level language. Examples include C or some hardware descriptive languages. Machine languages are computer or processor understandable languages. Compilers for both high level and low level languages are available. These compilers convert the source code into an executable file containing machine level code. This file is burnt or uploaded onto
hardware through a
programming adapter and
device programmer and known as firmware. Moreover compilers contain a linker that links or maps the libraries contained in the operating systems to machine languages. Generally speaking, a linker allows the use of system calls within the source code. Higher level compilers offer advanced functions such as semantic analysis, code optimization, parsing, lexing, or preprocessing.
Product specific Compilers and debuggers
Debuggers and compilers are usually product specific. Most manufacturers provide simulators for their processors. Simulators generate a machine language that is supported by a specific processor. Intell, Borland, and Microsoft are the leading suppliers.
In-circuit Emulator
In-circuit emulator is also testing software and has its significance in
embedded system design. In-circuit emulator can display
memory allocation, input output pads, and other interfaces exactly the same as on real time hardware. It also provides information about processing power, interrupts handling, and response time. Its common example is Xilinx used for
FPGAs (field programmable gate arrays).