20_Environment_Failure_Model.md

Why OpenLane Environments Break — And How to Stop It


Purpose of This Chapter

This chapter explains why OpenLane environments collapse
and why most failures are not tool bugs.

The goal is simple:

Make environment failure a solved problem.

Once you understand the failure model, you stop debugging symptoms and start preventing collapse.


The Core Truth

OpenLane does not break randomly.

It breaks when environment invariants are violated.

Every failure you have experienced fits into one of a small number of structural patterns.


Environment vs Design (Critical Distinction)

Before anything else, separate these concepts:

Most people debug design problems by accidentally destroying the environment.

This is the root cause.


The Four Environment Invariants

An OpenLane environment is stable only if all four invariants hold.

Invariant 1 — Toolchain Consistency

These must form a known-good set.

Updating any one breaks the set.


Invariant 2 — PDK Identity

The PDK is not “sky130”.

It is:

Two PDKs with the same name can behave differently and still look “correct”.

PDK mismatch is silent corruption.


Invariant 3 — Filesystem Semantics

WSL has two filesystems:

Running OpenLane on /mnt/c introduces:

This is not optional. This is physics.


Invariant 4 — Temporal Stability

Environments rot over time due to:

If you do not freeze and export, time will break your environment for you.


The Standard Failure Patterns

Almost every OpenLane failure maps to one of these patterns.


Pattern 1 — “It Worked Yesterday”

Cause:

Symptom:

Fix:


Pattern 2 — “GLS Is All X”

Cause:

Symptom:

Fix:


Pattern 3 — “STA and GLS Disagree”

Cause:

Symptom:

Fix:


Pattern 4 — “I Fixed It and Now Something Else Broke”

Cause:

Symptom:

Fix:


Why Rebuilding Is the Wrong Response

Rebuilding feels productive. It is not.

Rebuilds:

Reproducibility beats repair.


The Correct Recovery Model

When failure occurs:

  1. Stop immediately
  2. Do not “try one more thing”
  3. Export the current state (if possible)
  4. Import last known-good image
  5. Resume work

This is not laziness. This is engineering discipline.


Why Export / Import Works

WSL export/import preserves:

It bypasses:

It turns environment setup from a process into an artifact.


Environment as an Asset

Treat your OpenLane environment as:

You do not “fix” these. You replace them with known-good instances.


The End State

When done correctly:

Not easy. Predictable.


Chapter Conclusion

OpenLane environments break because:

They stop breaking when:


Next Chapter

👉 21_Final_Rules_of_Survival.md