I've written recently about "product creation," a concept that looks beyond the chip or board and considers the requirements of the entire end product, including hardware, software applications, and mechanical enclosures. These requirements ripple down through the design supply chain and provide direction to hardware and software implementation. Hardware/software co-development is both an enabler and a natural consequence of this product-centric focus.
I previously wrote about product creation from a PCB angle. To understand better how this concept applies to hardware/software co-development, I talked to Frank Schirrmeister, group director of product marketing for the System and Software Group at Cadence. He also discussed product creation at the recent CDNLive Silicon Valley conference.
At CDNLive, Schirrmeister talked about how Verizon came up with a new app to get National Football League (NFL) video on cell phones. This created requirements that rippled through the network and the design value "stack." The network needed more bandwidth and the devices needed more capabilities. One result of such developments: "anybody in the supply stack needs to supply more."
As a result of the demand to "supply more," IP developers are now building integrated subsystems. This is, in part, what the recent Cadence agreement to acquire Tensilica is about. And chipmakers have become responsible for providing much of the software stack, including drivers, OS, and middleware. As Schirrmeister noted, no longer is it enough to just partner with a provider like Symbian or Palm for an operating system, as it was back in the 1990s. Now, semiconductor companies must provide the chip with the OS up and running, and the trend towards open source operating systems like Android and Linux is amplifying this trend even further.
Product creation results in new requirements and growing responsibilities
In such an environment, hardware and software can no longer be developed in isolation. They must come together at various stages of the design process, starting well before hardware is actually built. New tooling and new methodologies are required.
Integrated Development Environments
One Cadence product that helps facilitate product creation is the System Development Suite. It consists of several integrated hardware/software co-development platforms that are used at different stages of the design flow:
- The Virtual System Platform (VSP) makes it possible to develop and debug embedded software very early using transaction-level models (TLMs) of system hardware.
- Incisive RTL simulation allows detailed and advanced verification of the hardware and seamlessly connects with VSP as an integrated simulation engine.
- The Palladium XP Verification Computing Platform provides fast and accurate RTL acceleration and emulation, allowing designers to debug low-level software.
- The Rapid Prototyping Platform (RPP) uses FPGA-based prototyping for even faster execution (although with less debug capability) compared to Palladium XP.
- To ease the flow of a design from engine to engine, as well as to enable the combination of engines as hybrid use models, Cadence offers a portfolio of additional products including accelerated verification IP (AVIP) to connect the TLM and RTL worlds.
Schirrmeister said the System Development Suite "enables different portions of the design which may be in different stages of their lifecycle to come together and interact until you have the full product in an implementable state," meaning RTL from a hardware perspective. He noted that the suite is most typically used for drivers and OS, although more and more middleware development and verification is taking place.
Schirrmeister also noted that some companies are using virtual prototyping and FPGA-based prototyping systems for delivery to software customers, so the customers can start doing software development before hardware is ready. In this way, the software developers can write the applications that need to roll out with the product at its first introduction. This reduces time to market and speeds the overall product deployment.
Product Creation Moves On
Are we done yet? Not quite - there are other new frontiers in product creation. One is "system-level design authoring," which is a definition of a complete system before partitioning into hardware and software components.
"In the ideal world, for a chip, you would have this block diagram entry that looks like a whiteboard, and place all your components and connections on it," Schirrmeister said. "What works very well today is the connectivity, if you use something like the ARM AMBA Designer, but what falls short is having the implementation of the blocks done automatically from a higher level description." High-level synthesis can help at the block level, but is not fully connected to all the levels of abstraction one might want. In addition, the connection of the blocks becomes more and more complicated and calls for further automation.
"The bottom line in all this," Schirrmeister concluded at CDNLive, "is that we as a vendor are completely changing the picture of the people we deal with. Semiconductor companies have to do much more software implementation compared to several years ago. So as a result, we need to deal with software in that context as well."
Previous Blog Posts on Product Creation
"Product Creation" Gives EDA a Broader Focus
How PCB and IC Package Design Can Enable "Product Creation"