Synthesis & Logic Optimization · All levels

Dont-Touch & Preserve Policy: Worked Example

Worked Example for Dont-Touch & Preserve Policy.

Worked example

Worked Example for Dont-Touch & Preserve Policy focuses on preserved object count, blocked optimization opportunities, ECO rework. The goal is to connect observed QoR movement to mechanism, ownership, and regression risk.

A weekly compile reports preserved object count, blocked optimization opportunities, ECO rework regression. Instead of random knob tuning, start by proving whether input context changed and which mechanism dominates.

Sequence under inspection

diagram
SYNTHESIS FLOW — Dont-Touch & Preserve Policy

RTL + constraints
      |
      v
elaboration + checks
      |
      v
mapping + optimization
      |
      v
QoR reports (timing/area/power)
      |
      v
incremental ECO + regression

Primary metric: preserved object count, blocked optimization opportunities, ECO rework

Preserve policy decision tree

diagram
OBJECT MARKED preserve/dont_touch?
        |
  functional or signoff reason?
     /                \
   yes                 no
   |                   |
keep + audit       remove, re-compile
  1. Capture baseline and regressed artifact pair.

  2. Confirm manifest parity (RTL, SDC, libs, switches).

  3. Pin first metric drift and mechanism hypothesis.

  4. Reproduce with constraint audit, preserve list, optimization-block report.

  5. Apply one reversible fix and run matrix regression.

Did the fix hold?

diagram
BEFORE / AFTER QOR — Dont-Touch & Preserve Policy

QoR score
  0 |                     --- target zone
 -1 |        ● regression
 -2 |             ● baseline
 -0.5|                  ● after fix
    +----------------------------------> iteration

Validate timing + area + power, not one number.

Synthesis deep dive

Constraint hygiene determines whether synthesis QoR is trustworthy.

Concept diagram

diagram
CONSTRAINT FLOW

RTL intent -> synthesis SDC -> compile checks -> QoR dashboard -> review gate

Metric graph

diagram
QOR HEALTH

constraint lint pass   ███████████████
unconstrained count    ███
policy violations      ██

Reports and artifacts

  • compile QoR

  • unconstrained endpoints

  • constraint lint

  • policy audit log

Mini case study

Nightly WNS improved but unconstrained paths jumped; strict SDC lint restored true QoR picture.

Debug branches

  • Diff SDC first

  • Audit dont_touch scope

  • Track unconstrained trend weekly

Senior review question

Ask: what evidence proves this QoR move is real and stable?

Key takeaways

  • State exact run context (RTL, SDC, libs, switches) with every QoR claim.

  • Re-run timing, area, and power regressions after each synthesis ECO.

Common pitfalls

  • Comparing runs with mismatched constraints or library views.

  • Timing-only fixes that violate power or area budgets.

  • Skipping equivalence checks after structural changes.

Principal synthesis review addendum

dont_touch and preserve are surgical controls; overuse blocks optimization and underuse breaks intended structures such as CDC wrappers or DFT hooks.

Metric: preserved object count, blocked optimization opportunities, ECO rework