Development Techniques for Using Simulation to Remove Risk in Software/Hardware Integrationby Ronald C. Unrau In January 2000, Cygnus was bought by Red Hat. Content
AbstractDue to the unique nature of embedded systems, developing a new product requires overcoming special challenges not present in more traditional applications. This is because almost every embedded product requires special purpose or non-standard hardware to meet size, performance, power, or other constraints. Of course, the complexity of both the hardware and software are increasing exponentially, and the product development cycle is being squeezed by ever shortening time-to-market requirements. The successful integration and verification of the software/hardware interaction and functionality are crucial to the timely release of the product.
Figure 1: Embedded product development time lines a) traditionally b) with a co-development tool. Figure 1a) shows what can be called the traditional embedded product time line. The product starts as an initial concept, which is then formalized into a set of hardware and software requirements specifications. From there, the hardware and software teams start designing and implementing their respective sub-systems. In this traditional model, the "moment of truth" arrives when the first hardware prototype is ready, and both hardware and software teams hold their breath as the software is booted for the first time. If all goes well, the software runs to at least some extent, and the next phases of integration testing and product verification can begin. If problems are encountered, the software may have to be altered to work around hardware bugs or limitations, or if more severe problems are encountered, a hardware re-spin may be required. This traditional product model involves substantial risk, primarily because the hardware and software are brought together so late in the cycle. At this point, it is difficult to recover from errors without compromising either functionality or the product release date, both of which can have severe impact on the profitability of the product. Compromising functionality hurts the competitive edge of the product; compromising time to market allows competing products to enter and steal market share. Both mean more engineering resources that add to the overall cost of the product and which must be recouped. This paper explores hardware/software co-development, a growing trend in embedded product design that can help shorten the time-to-market for an embedded product, and, more importantly, reduce risk. Co-development achieves these goals by integrating hardware and software components in a simulation environment. Risk can be formalized into three categories: market risk (are you building the right product?); technology risk (do you have the right solution?); and schedule risk (are you getting the product out on time?). A co-development environment can be used to evaluate and mitigate all three types of risk, primarily by providing virtual test platforms early in the product development cycle - while there is still time to recover from unfortunate but inevitable surprises. We will describe the co-development philosophy and technology, and give examples that show how it can be used to improve product time-to-market at reduced risk.
|