The technique drove ‘agile systems development’ for the programmable logic vendor’s new product line.
This virtual prototyping case study addresses one of the programmable logic market's newest products. FPGA vendor Altera announced the availability of the first in its line of SoC FGPAs late last year, with further samples now being released during the first quarter of 2013.
The family combines a dual-core Cortex A9 alongside programmable logic on a 28nm die. Altera plans versions of the FPGA for markets such as communications, industrial, security, and medical.
SoC FPGA hard processor system (Source: Altera – click image to enlarge)
Development work began in mid-2011, and supporting software development began at the end of that year. The company made greater use of Synopsys flow-based virtual-prototyping techniques (Guide) during the development process than it had before, evolving an ‘agile systems development’ approach that draws on techniques used in agile software development.
Tech Design Forum spoke to Victoria Mitchell, senior manager for embedded software at Altera, about the design process.
Getting started in virtual prototyping
“This was a very different type of project for Altera,” she says, “and we looked at virtual prototyping to help us in a number of ways.”
First, the company wanted to explore more architectural tradeoffs than before ahead of making the final decision. “You have to get that choice right before you really proceed with the design,” says Mitchell.
Then, it wanted to develop a prototype that would allow software development to start well before the final RTL for the chip was available, and also enable hardware-software co-development. The ability to reduce the time it takes to get a chip and its related software to market is fundamental to the business case for virtual prototyping.
Altera chose a Synopsys-based virtual prototyping solution for a number of reasons, including the richness of the support.
“Synopsys already had the models you need for virtual prototyping, alongside the IP itself in its DesignWare library,” says Mitchell. “In a lot of cases like this, if the vendor has all that ready-to-go, it gets the business.
“Having industry support for transaction-level models (TLMs - Guide), and having them from several sources - other IP vendors, but also the processor core providers themselves - means that you can quickly put them together in a Lego-like way.”
As Altera was moving into full virtual prototyping, technical support was also important. “When we started, we didn’t have our Austin Technology Center [where much of the embedded software development ultimately took place]. It came later.
“Synopsys had the technical support to introduce our staff to virtual prototyping, but could also do much of the work, if needed, as we staffed up.
“Through its Services organization, it could give us the recommended path to follow as we developed our prototyping platform.”
Finally, Mitchell says it was important that Synopsys had tailored its tools to enable software development as add-ons rather than replacements for the tools its embedded team already used.
“These guys are creatures of habit. They want to work in familiar environments with their preferred debuggers. For example, it could be GDB [the GNU debugger], Lauterbach or DS-5 on the ARM side,” she says.
“The appeal of the Synopsys Virtual Platform is that it’s like your existing desktop. It extends the tools that you’re used to. You don’t have to learn something new. You just have to be introduced to it.”
Implementing a virtual prototyping flow
“My team has an unusual composition, though I think you’ll see it become more common,” says Mitchell. “I have the system modelers as well as the guys who write the device drivers. What we wanted to do was bring everyone together, get a very close relationship across the different disciplines.”
The first building block here was the way in which the industry and virtual prototyping as a technique have coalesced around SystemC (Guide) and the TLM 2.0 standard.
“If you get embedded people who are comfortable on the C++ side, you can ramp up pretty quickly with the right toolset. It means that there is a way for the different sides of the project to communicate,” Mitchell says.
The ultimate goal is not just to speed up discrete hardware and software development - although early access to a platform does bring that benefit – but to integrate the design processes.
“What you want is a situation where what happens on the hardware side can very quickly be influenced by, or influence, the software side, and the other way around. You want an active communication between the two sides,” says Mitchell.
“One example of what virtual prototyping enabled us to do here was the bridge between the SoC that we’ve integrated [and] the FPGA [fabric].”
The SoC element has a large amount of I/O – in fact, more virtual pins than there are actual pins coming out of the FPGA. Connecting the SoC element with the FGPA fabric therefore meant a lot of dynamic switching within the bridge between the two.
“Using virtual prototyping, the architects could go to the software team and say, ‘We’re thinking about doing this. Is it something you guys can manage?’ Because, from a software side, we owned control of the SoC elements, we could make suggestions. ‘Sure, we think we could do it with this type of multiplexing scheme.’ And then you can take those results and model them,” says Mitchell.
More recently, as its understanding of virtual prototyping has increased, Altera has tried to spread this kind of interplay still further.
“One of the best practices that we have adopted, and which we’re quite proud of, is that we now host our virtual platform on our automated server farm,” says Mitchell. “So, when we make changes to the source code, to the kernel and the device drivers, we can deploy those changes automatically to a suite of VPs and test them immediately.
“The reason we can do that is that the platform has standard controls and debugging information, and it’s available on multiple platforms, both Windows and Linux-based hosts.
“We can dynamically build and deploy to our virtual platform more easily than we can to a hardware-based emulator (Guide), and we can also run regression tests overnight, so that we ensure we have the highest-quality software.
“I think we’ve really capitalized on the integration aspect to automate our build infrastructure and our test infrastructure.”
Using the Synopsys virtual-prototyping infrastructure and gradually building its own knowledge of the technique helped Altera complete development work on its SoC FPGA ahead of schedule.
“Our device taped out in September and the first silicon came back in November but we already had the software ready for it. We were in the Linux kernel for a device that had yet to come out,” says Mitchell.
Using virtual prototyping wasn’t just about accelerated time-to-market and revenue.
“Throughout the project, we had the ability to make tweaks and adjustments to the architecture and simultaneous adjustments on the software side,” she adds. “That meant we saw very rapid development iterations using the virtual prototyping tools.”
The platform also provides a way to bring up the new device’s supporting infrastructure, by sharing the increasingly mature prototype with key partners, so that both Altera’s and their enhancements would be in place as soon as silicon could be sent to customers.
“It wasn’t just that we were in the Linux kernel before silicon came back,” says Mitchell. “We were able to develop board support packages for a variety of applicable OSes. We had pre-silicon support for VXWorks, for MicroC/OS-II and for others.
“It was critical that we enabled as much of the ecosystem as possible as early as possible.”
This virtual platform also meant that Altera’s sales team had something to show to those potential customers.
“They had it out in the field, running from a laptop and helping us secure design wins before we even had the device back from the fab.”
Agile systems development
“Agile software development is a pretty powerful term that people have been talking about for a long time,” says Mitchell. “Agility in software is a really good way to make sure that you hit your requirements and make sure that you stand a chance of hitting your schedule.
“In our case, we saw that we could apply the same idea to a very complex SoC that had all this software that had to be developed for it at the same time. So we now see this as agile systems development, because you are bringing all these things together. We were able to rapidly change the prototype, rapidly change the software and deliver on time with a product that is going to meet market requirements.”
Because of its success on the SoC FPGA, Mitchell now regards virtual prototyping as a must-have and believes that its reach can be extended still further.
“We’ve already seen how we can reduce complexity using this agile systems approach. Going forward, it’s going to become more beneficial when we address even more complex problems, such as those related to power,” she says.
“Because we can make decisions before we tape out - ‘Does it make sense to have this as a piece of hard IP embedded in the die or do it as soft logic in the FPGA?’ - we can take performance measurements and see which one has the least latency, the least power draw over time, and make the decisions there.
“At the end of the day, not only will that save us from making critical errors in our architecture, it can also save us and our customers a fair amount of money.”
To find out more about the Synopsys solution for virtual prototyping, click here.
To find out more about the SoC FPGA family from Altera, click here.