Design Article

IMG1

Multisite, collaborative hardware design calls for HCM

Ravi Poddar and Srinath Anantharaman

11/16/2009 12:01 AM EST

Software configuration management (SCM) systems have been used by software teams for decades to manage development, improve collaboration and coordinate releases. We posit that there is a need for a hardware configuration management (HCM) system that incorporates the features of SCM systems while addressing the needs of different hardware design flows.

A hardware engineer works with a design object, such as schematic, symbol or layout. The design tool usually saves this data as a collection of inter-related files. To complicate matters, the list of files that make up an object may change as modifications are made to the object, making it impossible to manage the object as separate files.

To maintain the integrity of the data, the HCM system should be able to support revision control of such composite objects. All the files that make up a composite object should be managed together as a single object within the system.

As the complexity of electronic hardware design increases, so does the complexity of the design data. The relationship between the design abstractions with which the engineer works and the actual, physical files is one-to-many--and is constantly changing.

For instance, a designer using Cadence's Virtuoso Custom IC platform or Synopsys' Custom Designer thinks of the data as libraries, cells and view objects. Those cell views, however, are not just a single file object; rather, they consist of several directories and files that collectively define the view. In addition, the number of files that make up the collection may change between revisions.

Adding to the complexity, some of those files are log, backup or run files and should not be managed.

Electronic design automation

The relationship between the design units and the physical files is known only to the electronic design automation (EDA) tool. If engineers were to attempt to version-control the data at the file level, they would run a high risk of missing required files or incorrectly placing backup, log or run files under version control. That would prevent others from having full access to the set of files needed for running simulations.

To deal with that issue, the HCM system needs to be tightly integrated with the EDA tools. The integration should be aware of how to manage the sets of files that are part of a design unit. Users could thus perform data management operations such as check-out and check-in at the abstraction level, with which they are already familiar, letting the integration of the HCM system manage the physical files.

Additionally, engineers are accustomed to working in their appropriate EDA environment. An analog designer may be editing schematics and running simulations. A place-and-route expert may be editing the layout. A significant hurdle to productivity would result if those users had to go to a separate DM tool for version management.

By making DM commands directly available in the EDA tool environment, the usability and correct use of DM methodology are enhanced. And since the EDA tool is aware of when a user wants to edit a design unit, it can work with the HCM tool to prompt the user to check out the design units when needed.

An HCM system must be seamlessly integrated with the design flow to enable users to work at the design abstractions they need to ensure accuracy of data management and to provide convenient access in the design tools.

The HCM system in use at Integrated Device Technology (IDT) is fully integrated within the Cadence custom design environment and is able to manage data seamlessly. Full integration within the environment and ease of use are keys to deployment and use, and these are achieved by having the functions and menus appear as a natural extension of the tool.

Design hierarchy

Designs are created hierarchically. Usually, the project is partitioned into modules, and a designer is assigned a module or submodule. Each module in turn comprises several levels of hierarchy.

A library, however, is a flat list of cells, often numbering in the thousands, in which the design hierarchy is not apparent. An individual designer is most interested in the module he or she is developing and in the hierarchy of cells below. For instance, a user looking to work on a module may need to check out not only the module for editing, but also the submodules that figure into the design hierarchy.

A hierarchy-aware DM integration lets designers easily manage their work. During the creative process, designers will need to descend to several layers of the hierarchy to make edits. While making those edits, they do not want to be burdened with knowing which files need to be writable on disk; they want that task to be as transparent and as quick as possible.

An HCM system should allow users to do all the common DM operations, such as check-in, check-out, tag, update and show status, on all of the submodules in the design hierarchy.

In addition, as blocks get completed and reach an LVS- and DRC-clean state, they may need to be locked down to prevent accidental edits. An HCM system with fine-grained access controls could be used to achieve that step.

For designs that are done in multiple countries, export control issues must also be considered. If a particular block in a system-on-chip is highly sensitive, it can be made invisible and nontransferable to the offshore teams, thereby complying with export controls.

Optimizing disk space usage

Design files vary in type and can be quite large. Although disk space is relatively inexpensive, the IT expenses to provide services, such as reliability and backup, add up. Therefore, it is important to optimize the use of disk space.

When selecting an HCM system, a key consideration is how the system handles it when the repository disk fills up. Any form of data corruption is unacceptable, and the user base needs to be notified immediately. If a large atomic check-in is in progress during such an event, the entire unit should be rejected to prevent any partial check-ins in the database.

A more practical approach is to create a work area where the directories are physical but the files are symbolic links to a shared area. When a file is checked out for editing, the link is broken, and a physical copy is placed in the user's work area. Engineers share the files except for the ones they have checked out for editing. When changes are finished, the shared area is updated so that the changes are shared with everyone.

Disk space is better utilized with this approach, since files are shared, but there are still some significant drawbacks. One is that the user loses control when changes are pushed. The physical file in the shared space may change right in the middle of a big verification job, thereby nullifying the result.

One way to solve this quandary is with a work area model in which files are symbolic links to a cache managed by a "smart" cache server. The cache server maintains a shared copy of revisions of files being used by all the work areas, but without compromising the current configurations. It then keeps a count of how many symbolic links point to each cached revision. A file revision is purged from the cache only when there are no links pointing to it.

This model provides users with a stable work area over which they have full control and yet optimizes disk space by using links to shared revisions. A 5-Gbyte project with 10 users using the shared cache would use 5 Gbytes of shared disk space, compared with 100 Gbytes in the SCM model, providing significant savings.

Multisite data sharing

Limited network bandwidth and increased latency are two significant factors that affect data collaboration when development is spread over multiple sites. Traditionally, much data sharing occurs via FTP or e-mail; such an arrangement can easily cause data to go out of sync, affecting productivity. The most efficient way to collaborate is to work on the same project database simultaneously.

The most important requirement to facilitate multisite development is to have a reliable and secure network with sufficient bandwidth to meet project requirements. Recently used data should be cached at the remote sites so that other users can get the necessary data from the local area network instead of going over the WAN. That task can easily be automated by using a configuration management solution that is optimized for multisite development. The cache should further be configured to synchronize on an event (i.e., pushed immediately) or periodically with the primary site so that new data is available in the cache when needed by users at the remote site.

At IDT, this model has been used on multiple projects successfully. There is definitely some initial setup work required from an IT standpoint to open the correct ports at the various sites and to obtain the initial export control clearances (if required). But once the system is set up, project data flows freely. This has been a major productivity enhancement and has eliminated issues of data coherency.

Point tools and the future

The EDA industry comprises a few major vendors that provide complete flows, as well as a number of point tool vendors. As design teams look for ways to improve their turnaround times, they adopt best-in-class tools to improve their design flows. Not all design tools will have integrated design management. Moreover, it is hard to predict what tools may be adopted in the future.

A hardware configuration management system should enable CAD administrators to integrate new tools readily into the design flow and ease management of design data. The integration should not require extensive scripting or programming, and it should let end users manage design objects without going down to the file level.

Improving communication

Space, time and language differences erect barriers that complicate communication among multisite team members. Multisite development requires not only efficient data management, but also other means of communication to compensate for this gap without adding undue overhead.

New Web technologies can bridge the communication gap, improve processes and aid project management. The following systems, at a minimum, should be considered:

• Video/Web conferences. These let team members at all sites share information, thus keeping everyone "on the same page."

• Instant messaging and Web meetings. Encouraging frequent communication among engineers and the use of live online meetings via WebEx, VNC or the like will promote collaboration and, in turn, improve quality and productivity.

• Issue tracking and wikis. Bugs and issues should be tracked and managed using a good Web-based issue tracking system. Several are available, including open-source systems such as Bugzilla and Trac. Similarly, wikis can help document and disseminate information, especially where verbal communication may be hampered by language and accent barriers.

• Project management. Schedules are even more critical for hardware design projects. Using project management software to track schedules is crucial to timely completion.


Ravi Poddar is the director of CAD at Integrated Device Technology Inc. He holds a doctorate in electrical engineering from the Georgia Institute of Technology.

Srinath Anantharaman is the CEO of ClioSoft Inc., which he founded in 1997. He has an MSEE from Washington University in St. Louis and a BTech from the Indian Institute of Technology in Kanpur.


print

email

rss

Bookmark and Share

Joinpost comment




Please sign in to post comment

Navigate to related information

Product Parts Search

Enter part number or keyword
PartsSearch

FeedbackForm