CoMET
Quick sketching, rapid experimentation and visualization of ideas are the métier of system architects. Synopsys virtual prototype technologies enable system architects to rapidly construct and evaluate candidate system architectures. A virtual prototype simulates fast enough to enable architects to evaluate architectures under real software loads, including real-time operating systems, protocol stacks and large software libraries — no need to compromise by running just a small sample of the software.
METeor
Using Synopsys embedded software development environment, METeor, and the Synopsys virtual prototype software, development can begin even before the detailed hardware design has been finalized. Porting of operating systems and communication stacks, together with the development of both driver and application code, can be overlapped with hardware design and development. Concurrent design and development means substantially reduced product cycle times and time-to-market for new and iterated products.
Peripheral Device Builder Creates Powerful Virtual Models
Peripheral Device Builder (PDB) allows users to quickly create their own virtual models. PDB automates much of the peripheral modeling task and then allows users to rapidly integrate the models directly into a platform.
Peripheral Device Builder models interrupt controllers, DMA controllers, UARTs, IO devices, timers, and many others. PDB not only automates much of the model coding process but also provides a common code base thus helping to ensure consistency and quality by removing human error.

VPM Transformer
In addition to Synopsys creating virtual models of processors, Synopsys customers can now use Virtual Processor Model (VPM) Transformer (VPM-T), a toolset and methodology for modification of the instruction set and timing of a Synopsys Seed VPM. The Synopsys Seed VPM models the instruction set, micro-architecture, pipelining and other behavior of a specific microprocessor. Users then generate a new VPM in the same microprocessor family by adding, removing or replacing instructions in the Synopsys Seed VPM instruction set. The behavior, timing and mnemonic aspects of an instruction can be changed independently.

A Synopsys virtual prototype represents a revolutionary change for target software development — it removes the need to develop code on host workstations and test by downloading to target single- board computers for execution and debugging. Software is developed on a virtual prototype of the target system rather than on a host system. Code is then executed and debugged as it is written — not months later when the silicon is available.
The Synopsys virtual prototype simulates fast enough that it is no longer necessary to use either host-based or hardware-based (ICE, emulation or prototype) development approaches. Since the entire simulation is cycle-accurate, it can be used to develop both software with strict real-time requirements and software that interacts intimately with the hardware. A Synopsys virtual prototype is a PC-based surrogate for the actual chip or system into which the software will eventually be integrated.
Building and using Synopsys virtual prototypes does not require major changes to a software development methodology. Because a Synopsys virtual prototype executes the identical binary code used on the real hardware the choices of compiler and source-code control software are not restricted. Even real-time operating systems available only in binary form will run correctly. Software tools are the standard cross-development C/C++ compilers together with debuggers suited to the target processor(s).
The final choice of a system architecture is assisted by the CoMET environment's dynamic visualization of systems, parameters, behavior and interactions.
Synopsys’ technologies and models have a high degree of timing accuracy so that the virtual embedded system simulation reflects the actual behavior of even the most demanding real-time systems. Fast and accurate cycle edge simulation enables device drivers and other code to be run interacting intimately with the hardware. Important parameters such as cache size also can be evaluated and optimized, which is impossible in a less accurate environment where cache hits and misses are not modeled precisely.
Critical data can be abstracted from the simulation, including detailed performance data such as bus utilization; cache hit and fill rates, code procedures consuming the most time, and platform power dissipation. Designers no longer need to use rough estimation approaches to look at hardware/software tradeoffs, but can run accurate simulations of the various possibilities and then base decisions on real data:
Metrix
Monitoring and Measuring Embedded Systems Development
Metrix™ is Synopsys’ monitoring and measurement solution. Metrix lets users see what is going on inside the Synopsys virtual prototype. Users can stream, process, present, and analyze hardware / software interactions, develop custom views to analyze design specific behavior and even modify Metrix to meet their exact needs. Metrix is both extensible and programmable.
The wide range of data that Metrix produces can be filtered, piped to files, displayed graphically, or used to affect the state of hardware and software. Developers have full control over how the information is displayed for maximum insight into the system's performance and behavior.
Metrix Lets Developers Focus on Critical Measurements
With Metrix, developers can focus on hot spots in embedded software development and hardware performance and reliability by measuring virtual prototype internals such as instruction traces, register contents, cache hits and misses, bus transaction, net transition and power usage. Metrix can be configured through a graphical interface that works with both CoMET and METeor or users can write their own custom Metrix configuration DLLS. Metrix can be used to display performance data using common graphical charting packages or even create data streams that can be loaded into standard office packages such as MS Excel.
Metrix, along with Synopsys Virtual Prototype, allows for levels of architectural optimization and debugging that are not possible when working only with physical hardware.