from pygmid import Lookup as lk
import numpy as np
= lk('sg13_lv_nmos.mat')
lv_nmos = lk('sg13_lv_pmos.mat') lv_pmos
Copyright 2024 Boris Murmann and Harald Pretl
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
In [1]:
In [2]:
# lookup a specific value
# list of parameters: VGS, VDS, VSB, L, W, NFING, ID, VT, GM, GMB, GDS, CGG, CGB, CGD, CGS, CDD, CSS
= lv_nmos.lookup('GM', L=0.13, VGS=0.9, VDS=0.75, VSB=0)
gm print("gm =", round(float(gm/1e-3),3), 'mS')
id = lv_nmos.lookup('ID', L=0.13, VGS=0.9, VDS=0.75, VSB=0)
print("Id =", round(float(id/1e-3),3), "mA")
gm = 3.581 mS
Id = 0.895 mA
In [3]:
# query below uses minimum L, VDS=max(vgs)/2=0.9 and VSB=0 as defaults since they not specified
= lv_nmos.lookup('GM', VGS=0.9)
gm print("gm =", round(float(gm/1e-3),4), 'mS')
gm = 3.581 mS
In [4]:
# similar to above, but now we are looking up a ratio against another ratio
= lv_nmos.lookup('GM_CGG', GM_ID=15)
gm_cgg = gm_cgg/2/np.pi
ft print("ft =", round(float(ft/1e9), 1), "GHz")
ft = 9.9 GHz