Repository navigation
analog M4e-kick (partial): sar_kick_net.t27 derives the comparator's clock-edge kick on both top plates from the plates' drive; S1 to S4 and the seven first-decision offsets met, S5 (late decisions) open - #11124
Merged
Conversation
…clock-edge kick on both top plates from the plates' drive; S1 to S4 and the seven first-decision offsets met, S5 (late decisions) open (Updates #10942) Merge of master plus sealing, gates run on the merged tree with t27c from master: tests clean with vacuous passes 0, seal --verify MATCH, tri types ratchet CLEAN, dupe_scan failure set a subset of master's. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 19, 2026 18:12
Contributor
This was referenced Oct 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates #10942 (M4e-kick), #10888, epic #10486.
specs/analog/sar_kick_net.t27derives the comparator's clock-edge kick on the two top plates from the plates' drive and predicts the first-decision rows of #10888. S1 to S4 and the seven-row criterion are met; S5 (late decisions) is NOT met and its gap is pinned in a test;sar_adc.t27is untouched. Not enabling auto-merge: this is a partial result by the issue's own honesty clause.What is in it
specs/analog/sar_kick_net.t27: a 34-node capacitor network (VDP, VDN, their net1 nodes, three per bottom plate); drivers: the measured two-port of an idle bit (sar_kick_cnode.cir), M3b's 50 C inverter tables for a moved bit (the tables cannot give the tgate at VCM: no body effect, 30 percent too stiff, a control) with the moved two-port's capacitances (sar_kick_cnode_moved.cir); the comparator's charge pulse from three gate-charge tables (sar_kick_qg.cir, M3c's recipe with the comparator's bulk and 50 C) read along the net1 / ap waves (sar_kick_edge.cir); the decision's aperture (sar_kick_aperture.cir) and the latch's 0.153 mV. M1's own derivation is capped at 5 unknowns: M and N come from a Gauss-Jordan solve in the file (residual tested), the run is M1'sstepon their Q.24 words (1.2 uV from the f64 run of the same method).sar_kick_late(the sine run's own clock edge at six decisions),sar_kick_late_aperture(the aperture at a late decision, two scans) andsar_kick_cnode_moved. Every new ngspice run was on the remote Docker host (2 containers x 2 threads at most); the committed edge and qg decks were first reproduced there bit for bit against the first lane's data. (The moved-bit deck was first drafted with two tiny op/ac probes on this Mac, seconds, before its remote run; the pinned numbers are the remote run's, identical.)Scenarios (ngspice =
sar_kick.t27; A = the issue's model, one charge pulse; B = each gate at its own level, the extension the three gate-level tables allow)S5 is not met by either variant (A 3 of 4 within 0.2 mV, B 2 of 4). The late decisions are derived with their own edge and aperture; the first lane's 0.2 to 0.6 mV miss came down to 0.03 to 0.29 mV. The two things the network does not have, named in the header as the next gap: the bit path (the measured offset at decision 9 is one number over all 28 paths within 0.05 mV, the network's two paths are 0.2 mV apart) and decision 10 against 9 (+0.24 mV measured, +0.03 modelled). The mean of A's four, 6.731 mV, is 0.045 mV under the 6.776 the converter takes; per the criterion,
sar_adc.t27is not switched.Negative controls (each a test that fails the way it says): no pulse (offset = the latch's 0.153 mV); M3c's table (plates fall 21 % too far, S1 fails); tgate from M3b's tables (S1 fails by 17 / 19 %); the bits' capacitances left out (one-half-ideal rows move 1.7 / 2.7 mV, 2592 ohm row misses by 1.02 mV; late +0.05 to +0.11 mV); dt = 100 ps (rows move up to 0.87 mV, one-half-ideal rows miss 1 mV; 5 ps moves 0.03); late decisions with the first decision's edge and aperture (first lane's reading, 0.43 mV off at the worst), with the first decision's aperture only (0.1 to 0.2 mV), the bit path swapped (0.3 mV).
Gates
t27b test specs/analog/sar_kick_net.t27: 20 passed, 0 failed (4.3 s).tri types ratchet:RATCHET: CLEAN.python3 tools/dupe_scan.py: the inherited 15 names, none added.tri hooks pre-commit: PASSED.Gates run by the orchestrator on the squashed tree (t27c from master, unsandboxed):
The lane branch lane/m4e-kick-net-10942 holds the same content in two commits whose messages say "Part of #10942", which the L1 check does not accept; this branch is one commit with
Updates #10942(history is not rewritten).🤖 Generated with Claude Code