Skip to content

netlist_carpentry.routines.opt.floodfill.chain_metrics

Gate-Chain Optimizer Metrics & Reporting.

Contains all dataclasses and reporting functionality.

Classes:

ChainStatus

Bases: Enum

Status of a chain replacement attempt.

GateAnalysis dataclass

GateAnalysis(
    total_gates: int = 0,
    by_input_count: Dict[int, int] = dict(),
    constant_input_gates: int = 0,
)

Analysis of gates in a module by input count.

ChainBoundary dataclass

ChainBoundary(
    inputs: List["WireSegmentPath"],
    output: "WireSegmentPath",
    internal_wires: List["WireSegmentPath"],
)

Defines the input/output boundary of a gate-chain.

ChainInfo dataclass

ChainInfo(
    chain_keys: List[str],
    status: ChainStatus,
    error_message: Optional[str] = None,
    num_gates: int = 0,
    num_inputs: int = 0,
    num_internal_wires: int = 0,
    num_constant_inputs: int = 0,
    output_wire: Optional[str] = None,
    input_wires: List[str] = list(),
)

Detailed information about a single chain.

Attributes:

is_degenerate property

is_degenerate: bool

Chain is degenerate (only constant inputs) - expected skip, not an error.

is_problematic_skip property

is_problematic_skip: bool

Chain was skipped due to an unexpected problem.

ModuleReport dataclass

ModuleReport(
    module_name: str,
    gate_analysis: GateAnalysis = GateAnalysis(),
    chains_detected: int = 0,
    chains_replaced: int = 0,
    chains_skipped: int = 0,
    chains_failed: int = 0,
    skipped_details: List[Dict[str, object]] = list(),
    failed_details: List[Dict[str, object]] = list(),
)

Detailed report for a single module.

ReplacementResult dataclass

ReplacementResult(
    chains_detected: List[List[str]],
    chains_replaced: int = 0,
    chains_skipped: int = 0,
    chains_failed: int = 0,
    chain_details: List[ChainInfo] = list(),
)

Statistics for chain replacement operations in one module.

CircuitOptimizationResult dataclass

CircuitOptimizationResult(
    modules_processed: int = 0,
    modules_with_chains: int = 0,
    total_chains_detected: int = 0,
    total_chains_replaced: int = 0,
    total_chains_skipped: int = 0,
    total_chains_failed: int = 0,
    module_results: Dict[str, ReplacementResult] = dict(),
    module_reports: Dict[str, ModuleReport] = dict(),
)

Complete statistics for circuit-wide optimization.

Methods:

  • all_degenerate

    Return all degenerate chains (expected skips - only constant inputs).

  • all_problematic

    Return problematic skips (unexpected issues requiring attention).

all_degenerate

all_degenerate() -> List[Tuple[str, ChainInfo]]

Return all degenerate chains (expected skips - only constant inputs).

all_problematic

all_problematic() -> List[Tuple[str, ChainInfo]]

Return problematic skips (unexpected issues requiring attention).