SPI netlist files for all 10 experiments using AMI C5 (0.5µm) BSIM3 models in Electric VLSI + LTSpice.
- VDD: 5V
- Min L (drawn): 2 → 0.6µm actual
- Min W (drawn): 10 → 3µm actual
- Model: BSIM3 Level 8
| # | Experiment | Status |
|---|---|---|
| 1 | CMOS Inverter Schematic | Done |
| 2 | CMOS Inverter Layout | Done |
| 3 | 2-input NAND Schematic | Done |
| 4 | 2-input NAND Layout | Done |
| 5 | 2-input NOR Schematic | Done |
| 6 | 2-input NOR Layout | Done |
| 7 | Propagation Delay Measurement | Coming Soon |
| 8 | Power Dissipation Measurement | Coming Soon |
| 9 | Id-Vg Characteristics | Coming Soon |
| 10 | Id-Vd Characteristics | Coming Soon |
C5_models.txt— BSIM3 model file (copy-paste into your SPI files)- Each experiment folder contains the
.spinetlist file ready for LTSpice
- Install Java JDK 17+ — download from Oracle
- Install LTSpice — download from Analog Devices
- Click Code → Download ZIP on this repo, or download individual
.spifiles - Download
C5_models.txtfrom this repo - Keep all files in one folder (e.g.,
CMOS_Lab/)
- Open LTSpice
- Go to File → Open
- Navigate to the experiment folder
- Change file type dropdown from
Symbo (*.asc)to Netlist (.spi;.net;*.cir) - Select the
.spifile (e.g.,inv_schematic.spi) - Click Open
If the SPI file doesn't include C5 models, add them manually:
- Open the
.spifile in Notepad - Delete everything between
.OPTIONSand.MODEL DIFFCAP(all Electric-generated models) - Delete
.GLOBAL gnd vdd - Open
C5_models.txt, copy the entire content - Paste it just before
.ENDin the SPI file - Save the file
If the SPI file doesn't have voltage sources, add them before .END:
Vdd vdd gnd 5
VA A gnd PULSE(0 5 0 10p 10p 10n 20n)
.tran 60ns
Vdd— 5V DC supplyVA— Square wave input (0→5V, 20ns period).tran 60ns— Simulate for 60 nanoseconds
| Error | Fix |
|---|---|
More than one analysis specified |
Remove duplicate .tran lines — keep only one |
Undefined node |
Check node names match between circuit and voltage sources |
TRANS error |
Change to TRAN (correct spelling) |
| Model mismatch | Make sure model names in circuit (NMOS/PMOS) match .MODEL names in C5 file |
- Click Run (running man icon) in LTSpice
- A blank waveform window opens
- Click on a wire in the schematic to add a trace (e.g., input
Aor outputY) - View waveforms — verify the circuit works
- Propagation Delay: Use cursor to measure time between 50% input and 50% output
- Power: Plot
V(vdd)*I(Vdd)in the waveform window - Id-Vg / Id-Vd: Use
.DCsweep commands in the SPI file
* Title
M1 Y A gnd gnd NMOS L=0.6U W=3U
M2 Y A vdd vdd PMOS L=0.6U W=6U
Vdd vdd gnd 5
VA A gnd PULSE(0 5 0 10p 10p 10n 20n)
.tran 60ns
* C5 BSIM3 Models
.MODEL NMOS NMOS (LEVEL=8 ...)
.MODEL PMOS PMOS (LEVEL=8 ...)
.END
- Electric VLSI — Schematic & Layout editor
- LTSpice — Circuit simulation
- CMOS EDU — C5 process models
Full video tutorial coming soon on YouTube.