Integrating Hardware and Software Design
Many mechatronic system capabilities depend on software as well as hardware. Hardware and software development methodologies, however, are quite often seperated within a company despite the obvious advantages of an integrated flow. In some ways, trying to combine hardware and software design into a single, integrated flow is much like trying to make a great salad dressing using oil and vinegar: getting the two to mix well together can be a challenge, but the end result is well worth the effort.
Though a bit simplified, a typical system design flow with both hardware and software elements often looks like the following diagram. While the flows may start out together with initial system discussions, it isn’t long before the software team returns to their lab to write the software, and the hardware team returns to their own lab to simulate, analyze, and prototype the system hardware. Each team has their own development processes, and the software and hardware are seldom integrated until the integration and test phase late in the development cycle – too late, sometimes, to enable cost effective changes.
Compare this with the integrated flow illustrated in the following diagram. Hardware and software design are integrated, via a virtual prototyping environment, from the very beginning of the development cycle. Design partitioning decisions are made early in the design cycle, and requirements are defined and refined together. Design sync and verification tasks are scheduled at predetermined points throughout the integrated design flow. Concurrent prototype and test activities follow the design phase and flow naturally from the integrated design and verification process.
Naturally, implementing an integrated hardware/software development flow places considerable requirements on design tools. The hardware team needs a design environment with which they can model, simulate, and analyze a complete mechatronic system – in essence, an environment where they can create a virtual prototype of the system’s hardware. The software team needs a bridge that integrates their software development efforts into the hardware modeling and analysis environment.
Mentor Graphics offers a variety of development tools for system design and verification, including SystemVision and SystemVision conneXion (SVX). SystemVision is a powerful development environment optimized for modeling and analyzing mechatronic systems. And SystemVision conneXion is an extensible application that links SystemVision with multiple processes, including C++ and Java development environments and executables, for integrating software development activities into a system simulation.