Development Systems

Any system development with a microprocessor (MPU) or microcontroller (MCU) present will require the use of development systems. These are tools used by design engineers implementing software or hardware. They assist in the test and debug of a design its development and support. They make it easier for the designer to implement, verify and debug the system they are working on.

In any development system, there is the concept of a target. A target is what software or hardware (in the case of programmable logic) will run on. This target can be the actual hardware and software environment that the design will operate inside, or it can be a hardware and or software machine that emulates it.

In the case of using the actual end target in a design, many systems have special interfaces built in to enable access. These include physical interfaces like JTAG which allow access to the subsystems and I/O of the microprocessor with a technique called boundary scan. Physical debug modules can also be built into MPU or MCU to allow for the internal registers to be read and updated, the program counter to be stepped and address and data buses to be accessed. Memory is usually accessible and subsystems like the internal cache may have additional circuitry to assist in profiling code during run-time.

If the actual hardware is not available, chip manufacturers and third party design houses produce development kits. These are generic platforms that enable designers to get designs mostly working on a platform that has similarities to the ultimate target. There are hardware platforms available for most targets, including microprocessors and programmable logic devices.

In the case of developing actual MPUs themselves, designers have the opportunity to simulate the device on logic simulators, which are programs that interpret the hardware description language, run the design through a set of test stimulus and output the results. In some cases teams can download the hardware design to a programmable logic platform to test, usually at a slower clock rate than the ultimate design.

Software development systems incorporate simulators to emulate the target, but can also include in circuit emulators (ICE) physical connections for debugging. In the case of writing in a high level language (like C), debugging environments can display the underlying assembler language and watch the state of variables and memory. Virtual machines can be used to decouple the computer the designer is using from the design and target the correct operating system.

Designers also write algorithms, and these can be tested in mathematical modeling programs like Matlab. Mathematical models can extend to emulate whole systems (for example, Simulink).

Circuit designers have the option of testing analog circuits in packages like SPICE and physical electromagnetic simulation. These tools can be connected to real-life measurement systems to obtain performance characteristics and improve the modeling.

View All

Research & Events

7 months ago
Sorry, your filter selection returned no results.