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

📄 mos1dist.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
📖 第 1 页 / 共 3 页
字号:
						r2h11x - r2h11y,						i2h11x - i2h11y);		itemp = ckt->CKTomega *			    D1n3F1(here->capgb2,						here->capgb3,						r1h1x - r1h1y,						i1h1x - i1h1y,						r2h11x - r2h11y,						i2h11x - i2h11y);	    *(ckt->CKTrhs + (here->MOS1gNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1gNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1bNode)) += temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) += itemp;		/* capgb over */		/* loading capbs term */		temp = -ckt->CKTomega *			    D1i3F1(here->capbs2,						here->capbs3,						r1h1y,						i1h1y,						r2h11y,						i2h11y);		itemp = ckt->CKTomega *			    D1n3F1(here->capbs2,						here->capbs3,						r1h1y,						i1h1y,						r2h11y,						i2h11y);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		/* capbs over */		/* loading capbd term */		temp = -ckt->CKTomega *			    D1i3F1(here->capbd2,						here->capbd3,						r1h1y - r1h1z,						i1h1y - i1h1z,						r2h11y - r2h11z,						i2h11y - i2h11z);		itemp = ckt->CKTomega *			    D1n3F1(here->capbd2,						here->capbd3,						r1h1y - r1h1z,						i1h1y - i1h1z,						r2h11y - r2h11z,						i2h11y - i2h11z);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) += itemp;		/* capbd over */	/* all done */      break;    case D_F1PF2:	/* x = vgs, y = vbs z = vds */	    /* getting first order (linear) Volterra kernel */	    r1h1x = *(job->r1H1ptr + (here->MOS1gNode)) -			*(job->r1H1ptr + (here->MOS1sNodePrime));	    i1h1x = *(job->i1H1ptr + (here->MOS1gNode)) -			*(job->i1H1ptr + (here->MOS1sNodePrime));	    r1h1y = *(job->r1H1ptr + (here->MOS1bNode)) -			*(job->r1H1ptr + (here->MOS1sNodePrime));	    i1h1y = *(job->i1H1ptr + (here->MOS1bNode)) -			*(job->i1H1ptr + (here->MOS1sNodePrime));	    r1h1z = *(job->r1H1ptr + (here->MOS1dNodePrime)) -			*(job->r1H1ptr + (here->MOS1sNodePrime));	    i1h1z = *(job->i1H1ptr + (here->MOS1dNodePrime)) -			*(job->i1H1ptr + (here->MOS1sNodePrime));	    r1h2x = *(job->r1H2ptr + (here->MOS1gNode)) -			*(job->r1H2ptr + (here->MOS1sNodePrime));	    i1h2x = *(job->i1H2ptr + (here->MOS1gNode)) -			*(job->i1H2ptr + (here->MOS1sNodePrime));	    r1h2y = *(job->r1H2ptr + (here->MOS1bNode)) -			*(job->r1H2ptr + (here->MOS1sNodePrime));	    i1h2y = *(job->i1H2ptr + (here->MOS1bNode)) -			*(job->i1H2ptr + (here->MOS1sNodePrime));	    r1h2z = *(job->r1H2ptr + (here->MOS1dNodePrime)) -			*(job->r1H2ptr + (here->MOS1sNodePrime));	    i1h2z = *(job->i1H2ptr + (here->MOS1dNodePrime)) -			*(job->i1H2ptr + (here->MOS1sNodePrime));	    /* loading starts here */	    /* loading cdrain term  */	    temp = DFnF12(here->cdr_x2,					here->cdr_y2,					here->cdr_z2,					here->cdr_xy,					here->cdr_yz,					here->cdr_xz,					r1h1x,					i1h1x,					r1h1y,					i1h1y,					r1h1z,					i1h1z,					r1h2x,					i1h2x,					r1h2y,					i1h2y,					r1h2z,					i1h2z);	    itemp = DFiF12(here->cdr_x2,					here->cdr_y2,					here->cdr_z2,					here->cdr_xy,					here->cdr_yz,					here->cdr_xz,					r1h1x,					i1h1x,					r1h1y,					i1h1y,					r1h1z,					i1h1z,					r1h2x,					i1h2x,					r1h2y,					i1h2y,					r1h2z,					i1h2z);	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) -= temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		    /* cdrain term over */		/* loading gbs term */		temp = D1nF12(here->gbs2,						r1h1y,						i1h1y,						r1h2y,						i1h2y);		itemp = D1iF12(here->gbs2,						r1h1y,						i1h1y,						r1h2y,						i1h2y);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		/* gbs over */		/* loading gbd term */		temp = D1nF12(here->gbd2,						r1h1y - r1h1z,						i1h1y - i1h1z,						r1h2y - r1h2z,						i1h2y - i1h2z);		itemp = D1iF12(here->gbd2,						r1h1y - r1h1z,						i1h1y - i1h1z,						r1h2y - r1h2z,						i1h2y - i1h2z);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) += itemp;		/* gbd 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->MOS1gNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1gNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		/* capgs over */		/* loading capgd term */		temp = -ckt->CKTomega *			    D1iF12(here->capgd2,						r1h1x - r1h1z,						i1h1x - i1h1z,						r1h2x - r1h2z,						i1h2x - i1h2z);		itemp = ckt->CKTomega *			    D1nF12(here->capgd2,						r1h1x - r1h1z,						i1h1x - i1h1z,						r1h2x - r1h2z,						i1h2x - i1h2z);	    *(ckt->CKTrhs + (here->MOS1gNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1gNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) += itemp;		/* capgd over */		/* loading capgb term */		temp = -ckt->CKTomega *			    D1iF12(here->capgb2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1h2x - r1h2y,						i1h2x - i1h2y);		itemp = ckt->CKTomega *			    D1nF12(here->capgb2,						r1h1x - r1h1y,						i1h1x - i1h1y,						r1h2x - r1h2y,						i1h2x - i1h2y);	    *(ckt->CKTrhs + (here->MOS1gNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1gNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1bNode)) += temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) += itemp;		/* capgb over */		/* loading capbs term */		temp = -ckt->CKTomega *			    D1iF12(here->capbs2,						r1h1y,						i1h1y,						r1h2y,						i1h2y);		itemp = ckt->CKTomega *			    D1nF12(here->capbs2,						r1h1y,						i1h1y,						r1h2y,						i1h2y);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		/* capbs over */		/* loading capbd term */		temp = -ckt->CKTomega *			    D1iF12(here->capbd2,						r1h1y - r1h1z,						i1h1y - i1h1z,						r1h2y - r1h2z,						i1h2y - i1h2z);		itemp = ckt->CKTomega *			    D1nF12(here->capbd2,						r1h1y - r1h1z,						i1h1y - i1h1z,						r1h2y - r1h2z,						i1h2y - i1h2z);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) += itemp;		/* capbd over */	/* all done */      break;    case D_F1MF2:	/* x = vgs, y = vbs z = vds */	    /* getting first order (linear) Volterra kernel */	    r1h1x = *(job->r1H1ptr + (here->MOS1gNode)) -			*(job->r1H1ptr + (here->MOS1sNodePrime));	    i1h1x = *(job->i1H1ptr + (here->MOS1gNode)) -			*(job->i1H1ptr + (here->MOS1sNodePrime));	    r1h1y = *(job->r1H1ptr + (here->MOS1bNode)) -			*(job->r1H1ptr + (here->MOS1sNodePrime));	    i1h1y = *(job->i1H1ptr + (here->MOS1bNode)) -			*(job->i1H1ptr + (here->MOS1sNodePrime));	    r1h1z = *(job->r1H1ptr + (here->MOS1dNodePrime)) -			*(job->r1H1ptr + (here->MOS1sNodePrime));	    i1h1z = *(job->i1H1ptr + (here->MOS1dNodePrime)) -			*(job->i1H1ptr + (here->MOS1sNodePrime));	    r1hm2x = *(job->r1H2ptr + (here->MOS1gNode)) -			*(job->r1H2ptr + (here->MOS1sNodePrime));	    i1hm2x = -(*(job->i1H2ptr + (here->MOS1gNode)) -			*(job->i1H2ptr + (here->MOS1sNodePrime)));	    r1hm2y = *(job->r1H2ptr + (here->MOS1bNode)) -			*(job->r1H2ptr + (here->MOS1sNodePrime));	    i1hm2y = -(*(job->i1H2ptr + (here->MOS1bNode)) -			*(job->i1H2ptr + (here->MOS1sNodePrime)));	    r1hm2z = *(job->r1H2ptr + (here->MOS1dNodePrime)) -			*(job->r1H2ptr + (here->MOS1sNodePrime));	i1hm2z = -(*(job->i1H2ptr + (here->MOS1dNodePrime)) -			*(job->i1H2ptr + (here->MOS1sNodePrime)));	    /* loading starts here */	    /* loading cdrain term  */	    temp = DFnF12(here->cdr_x2,					here->cdr_y2,					here->cdr_z2,					here->cdr_xy,					here->cdr_yz,					here->cdr_xz,					r1h1x,					i1h1x,					r1h1y,					i1h1y,					r1h1z,					i1h1z,					r1hm2x,					i1hm2x,					r1hm2y,					i1hm2y,					r1hm2z,					i1hm2z);	    itemp = DFiF12(here->cdr_x2,					here->cdr_y2,					here->cdr_z2,					here->cdr_xy,					here->cdr_yz,					here->cdr_xz,					r1h1x,					i1h1x,					r1h1y,					i1h1y,					r1h1z,					i1h1z,					r1hm2x,					i1hm2x,					r1hm2y,					i1hm2y,					r1hm2z,					i1hm2z);	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) -= temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		    /* cdrain term over */		/* loading gbs term */		temp = D1nF12(here->gbs2,						r1h1y,						i1h1y,						r1hm2y,						i1hm2y);		itemp = D1iF12(here->gbs2,						r1h1y,						i1h1y,						r1hm2y,						i1hm2y);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;		/* gbs over */		/* loading gbd term */		temp = D1nF12(here->gbd2,						r1h1y - r1h1z,						i1h1y - i1h1z,						r1hm2y - r1hm2z,						i1hm2y - i1hm2z);		itemp = D1iF12(here->gbd2,						r1h1y - r1h1z,						i1h1y - i1h1z,						r1hm2y - r1hm2z,						i1hm2y - i1hm2z);	    *(ckt->CKTrhs + (here->MOS1bNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1bNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1dNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1dNodePrime)) += itemp;		/* gbd 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->MOS1gNode)) -= temp;	    *(ckt->CKTirhs + (here->MOS1gNode)) -= itemp;	    *(ckt->CKTrhs + (here->MOS1sNodePrime)) += temp;	    *(ckt->CKTirhs + (here->MOS1sNodePrime)) += itemp;

⌨️ 快捷键说明

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