Principles of configuration management

The principles of CM revolve around four key components:

Version control

Version control is the automated act of tracking the changes of a particular file over time. This is typically accomplished by maintaining one copy of the file in a repository, then tracking the changes to that file (rather than maintaining multiple copies of the file itself). The concepts of check-in and check-out make this possible. Each time someone needs to edit a library/cell/cellview/hierarchy, they check it out for exclusive editing and then check it back in to the repository when finished, thus creating a new version. This paradigm of check-in and check-out can be as simple as the above or much more complex depending on the amount of parallel development you have in your process.

Version control (with VersIC) buys you a number of benefits including the ability to:

  • Roll back to a previous version of a given file
  • Compare two versions of a file, highlighting differences both graphically and as a text summary
  • Provide a mechanism of locking, forcing serialized change to any given file
  • Create branches that allow for parallel concurrent development
  • Maintain an instant audit trail on each and every file: versions, modified date, modifier, and any additional amount of metadata your system provides for and you choose to implement.

Build management

Chip assembly usually involves the connection of your blocks by hand or with a router. Managing which versions of each analog block, RTL, Place & Routed blocks, and the top-level connections themselves can be thought of as a build. 

A particular version of a hardware design typically consists of tens of thousands of files. A CM tool assists you in managing builds by enabling you to:

  • Find out how a design was constructed and what went into its construction for verification or reproducibility purposes.
  • Compare two or more builds.

Release management

Release management is closely tied to build management in that a specific release is essentially a production build of your design. In addition to putting the design in its final tapeout form, release management includes the foundry requirements, test structures, internal audit requirements, etc required to fulfill the company tapeout procedure. 

Process control

Process control is like an umbrella across the three key concepts already discussed. It is the combination of the business processes defined for your team and the implementation of these processes within your configuration management tool.

An appropriate, repeatable process that produces quality output is critical.  Your processes can be as basic or as complex as your situation warrants, as automated or as manual as you desire. Perforce Configuration Management tools deliver the benefits of customized process automation, while freeing users to concentrate on design and implementation.