QG=outV[-2], QS=outV[-1], Power=power, Temp=self.temp, gm=jac[0, 1], gmbs=-jac[0, 2] - jac[0, 1] - jac[0, 0], gds=gds, kSfliker=self._kSfliker, ) ) return opDict def get_noise(self, f): """ Return noise spectral density at frequency f Requires a previous call to get_OP() """ s = self._Sthermal + self._kSflicker / pow(f, self.af) return np.array([s]) # Use AD for eval and deriv function eval = ad.eval eval_and_deriv = ad.eval_and_deriv # Define extrinsic model EKV = mosExt.extrinsic_mos(IntEKV) devList = [IntEKV, EKV]
ISB=outV[2], QD=outV[-3], QG=outV[-2], QS=outV[-1], Power=power, Temp=self.temp, gm=jac[0, 1], gmbs=-jac[0, 2] - jac[0, 1] - jac[0, 0], gds=gds, kSfliker=self._kSfliker)) return opDict def get_noise(self, f): """ Return noise spectral density at frequency f Requires a previous call to get_OP() """ s = self._Sthermal + self._kSflicker / pow(f, self.af) return np.array([s]) # Use AD for eval and deriv function eval = ad.eval eval_and_deriv = ad.eval_and_deriv # Define extrinsic model EKV = mosExt.extrinsic_mos(IntEKV) devList = [IntEKV, EKV]
pout = vds*currV[0] + vPort[0] * currV[1] + vPort[2] * currV[2] return pout def get_OP(self, vPort): """ Calculates operating point information For now it is quite incomplete Input: vPort = [vdb , vgb , vsb] Output: dictionary with OP variables (This needs more work) """ (outV, jac) = self.eval_and_deriv(vPort) #opV = self.get_op_vars(vPort) self.OP = dict( temp = self.temp, VD = vPort[0], VG = vPort[1], VS = vPort[2], IDS = outV[0] ) return self.OP # Define extrinsic model ExtBSIM3 = mosExt.extrinsic_mos(BSIM3) devList = [BSIM3, ExtBSIM3]
# pout = vds*ids + vdb*idb + vsb*isb pout = vds*currV[0] + vPort[0] * currV[1] + vPort[2] * currV[2] return pout def get_OP(self, vPort): """ Calculates operating point information For now it is quite incomplete Input: vPort = [vdb , vgb , vsb] Output: dictionary with OP variables (This needs more work) """ outV = self.eval(vPort) opDict = dict( temp = self.temp, VD = vPort[0], VG = vPort[1], VS = vPort[2], IDS = outV[0] ) return opDict # Define extrinsic model ExtBSIM3 = mosExt.extrinsic_mos(BSIM3) devList = [BSIM3, ExtBSIM3]