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
|
- 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