Transistor characterization
The transistor characterization consists of 2 main steps: characterization and query.
Creating the characterization database
This step characterizes a fixed sized transistor in 3 steps:
DC sweep: Run a DC sweep on a diode connected transistor to find
vgs_minandvgs_maxwhere the drain current is within some specified rangeibias_minandibias_max. This is essentially finding thevgsrange when the transistor is “on”.s parameter sweep: Run a multidimensional SP sweep across
vgs,vds,vbsto compute the small signal parameters likegm, various parasitic caps (cgg,cgs,cgd, etc).noise sweep: This estimates the thermal noise factor
gammafrom the total integrated noise. This is an approximation, and is valid only if the min frequency of the noise integration is above the frequency corner for flicker noise.
$ ./meas_cell.sh data/bag3_testbenches/specs_mos_char/nch_*.yaml
$ ./meas_cell.sh data/bag3_testbenches/specs_mos_char/pch_*.yaml
Run with -x to characterize the extracted transistor instead of schematic only.
At the end of the characterization, a database is created in the specified root_dir.
Querying the characterization database
This step queries the small signal parameters per finger of the pre-characterized transistor at the desired bias point
$ ./run_bag.sh bag3_testbenches/run_scripts/test_mos_char.py data/bag3_testbenches/specs_mos_char/test_char.yaml