Repository navigation
analog M5c: the external team's per-block acceptance checks as a .t27 evaluator on our SAR blocks: 3 PASS, 1 FAIL, 9 NOT MODELLED of 13 - #11215
Merged
Conversation
… applied to our SAR blocks specs/analog/accept_sar.t27 holds the limits of the external team's report of 2026-10-16 as named constants, one pure check function per quantity, and one function per block that measures the quantity on our model (imported with `use`, no copy) and applies the check. A row is PASS (ours, inside the limit), FAIL (ours, outside) or NOT MODELLED (the model does not produce the quantity; never a pass). A block is PASS only when every row is PASS. Over the 13 blocks: 3 PASS (clock_gen, SAR_logic, integration), 1 FAIL (dynamic_comparator: decision time 5.35 ps against the 10 ps lower limit, the no-charge model is 98 times too fast), 9 NOT MODELLED. Over the 30 rows: 16 PASS, 1 FAIL, 13 NOT MODELLED. Every check has a negative control, on the value and, where a model can be broken to leave the limit, on the model. docs/analog/accept-sar-2026-10-20.md has the table (block, check, our value, the report's value, the limit, verdict) and says where a model is square law or gate level and what that means for the verdict. specs/analog/sar_kick.t27: the field and local `half` of KickThr renamed `hw` (no value changed). The Zig emitter types a local by the name of a variable or field anywhere in the closure, so `half: f64` here made `(half as u64)` in mos_table.t27's blend1_w, where `half` is a u32, a float conversion, and no spec could use both specs. To be filed on #5980. t27c test-report: accept_sar 13 tests, 0 FAIL, 0 vacuous; sar_kick 10 tests, 0 FAIL, 0 vacuous. t27b test --check: exit 0 for accept_sar. Updates #11212 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… evaluator on our SAR blocks: 3 PASS, 1 FAIL, 9 NOT MODELLED of 13 (Closes #11212) 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 20, 2026 03:12
Contributor
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.
Closes #11212
analog M5c: the external team's per-block acceptance checks as a .t27 evaluator on our SAR blocks: 3 PASS, 1 FAIL, 9 NOT MODELLED of 13
Gates run on the merged tree (t27c from master): 6 spec(s) with tests clean and vacuous passes 0, seal --verify MATCH, tri types ratchet CLEAN, dupe_scan failure set a subset of master's (inherited red).
TEST specs/analog/accept_sar.t27 tests=[13] fail=[0] vacuous=[0]
TEST specs/analog/sar_kick.t27 tests=[10] fail=[0] vacuous=[0]
TEST specs/analog/sar_kick_net.t27 tests=[23] fail=[0] vacuous=[0]
TEST specs/analog/sar_adc.t27 tests=[15] fail=[0] vacuous=[0]
TEST specs/analog/mos_table.t27 tests=[20] fail=[0] vacuous=[0]
TEST specs/analog/mos_psp103.t27 tests=[35] fail=[0] vacuous=[0]
SEAL specs/analog/accept_sar.t27 :: all hashes MATCH
SEAL specs/analog/sar_kick.t27 :: all hashes MATCH
SEAL specs/analog/sar_kick_net.t27 :: all hashes MATCH
SEAL specs/analog/sar_adc.t27 :: all hashes MATCH
SEAL specs/analog/mos_table.t27 :: all hashes MATCH
SEAL specs/analog/mos_psp103.t27 :: all hashes MATCH
TYPES RATCHET: CLEAN
DUPE failing=0 extra-vs-master=[]
Result over the 13 blocks of the external team's report of 2026-10-16: 3 PASS, 1 FAIL, 9 NOT MODELLED. A block is PASS only when every row of the report's check is measured on our model and inside the limit; a row our model does not produce is NOT MODELLED and never counts as a pass. Over the 30 rows of the checks: 16 PASS, 1 FAIL, 13 NOT MODELLED.
Open: the report's "stops 10.7 ns after Valid" is not reproduced (ours 5.70 ns by this lane's definition) and the report's ramp inputs are not known (with the ideal end codes 517 and 1579 the context table gives 512 and 1595 against the report's 510 and 1593). Edit outside the boundary:
sar_kick.t27had a field and a local renamed tohwwith no value changed, because the Zig emitter types a local by name across the whole closure (half: f64there turned(half as u64)inmos_table.t27into a float conversion); both are tested. Every check has a negative control.t27c test-report: accept_sar 13 tests, sar_kick 10, 0 FAIL, 0 vacuous;t27b test --checkexits 0.🤖 Generated with Claude Code