Usually these companies developed their own “home grown” solutions – creating one-shot systems that simulated their particular hardware platforms, then deploying them to eager software development teams waiting to get started so they could avoid the long work nights and weekends associated with being the long pole in the project schedule tent. These simulators were generally thrown away as soon as they were used, making way for development of a new one for the next project.
SwitchCore, “Sweden’s Fastest Growing Company,” develops integrated switching chipsets for use in communications networks. SwitchCore’s devices are used in a wide variety of high-performance ethernet-based switching systems. Since their end products are complex systems-on-chip (SoCs) developed using a custom silicon methodology, SwitchCore’s developers can’t often do software development using actual hardware. Developing software and hardware simultaneously, SwitchCore saw a great deal of potential in virtual platforms for software development.
SwitchCore initially went one step beyond the typical, as they developed their own general-purpose tool in house for high level modeling of their hardware platforms. “Our in house tool was effective, but it lacked the user-friendliness and support required to make it into a commercial product,” says Peter Ygberg, vice president of SwitchCore product management. “We needed to deploy our virtual platform to our customers who are designing systems around our products, so we needed something that could be commercially supported in the field. We decided to evaluate Virtutech’s Simics as a commercially-available alternative.”
SwitchCore was dealing with the typical make-or-buy analysis that often drives development decisions in engineering organizations. In developing their Xpeedium-3 switch chip, they saw a big advantage in being able to use and deploy a simulation-based model of the device to allow software and system design to precede silicon availability. In looking at commercializing their internally developed product, they saw that the support and quality requirements for commercially viable software were much more stringent than for an in-house tool. Commercializing their own tool would take a significant ongoing engineering and support investment. By transitioning to a commercially available and supported tool, they could focus their resources on the places that they added the most value – which was not software tool development.
Ultimately, SwitchCore decided to adopt Virtutech’s Simics platform over continuing their internal development work. As an industry indicator, their decision is a sign that companies are starting to look at simulation-based software development environments more as a generally accepted development methodology than a fringe, early-adopter fad or a super-secret back-room technology/methodology that gives a leg up on the competition. This opens the door for companies like Virtutech to partner with OEMs like SwitchCore to commoditize full-system simulation for software development.
There were other considerations in SwitchCore’s decision as well. “We saw that we would incur a lot of schedule risk because of the multi-chip multi-CPU architecture we were developing,” explains Ygberg. “Virtutech’s product already had those features supported, so our development risk in that area was eliminated. We also had the advantage that Virtutech had a support organization already in place to take care of our customers. Also, it increased the virtual size of our development capability. By adding the capabilities of their engineering organization to ours, we could become much bigger.”
So far, the decision appears to have paid off. SwitchCore is in the middle of development and their first release is on track. In their measurements, that they’ve brought software development times down form a couple of months to less than two weeks. There have been a few bonus discoveries as well. “In our own environment we only could run under one OS. By picking up a commercial product, we instantly had multi-platform support and several other nice features as well.” Ygberg continues. He also points out that doing software in parallel with silicon development has a positive impact on hardware by helping to highlight improvements that can be made to the hardware prior to initial tapeout.
With embedded hardware becoming more integrated (and therefore inaccessible) by the proliferation of SoCs, we expect to see more companies choosing to use virtual platforms for embedded software development. Commercial suppliers are sure to take advantage of this trend and the economy of scale allowed by replacing a traditionally in-house function with a commercial solution. Since there are already several suppliers either in or entering the simulated hardware platform business, competition is likely to drive the technology forward as well.
Ultimately, the winner will be the embedded software developer as mature, robust, high-performance virtual platforms promise a much cleaner and more capable work environment for the software engineer than badly behaved boxes jammed with immature, semi-functional prototype hardware. Software developers that have sampled the capabilities of even these relatively new simulation-based tools are reluctant to go back. They soon become accustomed to the additional features offered by these virtual environments and to the relative stability and predictability of simulation-based design compared with development on prototype hardware.
Management seems to appreciate the additional development flexibility offered by parallel software/hardware development as well. Even with virtual platforms such as these, software will lag hardware by some margin, but the timing and stability of a virtual platform certainly does a lot to level the playing field. Concurrent development will probably be a win-win for teams that learn to take advantage of it beyond the basics, too, as considerable design insight can be gleaned by prototyping hardware/software combinations before committing to a particular architecture or solution path.
For end-customers, the commoditization of virtual platforms means they won’t have to learn a new, proprietary tool for each different chipset or processor that they use in their designs. Moving to a smaller number of unique tools in the development spectrum is an overall win as it allows improved effectiveness by mastering a single tool rather than dabbling in many. In other areas such as EDA this effect has allowed engineers to become experts in particular tools and processes that cross technologies, creating a more capable development team.
While the SwitchCore/Virtutech project is only one cooperative project among many in this space, it looks to us like a reasonable bellwether for the adoption of virtual software development as a mainstream methodology in embedded systems projects. If that’s true, expect to hear many more of these stories in the near future.