sycan.components.blocks.summer

Weighted summing junction.

Enforces

V(out_p) - V(out_m) = sum_k w_k * (V(in_p_k) - V(in_m_k))

over an arbitrary list of differential inputs supplied as (in_p, in_m, weight) tuples (or 2-tuples (node, weight) for inputs referenced to ground).

Inputs are high-impedance — no current is drawn from any of the control nodes — and the output is voltage-forced through a single auxiliary branch current. This is the building block that produces the error = input - feedback node at the front of every sigma-delta loop and the inter-stage summers in CIFB / CIFF cascades.

Classes

Summer(name, out_p, out_m, inputs, *[, ...])

class sycan.components.blocks.summer.Summer(name: 'str', out_p: 'str', out_m: 'str', inputs: 'list', *, include_noise: 'NoiseSpec' = None)[source]

Bases: Component

Parameters:
  • name (str)

  • out_p (str)

  • out_m (str)

  • inputs (list)

  • include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])

name: str
out_p: str
out_m: str
inputs: list
include_noise: None | str | list[str] | tuple[str, ...] | frozenset[str] = None
ports: ClassVar[tuple[str, ...]] = ('out_p', 'out_m')
has_aux: ClassVar[bool] = True
SUPPORTED_NOISE: ClassVar[frozenset[str]] = frozenset({})
iter_node_names()[source]

Yield each circuit node name referenced by this component.

Return type:

Iterator[str]

stamp(ctx)[source]
Parameters:

ctx (StampContext)

Return type:

None