Beispiel #1
0
                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]
Beispiel #2
0
                 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]
Beispiel #3
0
        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]
Beispiel #4
0
        # 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]