Software tools set to play a more critical role in system design
4 mins read
More projects with greater complexity mean embedded design teams need to be more efficient and this is influencing their choice of technology. Evidence is provided by mobile phones: 10 years ago, devices featured a wireless module and one processor, today, smartphones have various interfaces and a number of processors in order to execute a multitude of applications. Cars are even more complex, with as many as 100 processors per vehicle, and a similar trend is followed in industrial applications, where electronic systems and machines feature a wealth of control and monitoring systems.
To support these design teams, technology providers are developing components, modules and embedded platforms with higher degrees of integration and functionality. Ultimately, companies are working towards a comprehensive embedded design platform, incorporating communication, program execution, system I/O and the design software.
This trend began with SoCs and Systems on Modules (SoM), customised to specific embedded applications. Such components often feature the three main elements of an embedded system: a communication interface; processing; and system specific I/Os. Computers on modules (COMs) are a special subcategory of SOMs; by integrating an entire computer or embedded subsystem into one device, companies are providing more value to embedded designers through increased functionality, better integration, a smaller package and lower power consumption. SoCs and SoMs are typically offered as standard components and designed either for universal use or for vertical applications.
In some applications, developers may use the same SoC or SoM, making it difficult to maintain differentiation. So design teams will augment the SoC or SoM with additional discrete components and programmable logic. The addition of programmable logic means teams can add specialised processing – proprietary know how – to improve performance and future proof the design.
The addition of FPGAs is now established practice and SoCs are being offered that combine a microprocessor and an FPGA. The most interesting, from National Instruments' perspective, is Xilinx' Zynq-7000 family, which combines a dual core ARM Cortex-A9 processor and a Xilinx-7 FPGA.
Embedded platform challenges
In the next decade, software tools will play a more critical role in system design and development. The reduction in power, cost and size of embedded hardware over the last decade means it will no longer limit or dictate embedded design choices; instead, productivity will.
Embedded design productivity will be driven by tightly integrated software design tools that can use off the shelf hardware capabilities with an environment intuitive enough to be used by nearly all engineers and scientists.
Smartphones are an illustration of the influence that better software development tools can have on embedded design. Although smartphones have been on the market for more than 10 years, it was not until the advent of the iPhone in 2007 that smartphone and entertainment technology changed fundamentally. The iPhone satisfied the needs of most smartphone customers, but it is clear the iPhone was differentiated by the overall software experience – not only by iOS, but also by the surrounding ecosystem of software, including iTunes and apps. Integrated embedded design platforms should reach for the same level of integration, quality and extensibility that Apple has achieved with the iPhone ecosystem.
The embedded market currently features disjointed and complex tool chains that make it difficult for developers to create embedded systems which combine measurement and control functionalities. Solving this challenge requires standardised hardware and software platforms, enabling even small teams of developers to experiment and solve problems quickly and efficiently. Compared with conventional tools, which offer almost no scope for system abstraction and are inclined to be characterised by cryptic hardware dependent programming, a platform based approach is more productive.
An integrated embedded platform must feature: a single software development environment that programs the heterogeneous processing systems; a large library of analysis and control algorithms; and tight integration with communication and application specific I/O. The embedded platform should also be flexible and modular enough to give design teams the ability to evolve the system during the design flow, from first prototype to final deployment, while using the same code throughout.
Previously, the decision whether to use a low cost microcontroller or a higher performance CPU was fairly straightforward and based on the expected performance needs of the embedded system. Now, control and monitoring systems need to deliver additional functionality, such as:
• Faster and more reliable responses to I/O
• Machine monitoring to predict failures and improve safety
• Audio and image processing
• Wireless communications and Internet connectivity
• Filtering of analogue and digital signals for more accurate measurements
• Digital communications to intelligent sensors and other subsystems
• I/O level preprocessing for data reduction
More complex systems such as these require additional processing components, such as FPGAs, DSPs and graphics processors (GPUs).
FPGAs have been used for more than 30 years as digital glue logic between different components on the same PCB. The reconfigurable logic within the FPGA fabric has been ideal for implementing complex state machines and application specific digital circuitry that operate independently from processor clock cycles, with higher reliability and determinism.
Over the years, FPGA performance has increased dramatically, with significant reductions in power and cost. For this reason, the use of FPGAs in embedded designs has expanded to handling signal processing tasks. A primary benefit of FPGAs for processing is that several algorithms can now run in parallel, unlike the sequential architecture of a processor.
While FPGAs offer performance and flexibility, they are nowhere near replacing the need for microcontrollers and microprocessors in embedded designs.
Comparatively, processors still cost less and come with a well established ecosystem of software abstraction, including OSs, standard hardware drivers, and libraries for signal processing with easy floating point arithmetic. The adoption of FPGAs has been the result of higher performance systems that combine both processors and FPGA fabric to divide and conquer complex processing needs through both sequential and parallel architectures. Integrating reprogrammable hardware into designs is the fastest way to iterate without having to spend time and cost on redesigning PCBs.
Graphical System Design is a platform based approach, in which an application is broken down into basic building blocks, such as I/O, analysis, processing, programming, user interface and implementation platform, which are then linked using graphical programming techniques including timing and synchronisation. This platform based approach enables the user to concentrate on innovation instead of having to grapple with complex system design problems.
A software-first design paradigm is predicated on a system architecture that minimises fixed function hardware. This includes obvious fixed functionality devices such as ASICs and hardware filters. Although fixed function devices offer a lower cost per component, they achieve that cost at the expense of future scalability. Software defined hardware platforms, such as processors, DSPs and FPGAs, give system designers the flexibility to change a device's behaviour without new electrical work.
While these platforms have higher component costs, they can reduce design costs dramatically, increase market share through faster time to market and, over time, increase volume and drive down cost by making it possible to use one design across multiple devices.
Rahman Jamal is National Instruments' technical and marketing director, Europe.