The explosion of software content used by mobile device manufacturers and silicon vendors to differentiate their products is driving these companies to re-engineer their software development methodologies.
Support for multimedia content and software in excess of several millions of lines of code is commonplace.
According to Venture Development Corporation (VDC)mobile development projects are scheduled to take an average of 14 weeks andin realityend up taking 20percent longer than that.
These time overrides and time-to-market delays have significant cost and profitability implications and new development processes and tools must be deployed to address software development.
Virtual Platforms for software development is an emerging market that serves to accelerate the development of software in embedded and mobile devices and rapidly replace previous tools such as prototype boards.
Virtual platforms are fast and scalable models of the system hardwareincluding the device hardware and the environment it evolves in. Virtual platforms provide the combined execution speedearly availabilitycontrollabilityobservability and determinismwith pre- and post-silicon usabilitythat none of the traditional software development methods provide.
Virtual platforms have a direct impact on software and device development by enabling early software development and validation of the entire device software stackincreasing developer and development team productivity and lowering capital expenses.
Although software content is increasingthe approaches for software development have not evolved at the same pace.
Traditional software development approachessuch as native host development and hardware based-developmenthave not provided the required solution-one being non-representative of the hardware being developed to support the software and the other being available too late in the design cycle.
As a resultsoftware developers have turned towards simulation-based approaches such as Instruction Set Simulator or RTL-based simulation.
These approachesalthough initially valuablehave not been able to scale with the software explosion nor with the requirements of largedistributed software development teams. They have been either incomplete from a hardware perspective (ISS) or too slow (RTL based simulation). A new approach is needed and is emerging in the form of virtual platforms for software development.
Complete system simulation
Virtual platforms are not a new concept for hardware design and low-level hardware-dependent software. Howeverrecent technology advances are demonstrating that a complete system simulation can be created with virtual platforms.
In order to be testedsystem software requires the hardware prototypes to be available. Bringing up untested software is a time-consuming process.
In additiontargeted software testing can only begin after bring up. Virtual platforms enable software development to start in advance of siliconRTL simulation or FPGA prototype availabilityscalable to the software roadmap.
Initial software development may start on a simple Instruction set simulator and some peripheralsenabling the boot of an operating system. As software development milestones are progressingso does the content of the virtual platform.
Ultimatelya virtual platform can provide a complete virtual test bench environment including a virtual mobile devicea virtual base station and software-based development tools providing the functionality of logic analysersdebuggersetc.
Howevervirtual platforms can be considered within the context of software development only. A software only solution provides cycle time improvement for software development but does not optimise it.
Virtual platforms do not take into consideration the system (hardware and software) development cycle-time. Models developed within the context of an Electronic System Level (ESL) methodology are scalable for multiple development activities-including architecture designhardware implementation and software implementation-resulting in improved efficiency across the organisation.
This also allows hardware/software co-optimisation and co-verification at a juncture in the design cycle where hardware modification is easiest.
Mobile software development can take multiple forms depending on the type of software being developed. Examples of virtual platform usage include:
- Operating system development: Changing the operating systems port due to processorMMU or cache changes or debugging new device drivers.
- User interface development: bringing up a browser platformvalidating that a phone can get into service (interacting with a base station model).
- Application development: validating applications where a web session can be set up.
- Automated testing: if enableda virtual platform can be integrated within an automated test suite more easily running regression tests in a batch mode.
- System test: validating the behaviour of the device within its environment.
Early adopters of virtual platforms are experiencing significant gains in their development cycles. One such user indicated speed improvement that resulted in simulation time of minutes rather than several hours while keeping the accuracy of the results acceptable over cycle-accurate models.
Savings are also measurable in terms of dollars spent on hardware prototypestools and accessories as well as engineering staff effort.
For a three to four month development of a handset savings could average several hundreds of thousand of dollars and more than 1500 staff days.
Creating virtual platforms
Device software developers can significantly benefit from using virtual platforms for software development; however they need to consider the creation of the virtual platform itself.
Software development teams do not necessarily need to know the details of the virtual platform’s constructionbut it must be aware of some of the factors that contribute to a model’s success. These factors have a direct link with the benefits that will be derived from using the virtual platform.
Electronic system level
Electronic system level (ESL) design involves the tools and methods for capturing the initial product specification.
It provides the modelling environment to capturevisualise and use the product within the environment it is intended to operate.
Within ESLplatform architects and hardware verification teams are creating models. These models should be developed in a way that is reusable for the purpose of creating a virtual platform for software development.
A single model supporting multiple uses should be a company objective.
The benefits for a virtual platform user are that the virtual platform in use matches the hardware under development and that the development of a virtual platform can be optimisedaccelerating its availability.
While the created virtual platform represents a company’s intellectual propertythe infrastructure used to model should be as open as possible.
Standard model formats and languages should be used to ensure compatibility and interoperability with third-party intellectual property and commercial design tools that are widely used-and re-used-in system design.
The use of a proprietary format and language can result in significant re-modelling and tool interface costsas well as incurring the maintenance costs usually associated with proprietary tools and intellectual property. It can also render impotent an otherwise
highly-productive design re-use.
The industry language of choice for system-level modelling is SystemC. SystemC provides all modelling constructs for very abstract functional modelling down to modelling necessary details at the RT-Level.
A supplier’s support for SystemC should also ensure that the languages support exposing the relevant model information (for exampleregisters).
Given today’s large number of SystemC usersusing the standard SystemC modelling language will ensure that the virtual platform can be easily updated. As SystemC is based on C++the software developers could make some modifications to the virtual platform or more easily help with potential implementation errors in the virtual platform.
The simulation technology providing the execution infrastructure of a virtual platform must be capable of operating at high speeds while achieving the required accuracy.
Moreoverits performance should be evaluated at multiple levels including the component level (ISS) and on a systemwide basis.
Using the same system simulator as the one used by the hardware design team significantly eases comparability of results.
The ability to simulate at different levels of accuracy is an important consideration. There are two critical components of simulation technology required to deliver a useful virtual platform.
One is the availability of ultra-fast100+ Mega Instructions Per Second (MIPS) processor modelsas the application code will run for most of the time entirely on the processor.
Secondthe simulation of the busmemory and peripheral interaction with the processor needs to use optimisation techniqueswhich are enabled by the modelling methodologyto minimise the number of time events being simulated.
Simulation technologies have a direct impact on the productivity of the software developer and the development team.
Enabling controllability and observability
Virtual platforms developed with the right modelling and simulation technologies will provide more observability and controllability for the end user.
The additional features provided to the user are not enabled through traditional software development tools. As a resultthe creation and packaging of a virtual platform needs to include a set of tools complementingand not replacingexisting software development tools.
These tools need to provide an easy-to-use and intuitive interface for the software developer to control and observe the behaviour of the virtual platform and its associated software stack.
Examples of such capabilities include setting breakpoints and watch points platform wideforce register valueand customised views. Controllability and observability tools enable higher productivity for virtual platform users while lowering capital costs by reducing the dependency of tools required once the physical hardware is available.
Additional differentiated tools enabling controllability and observability need to be available. These tools should be complementary to existing software development tools which means that APIs must be available in order to integrate the virtual platform within the software development environment. Examples of software development tools to be integrated include integrated development environmentsdebuggersautomated test toolshuman machine interface toolsand other simulators.
The adoption and deployment of virtual platforms is facilitated with open interfaces enabling the integration of commonly-used software development tools.
Within a semiconductor companyplatform/system architects and hardware developers are modelling chipsets using ESL methodologies; these teams could be generating the virtual platforms as well as generating virtual platform components to be used by mobile phone manufacturers.
Within a mobile device manufacturera modelling or hardware prototype development team integrating models provided by semiconductor and IP companies could generate the virtual platform.
Companies with modelling and ESL design methodology expertise can also be contracted to provide virtual platforms based on a specified design.
Such companies will often provide value around the virtual platform infrastructure technology (modellingsimulationESL expertisetools) which is not the core expertise of a mobile device manufacturer or a semiconductor company.
Modelling teams creating the virtual platform need close co-ordination with the software development team to ensure the alignment of software development milestones with the virtual platform availability as well as the hardware development teams to gain insight into hardware functionality.
Virtual platforms for software development are a novel approach that address the challenges faced by mobile device software developers that are currently using traditional software development approaches. They enable earlier software developmentincreased productivity and lower capital costs.
As a resultcompanies have additional time and budget that can be allocated to earlier product availabilityhigher qualityadditional differentiated functionality or new opportunities. Early adopters of virtual platforms for software development such as Motorola are experiencing these benefits.
When creating virtual platforms for software developmentconsidering a software-only point solution is not sufficient.
Consideration must be given to the creation of the virtual platforms in terms of methodologytechnology and packaging/distribution framework provided in order to optimise the return on investment.
Marc Serughetti drives the ESL software solution strategy for CoWareSan JoseCaliforniaUSA. www.coware.com"