ChipCenter Questlink
SEARCH CHIPCENTER
Search Type:
Search for:




Knowledge Centers
Product Reviews
Data Sheets
Guides & Experts
News
International
Ask Us
Circuit Cellar Online
App Notes
NetSeminars
Careers
Resources
FAQ
EE Times Network
Electronics Group Sites


Embedded Systems

Feature Archives | Feedback

Real-Time Simulation Tools Reduce Time To Market

By B.J. Singh, Vice President of Marketing, Emultek Ltd.


This is a hypertext document. Read the section abstracts below and link to the sections you find most interesting.

Introduction
Virtual prototyping is usually a software solution that enables users to design not only the look of a system but also its behavior, major advantage over physical prototyping.

Incorporating Customer Demands
Creating a simulation of the next product as the first step in product development allows the user to perform usability testing. Customers and focus groups can be asked to manipulate the simulation of the next product and valuable input can be gathered.

Creating the simulation
Emultek's software is a 32-bit Windows application that uses state transition methodology to enable users to build fully functional simulations without writing a single line of code.

Concurrent product development
Once the simulation is finalized, Emultek's Rapid PLUS enables users to automatically and concurrently generate specs, test scripts and embeddable C or C++ code.

Automatic Specifications Generation
From the time the simulation of an embedded product is finalized, Emultek's time-to-market solution can automatically generate an interactive specifications document.

Automatically outputting C or C++ Code and data for production
Once the simulation of the embedded product is finalized, the tool package can automatically generate C or C++ code.

Example


Introduction
(Back to top)


As the marketplace for consumer electronics, telecommunications, and office automation becomes more and more competitive, companies are looking for solutions that can dramatically reduce time to market while improving the quality of the product. When product lifetimes are measured in months, time-to-market reduction is at the top of any embedded manufacturer's priority list.

Simulation and prototyping have long been traditional solutions to these obstacles. "Prototyping" means different things to different people. It encompasses conventional methods like physical rapid prototyping and computer-aided design (CAD) as well as new and much more powerful solutions such as virtual prototyping. Physical prototyping usually involves creating physical molds and the external structural design of a product. CAD software is also used to design the external look of the product. Both of these methods typically facilitate ergonomics testing and ensure that marketing and engineering teams agree on the look and feel of the next product. However, these methods have had one major drawback--they cannot reflect the behavior of the system.

This drawback, combined with the fact that most physical prototyping solutions are fairly expensive, has led to a new generation of "virtual prototyping" tools. Virtual prototyping is usually a software solution that enables users to design not only the look of a system but also its behavior.

The ability to create fully functional simulation has major advantages. It greatly enhances communications between marketing and engineering teams; it allows companies to do focus groups and test the product before spending even a dime on development, and it greatly reduces errors that occur in a typical development process. Emultek's latest Windows-based Rapid PLUS software automates several of the time-consuming steps in the development process, and is the tool of choice for Motorola, Samsung, Yamaha, Matshushita, Panasonic and others.


Incorporating Customer Demands
(Back to top)

Product definition is the crucial first step of any product's development. Customers buy products based on ease of use, feature set, and user interface. It is imperative that the customer's demands are translated into actual product features and functions. Creating a simulation of the next product as the first step allows the user to perform usability testing. Customers and focus groups can be asked to manipulate the simulation of the next product and valuable input can be gathered.

Because Rapid is based on object-oriented technology, changes can be made and tested quickly and easily. The simulation can also be connected to external devices. For example, a physical prototype of a cellular phone with just a live keypad and display can be connected to a PC that contains the logic for this phone. While the customer manipulates the physical prototype, the logic is actually processed on the connected PC.

The ability to incorporate customer demands before spending any time or money on actual product development has tremendous benefits. Using textual descriptions to perform usability testing is confusing and inefficient at best. Making changes after the first version of a physical product has been developed is often too time consuming and costly. With the fierce competition in the marketplace today, every day that a product is late to market can result in thousands of dollars in lost revenue. In fact, consultants McKinsey and Co. have reported that a product that is six months late but on budget will generate 33 percent less revenue over a five year period than it would if it were on time.


Creating the simulation
(Back to top)

Emultek's software is a 32-bit Windows application that uses state transition methodology to enable users to build fully functional simulations without writing a single line of code. Creating the simulation of an embedded product involves several intuitive steps. First, the marketing requests for the overall behavior of the product are broken down into separate units of behavior, or modes. For example, the product can be on or off. These are two distinct modes.

Second, a description of a complex embedded device would have many other modes in addition to "on" and "off". While the device is on, there are several possible modes that could be implemented or requested by marketing. The device could be in one or several of these modes at any given time. A mode can be as brief as a fraction of a second, or extend to several seconds, minutes, or hours. Each mode, no matter how brief, is a distinct unit within the system's life cycle. Emultek's solution allows developers to depict all the modes of a system as they occur in real life.

Third, the basic building blocks of any simulation application are the objects. Objects are visual and non-visual elements participating in a system such as lamps, switches and timers. Every object has a pre-defined set of properties and functions that describe everything it can do in a real-time situation. A push button, for example, could either be in or out.

Fourth, to build the logic flow of the system, all the transitions between modes and the triggers that initiate them are defined. For example, the transition from one navigation screen to the next is triggered by the arrow key. Every transition has one or more triggers associated with it. The transition occurs only when one of these triggers is activated. Triggers are statements such as, "when the button is in."

Finally, to define the actual behavior of the device (i.e., what the simulation does in each mode), all the activities that are performed in each mode are specified. These activities only occur when their mode becomes active. Activities are statements such as "switch the lamp on", "start the timer" or "blink the display". Activities are also constructed using the objects' properties and functions.


Concurrent product development
(Back to top)

Once the customers, focus groups, marketing, engineering and all other relevant departments agree on the final product, then the simulation becomes the basis of the entire development cycle. Based on this simulation and prototyping tool, Emultek has developed Rapid PLUS, a new integrated software solution designed to help electronics manufacturers reduce time to market. Once the simulation is finalized, Rapid PLUS enables users to automatically and concurrently generate specs, test scripts and embeddable C or C++ code for the Human Machine Interface.


Automatic Specifications Generation
(Back to top)

From the time the simulation of an embedded product is finalized, Emultek's time-to-market solution can automatically generate an interactive specifications document. These documents are generated by simply recording the required sequences on the prototype. This document can either be in an HTML or an RTF format. It has detailed descriptions of all the objects, their logic and their relationships to all other objects in the simulation.

This document can also contain use cases. These use cases can either be in a textual format or can include screen captures of the entire procedure and its output. Furthermore, a single mouse click can play back the entire use case on the actual simulation. These specifications can be used to plan the entire development phase and various departments can start their respective tasks concurrently.


Automatically outputting C or C++ Code and data for production
(Back to top)



Once the simulation of the embedded product is finalized, the tool package can automatically generate C or C++ code. The software architecture of the final image to be loaded into the user target system consists of two main domains: the Rapid PLUS-generated domain and the user-application domain. The user-application domain includes all the end-user tasks in the user-designed configuration. The Rapid-generated domain includes the Rapid state-machine kernel and Rapid-generated code. Both run in the context of one Human Machine Interface (HMI) task.

Rapid-generated code corresponds to the logic written by the developer, and data representing the objects, modes, and data required by the state machine to simulate the model. The state machine implements the behavior of the system by converting input events into transitions within the hierarchical state charts, and then implementing these transitions. The state-machine kernel represents the engine that executes the generated code.

The communication layer between the two domains is the operating system's message-passing mechanism such as mailboxes or queues. User-application domain tasks send messages to the MMI task by dropping the message in the input mailbox or queue; the generated domain sends information to the user-application domain by using one or several output mailboxes or queues.


Example
(Back to top)

The following is an example of the implementation of the generated code in a GPS receiver. This sequence of events takes place while running on the target hardware. The example shows the decoupling mechanism between the drivers and the HMI task. If this decoupling is not necessary, the drivers can run in the context of the HMI task without the inter-task communication. The scenario begins from the moment that the user presses a key and ends when the application-specific result is displayed on GPS screen.


Additional Information

Refer to http://www.emultek.com/appgal.htm, http://www.emultek.com/prodplva.htm, and http://www.emultek.com/prodpllc.htm for additional information.


Home | Product Report | Feature Story | Application Note | Vendor Tools | Feedback

Click here to get your listing up.

Copyright © 2003 ChipCenter-QuestLink
About ChipCenter-Questlink  Contact Us  Privacy Statement   Advertising Information  FAQ