The Forest And The Trees

Keeping the right focus maximizes virtual prototyping ROI.


If you’re deep into the details, it can be hard to see the bigger picture of what lies ahead. There is a saying for this, of course, which everyone knows: “He can’t see the forest for the trees.” So the solution is to rise above the trees to gain a better view.

forest and trees synopsys trees

Interestingly, many benefits for using virtual prototypes for early software development result from the high level of abstraction they provide, including fast simulation speed and reduced prototyping effort.

Virtual prototypes are fully functional models of a system capable of executing target code, so they need to be memory-map accurate. In our analogy the forest is the system and the “memory-map” view is the desired level of detail that the software developer needs. However, virtual prototype implementation can be complex, involving a deep chain of loosely timed SystemC TLM-2.0 building blocks with hundreds of interfaces, hierarchies, busses, and transactors that need to be stitched together in the right fashion. These are the trees.

For the modeling team responsible for creating the virtual prototype, this means the most important task is to focus on the essence of the hardware specification, which is the memory map and related interrupts tables.

forest and trees synopsys memory map

Figure 1: Memory Map – Capturing the Essence of the Hardware Specification

Maintaining their focus on this higher level of abstraction means less modeling effort, both at the building-block level and the platform level. Combine this important discipline with an incremental approach that delivers the virtual prototype to the software team in stages, with updates based only on the functionality required by the next software development task, and ROI is maximized for everyone.

In March, Qualcomm presented their “Virtual Platform Methodology for Large Scale Pre-Silicon Software Development.” They talked about their big picture view and how for each project:

  • Virtual prototype planning starts once the hardware design review is completed
  • The initial virtual prototype plan is used as input for pre-silicon software development planning
  • Agile development is deployed to provide incremental updates aligned to hardware features
  • Enabling software teams to conduct large scale software development and testing, pre-silicon

Check it out, it’s a great story!

So how can your modeling team avoid distractions that can consume time and cause loss of focus? Start with the memory map specification and develop an incremental plan. Deliver your virtual prototype to the software team in phases, aligned with the software development plan.

Second, don’t try to do everything yourself when there are best practices you can easily leverage. This includes the adoption of the industry standard transaction-level modeling style based on IEEE 1666 SystemC TLM 2.0 and commercially available tools and models that support it, including:

  • Virtual prototype creation and debug tools that enable rapid assembly and deployment of platforms in an incremental fashion, based on a foundation of available models
  • TLM creation and debug tools that enforce the modeling style for each new model

So whether it’s your first time or hundredth time, maintain your focus. Using a high level of abstraction will help maximize ROI for both the development and deployment of your next virtual prototype.