Shipping a product with complete software support at official release is a lot more difficult than it sounds. Inevitably, there is less than enough hardware to go around, and what little there is has to fill the needs of hardware designers, test and certification engineers, software development teams, systems integration teams, sales and channel training organizations, marketing communications and event managers, and often beta customers.
Juggling prototype units often falls on a project manager, but most project plans – even the best are prone to “bad math or wishful thinking” – almost always take some kind of serious hit. That can and does often cascade into a schedule slip, with a delicate balance between disappointing customers eagerly anticipating the product, and shipping something of acceptable quality.
Under optimal conditions where external customers can be held at bay until the product is ready, the pressure usually falls on the software team to get everything running in as little time as possible after the hardware is deemed release-worthy. As the amount and complexity of software content grows, now typically accounting for more than half of the overall project effort, the risk gets bigger.
Sound familiar? To break out of the serial waiting game and “shift left”, more organizations are turning to virtual prototyping to start the software development process earlier. Leveraging both register- and instruction-accurate SystemC models of SoCs, virtual prototyping has many benefits beyond just reducing software defects through more testing and better debugging. Build-borrow-buy strategies can have real options, not just forced choices. Tradeoffs can be explored. User experience can be evaluated. Porting to new architectures can be done incrementally, in a controlled environment.
Synopsys has just released a new book titled “Better Software. Faster!” extolling the benefits of virtual prototyping for embedded software development. In a refreshing approach, editor Tom De Schutter chose not to focus on the technology inside Synopsys Virtualizer (derived in part from the acquisition of Virtio back in 2006 – it’s barely mentioned in the book), but instead has embedded software developers from companies across several industries tell the story of how they are succeeding with virtual prototyping.
The foreword provided by VDC, a leading embedded technology market research firm, opens with a point discovered from their industry survey that many of us are reluctant to admit:
Unfortunately, the embedded engineering process is broken. Greater than 40% of projects are reported late.
Sad, but true – and I’d guess the figure is even worse than that considering many projects scored “on time” forgive a successful recovery plan implemented mid-course after a derailment. However, the point here is not we need better planning, but a way to get embedded software development out of the trailing position with little to no margin for error.
The first two chapters explore the idea behind “shift left” and how virtual prototyping can be the engine that buys teams time, with commentary from Altera, Siemens, and TI (an early stage investor and long-time user of Virtio). The third chapter examines the bringing up and debugging the software stack, highlighting a discussion from Fujitsu on ARM big.LITTLE development.
Chapter 4 gets into details, with case studies diving into one of the hottest areas in embedded software development today: automotive. Among the highlights of this chapter, Bosch discusses the implications of software modeling instead of the 300,000 km test drive program; GM explores how virtual prototyping helps them with AUTOSAR requirements and ECU board support package qualification; and Hitachi discusses fault-injection techniques with 700,000 tests run overnight on a virtual hardware-in-the-loop cloud infrastructure.
Chapter 5 looks at the supply chain, with the realization more and more code is coming from third parties (build = internal development, borrow = open source, buy = commercially produced and procured). One case study highlighted is an effort every ARM Android and Linux developer should be very interested in: Linaro, the multi-vendor effort to produce models and kernel support for ARM cores. Also included is a look at how Altera uses virtual prototyping for their SoCs combining ARM cores with FPGA fabric.
In our interview, De Schutter made the point that the underlying processor architecture and programming language don’t matter – the conversation applies to any embedded development team. The final two chapters of the book turn back to the more general, concluding with a look at how virtual prototyping fits in with other strategies, such as FPGA-based prototyping platforms and SoC co-verification, and a wide-ranging round table discussion with Lauterbach, Microsoft, and Synopsys on use cases.
For those heavily involved in embedded software development or project management, those new to the idea of virtual prototyping, or management teams deeply interested in on-time delivery, this is a solid read. The preview for the book, including a chapter summary and downloadable PDF via registration, is available at:
The e-book debut was timed for this week’s SNUG Silicon Valley 2014, and I understand print copies of the book will be available at next week’s EELive! 2014.
lang: en_USShare this post via: