{
  "schema": "semiagora.sram-memory-depth.v1",
  "version": "2026-08-12-v60",
  "experiment_id": "SA-MEM-DEPTH-SENSE-001",
  "title": "SRAM sense amplifier decision margin replay",
  "execution_mode": "precomputed-only",
  "model_boundary": "Educational replay built from rights-clean synthetic and analytic data. It is not a measured macro, post-layout SRAM, foundry characterization, or product signoff result.",
  "metric_contract": {
    "name": "sense amplifier decision margin",
    "input_axes": [
      "bitline differential before sense enable",
      "sense-amplifier offset sigma"
    ],
    "observation": "decision margin = bitline differential - 3*sigma(offset) - attenuation loss",
    "pass_rule": "decision margin must remain positive before a timing number is interpreted"
  },
  "cases": [
    {
      "id": "sense-dv60-sigma10",
      "bitline_differential_mv": 60,
      "offset_sigma_mv": 10,
      "attenuation_loss_mv": 8,
      "three_sigma_offset_mv": 30,
      "decision_margin_mv": 22,
      "decision_time_ps": 227.5,
      "decision": "resolved"
    },
    {
      "id": "sense-dv60-sigma15",
      "bitline_differential_mv": 60,
      "offset_sigma_mv": 15,
      "attenuation_loss_mv": 8,
      "three_sigma_offset_mv": 45,
      "decision_margin_mv": 7,
      "decision_time_ps": 332.9,
      "decision": "resolved"
    },
    {
      "id": "sense-dv60-sigma20",
      "bitline_differential_mv": 60,
      "offset_sigma_mv": 20,
      "attenuation_loss_mv": 8,
      "three_sigma_offset_mv": 60,
      "decision_margin_mv": -8,
      "decision_time_ps": null,
      "decision": "unsafe"
    },
    {
      "id": "sense-dv80-sigma10",
      "bitline_differential_mv": 80,
      "offset_sigma_mv": 10,
      "attenuation_loss_mv": 8,
      "three_sigma_offset_mv": 30,
      "decision_margin_mv": 42,
      "decision_time_ps": 168.1,
      "decision": "resolved"
    },
    {
      "id": "sense-dv80-sigma15",
      "bitline_differential_mv": 80,
      "offset_sigma_mv": 15,
      "attenuation_loss_mv": 8,
      "three_sigma_offset_mv": 45,
      "decision_margin_mv": 27,
      "decision_time_ps": 208.7,
      "decision": "resolved"
    },
    {
      "id": "sense-dv80-sigma20",
      "bitline_differential_mv": 80,
      "offset_sigma_mv": 20,
      "attenuation_loss_mv": 8,
      "three_sigma_offset_mv": 60,
      "decision_margin_mv": 12,
      "decision_time_ps": 283.3,
      "decision": "resolved"
    },
    {
      "id": "sense-dv100-sigma10",
      "bitline_differential_mv": 100,
      "offset_sigma_mv": 10,
      "attenuation_loss_mv": 12,
      "three_sigma_offset_mv": 30,
      "decision_margin_mv": 58,
      "decision_time_ps": 138.4,
      "decision": "resolved"
    },
    {
      "id": "sense-dv100-sigma15",
      "bitline_differential_mv": 100,
      "offset_sigma_mv": 15,
      "attenuation_loss_mv": 12,
      "three_sigma_offset_mv": 45,
      "decision_margin_mv": 43,
      "decision_time_ps": 165.9,
      "decision": "resolved"
    },
    {
      "id": "sense-dv100-sigma20",
      "bitline_differential_mv": 100,
      "offset_sigma_mv": 20,
      "attenuation_loss_mv": 12,
      "three_sigma_offset_mv": 60,
      "decision_margin_mv": 28,
      "decision_time_ps": 205.4,
      "decision": "resolved"
    },
    {
      "id": "sense-dv120-sigma10",
      "bitline_differential_mv": 120,
      "offset_sigma_mv": 10,
      "attenuation_loss_mv": 12,
      "three_sigma_offset_mv": 30,
      "decision_margin_mv": 78,
      "decision_time_ps": 111.1,
      "decision": "resolved"
    },
    {
      "id": "sense-dv120-sigma15",
      "bitline_differential_mv": 120,
      "offset_sigma_mv": 15,
      "attenuation_loss_mv": 12,
      "three_sigma_offset_mv": 45,
      "decision_margin_mv": 63,
      "decision_time_ps": 130.7,
      "decision": "resolved"
    },
    {
      "id": "sense-dv120-sigma20",
      "bitline_differential_mv": 120,
      "offset_sigma_mv": 20,
      "attenuation_loss_mv": 12,
      "three_sigma_offset_mv": 60,
      "decision_margin_mv": 48,
      "decision_time_ps": 155.8,
      "decision": "resolved"
    }
  ],
  "derived_metrics": {
    "case_count": 12,
    "resolved_cases": 11,
    "unsafe_cases": 1,
    "minimum_passing_margin_mv": 7,
    "fastest_decision_ps": 111.1,
    "slowest_passing_decision_ps": 332.9
  },
  "verification": {
    "positive_margin_required_for_timing": true,
    "more_bitline_signal_improves_margin": true,
    "larger_offset_sigma_reduces_margin": true,
    "unsafe_cases_have_no_decision_time": true
  },
  "limitations": [
    "Offset sigma and attenuation are synthetic teaching parameters, not measured mismatch data.",
    "No latch transistor sizing, RC extraction, kickback, metastability tail, supply noise, or Monte Carlo run is included.",
    "Decision time is an illustrative mapping from margin to delay; it is not a characterized sense-amplifier specification.",
    "This replay is a run card for paper-reading discipline, not a macro timing signoff result."
  ],
  "sources": [
    {
      "label": "UCLA eScholarship SRAM sense amplifier thesis",
      "url": "https://escholarship.org/content/qt0xn2r2wx/qt0xn2r2wx_noSplash_78b1af6aa1f3f19975d8ea05d02b6c16.pdf",
      "note": "Public thesis used for offset, attenuation, control-timing, and sense-amplifier vocabulary."
    },
    {
      "label": "Grossar et al. SRAM read stability and write-ability",
      "url": "https://lirias.kuleuven.be/retrieve/109654",
      "note": "Public paper used for read-stability, write-ability, SNM, and N-curve vocabulary."
    },
    {
      "label": "NVIDIA reverse write assist and SRAM VMIN paper",
      "url": "https://research.nvidia.com/sites/default/files/pubs/2014-03_A-Reverse-Write/ISQED14.pdf",
      "note": "Public paper used to anchor assist, reverse assist, VMIN, guardband, and canary vocabulary."
    },
    {
      "label": "CS61C average memory access time notes",
      "url": "https://notes.cs61c.org/content/caches-intro/amat/",
      "note": "Public course note used for hit time, miss rate, miss penalty, and AMAT vocabulary."
    }
  ]
}
