⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jfetdist.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
📖 第 1 页 / 共 2 页
字号:
		temp = D1nF12(here->ggd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1h2x - r1h2y,						i1h2x - i1h2y);		itemp = D1iF12(here->ggd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1h2x - r1h2y,						i1h2x - i1h2y);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) += itemp;		/* ggd over */		/* loading capgs term */		temp = -ckt->CKTomega *				D1iF12(here->capgs2,						r1h1x,						i1h1x,						r1h2x,						i1h2x);		itemp = ckt->CKTomega *				D1nF12(here->capgs2,						r1h1x,						i1h1x,						r1h2x,						i1h2x);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		/* capgs over */		/* loading capgd term */		temp = -ckt->CKTomega *				D1iF12(here->capgd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1h2x - r1h2y,						i1h2x - i1h2y);		itemp = ckt->CKTomega *				D1nF12(here->capgd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1h2x - r1h2y,						i1h2x - i1h2y);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) += itemp;		/* capgd over */	/* all done */      break;    case D_F1MF2:	/* x = vgs, y = vds */	    /* getting first order (linear) Volterra kernel */	    r1h1x = *(job->r1H1ptr + (here->JFETgateNode)) -			*(job->r1H1ptr + (here->JFETsourcePrimeNode));	    i1h1x = *(job->i1H1ptr + (here->JFETgateNode)) -			*(job->i1H1ptr + (here->JFETsourcePrimeNode));	    r1h1y = *(job->r1H1ptr + (here->JFETdrainPrimeNode)) -			*(job->r1H1ptr + (here->JFETsourcePrimeNode));	    i1h1y = *(job->i1H1ptr + (here->JFETdrainPrimeNode)) -			*(job->i1H1ptr + (here->JFETsourcePrimeNode));	    r1hm2x = *(job->r1H2ptr + (here->JFETgateNode)) -		*(job->r1H2ptr + (here->JFETsourcePrimeNode));	    i1hm2x = -(*(job->i1H2ptr + (here->JFETgateNode)) -		*(job->i1H2ptr + (here->JFETsourcePrimeNode)));	    r1hm2y = *(job->r1H2ptr + (here->JFETdrainPrimeNode)) -		*(job->r1H2ptr + (here->JFETsourcePrimeNode));	i1hm2y = -(*(job->i1H2ptr + (here->JFETdrainPrimeNode)) -		*(job->i1H2ptr + (here->JFETsourcePrimeNode)));	    /* loading starts here */	    /* loading cdrain term  */	    temp = DFnF12(here->cdr_x2,					here->cdr_y2,					0.0,					here->cdr_xy,					0.0,					0.0,					r1h1x,					i1h1x,					r1h1y,					i1h1y,					0.0,					0.0,					r1hm2x,					i1hm2x,					r1hm2y,					i1hm2y,					0.0,					0.0);	    itemp = DFiF12(here->cdr_x2,					here->cdr_y2,					0.0,					here->cdr_xy,					0.0,					0.0,					r1h1x,					i1h1x,					r1h1y,					i1h1y,					0.0,					0.0,					r1hm2x,					i1hm2x,					r1hm2y,					i1hm2y,					0.0,					0.0);	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		    /* cdrain term over */		/* loading ggs term */		temp = D1nF12(here->ggs2,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x);		itemp = D1iF12(here->ggs2,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		/* ggs over */		/* loading ggd term */		temp = D1nF12(here->ggd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y);		itemp = D1iF12(here->ggd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) += itemp;		/* ggd over */		/* loading capgs term */		temp = -ckt->CKTomega *				D1iF12(here->capgs2,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x);		itemp = ckt->CKTomega *				D1nF12(here->capgs2,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		/* capgs over */		/* loading capgd term */		temp = -ckt->CKTomega *				D1iF12(here->capgd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y);		itemp = ckt->CKTomega *				D1nF12(here->capgd2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) += itemp;		/* capgd over */	/* all done */      break;    case D_2F1MF2:	/* x = vgs, y = vds */	    /* getting first order (linear) Volterra kernel */	    r1h1x = *(job->r1H1ptr + (here->JFETgateNode)) -			*(job->r1H1ptr + (here->JFETsourcePrimeNode));	    i1h1x = *(job->i1H1ptr + (here->JFETgateNode)) -			*(job->i1H1ptr + (here->JFETsourcePrimeNode));	    r1h1y = *(job->r1H1ptr + (here->JFETdrainPrimeNode)) -			*(job->r1H1ptr + (here->JFETsourcePrimeNode));	    i1h1y = *(job->i1H1ptr + (here->JFETdrainPrimeNode)) -			*(job->i1H1ptr + (here->JFETsourcePrimeNode));	  r2h11x = *(job->r2H11ptr + (here->JFETgateNode)) -		*(job->r2H11ptr + (here->JFETsourcePrimeNode));	  i2h11x = *(job->i2H11ptr + (here->JFETgateNode)) -		*(job->i2H11ptr + (here->JFETsourcePrimeNode));	  r2h11y = *(job->r2H11ptr + (here->JFETdrainPrimeNode)) -		*(job->r2H11ptr + (here->JFETsourcePrimeNode));	  i2h11y = *(job->i2H11ptr + (here->JFETdrainPrimeNode)) -		*(job->i2H11ptr + (here->JFETsourcePrimeNode));    r1hm2x = *(job->r1H2ptr + (here->JFETgateNode)) -		*(job->r1H2ptr + (here->JFETsourcePrimeNode));   i1hm2x = -(*(job->i1H2ptr + (here->JFETgateNode)) -	*(job->i1H2ptr + (here->JFETsourcePrimeNode)));   r1hm2y = *(job->r1H2ptr + (here->JFETdrainPrimeNode)) -		*(job->r1H2ptr + (here->JFETsourcePrimeNode));i1hm2y = -(*(job->i1H2ptr + (here->JFETdrainPrimeNode)) -		*(job->i1H2ptr + (here->JFETsourcePrimeNode)));  r2h1m2x = *(job->r2H1m2ptr + (here->JFETgateNode)) -	*(job->r2H1m2ptr + (here->JFETsourcePrimeNode));  i2h1m2x = *(job->i2H1m2ptr + (here->JFETgateNode)) -	*(job->i2H1m2ptr + (here->JFETsourcePrimeNode));  r2h1m2y = *(job->r2H1m2ptr + (here->JFETdrainPrimeNode)) -	*(job->r2H1m2ptr + (here->JFETsourcePrimeNode));i2h1m2y = *(job->i2H1m2ptr + (here->JFETdrainPrimeNode))	- *(job->i2H1m2ptr + (here->JFETsourcePrimeNode));	    /* loading starts here */	    /* loading cdrain term  */pass.cxx = here->cdr_x2;pass.cyy = here->cdr_y2;pass.czz = 0.0;pass.cxy = here->cdr_xy;pass.cyz = 0.0;pass.cxz = 0.0;pass.cxxx = here->cdr_x3;pass.cyyy = here->cdr_y3;pass.czzz = 0.0;pass.cxxy = here->cdr_x2y;pass.cxxz = 0.0;pass.cxyy = here->cdr_xy2;pass.cyyz = 0.0;pass.cxzz = 0.0;pass.cyzz = 0.0;pass.cxyz = 0.0;pass.r1h1x = r1h1x;pass.i1h1x = i1h1x;pass.r1h1y = r1h1y;pass.i1h1y = i1h1y;pass.r1h1z = 0.0;pass.i1h1z = 0.0;pass.r1h2x = r1hm2x;pass.i1h2x = i1hm2x;pass.r1h2y = r1hm2y;pass.i1h2y = i1hm2y;pass.r1h2z = 0.0;pass.i1h2z = 0.0;pass.r2h11x = r2h11x;pass.i2h11x = i2h11x;pass.r2h11y = r2h11y;pass.i2h11y = i2h11y;pass.r2h11z = 0.0;pass.i2h11z = 0.0;pass.h2f1f2x = r2h1m2x;pass.ih2f1f2x = i2h1m2x;pass.h2f1f2y = r2h1m2y;pass.ih2f1f2y = i2h1m2y;pass.h2f1f2z = 0.0;pass.ih2f1f2z = 0.0;	    temp = DFn2F12(&pass);	    itemp = DFi2F12(&pass);	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		    /* cdrain term over */		/* loading ggs term */		temp = D1n2F12(here->ggs2,						here->ggs3,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x,						r2h11x,						i2h11x,						r2h1m2x,						i2h1m2x);		itemp = D1i2F12(here->ggs2,						here->ggs3,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x,						r2h11x,						i2h11x,						r2h1m2x,						i2h1m2x);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		/* ggs over */		/* loading ggd term */		temp = D1n2F12(here->ggd2,						here->ggd3,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y,						r2h11x - r2h11y,						i2h11x - i2h11y,						r2h1m2x - r2h1m2y,					i2h1m2x - i2h1m2y);		itemp = D1i2F12(here->ggd2,						here->ggd3,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y,						r2h11x - r2h11y,						i2h11x - i2h11y,						r2h1m2x - r2h1m2y,					i2h1m2x - i2h1m2y);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) += itemp;		/* ggd over */		/* loading capgs term */		temp = -ckt->CKTomega *				D1i2F12(here->capgs2,						here->capgs3,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x,						r2h11x,						i2h11x,						r2h1m2x,						i2h1m2x);		itemp = ckt->CKTomega *				D1n2F12(here->capgs2,						here->capgs3,						r1h1x,						i1h1x,						r1hm2x,						i1hm2x,						r2h11x,						i2h11x,						r2h1m2x,						i2h1m2x);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETsourcePrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETsourcePrimeNode)) += itemp;		/* capgs over */		/* loading capgd term */		temp = -ckt->CKTomega *				D1i2F12(here->capgd2,						here->capgd3,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y,						r2h11x - r2h11y,						i2h11x - i2h11y,						r2h1m2x - r2h1m2y,					i2h1m2x - i2h1m2y);		itemp = ckt->CKTomega *				D1n2F12(here->capgd2,						here->capgd3,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1hm2x - r1hm2y,						i1hm2x - i1hm2y,						r2h11x - r2h11y,						i2h11x - i2h11y,						r2h1m2x - r2h1m2y,					i2h1m2x - i2h1m2y);	    *(ckt->CKTrhs + (here->JFETgateNode)) -= temp;	    *(ckt->CKTirhs + (here->JFETgateNode)) -= itemp;	    *(ckt->CKTrhs + (here->JFETdrainPrimeNode)) += temp;	    *(ckt->CKTirhs + (here->JFETdrainPrimeNode)) += itemp;		/* capgd over */	/* all done */      break;    default:;    }  }}return(OK);}  else    return(E_BADPARM);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -