Embedded Systems Design Europe - June/July 2008 - (Page 17) cover feature cisions and perform design tradeoffs. At this stage, the virtual prototype may use a cycle-accurate ISS for the processor and an automatically generated model of the memory controller in order to ensure that the latency and throughput requirements for memory accesses are being met. As the design firms and software engineers begin using the virtual prototype for software development, the cycle-accurate ISS and memory controller may be swapped out for less accurate but higher speed implementations. Other components in the system may be modeled at a high level of abstraction to deliver the fastest execution speeds or be represented using automatically generated models to deliver the greatest accuracy. INTERCHANGEABLE MODELS In many cases, abstract models and automatically generated models for the same component can be interchanged to enable a virtual prototype to represent speed or accuracy for each component depending upon the needs of the individual programmer. A driver developer may require a hardware-accurate model for certain components and only require abstract representations for the others. A virtual platform with both hardware-accurate and abstract models for various components allows for the straightforward tradeoff of speed versus accuracy as the software development needs evolve. The actual platform execution speed in this hybrid approach typically varies depending upon the accuracy of the overall platform but can reach well into the MIPS range. More important than the execution speed, however, is the debug throughput that can be achieved. The versatility, visibility, and wider deployability of a virtual prototype enable software bugs to be found and fixed substantially faster than is possible with a physical prototype. The value of virtual prototypes is not confined to early software development. There are multiple places prototypes are playing an important part here as well. Virtual models automatically generated from a hardware description can generate waveforms. These waveforms are then utilized by power estimation tools to accurately profile the power consumption of system components while running software. This flow is demonstrated in Figure 3. A virtual prototype is executing system software. As this software interacts with the compiled components in the system, they generate waveforms that represent the true hardware behavior of the system. These waveforms can then be passed into power-estimation tools to generate a power profile of the system while executing software. Power estimates generated while running software are more accurate since the system resource usage matches what will occur in real silicon. This same technique can be used on chips that have already been manufactured to profile power usage while running software. This enables software-driven power optimizations without the need to modify the hardware. MANY THINGS, MANY PEOPLE The flexibility and adaptability of software-based virtual prototypes allow them to be many things to many people. The system architect can have a cycle-accurate platform to make early design decisions. The driver developer has a platform containing accuracy where it is needed for driver development but speed where it is needed for debugability. Finally, the high-level software engineer has a functional platform for developing and debugging application software. We’ve examined a number of different approaches to virtual prototyping in this article. A follow up article available on line at Embedded.com will present a real-world application of virtual-prototype creation and use for software development. Bill Neifert (bill@carbondesignsystems. com) is a cofounder of Carbon Design Systems. 17 where they can add value to the system design lifecycle. An accurate virtual platform running real system software is an invaluable tool for the system architects who were some of the methodology’s earliest adopters. The virtual environment enables architects to play out various scenarios and configurations to easily profile execution and identify problem areas. Armed with this data, they can confidently make important architectural tradeoffs in areas such as bus-widths, memory latency, arbitration schemes, and a host of other configurable areas. Power usage is increasingly in the forefront when design decisions are made in modern systems, and virtual www.embedded.com/europe | embedded systems design europe | JUNE – JULY 2008 http://Embedded.com http://www.embedded.com/europe
Table of Contents Feed for the Digital Edition of Embedded Systems Design Europe - June/July 2008 Embedded Systems Design Europe - June 2008 Contents Work in Progress to Define Compact PCI Plus Power.org Demonstrates New Tools Project Supports Multi-core System Programming Altium Links Electronic to Mechanical Design PLDs Look to Cut Power Budget and Costs Project to Provide Coverage Analysis Tool Microsoft Details Windows Embedded Update Cover Feature: Leveraging Virtual Hardware Platforms for Software Allocating Memory in MATLAB-to-C Code MDD & IDEs: Making the Twain Meet in Embedded System Designs Debugging Mixed Signal Designs for Infrequent & Random Events Why Open Source is the Natural Choice for High-security Systems Bringing the Benefits of Low Power CPUs to Modular Design New Products Advertising Contacts Embedded Systems Design Europe - June/July 2008 Embedded Systems Design Europe - June/July 2008 - Embedded Systems Design Europe - June 2008 (Page 1) Embedded Systems Design Europe - June/July 2008 - Embedded Systems Design Europe - June 2008 (Page 2) Embedded Systems Design Europe - June/July 2008 - Contents (Page 3) Embedded Systems Design Europe - June/July 2008 - Contents (Page 4) Embedded Systems Design Europe - June/July 2008 - Contents (Page 5) Embedded Systems Design Europe - June/July 2008 - Project Supports Multi-core System Programming (Page 6) Embedded Systems Design Europe - June/July 2008 - Project Supports Multi-core System Programming (Page 7) Embedded Systems Design Europe - June/July 2008 - Altium Links Electronic to Mechanical Design (Page 8) Embedded Systems Design Europe - June/July 2008 - Altium Links Electronic to Mechanical Design (Page 9) Embedded Systems Design Europe - June/July 2008 - PLDs Look to Cut Power Budget and Costs (Page 10) Embedded Systems Design Europe - June/July 2008 - PLDs Look to Cut Power Budget and Costs (Page 11) Embedded Systems Design Europe - June/July 2008 - Microsoft Details Windows Embedded Update (Page 12) Embedded Systems Design Europe - June/July 2008 - Microsoft Details Windows Embedded Update (Page 13) Embedded Systems Design Europe - June/July 2008 - Cover Feature: Leveraging Virtual Hardware Platforms for Software (Page 14) Embedded Systems Design Europe - June/July 2008 - Cover Feature: Leveraging Virtual Hardware Platforms for Software (Page 15) Embedded Systems Design Europe - June/July 2008 - Cover Feature: Leveraging Virtual Hardware Platforms for Software (Page 16) Embedded Systems Design Europe - June/July 2008 - Cover Feature: Leveraging Virtual Hardware Platforms for Software (Page 17) Embedded Systems Design Europe - June/July 2008 - Allocating Memory in MATLAB-to-C Code (Page 18) Embedded Systems Design Europe - June/July 2008 - Allocating Memory in MATLAB-to-C Code (Page 19) Embedded Systems Design Europe - June/July 2008 - Allocating Memory in MATLAB-to-C Code (Page 20) Embedded Systems Design Europe - June/July 2008 - Allocating Memory in MATLAB-to-C Code (Page 21) Embedded Systems Design Europe - June/July 2008 - MDD & IDEs: Making the Twain Meet in Embedded System Designs (Page 22) Embedded Systems Design Europe - June/July 2008 - MDD & IDEs: Making the Twain Meet in Embedded System Designs (Page 23) Embedded Systems Design Europe - June/July 2008 - MDD & IDEs: Making the Twain Meet in Embedded System Designs (Page 24) Embedded Systems Design Europe - June/July 2008 - MDD & IDEs: Making the Twain Meet in Embedded System Designs (Page 25) Embedded Systems Design Europe - June/July 2008 - MDD & IDEs: Making the Twain Meet in Embedded System Designs (Page 26) Embedded Systems Design Europe - June/July 2008 - Debugging Mixed Signal Designs for Infrequent & Random Events (Page 27) Embedded Systems Design Europe - June/July 2008 - Debugging Mixed Signal Designs for Infrequent & Random Events (Page 28) Embedded Systems Design Europe - June/July 2008 - Debugging Mixed Signal Designs for Infrequent & Random Events (Page 29) Embedded Systems Design Europe - June/July 2008 - Debugging Mixed Signal Designs for Infrequent & Random Events (Page 30) Embedded Systems Design Europe - June/July 2008 - Why Open Source is the Natural Choice for High-security Systems (Page 31) Embedded Systems Design Europe - June/July 2008 - Why Open Source is the Natural Choice for High-security Systems (Page 32) Embedded Systems Design Europe - June/July 2008 - Why Open Source is the Natural Choice for High-security Systems (Page 33) Embedded Systems Design Europe - June/July 2008 - Bringing the Benefits of Low Power CPUs to Modular Design (Page 34) Embedded Systems Design Europe - June/July 2008 - Bringing the Benefits of Low Power CPUs to Modular Design (Page 35) Embedded Systems Design Europe - June/July 2008 - Bringing the Benefits of Low Power CPUs to Modular Design (Page 36) Embedded Systems Design Europe - June/July 2008 - New Products (Page 37) Embedded Systems Design Europe - June/July 2008 - New Products (Page 38) Embedded Systems Design Europe - June/July 2008 - New Products (Page 39) Embedded Systems Design Europe - June/July 2008 - New Products (Page 40) Embedded Systems Design Europe - June/July 2008 - New Products (Page 41) Embedded Systems Design Europe - June/July 2008 - New Products (Page 42) Embedded Systems Design Europe - June/July 2008 - Advertising Contacts (Page 43) Embedded Systems Design Europe - June/July 2008 - Advertising Contacts (Page 44)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.