gm/Id — Analyze (Phase 1)

Phase 1 — Analyze: build the structural view of the recognised circuit.

Everything the later phases need to know about the circuit’s structure is derived here, once: the per-slot device lists, the deduplicated ref→(device, slot) map, the typed block view (load kind, stage count, fully-differential flag), the cascode devices, and the topology-mismatch warnings. All of it is read-only from here on.

class circuitgenome.sizer.gmid.analyze.CircuitView(slot_transistors, slot_resistors, all_transistors, blocks, cascode_refs, warnings)[source]

Bases: object

Structural view of the circuit (Phase 1 output).

Parameters:
  • slot_transistors (dict[str, list[Device]]) – FBR slot name → MOSFET devices in that slot.

  • slot_resistors (dict[str, list[Device]]) – FBR slot name → resistor devices in that slot.

  • all_transistors (dict[str, tuple[Device, str]]) – deduplicated ref → (Device, owning slot); a device appearing in several slots is attributed to the highest-priority one.

  • blocks (OpAmpBlocks) – the typed OpAmpBlocks decomposition.

  • cascode_refs (set[str]) – refs of stacked (cascode) current-source devices.

  • warnings (list[str]) – topology-mismatch advisories from the structural check.

slot_transistors: dict[str, list[Device]]
slot_resistors: dict[str, list[Device]]
all_transistors: dict[str, tuple[Device, str]]
blocks: OpAmpBlocks
cascode_refs: set[str]
warnings: list[str]
circuitgenome.sizer.gmid.analyze.analyze_circuit(fbr_result, topology)[source]

Build the CircuitView from the FBR assignments.

Parameters:
Return type:

CircuitView