Skip to content

analog M3e: a source-to-bulk axis in the PSP103 tables (tt), so the tgate Ron sees the body effect #11283

Closed as not planned

Description

@gHashTag

Part of the analog epic (see #10486). After M5d (#11263, PR #11279) the external team's per-block checks give 5 PASS, 1 FAIL, 7 NOT MODELLED of 13. Two of the open rows fail for one reason: the PSP103 tables are Id(Vgs, Vds) with each bulk tied to its source, so they have no body effect.

Only .t27 (skill only-t27): decks are ngspice netlists under specs/analog/decks/, every number lands in a .t27 data file, the read and the checks are .t27 tests.

Requirements

  • FR-001: A tt deck MUST print log-domain current tables of sg13_lv_nmos (1/0.45 um) and sg13_lv_pmos (3/0.45 um) at several source-to-bulk voltages from 0 to 1.5 V on the grid of the existing tt log tables (TT_LG_N, TT_LG_P), plus held-out currents at cell centres between the Vsb slices.
  • FR-002: The table read MUST take the source-to-bulk voltage as a third axis (extend the existing read in specs/analog/mos_table.t27; no copied body) and MUST give back the existing 2-D result exactly when Vsb = 0.
  • FR-003: The tgate Ron at 0.75 V and its worst Ron over 0.1 to 1.4 V MUST be computed with the bulks on the rails and compared with ngspice's real cell (2459.6 ohm, 2776.1 ohm); the accept_sar.t27 Ron rows become PASS only if within the 10 % bar of mos_psp103_gates.t27 and inside the report's limit.
  • FR-004: Every reference number MUST come from our own ngspice-47 run on the reference host (container jobs, at most 6 of its 12 cores, files removed afterwards) and its deck MUST be committed.
  • FR-005: A negative control MUST show the 2-D read (Vsb forced to 0) refused by the same bar on the real cell.

User Scenarios

  • Given the tgate at 0.75 V with bulks on the rails, when Ron is read through the Vsb axis, then it is printed next to ngspice's 2459.6 ohm with the relative gap.
  • Given Vsb = 0, when the 3-D read runs, then every value equals the 2-D read.
  • Given the Vsb axis forced to 0 on the real cell, when the tgate check runs, then the bar refuses it.

Boundary

  • specs/analog/mos_table.t27
  • specs/analog/mos_psp103_data.t27 (or a new data file next to it for the Vsb tables)
  • specs/analog/mos_psp103_gates.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 tgate Ron at 0.75 V is within 10 % of 2459.6 ohm, or the gap is reported as measured and the row stays NOT MODELLED
  • the NOT MODELLED count of accept_sar.t27 drops from 7, or the reason it cannot is written in the spec header

🤖 Generated with Claude Code

Activity

  1. added
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 20, 2026
  2. github-actions commented on Oct 20, 2026

    @github-actions
    Contributor

    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
  3. added 2 commits that reference this issue on Oct 20, 2026
    37469d3
    3430287
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions