07 February 2011
Is the hardware engineer becoming an ‘endangered species’?
With software becoming the largest part of embedded systems design, is the hardware engineer endangered?
There is general agreement that software is now the dominant part of the embedded design process. There is also a trend towards platform based design, with variants created by software differentiation, and the use of SoCs and ASSPs as 'black boxes'. So is hardware design becoming less relevant? Is the hardware designer an 'endangered species'? Time to turn to the experts.
What is the balance between hardware and software resources in a typical embedded design project? Steve Lane, commercial director with Triteq, said: "The time taken for software development has increased as the functions offered by devices has grown. A relatively simple microcontroller system could have similar hardware/code development times to those of a few years ago. But, with more integrated control, graphical displays and user input through touch screens, the time for software development – in terms of man hours – has grown."
Ian Willats, managing director of Pebble Bay Consulting, noted: "What is 'typical'? It will vary greatly from one industry/market to another. For example, large military projects may use COTS hardware to support extremely complex software. In that case, there are likely to be many more software engineers than hardware. But many consumer electronics systems are based on custom designed hardware and so the split between hardware and software design effort will be very different.
Mentor Graphics' embedded software technologist Colin Walls believes there could be up to ten times as many software engineers today, while David Giles, software test tools manager with Hitex (UK) sees a typical ratio of two to three software engineers per hardware engineer.
Having established the importance of software, we know hardware is still an important aspect, so where is the focus?
Walls said: "Of course hardware design is still important – something has to be designed to run the software on! So the design effort is largely focused on providing a platform suitable for the execution of software that facilitates the functionality of the embedded application. The key requirements are providing the required performance and controlling power consumption."
Lane added: "While software is relevant to the operation of a device, hardware design and performance are still important. Faster processors and data bus lines require hardware design input, better pcb layout and other precautions to comply with emc requirements, for example. The requirement to 'squeeze' more functionality within a device is creating new packaging and heat dissipation challenges for the hardware designer."
From left to right: Steve Lane, Ian Willats, Colin Walls and David Gile.
Giles, meanwhile, notes a growing focus on safety. "Hardware design has to become more concerned with safe design and self diagnosis, due to ISO26262."
Has hardware design become a case of joining black boxes together? Lane thinks not. "Hardware design can require the connection of the 'black boxes' – the processor module, the display, the touch panel, the communication module and so on – but the hardware designer must have an appreciation of their functionality and the challenges of connecting the signals together. And there are design challenges which cannot be met by using the 'black box' approach. These still require the skills of the hardware engineer and discrete component solutions." Walls also disagrees. "A software engineer might argue that is exactly what hardware design has been all about. In reality, considerable expertise is required to address timing in high performance designs and to deal with power issues. Then there is the interface to the real world."
There is no doubt that software design is getting more complex. What are suppliers doing to help?
Willats pointed out: "Software tools are becoming increasingly capable and applicable to large software development projects. For example, tools such as static analysers allow potential defects to be detected and fixed before the software is actually run on hardware."
Giles noted that supplies are providing code libraries and application examples. Walls was more expansive. "Firstly, the creation of new software is supported by the provision for sophisticated tool sets. Traditional tools, like build tools and debuggers, are getting better all the time, but these are complemented by newer technology. Secondly, the range of available software IP is increasing. Conventional real time operating systems are complemented by extensive middleware addressing needs for connectivity, data management and user interface facilities. Overall, the options for using off the shelf software components are broadening significantly."
And what about developing software for multicore mcus? Lane believes: "Suppliers will have to provide the appropriate tools and support in order for these devices to penetrate the market. Giles, meanwhile, noted: "In the embedded area, multicore is still evolving and there is very little automation of task allocation between cores. There is no tool support at all for the isolation of safety critical software from other elements. But, for most projects, this is not yet an issue."
Willats said the use of multicore cpus can have a significant effect on the complexity of the software design, depending on how the cores are used and what support is provided by off the shelf software.
"Some applications map very naturally onto multiple cores and can benefit from the extra performance, but other applications can be much harder to partition effectively over multiple cores. Many real time operating systems now support multicore processors, but our experience of developing board support packages and device drivers shows they must be written carefully to operate correctly and efficiently in a multicore system."
Walls sees more multicore designs appearing. "Multicore designs are becoming more common, but present some unusual challenges. For homogeneous multicore designs, there is the opportunity to deploy symmetrical multiprocessing operating system, where a single instance of the OS runs across all the cpus and distributes tasks across them. The alternative is asymmetrical multiprocessing (AMP), where each cpu runs its own instance of an OS. Each cpu's OS may be different, if that accommodates design goals in an optimal fashion; for example, cpus performing real time activity might use a classical rtos, whereas others might run Linux/Android.
"For AMP designs, inter cpu communication is a challenge and standards such as MCAPI offer the opportunity to maintain source code compatibility across multiple operating systems.
So is the hardware designer an 'endangered species'?
Lane: In one word, 'No'. Without the hardware design there can be no software and the device will not function."
Giles: "No. This role will always be required in any company requiring custom pcb design."
Willats: "There are many other disciplines involved in building an embedded system – including system engineering, testing and quality management – so the debate is not limited to the relative importance of hardware and software design."
Walls: "Hardware designers will certainly continue to be needed! However, their role is evolving. Hardware designers need to understand the requirements of their software counterparts and to work closely with them to complete complex designs."
For the full responses, click here.