Frank Schirrmeister, Cadence Design Systems
EETimes Europe (Jun. 03, 2014)
Software has become a crucial component as it determines significant portions of the functionality visible to us end consumers, as well as differentiation.
Over the past decade the software content to be addressed by semiconductor companies has multiplied several-fold. Where providing some core drivers and managing an ecosystem of operating system (OS) providers was sufficient in the late 90’s to win a socket in the mobile space, today the contenders for providing application processor have to be able to deliver the chip with multiple OSs already ported, up and running, ready to be adopted by system customers.
Unfortunately, in classic development flows, hardware and software – while ultimately derived from joint requirements – diverge in their development and in the worst case integration doesn’t happen until a “big-bang” integration test is done.
The upper portion of Figure 1 shows such a disconnected hardware-software development flow from requirements through preliminary design, unit coding, testing and integration. The system integration at the very end often brings surprises that cannot be overcome without significant re-development. The industry has been striving for years to achieve a fully agile system development flow as indicated in the lower portion of Figure 1. Integration ideally should happen early and then be repeated often.
Given its importance, software has become the long tail in development cycles and its efficient development and testing is of great concern. Design teams are attempting to develop software as early as possible on whatever representation of the hardware they can get their hands on – achieving what the industry sometimes calls the great shift to the left. In an ideal world software development would be enabled at the very start of a chip-development project, but in reality users face various development options across levels of abstraction and different execution engines.
Click here to read more ...