Skip to content

blog: t27 analog emulation v0.1, 9 PASS, 0 FAIL, 4 NOT MODELLED of 13 SAR ADC blocks - #1733

Open
gHashTag wants to merge 4 commits into
mainfrom
docs/analog-emulation-v0-1-blog
Open

gHashTag wants to merge 4 commits into
mainfrom
docs/analog-emulation-v0-1-blog

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #1732

Refs Trinity-S-AI-DNA/t27#11972 (analog epic Trinity-S-AI-DNA/t27#10486), Trinity-S-AI-DNA/t27#12025, supersedes #1735

What this adds

One blog post, analog-emulation-v0-1, in English (body, ASCII) and Russian (ruBody), telling what t27 analog emulation v0.1 measured and what it does not claim, plus the widget the post links, in the same PR so the widget-per-post rule and the course-post rule are both met by one change. The headline is the acceptance run of an external team's per-block checks on the 13 blocks of the golden SAR ADC: 9 PASS, 0 FAIL, 4 NOT MODELLED.

Commits, oldest first:

Every number in the post and in the widget is copied from the v0.1 release notes (Trinity-S-AI-DNA/t27#11973, merged; release analog-v0.1.0 is tagged) with the pull request or issue it was measured in. Speed appears once in the post, as: the board is 170000 to 196000 times slower than real time; the widget makes no speed claim. The post names no partner, budget or customer ("an external team"). It states plainly: one corner on the board, M3f phase 2a never loaded and below 100 MHz, four blocks NOT MODELLED, converter not predicted end to end.

What is not in this PR

Checks run

By me, on the new head fa373b1cd:

  • npm run check:blog-bodies in apps/website: passed (111 published posts open in the reader).
  • Non-ASCII byte scan of the English body: none found.
  • No production build, no tsc, no browser render: heavy builds are not run on this Mac.

Carried from #1735, run there by its author on the widget commits, not re-run by me: the three --check generators (194 pages, 604 spec tests, 1937 asserts; 307 widgets; course up to date) and t27c test-report of the widget spec (10 tests, 10 pass, 0 fail, 7 of 10 vacuous as in every widget spec).

{
  "version": 1,
  "head_sha": "fa373b1cdaec5669b60c21531101c6e7ebbfd875",
  "summary": "Adds one bilingual blog post on t27 analog emulation v0.1 (9 PASS, 0 FAIL, 4 NOT MODELLED of 13 SAR ADC blocks) together with the spec-generated widget analog-v01-acceptance it links, so the post, its widget and the course placement land in one change.",
  "changes": [
    "Adds apps/website/src/data/blog/bodies/analog-emulation-v0-1.ts with an ASCII English body and a Russian ruBody of 37 blocks each, including one paragraph per language that links t27.ai/widgets/analog-v01-acceptance/.",
    "Registers the post in apps/website/src/data/blog/posts.ts and apps/website/src/data/blog/index.ts with English and Russian metadata and eight receipts.",
    "Adds specs/widgets/analog-v01-acceptance.t27, which holds the scoreboard numbers once as K_ constants and 10 tests that add the counts up and recompute the 1.75 % in integers, and the generated public/widgets/analog-v01-acceptance/ page with a one-line tool.js and a 1200x630 card.png.",
    "Registers the widget in specs/widgets/gallery.t27, public/widgets/gallery.t27 and src/lib/queenWidgets.generated.ts, and places it in the coverage-lies lesson through specs/course/verify-hardware.t27 and the regenerated course files."
  ],
  "tests": [
    {
      "command": "npm run check:blog-bodies (in apps/website)",
      "result": "passed, every published post of 111 opens in the reader",
      "status": "passed",
      "evidence": "Output line: blog bodies: every published post of 111 opens in the reader, run on head fa373b1cd."
    },
    {
      "command": "LC_ALL=C grep for non-ASCII bytes on the English body of analog-emulation-v0-1.ts",
      "result": "no non-ASCII byte found in the English body",
      "status": "passed",
      "evidence": "The scan between the body export and the ruBody export printed a count of 0."
    },
    {
      "command": "node apps/website/scripts/widget-pages-from-spec.mjs --check",
      "result": "up to date, 194 pages, 604 spec tests, 1937 asserts, all hold",
      "status": "passed",
      "evidence": "Run by the widget's author on the same two widget commits in PR 1735 and carried here unchanged; not re-run by me."
    },
    {
      "command": "t27c test-report specs/widgets/analog_v01_acceptance.t27 (master-built t27c, T27 OS shell pane)",
      "result": "10 tests, 10 pass, 0 fail; 7 of 10 vacuous because integer-only asserts are folded, as in every widget spec",
      "status": "passed",
      "evidence": "Run by the widget's author in PR 1735 and carried here; the three string-comparing tests execute 15, 1 and 3 runtime asserts."
    },
    {
      "command": "npx vite build and tsc typecheck of apps/website",
      "result": "not run, heavy builds skipped on this Mac",
      "status": "not_run",
      "evidence": "Skipped on purpose because heavy builds are not run on this Mac, so the layout of the page was not rendered here."
    }
  ],
  "limitations": [
    "Nothing in the post or on the widget is measured by this PR: every number is copied from docs/analog/v0.1-release-notes.md of Trinity-S-AI-DNA/t27 (PR 11973, merged), and the 4 NOT MODELLED blocks stay open gaps.",
    "The widget page is not live until this PR merges and the release PR in 999 ships it; a seal was not saved, as no existing tool widget spec carries one.",
    "The page was not rendered in a browser and no production build was run, so the layout of the long tables is unchecked.",
    "The course lesson is not hand-written; the widget is placed in an existing lesson by the generator, and a new lesson of the analog course is still to come."
  ],
  "tags": ["t27", "analog", "FPGA", "ngspice", "Widgets"],
  "blog": {
    "title": "t27 analog emulation v0.1: 13 SAR ADC blocks checked, 9 PASS, 0 FAIL, 4 NOT MODELLED",
    "summary": "A SPICE netlist with IHP SG13G2 (PSP103) models becomes t27 specs that are both the software reference and the FPGA design. An external team's per-block checks on 13 SAR ADC blocks give 9 PASS, 0 FAIL and 4 NOT MODELLED, and the post states plainly what v0.1 does not claim.",
    "outline": [
      "What v0.1 is: a SPICE netlist with PSP103 models becomes t27 specs that are both the reference and the FPGA design, checked against ngspice-47 and VACASK.",
      "The measured chain: the linear cell and the netlist front end, the PSP103 tables for five corners, the SAR ADC blocks and the first converter slice.",
      "The acceptance result of an external team's checks on 13 blocks, with the ngspice cross-check of each transistor-level row, the negative controls and the scoreboard widget.",
      "The AX7203 board receipts, the waveform writer and the second reference, and the speed stated as 170000 to 196000 times slower than real time.",
      "What v0.1 does not claim: one corner on the board, an unloaded comparator unit below 100 MHz, four blocks NOT MODELLED, and a converter that is not predicted end to end."
    ]
  }
}

🤖 Generated with Claude Code

… SAR ADC blocks (Closes #1732, Refs Trinity-S-AI-DNA/t27#11972)

One post in English and Russian. Every number is copied from the v0.1 release notes (t27#11973) with its pull request or issue; the speed is stated only as 170000 to 196000 times slower than real time; the limits (one corner on the board, M3f phase 2a never loaded and below 100 MHz, four blocks NOT MODELLED, converter not predicted end to end) are stated plainly. The widget and the course lesson are not part of this change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tri-claw

tri-claw Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Summary by t27-bees

Checked by the t27 compiler

t27c parse, parse-complete and typecheck on each changed .t27 file at fa373b1. Nothing was generated, built or run. A pass means the file is well formed, not that it is right.

  • apps/website/public/learn/verify-hardware.t27: parses and typechecks.
  • apps/website/public/widgets/analog-v01-acceptance/analog-v01-acceptance.t27: parses and typechecks.
  • apps/website/public/widgets/gallery.t27: parses and typechecks.
  • apps/website/specs/course/verify-hardware.t27: parses and typechecks.
  • apps/website/specs/widgets/analog-v01-acceptance.t27: parses and typechecks.
  • apps/website/specs/widgets/gallery.t27: parses and typechecks.

Read by the model

This PR adds a bilingual blog post announcing t27 analog emulation v0.1 (9 PASS, 0 FAIL, 4 NOT MODELLED of 13 SAR ADC blocks) together with the spec-generated widget analog-v01-acceptance it links, plus course and gallery registrations so the post, widget, and course placement land in one change.

Worth a look

  • apps/website/public/learn/verify-hardware.t27:156 — The array element "t27-tri-lean,analog-v01-acceptance" contains a comma inside the string instead of being two separate elements ("t27-tri-lean", "analog-v01-acceptance"). Since LESSON_ALSO is declared as [27]str, this reduces the element count by one and will likely break whatever consumes this fixed-size array (course generator, lesson routing, or UI).

  • apps/website/public/widgets/analog-v01-acceptance/analog-v01-acceptance.t27 — The spec defines K_COMPARATOR_GAP_CENTI_PERCENT = 175 (meaning 1.75%) and the test the_comparator_gap_is_recomputed_from_the_two_times validates it within ±50 ppm using integer arithmetic. The test passes at this head, but if the two decision-time constants (K_COMPARATOR_T27_CENTI_PS = 61307, K_COMPARATOR_NGSPICE_CENTI_PS = 60254) are ever updated without recomputing the gap constant, the compile will fail — which is the intended guard.

  • apps/website/src/data/blog/bodies/analog-emulation-v0-1.ts — Not shown in the diff, but the PR description says it links t27.ai/widgets/analog-v01-acceptance/. If the widget route or ID changes later, the post will contain a dead link. No redirect or versioning strategy is visible in this diff.

  • apps/website/public/widgets/gallery.t27 and apps/website/specs/widgets/gallery.t27 — Both modified (+46/-46 lines each). The diff is cut, so I cannot verify whether the widget registration is correct or if the gallery ordering/tests remain valid.

  • apps/website/src/lib/course.generated.ts and apps/website/src/lib/queenWidgets.generated.ts — Generated files modified (+10/-2 and +19/-2). Since they are generated, the real review surface is the source specs and generators; the diff shown doesn't reveal whether the generation logic itself is correct.


Read: 14 files, +929 -98, the whole diff up to 60000 characters (the rest was not read). Head fa373b1. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.

gHashTag and others added 3 commits October 24, 2026 22:16
…oard of t27 analog v0.1 (Refs #1377)

A spec-generated tool widget: one table (9 of 13 blocks pass, 0 fail, 4 not modelled;
26 / 0 / 4 of 30 rows) and one diagram (the dynamic comparator decision time, 613.07 ps in
t27 against 602.54 ps in ngspice, +1.75 %). The numbers come from
docs/analog/v0.1-release-notes.md of Trinity-S-AI-DNA/t27 (PR 11973) and nowhere else; the
spec's own tests pin the sums, every table cell and flow step, and recompute the 1.75 % in
integers. Nothing on the page is a speed claim.

- specs/widgets/analog-v01-acceptance.t27: the spec (byte-identical to t27 specs/widgets/analog_v01_acceptance.t27)
- public/widgets/analog-v01-acceptance/: tool.js (one import of ../infographic.js), generated index.html and .t27, card.png 1200x630
- gallery.t27 + queenWidgets.generated.ts: registered (kind tool, category fpga)
- course verify-hardware, lesson coverage-lies: LESSON_ALSO carries the id (gate S15), course.generated.ts and public/learn regenerated

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… regenerated (Refs #1377)

The spec is byte-identical to specs/widgets/analog_v01_acceptance.t27 in Trinity-S-AI-DNA/t27#12025 after its first review: the Total row's last table cell is now pinned by a test, the row test is renamed to what its counts can prove, and the gap window's unit is stated. The page text is unchanged; the generated copy and the page stamp follow the spec. 604 spec tests, 1937 asserts, all hold.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nguages (Refs #1732)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:in-progress 🔵 Agent working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Blog: t27 analog emulation v0.1, what was measured and what is not claimed

1 participant