CheckViolation

A single check violation.

Returned as part of a ChecksResult after running run_checks(). Each violation describes a connectivity or bend radius issue found in the design, including the hierarchy path to the affected port or component.

result = run_checks(cell, config=config)
for v in result.violations:
    print(f"[{v.severity}] {v.violation_type}: {v.message}")
    print(f"  at {v.cell_path}/{v.name}")

Attributes

attributeviolation_typestr

Type of violation. One of:

  • "unconnected_port" — a port has no matching partner
  • "width_mismatch" — connected ports have different widths
  • "angle_mismatch" — connected ports are not anti-parallel within tolerance
  • "bend_radius_too_small" — a bend is below the minimum radius
  • "bend_radius_auto_reduced" — a bend radius was automatically reduced by the router
attributenamestr

Name of the relevant port or component.

attributecell_pathstr

Hierarchy path to the cell containing the violation (e.g., "mmi_1/out_2").

attributepartner_namestr | None

Name of the partner port, for connectivity mismatch violations. None for unconnected ports and bend radius violations.

attributepartner_pathstr | None

Hierarchy path to the partner port. None when there is no partner.

attributemessagestr

Human-readable description of the violation.

attributeseveritystr

Severity level: "error" or "warning".

attributebboxtuple[tuple[float, float], tuple[float, float]]

Bounding box around the violation as ((min_x, min_y), (max_x, max_y)).

On this page