πŸ“˜ BSIM4 Analyzer Reliability


Language GitHub Pages 🌐 GitHub πŸ’»
πŸ‡ΊπŸ‡Έ English GitHub Pages EN GitHub Repo EN

Unified NMOS HCI / PMOS NBTI Reliability Analysis Framework
(NGSPICE + Python)


πŸ“Œ Overview

BSIM4 Analyzer Reliability is an integrated framework for analyzing semiconductor aging mechanisms:

The framework combines:

Key Features


πŸ“ Directory Structure

bsim4_analyzer_reliability/
β”œβ”€β”€ models/
β”‚    β”œβ”€β”€ nmos130.sp
β”‚    └── pmos130.sp
β”‚
β”œβ”€β”€ templates/
β”‚    β”œβ”€β”€ template_hci_nmos.cir
β”‚    β”œβ”€β”€ template_nmos_vgid.cir
β”‚    β”œβ”€β”€ template_nbti_pmos.cir
β”‚    β”œβ”€β”€ template_pmos_vgid.cir
β”‚
β”œβ”€β”€ run/
β”‚    β”œβ”€β”€ run_hci_nmos.py
β”‚    └── run_nbti_pmos.py
β”‚
β”œβ”€β”€ plot/
β”‚    β”œβ”€β”€ plot_hci_nmos.py
β”‚    └── plot_nbti_pmos.py
β”‚
└── results/
     β”œβ”€β”€ 90nm/
     └── 130nm/
          β”œβ”€β”€ hci_nmos/
          β”œβ”€β”€ hci_nmos_vgid/
          β”œβ”€β”€ nbti_pmos/
          └── nbti_pmos_vgid/

πŸ”§ Installation & Requirements

β–  Python Packages

numpy
pandas
matplotlib

β–  NGSPICE


πŸ”¬ Reliability Analysis Workflow

The same conceptual flow applies to both NMOS and PMOS.

t = 0
 β”œβ”€ VG–ID sweep
 β”‚     β”œβ†’ extract Vtg0 (gmmax method)
 β”‚     β””β†’ extract Vtc0 (constant-current method)
 β”œβ”€ DC extraction
 β”‚     β””β†’ Idlin0, Idsat0

t > 0  (Python degradation model)
 β”œβ”€ Ξ”Vth(t)
 β”œβ”€ Ξ”Id_rel(t)
 └─ reconstruct Vtg1, Vtc1, Idlin1, Idsat1

β†’ Save CSV results
β†’ Generate degradation plots
β†’ VG–ID overlay plots

πŸŸ₯ NMOS HCI (Hot-Carrier Injection)

β–Ά Stress Bias Conditions

| Node   | Voltage      |
|--------|--------------|
| Drain  | High Vd (e.g., 1.2 V) |
| Gate   | Stress voltage |
| Source | 0 V |
| Bulk   | 0 V |

β–Ά Extracted Quantities

β–Ά Run HCI Simulation

python run/run_hci_nmos.py

🟦 PMOS NBTI (Negative BTI)

β–Ά Stress Bias Conditions

| Node   | Voltage |
|--------|---------|
| Source | +1.2 V |
| Bulk   | +1.2 V |
| Drain  | 0 V |
| Gate   | 0 β†’ βˆ’1.2 V |

β–Ά VG–ID Output Specification (4 columns, fixed)

0: Vg
1: Vs
2: Vgs = V(g) βˆ’ V(s)
3: Id = abs(i(Vd))

Python side:

Vgs = arr[:, 2]
Id  = arr[:, 3]

β–Ά NBTI Degradation Model (PMOS)

β–  Threshold Voltage Shift

dVth = A_vth * (t ** p_vth)
Vtg1 = Vtg0 - dVth
Vtc1 = Vtc0 - dVth

β–  Drive Current Degradation

dIdrel = -A_id * (t ** p_id)
Idlin1 = Idlin0 * (1 + dIdrel)
Idsat1 = Idsat0 * (1 + dIdrel)

β–Ά Run NBTI Simulation

python run/run_nbti_pmos.py

πŸ“Š Output Files

The framework creates structured result sets for each node (90nm / 130nm).

β–  NMOS HCI

results/<node>/hci_nmos/
    dIdlin_vs_time.png
    dIdsat_vs_time.png
    dVtg_vs_time.png
    dVtc_vs_time.png
    hci_summary.csv

β–  PMOS NBTI

results/<node>/nbti_pmos/
    dIdlin_vs_time.png
    dIdsat_vs_time.png
    dVtg_vs_time.png
    dVtc_vs_time.png
    nbti_pmos_summary.csv

β–  VG–ID Overlays

<device>_vgid/
    vgid_all_linear.png
    vgid_all_log.png

🧠 Internal Degradation Models

β–  NMOS HCI

Ξ”Vth = A_vth * t^p
Ξ”Id  = -A_id * t^p

β–  PMOS NBTI

Vtg(t), Vtc(t) = Vth0 βˆ’ Ξ”Vth
Id(t) = Id(0) * (1 + Ξ”Id)

🧩 Extensible Architecture

Easily extendable to:

πŸ“Ž Reliability Analysis β€” Reference Figures


β–  NMOS HCI : Vg–Id Degradation (Linear Scale)


β–  NMOS HCI : Ξ”Vtg vs Stress Time (gmmax Method)


β–  PMOS NBTI : Vg–Id Degradation (Linear Scale)


β–  PMOS NBTI : Ξ”Vtg vs Stress Time


πŸ“„ Hybrid License

Item License Description
Source Code MIT License Free to use, modify, redistribute
Text Materials CC BY 4.0 Attribution required
Figures / Plots / Generated Data CC BY-NC 4.0 Non-commercial use only
External References Original license applies Cite properly

πŸ‘€ Author

πŸ“Œ Item Details
Name Shinichi Samizo
GitHub GitHub