Skip to content

feat(qor): add ECC QoR v3 analysis engine (dimensions, feasibility, interventions, reports) - #281

Merged
Emin017 merged 7 commits into
mainfrom
yell/qor_v2
Sep 14, 2026
Merged

Emin017 merged 7 commits into
mainfrom
yell/qor_v2

Conversation

@Yell-walkalone

@Yell-walkalone Yell-walkalone commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • feat(qor): add ECC QoR v3 engine — new chipcompiler/analysis/qor/ package (metric registry, payload loader, schema validation, five-dimension scoring, feasibility gates, evidence tracking, root-cause diagnosis, tiered interventions, calibration, compatibility layer, text renderer); engine/qor_report.py reduced to a thin facade over the new package; the flow engine refreshes home/qor_report.json after each successful step; CLI report qor / report checklist wired to the new engine; dedicated test suite under test/analysis/qor/
  • fix(qor): harden report inputs and STA fallbacks — stricter input validation in loader/schema/evidence/features; missing or partial STA corner data degrades gracefully instead of failing the report
  • fix(qor): expose power observations in reports — dynamic/leakage/total power observations surfaced through models/schema/loader and rendered in the report, with or without a configured power budget
  • docs(qor): add ECC QoR v3 reference manuals — chipcompiler/docs/ecc-qor-ref.en.md / .cn.md covering dimensions, scoring rules, gates, interventions, and payload examples

Scope

Select the areas touched by this PR:

  • CLI - command behavior, Typer command surface, output formats, or workspace commands.
  • Flow/runtime - workspace lifecycle, EngineFlow, step execution, logs, metrics, or artifacts.
  • EDA integration - Yosys, ECC-Tools, DreamPlace, KLayout, PDKs, or native/runtime wrappers.
  • Build/package - Nix, PyInstaller, wheels, uv.lock, or release artifacts.
  • CI/release - GitHub Actions, version checks, changelog, or release automation.
  • Tests/docs only

Runtime And Packaging Impact

  • No runtime or packaging impact
  • CLI output or machine-readable contract changed
  • Workspace layout, flow state, or artifact paths changed
  • Native toolchain or wrapper behavior changed
  • ecc-tools or ecc-dreamplace dependency changed
  • PyInstaller, Nix, or release artifact changed

Notes:

Validation

List the commands you ran. Mark checks that are not applicable as N/A.

  • uv run pytest test/
  • uv run ruff check chipcompiler test
  • uv run ruff format --check chipcompiler test
  • PyInstaller smoke: ecc --help, ecc --version, ecc version --json
  • Nix smoke: nix run .#cli -- --help
  • Manual flow smoke:
  • Other:

Skipped checks and reason:

Checklist

  • I kept the change scoped to ECC.
  • I updated docs or user-facing CLI text where behavior changed.
  • I included lockfile or version metadata updates when dependencies changed.
  • I documented any submodule updates and why they are needed.
  • I did not include local caches, virtual environments, or generated build outputs.
  • I explained skipped validation and remaining risk.

Add paired cn/en reference manuals for the qor-v3 scoring engine:
score computation, report reading (schema_version 3), parameter
configuration, and diagnostics usage.
Rebase adaptation: main split the Floorplan flow step into
preFloorplan/postFloorplan, so the QoR v3 engine must score the
postFloorplan step and directory (postFloorplan_ecc) that owns the
scored analysis payload, matching the retired _STEP_ENUM_TO_LABEL
mapping.
Comment thread chipcompiler/docs/ecc-qor-ref.en.md Outdated
Comment thread chipcompiler/docs/ecc-qor-ref.cn.md Outdated
@Emin017 Emin017 added this to the 0.1.0-alpha.13 milestone Sep 14, 2026
@Emin017 Emin017 added the enhancement New feature or request label Sep 14, 2026
@Emin017
Emin017 merged commit f74d2bb into main Sep 14, 2026
5 checks passed
@Emin017
Emin017 deleted the yell/qor_v2 branch September 14, 2026 03:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants