Posted by malted on August 26, 2016
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.
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.
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:
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:
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.
Patrick Sheridan is responsible for Synopsys' system-level solution for virtual prototyping. In addition to his responsibilities at Synopsys, from 2005 through 2011 he served as the Executive Director of the Open SystemC Initiative (now part of the Accellera Systems Initiative). Mr. Sheridan has 30 years of experience in the marketing and business development of high technology hardware and software products for Silicon Valley companies.
Malte Doerper is responsible for driving the software oriented virtual prototyping business at Synopsys. Today he is based in Mountain View, California. Malte also spent over 7 years in Tokyo, Japan, where he led the customer facing program management practice for the Synopsys system-level products. Malte has over 12 years’ experiences in all aspects of system-level design ranging from research, engineering, product management and business development. Malte joined Synopsys through the CoWare acquisition, before CoWare he worked as researcher at the Institute for Integrated Signal Processing Systems at the Aachen University of Technology, Germany.
Tom De Schutter
Tom De Schutter is responsible for driving the physical prototyping business at Synopsys. He joined Synopsys through the acquisition of CoWare where he was the product marketing manager for transaction-level models. Tom has over 10 years of experience in system-level design through different marketing and engineering roles. Before joining the marketing team he led the transaction-level modeling team at CoWare.