Image

Which Design Comes First: Hardware Or Software?

March 7, 2011
Hardware and software; chicken and egg: How do you do one without the other? Do you design software-aware hardware or hardware-aware software? Synopsys' Frank Schirrmeister looks at how systems houses differentiate their products when the hardware is no longer necessarily the key.

“To develop the software, you need the hardware. To develop the hardware, you need the software.” This is one of my favorite quotes from a recent Design Automation Conference. Well, it’s no wonder that 54% of projects are delivered late, according to VDC. To fix schedule issues, more than 30% of developers would improve debug and analysis tools to better understand hardware, software, and their interaction with each other. While software developers traditionally refer to some of their development tasks as “hardware-dependent” or “hardware-aware,” hardware developers also are calling some of their tasks “software-aware” or “application-driven.” It’s like the classic chicken-and-egg question. The interaction between semiconductor providers and system houses has become increasingly complex. Not so long ago it was just fine to deliver the silicon and let the system houses and their software partners develop most of the software as part of the system integration. Today, many chips no longer can be sold without their associated software. In wireless applications, this can even be seen in how companies have been restructured. In the past, system houses would acquire application processors and differentiate by adding their own silicon for the baseband processing to the system. The baseband then made it into single-chip solutions that were combined in the trend toward “smart everything.” From phones to appliances to whole grids, the differentiation for system houses has completely moved to the software. Nokia is a good reference case. Essentially having abandoned silicon design at this point, Nokia focuses completely on differentiation via software and its ecosystem. As a result of the increased importance of software, hardware development in the smart-everything application domain has become even more software-aware. Now hardware is essentially optimized to run specific operating systems and even applications. But is this trend pervasive across all application domains?
Wireless And Consumer
The user experience in wireless and consumer applications is mainly determined by applications running in higher-level, hardware-independent development platforms like Java and specific software development kits. The operating system is the key. Smart phones and modern TVs want to be immediately connected to the Internet and fed additional applications. Operating systems themselves used to be quite profitable. Then Nokia acquired Symbian, Google created Android, and handset providers provided proprietary platforms like the BlackBerry OS and Apple iOS. Today a battle rages between proprietary and open operating systems, encouraging application developments mostly from third-party developers. Consumer hardware has become the delivery vehicle for the distribution of applications, which are controlled by the operating system that enables them. For Apple the hardware design clearly is software-aware, but in an environment that controls both the hardware and software. Android is essentially neutralizing the hardware and shielding applications development from it. Here, hardware is designed to fit Android. While Apple monetizes both via hardware and via distribution of applications running on the operating system, the Android system shares monetization between the application store providers that are distributing applications, service providers like Google getting search-related advertising revenue (the original impetus behind Android), and the hardware vendors selling their hardware. In both wireless and consumer applications, hardware design has become software-aware. Networking And Automotive Networking is driven by data rates and per-packet processing requirements. Still, given the need for product flexibility and configuration options, software is once again used to determine processing functionality and the hardware is designed to prioritize the efficient execution of the software. Automotive is a very dynamic application area with complexity trends increasing in two different directions. The overall complexity for a car already well exceeds that of wireless and consumer devices. Modern mid-range cars have at least 30 electrical/electronic systems with up to 100 microprocessors and well above 100 sensors. For automotive applications, the complexity grows beyond electronics. Automotive systems that account for mechanical effects and their interaction with electronics will also have to be developed. The era of “mechatronics” has started. Cars run more and more on software code as well. A Brave New World Software is present in all of these areas, but its role and business effect can be very different. The applications on our smart phones and TVs are written by a vast ecosystem of application developers. The operating systems have become distribution vehicles to deliver those applications. The software in networking devices and automotive systems is much less developed by end users, but hardware design has to be aware of it. Whether hardware-aware software or software-aware hardware, the landscape is undergoing fascinating changes. Chip vendors are trying to battle their way back into monetizing on software after Android essentially neutralized them. The hardware-software world remains very interesting!

About the Author

Frank Schirrmeister

Frank Schirrmeister is Senior Director at Cadence Design Systems in San Jose, responsible for product management of the Cadence System Development Suite, accelerating system integration, validation, and bring-up with a set of four connected platforms for concurrent HW/SW design and verification.

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!