You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
analog M4b-q: the dynamic comparator with the devices charge and the body effect at 27 C, so its decision-time row is computed, not 98 times too fast #11312
Part of the analog epic (see #10486). The one FAIL left in the acceptance evaluator (specs/analog/accept_sar.t27, 6 PASS, 1 FAIL, 6 NOT MODELLED of 13 after #11288) is the dynamic comparator's decision time: the PSP103-table comparator (specs/analog/sar_comparator_psp.t27) is a NO-CHARGE model, the devices' own capacitance is not in it, so it decides about 98 times too fast against ngspice (5.35 ps against 523 ps at +2 mV, 50 C; 5.12 ps on the 27 C tables) and fails the report's 10 ps lower limit.
Everything needed for a 27 C slice (the report's temperature) is now on master: the tt log current tables (#11146), the drain and gate charge tables of tt (M3c, #10893, #11123; the gate charge read by the gate-node circuit of M3c-3), and the source-to-bulk axis of tt (M3e, #11288), which the input pair needs (its sources sit on the tail node, not on the bulk).
Only .t27 (skill only-t27); decks under specs/analog/decks/.
Requirements
FR-001: The comparator's multi-node Newton step (sar_comparator.t27_np forms, reused, not copied) MUST take the devices' charge from the tt charge tables, the same backward Euler charge step the 500 fF inverter uses (M3c), at 27 C.
FR-003: The decision time at +2 mV and -2 mV (and the report's other comparator rows the model can then compute) MUST be checked against our own ngspice-47 run of the same comparator at 27 C on the reference host (container jobs, at most 6 of its 12 cores, removed afterwards); the gap is printed in percent.
FR-004: accept_sar.t27's dynamic_comparator rows are recomputed from this model; a row turns PASS only within the report's limit AND within 10 % of ngspice; a negative control (charge removed) must still FAIL.
User Scenarios
Given +2 mV at the inputs, when the comparator with charge runs on the 27 C tables, then its decision time is printed next to ngspice's with the gap.
Given the charge removed, when the same run is judged, then the decision-time row FAILs as today.
Boundary
specs/analog/sar_comparator.t27
specs/analog/sar_comparator_psp.t27
specs/analog/accept_sar.t27
specs/analog/decks/
docs/analog/
Success Criteria
t27c test-report on every changed spec prints FAIL 0 and vacuous passes 0
the decision time at +2 mV is within 10 % of ngspice at 27 C, or the gap is written as measured and the row stays FAIL
the dynamic_comparator block is PASS, or the reason it is not is written in accept_sar.t27's header
Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.
missing: ## Success Criteria -- an outcome a machine can settle: a number with a unit, a backticked file, exit 0, or a backticked command
Activity
github-actions commentedon Oct 20, 2026
Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.
exit 0, or a backticked commandanalog M4b-q: the dynamic comparator with the devices charge and the …
analog M4b-q: the dynamic comparator with the devices' own charge and…