By Richard Goering
Few people have advocated system-level design as consistently or as passionately as Alberto Sangiovanni-Vincentelli, professor of electrical engineering and computer science at the University of California at Berkeley since 1976. Sangiovanni-Vincentelli is a co-founder of Cadence Design Systems and Synopsys, and serves as chief technology advisor to Cadence. He’s consulted for many companies including Bell Labs, BMW, Daimler-Chrysler, Fujitsu, General Motors, Kawasaki Steel, Hitachi, IBM, Intel, Magneti Marelli, Pirelli, Sony, STMicroelectronics, and United Technologies Corporation. He is also a developer of Metropolis, a multi-university project that is seeking to create a design environment for heterogeneous systems.
In this Q&A interview, Sangiovanni-Vincentelli shares his views about making system-level design successful, and calls on the EDA community to think beyond ICs and address much broader challenges.
SCDsource: What are the biggest challenges that the companies you consult with are facing?
Sangiovanni-Vincentelli: Everybody is concerned about time to market with reliable products. For General Motors, the issue is to virtualize the engineering process, or in other words to make extensive use of computing. They are aiming at virtual vehicle development, and that means they try to eliminate, as much as possible, the need to do physical prototyping.
At United Technologies, we are making a major effort to introduce virtual engineering, and the main point is the same. We are trying to make sure there is appropriate design space exploration, and that products are optimized. One of the big technology pushes they are going after is intelligent buildings, which is the integration of air conditioning and elevators with buildings so you can manage these things more efficiently. At United Technologies we are using platform-based design, and people are convinced this is the right way to go.
SCDsource: After years of research and talk about system-level design in EDA, it’s still not widely adopted. Why hasn’t it been more successful?
Sangiovanni-Vincentelli: I think there are a number of issues. If you look at the EDA companies, they are mostly related to IC design, and they do not have a presence in the systems market. Mentor Graphics does with its cabling offering, but it’s more at the hardware level or layout level than the product conception level. This means EDA companies don’t have the right complexion, the right people or the right marketing for products targeted at systems.
In my Quo Vadis paper [Quo Vadis SLD: Reasoning about Trends and Challenges of System-Level Design], I also fault system companies because they haven’t recognized up until now the value of tools, especially for software development. They think these kinds of tools are very cheap. But if you look at software development tools now in the systems arena, and look at software companies like Telelogic or Rational, they have done quite a lot to improve technology. As soon as we are able to produce substantial productivity gains with software development tools, I believe we’ll see prices way above what they are today.
SCDsource: What can be done to improve software development productivity?
Sangiovanni-Vincentelli: About ten years ago, we did a lot of work with Magneti Marelli, a company in the automotive market. We tried to bring in a model-driven design approach that was similar to what we have done in logic synthesis. We looked around and decided that The Mathworks had a very good compiler from Simulink diagrams. Lo and behold, the number of software designers was reduced from 500 to 150, and the number of people doing control design doubled.
What happens is you reduce the people underneath, and increase the number of people above. We saw it in action. We still believe that the right way of doing it is designing at a higher level by trying to automatically generate code. But we are nowhere near the point where everything is done that way today.
SCDsource: In your Quo Vadis paper, you say the problem is not so much an issue of tools as a lack of understanding of the principles of system design.
Sangiovanni-Vincentelli: Yes, exactly. It’s a methodology issue. In my opinion, once you have a solid methodology, then you’ll have the tools, and people are much more likely to apply the methodology.
SCDsource: So what needs to happen in order to bring about a better understanding of system design?
Sangiovanni-Vincentelli: The EDA industry has to talk and work with companies in the system domain. I started working with these companies in 1988 and I must say that for about ten years I was just scratching the surface. By working with companies that make elevators, or cars, or airplane engines, you find out there are principles you can apply, like platform-based design.
Since I knew ICs, I found out there were some principles you could apply everywhere. At every level of abstraction, the same process is taking place. You could have a chip architecture, or a distributed system in an airplane, or a communications company like Telecom Italia, and the way you go about [design] is pretty much the same.
In these companies, there are still sizable pockets of people who don’t want to abandon the old way, and you can see that there are all kinds of problems. We saw problems with the iPhone. It’s not a big system, but it’s a system and it has quality problems. You can’t dominate complexity without using a rigorous design methodology. Interestingly enough, I see that companies are setting aside sizable amounts of money to do system-level design. If you look at Boeing, Airbus, or General Motors, there is a sizable budget for tools.
SCDsource: What tools are these companies using now, and what does the EDA community need to do to tap into this market?
Sangiovanni-Vincentelli: They need to invest sizable amounts of money, and I don’t see where they can pull it from. We are talking about the integration of electrical and mechanical.
GM has a strategic relationship with [product lifecycle management software provider] UGS. They’re a big company, more than a billion dollars. They were recently sold to Siemens. Another very important player in this domain is The Mathworks. There are also niche players in the automotive domain like dSpace.
SCDsource: You speak frequently of platform-based design. How do you define that?
Sangiovanni-Vincentelli: For me, a platform is a family of designs that is parameterized by a library. If you’re thinking about logic synthesis, a platform is a library of gates. If you’re considering buildings or cars, the library becomes the basic elements people use to design the system. In the case of an HVAC system, you have a refrigeration unit, and then you put together compression, power, electronics, and controllers.
SCDsource: Why is platform-based design so important?
Sangiovanni-Vincentelli: Platform-based design is important because it’s a unifying framework. It’s pretty obvious to me you need to have a single view. Platform-based design basically says that when you do design, you have to think about how to partition the design so that at every step you understand what you are doing and what you are trying to optimize. If you are putting together mechanical and electrical, if you are putting together hardware and software, this makes it so much easier. It’s quite powerful, and we go on refining the concept as we move from one company to another.
SCDsource: What kind of success has platform-based design had in chip design?
Sangiovanni-Vincentelli: If you use my definition, there is not a single company today that is not doing platform-based design. Essentially, we are talking about families of chips defined by some components, and then you can add other components. The first example of this was the Nexperia platform. We were bringing up this concept when Philips was designing it, and I talked a lot to the head designer of Nexperia, and it was very clear to me this was the right approach. Then you can see that Texas Instruments OMAP is a platform in the sense that you have a library of plug-and-play components.
SCDsource: You spoke of virtual engineering at a talk at Cadence’s CDN Live! conference in September. What is it, and what are the implications for the EDA industry? Sangiovanni-Vincentelli: Virtual engineering means that all the steps of the design are done only on the computer, and you don’t need to do physical prototyping. It’s the same type of thing we were doing many years ago when there was a breadboard, but now nobody uses breadboards.
We do virtual engineering for chips, and that’s what EDA is all about. But virtual engineering opens an opportunity for EDA in the big systems companies. They [EDA vendors] have to understand what models [systems companies] need, and how to combine mechanical with electrical and software design.
SCDsource: Embedded software development has become a huge bottleneck for systems design. How can, or should, the EDA community address that issue?
Sangiovanni-Vincentelli: If you look at safety-critical applications, like brake-by-wire or airplane control, these are real-time systems in which you cannot possibly allow errors. You have to consider timing and you have to consider power consumption. The software is implemented on a hardware platform, and the hardware platform determines what the parameters will be. I have to expose the software designer to the impact of a decision that is a combination of how he does the algorithms and how he partitions the design to the platform. That is a unique opportunity for EDA, because EDA has a knowledge of the chip and the system that implemented the software.
I don’t see much capability of going back quickly to a design and looking at how much time it will take and how much power is consumed. This is actually the weak point of every system I have seen. This is what we are trying to do with Metropolis. In EDA, companies like Vast, Virtutech and CoWare are trying to build higher-level models that are really fast. If you’re a software designer, you can put your software on these models and see how it performs.
The problem is that if you have just simulation capabilities and nothing else, you have to link everything together. One problem with system-level design is critical mass – whether the size of the company can support enough investment to do the relevant work. I think there will be a consolidation process in the systems space. I believe at some point there will be a major earthquake where you’re going to have major mergers or intervention by large companies. UGS was acquired by Siemens, and Telelogic was acquired by IBM. You’ll start seeing that sort of thing in EDA.
SCDsource: We have electronic system level [ESL] tools and methodologies today. Are they doing the job or are they still lacking?
Sangiovanni-Vincentelli: Today we have automatic coding, which is essentially an intelligent compiler. What I think is missing, and what I think could bring a major improvement, is what we have done for logic synthesis. There, we take a high level design, we map it into a mathematical intermediate format, and we optimize it to death. What comes out of the optimization does not resemble what went in. So you can imagine doing that in the software domain.
Today, the compilers work on localized principles. They don’t do code restructuring. We need to do that, especially since the code we run has timing and power constraints. We’re capable of applying deep mathematical techniques to do that. When that capability is there, people will not even consider writing code by hand except in specialized cases.
SCDsource: You speak often of the need to separate functional and architectural design. Why is that so important?
Sangiovanni-Vincentelli: This principle came to me in 1988, when Magneti Marelli was doing the first version of a semi-automatic gear shift for the Formula One race car. It was very crude, and the implementation platform was based on 8-bit microcontrollers. Those are horrible things to debug. When we looked at it, we tried to figure out if something was wrong with the logic, which was almost impossible. Then we asked the people who did the implementation, and they said the algorithms must be wrong.
With the separation of function and architecture, the first thing you do is verify that the functionality is correct, and then you look at implementation. The chance of making errors is decreased because you can do a comparison between the functionality and the implementation. This is a big problem for chip design. If you go into a company like Intel, they do have a high-level design entry system, but after that they code into RTL. The RTL becomes the reference model and there’s no more back annotation to the high-level model. The opportunity of understanding logic changes at the RTL is lost. If you keep functional and architecture separate, you can back annotate the changes and re-verify the functionality.
SCDsource: What is the Metropolis project, and how can it contribute to the development of system-level design?
Sangiovanni-Vincentelli: Metropolis is intended to implement this [system-level design] methodology. It has a view of architecture and function, and a view of going from a higher-level abstraction to a lower-level abstraction by associating functionality with architecture. An important point with such a framework is that you have to be capable of mixing and matching different models, and for that reason we needed to develop a new mathematics embedded in what we call a Metropolis meta-model, which is a formalism like FSMs [finite state machines].
The other important element of Metropolis is the capability of computing and reasoning about quantities like timing and power. The framework is able to extract this information and annotate the functionality. You don’t need different tools to do timing and power. Another important point is the capability of expressing constraints. Our view is that design is based on functionality, architecture and constraints. Last but not least is a capability in the second version of Metropolis for integrating different tools.
I know some companies are looking at this way of thinking. I’m very pleased this kind of thing is making its way.