Ship Fase B slices: hierarchy, derating bands, timing, PI, ESD/return.

ERROR stays only for RULE+MANDATORY. Hierarchy walks component→pin→net→block.
Derating is PASS/MARGIN/RISK from Vop/Vrated. Timing and PI skip without numbers.
ESD and HS return path are REVIEW, not RULE ERROR.
This commit is contained in:
2026-09-20 09:35:04 +02:00
parent facbaa2305
commit 342792df2d
16 changed files with 1259 additions and 27 deletions
+9 -2
View File
@@ -137,9 +137,16 @@ async def run_pcb_pipeline(
fg_path = ws.local_path("functional_groups.json")
fg_path.write_text(plan.model_dump_json(indent=2) + "\n")
ws._upload_file("functional_groups.json")
from backend.periscopex.hierarchy import build_hierarchy
hier = build_hierarchy(graph, plan)
hier_path = ws.local_path("hierarchy.json")
hier_path.write_text(hier.model_dump_json(indent=2) + "\n")
ws._upload_file("hierarchy.json")
_step(
project_id, "classify", "complete",
f"{len(plan.domains)} domains, {len(plan.groups)} groups",
f"{len(plan.domains)} domains, {len(plan.groups)} groups, "
f"{len(hier.blocks)} blocks",
)
if _cancelled(storage, user_id, project_id):
@@ -180,7 +187,7 @@ async def run_pcb_pipeline(
return
_step(project_id, "checks", "running")
findings = run_pcb_checks(graph, cmap, layout)
findings = run_pcb_checks(graph, cmap, layout, plan)
_step(
project_id, "checks", "complete",
f"{len(findings)} deterministic findings",