{
  "status": "passed",
  "simulator": "Cadence Spectre 18.1.0.077",
  "bridge_version": "0.8.0",
  "bridge_commit": "74649fbc28af14f1a6853ae8586b43cdba3747a1",
  "source_book": "Analog Design Essentials (Willy Sansen).pdf",
  "scope": "Representative models across 20 derivation groups, not every original slide circuit. Explicit-element linear simulation plus educational MOS1 transistor validation; no foundry PDK or layout parasitics.",
  "linear_ac_tests": 32,
  "mos_ac_tests": 7,
  "pz_tests": 5,
  "transient_tests": 3,
  "total_checks": 47,
  "groups": 20,
  "MOS_devices": 10,
  "thresholds": {
    "ac_max_pointwise_complex_relative_error": 2e-05,
    "pz_relative_root_error": 2e-05,
    "transient_max_absolute_normalized_output_error": 2e-05,
    "MOS_region": "region==2 and abs(Vds)>abs(Vdsat)"
  },
  "max_linear_ac_error": 1.5919512964524337e-05,
  "max_mos_ac_error": 4.691264921655804e-06,
  "max_pz_error": 1.928360493889091e-06,
  "max_transient_error": 4.943560928394319e-06,
  "all_MOS_saturation_passed": true,
  "runs": [
    {
      "name": "doublet_transient",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/doublet_transient.scs",
      "deck_sha256": "532a1eba94dc4cf409441c3aa4e2fc76a06d5cc7117f20a14afe439d9070111c",
      "spectre_log": "runs/doublet_transient/spectre.out",
      "metadata": "runs/doublet_transient/result.json"
    },
    {
      "name": "gmid_characterization",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/gmid_characterization.scs",
      "deck_sha256": "ab368a8d29d34e0330e83a682fcd5ca86b927e3260d96d7856a4f6e4aad7c09e",
      "spectre_log": "runs/gmid_characterization/spectre.out",
      "metadata": "runs/gmid_characterization/result.json"
    },
    {
      "name": "linear_suite",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/linear_suite.scs",
      "deck_sha256": "d7d7d475e5cac673ecaecf681d6e6f898ffc9fe8ef1cc50496660161edacdde5",
      "spectre_log": "runs/linear_suite/spectre.out",
      "metadata": "runs/linear_suite/result.json"
    },
    {
      "name": "mos_validation",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/mos_validation.scs",
      "deck_sha256": "721b0c6907b647d466b2d9fc92638015c4e694513b76f89824ed44dc7f2262a4",
      "spectre_log": "runs/mos_validation/spectre.out",
      "metadata": "runs/mos_validation/result.json"
    },
    {
      "name": "pz_follower_cancel",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/pz_follower_cancel.scs",
      "deck_sha256": "197c64fe68ef86c060964f41dfc2a08ec415730ce97d0e3a73936322b369f836",
      "spectre_log": "runs/pz_follower_cancel/spectre.out",
      "metadata": "runs/pz_follower_cancel/result.json"
    },
    {
      "name": "pz_follower_center",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/pz_follower_center.scs",
      "deck_sha256": "7648a1829e3d0433258ee35eb6c89408b6d73c0842b637bcf08479a97f121522",
      "spectre_log": "runs/pz_follower_center/spectre.out",
      "metadata": "runs/pz_follower_center/result.json"
    },
    {
      "name": "pz_gainboost_slow",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/pz_gainboost_slow.scs",
      "deck_sha256": "a6c0dbd63b43a9a86992a19e85df234457c5131297817fae259cc9a0be076dcd",
      "spectre_log": "runs/pz_gainboost_slow/spectre.out",
      "metadata": "runs/pz_gainboost_slow/result.json"
    },
    {
      "name": "pz_miller",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/pz_miller.scs",
      "deck_sha256": "caa8fe7e874d2f323d6e522525a5a17559468584137f02679e94dd5d193c51d9",
      "spectre_log": "runs/pz_miller/spectre.out",
      "metadata": "runs/pz_miller/result.json"
    },
    {
      "name": "pz_two_stage",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/pz_two_stage.scs",
      "deck_sha256": "31c5844ba24310438111bd1f7c1ccccd3bf567b6030b0b8ffbcf148de2d3ebc4",
      "spectre_log": "runs/pz_two_stage/spectre.out",
      "metadata": "runs/pz_two_stage/result.json"
    },
    {
      "name": "smoke",
      "ok": true,
      "returncode": 0,
      "deck": "simulations/ch02/netlists/smoke.scs",
      "deck_sha256": "a878897d822fe50a8b708376a08ce3d6ec740a61225bd37c3027d6a84bd1fd8f",
      "spectre_log": "runs/smoke/spectre.out",
      "metadata": "runs/smoke/result.json"
    }
  ],
  "theory_source_hashes": {
    "11-active-inductors.md": "eb520e28942f6f553b6ce3c0dee4b1eaea6ec7816f622d2771b18a6107e7ff88",
    "19-doublet-settling.md": "1595ba37bc1df74e3fef5ba36786f8146c49961dff6dccf1496e2941a76d92ee",
    "10-emitter-hf.md": "47d6968de2ea4c980adb659402b25e85c031b07c15c3b2f7e6dfba6b7ed233a5",
    "18-gain-boosting.md": "a42237c7567e6bed4236a0cdf7519efe94029317021b9b38de1f3983b34d4070",
    "07-inverter-ac.md": "6b3c7c48f4710c97652e889a11e8bb3100a37779734116959b92e6d3923dc1a4",
    "06-inverter-dc.md": "4c880d953deade874d8d024a71b834d57b3e386d687ace1165313cb910a201ee",
    "04-degeneration.md": "9e783ad2d66574f728dbf25e76e333176f08daf176db7028aa8328f7981f685b",
    "09-followers-hf.md": "1d1a0aeb20a48961baa54a4339bad35773d3b0a1c49e581d00ba1a1ffc0fcf94",
    "05-diode-loads.md": "336e6de7dc029d8c0a9069e8b5c8dd147a483686a833bac13ed9adcec6bcf4a8",
    "03-miller.md": "d3197bf2720734afbb510e730e8c9d0d14abebd8be880e1064ae24ac317b9f1c",
    "12-common-gate.md": "6713d06490d74185727211f3b93b4a313718189eef58785f169e34dab3187704",
    "20-port-summary.md": "48b51836130d9ff4cdb7a9e348a965044ad92b90ce8f81a3e120f25b240ade06",
    "02-single-pole.md": "c31aa87811d9ee83b6c8c4dd6ec7d1f0abe5ee69f62827f6c6b84d5163b9b67e",
    "16-telescopic-folded.md": "7c8a8904dea0fdb29dc106d5f4e73a036904e74b6cbd355d9c043b89bb124cc4",
    "13-cascode.md": "3b2163c2c7b2eb0b64bbe0b639f4c84d7a3e27a12be885908cee32b09a6d6275",
    "01-intrinsic-gain.md": "c1801145669e16609d7739ec38f50bcd896d4d8c52c1af178f35ea6784daff16",
    "08-followers-dc.md": "2d5f47bec12f0aafe4e68b5bfbb9e20ce1841601189a453825dd69e0ab40b8eb",
    "14-cascode-miller.md": "34db92e3c5e9c730e47fd3076efba6c95df2d8289000339140706001691172a9",
    "17-cascade.md": "6fe29f1f79b1318a25d7907c83a8f33c1713c71226c7f9c63f9e415a462be718",
    "00-conventions.md": "c82ad2f80f618cc5c0e6238eecfc979cc90b9d6e921d8e91f90eb44baf3957bf",
    "15-cascode-middle-cap.md": "a7c73a59500eb8b41fcfd5f5a7a44c1db37d3a1d7e57f95c84784708cab7376d"
  }
}