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.