Home Developers Evidence electrical.mosfet.vth

Public evidence

electrical.mosfet.vth

Machine-checked verification for calculation version 1.3.1 · tier expert_verified

CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· Model Vth ≠ datasheet VGS(th); kn not temperature-scaled · Protocol · Schema · Production report

Declared partition coverage
PASS · 4/4 declared partitions (overdrive, id, vth, invalid-domain)
Versions
Calculation 1.3.1 · CVP protocol 1.0.0-proposed
CVP identity
11/11 property · digest df4f29a72c29

Verification

Legacy regression suite: 26/26 calculation tests · Production surface contract 10/10

Three distinct suites: educational examples on the calculator page, this legacy regression count (26/26 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.

    This calculator CURRENT · Public schema 1.3.1 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Calculation version 1.3.1. CVP 1.0.0-proposed. 4/4 golden · 5/5 CVP boundary · 5/5 invalid · 11/11 property · 2/2 cross-interface · 10/10 CVP contract. digest df4f29a72c29.

  • Golden (oracle-backed) 4 / 4
  • CVP boundary 5 / 5
  • Invalid input 5 / 5
  • Property 11 / 11
  • Cross-interface 2 / 2
  • CVP contract 10 / 10
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session.
  • Assurance Engineering
  • contract page version PASS
  • contract capability version PASS
  • contract input schema version PASS
  • contract output schema version PASS
  • evidence version matches manifest PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS
  • schema rejects incomplete input PASS
  • subthreshold warning codes PASS
  • cutoff id zero subthreshold warning PASS

Fingerprint sha256:62d830442da390bacca788207a7c0cde30c1f11982f6a67aa61d54533e60497a

Input schema sha256:8aaf0a70ca3197d145c41aebca84830791334284c7830b197771ba8e83f8178e · Output schema sha256:07ec52f59e9a4a0172410ab1152a5879545b7d79b2f2a48a1355a4135ea860cf · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
mosfet-vth
Engine
mosfet-vth
Engine build
2026-09-10
Evidence core
2026-09-05T02:35:39.217Z
Rendered
2026-09-16T22:03:43.747Z
Last reviewed
2026-08-17

Assumptions

  • Ideal long-channel square-law NMOS model. Not BSIM, velocity saturation, or short-channel.
  • Vth is the model threshold parameter, not datasheet VGS(th) and not recommended gate drive.
  • kn = μn·Cox·W/L such that Id_sat = ½·kn·Vod². The ½ factor is not included in kn.
  • When Vds is omitted, Id uses the saturation equation and region is above_threshold or cutoff.
  • When Vds is provided: cutoff if Vod≤0; linear if 0≤Vds<Vod; saturation if Vds≥Vod.
  • Vod > 0 means above the model threshold, not strong inversion.
  • Cutoff returns Id = 0 A. Subthreshold current is not modeled.
  • Solve-Vth always uses the saturation extract Vth=Vgs−√(2Id/kn) at the measurement temperature.
  • Linear Vth(Tj) does not scale kn or μ(T).
  • Default α = −0.002 V/°C is a Si planning value, not a datasheet TCV of VGS(th).

Limitations

  • Long-channel square-law only — not BSIM, velocity saturation, or short-channel
  • Vth is the model threshold parameter, not datasheet VGS(th) and not recommended gate drive
  • kn = μn·Cox·W/L such that Id_sat = ½·kn·Vod²; the ½ is not included in kn
  • Without Vds, Id uses the saturation equation; with Vds, region is cutoff / linear / saturation
  • Cutoff returns Id = 0 A; subthreshold leakage is not modeled
  • Linear Vth(Tj) does not scale kn / μ(T); default α = −0.002 V/°C is a Si planning value, not datasheet TCV

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Legacy published checks

Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.

IDKindStatusDetail
odgoldenpassExpected Vod_V=2 · region=above_threshold · Actual mode=overdrive · Vgs_V=3 · Vth_V=1 · Vod_V=2 · region=above_threshold · strong_inversion=true
idgoldenpassExpected Id_A=1 · Vod_V=2 · region=above_threshold · Actual mode=id · Vgs_V=3 · Vth_V=1 · kn_A_per_V2=0.5 · Vod_V=2 · Id_A=1 · region=above_threshold · strong_inversion=true
id-lineargoldenpassExpected Id_A=0.75 · Vod_V=2 · region=linear · Actual mode=id · Vgs_V=3 · Vth_V=1 · kn_A_per_V2=0.5 · Vod_V=2 · Id_A=0.75 · region=linear · strong_inversion=true
id-sat-vdsgoldenpassExpected Id_A=1 · Vod_V=2 · region=saturation · Actual mode=id · Vgs_V=3 · Vth_V=1 · kn_A_per_V2=0.5 · Vod_V=2 · Id_A=1 · region=saturation · strong_inversion=true
vthgoldenpassExpected Vth_V=1 · Vod_V=2 · Actual mode=vth · Vgs_V=3 · Id_A=1 · kn_A_per_V2=0.5 · Vod_V=2 · Vth_V=1 · region=above_threshold · strong_inversion=true
cutoffgoldenpassExpected Id_A=0 · region=cutoff · Actual mode=id · Vgs_V=1 · Vth_V=2 · kn_A_per_V2=1 · Vod_V=-1 · Id_A=0 · region=cutoff · strong_inversion=false
neargoldenpassExpected Vod_V=0.01 · region=above_threshold · Actual mode=overdrive · Vgs_V=1.01 · Vth_V=1 · Vod_V=0.010000000000000009 · region=above_threshold · strong_inversion=true
bad-knboundarypassExpected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE
bad-vdsboundarypassExpected VALUE_MUST_BE_NON_NEGATIVE · Actual VALUE_MUST_BE_NON_NEGATIVE
vth-tjgoldenpassExpected Vod_V=2.2 · Vth_Tj_V=0.8 · Vth_Tref_V=1 · Actual mode=overdrive · Vgs_V=3 · Vth_V=0.8 · Vod_V=2.2 · region=above_threshold · strong_inversion=true · temperature_model=linear · Tj_C=125
id-tjgoldenpassExpected Id_A=1.21 · Vod_V=2.2 · Actual mode=id · Vgs_V=3 · Vth_V=0.8 · kn_A_per_V2=0.5 · Vod_V=2.2 · Id_A=1.2100000000000002 · region=above_threshold · strong_inversion=true
extract-tjgoldenpassExpected Vth_V=1 · Vth_Tref_V=1.2 · Actual mode=vth · Vgs_V=3 · Id_A=1 · kn_A_per_V2=0.5 · Vod_V=2 · Vth_V=1 · region=above_threshold · strong_inversion=true
linear-no-tjboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
tj-abs-zeroboundarypassExpected VALUE_OUT_OF_RANGE · Actual VALUE_OUT_OF_RANGE
boundary-vth-missingboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
property-odpropertypass2
property-idpropertypass½ kn Vod² (½ not in kn)
property-vth-roundtrippropertypass1
property-cutoffpropertypass0 A cutoff
property-near-thresholdpropertypassNEAR_THRESHOLD
property-id-linearpropertypass0.75 A linear
property-id-sat-edgepropertypassId continuous at Vds=Vod
property-vth-tjpropertypassVth(Tj)=0.8 Vod=2.2
property-id-tjpropertypass1.21 A hot Id
property-extract-trefpropertypassextract Vth_Tref=1.2
property-temp-ignoredpropertypassTEMPERATURE_NOT_APPLIED