started noise implementation (added just a template!)

This commit is contained in:
r29173 2007-07-05 09:45:33 +00:00
parent b2598cbe58
commit fdb2fa9424
1 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
$Id$
$Log$
Revision 1.1 2007-07-05 09:45:33 r29173
started noise implementation (added just a template!)
Revision 1.2 2006/03/05 09:38:41 pnenzi
Updated version to 2.2.0
Revision 1.1 2006/03/01 14:30:24 pnenzi
Added mdel, del and dest functions to interface.
-->
<!--
Written by Laurent Lemaitre - r29173@users.sourceforge.net
Documentation:
http://sourceforge.net/docman/display_doc.php?docid=18993&group_id=84289
Target Interface: ngspice
Supported by adms-1.x.x
This file is used by adms - http://sourceforge.net/projects/mot-adms.
adms is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
adms is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with adms; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
<!DOCTYPE admst SYSTEM "admst.dtd">
<admst version="2.2.7" xmlns:admst="http://mot-adms.sourceforge.net/xml-files/admst">
<admst:template match="code">
<admst:variable name="module" select="%(attribute[name='ngspicename']/value)"/>
#include &quot;ngspice.h&quot;
#include &quot;$(module)defs.h&quot;
#include &quot;cktdefs.h&quot;
#include &quot;iferrmsg.h&quot;
#include &quot;noisedef.h&quot;
#include &quot;suffix.h&quot;
extern void NevalSrc();
extern double Nintegrate();
static char* $(module)nNames []= {
<admst:text select="contribution[flickernoise='yes']" format="&quot;&quot;,"/>
<admst:text select="contribution[whitenoise='yes']" format="&quot;&quot;,"/>
<admst:text format="&quot;&quot;"/>
};
int
$(module)noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data, double *OnDens)
{
$(module)model *firstModel = ($(module)model *) genmodel;
$(module)model *model;
$(module)instance *inst;
for (model=firstModel; model != NULL; model=model-&gt;$(module)nextModel)
{
for (inst=model-&gt;$(module)instances; inst != NULL; inst=inst->$(module)nextInstance)
{
if (inst-&gt;$(module)owner != ARCHme) continue;
switch (operation)
{
case N_OPEN:
break;
case N_CALC:
switch (mode)
{
case N_DENS:
break;
case INT_NOIZ:
break;
}
break;
case N_CLOSE:
return (OK);
break;
}
}
}
return(OK);
}
</admst:template>
<admst:for-each select="/module">
<admst:open file="%(attribute[name='ngspicename']/value)noise.c">
<admst:text format="/***\n*** Interface: %(/simulator/package_string)\n"/>
<admst:text format=" *** created by: %(/simulator/fullname) - %(/simulator/currentdate) ***/\n"/>
<admst:apply-templates select="." match="code"/>
</admst:open>
<admst:message format="%(attribute[name='ngspicename']/value)noise.c: file created\n"/>
</admst:for-each>
</admst>