datasheet2spice

Traceable datasheet-to-SPICE model generation for power MOSFETs and diodes, with validation benchmarks.

View the Project on GitHub lisiqi1983/datasheet2spice

Device Schema

The project file is JSON. DeviceProject remains the backward-compatible class name. ComponentProject is an alias used by the broader roadmap, where the same envelope can represent MOSFETs, diodes, IGBTs, BJTs, op amps, and future component families.

Top-level fields:

The schema is intentionally permissive in v1.0 so new devices can be supported without migrations. Component profiles define stricter family-specific expectations.

Datasheets that contain several related orderable parts can expose device.series_parts in each generated project. Extraction APIs also return a separate series object and variant_projects list so the UI can require an explicit user choice when the uploaded filename does not identify a default part.

Component Envelope

New projects include:

{
  "component": {
    "family": "mosfet",
    "profile": "mosfet.power"
  }
}

The component.profile value selects the extraction, fitting, validation, and model-generation expectations for that device family. Older project files without this envelope still load.

Minimum Built-In Emitter Inputs

The built-in vdmos-static-fast and abm-basic MOSFET emitters can produce starter models when these fields are present:

The values may be datasheet typical values, conservative assumptions, or lab fits, but each source should be recorded in provenance.

The built-in diode-basic and diode-abm-dynamic emitters use the diode.power profile and these fields when available:

Provenance

Every value extracted from a datasheet should eventually record:

The built-in import-capacitance-csv command appends a provenance item with kind: digitized_capacitance_csv so generated models can be traced back to the curve source.

Capacitance Curves

dynamic.capacitance uses this v1.0 shape:

{
  "vds_v": [0.0, 100.0],
  "ciss_pf": [1000.0, 820.0],
  "coss_pf": [900.0, 240.0],
  "crss_pf": [300.0, 35.0]
}

Values are stored in volts and picofarads because that matches most datasheet plots and SPICE starter tables.

Example

See ../examples/demo_sic_mosfet/device.json.