By Dave Robertson
Large organizations often struggle with innovation. Developing prototypes in either hardware or software often needs to bring together design teams and system architects who can be spread out across the world, and making this a fast and efficient process can be a struggle. Now software configuration management (SCM) tools are being used to speed up the prototyping process dramatically.
The development of prototypes increasingly requires the creation and management of many different types of files, from the output of EDA tools to hardware designs and software code, and related documentation. As these go through many different revisions at the hands of multiple design teams across the world, using the right SCM tool can help capture, organize, and manage this complex array of data to reduce the prototyping time and the overall development time.
For example, leading 3D graphics and PC chipset designer NVIDIA is using a SCM tool to capture all the information that is generated as part of the prototyping process. This allows designers to track back through many different variants, dead-ends and thought experiments to make sure no innovation is lost and to make the most of all the design expertise in teams around the world.
Similarly a global TV chip developer is also using an SCM tool to develop custom variants of its software quickly for different customers in different parts of the world.
SCM for Rapid Prototyping
A prototype development has many different elements: from graphical behavioral models, through the VHDL for the hardware design and C text files for the middleware and applications, to the EDA design files for the hardware and the libraries. Then there’s compiled binary code for the software, not forgetting all the test and verification files for both the hardware and software. Handling the hundreds of core files from teams around the world with skill sets ranging from digital logic, analogue design and power management, to operating systems, drivers and applications code is a tremendous task that can take significant engineering time.
This is where an SCM tool comes into play. To be effective, the tool has to be both fast and secure, but easy to use to provide minimal cost and interruption to the user. Saving files must be quick and easy, otherwise designers will not use the system, and any time and management advantages are lost. Similarly the latest edits from teams around the world should be available as soon as possible otherwise time is lost by having to sort out competing revisions. Also, all revisions have to be stored safely and securely using the minimum amount of storage space.
This leads to the idea of the ‘lazy copy’ — which is vital for rapid prototyping. This recognizes that when a variant is first created it is identical to the original. Only when a variant file is modified is a new version created — and then only to record the differences between it and the original.
This means that variants with any number of files can be created quickly without consuming additional storage — a key advantage in fast prototyping, where system architects and product developers can be working on separate ideas that are alongside the mainstream development. These files have to be protected until they are ready to be introduced back into the main design. This can be a problem for some systems, but this is vital to allow the engineers to innovate and prototype in the way they want to. However, copying the main stream of the design to create a new branch only works if the tool uses the differences, rather than duplicating gigabytes of storage each time.
All of this requires a robust and highly sophisticated repository and caching system to allow users to manage all the variants and branches — another management headache for effective rapid prototyping.
Global chip development companies are already using these tools throughout their organizations to allow rapid prototyping and collaboration across multiple, global sites. Managing the vast array of files that are generated frees up both management and engineering time and allows prototypes to be developed faster and more efficiently with fewer revisions and fewer bugs, bringing the right products to market faster.
About the author
Dave Robertson is director of European operations for Perforce Software. He has 20 years experience in developing software and in selling and marketing software development tools with vendors both in Europe and the U.S. Dave has held his role since 1999 and is responsible for all aspects of the Perforce Software business in Europe, Middle East and Africa.