Skip to main content

7 min readCAD Infrastructure

Design Data Management in Custom IC Flows

Design data management for custom IC flows: library and cellview versioning, workspace discipline, release snapshots, and automation for reproducible signoff.

  • CAD Infrastructure
  • Design Data Management
  • Custom IC
  • EDA Automation
  • Version Control

ShareLinkedInX

Why Custom IC Data Is Different

Custom IC design data behaves nothing like the text files that dominate software engineering. A schematic, a symbol, a layout, and an extracted view are different representations of the same circuit, stored as binary cellviews inside tool-managed libraries. Editing happens incrementally through tools such as Virtuoso or Custom Compiler, and a single block can span dozens of views that must remain mutually consistent.

That structure has consequences. Copying libraries around a shared disk quickly produces several versions of the truth. Two engineers editing the same cellview can silently overwrite each other's work. Worst of all, signoff results can become detached from the exact data that produced them, so nobody can prove later which layout was actually verified. Design data management is the discipline and tooling that addresses this: tracking every change, controlling who can edit what, and releasing frozen snapshots that downstream steps can trust. Teams that treat it as an optional extra usually pay for it later in debug time, re-spins, or signoff evidence that cannot be reproduced.

Libraries, Cells, and Views: The Core Objects

Every discussion of custom data management starts with three objects. A library is the container that a design team opens in its tools. A cell is a single circuit or block. A view is one representation of that cell: schematic, symbol, layout, abstract, extracted, behavioral, and so on. The important part is the dependency graph between views. A layout depends on a techfile and on the process design kit.

A symbol pairs with its schematic. The extracted view feeds parasitic-aware simulation, and the netlist view feeds LVS. Releasing a layout without the matching schematic and PDK versions leaves downstream verification with no solid reference. Because of this graph, version granularity matters. Some teams version individual cellviews, others version whole libraries. What matters is that the chosen unit is complete: a version is only trustworthy when everything it depends on is captured with it.

Many production flows keep cellview-level tracking for day-to-day edits, then group many cells into a library-level snapshot when it is time to freeze. The techfile and PDK are handled as their own separately managed dependency, never assumed to be implied by the design data itself.

Work Areas, Check-In, and Check-Out Discipline

Day-to-day editing in custom flows happens in work areas. A work area is a private, tool-visible copy of the libraries an engineer is touching. When they need to modify a cellview, they check it out, which reserves it and prevents anyone else from writing it at the same time. When the change is complete and tool-clean, they check it back in so it becomes part of the managed data.

This reservation model exists because custom data does not merge the way text does. Two divergent layout edits cannot be reconciled automatically; someone must decide. Locking during check-out avoids that class of conflict before it happens. Healthy teams reinforce the model with a few habits. Keep experimental work in the work area until it is genuinely finished instead of checking in broken states.

Write check-in comments that explain intent, not just what changed. Freeze reused blocks once they are released and reopen them only through a deliberate version, never by editing the released copy in place. The goal is simple: the managed library is the single source of truth, and every other copy on disk is derived, disposable, and clearly labeled as such.

Releases, Snapshots, and Milestones

A release is a tagged, read-only snapshot of a defined set of design data. It is the object that turns a constant stream of edits into something a team can point at and say: this is the version we verified. Teams generally use one of two strategies. Some create versioned copies of libraries at each milestone, which is simple to understand and browse but multiplies storage.

Others keep one evolving library and mark snapshots with tags or release identifiers, which is leaner but requires tooling discipline so that tags are always created, never skipped. Whichever strategy is used, a release should capture everything needed to reproduce the state of the design: schematics, symbols, layouts, and the exact PDK and techfile references they depend on. Review milestones, freeze points, and tapeout candidates all deserve their own releases, and later engineering change orders reopen the frozen data as a new version rather than modifying history. The test of a good release process is whether the team can rebuild any past state months later, from the same records, without archaeology.

Data Management Meets Signoff and Tapeout

Verification is where data management earns its keep. DRC, LVS, parasitic extraction, and timing analysis should run against a tagged release, not against an engineer's work area. When results are stored together with the release identity, every signoff claim points to exactly the data that was checked. Traceability runs in both directions. From a passing LVS run, the team can walk back through the extracted view to the layout, the schematic, and the approved PDK versions.

From a reported violation, they can prove which cells and views were present at that moment. Flows with safety or audit obligations increasingly expect this kind of evidence trail, and it is far cheaper to capture it continuously than to reconstruct it during an audit. The same snapshot discipline governs handoffs. When data leaves the team, to a verification group, a different site, or a foundry, the deliverable is a release, not a directory dump.

If a problem is found later, the handoff snapshot still exists, untouched, and the fix proceeds as a controlled new version on top of known-good data rather than as a patch against something nobody can identify anymore.

Automating Design Data Management

Once the process is defined, automation removes most of the friction. Design data management systems, including tools such as Cliosoft SOS, IC Manage, and Perforce-based flows, expose command-line and API interfaces that custom flows can script from SKILL, Python, or Tcl. Typical automations are bookkeeping-shaped rather than dramatic. Check-in helpers that validate naming and attach metadata before a cellview is committed.

Release scripts that assemble a snapshot, collect the PDK and techfile references, and record a manifest in one step. Reports that list outstanding check-outs, stale work areas, and conflicts before they harden into surprises. Nightly consistency checks that confirm a release candidate has no missing dependencies, verifying that every referenced cell exists in a managed library. The same plumbing can connect design data to signoff records, so verification results are filed with the release identifier automatically instead of by hand.

Keep approvals human: automation should make the correct path the easy path, but the decision to freeze data for tapeout remains an engineering judgment. The best measure of the automation is that nobody wants to bypass it.

Common Pitfalls and Governance

Most design data incidents trace back to a handful of familiar failure modes. Silent overwrites happen when someone edits a local copy that the management system does not know about. Version drift happens when a techfile or PDK is updated under existing designs without a controlled change. Released data gets edited in place because reopening it properly felt slower than a quick fix.

And work areas grow stale, accumulating half-finished experiments that cloud the question of what is real. Governance is the answer, and it works best when it is lightweight. Define who may create releases and how a freeze is approved. Make released data read-only for consumers by default. Set a retention policy so old releases are archived deliberately rather than deleted by accident.

Audit work areas periodically, and treat tool usability as a first-class requirement: every extra step in a check-in or release flow is another reason for someone to work around it. The purpose of all this is not ceremony. It is to ensure that when a question is asked about a design — what was verified, what changed, what was taped out — the answer can be produced in minutes from records rather than reconstructed from memory.

Getting Started: A Practical Path

Teams adopting design data management do not need a big-bang migration. A practical sequence works well. First, inventory where authoritative data actually lives today and where copies have quietly taken over. Choose a management granularity and a release model, and write both down in two pages, not twenty. Pilot on one active block: run every check-in, freeze, and engineering change through the new process and note every point of friction.

Then connect the process to signoff, attaching release identifiers to verification results, and automate the repetitive steps — release assembly, reporting, dependency checks — so the discipline pays for itself in saved effort. Expand block by block, and keep the conventions honest: clear names, meaningful comments, deliberate freezes. Custom IC design automation works poorly when its data is chaotic and beautifully when its data is controlled. Design data management is the foundation that everything else — scripts, regression, signoff, and tapeout — stands on.

Frequently asked questions

What is design data management in custom IC design?

It is the combination of process and tooling that tracks, controls, and releases custom design data — libraries, cells, and views. Done well, teams always know which version is authoritative, can recreate any past state, and can hand off frozen snapshots for signoff and tapeout.

Why is Git alone a poor fit for full custom design data?

Full custom data is largely binary and hierarchical, and cellviews and layouts do not merge like text. Scripts, techfiles, and small text assets can live in Git, but large cellview data is typically managed with a design data management system that understands libraries and offers check-out locking, release snapshots, and tool integration.

What should a design release snapshot include?

At minimum the frozen schematics, symbols, and layouts, plus the exact PDK and techfile versions they depend on. Teams also record the extraction decks, constraints, and signoff results produced from that snapshot so the state remains reproducible months later.

How does data management support DRC, LVS, and tapeout?

Verification runs are executed against a tagged release rather than an editing workspace, so results are tied to the exact data version. That same snapshot becomes the tapeout deliverable, and later ECOs reopen the frozen data as a new version instead of editing released material in place.

What is the difference between a work area and a release?

A work area is a private editing space where one engineer modifies checked-out cellviews; a release is a tagged, read-only snapshot of agreed data. Work areas change constantly, while releases stay stable and are used for review, signoff, and handoff.

More engineering notes

Working through a problem like this?

Tell us about your flow: the tools, the PDK, what is failing and when it needs to be clean.