Meet the challenge of collaborative management in embedded design

Paul Boughton
Collaboration is not new in the electronics industry, but logistics remains a hurdle to allowing engineering organisations to efficiently share up-to-date code and assets. Tony Smith looks at the issues in managing collaborative design of embedded systems.

The growth in distributed embedded design is driving a need for greater collaboration, both between design teams, but also with third party suppliers of hardware and software IP. The traditional method of handling this situation - the design review meeting - is becoming less efficient as the problem grows. Input from teams around the world has to be analysed and integrated, taking more time and increasing the risk of introducing bugs into the hardware and software.

Demands on managing the data within the design flow are growing as it becomes common to have architecture development in Europe and the US, software development in India, test in Asia and drivers developed in China. Distributed teams sometimes adopt local approaches and the differences in their approaches can create confusion and uncertainty for those coordinating development.

Such problems are not specific to global organisations. Linking multiple teams with different specialities - from hardware prototyping to software development - across a single campus can also have significant challenges. Multiple 'gate keepers', keeping track of different parts of the project, often cause problems and delays in a distributed design flow.

Collaborative tools such as Software Configuration Management (SCM) are increasingly being used to tackle these challenges, moving from the management of pure software development to cover the entire embedded design flow.

Tool requirements

Introducing tools for collaborative working can sometimes create more problems than they solve. Tools have to be easy for designers to use and practical for the enterprise to implement. The ease of use requires that it be simple to make changes, and describe them, so everyone in the project can see the current status. The practicality mandates this be possible across all teams and locations at a speed that does not introduce delays into development.

Encouraging developers to save their changes frequently improves both communication and collaboration across a project; allowing gate keepers in different sections to see the current status of their part of the project and combine the best elements of the design. There may still be discussions between different teams on which elements are to be included, but these are handled with greater awareness of what is happening elsewhere in the design process.

Saving complete new versions takes up significant amounts of disk storage, yet adding terabytes of storage adds costs, so old files are often discarded, losing vital records of changes. Synchronising such large files is also slow and takes up bandwidth, which is costly across global sites.

SCM tools

SCM tools have been tackling these problems for many years in software development environments, providing sophisticated version control and management of complex projects that can run into millions of lines of code. These tools are being extended to the whole design project and can now handle any type of file. For example:

- Diagrams for architecture capture.

- Hardware layouts.

- VHDL.

- EDA.

- Documentation.

- Verification and test files.

SCM tools manage the files needed for software development and can even store sound files and pictures of white boards that capture all the information that has been exchanged throughout the project.

To address the challenges of speed of operation and storage efficiency, an effective technique called 'lazy copy' can be implemented to re-use existing content wherever possible.

This technique ensures that when an object is used in multiple projects or variants, only one copy is stored, thus making it fast, easy and efficient to save, store and synchronise. By recording a date stamp with each submission, files, or entire projects, can be reconstructed for any point in time.

Powerful architecture

This 'lazy copy' approach is a simple but very powerful concept. It is particularly useful for creating and handling variants of a design, so base files are common and the variant contains only the differences. With multiple variants of a design for different customers, all with slightly different features, drivers and documentation, this can save terabytes of data and make product line management and maintenance significantly easier.

This approach also allows prototypes to be developed more efficiently, re-using existing files and allowing new capabilities to be added quickly and easily, but kept separate from the mainstream development. If the prototype is accepted, these files can then be readily incorporated back into the mainstream product line as a new variant.

Being able to recreate the project status at any point in time is important for tracking and fixing bugs in both hardware and software development.

It allows the point at which bugs were introduced to be quickly identified and the offending change to be backed out simply. This is also important in fixing bugs across variants, as the bug fix can be integrated into all affected variants while still retaining any local customisations.

Third party IP

It can often be a problem to integrate third party IP, whether hardware or software, into a design flow. Using SCM tools, external suppliers can have tightly controlled visibility of any changes happening in the design so they can change their own software or hardware accordingly. This reduces the potential for incorrect versions of drivers causing bugs in testing, or even when shipping. The incoming IP can be incorporated directly into the design flow if it comes from a trusted partner, significantly reducing integration time, or it can be kept in a separate area to be evaluated by an engineer before being included in the mainstream.

Using the SCM tool, this third party IP can also be continuously updated with a track of all changes stored as part of the project while retaining the ability to roll back the file to known good versions.

One US-based chip developer is using the Perforce SCM tool for a range of silicon devices that require different drivers for different customers in Asia. While the chip design is handled in California, the driver development is close to the end equipment maker in China.

Using the SCM approach the driver developers can clearly see the design of the chip and have the different variants of the drivers available quickly for the customer.

Conclusion

Using an SCM tool can dramatically speed up collaborative working on embedded designs, reduce the time to develop prototypes or variants and increase the quality of the end product by reducing the number of bugs.

Long established in the mainstream software world, SCM tools enable product designers to create a single, shared repository for all code and assets that can be viewed by disparate parties with up-to-date information in real time.

The SCM tool can allow designs to be developed and managed across sites, integrate input from third party suppliers and manage all ancillary data for test, verification and documentation. To realise the full potential of an SCM tool the architecture has to allow engineers to use it efficiently and the enterprise to implement it cost effectively.

Tony Smith is European Technical Director, Perforce Software, Wokingham, Berkshire, UK. www.perforce.com