As engineers we often use “system” to describe different levels of design abstraction. Chip designers refer to integrated circuits as systems on chips. Audio designers refer to an amplifier as a system. Aircraft brake designers create systems for stopping aircraft. There truly are a variety of ways to define and implement a system. And most things we call a system are really just a subsystem of a larger system. I could get a little philosophical and propose that there isn’t a system that isn’t also a subsystem of a still larger system, but I’ll save that discussion for another time. For this blog post, I’ll stick with a general definition as suggested by a couple of examples: an aircraft is a system, but all the assemblies required to build it are subsystems; an automobile is a system, but all the assemblies used to create the car are subsystems. Get the picture? Good.
A colleague and I recently spent some time with an automotive customer. One of the promises of multi-domain simulators is the potential to do a full-system, not subsystem, simulation. But I’ve seldom seen a customer actually make a serious attempt to do so. Those that make the attempt usually use such high level models that the simulation results give a limited, and sometimes unrealistic, view of system performance. This customer, however, actually modeled the major subsystems in the target automotive platform, and then connected these subsystems together to model the dynamics of the car driving down the road. Subsystem models accounted for everything involved in moving the car, including engine, transmission, differential, wheels/tires, and brakes.
Along with developing models for vehicle subsystems, the company linked in several data files from actual vehicle test drives. Once simulation data matches test drive data, the complete system model will be qualified as a valid test bench for the vehicle. The company’s ultimate goal is to analyze, via simulation, the effects of driving conditions on vehicle performance. Think of the possibilities — with a running and validated system simulation, engineers can easily and accurately test multiple vehicle configurations and options, and make important automotive platform design decisions, before building a drivable prototype. Doing so is one of the many benefits of using virtual prototypes in a design flow.
Setting up a mixed-technology, full-system simulation for something as complex as an automobile takes a bit of thought and a lot of time. While the upfront resource investment required to build a complex system model is usually not trivial, the benefits measured in reduced prototyping costs and improved design quality easily justify the expense. Not many years ago, such a system simulation would have been impossible. But thanks to powerful modeling languages like VHDL-AMS, and robust simulators like SystemVision, full-system simulations are possible, practical, and quickly becoming a design flow necessity.