Peace Overture

Can virtual prototyping bring hardware and software engineers together? Well, maybe.

popularity

One look at the headline and you may think I’m going to suggest that virtual prototyping can solve the myriad issues between hardware and software teams but rest assured, I’m not. I will tell you that I’ve heard some promising anecdotes lately, and that is a little bit encouraging. When you finish reading, please chime in with your comments!

In the course of interviewing Achim Nohl, technical marketing manager for Synopsys’ solutions group for another article I wrote this month about power savings in communications applications, I asked him about the state of communication between hardware and software teams.

He said there is a lot of effort that hardware engineers spend in order to allow the chip to operate at the best possible energy profile while meeting the performance so they put a lot of stuff into the SoC—power management ICs, power reset control, management unit—but if the software doesn’t take advantage of it, there’s no way to ever come close to the intent of the initial design.

Chips are getting so complex and overwhelming that the software people just don’t know what to do with all those parameters and settings in order to utilize all the power saving features that the hardware provides. This is creating a risk for the software developer because there are lots of things they must be sensitive to in order to not break the hardware as well as to achieve functional software.

“One of the main pain points or concerns of the software guy of course is to get the thing to work in the first place, and it’s kind of a risk for him to play around with all of the knobs in terms of maybe for instance changing frequencies, changing voltages—all that is possible if I add those kinds of power management chips,” Nohl said. “Here the dilemma is that once the software is functional nobody wants to touch it, and at the end if the power budget is not met, the hardware guys are blamed for it. It’s basically a mission of both now to work together—it’s the hardware engineer working together with the software people to make them understand the capabilities of the chip, and making the software people work with the hardware people to basically tell them what they are doing.”

Unfortunately, he has observed there is still not the best communication between those teams. “In the companies we work with, many of those have traditionally split up the software engineering and the hardware engineering. There is the whole dilemma of specifications not being reviewed by the software team when the hardware gets fixed because the software team is still working on the previous project. And when the hardware is stable they don’t agree to the spec, and there are things missing that they need to work around. I don’t think this collaboration is working perfectly at this time.”

However, Nohl pointed out that in the context of virtual prototyping, hardware and software teams are getting aligned because right now the task of doing the virtual prototype is not a specific duty of either the hardware or the software people. But once you have convinced design teams to apply virtual prototyping for the architecture of the software design, it becomes a common executive specification that both benefit from. “It’s not just a specification but also a communication vehicle to exchange very early on information about how the design is working, allow early prototyping, early test for the software developers to get a feeling on where this thing is going to provide feedback early on.”

Also, Marc Serughetti, director of product marketing for virtual prototyping at Synopsys said, “If you look at what has been happening in the past, things we heard from customers are like, ‘Okay, the hardware is done and the software developers received the hardware platform and suddenly they got with the hardware platform a 300-page document that shows the API that will help them manage power through the application, through the different software they are writing—and they are completely lost. From that perspective it becomes too complex for them. Some of the things they are looking at is, ‘So now how can they be starting their software development earlier and how can they be taking into account those API and better understand the trends associated with power consumption.”

It’s the same problem over and over again, he continued, which is the serial approach to hardware and then software, that needs to be broken down into a more parallelized approach between hardware and software. “This is obviously where virtual prototyping comes into the picture simply, because if you don’t have the hardware you have to be able to use something in order to communicate between the hardware and software team.”

Readers: give me a reality check. Is this your experience too? I especially would like to hear from hardware and software engineers currently involved in design.

~Ann Steffora Mutschler