Find differences and merge changes in your Cadence cellviews
Finding (and intuitively displaying) the differences between two objects in a version-controlled environment is a base-level requirement for software confguration management (SCM) but, unfortunately, has been a glaring omission in IC data management (DM) offerings. MergeIC is the first hardware-centric Diff/Merge tool to address these issues, and is available as a "DM-Driven" module in the VersIC 2.0 Platform.
With MergeIC, schematic differences are categorized into non-functional changes (or ECOs), in which the circuit topology hasn't changed but instance behavior is different, and functional changes, in which the underlying netlist has changed. CDF properties, master-types, instance names and other ECOs are analyzed, and the difference pairings are identifed and displayed in the form. When a new instance or net is detected, this is shown with no matching object in the MergeIC UI, making it easy for the user to identify these.
Layout changes are identifed on a layer-by-layer and instance basis, and differences categorized by shapes/instances added, deleted and modifed in the MergeIC UI.
Once differences have been identifed, they may be merged into the target cellview from the MergeIC UI. Property changes, instance names and master types are applied to the target instances for ECOs, and new instances/nets/shapes are created on the target cellview. These may be applied one-at-a-time or en-masse.
MergeIC also performs well hierarchically where it can leverage the underlying binary diff capabilities of Perforce/Subversion to determine which cells in a hierarchy have changed, and then use the MergeIC diff capability to identify the changes on that changelist visually. This can greatly simplify power/ground short fixes in chip-level LVS runs, for example, and is a useful companion tool to the more traditional XOR DRC methodologies.