diff options
Diffstat (limited to 'Windows/spice')
357 files changed, 36229 insertions, 0 deletions
diff --git a/Windows/spice/ReleaseNotes.txt b/Windows/spice/ReleaseNotes.txt new file mode 100644 index 00000000..3b02bb95 --- /dev/null +++ b/Windows/spice/ReleaseNotes.txt @@ -0,0 +1,27 @@ +Release Notes for ngspice-26: + +- New features: + + fft command may (optionally) use fftw3 library + + add nint() rounding function + + usage of 'temper' in behavioral devices + + check for soa (safe operating area) in several device models + + library processing rewritten completely to enhance ngspice + compatibility (.lib) + + include file processing rewritten to allow nesting and various + absolute and relative path names (.inc) + + asinh, acosh, atanh functions + + shared ngspice option added: ngspice optionally compiles as + a shared object or dynamic link library + + use a hash table to massively speed up parsing the netlist + + implement a very basic .if/.else block + + implement a signed power function `pwr' for controlled sources + + implement multiplier `m' in F, G source + + apply Area Calculation Method (ACM) to the bsim3v3.3 model + + implement `tc1', `tc2' instance parameters + +- Bug fixes: + + many, many ... please see + http://sourceforge.net/p/ngspice/ngspice/ci/master/tree/ + and check the 'history' button on the upper right. + + removed memory leaks +
\ No newline at end of file diff --git a/Windows/spice/bin/libfftw3-3.dll b/Windows/spice/bin/libfftw3-3.dll Binary files differnew file mode 100644 index 00000000..a8f033a1 --- /dev/null +++ b/Windows/spice/bin/libfftw3-3.dll diff --git a/Windows/spice/bin/ngspice.exe b/Windows/spice/bin/ngspice.exe Binary files differnew file mode 100644 index 00000000..e5841140 --- /dev/null +++ b/Windows/spice/bin/ngspice.exe diff --git a/Windows/spice/bin/vcomp100.dll b/Windows/spice/bin/vcomp100.dll Binary files differnew file mode 100644 index 00000000..e23321c1 --- /dev/null +++ b/Windows/spice/bin/vcomp100.dll diff --git a/Windows/spice/doc/ANALYSES b/Windows/spice/doc/ANALYSES new file mode 100644 index 00000000..5b715be9 --- /dev/null +++ b/Windows/spice/doc/ANALYSES @@ -0,0 +1,115 @@ +12345678901234567890123456789012345678901234567890123456789012345678901234567890 + +ANALYSES +======== + +This file lists the analyses currently implemented into ngspice. + +Table of Contents + + 1 Noise analysis (NOISE) + 1.1 Small signal noise + 1.2 Transient noise + 2 Operating point analysis (OP) + 3 Operating point sweep Analysis (DC) + 4 Pole-zero analysis (PZ) + 5 Small-Signal distortion analysis (DISTO) + 6 Small Signal frequency response analysis (AC) + 7 Sensitivity analysis (SENS) + 8 Transfer function analysis (TF) + 9 Transient analysis (TRAN) + 10 Periodic steady state analysis (PSS, experimental feature) + + + +1 Noise analysis (NOISE) + + 1.1 Small signal noise + + The noise analysis does analysis device-generated noise for the given + circuit. When provided with an input source and an output port, the analysis + calculates the noise contributions of each device (and each noise generator + within the device) to the output port voltage. It also calculates the input + noise to the circuit, equivalent to the output noise referred to the + specified input source. This is done for every frequency point in a specified + range - the calculated value of the noise corresponds to the spectral density + of the circuit variable viewed as a stationary gaussian stochastic process. + + 1.2 Transient noise + + Time domain noise analysis during transient simulation is enabled by + providing voltage (and current) source options with white, 1/f and + random telegraph signal noise signals. + + +2 Operating point analysis (OP) + + The operating point analysis determines the dc operating point of the + circuit with inductors shorted and capacitors opened. + + +3 Operating point sweep Analysis (DC) + + The operating point sweep analysis determines the values of output + variables while one or two specified independent voltage or current source is + stepped over a user-specified range and the dc output variables are stored + for each sequential source value. Resistance and temperature sweep are + included. + + +4 Pole-zero analysis (PZ) + + The pole-zero analysis computes the poles and/or zeros in the small-signal + ac transfer function. The program first computes the dc operating point and + then determines the linearized, small-signal models for all the nonlinear + devices in the circuit. This circuit is then used to find the poles and zeros + of the transfer function. Unfortunately this code is (since its inception in + spice3) not free of bugs. + + +5 Small-Signal distortion analysis (DISTO) + + The distortion analysis computes steady-state harmonic and intermodulation + products for small input signal magnitudes. Not all devices are supported. + + +6 Small Signal frequency response analysis (AC) + + The ac small-signal computes the ac output variables as a function of + frequency. The program first computes the dc operating point of the circuit + and determines linearized, small-signal models for all of the nonlinear + devices in the circuit. The resultant linear circuit is then analyzed over a + user-specified range of frequencies. + + +7 Sensitivity analysis (SENS) + + Ngspice will calculate either the DC operating-point sensitivity or the AC + small-signal sensitivity of an output variable with respect to all circuit + variables, including model parameters. Spice calculates the difference in an + output variable (either a node voltage or a branch current) by perturbing + each parameter of each device independently. + + +8 Transfer function analysis (TF) + + The (small signal) transfer function analysis computes the dc small-signal + value of a transfer function (ratio of output variable to input source), + input resistance, and output resistance is also computed as a part of the dc + solution. + + +9 Transient analysis (TRAN) + + The transient analysis computes the transient output variables as a + function of time over a user-specified time interval. The initial conditions + are automatically determined by a dc analysis. All sources which are not time + dependent (for example, power supplies) are set to their dc value. + + +10 Periodic steady state analysis (PSS) + + The periodic steady state analysis computes solutions for oscillating + circuits. Currently only the autonomous case is implemented. + + diff --git a/Windows/spice/doc/AUTHORS b/Windows/spice/doc/AUTHORS new file mode 100644 index 00000000..e13a65ad --- /dev/null +++ b/Windows/spice/doc/AUTHORS @@ -0,0 +1,76 @@ +@c This file will be processed with texinfo. + +Spice was originally written at The University of California at Berkeley (USA). +Since then, there have been many people working on the software, most of them +releasing patches to the original code through the Internet. + + +The following people have contributed in some way: + +Vera Albrecht, +Cecil Aswell, +Giles C. Billingsley, +Phil Barker, +Steven Borley, +Krzysztof Blaszkowski, +Stuart Brorson, +Mansun Chan, +Wayne A. Christopher, +Al Davis, +Glao S. Dezai, +Jon Engelbert, +Daniele Foci, +Henrik Forstén, +Noah Friedman, +David A. Gates, +Alan Gillespie, +John Heidemann, +Jeffrey M. Hsu, +JianHui Huang, +S. Hwang, +Chris Inbody, +Gordon M. Jacobs, +Min-Chie Jeng, +Beorn Johnson, +Stefan Jones, +Kenneth H. Keller, +Francesco Lannutti, +Robert Larice, +Mathew Lew, +Robert Lindsell, +Weidong Liu, +Kartikeya Mayaram, +Richard D. McRoberts, +Manfred Metzger, +Wolfgang Muees, +Paolo Nenzi, +Gary W. Ng, +Hong June Park, +Arno Peters, +Stefano Perticaroli, +Serban-Mihai Popescu, +Georg Post, +Thomas L. Quarles, +Emmanuel Rouat, +Jean-Marc Routure, +Jaijeet S. Roychowdhury, +Lionel Sainte Cluque, +Takayasu Sakurai, +AMAKAWA Shuhei, +Kanwar Jit Singh, +Bill Swartz, +Hitoshi Tanaka, +Steve Tell, +Andrew Tuckey, +Andreas Unger, +Holger Vogt, +Dietmar Warning, +Michael Widlok, +Charles D.H. Williams, +Antony Wilson, +and many others... + +If someone helped in the development and has not been inserted in this list +then this omission was unintentional. If you feel you should be on this list +then please write to <ngspice-devel@@lists.sourceforge.net>. Do not be shy, we +would like to make a list as complete as possible. diff --git a/Windows/spice/doc/BUGS b/Windows/spice/doc/BUGS new file mode 100644 index 00000000..b338848f --- /dev/null +++ b/Windows/spice/doc/BUGS @@ -0,0 +1,38 @@ +This file contains a list of known but not yet fixed bugs in ngspice. +=========================================================================== + +How to submit a bug report: + +There are two methods to report a bug you have discovered in ngspice: + + * Bug tracker: This is the preferred method of reporting a bug. + Using the tracker on Sourceforge.net site will make your report + open by everyone and the chances of finding a fix will increase. + + * ngspice-devel list: If you are a member of this list, you can write + directly to the developers' list. Do not subscribe to the list only + for sending bug reports. + +Before sending a bug report please note: all information you send to the bug +tracking system or on the mailing lists is public. If you need to send +sensitive information, send them to a developer directly but still write non +sensitive data on the bug tracking system to keep track of bug history. + +* please refer to the sourceforge bug tracker at + http://sourceforge.net/p/ngspice/bugs/ + +------------------------------------------------------------------------------ +OPEN BUGS: +------------------------------------------------------------------------------ +* pole-zero analysis + + The pole-zero (.pz) analysis, which still uses the original spice3f5 + algorithms, does not give correct results for all tested input files. + The effort to correct that issue seems to be large. + + +* voltage (and current) controlled switches need better timing + + The controlled switches (SW, CSW), which still stem from the original + spice3f5 implementation, sometimes lead to wrong results when on and off + ramp times differ considerably. diff --git a/Windows/spice/doc/COPYING b/Windows/spice/doc/COPYING new file mode 100644 index 00000000..e266da01 --- /dev/null +++ b/Windows/spice/doc/COPYING @@ -0,0 +1,613 @@ +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +Ngspice 26 +Copyright (c) 2014, +All rights reserved. + + +Foreword: +The name 'Spice' (Simulation Program with Integrated Circuit Emphasis) +was originally chosen at the University of California, Berkeley. The +original Berkeley code is covered under the modified BSD license and +thus sets the basis for all other code added. +As Spice is the basis of almost all circuit simulators, the major part of the +analogue and mixed signals simulation's code is designed to fit with it. +The *spices (generic name for its forks) are heterogeneous in many points due +to the work of researchers, electronic designers, software editors, etc. +The Ngspice team tries to collect work from the different sources and +contribute new functionalities. Thus, the material we manipulate is +heterogeneous in licenses. Keeping the licenses as is, but also keep it +compatible with the new BSD license, is the way to live with that diversity. + +Copyleft is a fundamental question in FOSS development. The choice of a +copylefted contribution, or a non copylefted contribution is an important +choice that should be respected. Ngspice branch as a whole will not be covered +by a specific license. The Ngspice team wants to encourage contributions to +ngspice. We let each new developer choose its position regarding copyleft, +as we respect the position of the former developers. In order to keep things +clear ngspice team proposes to follow the following guidelines: + + Each piece of code should be kept under its original contributor's license. + As for any project, modifications made in sources covered by a less + restrictive license can be covered by a more restrictive license than new BSD. + We do not encourage it. + + If you feel to add code in a file under a different license than the rest of + the file, please use comments to mark the boundaries of the modification, and + edit the comments at the beginning of the file with correct license and + copyright information. + + We encourage restrictive licenses to be chosen only for new functionalities, + written in distinct files, leading to distinct libraries that link depending + on a specific configure flag. + + We encourage non proliferation of licenses (e.g. choosing either LGPL or + new BSD). GPL is not suitable for code to be directly linked into ngspice, + but may be used in shared object libraries only. + +This heterogeneous license status requires some effort to keep track on licenses +applied. Please take care of knowing which license applies to the code you are +editing, or conveying and not to commit license infringements, especially to +GPL and LGPL which are quite restrictive. + +On 2007, July 17th spice 3f5 changed from its original license to the new BSD +license. (http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm) + +On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in +accordance with Multigig Ltd, the copyright holder. + +The following table is just a reminder on license status, please don't rely +on it: + Author License Notes + +numparam Georg Post LGPL Applies to the code in + frontend/numparam +adms Laurent Lemaitre LGPL Applies to scripts in the + spicelib/dev/adms +tclspice Stefan Jones LGPL TCL integration +cider U. of California Old BSD Device level simulator +xspice Georgia Tech. Public D Mixed signals +spice U. of California New BSD Analog circuit simulation + + +---------------------------------- Cider ----------------------------------- + + RESEARCH SOFTWARE AGREEMENT + + This file specifies the terms under which the software and + documentation provided with this distribution are provided. + + Software is distributed as is, completely without warranty + or service support. The University of California and its employ- + ees are not liable for the condition or performance of the + software. + + The University does not warrant that it owns the copyright + or other proprietary rights to all software and documentation + provided under this agreement, notwithstanding any copyright + notice, and shall not be liable for any infringement of copyright + or proprietary rights brought by third parties against the reci- + pient of the software and documentation provided under this + agreement. + + THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED + WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT + LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE + SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES. + + The University of California grants the recipient the right + to modify, copy, and redistribute the software and documentation, + both within the recipient's organization and externally, subject + to the following restrictions: + + + (a) The recipient agrees not to charge for the University of + California code itself. The recipient may, however, charge + for additions, extensions, or support. + + (b) In any product based on the software, the recipient agrees + to acknowledge the research group that developed the + software. This acknowledgement shall appear in the product + documentation. + + (c) The recipient agrees to obey all U.S. Government restric- + tions governing redistribution or export of the software and + documentation. + + +---------------------------------- Spice3f5 -------------------------------- + +Copyright (c) 1985-1991 The Regents of the University of California. +All rights reserved. + +Permission is hereby granted, without written agreement and without license +or royalty fees, to use, copy, modify, and distribute this software and its +documentation for any purpose, provided that the above copyright notice and +the following two paragraphs appear in all copies of this software. + +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF +CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN +"AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE +MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +-------------------------------- Tclspice -------------------------------- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +---------------------------------- Xspice -------------------------------- +THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF +ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF +TECHNOLOGY, AND/OR OTHER PARTIES PROVIDE THIS SOFTWARE "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER. +SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH +RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES +PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS). diff --git a/Windows/spice/doc/DEVICES b/Windows/spice/doc/DEVICES new file mode 100644 index 00000000..29c309e2 --- /dev/null +++ b/Windows/spice/doc/DEVICES @@ -0,0 +1,854 @@ +DEVICES +======= + +Table of contents + +1. Introduction +2. Linear Devices + 2.1 CAP - Linear capacitor + 2.2 IND - Linear inductor + 2.3 RES - Linear resistor +3. Distributed Elements + 3.1 CPL - Simple Coupled Multiconductor Lines (Kspice) + 3.2 LTRA - Lossy Transmission line + 3.3 TRA - Transmission line + 3.4 TXL - Simple Lossy Transmission Line (Kspice) + 3.5 URC - Uniform distributed RC line +4. Voltage and current sources + 4.1 ASRC - Arbitrary Source + 4.2 CCCS - Current Controlled Current Source + 4.3 CCVS - Current Controlled Voltage Source + 4.4 ISRC - Independent Current Source + 4.5 VCCS - Voltage Controlled Current Source + 4.6 VCVS - Voltage Controlled Voltage Source + 4.7 VSRC - Independent Voltage Source +5. Switches + 5.1 CSW - Current controlled switch + 5.2 SW - Voltage controlled switch +6. Diodes + 6.1 DIO - Junction Diode +7. Bipolar devices + 7.1 BJT - Bipolar Junction Transistor + 7.2 BJT2 - Bipolar Junction Transistor + 7.3 VBIC - Bipolar Junction Transistor +8. FET devices + 8.1 JFET - Junction Field Effect transistor +9. HFET Devices + 9.1 HFET1 - Heterostructure Field Effect Transistor Level 1 + 9.2 HFET2 - Heterostructure Field Effect Transistor Level 2 +10. MES devices + 10.1 MES - MESFET model + 10.2 MESA - MESFET model (MacSpice3f4) +11. MOS devices + 11.1 MOS1 - Level 1 MOS model + 11.2 MOS2 - Level 2 MOS model + 11.3 MOS3 - Level 3 MOS model + 11.4 MOS6 - Level 6 MOS model + 11.5 MOS9 - Level 9 MOS model + 11.6 BSIM1 - BSIM model level 1 + 11.7 BSIM2 - BSIM model level 2 + 11.8 BSIM3 - BSIM model level 3 vers. 0 + 11.9 BSIM3 - BSIM model level 3 vers. 1 + 11.10 BSIM3 - BSIM model level 3 vers. 2 + 11.11 BSIM3 - BSIM model level 3 vers. 3 + 11.12 BSIM4 - BSIM model level 4 + 11.13 HiSIM2 - Hiroshima-University STARC IGFET Model + 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model +12. SOI devices + 12.1 BSIM3SOI_FD - SOI model (fully depleted devices) + 12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model) + 12.3 BSIM3SOI_PD - SOI model (partially depleted devices) + 12.4 BSIMSOI - SOI model (partially/full depleted devices) + 12.5 SOI3 - STAG SOI3 Model +13. Verilog-A models + 13.1 EKV MOS model + 13.2 PSP MOS model + 13.3 HICUM0 Bipolar Model + 13.4 HICUM2 Bipolar Model + 13.5 Mextram Bipolar Model +14. XSPICE code models + + ------------------ + +1. Introduction + +This file contains the status of devices available in ngspice. This file +will be updated every time the device specific code is altered or changed to reflect the current status of this important part of the simulator + + +2. Linear Devices + + + 2.1 CAP - Linear capacitor + + Ver: N/A + Class: C + Level: 1 (and only) + Dir: devices/cap + Status: + + Enhancements over the original model: + - Parallel Multiplier + - Temperature difference from circuit temperature + - Preliminary technology scaling support + - Model capacitance + - Cj calculation based on relative dielectric constant + and insulator thickness + + + 2.2 IND - Linear Inductor + + Ver: N/A + Class: L + Level: 1 (and only) + Dir: devices/ind + Status: + + Enhancements over the original model: + - Parallel Multiplier + - Temperature difference from circuit temperature + - Preliminary technology scaling support + - Model inductance + - Inductance calculation for toroids or solenoids + on the model line. + + 2.3 RES - Linear resistor + + Ver: N/A + Class: R + Level: 1 (and only) + Dir: devices/res + Status: + + Enhancements over the original model: + - Parallel Multiplier + - Different value for ac analysis + - Temperature difference from circuit temperature + - Noiseless resistor + - Flicker noise + - Preliminary technology scaling support + + +3. Distributed elements + + + 3.1 CPL - Simple Coupled Multiconductor Lines (Kspice) + + Ver: N/A + Class: P + Level: 1 (and only) + Dir: devices/cpl + Status: + + This model comes from swec and kspice. It is not documented, if + you have kspice docs, can you write a short description + of its use ? + + - Does not implement parallel code switches + - Probably a lot of memory leaks + + Enhancements over the original model: + + - Better integrated into ngspice adding CPLask, CPLmAsk and + CPLunsetup functions + + 3.2 LTRA - Lossy Transmission line + + Ver: N/A + Class: O + Level: 1 (and only) + Dir: devices/ltra + Status: + + - Original spice model. + - Does not implement parallel code switches. + + 3.3 TRA - Transmission line + + Ver: N/A + Class: T + Level: 1 (and only) + Dir: devices/tra + Status: + + - Original spice model. + - Does not implement parallel code switches. + + 3.4 TXL - Simple Lossy Transmission Line (Kspice) + + Ver: N/A + Class: Y + Level: 1 (and only) + Dir: devices/txl + Status: + + This model comes from kspice. It is not documented, if + you have kspice docs, can you write a short description + of its use ? + + There is some code left out from compilation: + TXLaccept and TXLfindBr. Any ideas ? + + - Does not implement parallel code switches + + + 3.5 URC - Uniform distributed RC line + + Ver: N/A + Class: U + Level: 1 (and only) + Dir: devices/urc + Status: + + - Original spice model. + - Does not implement parallel code switches. + + +4. Voltage and current sources + + 4.1 ASRC - Arbitrary Source + + Ver: N/A + Class: B + Level: 1 (and only) + Dir: devices/asrc + Status: + + The arbitrary source code has been corrected with the patch + available on the Internet. There is still an issue to fix, the + current of current-controlled generators. + + 4.2 CCCS - Current Controlled Current Source + + Ver: N/A + Class: F + Level: 1 (and only) + Dir: devices/cccs + Status: + + - Original spice model. + + 4.3 CCVS - Current Controlled Voltage Source + + Ver: N/A + Class: H + Level: 1 (and only) + Dir: devices/ccvs + Status: + + - Original spice model. + + + 4.4 ISRC - Independent Current Source + + Ver: N/A + Class: I + Level: 1 (and only) + Dir: devices/isrc + Status: + + This is the original spice device improved by Alan Gillespie + with the following features: + + - Source ramping + - Check for non-monotonic series in PWL + + + 4.5 VCCS - Voltage Controlled Current Source + + Ver: N/A + Class: G + Level: 1 (and only) + Dir: devices/vccs + Status: + + - Original spice model. + + +4.6 VCVS - Voltage Controlled Voltage Source + + Ver: N/A + Class: E + Level: 1 (and only) + Dir: devices/vcvs + Status: + + - Original spice model. + + 4.7 VSRC - Independent Voltage Source + + Ver: N/A + Class: V + Level: 1 (and only) + Dir: devices/vsrc + Status: + + This is the original spice device improved by Alan Gillespie + with the following features: + + - Source ramping + - Check for non-monotonic series in PWL + + +5. Switches + + 5.1 CSW - Current controlled switch + + Ver: N/A + Class: W + Level: 1 (and only) + Dir: devices/csw + Status: + + - This model comes from Jon Engelbert. + + + 5.2 SW - Voltage controlled switch + + Ver: N/A + Class: S + Level: 1 (and only) + Dir: devices/sw + Status: + + - This model comes from Jon Engelbert. + + +6. Diodes + + 6.1 DIO - Junction Diode + + Ver: N/A + Class: D + Level: 1 (and only) + Dir: devices/dio + Status: + + Enhancements over the original model: + - Parallel Multiplier + - Temperature difference from circuit temperature + - Forward and reverse knee currents + - Periphery (sidewall) effects + - Temperature correction of some parameters + + +7. Bipolar devices + + 7.1 BJT - Bipolar Junction Transistor + + Ver: N/A + Class: Q + Level: 1 + Dir: devices/bjt + Status: + + Enhancements over the original model: + - Parallel Multiplier + - Temperature difference from circuit temperature + - Different area parameters for collector, base and emitter + + 7.2 BJT2 - Bipolar Junction Transistor + + Ver: N/A + Class: Q + Level: 2 + Dir: devices/bjt2 + Status: + + This is the BJT model written by Alan Gillespie to support lateral + devices. The model has been hacked by Dietmar Warning fixing some bugs + and adding some features (temp. dependency on resistors). + + Enhancements over the original model: + - Parallel Multiplier + - Temperature dependency on rc,rb,re + - Temperature difference from circuit temperature + - Different area parameters for collector, base and emitter + + 7.3 VBIC - Bipolar Junction Transistor + + Ver: N/A + Class: Q + Level: 4 & 9 + Dir: devices/vbic + Status: + + This is the Vertical Bipolar InterCompany model in version 1.2. The author + of VBIC is Colin McAndrew mcandrew@ieee.org. + Spice3 Implementation: Dietmar Warning DAnalyse GmbH + Web Site: http://www.designers-guide.com/VBIC/index.html + + Notes: This is the 4 terminals model, without excess phase and thermal + network. + + +8. FET devices + + 8.1 JFET - Junction Field Effect transistor + + Ver: N/A + Class: J + Level: 1 + Dir: devices/jfet + Status: + + This is the original spice JFET model. + + Enhancements over the original model: + - Alan Gillespie's modified diode model + - Parallel multiplier + - Instance temperature as difference for circuit temperature + + 8.2 JFET2 - Junction Field Effect Transistor (PS model) + + Ver: N/A + Class: J + Level: 2 + Dir: devices/jfet2 + Status: + + This is the Parker Skellern model for MESFETs. + + Web Site: http://www.elec.mq.edu.au/cnerf/psmodel.htm + + Enhancements over the original model: + - Parallel multiplier + - Instance temperature as difference for circuit temperature + + +9. HFET Devices + + Added code from macspice3f4 HFET1&2 and MESA model + Original note: + Added device calls for Mesfet models and HFET models + provided by Trond Ytterdal as of Nov 98 + + 9.1 HFET1 - Heterostructure Field Effect Transistor Level 1 + + Ver: N/A + Class: Z + Level: 5 + Dir: devices/hfet1 + Status: + + This is the Heterostructure Field Effect Transistor model from: + K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal + "Semiconductor Device Modeling in VLSI", + 1993, Prentice Hall, New Jersey + + Enhancements over the original model: + - Parallel multiplier + - Instance temperature as difference for circuit temperature + - Added pole-zero analysis + + + 9.2 HFET2 - Heterostructure Field Effect Transistor Level 2 + + Ver: N/A + Class: Z + Level: 6 + Dir: devices/hfet2 + Status: + + Simplified version of hfet1 + + Enhancements over the original model: + - Parallel multiplier + - Instance temperature as difference for circuit temperature + - Added pole-zero analysis + + +10. MES devices + + 10.1 MES - MESFET model + + Ver: N/A + Class: Z + Level: 1 + Dir: devices/mes + Status: + + This is the original spice3 MESFET model (Statz). + + Enhancements over the original model: + - Parallel multiplier + - Alan Gillespie junction diodes implementation + + + Added code from macspice3f4 HFET1&2 and MESA model + Original note: + Added device calls for Mesfet models and HFET models + provided by Trond Ytterdal as of Nov 98 + +10.2 MESA - MESFET model (MacSpice3f4) + + Ver: N/A + Class: Z + Level: 2,3,4 + Dir: devices/mesa + Status: + + This is a multilevel model. It contains code for mesa levels + 2,3 and 4 + + Enhancements over the original model: + - Parallel multiplier + - Instance temperature as difference from circuit temperature + - Added pole-zero analysis + + + +11. MOS devices + + 11.1 MOS1 - Level 1 MOS model + + Ver: N/A + Class: M + Level: 1 + Dir: devices/mos1 + Status: + + This is the so-called Schichman-Hodges model. + + Enhancements over the original model: + - Parallel multiplier + - Temperature difference from circuit temperature + + 11.2 MOS2 - Level 2 MOS model + + Ver: N/A + Class: M + Level: 2 + Dir: devices/mos2 + Status: + + This is the so-called Grove-Frohman model. + + Enhancements over the original model: + - Parallel multiplier + - Temperature difference from circuit temperature + + + 11.3 MOS3 - Level 3 MOS model + + Ver: N/A + Class: M + Level: 3 + Dir: devices/mos3 + Status: + + Enhancements over the original model: + - Parallel multiplier + - Temperature difference from circuit temperature + + + 11.4 MOS6 - Level 6 MOS model + + Ver: N/A + Class: M + Level: 6 + Dir: devices/mos6 + Status: + + Enhancements over the original model: + - Parallel multiplier + - Temperature difference from circuit temperature + + + 11.5 MOS9 - Level 9 MOS model + + Ver: N/A + Class: M + Level: 9 + Dir: devices/mos9 + Status: + + This is a slightly modified Level 3 MOSFET model. + (Whatever the implementer have had in mind.) + Not to confuse with Philips level 9. + Enhancements over the original model: + - Temperature difference from circuit temperature + + + 11.6 BSIM1 - BSIM model level 1 + + Ver: N/A + Class: M + Level: 4 + Dir: devices/bsim1 + Status: + + Enhancements over the original model: + - Parallel multiplier + - Noise analysis + + BUGS: + Distortion analysis probably does not + work with "parallel" devices. Equations + are too intricate to deal with. Any one + has ideas on the subject ? + + + 11.7 BSIM2 - BSIM model level 2 + + Ver: N/A + Class: M + Level: 5 + Dir: devices/bsim2 + Status: + + Enhancements over the original model: + - Parallel multiplier + - Noise analysis + + + 11.8 BSIM3v0 - BSIM model level 3 + + Ver: 3.0 + Class: M + Level: 8 & 49, version = 3.0 + Dir: devices/bsim3v0 + Status: TO BE TESTED AND IMPROVED + + + 11.9 BSIM3v1 - BSIM model level 3 + + Ver: 3.1 + Class: M + Level: 8 & 49, version = 3.1 + Dir: devices/bsim3v1 + Status: TO BE TESTED AND IMPROVED + + This is the BSIM3v3.1 model modified by Serban Popescu. + This is level 49 model. It is an implementation that supports + "HDIF" and "M" parameters. + + + 11.10 BSIM3 - BSIM model level 3 + + Ver: 3.2.4 + Class: M + Level: 8 & 49, version = 3.2.2, 3.2.3, 3.2.4 + Dir: devices/bsim3v32 (level 3.2.4) + Status: o.k. + + This is another BSIM3 model from Berkeley Device Group. + You can find some test netlists with results for this model + on its web site. + + Web site: http://www-device.eecs.berkeley.edu/~bsim3 + + Enhancements over the original model: + - Parallel Multiplier + - delvto, mulu0 instance parameter + - ACM Area Calculation Method + - Multirevision code (supports all 3v3.2 minor revisions) + - NodesetFix + + + 11.11 BSIM3 - BSIM model level 3 + + Ver: 3.3.0 + Class: M + Level: 8 & 49, version = 3.3.0 + Dir: devices/bsim3 (level 3.3.0) + Status: o.k. + + This is the actual BSIM3 model from Berkeley Device Group. + You can find some test netlists with results for this model + on its web site. + + Web site: http://www-device.eecs.berkeley.edu/~bsim3 + + Enhancements over the original model: + - Parallel Multiplier + - ACM Area Calculation Method + - Multirevision code (supports all 3v3.2 minor revisions) + - NodesetFix + - Support for Multi-core processors using OpenMP + + + 11.12 BSIM4 - BSIM model level 4 + + Ver: 4.2.0 - 4.6.5 + Class: M + Level: 14 & 54, version = 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 + Dir: devices/bsim4 (level 4.6.5) + Status: o.k. + + This is the actual BSIM4 model from Berkeley Device Group. + Test are available on its web site. + + Web site: http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html + + Enhancements over the original model: + - Parallel Multiplier + - NodesetFix + - Support for Multi-core processors using OpenMP + + + 11.13 HiSIM2 - Hiroshima-university STARC IGFET Model + + Ver: 2.7.0 + Class: M + Level: 61, 68 + Dir: devices/hisim2 + Status: TO BE TESTED. + + This is the HiSIM2 model available from Hiroshima University + (Ultra-Small Device Engineering Laboratory) + + Web site: http://home.hiroshima-u.ac.jp/usdl/HiSIM.html + + + 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model + + Ver: 1.2.3 + Class: M + Level: 62, 73 + Dir: devices/hisimhv + Status: TO BE TESTED. + + This is the HiSIM_HV model available from Hiroshima University + (Ultra-Small Device Engineering Laboratory) + + Web site: http://home.hiroshima-u.ac.jp/usdl/HiSIM.html + + +12. SOI devices + + 12.1 BSIM3SOI_FD - SOI model (fully depleted devices) + + Ver: 2.1 + Class: M + Level: 55 + Dir: devices/bsim3soi_fd + Status: TO BE TESTED. + + FD model has been integrated. + There is a bsim3soifd directory under the test + hierarchy. Test circuits come from the bsim3soi + + Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi + + + + 12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model) + + Ver: 2.1 + Class: M + Level: 56 + Dir: devices/bsim3soi_dd + Status: TO BE TESTED. + + There is a bsim3soidd directory under the + test hierarchy. Test circuits come from bsim3soi + + Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi + + + + 12.3 BSIM3SOI_PD - SOI model (partially depleted devices) + + Ver: 2.2.1 + Class: M + Level: 57 + Dir: devices/bsim3soi_pd + Status: TO BE TESTED. + + PD model has been integrated. There is a bsim3soipd directory + under the test hierarchy. Test circuits come from the bsim3soi + + Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi + + + + 12.4 BSIMSOI - Berkeley SOI model (partially/full depleted devices) + + Ver: 4.3.1 + Class: M + Level: 10 & 58 + Dir: devices/bsim3soi + Status: o.k. + + This is the actual version from Berkeley. This version is + backward compatible with its previous versions BSIMSOI3.x. + Usable for partially/full depleted devices. + + Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi + + Enhancements over the original model: + - Parallel Multiplier + - Support for Multi-core processors using OpenMP + + + + 12.5 SOI3 - STAG SOI3 Model + + Ver: 2.6 + Class: M + Level: 61 + Dir: devices/soi3 + Status: OBSOLETE + + + +13. Verilog-A models + + Configuring ngspice with ADMS (see Readme.adms) following + devices are available: + + 13.1 EKV MOS Model + + Ver: 2.6 + Level: 44 + Dir: devices/adms/ekv + Status: TO BE TESTED + + EKV version based on a contribution of Ivan Riis Nielsen 11/2006 + + Web site at: http://legwww.epfl.ch/ekv/ + (but EPFL is not publishing any usefull code) + + + 13.2 PSP MOS Model + + Ver: 102.1 + Level: 45 + Dir: devices/adms/psp102 + Status: TO BE TESTED + + Philips SimKit 2.5. + + + 13.3 HICUM0 Bipolar Model + + Ver: Level_0 Version_1.12 + Level: 7 + Dir: devices/adms/hicum0 + Status: TO BE TESTED + + A simplified version of HICUM Level2 model for BJT + Web site at: http://www.iee.et.tu-dresden.de/iee/eb/hic_new + + + 13.4 HICUM2 Bipolar Model + + Ver: Level_2 Version_2.22 + Level: 8 + Dir: devices/adms/hicum2 + Status: TO BE TESTED + + Web site at: http://www.iee.et.tu-dresden.de/iee/eb/hic_new/hic_start.html + + + 13.5 Mextram Bipolar Model + + Ver: 504.6.1 + Level: 6 + Dir: devices/adms/mextram + Status: TO BE TESTED + + Web site at: http://mextram.ewi.tudelft.nl/ and http://mextram.sourceforge.net/ + + 14. XSpice code models, see ngspice manual chapt. 12 diff --git a/Windows/spice/doc/FAQ b/Windows/spice/doc/FAQ new file mode 100644 index 00000000..e137c93c --- /dev/null +++ b/Windows/spice/doc/FAQ @@ -0,0 +1,376 @@ + Ngspice F.A.Q.Version 2.0 (ngspice 26 release) + Maintained by Paolo Nenzi, Holger Vogt + Last update: 02-01-2014 + + This document contains the Frequently Asked Questions (and Answers) + for ngspice project. + __________________________________________________________________________ + + Table of Contents + + + 1. INTRODUCTION AND GENERAL INFORMATION + 1.1 What is ngspice? + 1.2 What is sharedspice? + 1.3 What is tclspice ? + 1.4 Why resurrecting Berkeley's Spice? + 1.5 What is the project's goal? + 1.6 What you are going to do? + 1.7 Legal issues + 1.8 What mailing lists exist for ngspice? + 1.9 Are the mailing lists archived anywhere? + 1.10 What newsgroups exist for ngspice? + 1.11 Where can I get a copy of ngspice? + 1.12 Where should I look on the World Wide Web for ngspice stuff? + 1.13 Where should I look on the World Wide Web for Spice documentation? + + 2. DEVELOPMENT + 2.1 What is the current version? + 2.2 What are the latest features in the current release? + 2.3 What does it look like? + 2.4 Who are the authors of ngspice? + 2.5 How can I report a bug/request for a feature? + 2.6 How can I join the development? + + 3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS + 3.1 What systems are supported? + 3.2 I get errors when I try to compile the source code, why? + 3.3 This document didn't answer my question. Where else can I look for + an answer? + + 4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS + 4.1 Feedback + 4.2 Formats in which this FAQ is available + 4.3 Authorship and acknowledgements + 4.4 Disclaimer and Copyright + + + ______________________________________________________________________ + + 1. INTRODUCTION AND GENERAL INFORMATION + + + + 1.1 What is ngspice ? + + Ngspice is a mixed-level/mixed-signal circuit simulator, based on three + open source software packages: Spice3f5, Cider1b1 and Xspice, and + including many bug fixes and enhancements: + + - Spice3 is a widely used circuit simulator. It was developed by the + University of California at Berkeley (UCB), by "a cast of thousand" + (as they say) initially under the guide of Donald O. Peterson. + + - Cider is a mixed-level simulator that already includes Spice3f5 and + adds a device simulator to it: DSIM. Cider couples the circuit level + simulator to the device simulator to provide greater simulation + accuracy (at the expense of greater simulation time). Critical + devices can be described with technology parameters (numerical + models) and non critical ones with the original spice's compact + models. + + - Xspice is an extension to Spice3 that provides code modeling support + and simulation of digital components through an embedded event + driven algorithm. + + The NG prefix has lot of meanings: Next Generation, New Good, etc. + Choose or invent the one you prefer. The heart of the project is the + ngspice program, with its tremendous advancements. + + + 1.2 What is sharedspice ? + + Sharedspice is an interface option to ngspice. It compiles the simulator + into a shared object (or dynamic link library), providing full control + of ngspice to any suitable controlling program (GUI, optimizer, + development system, etc., to be provided by the user). + + + 1.3 What is tclspice ? + + Tclspice is a another interface option of ngspice, providing a tcl/tk + interface to the user. Tclspice is both a batch and interactive simulator + and a building block for simulator applications. Analyses can be run + from a tcl script and vector plotted or post processed using tcl. A small + GUI may be built by the user to analyze a circuit or a set of circuits. + Tclspice is obtained compiling ngspice activating an additional option. + + + 1.4 Why resurrecting Berkeley's Spice? + + Berkeley's Spice can be considered the father of most circuit + simulators available today. It is an old but still good piece of + software, it may not be the fastest or the most reliable but it's + free, it's available in source code and most of the electrical + simulators inherited it's syntax. Spice3 is based on proven numerical + algorithms (most commercial implementations have only strengthened + them), implements most of the models for MOSFET submicron design + and has a powerful set of analyses. The readily availability of + its source code in the past made this simulator the de-facto standard. + + + 1.5 What is the project's goal? + + Ngspice is both a maintenance and enhancement project. It is a maintenance + project because it aims to provide the free EDA community the best spice3 + simulator available. This means fixing bugs, adding new features but always + in the spice3 framework. Achieving compatibility with commercial spice based + simulators and provide users the latest devices models are important goals + of the project. Improvements in the postprocessing (data handling + capabilities) and user interface are other goals. + + + 1.6 What you are going to do? + + An official roadmap for ngspice was never drawn. Contributions made by + developers drive ngspice development and the roadmap is built day by + day by developers writing on the lists. Ngspice development activity + can be summarized in 3 points: + + + Compatibility: Ngspice should be compatible with commercial products, + thus allowing people to use the netlist generated for such tools. As + most of the commercial simulators available tracked each other in netlist + language, this should not be an impossible task. The most important goal + here is to provide a reliable support for model libraries coming from + foundries. + + + Compact models: The interest in using ngspice is intimately connected + to the available models. To provide the latest models available for + active and passive devices is a fundamental goal of the project. In + this direction we are integrating ADMS model compiler into ngspice. + + + Documentation: Commercial simulators come with very good manuals + containing tutorials, description of models equations, example of + use, suggestions, etc. Spice came with little documentation. The + Spice3f manual, available on the Internet has been used as the basis + for the new manual. It will be constantly improved during ngspice + development and integrated with the documentation accompanying Xspice + and Cider. The ngspice manual today contains description of all + features ngspice is offering. It is however not a tutorial of ngspice + usage, but there are now several good ones available on the internet + (see http://ngspice.sourceforge.net/tutorials.html). + + + 1.7 Legal issues + + The ngspice base license is new BSD, as provided by UCB. For some parts + of the code other compatible licences apply. Please see file COPYING + for details. + + + 1.8 What mailing lists exist for ngspice? + + There are two general mailing lists dedicated to the ngspice project. + + Users mailing list: <ngspice-users@lists.sourceforge.net> + This list is for ngspice users. Examples, problems, bug reports + and general discussion on ngspice can be sent here. + + Developers mailing list: <ngspice-devel@lists.sourceforge.net> + The list is dedicated to ngspice development. Developers should + subscribe here, to follow the program development. May be used + to send patches, and technical discussion on ngspice. + + Send an empty message with Subject "help" to the following addresses + to get instructions. + + <ngspice-users-request@lists.sourceforge.net> + <ngspice-devel-request@lists.sourceforge.net> + + Send an empty message to the following address to Subscribe. + + <ngspice-users-join@lists.sourceforge.net> + <ngspice-devel-join@lists.sourceforge.net> + + Documentation about the user interface of + these mailing lists can be found at: + http://www.gnu.org/software/mailman/mailman-member + + + 1.9 Are the mailing lists archived anywhere ? + + Yes, the lists are archived. There are two places where to look for + archives. The project started on the IEEE Central and South Italy + web server and then moved to sourceforge. Sourceforge provides an + archiving service that cam be accessed via the summary page: + + http://sourceforge.net/p/ngspice/mailman/ + + + + 1.10 What newsgroups exist for ngspice? + + There is no ngspice specific newsgroup. Sourceforge offers additional + discussion groups for ngspice, please see + + http://sourceforge.net/p/ngspice/discussion/ + + ngspice threads may appear on newsgroups dedicated to circuit + simulation and electronic design. + + + 1.11 Where can I get a copy of ngspice? + + You can download ngspice from: + + http://sourceforge.net/projects/ngspice/files/ng-spice-rework/ + + + 1.12 Where should I look on the World Wide Web for ngspice stuff? + + Look at the official Ngpice Web Page: + + http://ngspice.sourceforge.net + + + 1.13 Where should I look on the World Wide Web for Spice documentation? + + There is a detailed ngspice manual available at: + http://ngspice.sourceforge.net/docs.html + + Others docs are assembled at: + http://ngspice.sourceforge.net/literature.html + + + + 2. DEVELOPMENT + + + 2.1. What is the current version? + + The latest version released is: + + * ngspice-26 (released on 04/01/2013) + + + 2.2. What are the latest features in the current release? + +- New features: + + add temperature coefficients for B source + + commands "mdump", "mrdump" to dump matrix to file + + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C + + Enable ctrl-c to interrupt a simulation also for Windows GUI + + tests/bsim4: use the standard CMC model check + + implement exit code for command "quit" + + .nodeset all = value + + memristor code model in extradev + + new scalable diode model including tunnel component + + variable xtrtol may override the XSPICE reduction of trtol + + XSPICE example: delta-sigma converter + + XSPICE: new d_source model + + new option noopac + + bsim3: make additonal parameters accessible with @mxx[par] + + enable Mac OS X compilation + + option reseries = val + + commands "snsave", "snload" + + update hisim to version 2.7.0, new qa tests + + hisimhv update to version 1.2.3, new qa tests + + allow Ctrl-d to quit + + jfet model temperature extension, tcv and bex parameter + + speed up vector handling by hash table for vector address storage and retrieval + + update PSS code + + +- Bug fixes: + + many, many ... please see + http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0 + + remove memory leaks + + update tclspice for MS Windows + + adms3 removed due to licensing issues + + Many small bugs + + + + 2.3. What does it look like? + + Ngspice, as the original Spice3 (and Xspice and Cider) is a command + line simulator, but with a graphics output capability. + + + 2.4. Who are the authors of ngspice? + + The development is open to anyone who wish to contribute. If the + original Spice3 was made with the contribution of "a cast of + thousand", ngspice can only increase that number. An incomplete + list of contributor makes the "acknowledgements" page of the ngspice + manual. + + + 2.5. How can I report a bug/request for a feature? + + The ngspice summary page (hosted on Sourceforge) has bug-reporting, + feature-request and bugs trackers. You can use them or subscribe to + mailing lists and post there. The former is preferred since almost + it allows to track all necessary actions upon a bug. The web site at + http://ngspice.sourceforge.net/bugrep.html will give you more details. + + + 2.6. How can I join the development? + + To join the development just code the feature you want to add and send + your patch in the mailing list. Before you start coding check the + latest development release of ngspice from our git repository. + It might be that your feature has already been implemented. + + There is no bureaucracy here. + + + + 3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS + + + 3.1. What systems are supported? + + Ngspice is written in C, and uses some GNU extensions, then you need + a GNU C compiler and a UNIX environment to compile it. Ngspice can + be compiled under Windows using the mingw or cygwin environment as + well as MS Visual Studio. + + + 3.2. I get errors when I try to compile the source code, why? + + This is a one-million-euros question :). + + Write a mail to the user's list describing the problem and providing + information on the type of hardware, the flavour of operating system. + + + 3.3. This document didn't answer my question. Where else can I look + for an answer? + + Read old messages from the mailing list archive, search the web site + or read the docs. Upgrade to the latest version of ngspice, many + problems are fixed in the new versions. If you still can't find an + answer, post your question to the mailing lists. + + + + 4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS + + + 4.1. Feedback + + Send your comments about this F.A.Q. to: + + Paolo Nenzi <p.nenzi@ieee.org>. + + Send your comments about ngspice to: + + Paolo Nenzi <p.nenzi@ieee.org>. + + + 4.2. Formats in which this FAQ is available + + This document is available only in ASCII format in the ngspice source + package. + + + 4.3. Authorship and acknowledgements + + Parts of the questions and answers are originate from Paolo Nenzi. + + + 4.4. Disclaimer and Copyright + + This document is provided as is. The information in it is not + warranted to be correct: you use it at your own risk. diff --git a/Windows/spice/doc/INSTALL b/Windows/spice/doc/INSTALL new file mode 100644 index 00000000..23c1f877 --- /dev/null +++ b/Windows/spice/doc/INSTALL @@ -0,0 +1,699 @@ +Ngspice installation instructions +================================= + +Table of contents + + 1 Ngspice installation (LINUX) + 1.1 Prerequisites + 1.2 Install from tarball (e.g. ngspice-26.tar.gz) + 1.3 Install from git repository + 1.4 Advanced Install + 1.4.1 Most useful options + 1.4.2 Options Specific to Using Ngspice + 1.4.3 Options Useful for Debugging Ngspice + 2 Compilers and Options + 3 Compiling For Multiple Architectures + 4 Installation Names + 5 Optional Features + 6 Specifying the System Type + 7 Sharing Defaults + 8 Operation Controls + 9 NGSPICE COMPILATION UNDER WINDOWS OS + 9.1 How to make ngspice with MINGW and MSYS + 9.2 make ngspice with MS Visual Studio 2008 + 9.3 make ngspice with pure CYGWIN + 9.4 ngspice console app with MINGW or CYGWIN + + +This file describes the procedures to install ngspice from sources. + + +1 Ngspice Installation (LINUX, maybe others) + ==================== + +1.1 Prerequisites + + Ngspice is written in C and thus a complete C compilation environment + is needed. Almost any LINUX offers a complete C development environment. + Ngspice is developed on GNU/Linux with gcc and GNU make. + + The following software must be installed in your system to compile ngspice: + bison, flex, and X11 headers and libs. + + If you want to compile the source from the git repository you need + additional software: autoconf, automake, libtool, texinfo, readline. + + The following software may be needed when enabling additional features: + editline, tcl/tk, adms + + Please have a look at the actual ngspice manual, downloadable at + http://ngspice.sourceforge.net/docs.html, which gives you much more + information on ngspice and its usage. + + +1.2 Install from tarball (e.g. ngspice-26.tar.gz) + + This covers installation from a release distribution (for example + ngspice-26.tar.gz, the so called tar ball). + + After downloading the tar ball to a local directory unpack it using: + + $ tar -zxvf ngspice-26.tar.gz + + Now change directories in to the top-level source directory (where this + INSTALL file can be found). + + You should be able to do: + + $ mkdir release + $ cd release + $ ../configure --with-x --with-readline=yes --disable-debug + $ make + $ sudo make install + + The default install directory for executables is /usr/local/bin. + + A simple ../configure might be sufficient for a basic ngspice, but the preferred + arguments to ../configure are + --with-x --with-readline=yes and --disable-debug + providing you with a comfortably working ngspice (see section 1.4 for details). + + See the section titled 'Advanced Install' for instructions about additional arguments + that can be passed to ../configure to customise the build and installation. + + Do not use the script ./autogen.sh, because it is not required for + compiling and installing ngspice from the tarball. + + A fully featured ngspice on LINUX may be obtained with the following commands: + $ mkdir release + $ cd release + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp + $ make 2>&1 | tee make.log + $ sudo make install + + To remove the executables and libraries from the install directory, you may call + $ sudo make uninstall + + +1.3 Install from the git repository + + This section describes how to install from source code taken directly + from the git repository. It is intended for those who want to use the most + recent enhancements of ngspice and for developers. For user install + instructions using source from a released distributions, please see the + sections titled 'Install from tarball' and 'Advanced Install'. + + Download ngspice sources from the git repository as described on the sourceforge project page + (see http://ngspice.sourceforge.net/download.html and click on the git link) + + Now change directories in to the top-level source directory (where this + INSTALL file can be found). + + The project uses the GNU build process. The compile output should go into a separate + directory, so to e.g. maintain separate debug and release versions. + + $ ./autogen.sh + $ mkdir debug + $ cd debug + $ ../configure --with-x --with-readline=yes + $ make + $ sudo make install + + See the section titled 'Advanced Install' for instructions about arguments + that can be passed to ./configure to customise the build and installation. + + Preferred arguments to ./configure to obtain a comfortably working ngspice may be + --with-readline=yes and --disable-debug (for a smaller and speed optimized + executable). + + A fully featured ngspice on LINUX may be obtained with the following commands: + $ ./autogen.sh --adms + $ mkdir release + $ cd release + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms + $ make 2>&1 | tee make.log + $ sudo make install + + If a problem is found with the build process, please submit a report to + the ngspice development team. Please provide information about your system + and any ./configure arguments you are using, together with any error + messages. Ideally you would have tried to fix the problem yourself first. + If you have fixed the problem then the development team will love to hear + from you. + + +1.4 Advanced Install + + Some extra options can be provided to './configure'. To get all available + options do: + + $ ./configure --help + + Some of these options are generic to the GNU build process that is used by + Ngspice, other are specific to Ngspice. + + The following sections provide some guidance and descriptions for many, + but not all, of these options. + + 1.4.1 Most useful options: + + --enable-adms + ADMS is an experimental model compiler that translates + Verilog-A compact models into C code that can be compiled into + ngspice. This is (as of ngspice-26) still experimental, some + features (e.g. noise) are missing. If you want to use it, please + refer to the ADMS section on ngspice web site. + + --enable-cider + Cider is a mixed-level simulator that couples Spice3 and DSIM + to simulate devices from their technological parameters. + + --enable-xspice + Enable XSpice enhancements, + A mixed signal simulator built upon spice3 with codemodel + dynamic loading support. See the ngspice manual for details. + + --with-readline=yes + Enable GNU readline support for the command line interface. + + --enable-openmp + Compile ngspice for multi-core processors. + Parallelization is done by OpenMP, for MOS models in BSIM3.3.0 + BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details. + + --disable-debug + This option will remove the '-g' option passed to the compiler + and add -O2 optimisation (instead of default O0). + This speeds up simulating significantly, and is recommended for + normal use. + + +1.4.2 Options Specific to Using Ngspice + +Most of the options now following are not well maintained, are not tested or even maybe obsolete. + + --enable-capbypass + Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd + voltages are unchanged. + + --enable-cluster + Clustering code for distributed simulation. This is a + contribution never tested. This code comes from TCLspice + implementation and is implemented for transient analysis only. + + --enable-expdevices + Enable experimental devices. This option is used by developers + to mask devices under development. Almost useless for users. + + --enable-experimental + This enables some experimental code. Specifically it enables: + * The ability to save and load snapshots: adds + interactive keywords 'savesnap' and 'loadsnap'. + + --enable-help + Force building nghelp. This is deprecated. + + --enable-ndev + Enable NDEV interface, (experimental, needs updating) + A TCP/IP interface to external device simulator such as GSS. + For more information, please visit the homepage of GSS at + http://gss-tcad.sourceforge.net + + --enable-newpred + Enable the NEWPRED symbol in the code. + + --enable-newtrunc + Enable the newtrunc option + + --enable-nodelimiting + Experimental damping scheme + + --enable-nobypass + Don't bypass recalculations of slowly changing variables + + --enable-predictor + Enable a predictor method for convergence + + --enable-sense2 + Use spice2 sensitivity analysis + + --enable-xgraph + Compile the Xgraph plotting program. + Xgraph is a plotting package for X11 and was once very popular. + + --with-editline=yes + Enables the use of the BSD editline library (libedit). + See http://www.thrysoee.dk/editline/ + + --with-tcl=tcldir + When configured with this option the tcl module + "tclspice" is compiled and installed instead of + plain ngspice. + + --with-ngshared + This option let you compile ngspice as a shared + library or dll, allowing an application controlling + ngspice. This option excludes using --with-x or + --with-wingui. Useful additional options are + --enable-xspice --enable-cider --enable-openmp. + No graphics inetrface is provided, this has to be + handled by the controlling application. + + +1.4.3 Options Useful for Debugging Ngspice + + --enable-ansi + Configure will try to find an option for your compiler so that + it expects ansi-C. + +--enable-asdebug + Debug sensitivity code *ASDEBUG*. + + --enable-blktmsdebug + Debug distortion code *BLOCKTIMES* + + --enable-checkergcc + Option for compilation with checkergcc. + + --enable-cpdebug + Enable ngspice shell code debug. + + --disable-debug + This option will remove the '-g' option passed to the compiler. + This speeds up compilation a *lot*, and is recommended for + normal use. + + --enable-ftedebug + Enable ngspice frontend debug. + + --enable-gc + Enable the Boehm-Weiser Conservative Garbage Collector. + + --enable-pzdebug + Debug pole/zero code. + + --enable-sensdebug + Debug sensitivity code *SENSDEBUG*. + + --enable-smltmsdebug + Debug distortion code *SMALLTIMES* + + --enable-smoketest + Enable smoketest compile. + + --enable-stepdebug + Turns on debugging of convergence stepping?? + + +2 Compilers and Options + ===================== + + Some systems require unusual options for compilation or linking that + the `configure' script does not know about. You can give `configure' + initial values for variables by setting them in the environment. Using + a Bourne-compatible shell, you can do that on the command line like + this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + + Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +3 Compiling For Multiple Architectures + ==================================== + + You can compile the package for more than one kind of computer at the + same time, by placing the object files for each architecture in their + own directory. To do this, you must use a version of `make' that + supports the `VPATH' variable, such as GNU `make'. `cd' to the + directory where you want the object files and executables to go and run + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another + architecture. + +4 Installation Names + ================== + + By default, `make install' will install the package's files in + `/usr/local/bin', `/usr/local/man', etc. You can specify an + installation prefix other than `/usr/local' by giving `configure' the + option `--prefix=PATH'. + + You can specify separate installation prefixes for + architecture-specific files and architecture-independent files. If you + give `configure' the option `--exec-prefix=PATH', the package will use + PATH as the prefix for installing programs and libraries. + Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give + options like `--bindir=PATH' to specify different values for particular + kinds of files. Run `configure --help' for a list of the directories + you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed + with an extra prefix or suffix on their names by giving `configure' the + option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + When installed on MinGW with MSYS alternative paths are not fully supported. + See 'How to make ngspice with MINGW and MSYS' below for details. + + +5 Optional Features + ================= + + Some packages pay attention to `--enable-FEATURE' options to + `configure', where FEATURE indicates an optional part of the package. + They may also pay attention to `--with-PACKAGE' options, where PACKAGE + is something like `gnu-as' or `x' (for the X Window System). The + `README' should mention any `--enable-' and `--with-' options that the + package recognizes. + + For packages that use the X Window System, `configure' can usually + find the X include and library files automatically, but if it doesn't, + you can use the `configure' options `--x-includes=DIR' and + `--x-libraries=DIR' to specify their locations. + +6 Specifying the System Type + ========================== + + There may be some features `configure' can not figure out + automatically, but needs to determine by the type of host the package + will run on. Usually `configure' can figure that out, but if it prints + a message saying it can not guess the host type, give it the + `--host=TYPE' option. TYPE can either be a short name for the system + type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + + See the file `config.sub' for the possible values of each field. If + `config.sub' isn't included in this package, then this package doesn't + need to know the host type. + + If you are building compiler tools for cross-compiling, you can also + use the `--target=TYPE' option to select the type of system they will + produce code for and the `--build=TYPE' option to select the type of + system on which you are compiling the package. + +7 Sharing Defaults + ================ + + If you want to set default values for `configure' scripts to share, + you can create a site shell script called `config.site' that gives + default values for variables like `CC', `cache_file', and `prefix'. + `configure' looks for `PREFIX/share/config.site' if it exists, then + `PREFIX/etc/config.site' if it exists. Or, you can set the + `CONFIG_SITE' environment variable to the location of the site script. + A warning: not all `configure' scripts look for a site script. + +8 Operation Controls + ================== + + `configure' recognizes the following options to control how it + operates. + + `--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + + `--help' + Print a summary of the options to `configure', and exit. + + `--quiet' + `--silent' + `-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + + `--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + + `--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + + `configure' also accepts some other, not widely useful, options. + + + +9 NGSPICE COMPILATION UNDER WINDOWS OS + ==================================== + +9.1 How to make ngspice with MINGW and MSYS + + Creating ngspice with MINGW is a straight forward procedure, + if you have MSYS/MINGW installed properly. You will need some enhancements + to the standard install (FLEX and BISON have to be made available in MSYS). + Some links are given below which describe the procedures. + + Installing from the tarball, e.g. ngspice-26.tar.gz, is now simple: After + expanding, you may just run ./compile_min.sh from the ngspice-26 directory. + + The default installation location of ngspice is the Windows path + C:\spice. The install path can be altered by passing --prefix=NEWPATH + as an argument to ./configure during the build process. + + Put the install path you desire inside "", e.g. "D:/NewSpice". Be + careful to use forward slashes "/", not backward slashes "\" (something + still to be fixed). Then add --prefix="D:/NewSpice" as an argument to + ./configure in the normal way. + + The procedure of compiling a distribution (for example, a tarball from + the ngspice website), is as follows: + + $ cd ngspice-26 + $ mkdir release + $ cd release + $ ../configure --with-wingui ...and other options + $ make + $ make install + + The most useful options are: + --enable-xspice + --enable-cider + --disable-debug (-O2 optimization, no debug information) + + A fully featured ngspice on Windows may be obtained with the following commands: + $ ./autogen.sh --adms + $ mkdir release + $ cd release + $ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms + $ make install + + However, to compile code extracted from the git repository the procedure is + a little different. Firstly install git, e.g. from http://git-scm.com/download/win + To obtain ngspice, you may do the following: + + Open the git command window. Go to a directory of your choice, e.g. D:\Spice + $ cd /d/Spice + + Issue the command for downloading ngspice: + $ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice + + This will create directory /ngspice . + + Go to directory ngspice + $ cd /d/Spice/ngspice + Start compiling, e.g. by calling + $ ./autogen.sh --adms + $ ./compile_min.sh + + Update the ngspice files: + Go to directory ngspice + $ cd /d/Spice/ngspice + Issue command for update + $ git pull + + Instead of calling ./compile_min.sh, you may choose to issue + individual commands like: + $ cd ngspice + $ ./autogen.sh + $ mkdir release + $ cd release + $ ../configure --enable-maintainer-mode --with-wingui ...and other options + $ make + $ make install + + MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of + ngspice and the code models *.cm for XSpice requires installation of BISON + and FLEX to MSYS. A typical installation was tested with: + + bison-2.0-MSYS.tar.gz + flex-2.5.4a-1-bin.zip + libiconv-1.9.2-1-bin.zip + libintl-0.14.4-bin.zip + + Bison 2.0 is now superseeded by newer releases (Bison 2.3, see + http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879) + + The last three are from + http://sourceforge.net/project/showfiles.php?group_id=23617. + + Installing from git needs more packages to MSYS in advance: + git, automake, autoconf, libtool + + You may also look at + http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite + http://www.mingw.org/wiki/MSYS + http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment. + + An alternative compiler setup is available at + http://tdm-gcc.tdragon.net/ + + +9.2 make ngspice with MS Visual Studio 2008 + + ngspice may be compiled with MS Visual Studio 2008 or 2010. + + CIDER and XSPICE are included, but the code models for XSPICE + (*.cm) are not (yet) made. You may however use the code models + created with MINGW (which in fact are dlls), as e.g. found in + the ngspice binary distribution our made as described in 9.1. + + There is currently no installation procedure provided, you may + however install the executable manually as described in the + installation tree below. + + The directory (visualc) with its files + vngspice.sln (project starter) and + vngspice.vcproj (project contents) + allows to compile and link ngspice with MS Visual Studio 2008. + Newer Visual Studio versions will translate the project files + into their compatible format (tested with MS Visual Studio 2010). + + /visualc/include contains a dedicated config.h file. It contains the + preprocessor definitions required to properly compile the code. + strings.h has been necessary during setting up the project. + + Install Microsoft Visual Studio 2008 C++ . The + MS VS 2008 C++ Express Edition (which is available at no cost from + http://www.microsoft.com/express/product/default.aspx) is adequate. + + Goto /ngspice/visualc. + + Start MS Visual Studio 2008 by double click onto vngspice.sln. + + After MS Visual Studio has opened up, select debug or release version + by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'. + + Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and + 'vngspice neu erstellen'. + + Object files will be created and stored in visualc/debug or visualc/release. + The executable will be stored to visualc/debug/bin or visualc/release/bin. + + An installation tree (as provided with MINGW make install) and also used by + vngspice is (maybe created manually): + + C:\Spice\ + bin\ + ngspice.exe + nghelp.exe + ngmakeidx.exe + ngnutmeg.exe + cmpp.exe + lib\ + spice\ + analog.cm + digital.cm + spice2poly.cm + extradev.cm + extravt.cm + share\ + info\ + dir + ngspice.info + ngspice.info-1 + .. + ngspice.info-10 + man\ + man1\ + ngmultidec.1 + ngnutmeg.1 + ngsconvert.1 + ngspice.1 + ngspice\ + helpdir\ + ngspice.idx + ngspice.txt + scripts\ + ciderinit + devaxis + devload + setplot + spectrum + spinit + + If you intend to install vngspice into another directory, e.g. D:\MySpice, + you have to edit /visualc/include/config.h and alter the entries: + #define NGSPICEBINDIR "C:/Spice/bin" + #define NGSPICEDATADIR "C:/Spice/share/ngspice" + to + #define NGSPICEBINDIR "D:/MySpice/bin" + #define NGSPICEDATADIR "D:/MySpice/share/ngspice" + + If the code model files *.cm are not available, you will get warning messages, + but you may use ngspice in the normal way (of course without XSPICE extensions). + + + +9.3 make ngspice with pure CYGWIN + + If you don't have libdl.a you may need to link libcygwin.a + to libdl.a symbolically. + + for example: + + $ cd /lib + $ ln -s libcygwin.a libdl.a. + + The procedure of compiling is the same as Linux. + + +9.4 ngspice console app with MINGW or CYGWIN + + Omitting the configure flag --with-wingui will yield a console ngspice. + You then will not have any graphics interface. In CYGWIN you may add --with-x + for the X11 graphics (not available in mingw). A typical configure command + may look like + ./configure --enable-adms --enable-xspice --enable-cider --enable-openmp + --disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice + tested with TDM mingw. + + + +10 NGSPICE COMPILATION UNDER MAC OS X + ================================== + +10.1 Use precompiled binary package + 1. Install an X11 interface (like Xquartz) + 2. Install the downloaded NGSPICE package + 3. Open a terminal window and start using NGSPICE + +10.2 Compile NGSPICE manually from a tarball + 1. Install an X11 interface (like Xquartz) + 2. Install MacPorts from http://www.macports.org + 3. Execute this command: + sudo port install bison flex ncurses xorg-libXaw + 4. Configure NGSPICE invoking "./configure". A complete set of feature is: + ./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no + 5. Compile NGSPICE invoking "make" + 6. Install NGSPICE invoking "make install" or "sudo make install" + +10.3 Compile NGSPICE manually from git + 1. Install an X11 interface (like Xquartz) + 2. Install MacPorts from http://www.macports.org + 3. Execute this command: + sudo port install automake autoconf libtool bison flex ncurses xorg-libXaw + 4. Execute this command: + ./autogen.sh or ./autogen.sh --adms (if you want to enable ADMS) + 5. Configure NGSPICE invoking "./configure". A complete set of feature is: + ./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no + ./configure --enable-adms --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no (if you want to enable ADMS) + 6. Compile NGSPICE invoking "make" + 7. Install NGSPICE invoking "make install" or "sudo make install" diff --git a/Windows/spice/doc/NEWS b/Windows/spice/doc/NEWS new file mode 100644 index 00000000..dcbf695a --- /dev/null +++ b/Windows/spice/doc/NEWS @@ -0,0 +1,578 @@ +Ngspice-26, Jan 4th, 2014 +============ + +- New features: + + fft command may (optionally) use fftw3 library + + add nint() rounding function + + usage of 'temper' in behavioral devices + + check for soa (safe operating area) in several device models + + library processing rewritten completely to enhance ngspice + compatibility (.lib) + + include file processing rewritten to allow nesting and various + absolute and relative path names (.inc) + + asinh, acosh, atanh functions + + shared ngspice option added: ngspice optionally compiles as + a shared object or dynamic link library + + use a hash table to massively speed up parsing the netlist + + implement a very basic .if/.else block + + implement a signed power function `pwr' for controlled sources + + implement multiplier `m' in F, G source + + apply Area Calculation Method (ACM) to the bsim3v3.3 model + + implement `tc1', `tc2' instance parameters + +- Bug fixes: + + many, many ... please see + http://sourceforge.net/p/ngspice/ngspice/ci/master/tree/ + and check the 'history' button on the upper right. + + removed memory leaks + + +Ngspice-25, Jan 4th, 2013 +============ + +- New features: + + add temperature coefficients for B source + + commands "mdump", "mrdump" to dump matrix to file + + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C + + Enable ctrl-c to interrupt a simulation also for Windows GUI + + tests/bsim4: use the standard CMC model qa check + + implement exit code for command "quit" + + .nodeset all = value + + memristor code model in extradev + + new scalable diode model including tunnel component + + variable xtrtol may override the XSPICE reduction of trtol + + XSPICE example: delta-sigma converter + + XSPICE: new d_source model + + new option noopac + + bsim3: make additonal parameters accessible with @mxx[par] + + enable Mac OS X compilation + + option reseries = val + + commands "snsave", "snload" + + update hisim to version 2.7.0, new qa tests + + hisimhv update to version 1.2.3, new qa tests + + allow Ctrl-d to quit + + jfet model temperature extension, tcv and bex parameter + + speed up vector handling by hash table for vector address storage and retrieval + + update PSS code + + +- Bug fixes: + + many, many ... please see + http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0 + + remove memory leaks + + update tclspice for MS Windows + + adms3 removed due to licensing issues + + +Ngspice-24, Jan 29th, 2012 +============ + +- New features: + + .csparam allows to tranfer a param into a vector in .control ... .endc + + functions floor and ceil + + syntax Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2) + + syntax Gxxx n1 n2 value={equation} or Exxx n1 n2 value={equation} + + variable strict_errorhandling to exit ngspice with exit code 1 + if any error occurs during circuit parsing + + command altermod allows reading from file + + command "devhelp" to show available devices and describe device parameters + + command "inventory" to print the number of istances of each device. + + function cph(vec) delivers phase from a vector without jumps at +-PI + + enable 64 bit compilation in MS Visual Studio + + --adms3 flag to compile with (experimental) adms code + + still very experimental pss code + + command 'remcirc' to remove a circuit from the list + + command 'wrdata' aknowledges appendwrite and prints complex variables + + allow comment lines inside of command files + + path variable NGSPICE_INPUT + + 'Filesource' code model + +- Bug fixes: + + More on prototypes, type casts, reordering of functions, compiler warnings + + fix a numerical problem in the hisim2 and hisimhv models + + plot i(vdd) from a loaded rawfile + + fix the guard for device generated internal nodes (via CKTmkVolt()) + + reduce memory leaks for command 'reset' + + parameter processing for nested .subckt + + bsim4/b4noi.c: correct init the correlated noise slot in noiseDens and lnNdens vector + + Many small bugs + +Ngspice-23, June 5th, 2011 +============ + +- New features: + + Reduction of trtol to 1 only if 'A' devices in the circuit and xspice is enabled + + command wrs2p to write a s-parameter file using Touchstone vers. 1 format + + d_source d_state d_ram, test cases for those xspice codemodels + + transient noise simulation added to independent voltage and current sources + + Random telegraph noise added to independent voltage and current sources + + 'time = nnn' in stop command added + + random voltage generator option trrandom to independent voltage and current sources + + ngspice build possible in a separate directory (e.g. in ng-spice-rework/release) + + update FIND .. WHEN measurements + + diode & bjt temperature model update with tlev and tlevc + + merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1 + + bjt2: removed - all GP extensions of this model are now in the bjt model + + HiSIM_HV model vers. 1.2.1 added + + bsim3v32: delvto and mulu0 as instance parameters + + Replace HiSIM1 by HiSIM_2.5.1_Release_20110407 + +- Bug fixes: + + More on prototypes, type casts, reordering of functions, compiler warnings + + allow models like 2N2904 or 2SK136 also in subcircuits + + fix sensitvity calculation (for the dc-2+.cir testcase) + + allow multiple call to setup w/ correct node collapsing + + Many small bugs + +Ngspice-22, Sept 26th, 2010 +============ + +- New features: + + OpenMP multicore support for BSIM3, BSIM4, and BSIMSOI4 + + reinstate {$var} expansion in interactive interpreter + + .TITLE line added + + update to 'spectrum' script + + par('expression') in .four, .plot, .print, .meas, .save commands + + command 'option' for use in spinit, .spiceinit, and in scripts + + adms procedure updated + + new random number generator, random functions sunif() and sgauss() + + ngspice manual updated + +- Bug fixes: + + Major code cleanup to reduce compiler/linker warnings: ansi function prototypes, + void/char pointers to named pointers, explicit type casts and many more + + Many small bugs + + +Ng-spice-rework-21, Jun3, 13th 2010 +============ + +- Updated Devices: BSIMSOI 4.3.1 + +- New features: + + Compatibility: C, L, R, devices and E, G sources with expressions + Variables HERTZ, TIME, TEMPER added + + E, G sources with pwl function + + New manual + + Plotting with Gnuplot, + + Writing wrdata for simple text table to file + + .measure improved + + transmission line models improved + +- Bug fixes: + + Many small bugs, memory leaks, memory overflows + +Ng-spice-rework-20, November, 16th 2009 +============ + +Ngspice release 20 is the second release of the simulator in 2009. + +- Fixes: model names starting with a number (1n4001) are now correctly parsed. + The .global command has been reinstated (it was previously disabled) and + error messages now display the corresponding line numberin the input deck. +- New Features: .measure command for transient, ac and dc analyses (still not + complete, e.g. DERIV is missing). +- Devices: Updated BISM4 model to revision 4.6.5. Added PWL (PieceWise Linear) + functionality for B (arbitrary generator) sources. + + +Ng-spice-rework-19, April, 23rd 2009 +============ + +Ngspice release 19 came early after release 18. It reveals an important work +in compile scripts, many bug fixes in memory management, interface, and work in device models. + +- Compile scripts: tclspice and ADMS compiling fixes. Architecture compiling + fixes for SunOS, MS Visual Studio, MINGW, Cygwin. +- Memory management: fixed memory leaks, modifies memory management for + MS Windows, integration of espice bugfixes and enhancements, bug fixes in + plots and cli interface. +- Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models + mextram, hicum0, hicum2. + + +Ng-spice-rework-18 +============ + +Rework-18 is introduces several new features into ngspice. This is a major +release that comes after more than three years. During the silent years +ngspice developers worked in CVS to stabilize and introduce new features +into the simulator. + +- Tclspice simulator library has been merged with ngspice. Now you can + compile ngapice or tclspice by asserting a configure switch. See README.tcl +- New options have been introduced: brief, listing, autostop and scale +- Support for .lib file has been introduced. This allows the use of + third party model libraries in ngspice. +- .measure statements: avg, integ, rms, max, min, delay, param +- .global statements t support for global nodes whose name is not expanded + when flattening the netlist. +- .func macros for inlining functions into netlists. +- Improved the numparam library to support fully parametrized netlists. +- BSIM model binning. +- new multi-input gate VCVS using XSPICE extensions. + + +Ng-spice-rework-17 +============ + +This is a bug fix release. Previous release tarball did not included +an include file necessary for compiling numparam library. + + +Ng-spice-rework-16 +============ + +Rework-16 comes out after almost one year of CVS development (from +15-fixedRC3). This release improves ngspice in three ways: + +- Bug fixing: most of the bugs that affected rework-15 have been fixed, + thus ngspice is more stable, especially the xspice extension, the + subcircuit (X devices) handling and the numparam library. + +- New features: netlist syntax has been expandend allowing for end-of-line + comments. A ".global" card has beed added to define global nodes, i.e. + nodes that are not expanded in subcircuits. It is possible to define TC + for resistors on the instance line. The editline library can be used + instead of readline (no more GPL license violation). + +- Porting: ngspice now works (with xspice extension) on Windows using + MINGW/MSYS. + + +Ng-spice-rework-15 +============ + +Rework-15 release is a giant leap forward for ngspice. It incorporates +many (read most) of the improvements implemented in tclspice during the +two years long "sleep" of ngspice and adds many others. The incomplete +list of new features incorporated are: + + - Xspice simulator (with codemodel dynamic loading support): + a mixed signal simulator built upon spice3. + + - Cider simulator: + a mixed level simulator built upon spice3. + + - Numparam library: + a library that allows for parameter substitution at netlist level. + + - Improved models: + Diode model includes periphery effects and high level of injection effects, + BJT and BJT2 enhanced. + BSIM3 now includes ACM. + BSIM4 implementation corrected. + + -New models: + VBIC (3 Terminals, no excess phase and thermal network), + HiSIM. + + - Frontend leaks closed. + Now frontend works as it should. + + - Many new example file. + + - Xgraph plotting program included. + + +Ng-spice-rework-14 +============ + +This is a major release in terms of bug-fixes. Some enhancements +have been included: BSIM4 model and support for EKV model. The +source code for the latter must be obtained from EKV web site +(see DEVICE for more info). To enable EKV support you have +to obtain the code first and then use the configure switch +"--enable-ekv". + +The spice code contains an option to debug frontend code, now +this is available in configure as "--enable-ftedebug". + + + +Ng-spice-rework-13 +============ + +This is a major release in terms of fixes and enhancements. +A garbage collector support has been added. If the configuration +script detects that you have installed GC (Bohem-Weiser conservative +garbage collector), it will use it. Some memory leaks have been +fixed too. + +Enhancements to the code comes from Alan's contribute code, a +description of improvements follows (extracted form Alan's mail): + +Output File Format Changes - + + (NOTE: Do not rely on this, we may revert to the old format + in the next release). + + Text mode .OP results even though "rawfile" written. + + Internal device nodes are not saved to "rawfile" (reduces + file size). Optionally, these internal nodes can be replaced + by device currents and saved. + + +DC Convergence Enhancements - + + "Source-Stepping" algorithm modified with a "Dynamic" step size. + After each successful step, the node voltages are saved, the + source-factor is increased by the step-factor, and the step-factor + is increased (for the next step). If the step fails, i.e. the + circuit does not converge, the source-factor is set to the value + from the previous successful step, the previously stored node + voltages are restored, the step-factor is reduced, the source + factor is increased by this smaller step-factor, and convergence + is attempted again. + + Same thing done for "Gmin-stepping" algorithm. + + "Gshunt" option added. This sets the "diagGmin" variable used in + the gmin-stepping algorithm to a non-zero value for the final + solution. (Normally this is set to zero for the final solution). + This helps for circuits with floating nodes (and for some others + too). + + The Gmin implementation across the substrate diodes of MOS1, MOS2, + MOS3, MOS6 and BSIM3 devices, and across BJT base-emitter and + base-collector diodes, was incorrect. Correcting this dramatically + improved DC convergence. (I think this also affects BSIM1 and 2 + but I haven't fixed them yet !) + + The gm, gmb and gds calculations in the MOS3 model were all wrong. + The device equations were fixed, leading to much improved + convergence. + + The Vcrit value used for diode voltage limiting was calculated + without taking into account the device area (and in some cases + without using the temperature corrected saturation current). + This could cause floating point overflows, especially in device + models designed to be scaled by a small area, e.g. 2u by 2u diodes + (area=4e-12). This is now fixed for Diode, BJT, MOS1, MOS2, and + MOS3 models. + + The diode voltage limiting was modified to add negative voltage + limiting. Negative diode voltages are now limited to 3*Vdp-10, + where Vdp is the voltage from the previous iteration. If Vdp is + positive, then the voltage is limited to -10V. This prevents some + more floating point overflows. (Actually, I'm still playing with + the best values for this). + + The Spice3 "fix" for the MOS3 gds discontinuity between the + linear and saturated regions only works if the VMAX parameter + is non-zero. A "tweak" has been added for the VMAX=0 case. + + +Transient Convergence Enhancements - + + Temperature correction of various diode capacitances was implemented + slightly incorrectly, leading to capacitance discontinuities in + simulations at temperatures other than nominal. This affected the + Diode and MOS3 models. + + A mistake in the implementation of the MOS3 source-bulk capacitance + model resulted in a charge storage discontinuity. This has been fixed. + + The level 2 MOSFET model seems to calculate Von and Vth values for + the threshold and subthreshold values respectively, but then uses + Vbin to calculate the Vdsat voltage used to find the drain current. + However, a jump statement uses Von to decide that the device is in + the "cutoff" region, which means that when this jump allows the + drain current to be calculated, Vdsat can already be well above + zero. This leads to a discontinuity of drain current with respect + to gate voltage. The code is now modified to use Vbin for the jump + decision. It looks like the code should actually use Vth as the + threshold voltage, but since other SPICE simulators follow the + original Berkeley code, this was left alone. + + +New Model Parameters - + + A device multiplier instance parameter "M" (i.e. M devices in + parallel) was added to the MOS1,2,3 and BSIM3 mosfet models. + + +Input Read-in and Checking - + + Numbers beginning with a + sign got the input routine confused. + Fixed now. + + Attempts to nodeset (or .IC) non-existent nodes are flagged with a + warning. + + PWL statements on Voltage or Current sources are now checked for + "non-increasing" time-points at the start of the simulation. + Previously each time-point was checked as it was reached during + the simulation, which could be very annoying if you made a mistake + which caused the simulation to fail after hours of run-time. + + A check which was performed at the end of each sub-circuit expansion + was moved to the top level. This check makes sure that all sub-circuits + have been defined, but in its original position, it meant that if a + sub-circuit included ANY .MODEL statements at all, then ALL the models + called in that sub-circuit must also be defined within that + sub-circuit. Now SPICE behaves as expected, i.e. a subcircuit may + define its own models, but may also use models defined at any level + above. + + +Miscellaneous Fixes/Enhancements - + + MOS devices reported only half of the Meyer capacitances, and did not + include overlap capacitances, when reporting to the .OP printout, or + when storing device capacitances to the "rawfile". + + The ideal switch devices had no time-step control to stop their + controlling voltages/currents overshooting the switching thresholds. + The time-step control has been modified to use the last two time + points to estimate if the next one will move the controlling + voltage/current past a switching threshold. If this looks likely, + then the time-step is reduced. + + The "rawfile" writing routines have been modified to print the + "reference value" to the console during the simulation. This lets + the user see exactly how far and how fast the simulation is + proceeding. + + .OP printout tidied up a lot to make the printout clearer. + + Analysis order changed to fix a "feature" where, if you ask for + a .OP and a .TRAN in the same simulation, the node voltages + printed out correspond to the .OP, but the device data was from + the last timepoint of the .TRAN + + +Etc. - + + There are other minor bug fixes, and changes to reduce compiler + warnings. There are probably some more significant fixes which + I've forgotten :-) + + +Ng-spice-rework-12 +============ +Arno did a great work this summer! +The pole-zero analysis has been corrected. The error was introduced +in an attempt to eliminate compiler warnings. The source has been +reworked and info file have been updated. As you may see, a new dir +called "spicelib" has been created, another step toward the separation +of the simulator from the frontend. + +Ng-spice-rework-11 +============ + +Resistor code (device) has been modified to conform to spice3 device +coding standard. +A new step function (U2) has been introduced. +Documentation updated. + +Ng-spice-rework-10 +============ + +Added BSIM4 model and closed a couple of serious bugs. Added DEVICES +file to distribution. This file contains the status of device models +in this simulator. Read it, this file can save you a lot of time. + +Ng-spice-rework-9 +============ + +Thanks to Arno Peters now all device models are dynamically loaded on +demand. They are linked as shared libraries. The next step is the +dlopen() one which will make possible to link devices without any +recompilation. + + + +Ng-spice-rework-8 +============ + +Applied Arno's patch. + +From his mail message: + +Hi Paolo, + +I have prepared a source cleaning patch. + +Features: + + + patches don't get polluted with differences between automatically + generated Makefile.am files. Usually these make up the biggest part + of the patches. This allows me to read the patch on the mailing + list instead of sifting through 90% redundant and irrelevant changes. + + + the shell script autogen.sh automatically regenerates the required + files if the user has automake, autoconf and libtool installed. + + + this feature is only valuable to developers, not to end users. + + +Usage of this patch, once incorporated: + + # create a working tree to work from + cp -a ng-spice-rework-x ng-spice + + [ Changes made to ng-spice ] + + # clean up all the automatically generated files + cd ng-spice; make maintainer-clean + + # extract the differences + diff -ruN ng-spice-rework-x ng-spice > my.patch + + [ Patch sent to ng-spice mailing list or you ] + + # incorporate changes into the tree + cd ng-spice-rework-x; patch -p1 < my.patch + + # update the automatically generated files + cd ng-spice-rework-x; sh autogen.sh + + + + +Ng-spice-rework-7 (22 Mar 2000) +============ + +Bug fix release + + + +Ng-spice-rework-6 (29 Jan 2000) +============ + +This porting includes: + +1) BSIM3V3.1 model as level 49. This is the version modified by Serban +Popescu which understands the M parameter and implements HDIF. + +2) BSIM3V3.2 model al Level 50. This is the standard Berkeley version. + +3) Now the resistor model can accepts two different values for DC and +AC resistance. + + + +Ng-spice-rework-5 and 5_2 (Jan 2000) +============ + +Internal development release, buggy and not working. + +Ng-spice-rework-4 (22/12/99) +============ + +This porting includes a new feature: + +1) dynamically loading of some device code as an experimental feature +for the future GPL simulator. Thanks to Arno Peters and Manu Rouat. + +2) Patched the following bug (thanks to Andrew Tuckey for having +supplied the patch). + + * Wsw (current controlled switch) in subckt, parsing bug. + * scale factor in arbitrary source. + * bug in noise analysis. + * save segmentation faults. + + diff --git a/Windows/spice/doc/README b/Windows/spice/doc/README new file mode 100644 index 00000000..f5dfecc5 --- /dev/null +++ b/Windows/spice/doc/README @@ -0,0 +1,54 @@ +README for NGSPICE +================== + +Ngspice is a mixed-level/mixed-signal circuit simulator. Its code +is based on three open source software packages: Spice3f5, Cider1b1 +and Xspice. + +Spice3 does not need any introduction, is the most popular circuit +simulator. In over 30 years of its life Spice3 has become a de-facto +standard for simulating circuits. + +Cider couples Spice3f5 circuit level simulator to DSIM device simulator +to provide greater simulation accuracy of critical devices. DSIM +devices are described in terms of their structures and materials. + +Xspice is an extension to Spice3C1 that provides code modelling support +and simulation of digital components through an embedded event driven +algorithm. + +Ngspice is, anyway, much more than the simple sum of the packages +above, as many people contributed to the project with their experience, +their bug fixes and their improvements. If you are interested, browse +the site and discover what ngspice offers and what needs. If you think +you can help, join the development team. + +Ngspice is an ongoing project, growing everyday from users contributions, +suggestions and reports. What we will be able to do depends mostly on +user interests, contributions and feedback. + + +MAILING LISTS: +------------- + + There are two mailing lists dedicated to the use and development of ngspice. + + * ngspice-users@lists.sourceforge.net: + This list is the list for the users of the ngspice simulator. + + * ngspice-devel@lists.sourceforge.net: + ngspice development issues. Developers and "want to be" developers should + subscribe here. + + To subscribe the list(s), send a message to: + <ngspice-users-subscribe@lists.sourceforge.net> + <ngspice-devel-subscribe@lists.sourceforge.net> + + + +WEB SITEs: +-------- + +This project is hosted on Sourceforge.net. +The home page is http://ngspice.sourceforge.net +The summary page is http://sourceforge.net/projects/ngspice diff --git a/Windows/spice/doc/ngspice26-manual.pdf b/Windows/spice/doc/ngspice26-manual.pdf Binary files differnew file mode 100644 index 00000000..4bd5b091 --- /dev/null +++ b/Windows/spice/doc/ngspice26-manual.pdf diff --git a/Windows/spice/examples/Monte_Carlo/MC_2_circ.sp b/Windows/spice/examples/Monte_Carlo/MC_2_circ.sp new file mode 100644 index 00000000..bacd07b9 --- /dev/null +++ b/Windows/spice/examples/Monte_Carlo/MC_2_circ.sp @@ -0,0 +1,109 @@ +Circuit to perform Monte Carlo simulation in ngspice +* 25 stage Ring-Osc. using inverters with BSIM3 + +vin in out dc 0.5 pulse 0.5 0 0.1n 5n 1 1 1 +vdd dd 0 dc 3.3 +vss ss 0 dc 0 +ve sub 0 dc 0 +vpe well 0 dc 3.3 + +.subckt inv1 dd ss sub well in out +mn1 out in ss sub n1 w=2u l=0.35u as=3p ad=3p ps=4u pd=4u +mp1 out in dd well p1 w=4u l=0.35u as=7p ad=7p ps=6u pd=6u +.ends inv1 + +.subckt inv5 dd ss sub well in out +xinv1 dd ss sub well in 1 inv1 +xinv2 dd ss sub well 1 2 inv1 +xinv3 dd ss sub well 2 3 inv1 +xinv4 dd ss sub well 3 4 inv1 +xinv5 dd ss sub well 4 out inv1 +.ends inv5 + +xinv1 dd ss sub well in out5 inv5 +xinv2 dd ss sub well out5 out10 inv5 +xinv3 dd ss sub well out10 out15 inv5 +xinv4 dd ss sub well out15 out20 inv5 +xinv5 dd ss sub well out20 out inv5 +xinv11 dd 0 sub well out buf inv1 +* output is buf +cout buf ss 0.2pF +* +.options noacct + +* The following model parameters are varying statistically: +* vth0, u0, tox +* see the AGAUSS function used to define the parameter +* the deviation is 10%, just for example, not measured + +******************************************************************************** +.model n1 nmos ++level=8 ++version=3.3.0 ++tnom=27.0 ++nch=2.498e+17 tox=AGAUSS(9e-09, 9e-09, 10) xj=1.00000e-07 ++lint=9.36e-8 wint=1.47e-7 ++vth0=AGAUSS(.6322,.6322,10) k1=.756 k2=-3.83e-2 k3=-2.612 ++dvt0=2.812 dvt1=0.462 dvt2=-9.17e-2 ++nlx=3.52291e-08 w0=1.163e-6 ++k3b=2.233 ++vsat=86301.58 ua=6.47e-9 ub=4.23e-18 uc=-4.706281e-11 ++rdsw=650 u0=AGAUSS(388.3203,388.3203,10) wr=1 ++a0=.3496967 ags=.1 b0=0.546 b1=1 ++dwg=-6.0e-09 dwb=-3.56e-09 prwb=-.213 ++keta=-3.605872e-02 a1=2.778747e-02 a2=.9 ++voff=-6.735529e-02 nfactor=1.139926 cit=1.622527e-04 ++cdsc=-2.147181e-05 ++cdscb=0 dvt0w=0 dvt1w=0 dvt2w=0 ++cdscd=0 prwg=0 ++eta0=1.0281729e-02 etab=-5.042203e-03 ++dsub=.31871233 ++pclm=1.114846 pdiblc1=2.45357e-03 pdiblc2=6.406289e-03 ++drout=.31871233 pscbe1=5000000 pscbe2=5e-09 pdiblcb=-.234 ++pvag=0 delta=0.01 ++wl=0 ww=-1.420242e-09 wwl=0 ++wln=0 wwn=.2613948 ll=1.300902e-10 ++lw=0 lwl=0 lln=.316394 lwn=0 ++kt1=-.3 kt2=-.051 ++at=22400 ++ute=-1.48 ++ua1=3.31e-10 ub1=2.61e-19 uc1=-3.42e-10 ++kt1l=0 prt=764.3 ++noimod=2 ++af=1.075e+00 kf=9.670e-28 ef=1.056e+00 ++noia=1.130e+20 noib=7.530e+04 noic=-8.950e-13 +**** PMOS *** +.model p1 pmos ++level=8 ++version=3.3.0 ++tnom=27.0 ++nch=3.533024e+17 tox=AGAUSS(9e-09,9e-09,10) xj=1.00000e-07 ++lint=6.23e-8 wint=1.22e-7 ++vth0=AGAUSS(-.6732829,-.6732829,10) k1=.8362093 k2=-8.606622e-02 k3=1.82 ++dvt0=1.903801 dvt1=.5333922 dvt2=-.1862677 ++nlx=1.28e-8 w0=2.1e-6 ++k3b=-0.24 prwg=-0.001 prwb=-0.323 ++vsat=103503.2 ua=1.39995e-09 ub=1.e-19 uc=-2.73e-11 ++rdsw=460 u0=AGAUSS(138.7609,138.7609,10) ++a0=.4716551 ags=0.12 ++keta=-1.871516e-03 a1=.3417965 a2=0.83 ++voff=-.074182 nfactor=1.54389 cit=-1.015667e-03 ++cdsc=8.937517e-04 ++cdscb=1.45e-4 cdscd=1.04e-4 ++dvt0w=0.232 dvt1w=4.5e6 dvt2w=-0.0023 ++eta0=6.024776e-02 etab=-4.64593e-03 ++dsub=.23222404 ++pclm=.989 pdiblc1=2.07418e-02 pdiblc2=1.33813e-3 ++drout=.3222404 pscbe1=118000 pscbe2=1e-09 ++pvag=0 ++kt1=-0.25 kt2=-0.032 prt=64.5 ++at=33000 ++ute=-1.5 ++ua1=4.312e-9 ub1=6.65e-19 uc1=0 ++kt1l=0 ++noimod=2 ++af=9.970e-01 kf=2.080e-29 ef=1.015e+00 ++noia=1.480e+18 noib=3.320e+03 noic=1.770e-13 +.end + +.end diff --git a/Windows/spice/examples/Monte_Carlo/MC_2_control.sp b/Windows/spice/examples/Monte_Carlo/MC_2_control.sp new file mode 100644 index 00000000..9b9f3606 --- /dev/null +++ b/Windows/spice/examples/Monte_Carlo/MC_2_control.sp @@ -0,0 +1,43 @@ +* Perform Monte Carlo simulation in ngspice +* script for use with 25 stage Ring-Osc. BSIM3 +* circuit is in MC_2_circ.sp +* edit 'set sourcepath' for your path to circuit file +* start script by 'ngspice -o MC_2_control.log MC_2_control.sp' +* +.control + save buf $ we just need output vector buf, save memory by more than 10x + let mc_runs = 100 $ number of runs for monte carlo + let run = 1 $ number of the actual run + +* Where to find the circuit netlist file MC_2_circ.sp + set sourcepath = ( D:\Spice_general\ngspice\examples\Monte_Carlo ) + +* create file for frequency information + echo Monte Carlo, frequency of R.O. > MC_frequ.log + +* run the simulation loop + dowhile run <= mc_runs + * without the reset switch there is some strange drift + * towards lower and lower frequencies + reset + set run ="$&run" $ create a variable from the vector + set rndseed = $run $ set the rnd seed value to the loop index + source MC_2_circ.sp $ load the circuit, including model data + tran 15p 200n 0 + write mc_ring{$run}.out buf $ write each sim output to its own rawfile + linearize buf $ lienarize buf to allow fft + fft buf $ run fft on vector buf + let buf2=db(mag(buf)) + * find the frequency where buf has its maximum of the fft signal + meas sp fft_max MAX_AT buf2 from=0.1G to=0.7G + print fft_max >> MC_frequ.log $ print frequency to file + destroy all $ delete all output vectors + remcirc $ delete circuit + let run = run + 1 $ increase loop counter + end + + quit + +.endc + +.end diff --git a/Windows/spice/examples/Monte_Carlo/MC_ring.sp b/Windows/spice/examples/Monte_Carlo/MC_ring.sp new file mode 100644 index 00000000..58e5c141 --- /dev/null +++ b/Windows/spice/examples/Monte_Carlo/MC_ring.sp @@ -0,0 +1,251 @@ +Perform Monte Carlo simulation in ngspice +* 25 stage Ring-Osc. BSIM3 + +vin in out dc 0.5 pulse 0.5 0 0.1n 5n 1 1 1 +vdd dd 0 dc 3.3 +vss ss 0 dc 0 +ve sub 0 dc 0 +vpe well 0 dc 3.3 + +.subckt inv1 dd ss sub well in out +mn1 out in ss sub n1 w=2u l=0.35u as=3p ad=3p ps=4u pd=4u +mp1 out in dd well p1 w=4u l=0.35u as=7p ad=7p ps=6u pd=6u +.ends inv1 + +.subckt inv5 dd ss sub well in out +xinv1 dd ss sub well in 1 inv1 +xinv2 dd ss sub well 1 2 inv1 +xinv3 dd ss sub well 2 3 inv1 +xinv4 dd ss sub well 3 4 inv1 +xinv5 dd ss sub well 4 out inv1 +.ends inv5 + +xinv1 dd ss sub well in out5 inv5 +xinv2 dd ss sub well out5 out10 inv5 +xinv3 dd ss sub well out10 out15 inv5 +xinv4 dd ss sub well out15 out20 inv5 +xinv5 dd ss sub well out20 out inv5 +xinv11 dd 0 sub well out buf inv1 +cout buf ss 0.2pF +* +.options noacct +.control + save buf $ we just need buf, save memory by more than 10x + let mc_runs = 10 $ number of runs for monte carlo + let run = 0 $ number of actual run + set curplot = new $ create a new plot + set curplottitle = "Transient outputs" + set plot_out = $curplot $ store its name to 'plot_out' + set curplot = new $ create a new plot + set curplottitle = "FFT outputs" + set plot_fft = $curplot $ store its name to 'plot_fft' + set curplot = new $ create a new plot + set curplottitle = "Oscillation frequency" + set max_fft = $curplot $ store its name to 'max_fft' + let mc_runsp = mc_runs + 1 + let maxffts = unitvec(mc_runsp) $ vector for storing max measure results + let halfffts = unitvec(mc_runsp)$ vector for storing measure results at -40dB rising +* +* define distributions for random numbers: +* unif: uniform distribution, deviation relativ to nominal value +* aunif: uniform distribution, deviation absolut +* gauss: Gaussian distribution, deviation relativ to nominal value +* agauss: Gaussian distribution, deviation absolut + define unif(nom, var) (nom + (nom*var) * sunif(0)) + define aunif(nom, avar) (nom + avar * sunif(0)) + define gauss(nom, var, sig) (nom + (nom*var)/sig * sgauss(0)) + define agauss(nom, avar, sig) (nom + avar/sig * sgauss(0)) +* +* We want to vary the model parameters vth0, u0, tox, lint, and wint +* of the BSIM3 model for the NMOS and PMOS transistors. +* We may obtain the nominal values (nom) by manually extracting them from +* the parameter set. Here we get them automatically and store them into +* variables. This has the advantage that you may change the parameter set +* without having to look up the values again. + set n1vth0=@n1[vth0] + set n1u0=@n1[u0] + set n1tox=@n1[tox] + set n1lint=@n1[lint] + set n1wint=@n1[wint] + set p1vth0=@p1[vth0] + set p1u0=@p1[u0] + set p1tox=@p1[tox] + set p1lint=@p1[lint] + set p1wint=@p1[wint] +* +* run the simulation loop + dowhile run <= mc_runs + * without the reset switch there is some strange drift + * towards lower and lower frequencies + reset + * run=0 simulates with nominal parameters + if run > 0 + altermod @n1[vth0]=gauss($n1vth0, 0.1, 3) + altermod @n1[u0]=gauss($n1u0, 0.05, 3) + altermod @n1[tox]=gauss($n1tox, 0.1, 3) + altermod @n1[lint]=gauss($n1lint, 0.1, 3) + altermod @n1[wint]=gauss($n1wint, 0.1, 3) + altermod @p1[vth0]=gauss($p1vth0, 0.1, 3) + altermod @p1[u0]=gauss($p1u0, 0.1, 3) + altermod @p1[tox]=gauss($p1tox, 0.1, 3) + altermod @p1[lint]=gauss($p1lint, 0.1, 3) + altermod @p1[wint]=gauss($p1wint, 0.1, 3) + end + tran 15p 50n 0 +* select stop and step so that number of data points after linearization is not too +* close to 8192, which would yield varying number of line length and thus scale for fft. +* +* We have to figure out what to do if a single simulation will not converge. +* Is there a variable which may be set if there is no convergence? +* Then we might skip this run and continue with a new run. It does not exist for now. +* So we have to rely on the robustness of the following steps not leading +* to a seg fault if the tran data are missing. +* + set run ="$&run" $ create a variable from the vector + set mc_runs ="$&mc_runs" $ create a variable from the vector + echo simulation run no. $run of $mc_runs + * save the linearized data for having equal time scales for all runs + linearize buf $ linearize only buf, no other vectors needed + set dt = $curplot $ store the current plot to dt (tran i+1) + setplot $plot_out $ make 'plt_out' the active plot + * firstly save the time scale once to become the default scale + if run=0 + let time={$dt}.time + end + let vout{$run}={$dt}.buf $ store the output vector to plot 'plot_out' + setplot $dt $ go back to the previous plot (tran i+1) + fft buf $ run fft on vector buf + let buf2=db(mag(buf)) + * find the frequency where buf has its maximum of the fft signal + meas sp fft_max MAX_AT buf2 from=0.1G to=0.7G + * find the frequency where buf is -40dB at rising fft signal + meas sp fft_40 WHEN buf2=-40 RISE=1 from=0.1G to=0.7G + * store the fft vector + set dt = $curplot $ store the current plot to dt (spec i) + setplot $plot_fft $ make 'plot_fft' the active plot + if run=0 + let frequency={$dt}.frequency + end + let fft{$run}={$dt}.buf $ store the output vector to plot 'plot_fft' + * store the measured value + setplot $max_fft $ make 'max_fft' the active plot + let maxffts[{$run}]={$dt}.fft_max + let halfffts[{$run}]={$dt}.fft_40 +* setplot $plot_out +* The following command does not work here. Why not? Probably not a real copy. +* destroy $dt $ save memory, we don't need this plot (spec) any more + setplot $dt $ go back to the previous plot + let run = run + 1 + end +***** plotting ********************************************************** +* plot {$plot_out}.allv + plot {$plot_out}.vout0 $ just plot the tran output with nominal parameters +* setplot $plot_fft +* plot db(mag(ally)) xlimit .1G 1G ylimit -80 10 + plot db(mag({$plot_fft}.ally)) xlimit .1G 1G ylimit -80 10 +* +* create a histogram from vector maxffts + setplot $max_fft $ make 'max_fft' the active plot + set startfreq=400MEG + set bin_size=5MEG + set bin_count=20 + compose xvec start=$startfreq step=$bin_size lin=$bin_count $ requires variables as parameters + settype frequency xvec + let bin_count=$bin_count $ create a vector from the variable + let yvec=unitvec(bin_count) $ requires vector as parameter + let startfreq=$startfreq + let bin_size=$bin_size + * put data into the correct bins + let run = 0 + dowhile run < mc_runs + set run = "$&run" $ create a variable from the vector + let val = maxffts[{$run}] + let part = 0 + * Check if val fits into a bin. If yes, raise bin by 1 + dowhile part < bin_count + if ((val < (startfreq + (part+1)*bin_size)) & (val > (startfreq + part*bin_size))) + let yvec[part] = yvec[part] + 1 + break + end + let part = part + 1 + end + let run = run + 1 + end + * plot the histogram + set plotstyle=combplot + plot yvec-1 vs xvec $ subtract 1 because with started with unitvec containing ones +* calculate jitter + let diff40 = (vecmax(halfffts) - vecmin(halfffts))*1e-6 + echo + echo Max. jitter is "$&diff40" MHz + rusage +.endc +******************************************************************************** +.model n1 nmos ++level=8 ++version=3.3.0 ++tnom=27.0 ++nch=2.498e+17 tox=9e-09 xj=1.00000e-07 ++lint=9.36e-8 wint=1.47e-7 ++vth0=.6322 k1=.756 k2=-3.83e-2 k3=-2.612 ++dvt0=2.812 dvt1=0.462 dvt2=-9.17e-2 ++nlx=3.52291e-08 w0=1.163e-6 ++k3b=2.233 ++vsat=86301.58 ua=6.47e-9 ub=4.23e-18 uc=-4.706281e-11 ++rdsw=650 u0=388.3203 wr=1 ++a0=.3496967 ags=.1 b0=0.546 b1=1 ++dwg=-6.0e-09 dwb=-3.56e-09 prwb=-.213 ++keta=-3.605872e-02 a1=2.778747e-02 a2=.9 ++voff=-6.735529e-02 nfactor=1.139926 cit=1.622527e-04 ++cdsc=-2.147181e-05 ++cdscb=0 dvt0w=0 dvt1w=0 dvt2w=0 ++cdscd=0 prwg=0 ++eta0=1.0281729e-02 etab=-5.042203e-03 ++dsub=.31871233 ++pclm=1.114846 pdiblc1=2.45357e-03 pdiblc2=6.406289e-03 ++drout=.31871233 pscbe1=5000000 pscbe2=5e-09 pdiblcb=-.234 ++pvag=0 delta=0.01 ++wl=0 ww=-1.420242e-09 wwl=0 ++wln=0 wwn=.2613948 ll=1.300902e-10 ++lw=0 lwl=0 lln=.316394 lwn=0 ++kt1=-.3 kt2=-.051 ++at=22400 ++ute=-1.48 ++ua1=3.31e-10 ub1=2.61e-19 uc1=-3.42e-10 ++kt1l=0 prt=764.3 ++noimod=2 ++af=1.075e+00 kf=9.670e-28 ef=1.056e+00 ++noia=1.130e+20 noib=7.530e+04 noic=-8.950e-13 +**** PMOS *** +.model p1 pmos ++level=8 ++version=3.3.0 ++tnom=27.0 ++nch=3.533024e+17 tox=9e-09 xj=1.00000e-07 ++lint=6.23e-8 wint=1.22e-7 ++vth0=-.6732829 k1=.8362093 k2=-8.606622e-02 k3=1.82 ++dvt0=1.903801 dvt1=.5333922 dvt2=-.1862677 ++nlx=1.28e-8 w0=2.1e-6 ++k3b=-0.24 prwg=-0.001 prwb=-0.323 ++vsat=103503.2 ua=1.39995e-09 ub=1.e-19 uc=-2.73e-11 ++rdsw=460 u0=138.7609 ++a0=.4716551 ags=0.12 ++keta=-1.871516e-03 a1=.3417965 a2=0.83 ++voff=-.074182 nfactor=1.54389 cit=-1.015667e-03 ++cdsc=8.937517e-04 ++cdscb=1.45e-4 cdscd=1.04e-4 ++dvt0w=0.232 dvt1w=4.5e6 dvt2w=-0.0023 ++eta0=6.024776e-02 etab=-4.64593e-03 ++dsub=.23222404 ++pclm=.989 pdiblc1=2.07418e-02 pdiblc2=1.33813e-3 ++drout=.3222404 pscbe1=118000 pscbe2=1e-09 ++pvag=0 ++kt1=-0.25 kt2=-0.032 prt=64.5 ++at=33000 ++ute=-1.5 ++ua1=4.312e-9 ub1=6.65e-19 uc1=0 ++kt1l=0 ++noimod=2 ++af=9.970e-01 kf=2.080e-29 ef=1.015e+00 ++noia=1.480e+18 noib=3.320e+03 noic=1.770e-13 +.end diff --git a/Windows/spice/examples/Monte_Carlo/MonteCarlo.sp b/Windows/spice/examples/Monte_Carlo/MonteCarlo.sp new file mode 100644 index 00000000..608dc4cf --- /dev/null +++ b/Windows/spice/examples/Monte_Carlo/MonteCarlo.sp @@ -0,0 +1,68 @@ +* Effecting a Monte Carlo calculation in ngspice +V1 N001 0 AC 1 DC 0 +R1 N002 N001 141 +* +C1 OUT 0 1e-09 +L1 OUT 0 10e-06 +C2 N002 0 1e-09 +L2 N002 0 10e-06 +L3 N003 N002 40e-06 +C3 OUT N003 250e-12 +* +R2 0 OUT 141 +.control + let mc_runs = 5 + let run = 0 + set curplot=new $ create a new plot + set scratch=$curplot $ store its name to 'scratch' + setplot $scratch $ make 'scratch' the active plot + let bwh=unitvec(mc_runs) $ create a vector in plot 'scratch' to store bandwidth data + +* define distributions for random numbers: +* unif: uniform distribution, deviation relativ to nominal value +* aunif: uniform distribution, deviation absolut +* gauss: Gaussian distribution, deviation relativ to nominal value +* agauss: Gaussian distribution, deviation absolut +* limit: if unif. distributed value >=0 then add +avar to nom, else -avar + define unif(nom, rvar) (nom + (nom*rvar) * sunif(0)) + define aunif(nom, avar) (nom + avar * sunif(0)) + define gauss(nom, rvar, sig) (nom + (nom*rvar)/sig * sgauss(0)) + define agauss(nom, avar, sig) (nom + avar/sig * sgauss(0)) +* define limit(nom, avar) (nom + ((sgauss(0) ge 0) ? avar : -avar)) + define limit(nom, avar) (nom + ((sgauss(0) >= 0) ? avar : -avar)) +* +* + dowhile run < mc_runs $ loop starts here +* +* alter c1 = unif(1e-09, 0.1) +* alter c1 = aunif(1e-09, 100e-12) +* alter c1 = gauss(1e-09, 0.1, 3) +* alter c1 = agauss(1e-09, 100e-12, 3) +* + alter c1 = unif(1e-09, 0.1) + alter l1 = unif(10e-06, 0.1) + alter c2 = unif(1e-09, 0.1) + alter l2 = unif(10e-06, 0.1) + alter l3 = unif(40e-06, 0.1) + alter c3 = limit(250e-12, 25e-12) +* + ac oct 100 250K 10Meg +* +* measure bandwidth at -10 dB + meas ac bw trig vdb(out) val=-10 rise=1 targ vdb(out) val=-10 fall=1 +* + set run ="$&run" $ create a variable from the vector + set dt = $curplot $ store the current plot to dt + setplot $scratch $ make 'scratch' the active plot + let vout{$run}={$dt}.v(out) $ store the output vector to plot 'scratch' + let bwh[run]={$dt}.bw $ store bw to vector bwh in plot 'scratch' + setplot $dt $ go back to the previous plot + let run = run + 1 + end $ loop ends here +* + plot db({$scratch}.allv) + echo + print {$scratch}.bwh +.endc + +.end diff --git a/Windows/spice/examples/Monte_Carlo/OpWien.sp b/Windows/spice/examples/Monte_Carlo/OpWien.sp new file mode 100644 index 00000000..91b45d08 --- /dev/null +++ b/Windows/spice/examples/Monte_Carlo/OpWien.sp @@ -0,0 +1,87 @@ +OPWIEN.CIR - OPAMP WIEN-BRIDGE OSCILLATOR +* http://www.ecircuitcenter.com/circuits/opwien/opwien.htm +* single simulation run +* 2 resistors and 2 capacitors of Wien bridge a varied statistically +* number of variations: varia + +* Simulation time +.param ttime=12000m +.param varia=100 +.param ttime10 = 'ttime/varia' + +* nominal resistor and capacitor values +.param res = 10k +.param cn = 16NF + +* CURRENT PULSE TO START OSCILLATIONS +IS 0 3 dc 0 PWL(0US 0MA 10US 0.1MA 40US 0.1MA 50US 0MA 10MS 0MA) +* +* RC TUNING +VR2 r2 0 dc 0 trrandom (2 'ttime10' 0 1) $ Gauss controlling voltage +* +*VR2 r2 0 dc 0 trrandom (1 'ttime10' 0 3) $ Uniform within -3 3 +* +* If Gauss, factor 0.033 is 10% equivalent to 3 sigma +* if uniform, uniform between +/- 10% +R2 4 6 R = 'res + 0.033 * res*V(r2)' $ behavioral resistor +*R2 4 6 'res' $ constant R + +VC2 c2 0 dc 0 trrandom (2 'ttime10' 0 1) +*C2 6 3'cn' $ constant C +C2 6 3 C = 'cn + 0.033 * cn*V(c2)' $ behavioral capacitor + +VR1 r1 0 dc 0 trrandom (2 'ttime10' 0 1) +*VR1 r1 0 dc 0 trrandom (1 'ttime10' 0 3) +R1 3 0 R = 'res + 0.033 * res*V(r1)' +*R1 3 0 'res' + +VC1 c1 0 dc 0 trrandom (2 'ttime10' 0 1) +C1 3 0 C = 'cn + 0.033 * cn*V(c2)' +*C1 3 0 'cn' + +* NON-INVERTING OPAMP +R10 0 2 10K +R11 2 5 18K +XOP 3 2 4 OPAMP1 +* AMPLITUDE STABILIZATION +R12 5 4 5K +D1 5 4 D1N914 +D2 4 5 D1N914 +* +.model D1N914 D(Is=0.1p Rs=16 CJO=2p Tt=12n Bv=100 Ibv=0.4n) +* +* OPAMP MACRO MODEL, SINGLE-POLE +* connections: non-inverting input +* | inverting input +* | | output +* | | | +.SUBCKT OPAMP1 1 2 6 +* INPUT IMPEDANCE +RIN 1 2 10MEG +* DC GAIN (100K) AND POLE 1 (100HZ) +EGAIN 3 0 1 2 100K +RP1 3 4 1K +CP1 4 0 1.5915UF +* OUTPUT BUFFER AND RESISTANCE +EBUFFER 5 0 4 0 1 +ROUT 5 6 10 +.ENDS +* +* ANALYSIS +.TRAN 0.05MS 'ttime' +* +* VIEW RESULTS +.control +option noinit +run +plot V(4) 5*V(r1) 5*V(r2) 5*V(c1) 5*V(c2) +linearize v(4) +fft v(4) +let v4mag = mag(v(4)) +plot v4mag +plot v4mag xlimit 500 1500 +*wrdata histo v4mag +rusage +.endc + +.END diff --git a/Windows/spice/examples/TransImpedanceAmp/README b/Windows/spice/examples/TransImpedanceAmp/README new file mode 100644 index 00000000..ea5c249d --- /dev/null +++ b/Windows/spice/examples/TransImpedanceAmp/README @@ -0,0 +1,41 @@ +This directory holds a SPICE netlist with SPICE2 POLY constructs in +controlled sources as typically found in vendor models. The circuit +is just a two-stage transimpedance amp using an AD8009, +along with some slow components (AD780 and OP177A) to set bias +points. Vendor models are used for all active components. +Successfully running this test shows that you have successfully built +the XSpice stuff with the POLY codemodel, and that you should be able +to simulate SPICE netlists with embedded vendor models. + +To run this netlist, just do the following: + +[localhost]# ngspice +ngspice 1 -> source output.net +ngspice 2 -> run +ngspice 3 -> plot Vout2 + +(Note that when you read in the netlist, you will get a bunch of +warnings saying stuff like: + +Warning -- Level not specified on line "()" +Using level 1. + +Also, ngspice will complain about: + +Error on line 50 : r:u101:1 u101:40 0 1e3 tc=7e-6 + unknown parameter (tc) +Error on line 283 : .temp 0 25 50 75 100 + Warning: .TEMP card obsolete - use .options TEMP and TNOM + +You can ignore all this stuff . . . .) + +You should get a pop-up window showing two square pulses (the second +smaller than the first) with a little bit of overshoot on the rising +and falling edges. + +This stuff was done as an adjunct to work on the gEDA project. +Information about gEDA is available at http://geda.seul.org/ . +Please direct all questions/suggestions/bugs/complaints about XSpice +extensions to ngspice to Stuart Brorson -- mailto:sdb@cloud9.net. + +6.23.2002 -- SDB. diff --git a/Windows/spice/examples/TransImpedanceAmp/output.net b/Windows/spice/examples/TransImpedanceAmp/output.net new file mode 100644 index 00000000..d6eb355f --- /dev/null +++ b/Windows/spice/examples/TransImpedanceAmp/output.net @@ -0,0 +1,454 @@ +********************************************************* +* Spice file generated by gnetlist * +* spice-SDB version 3.30.2003 by SDB -- * +* provides advanced spice netlisting capability. * +* Documentation at http://www.brorson.com/gEDA/SPICE/ * +********************************************************* +* Command stuff +.options gmin=1e-9 +.options method=gear +.options abstol=1e-11 +* .ac dec 10 10MegHz 10 Ghz +* Remainder of file +R112 0 6 1Meg +R111 0 8 10Meg +R110 0 7 1Meg +Rref2in 11 VU780out 25000 +Rref2fb VU2bias+ 11 33 +C201 0 9 1uF +C202 10 0 1uF +XU200 0 11 10 9 VU2bias+ OP177A +R202 10 +5V 22 +R201 -5V 9 22 +Rref1in VU100in- VU780out 9130 +Rref1fb VU1bias+ VU100in- 33 +XU101 +5V 7 0 6 VU780out 8 AD780A +* AD780A SPICE Macromodel 5/93, Rev. A +* AAG / PMI +* +* This version of the AD780 voltage reference model simulates the worst case +* parameters of the 'A' grade. The worst case parameters used +* correspond to those in the data sheet. +* +* Copyright 1993 by Analog Devices, Inc. +* +* Refer to "README.DOC" file for License Statement. Use of this model +* indicates your acceptance with the terms and provisions in the License Statement. +* +* NODE NUMBERS +* VIN +* | TEMP +* | | GND +* | | | TRIM +* | | | | VOUT +* | | | | | RANGE +* | | | | | | +.SUBCKT AD780A 2 3 4 5 6 8 +* +* BANDGAP REFERENCE +* +I1 4 40 DC 1.21174E-3 +R1 40 4 1E3 TC=7E-6 +EN 10 40 42 0 1 +G1 4 10 2 4 4.85668E-9 +F1 4 10 POLY(2) VS1 VS2 (0,2.42834E-5,3.8E-5) +Q1 2 10 11 QT +I2 11 4 DC 12.84E-6 +R2 11 3 1E3 +I3 3 4 DC 0 +* +* NOISE VOLTAGE GENERATOR +* +VN1 41 0 DC 2 +DN1 41 42 DEN +DN2 42 43 DEN +VN2 0 43 DC 2 +* +* INTERNAL OP AMP +* +G2 4 12 10 20 1.93522E-4 +R3 12 4 2.5837E9 +C1 12 4 6.8444E-11 +D1 12 13 DX +V1 2 13 DC 1.2 +* +* SECONDARY POLE @ 508 kHz +* +G3 4 14 12 4 1E-6 +R4 14 4 1E6 +C2 14 4 3.1831E-13 +* +* OUTPUT STAGE +* +ISY 2 4 6.8282E-4 +FSY 2 4 V1 -1 +RSY 2 4 500E3 +* +G4 4 15 14 4 25E-6 +R5 15 4 40E3 +Q2 4 15 16 QP +I4 2 16 DC 100E-6 +Q3 4 16 18 QP +R6 18 23 15 +R7 16 21 150E3 +R8 2 17 34.6 +Q4 17 16 19 QN +R9 21 20 6.46E3 +R10 20 4 6.1E3 +R11 20 5 53E3 +R12 20 8 15.6E3 +I5 5 4 DC 0 +I6 8 4 DC 0 +VS1 21 19 DC 0 +VS2 23 21 DC 0 +L1 21 6 1E-7 +* +* OUTPUT CURRENT LIMIT +* +FSC 15 4 VSC 1 +VSC 2 22 DC 0 +QSC 22 2 17 QN +* +.MODEL QT NPN(level=1 IS=1.68E-16 BF=1E4) +.MODEL QN NPN(level=1 IS=1E-15 BF=1E3) +.MODEL QP PNP(level=1 IS=1E-15 BF=1E3) +.MODEL DX D(IS=1E-15) +.MODEL DEN D(IS=1E-12 RS=2.425E+05 AF=1 KF=6.969E-16) +.ENDS AD780A +C101 0 U100V- 1uF +C102 U100V+ 0 1uF +XU100 0 VU100in- U100V+ U100V- VU1bias+ OP177A +* OP177A SPICE Macro-model 12/90, Rev. B +* JCB / PMI +* +* Revision History: +* REV. B +* Re-ordered subcircuit call out nodes to put the +* output node last. +* Changed Ios from 1E-9 to 0.5E-9 +* Added F1 and F2 to fix short circuit current limit. +* +* +* This version of the OP-177 model simulates the worst case +* parameters of the 'A' grade. The worst case parameters +* used correspond to those in the data book. +* +* +* Copyright 1990 by Analog Devices, Inc. +* +* Refer to "README.DOC" file for License Statement. Use of this model +* indicates your acceptance with the terms and provisions in the License Statement. +* +* Node assignments +* non-inverting input +* | inverting input +* | | positive supply +* | | | negative supply +* | | | | output +* | | | | | +.SUBCKT OP177A 1 2 99 50 39 +* +* INPUT STAGE & POLE AT 6 MHZ +* +R1 2 3 5E11 +R2 1 3 5E11 +R3 5 97 0.0606 +R4 6 97 0.0606 +CIN 1 2 4E-12 +C2 5 6 218.9E-9 +I1 4 51 1 +IOS 1 2 0.5E-9 +EOS 9 10 POLY(1) 30 33 10E-6 1 +Q1 5 2 7 QX +Q2 6 9 8 QX +R5 7 4 0.009 +R6 8 4 0.009 +D1 2 1 DX +D2 1 2 DX +EN 10 1 12 0 1 +GN1 0 2 15 0 1 +GN2 0 1 18 0 1 +* +EREF 98 0 33 0 1 +EPLUS 97 0 99 0 1 +ENEG 51 0 50 0 1 +* +* VOLTAGE NOISE SOURCE WITH FLICKER NOISE +* +DN1 11 12 DEN +DN2 12 13 DEN +VN1 11 0 DC 2 +VN2 0 13 DC 2 +* +* CURRENT NOISE SOURCE WITH FLICKER NOISE +* +DN3 14 15 DIN +DN4 15 16 DIN +VN3 14 0 DC 2 +VN4 0 16 DC 2 +* +* SECOND CURRENT NOISE SOURCE +* +DN5 17 18 DIN +DN6 18 19 DIN +VN5 17 0 DC 2 +VN6 0 19 DC 2 +* +* FIRST GAIN STAGE +* +R7 20 98 1 +G1 98 20 5 6 119.8 +D3 20 21 DX +D4 22 20 DX +E1 97 21 POLY(1) 97 33 -2.4 1 +E2 22 51 POLY(1) 33 51 -2.4 1 +* +* GAIN STAGE & DOMINANT POLE AT 0.127 HZ +* +R8 23 98 1.253E9 +C3 23 98 1E-9 +G2 98 23 20 33 33.3E-6 +V1 97 24 1.8 +V2 25 51 1.8 +D5 23 24 DX +D6 25 23 DX +* +* NEGATIVE ZERO AT -4MHZ +* +R9 26 27 1 +C4 26 27 -39.75E-9 +R10 27 98 1E-6 +E3 26 98 23 33 1E6 +* +* COMMON-MODE GAIN NETWORK WITH ZERO AT 63 HZ +* +R13 30 31 1 +L2 31 98 2.52E-3 +G4 98 30 3 33 0.316E-6 +D7 30 97 DX +D8 51 30 DX +* +* POLE AT 2 MHZ +* +R14 32 98 1 +C5 32 98 79.5E-9 +G5 98 32 27 33 1 +* +* OUTPUT STAGE +* +R15 33 97 1 +R16 33 51 1 +GSY 99 50 POLY(1) 99 50 0.725E-3 0.0425E-3 +F1 34 0 V3 1 +F2 0 34 V4 1 +R17 34 99 400 +R18 34 50 400 +L3 34 39 2E-7 +G6 37 50 32 34 2.5E-3 +G7 38 50 34 32 2.5E-3 +G8 34 99 99 32 2.5E-3 +G9 50 34 32 50 2.5E-3 +V3 35 34 6.8 +V4 34 36 4.4 +D9 32 35 DX +D10 36 32 DX +D11 99 37 DX +D12 99 38 DX +D13 50 37 DY +D14 50 38 DY +* +* MODELS USED +* +.MODEL QX NPN(level=1 BF=333.3E6) +.MODEL DX D(IS=1E-15) +.MODEL DY D(IS=1E-15 BV=50) +.MODEL DEN D(IS=1E-12, RS=14.61K, KF=2E-17, AF=1) +.MODEL DIN D(IS=1E-12, RS=7.55E-6, KF=3E-15, AF=1) +.ENDS +R102 U100V+ +5V 22 +R101 -5V U100V- 22 +R98 0 VU2bias+ 1K +R99 0 VU1bias+ 1K +C95 VU2bias+ 0 100pF +* C96 0 5 1uF +* C97 4 0 1uF +Cphotodiode 0 Vinput 0.9pF +C99 0 VU1bias+ 100pF +R25 Vout2 2 250 +C24 Vout1 VU1in- 1pF +R24 VU1in- 1 150 +* C21 0 3 1uF +Cc Vout2 VU2in- 1pF +Rc Vout1 VU2in- 10 +RL 0 Vout2 50 +.TEMP 0 25 50 75 100 +C12 2 0 1.5pF +C11 0 V2- .01uF +C10 V2+ 0 .01uF +R13 +5V V2+ 5 +R12 V2- -5V 5 +R26 2 VU2in- 150 +R11 Vout2 VU2in- 180 +XU2 VU2bias+ VU2in- V2+ V2- Vout2 AD8009an +XU1 VU1bias+ VU1in- V1+ V1- Vout1 AD8009an +***** AD8009 SPICE model Rev B SMR/ADI 8-21-97 + +* Copyright 1997 by Analog Devices, Inc. + +* Refer to "README.DOC" file for License Statement. Use of this model +* indicates your acceptance with the terms and provisions in the License Statement. + +* rev B of this model corrects a problem in the output stage that would not +* correctly reflect the output current to the voltage supplies + +* This model will give typical performance characteristics +* for the following parameters; + +* closed loop gain and phase vs bandwidth +* output current and voltage limiting +* offset voltage (is static, will not vary with vcm) +* ibias (again, is static, will not vary with vcm) +* slew rate and step response performance +* (slew rate is based on 10-90% of step response) +* current on output will be reflected to the supplies +* vnoise, referred to the input +* inoise, referred to the input + +* distortion is not characterized + +* Node assignments +* non-inverting input +* | inverting input +* | | positive supply +* | | | negative supply +* | | | | output +* | | | | | +.SUBCKT AD8009an 1 2 99 50 28 + +* input stage * + +q1 50 3 5 qp1 +q2 99 5 4 qn1 +q3 99 3 6 qn2 +q4 50 6 4 qp2 +i1 99 5 1.625e-3 +i2 6 50 1.625e-3 +cin1 1 98 2.6e-12 +cin2 2 98 1e-12 +v1 4 2 0 + +* input error sources * + +eos 3 1 poly(1) 20 98 2e-3 1 +fbn 2 98 poly(1) vnoise3 50e-6 1e-3 +fbp 1 98 poly(1) vnoise3 50e-6 1e-3 + +* slew limiting stage * + +fsl 98 16 v1 1 +dsl1 98 16 d1 +dsl2 16 98 d1 +dsl3 16 17 d1 +dsl4 17 16 d1 +rsl 17 18 0.22 +vsl 18 98 0 + +* gain stage * + +f1 98 7 vsl 2 +rgain 7 98 2.5e5 +cgain 7 98 1.25e-12 +dcl1 7 8 d1 +dcl2 9 7 d1 +vcl1 99 8 1.83 +vcl2 9 50 1.83 + +gcm 98 7 poly(2) 98 0 30 0 0 1e-5 1e-5 + +* second pole * + +epole 14 98 7 98 1 +rpole 14 15 1 +cpole 15 98 2e-10 + +* reference stage * + +eref 98 0 poly(2) 99 0 50 0 0 0.5 0.5 + +ecmref 30 0 poly(2) 1 0 2 0 0 0.5 0.5 + +* vnoise stage * + +rnoise1 19 98 4.6e-3 +vnoise1 19 98 0 +vnoise2 21 98 0.53 +dnoise1 21 19 dn + +fnoise1 20 98 vnoise1 1 +rnoise2 20 98 1 + +* inoise stage * + +rnoise3 22 98 8.18e-6 +vnoise3 22 98 0 +vnoise4 24 98 0.575 +dnoise2 24 22 dn + +fnoise2 23 98 vnoise3 1 +rnoise4 23 98 1 + +* buffer stage * + +gbuf 98 13 15 98 1e-2 +rbuf 98 13 1e2 + +* output current reflected to supplies * + +fcurr 98 40 voc 1 +vcur1 26 98 0 +vcur2 98 27 0 +dcur1 40 26 d1 +dcur2 27 40 d1 + +* output stage * + +vo1 99 90 0 +vo2 91 50 0 +fout1 0 99 poly(2) vo1 vcur1 -9.27e-3 1 -1 +fout2 50 0 poly(2) vo2 vcur2 -9.27e-3 1 -1 +gout1 90 10 13 99 0.5 +gout2 91 10 13 50 0.5 +rout1 10 90 2 +rout2 10 91 2 +voc 10 28 0 +rout3 28 98 1e6 +dcl3 13 11 d1 +dcl4 12 13 d1 +vcl3 11 10 -0.445 +vcl4 10 12 -0.445 + +.model qp1 pnp(level=1) +.model qp2 pnp(level=1) +.model qn1 npn(level=1) +.model qn2 npn(level=1) +.model d1 d() +.model dn d(af=1 kf=1e-8) +.ends +R6 1 Vout1 250 +C3 1 0 1.5pF +V3 VU1in- Vinput DC 0V +* .INCLUDE /home/sdb/OpticalReceiver/Simulation.cmd +R5 -5V Vout1 1K +I1 0 Vinput AC 1 PWL (0ns 0mA 1nS 0mA 1.01nS 1mA 10nS 1mA 10.01nS 0mA 20nS 0mA 20.01nS .1mA 30nS .1mA 30.01nS 0mA) +R4 V1- -5V 5 +C2 0 V1- .01uF +V2 -5V 0 DC -5V +R2 VU1in- Vout1 180 +V1 +5V 0 DC 5V +C1 V1+ 0 .01uF +R1 +5V V1+ 5 +* When run, this SPICE file should output a square waveform +* with a little overshoot +.tran 0.05ns 40ns +.plot tran Vout2 +.END diff --git a/Windows/spice/examples/TransmissionLines/cpl1_4_line.sp b/Windows/spice/examples/TransmissionLines/cpl1_4_line.sp new file mode 100644 index 00000000..7c46b655 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl1_4_line.sp @@ -0,0 +1,63 @@ +MOSdriver -- 6.3inch 4 lossy line CPL model -- C load + +m1 1 2 6 1 mp1p0 w = 36.0u l=1.0u +m2 1 3 7 1 mp1p0 w = 36.0u l=1.0u +m3 1 4 8 1 mp1p0 w = 36.0u l=1.0u +m4 1 10 5 1 mp1p0 w = 36.0u l=1.0u +m5 1 11 13 1 mp1p0 w = 36.0u l=1.0u +m6 1 12 13 1 mp1p0 w = 36.0u l=1.0u + +m7 0 2 6 0 mn0p9 w = 18.0u l=0.9u +m8 0 3 7 0 mn0p9 w = 18.0u l=0.9u +m9 0 4 8 0 mn0p9 w = 18.0u l=0.9u +m10 0 10 5 0 mn0p9 w = 18.0u l=0.9u +m11 14 11 13 0 mn0p9 w = 18.0u l=0.9u +m12 0 12 14 0 mn0p9 w = 18.0u l=0.9u + +* +CN5 5 0 0.025398e-12 +CN6 6 0 0.007398e-12 +CN7 7 0 0.007398e-12 +CN8 8 0 0.007398e-12 +CN9 9 0 0.097398e-12 +CN10 10 0 0.007398e-12 +CN11 11 0 0.003398e-12 +CN12 12 0 0.004398e-12 +CN13 13 0 0.008398e-12 +CN14 14 0 0.005398e-12 + +* +P1 5 6 7 8 0 9 10 11 12 0 pline + +* +* +vdd 1 0 DC 5.0 +v3 3 0 DC 5.0 +* +VS1 2 0 PULSE ( 0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS) +VS2 4 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +* +.control +TRAN 0.2N 47.9N 0 0.05N +plot V(5) V(6) V(7) V(8) V(9) V(10) V(11) V(12) +.endc +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 LAMBDA=0.00 CGSO=0 CGDO=0 ++CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 LAMBDA=0.00 CGSO=0 CGDO=0 ++CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL PLINE cpl ++R=0.03 0 0 0 ++ 0.03 0 0 ++ 0.03 0 ++ 0.03 ++L=9e-9 5.4e-9 0 0 ++ 9e-9 5.4e-9 0 ++ 9e-9 5.4e-9 ++ 9e-9 ++G=0 0 0 0 0 0 0 0 0 0 ++C=3.5e-13 -3e-14 0 0 ++ 3.5e-13 -3e-14 0 ++ 3.5e-13 -3e-14 ++ 3.5e-13 ++length=6.3 +.END diff --git a/Windows/spice/examples/TransmissionLines/cpl2_2_line.sp b/Windows/spice/examples/TransmissionLines/cpl2_2_line.sp new file mode 100644 index 00000000..713e3334 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl2_2_line.sp @@ -0,0 +1,46 @@ +MOSdriver -- 24inch 2 lossy lines CPL model -- C load + +m1 0 268 299 0 mn0p9 w = 18.0u l=1.0u +m2 299 267 748 0 mn0p9 w = 18.0u l=1.0u +m3 0 168 648 0 mn0p9 w = 18.0u l=0.9u +m4 1 268 748 1 mp1p0 w = 36.0u l=1.0u +m5 1 267 748 1 mp1p0 w = 36.0u l=1.0u +m6 1 168 648 1 mp1p0 w = 36.0u l=1.0u +* +CN648 648 0 0.025398e-12 +CN651 651 0 0.007398e-12 +CN748 748 0 0.025398e-12 +CN751 751 0 0.009398e-12 +CN299 299 0 0.005398e-12 +* +P1 648 748 0 651 751 0 PLINE +* +vdd 1 0 DC 5.0 +VK 267 0 DC 5.0 +* +*VS 168 0 PWL 4 15.9N 0.0 16.1n 5.0 31.9n 5.0 32.1n 0.0 +*VS 268 0 PWL 4 15.9N 0.0 16.1n 5.0 31.9n 5.0 32.1n 0.0 +* +VS1 168 0 PULSE (0 5 15.9N 0.2N 0.2N 15.8N 60N) +VS2 268 0 PULSE (0 5 15.9N 0.2N 0.2N 15.8N 60N) +* +.control +TRAN 0.2N 47.9NS 0 1N +plot v(648) v(651) v(751) +.endc +* +.MODEL PLINE CPL ++R=0.2 0 ++ 0.2 ++L=9.13e-9 3.3e-9 ++ 9.13e-9 ++G=0 0 0 ++C=3.65e-13 -9e-14 ++ 3.65e-13 ++length=24 +******************* MODEL SPECIFICATION ********************** +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 LAMBDA=0.00 CGSO=0 CGDO=0 ++ CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 LAMBDA=0.00 CGSO=0 CGDO=0 ++ CJ=0 CJSW=0 TOX=18000N LD=0.0U +.END diff --git a/Windows/spice/examples/TransmissionLines/cpl3_4_line.sp b/Windows/spice/examples/TransmissionLines/cpl3_4_line.sp new file mode 100644 index 00000000..d5715481 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl3_4_line.sp @@ -0,0 +1,37 @@ +6.3inch 4 lossy lines CPL model -- R load + +Ra 1 2 1K +Rb 0 3 1K +Rc 0 4 1K +Rd 0 5 1K +Re 6 0 1Meg +Rf 7 0 1Meg +Rg 8 0 1Meg +Rh 9 0 1Meg +* +P1 2 3 4 5 0 6 7 8 9 0 LOSSYMODE +* +* +VS1 1 0 PWL(15.9NS 0.0 16.1Ns 5.0 31.9Ns 5.0 32.1Ns 0.0) +* +.control +TRAN 0.2NS 50NS 0 0.05N +PLOT V(1) V(2) V(6) V(7) V(8) V(9) +.endc +.MODEL LOSSYMODE CPL ++R=0.3 0 0 0 ++ 0.3 0 0 ++ 0.3 0 ++ 0.3 ++L=9e-9 5.4e-9 0 0 ++ 9e-9 5.4e-9 0 ++ 9e-9 5.4e-9 ++ 9e-9 ++G=0 0 0 0 0 0 0 0 0 0 ++C=3.5e-13 -3e-14 0 0 ++ 3.5e-13 -3e-14 0 ++ 3.5e-13 -3e-14 ++ 3.5e-13 ++length=6.3 + +.END diff --git a/Windows/spice/examples/TransmissionLines/cpl4_txl_2_line.sp b/Windows/spice/examples/TransmissionLines/cpl4_txl_2_line.sp new file mode 100644 index 00000000..986c9b63 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl4_txl_2_line.sp @@ -0,0 +1,378 @@ +BJTdriver -- 2in st. lin -- 20in coupled line CPL -- 2in st line -- DiodeCircuit + +* This unclassified circuit is from Raytheon, courtesy Gerry Marino. +* +* _______ +* -------- 2in _________________ 2in | | +* | BJT |______| |______|Diode| +* | |------| |------| | +* | Drvr | line | 2-wire | line |rcvr.| +* -------- | coupled | |_____| +* | transmission | +* |-/\/\/\/\----| line |-------\/\/\/\/\----| +* | 50ohms | | 50ohms | +* | | | | +* Ground ----------------- Ground +* +* +* Each inch of the lossy line is modelled by 10 LRC lumps in the +* Raytheon model. + +* The line parameters (derived from the Raytheon input file) are: +* L = 9.13nH per inch +* C = 3.65pF per inch +* R = 0.2 ohms per inch +* K = 0.482 [coupling coefficient; K = M/sqrt(L1*L2)] +* Cc = 1.8pF per inch +* +* coupled ltra model generated using the standalone program +* multi_decomp + +* the circuit +*tran 0.1ns 60ns + +v1 1 0 0v pulse(0 4 1ns 1ns 1ns 20ns 40ns) +*v1 1 0 4v pulse(4 0 1ns 1ns 1ns 20ns 40ns) +vcc 10 0 5v + +* series termination +*x1 1 oof 10 bjtdrvr +*rseries oof 2 50 + +x1 1 2 10 bjtdrvr +rt1 3 0 50 + + +* convolution model +x2 2 3 4 5 conv2wetcmodel + +* rlc segments model +*x2 2 3 4 5 rlc2wetcmodel + +x3 4 dioload +rt2 5 0 50 + + + +.model qmodn npn(bf=100 rb=100 cje=0.09375pF cjc=0.28125pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpd npn(bf=100 rb=100 cje=0.08187pF cjc=0.2525pF is=1e-12 ++pe=0.5 pc=0.5) +.model qmodpdmine npn(bf=100 rb=100 cje=0.08187pF cjc=0.05pF is=1e-12 ++pe=0.5 pc=0.5) + +.model dmod1 d(n=2.25 is=1.6399e-4 bv=10) + +.model dmod2 d + +.model dmod d(vj=0.3v) + +.model diod1 d(tt=0.75ns vj=0.6 rs=909 bv=10) + +.model diod2 d(tt=0.5ns vj=0.3 rs=100 bv=10) + +.options acct reltol=1e-3 abstol=1e-12 +.control +tran 0.1ns 60ns 0 0.35N +plot v(2) v(4) v(5) +.endc + +* bjt driver - 19=input, 268=output, 20=vcc; wierd node numbers from +* the Raytheon file + +.subckt bjtdrvr 19 268 20 +q1 22 18 13 qmodn +q2 18 16 13 qmodn +qd2 21 9 0 qmodn +q4 14 14 0 qmodn +q3 16 15 14 qmodpd +q5 8 13 17 qmodn +q6 25 12 0 qmodn +q7 6 17 0 qmodpd +qd1 26 10 0 qmodn +q8 7 11 10 qmodn +*q10 268 17 0 qmodpd +q10 268 17 0 qmodpdmine +q9 7 10 268 qmodn + +d1 0 19 dmod1 +d2 18 19 dmod2 +d3 13 19 dmod +dq1 18 22 dmod +dq2 16 18 dmod +d502 9 21 dmod +dq3 15 16 dmod +d10 24 8 dmod +d4 15 6 dmod +dq6 12 25 dmod +dq7 17 6 dmod +dd1 17 10 dmod +d7 11 6 dmod +dd2 17 26 dmod +d9 23 6 dmod +dq8 11 7 dmod +d501 17 268 dmod +dq9 10 7 dmod +d14 20 27 dmod +d8 0 268 dmod + +r1 18 20 6k +r2 22 20 2.2k +r4 0 13 7k +rd1 9 13 2k +rd2 21 13 3k +r3 16 20 10k +r5 15 20 15k +r9 0 17 4k +r6 24 20 750 +r10 12 17 2k +r12 24 11 1.5k +r11 25 17 3k +r15 23 20 10k +r13 0 10 15k +r14 7 27 12 + +.ends bjtdrvr + +* subckt dioload - diode load: input=28, output=4, vcc=5 + +.subckt dioload 28 +*comment out everything in dioload except d5 and r503, and watch +* the difference in results obtained between a tran 0.1ns 20ns and +* a tran 0.01ns 20ns +vccint 5 0 5v + +c1 28 0 5pF +r503 0 4 5.55 +r4 0 28 120k +r5 1 5 7.5k + +d5 4 28 diod2 +d1 1 28 diod1 +d4 2 0 diod1 +d3 3 2 diod1 +d2 1 3 diod1 +.ends dioload + +* subckt rlclump - one RLC lump of the lossy line + +.subckt rlclump 1 2 +*r1 1 3 0.02 +*c1 3 0 0.365pF +*l1 3 2 0.913nH + +l1 1 3 0.913nH +c1 2 0 0.365pF +r1 3 2 0.02 + +*r1 1 3 0.01 +*c1 3 0 0.1825pF +*l1 3 4 0.4565nH +*r2 4 5 0.01 +*c2 5 0 0.1825pF +*l2 5 2 0.4565nH + +*c1 1 0 0.365pF +*l1 1 2 0.913nH +.ends lump + +.subckt rlconeinch 1 2 +x1 1 3 rlclump +x2 3 4 rlclump +x3 4 5 rlclump +x4 5 6 rlclump +x5 6 7 rlclump +x6 7 8 rlclump +x7 8 9 rlclump +x8 9 10 rlclump +x9 10 11 rlclump +x10 11 2 rlclump +.ends rlconeinch + +.subckt rlctwoinch 1 2 +x1 1 3 rlconeinch +x2 3 2 rlconeinch +.ends rlctwoinch + +.subckt rlcfourinch 1 2 +x1 1 3 rlconeinch +x2 3 4 rlconeinch +x3 4 5 rlconeinch +x4 5 2 rlconeinch +.ends rlcfourinch + +.subckt rlcfiveinch 1 2 +x1 1 3 rlconeinch +x2 3 4 rlconeinch +x3 4 5 rlconeinch +x4 5 6 rlconeinch +x5 6 2 rlconeinch +.ends rlcfiveinch + +.subckt rlctwentyrlcfourinch 1 2 +x1 1 3 rlcfiveinch +x2 3 4 rlcfiveinch +x3 4 5 rlcfiveinch +x4 5 6 rlcfiveinch +x5 6 2 rlcfourinch +.ends rlctwentyrlcfourinch + +.subckt rlclumpstub A B C D +x1 A int1 rlcfiveinch +x2 int1 int2 rlcfiveinch +x3 int2 1 rlcfiveinch +x4 1 2 rlcfourinch +x5 1 int3 rlcfiveinch +x6 int3 B rlconeinch +x7 2 C rlcfiveinch +x8 2 D rlcfourinch +.ends rlclumpstub + +.subckt ltrastub A B C D +yy1 A 0 1 0 ylline15in +yy2 1 0 B 0 ylline6in +yy3 1 0 2 0 ylline4in +yy4 2 0 C 0 ylline5in +yy5 2 0 D 0 ylline4in +.ends ltrastub + +*modelling using R and lossless lines + +*5 segments per inch +.model yllfifth txl r=0 g=0 l=9.13e-9 c=3.65e-12 length=0.2 + +.subckt xlump 1 2 +y1 1 0 3 0 yllfifth +r1 2 3 0.04 +.ends xlump + +.subckt xoneinch 1 2 +x1 1 3 xlump +x2 3 4 xlump +x3 4 5 xlump +x4 5 6 xlump +x5 6 2 xlump +*x5 6 7 xlump +*x6 7 8 xlump +*x7 8 9 xlump +*x8 9 10 xlump +*x9 10 11 xlump +*x10 11 2 xlump +.ends xoneinch + +.subckt xFourinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 2 xoneinch +.ends xfourinch + +.subckt xfiveinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 6 xoneinch +x5 6 2 xoneinch +.ends xfiveinch + +.subckt xlumpstub A B C D +x1 A int1 xfiveinch +x2 int1 int2 xfiveinch +x3 int2 1 xfiveinch +x4 1 2 xfourinch +x5 1 int3 xfiveinch +x6 int3 B xoneinch +x7 2 C xfiveinch +x8 2 D xfourinch +.ends xlumpstub + +* modelling a 2 wire coupled system using RLC lumps +* 10 segments per inch +* +* 1---xxxxx----2 +* 3---xxxxx----4 + +.subckt rlc2wlump 1 3 2 4 +l1 1 5 0.913nH +c1 2 0 0.365pF +r1 5 2 0.02 +l2 3 6 0.913nH +c2 4 0 0.365pF +r2 6 4 0.02 +cmut 2 4 0.18pF +k12 l1 l2 0.482 +.ends rlc2wlump + +.subckt rlc2woneinch 1 2 3 4 +x1 1 2 5 6 rlc2wlump +x2 5 6 7 8 rlc2wlump +x3 7 8 9 10 rlc2wlump +x4 9 10 11 12 rlc2wlump +x5 11 12 13 14 rlc2wlump +x6 13 14 15 16 rlc2wlump +x7 15 16 17 18 rlc2wlump +x8 17 18 19 20 rlc2wlump +x9 19 20 21 22 rlc2wlump +x10 21 22 3 4 rlc2wlump +.ends rlc2woneinch + +.subckt rlc2wfiveinch 1 2 3 4 +x1 1 2 5 6 rlc2woneinch +x2 5 6 7 8 rlc2woneinch +x3 7 8 9 10 rlc2woneinch +x4 9 10 11 12 rlc2woneinch +x5 11 12 3 4 rlc2woneinch +.ends rlc2wfiveinch + +.subckt rlc2wtwentyinch 1 2 3 4 +x1 1 2 5 6 rlc2wfiveinch +x2 5 6 7 8 rlc2wfiveinch +x3 7 8 9 10 rlc2wfiveinch +x4 9 10 3 4 rlc2wfiveinch +.ends rlc2wtwentyinch + +.subckt rlc2wetcmodel 1 2 3 4 +x1 1 5 rlctwoinch +x2 5 2 6 4 rlc2wtwentyinch +x3 6 3 rlctwoinch +.ends rlc2wetcmodel + +* Subcircuit conv2wtwentyinch +* conv2wtwentyinch is a subcircuit that models a 2-conductor transmission line with +* the following parameters: l=9.13e-09, c=3.65e-12, r=0.2, g=0, +* inductive_coeff_of_coupling k=0.482, inter-line capacitance cm=1.8e-12, +* length=20. Derived parameters are: lm=4.40066e-09, ctot=5.45e-12. +* +* It is important to note that the model is a simplified one - the +* following assumptions are made: 1. The self-inductance l, the +* self-capacitance ctot (note: not c), the series resistance r and the +* parallel capacitance g are the same for all lines, and 2. Each line +* is coupled only to the two lines adjacent to it, with the same +* coupling parameters cm and lm. The first assumption imply that edge +* effects have to be neglected. The utility of these assumptions is +* that they make the sL+R and sC+G matrices symmetric, tridiagonal and +* Toeplitz, with useful consequences. +* +* It may be noted that a symmetric two-conductor line will be +* accurately represented by this model. + +* swec model +.model plines cpl ++R=0.2 0 ++ 0.2 ++L=9.13e-9 4.4e-9 ++ 9.13e-9 ++G=0 0 0 ++C=5.45e-12 -1.8e-12 ++ 5.45e-12 ++length=20 + +.model yconvtwoinch txl r=0.2 g=0 l=9.13e-9 c=3.65e-12 length=2.0 +.subckt conv2wetcmodel 1 2 3 4 +y1 1 0 5 0 yconvtwoinch +p2 5 2 0 6 4 0 plines +y2 6 0 3 0 yconvtwoinch +.ends conv2wetcmodel + +.end diff --git a/Windows/spice/examples/TransmissionLines/cpl_ibm1.sp b/Windows/spice/examples/TransmissionLines/cpl_ibm1.sp new file mode 100644 index 00000000..1077d00e --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl_ibm1.sp @@ -0,0 +1,82 @@ +6-line coupled multiconductor with ECL drivers +vemm mm 0 DC -0.4 +vepp pp 0 DC 0.4 +vein_left lin 0 PULSE (-0.4 0.4 0N 1N 1N 7N 200N) +vein_right rin 0 PULSE (-0.4 0.4 2N 1N 1N 7N 200N) + +* upper 2 lines +x1 lin 0 1 1outn ECL +x2 mm 0 2 2outn ECL +x7 7 0 7r 7routn ECL +x8 8 0 8r 8routn ECL + +c7r 7r 0 0.1P +c8r 8r 0 0.1P + +* lower 2 lines +x11 pp 0 11 11outn ECL +x12 rin 0 12 12outn ECL +x5 5 0 5l 5loutn ECL +x6 6 0 6l 6loutn ECL + +c5l 5l 0 0.1P +c6l 6l 0 0.1P + +p1 1 2 3 4 5 6 0 7 8 9 10 11 12 0 pline + +.model pline cpl ++C = 0.900000P -0.657947P -0.0767356P -0.0536544P -0.0386514P -0.0523990P ++ 1.388730P -0.607034P -0.0597635P -0.0258851P -0.0273442P ++ 1.39328P -0.625675P -0.0425551P -0.0319791P ++ 1.07821P -0.255048P -0.0715824P ++ 1.06882P -0.692091P ++ 0.900000P ++L = 0.868493E-7 0.781712E-7 0.748428E-7 0.728358E-7 0.700915E-7 0.692178E-7 ++ 0.866074E-7 0.780613E-7 0.748122E-7 0.711591E-7 0.701023E-7 ++ 0.865789E-7 0.781095E-7 0.725431E-7 0.711986E-7 ++ 0.867480E-7 0.744242E-7 0.725826E-7 ++ 0.868022E-7 0.782377E-7 ++ 0.868437E-7 ++R = 0.2 0 0 0 0 0 ++ 0.2 0 0 0 0 ++ 0.2 0 0 0 ++ 0.2 0 0 ++ 0.2 0 ++ 0.2 ++G = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ++ ++length = 2 + +*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +.SUBCKT ECL EIN GND 9 8 +* Input-GND-OUTP-OUTN +RIN 1 2 0.077K +REF 5 6 0.077K +R1 7 N 1.0K +R2 P 3 0.4555K +R3 P 4 0.4555K +R4 8 N 0.615K +R5 9 N 0.615K +RL1 8 GND 0.093K +RL2 9 GND 0.093K +LIN EIN 1 0.01U +LREF 5 GND 0.01U +CIN 1 GND 0.68P +CL1 8 GND 1P +CL2 9 GND 1P +Q1 3 2 7 JCTRAN +Q2 4 6 7 JCTRAN +Q3 P 3 8 JCTRAN +Q4 P 4 9 JCTRAN +VEP P GND DC 1.25 +VEN N GND DC -3 +.ENDS ECL + +.control +TRAN 0.1N 20N +plot V(3) V(5) V(8) V(11) V(12) +.endc +.MODEL JCTRAN NPN BF=150 VAF=20 IS=4E-17 RB=300 RC=100 CJE=30F CJC=30F ++ CJS=40F VJE=0.6 VJC=0.6 VJS=0.6 MJE=0.5 MJC=0.5 ++ MJS=0.5 TF=16P TR=1N +.END diff --git a/Windows/spice/examples/TransmissionLines/cpl_ibm2.sp b/Windows/spice/examples/TransmissionLines/cpl_ibm2.sp new file mode 100644 index 00000000..8aeff85d --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl_ibm2.sp @@ -0,0 +1,22 @@ +Simple coupled transmissionlines +VES IN 0 PULSE (0 1 0N 1.5N 1.5N 4.5N 200N) +R1 IN V1 50 +R2 V2 0 10 +p1 V1 V2 0 V3 V4 0 cpl1 +.model cpl1 cpl ++R = 0.5 0 ++ 0.5 ++L = 247.3e-9 31.65e-9 ++ 247.3e-9 ++C = 31.4e-12 -2.45e-12 ++ 31.4e-12 ++G = 0 0 0 ++length = 0.3048 +*length = 0.6096 +R3 V3 0 100 +R4 V4 0 100 +.control +TRAN 0.1N 20N +plot v(in) v(v1) v(v3) +.endc +.END diff --git a/Windows/spice/examples/TransmissionLines/cpl_ibm3.sp b/Windows/spice/examples/TransmissionLines/cpl_ibm3.sp new file mode 100644 index 00000000..0a0d5e22 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/cpl_ibm3.sp @@ -0,0 +1,70 @@ +Mixed single and coupled transmission lines +c1g 1 0 1P +l11a 1 1a 6e-9 +r1a7 1a 7 0.025K +rin6 in 6 0.075K +l67 6 7 10e-9 +c7g 7 0 1P +P2 1 7 0 2 8 0 PLINE +.MODEL PLINE CPL ++R = 2.25 0 ++ 2.25 ++L = 0.6e-6 0.05e-6 ++ 0.6e-6 ++G = 0 0 0 ++C = 1.2e-9 -0.11e-9 ++ 1.2e-9 ++length = 0.03 +c2g 2 0 0.5P +r2g 2 0 0.05K +r23 2 3 0.025K +l34 3 4 5e-9 +c4g 4 0 2P +l89 8 9 10e-9 +c9g 9 0 1P +Y1 9 0 10 0 txline +.model txline txl R = 1 L =0.6e-6 G = 0 C= 1.0e-9 length=0.04 +l1011 10 11 10e-9 +c11g 11 0 0.5P +r11g 11 0 0.05K +r1112 11 12 0.025K +l1213 12 13 5e-9 +c13g 13 0 2P +r1116 11 16 0.025K +l1617 16 17 5e-9 +c17g 17 0 2P +P1 4 2 13 17 0 5 14 15 18 0 PLINE1 + +.MODEL PLINE1 CPL ++R = 3.5 0 0 0 ++ 3.5 0 0 ++ 3.5 0 ++ 3.5 ++L = ++1e-6 0.11e-6 0.03e-6 0 ++ 1e-6 0.11e-6 0.03e-6 ++ 1e-6 0.11e-6 ++ 1e-6 ++G = 0 0 0 0 0 0 0 0 0 0 ++C = ++1.5e-9 -0.17e-9 -0.03e-9 0 ++ 1.5e-9 -0.17e-9 -0.03e-9 ++ 1.5e-9 -0.17e-9 ++ 1.5e-9 ++length = 0.02 + +D1 5 0 dmod +D2 14 0 dmod +D3 15 0 dmod +D4 18 0 dmod + +.model dmod d + +VES in 0 PULSE (0 5 0 1.1ns 0.1ns 0.9ns 200ns) + +.control +TRAN 0.2N 10.0N +plot v(3) v(6) v(7) v(8) v(11) v(15) +.endc + +.END diff --git a/Windows/spice/examples/TransmissionLines/ltra1_1_line.sp b/Windows/spice/examples/TransmissionLines/ltra1_1_line.sp new file mode 100644 index 00000000..2d9c93bb --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra1_1_line.sp @@ -0,0 +1,19 @@ +MOSdriver -- lossy line LTRA model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +o1 2 0 3 0 lline +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.control +TRAN 0.2N 47N 0 0.1N +plot v(2) v(3) ylimit -0.5 5 +.endc +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.model lline ltra rel=1 r=12.45 g=0 l=8.972e-9 c=0.468e-12 ++len=16 steplimit compactrel=1.0e-3 compactabs=1.0e-14 +.end diff --git a/Windows/spice/examples/TransmissionLines/ltra1_4_line.sp b/Windows/spice/examples/TransmissionLines/ltra1_4_line.sp new file mode 100644 index 00000000..8d30a757 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra1_4_line.sp @@ -0,0 +1,144 @@ +MOSdriver -- 6.3inch 4 lossy line LTRA model -- C load + +m1 1 2 6 1 mp1p0 w = 36.0u l=1.0u +m2 1 3 7 1 mp1p0 w = 36.0u l=1.0u +m3 1 4 8 1 mp1p0 w = 36.0u l=1.0u +m4 1 10 5 1 mp1p0 w = 36.0u l=1.0u +m5 1 11 13 1 mp1p0 w = 36.0u l=1.0u +m6 1 12 13 1 mp1p0 w = 36.0u l=1.0u + +m7 0 2 6 0 mn0p9 w = 18.0u l=0.9u +m8 0 3 7 0 mn0p9 w = 18.0u l=0.9u +m9 0 4 8 0 mn0p9 w = 18.0u l=0.9u +m10 0 10 5 0 mn0p9 w = 18.0u l=0.9u +m11 14 11 13 0 mn0p9 w = 18.0u l=0.9u +m12 0 12 14 0 mn0p9 w = 18.0u l=0.9u + + +* +CN5 5 0 0.025398e-12 +CN6 6 0 0.007398e-12 +CN7 7 0 0.007398e-12 +CN8 8 0 0.007398e-12 +CN9 9 0 0.097398e-12 +CN10 10 0 0.007398e-12 +CN11 11 0 0.003398e-12 +CN12 12 0 0.004398e-12 +CN13 13 0 0.008398e-12 +CN14 14 0 0.005398e-12 + +* +* Subcircuit test +* test is a subcircuit that models a 4-conductor transmission line with +* the following parameters: l=9e-09, c=2.9e-13, r=0.3, g=0, +* inductive_coeff_of_coupling k=0.6, inter-line capacitance cm=3e-14, +* length=6.3. Derived parameters are: lm=5.4e-09, ctot=3.5e-13. +* +* It is important to note that the model is a simplified one - the +* following assumptions are made: 1. The self-inductance l, the +* self-capacitance ctot (note: not c), the series resistance r and the +* parallel capacitance g are the same for all lines, and 2. Each line +* is coupled only to the two lines adjacent to it, with the same +* coupling parameters cm and lm. The first assumption implies that edge +* effects have to be neglected. The utility of these assumptions is +* that they make the sL+R and sC+G matrices symmetric, tridiagonal and +* Toeplitz, with useful consequences (see "Efficient Transient +* Simulation of Lossy Interconnect", by J.S. Roychowdhury and +* D.O Pederson, Proc. DAC 91). + +* It may be noted that a symmetric two-conductor line is +* represented accurately by this model. + +* Subckt node convention: +* +* |--------------------------| +* 1-----| |-----n+1 +* 2-----| |-----n+2 +* : | n-wire multiconductor | : +* : | line | : +* n-1-----|(node 0=common gnd plane) |-----2n-1 +* n-----| |-----2n +* |--------------------------| + + +* Lossy line models +.model mod1_test ltra rel=1.2 nocontrol r=0.3 l=2.62616456193e-10 g=0 c=3.98541019688e-13 len=6.3 +.model mod2_test ltra rel=1.2 nocontrol r=0.3 l=5.662616446e-09 g=0 c=3.68541019744e-13 len=6.3 +.model mod3_test ltra rel=1.2 nocontrol r=0.3 l=1.23373835171e-08 g=0 c=3.3145898046e-13 len=6.3 +.model mod4_test ltra rel=1.2 nocontrol r=0.3 l=1.7737383521e-08 g=0 c=3.01458980439e-13 len=6.3 + +* subcircuit m_test - modal transformation network for test +.subckt m_test 1 2 3 4 5 6 7 8 +v1 9 0 0v +v2 10 0 0v +v3 11 0 0v +v4 12 0 0v +f1 0 5 v1 0.371748033738 +f2 0 5 v2 -0.601500954587 +f3 0 5 v3 0.601500954587 +f4 0 5 v4 -0.371748036544 +f5 0 6 v1 0.60150095443 +f6 0 6 v2 -0.371748035044 +f7 0 6 v3 -0.371748030937 +f8 0 6 v4 0.601500957402 +f9 0 7 v1 0.601500954079 +f10 0 7 v2 0.37174803072 +f11 0 7 v3 -0.371748038935 +f12 0 7 v4 -0.601500955482 +f13 0 8 v1 0.371748035626 +f14 0 8 v2 0.601500956073 +f15 0 8 v3 0.601500954504 +f16 0 8 v4 0.371748032386 +e1 13 9 5 0 0.371748033909 +e2 14 13 6 0 0.601500954587 +e3 15 14 7 0 0.601500955639 +e4 1 15 8 0 0.371748036664 +e5 16 10 5 0 -0.60150095443 +e6 17 16 6 0 -0.371748035843 +e7 18 17 7 0 0.371748032386 +e8 2 18 8 0 0.601500957319 +e9 19 11 5 0 0.601500955131 +e10 20 19 6 0 -0.371748032169 +e11 21 20 7 0 -0.371748037896 +e12 3 21 8 0 0.601500954513 +e13 22 12 5 0 -0.371748035746 +e14 23 22 6 0 0.60150095599 +e15 24 23 7 0 -0.601500953534 +e16 4 24 8 0 0.371748029317 +.ends m_test + +* Subckt test +.subckt test 1 2 3 4 5 6 7 8 +x1 1 2 3 4 9 10 11 12 m_test +o1 9 0 13 0 mod1_test +o2 10 0 14 0 mod2_test +o3 11 0 15 0 mod3_test +o4 12 0 16 0 mod4_test +x2 5 6 7 8 13 14 15 16 m_test +.ends test +* +x1 5 6 7 8 9 10 11 12 test +* +* +vdd 1 0 PULSE (0 5 0Ns 0.1Ns 0.1Ns 600Ns 800Ns) +v3 3 0 PULSE (0 5 0Ns 0.1Ns 0.1Ns 600Ns 800Ns) + +.model mn0p9 nmos LEVEL=1 vto=0.8V kp=48u gamma=0.3 phi=0.55 lambda=0.00 ++ PHI=0.55 LAMBDA=0.00 CGSO=0 CGDO=0 CGBO=0 ++ CJ=0 CJSW=0 TOX=18000N NSUB=1E16 LD=0.0U + +.model mp1p0 pmos vto=-0.8V kp=21u gamma=0.45 phi=0.61 lambda=0.00 ++ PHI=0.61 LAMBDA=0.00 CGSO=0 CGDO=0 CGBO=0 ++ CJ=0 CJSW=0 TOX=18000N NSUB=3E16 LD=0.0U + +VS1 2 0 PULSE (0 5 15.9Ns 0.2Ns 0.2Ns 15.8Ns 32Ns) +VS2 4 0 PULSE (0 5 15.9Ns 0.2Ns 0.2Ns 15.8Ns 32Ns) + +.control +TRAN 0.1N 47.9N +plot v(5) v(6) v(7) v(8) v(9) v(10) v(11) v(12) +.endc +* + +.END + diff --git a/Windows/spice/examples/TransmissionLines/ltra2_2_line.sp b/Windows/spice/examples/TransmissionLines/ltra2_2_line.sp new file mode 100644 index 00000000..2a4ceaa7 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra2_2_line.sp @@ -0,0 +1,24 @@ +MOSdriver -- 2 lossy lines LTRA model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +m1 0 3 4 0 mn0p9 w = 18.0u l=0.9u +m2 1 3 4 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +CN4 4 0 0.025398e-12 +CN5 5 0 0.007398e-12 +o1 2 0 3 0 lline +o2 4 0 5 0 lline +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.control +TRAN 0.2N 47N 0 0.1N +plot v(2) v(3) v(4) v(5) +.endc +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.model lline ltra rel=1 r=12.45 g=0 l=8.972e-9 c=0.468e-12 ++len=16 steplimit compactrel=1.0e-3 compactabs=1.0e-14 +.end diff --git a/Windows/spice/examples/TransmissionLines/ltra3_2_line.sp b/Windows/spice/examples/TransmissionLines/ltra3_2_line.sp new file mode 100644 index 00000000..1a756520 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra3_2_line.sp @@ -0,0 +1,98 @@ +MOSdriver -- 24inch 2 lossy lines LTRA model -- C load + +m1 0 268 299 0 mn0p9 w = 18.0u l=1.0u +m2 299 267 748 0 mn0p9 w = 18.0u l=1.0u +m3 0 168 648 0 mn0p9 w = 18.0u l=0.9u +m4 1 268 748 1 mp1p0 w = 36.0u l=1.0u +m5 1 267 748 1 mp1p0 w = 36.0u l=1.0u +m6 1 168 648 1 mp1p0 w = 36.0u l=1.0u + +* +CN648 648 0 0.025398e-12 +CN651 651 0 0.007398e-12 +CN748 748 0 0.025398e-12 +CN751 751 0 0.009398e-12 +CN299 299 0 0.005398e-12 +* +* Subcircuit test +* test is a subcircuit that models a 2-conductor transmission line with +* the following parameters: l=9.13e-09, c=2.75e-13, r=0.2, g=0, +* inductive_coeff_of_coupling k=0.36144, inter-line capacitance cm=9e-14, +* length=24. Derived parameters are: lm=3.29995e-09, ctot=3.65e-13. +* +* It is important to note that the model is a simplified one - the +* following assumptions are made: 1. The self-inductance l, the +* self-capacitance ctot (note: not c), the series resistance r and the +* parallel capacitance g are the same for all lines, and 2. Each line +* is coupled only to the two lines adjacent to it, with the same +* coupling parameters cm and lm. The first assumption implies that edge +* effects have to be neglected. The utility of these assumptions is +* that they make the sL+R and sC+G matrices symmetric, tridiagonal and +* Toeplitz, with useful consequences (see "Efficient Transient +* Simulation of Lossy Interconnect", by J.S. Roychowdhury and +* D.O Pederson, Proc. DAC 91). + +* It may be noted that a symmetric two-conductor line is +* represented accurately by this model. + +* Subckt node convention: +* +* |--------------------------| +* 1-----| |-----n+1 +* 2-----| |-----n+2 +* : | n-wire multiconductor | : +* : | line | : +* n-1-----|(node 0=common gnd plane) |-----2n-1 +* n-----| |-----2n +* |--------------------------| + + +* Lossy line models +.model mod1_test ltra rel=1.2 nocontrol r=0.2 l=5.83005279316e-09 g=0 c=4.55000000187e-13 len=24 +.model mod2_test ltra rel=1.2 nocontrol r=0.2 l=1.24299471863e-08 g=0 c=2.75000000373e-13 len=24 + +* subcircuit m_test - modal transformation network for test +.subckt m_test 1 2 3 4 +v1 5 0 0v +v2 6 0 0v +f1 0 3 v1 0.707106779721 +f2 0 3 v2 -0.707106782652 +f3 0 4 v1 0.707106781919 +f4 0 4 v2 0.707106780454 +e1 7 5 3 0 0.707106780454 +e2 1 7 4 0 0.707106782652 +e3 8 6 3 0 -0.707106781919 +e4 2 8 4 0 0.707106779721 +.ends m_test + +* Subckt test +.subckt test 1 2 3 4 +x1 1 2 5 6 m_test +o1 5 0 7 0 mod1_test +o2 6 0 8 0 mod2_test +x2 3 4 7 8 m_test +.ends test +* +x1 648 748 651 751 test +* +* +vdd 1 0 DC 5.0 +VK 267 0 DC 5.0 +* +VS1 168 0 PULSE (0 5 15.9N 0.2N 0.2N 15.8N 60N) +VS2 268 0 PULSE (0 5 15.9N 0.2N 0.2N 15.8N 60N) +* +.control +TRAN 0.2N 47.9NS +PLOT v(648) v(651) v(751) +.endc +* +.model mn0p9 nmos LEVEL=1 vto=0.8V kp=48u gamma=0.3 phi=0.55 lambda=0.0 ++ PHI=0.55 LAMBDA=0.00 CGSO=0 CGDO=0 CGBO=0 ++ CJ=0 CJSW=0 TOX=18000N NSUB=1E16 LD=0.0U + +.model mp1p0 pmos LEVEL=1 vto=-0.8V kp=21u gamma=0.45 phi=0.61 lambda=0.0 ++ PHI=0.61 LAMBDA=0.00 CGSO=0 CGDO=0 CGBO=0 ++ CJ=0 CJSW=0 TOX=18000N NSUB=3E16 LD=0.0U + +.END diff --git a/Windows/spice/examples/TransmissionLines/ltra4_1_line.sp b/Windows/spice/examples/TransmissionLines/ltra4_1_line.sp new file mode 100644 index 00000000..8dc8ada6 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra4_1_line.sp @@ -0,0 +1,239 @@ + BJTdriver -- 24inch lossy line LTRA model -- DiodeCircuit + +* This unclassified circuit is from Raytheon, courtesy Gerry Marino. +* It consists of a BJT driver connected by a 24 inch lossy line to a +* passive load consisting mostly of diodes. Each inch +* of the lossy line is modelled by 10 LRC lumps in the Raytheon +* model. + +* The line parameters (derived from the Raytheon input file) are: +* L = 9.13nH per inch +* C = 3.65pF per inch +* R = 0.2 ohms per inch + +* the circuit + +v1 1 0 0v pulse(0 4 1ns 1ns 1ns 20ns 40ns) + +vcc 10 0 5v +*rseries 1 2 5 +x1 1 2 10 bjtdrvr +*t1 2 0 3 0 z0=50.0136 td=4.38119ns rel=10 +o2 2 0 3 0 lline1 +*x2 2 3 oneinch +*x2 100 101 twentyfourinch +*x2 100 101 xtwentyfourinch +vtest1 2 100 0 +vtest2 101 3 0 +x3 3 4 10 dioload +*rl 3 0 5 +*dl 0 3 diod2 + +.model lline1 ltra rel=1 r=0.2 g=0 l=9.13e-9 c=3.65e-12 len=24 steplimit + +.model qmodn npn(bf=100 rb=100 cje=0.09375pF cjc=0.28125pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpd npn(bf=100 rb=100 cje=0.08187pF cjc=0.2525pF is=1e-12 ++pe=0.5 pc=0.5) +.model qmodpdmine npn(bf=100 rb=100 cje=0.08187pF cjc=0.05pF is=1e-12 ++pe=0.5 pc=0.5) + +.model dmod1 d(n=2.25 is=1.6399e-4 bv=10) + +.model dmod2 d + +.model dmod d(vj=0.3v) + +.model diod1 d(tt=0.75ns vj=0.6 rs=909 bv=10) + +.model diod2 d(tt=0.5ns vj=0.3 rs=100 bv=10) + +.options acct ++reltol=1e-3 abstol=1e-14 +.control +tran 0.1ns 60ns +plot v(1) v(2) v(3) +.endc + +* bjt driver - 19=input, 268=output, 20=vcc; wierd node numbers from +* the Raytheon file + +.subckt bjtdrvr 19 268 20 +q1 22 18 13 qmodn +q2 18 16 13 qmodn +qd2 21 9 0 qmodn +q4 14 14 0 qmodn +q3 16 15 14 qmodpd +q5 8 13 17 qmodn +q6 25 12 0 qmodn +q7 6 17 0 qmodpd +qd1 26 10 0 qmodn +q8 7 11 10 qmodn +q10 268 17 0 qmodpdmine +*q10 268 17 0 qmodpd +q9 7 10 268 qmodn + +d1 0 19 dmod1 +d2 18 19 dmod2 +d3 13 19 dmod +dq1 18 22 dmod +dq2 16 18 dmod +d502 9 21 dmod +dq3 15 16 dmod +d10 24 8 dmod +d4 15 6 dmod +dq6 12 25 dmod +dq7 17 6 dmod +dd1 17 10 dmod +d7 11 6 dmod +dd2 17 26 dmod +d9 23 6 dmod +dq8 11 7 dmod +d501 17 268 dmod +dq9 10 7 dmod +d14 20 27 dmod +d8 0 268 dmod + +r1 18 20 6k +r2 22 20 2.2k +r4 0 13 7k +rd1 9 13 2k +rd2 21 13 3k +r3 16 20 10k +r5 15 20 15k +r9 0 17 4k +r6 24 20 750 +r10 12 17 2k +r12 24 11 1.5k +r11 25 17 3k +r15 23 20 10k +r13 0 10 15k +r14 7 27 12 + +.ends bjtdrvr + +* subckt dioload - diode load: input=28, output=4, vcc=5 + +.subckt dioload 28 4 5 +*comment out everything in dioload except d5 and r503, and watch +* the difference in results obtained between a tran 0.1ns 20ns and +* a tran 0.01ns 20ns +c1 28 0 5pF +r503 0 4 5.55 +r4 0 28 120k +r5 1 5 7.5k + +d5 4 28 diod2 +d1 1 28 diod1 +d4 2 0 diod1 +d3 3 2 diod1 +d2 1 3 diod1 +.ends dioload + +* subckt lump - one RLC lump of the lossy line + +*10 segments per inch +.subckt lump 1 2 +*r1 1 3 0.02 +*c1 3 0 0.365pF +*l1 3 2 0.913nH + +l1 1 3 0.913nH +c1 2 0 0.365pF +r1 3 2 0.02 + +*r1 1 3 0.01 +*c1 3 0 0.1825pF +*l1 3 4 0.4565nH +*r2 4 5 0.01 +*c2 5 0 0.1825pF +*l2 5 2 0.4565nH + +*c1 1 0 0.365pF +*l1 1 2 0.913nH +.ends lump + +.subckt oneinch 1 2 +x1 1 3 lump +x2 3 4 lump +x3 4 5 lump +x4 5 6 lump +x5 6 7 lump +x6 7 8 lump +x7 8 9 lump +x8 9 10 lump +x9 10 11 lump +x10 11 2 lump +.ends oneinch + +.subckt fourinch 1 2 +x1 1 3 oneinch +x2 3 4 oneinch +x3 4 5 oneinch +x4 5 2 oneinch +.ends fourinch + +.subckt fiveinch 1 2 +x1 1 3 oneinch +x2 3 4 oneinch +x3 4 5 oneinch +x4 5 6 oneinch +x5 6 2 oneinch +.ends fiveinch + +.subckt twentyfourinch 1 2 +x1 1 3 fiveinch +x2 3 4 fiveinch +x3 4 5 fiveinch +x4 5 6 fiveinch +x5 6 2 fourinch +.ends twentyfourinch + +*modelling using R and lossless lines +*5 segments per inch +.model llfifth ltra nocontrol noprint rel=10 r=0 g=0 l=9.13e-9 ++c=3.65e-12 len=0.2 steplimit quadinterp +.subckt xlump 1 2 +o1 1 0 3 0 llfifth +r1 2 3 0.04 +.ends xlump + +.subckt xoneinch 1 2 +x1 1 3 xlump +x2 3 4 xlump +x3 4 5 xlump +x4 5 6 xlump +x5 6 2 xlump +*x5 6 7 xlump +*x6 7 8 xlump +*x7 8 9 xlump +*x8 9 10 xlump +*x9 10 11 xlump +*x10 11 2 xlump +.ends xoneinch + +.subckt xfourinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 2 xoneinch +.ends xfourinch + +.subckt xfiveinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 6 xoneinch +x5 6 2 xoneinch +.ends xfiveinch + +.subckt xtwentyfourinch 1 2 +x1 1 3 xfiveinch +x2 3 4 xfiveinch +x3 4 5 xfiveinch +x4 5 6 xfiveinch +x5 6 2 xfourinch +.ends xtwentyfourinch + +.end diff --git a/Windows/spice/examples/TransmissionLines/ltra5_1_line.sp b/Windows/spice/examples/TransmissionLines/ltra5_1_line.sp new file mode 100644 index 00000000..35459404 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra5_1_line.sp @@ -0,0 +1,530 @@ + Example 3 for interconnect simulation + +* From neug1, Mosaic aluminum lines. 2um thick, 11um wide. Assuming +* 10um above the ground. +* Material: aluminum; resistivity (sigma) = 2.74uohm-cm = 2.74e-8 ohm-m +* Dielectric: SiO2, dielectric constant (epsilon) =3.7 +* epsilon0 = 8.85e-12 MKS units +* mu0 = 4e-7*PI +* speed of light in free space = 1/sqrt(mu0*epsilon0) = 2.9986e8 MKS units +* +* Line parameter calculations: +* capacitance: parallel plate +* C = epsilon*epsilon0 * A / l +* C = 3.7*8.85e-12 * 11e-6 * 1(metre) / 10e-6 = 36.02e-12 F/m +* + 30% = 46.8e-12 F/m = 0.468pF/cm +* +* C_freespace = 46.8e-12/epsilon = 12.65e-12 F/m +* speed of light in free space v0 = 2.9986e8 = 1/sqrt(L0*C0) +* => L0 = 1/C0*v0^2 +* L0 = 1/(12.65e-12 * 8.9916e16) = 1/113.74e4 = 0.008792e-4 H/m +* = 0.8792 uH/m = 8.792nH/cm +* +* R = rho * l / A = 2.74e-8 * 1 / (11e-6*2e-6) = 1245.45 ohms/m +* = 12.45ohms/cm +* +* transmission line parameters: +* nominal z0 = sqrt(L/C) = 137 ohms +* td = sqrt(LC) = 64.14e-12 secs/cm = 0.064ns/cm +* +* + + +vcc vcc 0 5 + +v1 1 0 0v pulse(0 5 0.1ns 0.1ns 0.1ns 1ns 100ns) +rs 1 2 10 +xdrv 1 2 vcc bjtdrvr +xrcv 3 4 vcc bjtdrvr +xrcv 3 4 vcc dioload +d1 3 vcc diod +d2 0 3 diod +cl 3 0 1pF +o1 2 0 3 0 lline +*x1 2 3 sixteencm +x1 2 3 xonecm + +.model diod d +.model lline ltra rel=1.8 r=12.45 g=0 l=8.792e-9 c=0.468e-12 len=16 steplimit + +.control +* 1cm +* 2cm +* 4cm +* 6cm +* 8cm +* 10cm +* 12cm +*tran 0.001ns 15ns 0 0.1ns +* 24cm +tran 0.001ns 10ns 0 0.1ns +* onecm10 +*tran 0.001ns 10ns 0 0.01ns +plot v(1) v(2) v(3) +.endc + + +* 1. define the subckt r10 to be one tenth of the resistance per cm. +* 2. define the subckt onecm to be one of onecm10 (modelled using +* 10 segments), onecm8, onecm4, onecm2 and lump1. Then use +* the subckts onecm, fourcm, fivecm, tencm, twelvecm, +* twentyfourcm in the circuit. The line is modelled as rlc segments. +* 3. define the subckt xonecm to be one of xonecm10, xonecm8, +* xonecm4, xonecm2 and xlump1. Use the subckts xonecm, +* xfourcm, xfivecm, xtencm, xtwelvecm, xtwentyfourcm in the +* circuit. The line will be modelled as r-lossless lumps. + +.subckt xonecm 1 2 +*x1 1 2 xlump1 +x1 1 2 xonecm4 +.ends xonecm + +.subckt onecm 1 2 +*x1 1 2 lump1 +x1 1 2 onecm4 +.ends onecm + +.subckt r10 1 2 +r1 1 2 1.245 +.ends r10 + +* ECL driver and diode receiver models - from Raytheon + +.model qmodn npn(bf=100 rb=100 cje=0.09375pF cjc=0.28125pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpd npn(bf=100 rb=100 cje=0.08187pF cjc=0.2525pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpdmine npn(bf=100 rb=100 cje=0.08187pF cjc=0.05pF is=1e-12 ++pe=0.5 pc=0.5) + +.model dmod1 d(n=2.25 is=1.6399e-4 bv=10) + +.model dmod2 d + +.model dmod d(vj=0.3v) + +.model diod1 d(tt=0.75ns vj=0.6 rs=909 bv=10) + +.model diod2 d(tt=0.5ns vj=0.3 rs=100 bv=10) + +* bjt driver - 19=input, 268=output, 20=vcc; wierd node numbers from +* the Raytheon file + +.subckt bjtdrvr 19 268 20 +q1 22 18 13 qmodn +q2 18 16 13 qmodn +qd2 21 9 0 qmodn +q4 14 14 0 qmodn +q3 16 15 14 qmodpd +q5 8 13 17 qmodn +q6 25 12 0 qmodn +q7 6 17 0 qmodpd +qd1 26 10 0 qmodn +q8 7 11 10 qmodn +q10 268 17 0 qmodpdmine +*q10 268 17 0 qmodpd +q9 7 10 268 qmodn + +d1 0 19 dmod1 +d2 18 19 dmod2 +d3 13 19 dmod +dq1 18 22 dmod +dq2 16 18 dmod +d502 9 21 dmod +dq3 15 16 dmod +d10 24 8 dmod +d4 15 6 dmod +dq6 12 25 dmod +dq7 17 6 dmod +dd1 17 10 dmod +d7 11 6 dmod +dd2 17 26 dmod +d9 23 6 dmod +dq8 11 7 dmod +d501 17 268 dmod +dq9 10 7 dmod +d14 20 27 dmod +d8 0 268 dmod + +r1 18 20 6k +r2 22 20 2.2k +r4 0 13 7k +rd1 9 13 2k +rd2 21 13 3k +r3 16 20 10k +r5 15 20 15k +r9 0 17 4k +r6 24 20 750 +r10 12 17 2k +r12 24 11 1.5k +r11 25 17 3k +r15 23 20 10k +r13 0 10 15k +r14 7 27 12 + +.ends bjtdrvr + +* subckt dioload - diode load: input=28, output=4, vcc=5 + +.subckt dioload 28 4 5 +c1 28 0 5pF +r503 0 4 5.55 +r400 0 28 120k +r500 1 5 7.5k + +d5 4 28 diod2 +d1 1 28 diod1 +d4 2 0 diod1 +d3 3 2 diod1 +d2 1 3 diod1 +.ends dioload + +* End ECL driver and Diode receiver models from Raytheon + +*10 segments per cm +.subckt lump10 1 2 +l1 1 3 0.0.8792nH +c1 2 0 0.0468pF +x1 3 2 r10 +.ends lump10 + +*1 segment per cm +.subckt lump1 1 2 +l1 1 3 8.792nH +c1 2 0 0.468pF +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 8 r10 +x6 8 9 r10 +x7 9 10 r10 +x8 10 11 r10 +x9 11 12 r10 +x10 12 2 r10 +.ends lump1 + +*2 segments per cm +.subckt lump2 1 2 +l1 1 3 4.396nH +c1 2 0 0.234pF +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 2 r10 +.ends lump2 + +*4 segments per cm +.subckt lump4 1 2 +l1 1 3 2.198nH +c1 2 0 0.117pF +x1 3 4 r10 +x2 4 5 r10 +x3 5 2 r10 +x4 5 2 r10 +.ends lump4 + +*8 segments per cm +.subckt lump8 1 2 +l1 1 3 1.099nH +c1 2 0 0.0585pF +x1 3 4 r10 +x2 4 2 r10 +x3 4 2 r10 +x4 4 2 r10 +x5 4 2 r10 +.ends lump8 + +.subckt onecm10 1 2 +x1 1 3 lump10 +x2 3 4 lump10 +x3 4 5 lump10 +x4 5 6 lump10 +x5 6 7 lump10 +x6 7 8 lump10 +x7 8 9 lump10 +x8 9 10 lump10 +x9 10 11 lump10 +x10 11 2 lump10 +.ends onecm10 + +.subckt onecm8 1 2 +x1 1 3 lump8 +x2 3 4 lump8 +x3 4 5 lump8 +x4 5 6 lump8 +x5 6 7 lump8 +x6 7 8 lump8 +x7 8 9 lump8 +x8 9 2 lump8 +.ends onecm8 + +.subckt onecm4 1 2 +x1 1 3 lump4 +x2 3 4 lump4 +x3 4 5 lump4 +x4 5 2 lump4 +.ends onecm4 + +.subckt onecm2 1 2 +x1 1 3 lump2 +x2 3 2 lump2 +.ends onecm2 + +.subckt twocm 1 2 +x1 1 3 onecm +x2 3 2 onecm +.ends twocm + +.subckt threecm 1 2 +x1 1 3 onecm +x2 3 4 onecm +x3 4 2 onecm +.ends threecm + +.subckt fourcm 1 2 +x1 1 3 onecm +x2 3 4 onecm +x3 4 5 onecm +x4 5 2 onecm +.ends fourcm + +.subckt fivecm 1 2 +x1 1 3 onecm +x2 3 4 onecm +x3 4 5 onecm +x4 5 6 onecm +x5 6 2 onecm +.ends fivecm + +.subckt sixcm 1 2 +x1 1 3 fivecm +x2 3 2 onecm +.ends sixcm + +.subckt sevencm 1 2 +x1 1 3 sixcm +x2 3 2 onecm +.ends sevencm + +.subckt eightcm 1 2 +x1 1 3 sevencm +x2 3 2 onecm +.ends eightcm + +.subckt ninecm 1 2 +x1 1 3 eightcm +x2 3 2 onecm +.ends ninecm + +.subckt tencm 1 2 +x1 1 3 fivecm +x2 3 2 fivecm +.ends tencm + +.subckt elevencm 1 2 +x1 1 3 tencm +x2 3 2 onecm +.ends elevencm + +.subckt twelvecm 1 2 +x1 1 3 tencm +x2 3 4 onecm +x3 4 2 onecm +.ends twelvecm + +.subckt sixteencm 1 2 +x1 1 3 eightcm +x2 3 2 eightcm +.ends sixteencm + +.subckt twentyfourcm 1 2 +x1 1 3 twelvecm +x2 3 2 twelvecm +.ends twentyfourcm + + +*modelling using R and lossless lines +* 10 segments per cm +.model lless10 ltra nocontrol rel=10 r=0 g=0 l=8.792e-9 ++c=0.468e-12 len=0.1 steplimit quadinterp + +* 8 segments per cm +.model lless8 ltra nocontrol rel=10 r=0 g=0 l=8.792e-9 ++c=0.468e-12 len=0.125 steplimit quadinterp + +* 4 segments per cm +.model lless4 ltra nocontrol rel=10 r=0 g=0 l=8.792e-9 ++c=0.468e-12 len=0.25 steplimit quadinterp + +* 2 segments per cm +.model lless2 ltra nocontrol rel=10 r=0 g=0 l=8.792e-9 ++c=0.468e-12 len=0.5 steplimit quadinterp + +* 1 segment per cm +.model lless1 ltra nocontrol rel=10 r=0 g=0 l=8.792e-9 ++c=0.468e-12 len=1 steplimit quadinterp + +*10 segments per cm +.subckt xlump10 1 2 +o1 1 0 3 0 lless10 +x1 3 2 r10 +.ends xlump10 + +*1 segment per cm +.subckt xlump1 1 2 +o1 1 0 3 0 lless1 +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 8 r10 +x6 8 9 r10 +x7 9 10 r10 +x8 10 11 r10 +x9 11 12 r10 +x10 12 2 r10 +.ends xlump1 + +*2 segments per cm +.subckt xlump2 1 2 +o1 1 0 3 0 lless2 +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 2 r10 +.ends xlump2 + +*4 segments per cm +.subckt xlump4 1 2 +o1 1 0 3 0 lless4 +x1 3 4 r10 +x2 4 5 r10 +x3 5 2 r10 +x4 5 2 r10 +.ends xlump4 + +*8 segments per cm +.subckt xlump8 1 2 +o1 1 0 3 0 lless8 +x1 3 4 r10 +x2 4 2 r10 +x3 4 2 r10 +x4 4 2 r10 +x5 4 2 r10 +.ends xlump8 + +.subckt xonecm10 1 2 +x1 1 3 xlump10 +x2 3 4 xlump10 +x3 4 5 xlump10 +x4 5 6 xlump10 +x5 6 7 xlump10 +x6 7 8 xlump10 +x7 8 9 xlump10 +x8 9 10 xlump10 +x9 10 11 xlump10 +x10 11 2 xlump10 +.ends xonecm10 + +.subckt xonecm8 1 2 +x1 1 3 xlump8 +x2 3 4 xlump8 +x3 4 5 xlump8 +x4 5 6 xlump8 +x5 6 7 xlump8 +x6 7 8 xlump8 +x7 8 9 xlump8 +x8 9 2 xlump8 +.ends xonecm8 + +.subckt xonecm4 1 2 +x1 1 3 xlump4 +x2 3 4 xlump4 +x3 4 5 xlump4 +x4 5 2 xlump4 +.ends xonecm4 + +.subckt xonecm2 1 2 +x1 1 3 xlump2 +x2 3 2 xlump2 +.ends xonecm2 + + +.subckt xtwocm 1 2 +x1 1 3 xonecm +x2 3 2 xonecm +.ends xtwocm + +.subckt xthreecm 1 2 +x1 1 3 xonecm +x2 3 4 xonecm +x3 4 2 xonecm +.ends xthreecm + +.subckt xfourcm 1 2 +x1 1 3 xonecm +x2 3 4 xonecm +x3 4 5 xonecm +x4 5 2 xonecm +.ends xfourcm + +.subckt xfivecm 1 2 +x1 1 3 xonecm +x2 3 4 xonecm +x3 4 5 xonecm +x4 5 6 xonecm +x5 6 2 xonecm +.ends xfivecm + +.subckt xsixcm 1 2 +x1 1 3 xfivecm +x2 3 2 xonecm +.ends xsixcm + +.subckt xsevencm 1 2 +x1 1 3 xsixcm +x2 3 2 xonecm +.ends xsevencm + +.subckt xeightcm 1 2 +x1 1 3 xsevencm +x2 3 2 xonecm +.ends xeightcm + +.subckt xninecm 1 2 +x1 1 3 xeightcm +x2 3 2 xonecm +.ends xninecm + +.subckt xtencm 1 2 +x1 1 3 xfivecm +x2 3 2 xfivecm +.ends xtencm + +.subckt xelevencm 1 2 +x1 1 3 xtencm +x2 3 2 xonecm +.ends xelevencm + +.subckt xtwelvecm 1 2 +x1 1 3 xtencm +x2 3 4 xonecm +x3 4 2 xonecm +.ends xtwelvecm + +.subckt xsixteencm 1 2 +x1 1 3 xeightcm +x2 3 2 xeightcm +.ends xsixteencm + +.subckt xtwentyfourcm 1 2 +x1 1 3 xtwelvecm +x2 3 2 xtwelvecm +.ends xtwentyfourcm + +.end diff --git a/Windows/spice/examples/TransmissionLines/ltra6_2_line.sp b/Windows/spice/examples/TransmissionLines/ltra6_2_line.sp new file mode 100644 index 00000000..45279129 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra6_2_line.sp @@ -0,0 +1,394 @@ +BJTdriver -- 2in st. lin -- 20in coupled line LTRA -- 2in st line -- DiodeCircuit + +* This unclassified circuit is from Raytheon, courtesy Gerry Marino. +* +* _______ +* -------- 2in _________________ 2in | | +* | BJT |______| |______|Diode| +* | |------| |------| | +* | Drvr | line | 2-wire | line |rcvr.| +* -------- | coupled | |_____| +* | transmission | +* |-/\/\/\/\----| line |-------\/\/\/\/\----| +* | 50ohms | | 50ohms | +* | | | | +* Ground ----------------- Ground +* +* +* Each inch of the lossy line is modelled by 10 LRC lumps in the +* Raytheon model. + +* The line parameters (derived from the Raytheon input file) are: +* L = 9.13nH per inch +* C = 3.65pF per inch +* R = 0.2 ohms per inch +* K = 0.482 [coupling coefficient; K = M/sqrt(L1*L2)] +* Cc = 1.8pF per inch +* +* coupled ltra model generated using the standalone program +* multi_decomp + +* the circuit + +v1 1 0 0v pulse(0 4 1ns 1ns 1ns 20ns 40ns) + +vcc 10 0 5v + +* series termination +*x1 1 oof 10 bjtdrvr +*rseries oof 2 50 + +x1 1 2 10 bjtdrvr +rt1 3 0 50 + + +* convolution model +x2 2 3 4 5 conv2wetcmodel + +* rlc segments model +*x2 2 3 4 5 rlc2wetcmodel + +x3 4 dioload +rt2 5 0 50 + + + +.model qmodn npn(bf=100 rb=100 cje=0.09375pF cjc=0.28125pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpd npn(bf=100 rb=100 cje=0.08187pF cjc=0.2525pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpdmine npn(bf=100 rb=100 cje=0.08187pF cjc=0.05pF is=1e-12 ++pe=0.5 pc=0.5) + +.model dmod1 d(n=2.25 is=1.6399e-4 bv=10) + +.model dmod2 d + +.model dmod d(vj=0.3v) + +.model diod1 d(tt=0.75ns vj=0.6 rs=909 bv=10) + +.model diod2 d(tt=0.5ns vj=0.3 rs=100 bv=10) + +.options acct reltol=1e-3 abstol=1e-12 +.control +tran 0.1ns 60ns +plot v(2) v(4) v(5) +.endc + +* bjt driver - 19=input, 268=output, 20=vcc; wierd node numbers from +* the Raytheon file + +.subckt bjtdrvr 19 268 20 +q1 22 18 13 qmodn +q2 18 16 13 qmodn +qd2 21 9 0 qmodn +q4 14 14 0 qmodn +q3 16 15 14 qmodpd +q5 8 13 17 qmodn +q6 25 12 0 qmodn +q7 6 17 0 qmodpd +qd1 26 10 0 qmodn +q8 7 11 10 qmodn +*q10 268 17 0 qmodpd +q10 268 17 0 qmodpdmine +q9 7 10 268 qmodn + +d1 0 19 dmod1 +d2 18 19 dmod2 +d3 13 19 dmod +dq1 18 22 dmod +dq2 16 18 dmod +d502 9 21 dmod +dq3 15 16 dmod +d10 24 8 dmod +d4 15 6 dmod +dq6 12 25 dmod +dq7 17 6 dmod +dd1 17 10 dmod +d7 11 6 dmod +dd2 17 26 dmod +d9 23 6 dmod +dq8 11 7 dmod +d501 17 268 dmod +dq9 10 7 dmod +d14 20 27 dmod +d8 0 268 dmod + +r1 18 20 6k +r2 22 20 2.2k +r4 0 13 7k +rd1 9 13 2k +rd2 21 13 3k +r3 16 20 10k +r5 15 20 15k +r9 0 17 4k +r6 24 20 750 +r10 12 17 2k +r12 24 11 1.5k +r11 25 17 3k +r15 23 20 10k +r13 0 10 15k +r14 7 27 12 + +.ends bjtdrvr + +* subckt dioload - diode load: input=28, output=4, vcc=5 + +.subckt dioload 28 +*comment out everything in dioload except d5 and r503, and watch +* the difference in results obtained between a tran 0.1ns 20ns and +* a tran 0.01ns 20ns +vccint 5 0 5v + +c1 28 0 5pF +r503 0 4 5.55 +r4 0 28 120k +r5 1 5 7.5k + +d5 4 28 diod2 +d1 1 28 diod1 +d4 2 0 diod1 +d3 3 2 diod1 +d2 1 3 diod1 +.ends dioload + +* subckt rlclump - one RLC lump of the lossy line + +.subckt rlclump 1 2 +*r1 1 3 0.02 +*c1 3 0 0.365pF +*l1 3 2 0.913nH + +l1 1 3 0.913nH +c1 2 0 0.365pF +r1 3 2 0.02 + +*r1 1 3 0.01 +*c1 3 0 0.1825pF +*l1 3 4 0.4565nH +*r2 4 5 0.01 +*c2 5 0 0.1825pF +*l2 5 2 0.4565nH + +*c1 1 0 0.365pF +*l1 1 2 0.913nH +.ends lump + +.subckt rlconeinch 1 2 +x1 1 3 rlclump +x2 3 4 rlclump +x3 4 5 rlclump +x4 5 6 rlclump +x5 6 7 rlclump +x6 7 8 rlclump +x7 8 9 rlclump +x8 9 10 rlclump +x9 10 11 rlclump +x10 11 2 rlclump +.ends rlconeinch + +.subckt rlctwoinch 1 2 +x1 1 3 rlconeinch +x2 3 2 rlconeinch +.ends rlctwoinch + +.subckt rlcfourinch 1 2 +x1 1 3 rlconeinch +x2 3 4 rlconeinch +x3 4 5 rlconeinch +x4 5 2 rlconeinch +.ends rlcfourinch + +.subckt rlcfiveinch 1 2 +x1 1 3 rlconeinch +x2 3 4 rlconeinch +x3 4 5 rlconeinch +x4 5 6 rlconeinch +x5 6 2 rlconeinch +.ends rlcfiveinch + +.subckt rlctwentyrlcfourinch 1 2 +x1 1 3 rlcfiveinch +x2 3 4 rlcfiveinch +x3 4 5 rlcfiveinch +x4 5 6 rlcfiveinch +x5 6 2 rlcfourinch +.ends rlctwentyrlcfourinch + +.subckt rlclumpstub A B C D +x1 A int1 rlcfiveinch +x2 int1 int2 rlcfiveinch +x3 int2 1 rlcfiveinch +x4 1 2 rlcfourinch +x5 1 int3 rlcfiveinch +x6 int3 B rlconeinch +x7 2 C rlcfiveinch +x8 2 D rlcfourinch +.ends rlclumpstub + +.subckt ltrastub A B C D +o1 A 0 1 0 lline15in +o2 1 0 B 0 lline6in +o3 1 0 2 0 lline4in +o4 2 0 C 0 lline5in +o5 2 0 D 0 lline4in +.ends ltrastub + +*modelling using R and lossless lines + +*5 segments per inch +.model llfifth ltra nocontrol rel=10 r=0 g=0 l=9.13e-9 ++c=3.65e-12 len=0.2 steplimit quadinterp + +.subckt xlump 1 2 +o1 1 0 3 0 llfifth +r1 2 3 0.04 +.ends xlump + +.subckt xoneinch 1 2 +x1 1 3 xlump +x2 3 4 xlump +x3 4 5 xlump +x4 5 6 xlump +x5 6 2 xlump +*x5 6 7 xlump +*x6 7 8 xlump +*x7 8 9 xlump +*x8 9 10 xlump +*x9 10 11 xlump +*x10 11 2 xlump +.ends xoneinch + +.subckt xFourinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 2 xoneinch +.ends xfourinch + +.subckt xfiveinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 6 xoneinch +x5 6 2 xoneinch +.ends xfiveinch + +.subckt xlumpstub A B C D +x1 A int1 xfiveinch +x2 int1 int2 xfiveinch +x3 int2 1 xfiveinch +x4 1 2 xfourinch +x5 1 int3 xfiveinch +x6 int3 B xoneinch +x7 2 C xfiveinch +x8 2 D xfourinch +.ends xlumpstub + +* modelling a 2 wire coupled system using RLC lumps +* 10 segments per inch +* +* 1---xxxxx----2 +* 3---xxxxx----4 + +.subckt rlc2wlump 1 3 2 4 +l1 1 5 0.913nH +c1 2 0 0.365pF +r1 5 2 0.02 +l2 3 6 0.913nH +c2 4 0 0.365pF +r2 6 4 0.02 +cmut 2 4 0.18pF +k12 l1 l2 0.482 +.ends rlc2wlump + +.subckt rlc2woneinch 1 2 3 4 +x1 1 2 5 6 rlc2wlump +x2 5 6 7 8 rlc2wlump +x3 7 8 9 10 rlc2wlump +x4 9 10 11 12 rlc2wlump +x5 11 12 13 14 rlc2wlump +x6 13 14 15 16 rlc2wlump +x7 15 16 17 18 rlc2wlump +x8 17 18 19 20 rlc2wlump +x9 19 20 21 22 rlc2wlump +x10 21 22 3 4 rlc2wlump +.ends rlc2woneinch + +.subckt rlc2wfiveinch 1 2 3 4 +x1 1 2 5 6 rlc2woneinch +x2 5 6 7 8 rlc2woneinch +x3 7 8 9 10 rlc2woneinch +x4 9 10 11 12 rlc2woneinch +x5 11 12 3 4 rlc2woneinch +.ends rlc2wfiveinch + +.subckt rlc2wtwentyinch 1 2 3 4 +x1 1 2 5 6 rlc2wfiveinch +x2 5 6 7 8 rlc2wfiveinch +x3 7 8 9 10 rlc2wfiveinch +x4 9 10 3 4 rlc2wfiveinch +.ends rlc2wtwentyinch + +.subckt rlc2wetcmodel 1 2 3 4 +x1 1 5 rlctwoinch +x2 5 2 6 4 rlc2wtwentyinch +x3 6 3 rlctwoinch +.ends rlc2wetcmodel + +* Subcircuit conv2wtwentyinch +* conv2wtwentyinch is a subcircuit that models a 2-conductor transmission line with +* the following parameters: l=9.13e-09, c=3.65e-12, r=0.2, g=0, +* inductive_coeff_of_coupling k=0.482, inter-line capacitance cm=1.8e-12, +* length=20. Derived parameters are: lm=4.40066e-09, ctot=5.45e-12. +* +* It is important to note that the model is a simplified one - the +* following assumptions are made: 1. The self-inductance l, the +* self-capacitance ctot (note: not c), the series resistance r and the +* parallel capacitance g are the same for all lines, and 2. Each line +* is coupled only to the two lines adjacent to it, with the same +* coupling parameters cm and lm. The first assumption imply that edge +* effects have to be neglected. The utility of these assumptions is +* that they make the sL+R and sC+G matrices symmetric, tridiagonal and +* Toeplitz, with useful consequences. +* +* It may be noted that a symmetric two-conductor line will be +* accurately represented by this model. + +* Lossy line models +.model mod1_conv2wtwentyinch ltra rel=1.2 nocontrol r=0.2 l=4.72933999088e-09 g=0 c=7.25000000373e-12 len=20 +.model mod2_conv2wtwentyinch ltra rel=1.2 nocontrol r=0.2 l=1.35306599818e-08 g=0 c=3.65000000746e-12 len=20 + +* subcircuit m_conv2wtwentyinch - modal transformation network for conv2wtwentyinch +.subckt m_conv2wtwentyinch 1 2 3 4 +v1 5 0 0v +v2 6 0 0v +f1 0 3 v1 0.707106779721 +f2 0 3 v2 -0.707106782652 +f3 0 4 v1 0.707106781919 +f4 0 4 v2 0.707106780454 +e1 7 5 3 0 0.707106780454 +e2 1 7 4 0 0.707106782652 +e3 8 6 3 0 -0.707106781919 +e4 2 8 4 0 0.707106779721 +.ends m_conv2wtwentyinch + +* Subckt conv2wtwentyinch +.subckt conv2wtwentyinch 1 2 3 4 +x1 1 2 5 6 m_conv2wtwentyinch +o1 5 0 7 0 mod1_conv2wtwentyinch +o2 6 0 8 0 mod2_conv2wtwentyinch +x2 3 4 7 8 m_conv2wtwentyinch +.ends conv2wtwentyinch + +.model convtwoinch ltra r=0.2 l=9.13e-9 c=3.65e-12 len=2.0 rel=1.2 nocontrol +.subckt conv2wetcmodel 1 2 3 4 +o1 1 0 5 0 convtwoinch +x1 5 2 6 4 conv2wtwentyinch +o2 6 0 3 0 convtwoinch +.ends conv2wetcmodel + +.end diff --git a/Windows/spice/examples/TransmissionLines/ltra7_4_line.sp b/Windows/spice/examples/TransmissionLines/ltra7_4_line.sp new file mode 100644 index 00000000..7be4615a --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/ltra7_4_line.sp @@ -0,0 +1,113 @@ +6.3inch 4 lossy lines LTRA model -- R load + +Ra 1 2 1K +Rb 0 3 1K +Rc 0 4 1K +Rd 0 5 1K +Re 6 0 1Meg +Rf 7 0 1Meg +Rg 8 0 1Meg +Rh 9 0 1Meg + + +* +* Subcircuit test +* test is a subcircuit that models a 4-conductor transmission line with +* the following parameters: l=9e-09, c=2.9e-13, r=0.3, g=0, +* inductive_coeff_of_coupling k=0.6, inter-line capacitance cm=3e-14, +* length=6.3. Derived parameters are: lm=5.4e-09, ctot=3.5e-13. +* +* It is important to note that the model is a simplified one - the +* following assumptions are made: 1. The self-inductance l, the +* self-capacitance ctot (note: not c), the series resistance r and the +* parallel capacitance g are the same for all lines, and 2. Each line +* is coupled only to the two lines adjacent to it, with the same +* coupling parameters cm and lm. The first assumption implies that edge +* effects have to be neglected. The utility of these assumptions is +* that they make the sL+R and sC+G matrices symmetric, tridiagonal and +* Toeplitz, with useful consequences (see "Efficient Transient +* Simulation of Lossy Interconnect", by J.S. Roychowdhury and +* D.O Pederson, Proc. DAC 91). + +* It may be noted that a symmetric two-conductor line is +* represented accurately by this model. + +* Subckt node convention: +* +* |--------------------------| +* 1-----| |-----n+1 +* 2-----| |-----n+2 +* : | n-wire multiconductor | : +* : | line | : +* n-1-----|(node 0=common gnd plane) |-----2n-1 +* n-----| |-----2n +* |--------------------------| + + +* Lossy line models +.model mod1_test ltra rel=1.2 nocontrol r=0.3 l=2.62616456193e-10 g=0 c=3.98541019688e-13 len=6.3 +.model mod2_test ltra rel=1.2 nocontrol r=0.3 l=5.662616446e-09 g=0 c=3.68541019744e-13 len=6.3 +.model mod3_test ltra rel=1.2 nocontrol r=0.3 l=1.23373835171e-08 g=0 c=3.3145898046e-13 len=6.3 +.model mod4_test ltra rel=1.2 nocontrol r=0.3 l=1.7737383521e-08 g=0 c=3.01458980439e-13 len=6.3 + +* subcircuit m_test - modal transformation network for test +.subckt m_test 1 2 3 4 5 6 7 8 +v1 9 0 0v +v2 10 0 0v +v3 11 0 0v +v4 12 0 0v +f1 0 5 v1 0.371748033738 +f2 0 5 v2 -0.601500954587 +f3 0 5 v3 0.601500954587 +f4 0 5 v4 -0.371748036544 +f5 0 6 v1 0.60150095443 +f6 0 6 v2 -0.371748035044 +f7 0 6 v3 -0.371748030937 +f8 0 6 v4 0.601500957402 +f9 0 7 v1 0.601500954079 +f10 0 7 v2 0.37174803072 +f11 0 7 v3 -0.371748038935 +f12 0 7 v4 -0.601500955482 +f13 0 8 v1 0.371748035626 +f14 0 8 v2 0.601500956073 +f15 0 8 v3 0.601500954504 +f16 0 8 v4 0.371748032386 +e1 13 9 5 0 0.371748033909 +e2 14 13 6 0 0.601500954587 +e3 15 14 7 0 0.601500955639 +e4 1 15 8 0 0.371748036664 +e5 16 10 5 0 -0.60150095443 +e6 17 16 6 0 -0.371748035843 +e7 18 17 7 0 0.371748032386 +e8 2 18 8 0 0.601500957319 +e9 19 11 5 0 0.601500955131 +e10 20 19 6 0 -0.371748032169 +e11 21 20 7 0 -0.371748037896 +e12 3 21 8 0 0.601500954513 +e13 22 12 5 0 -0.371748035746 +e14 23 22 6 0 0.60150095599 +e15 24 23 7 0 -0.601500953534 +e16 4 24 8 0 0.371748029317 +.ends m_test + +* Subckt test +.subckt test 1 2 3 4 5 6 7 8 +x1 1 2 3 4 9 10 11 12 m_test +o1 9 0 13 0 mod1_test +o2 10 0 14 0 mod2_test +o3 11 0 15 0 mod3_test +o4 12 0 16 0 mod4_test +x2 5 6 7 8 13 14 15 16 m_test +.ends test +* +x1 2 3 4 5 6 7 8 9 test +* +* +VS1 1 0 PWL(15.9NS 0.0 16.1Ns 5.0 31.9Ns 5.0 32.1Ns 0.0) + +.control +TRAN 0.2NS 50NS +plot v(1) v(2) v(6) v(7) v(8) v(9) +.endc +* +.END diff --git a/Windows/spice/examples/TransmissionLines/txl1_1_line.sp b/Windows/spice/examples/TransmissionLines/txl1_1_line.sp new file mode 100644 index 00000000..fdbec1ae --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/txl1_1_line.sp @@ -0,0 +1,18 @@ +MOSdriver -- lossy line TXL model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +y1 2 0 3 0 ymod +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.control +TRAN 0.2N 47N 0 0.1N +plot v(2) v(3) ylimit -0.5 5 +.endc +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL ymod txl R=12.45 L=8.972e-9 G=0 C=0.468e-12 length=16 +.end diff --git a/Windows/spice/examples/TransmissionLines/txl2_3_line.sp b/Windows/spice/examples/TransmissionLines/txl2_3_line.sp new file mode 100644 index 00000000..41b54996 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/txl2_3_line.sp @@ -0,0 +1,26 @@ +MOSdriver -- 3 lossy lines TXL model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +m1 0 3 4 0 mn0p9 w = 18.0u l=0.9u +m2 1 3 4 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +CN4 4 0 0.025398e-12 +CN5 5 0 0.007398e-12 +CN6 6 0 0.007398e-12 +CN7 168 0 0.007398e-12 +y1 2 0 3 0 ymod +y2 4 0 5 0 ymod +y3 6 0 168 0 ymod +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.control +TRAN 0.2N 47N 0 0.1N +plot v(2) v(3) v(4) v(5) v(6) +.endc +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL ymod txl R=12.45 L=8.972e-9 G=0 C=0.468e-12 length=16 +.end diff --git a/Windows/spice/examples/TransmissionLines/txl3_1_line.sp b/Windows/spice/examples/TransmissionLines/txl3_1_line.sp new file mode 100644 index 00000000..466c2591 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/txl3_1_line.sp @@ -0,0 +1,236 @@ + BJTdriver -- 24inch lossy line TXL model -- DiodeCircuit + +* This unclassified circuit is from Raytheon, courtesy Gerry Marino. +* It consists of a BJT driver connected by a 24 inch lossy line to a +* passive load consisting mostly of diodes. Each inch +* of the lossy line is modelled by 10 LRC lumps in the Raytheon +* model. + +* The line parameters (derived from the Raytheon input file) are: +* L = 9.13nH per inch +* C = 3.65pF per inch +* R = 0.2 ohms per inch + +* the circuit +v1 1 0 0v pulse(0 4 1ns 1ns 1ns 20ns 40ns) +vcc 10 0 5v +*rseries 1 2 5 +x1 1 2 10 bjtdrvr +*t1 2 0 3 0 z0=50.0136 td=4.38119ns rel=10 +y2 2 0 3 0 ymod1 +*x2 2 3 oneinch +*x2 100 101 twentyfourinch +*x2 100 101 xtwentyfourinch +vtest1 2 100 0 +vtest2 101 3 0 +x3 3 4 10 dioload +*rl 3 0 5 +*dl 0 3 diod2 + +.model ymod1 txl r=0.2 g=0 l=9.13e-9 c=3.65e-12 length=24 + +.model qmodn npn(bf=100 rb=100 cje=0.09375pF cjc=0.28125pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpd npn(bf=100 rb=100 cje=0.08187pF cjc=0.2525pF is=1e-12 ++pe=0.5 pc=0.5) +.model qmodpdmine npn(bf=100 rb=100 cje=0.08187pF cjc=0.05pF is=1e-12 ++pe=0.5 pc=0.5) + +.model dmod1 d(n=2.25 is=1.6399e-4 bv=10) + +.model dmod2 d + +.model dmod d(vj=0.3v) + +.model diod1 d(tt=0.75ns vj=0.6 rs=909 bv=10) + +.model diod2 d(tt=0.5ns vj=0.3 rs=100 bv=10) + +.options acct ++reltol=1e-3 abstol=1e-14 +.control +tran 0.1ns 60ns 0 0.5ns +plot v(1) v(2) v(3) +.endc + +* bjt driver - 19=input, 268=output, 20=vcc; wierd node numbers from +* the Raytheon file + +.subckt bjtdrvr 19 268 20 +q1 22 18 13 qmodn +q2 18 16 13 qmodn +qd2 21 9 0 qmodn +q4 14 14 0 qmodn +q3 16 15 14 qmodpd +q5 8 13 17 qmodn +q6 25 12 0 qmodn +q7 6 17 0 qmodpd +qd1 26 10 0 qmodn +q8 7 11 10 qmodn +q10 268 17 0 qmodpdmine +*q10 268 17 0 qmodpd +q9 7 10 268 qmodn + +d1 0 19 dmod1 +d2 18 19 dmod2 +d3 13 19 dmod +dq1 18 22 dmod +dq2 16 18 dmod +d502 9 21 dmod +dq3 15 16 dmod +d10 24 8 dmod +d4 15 6 dmod +dq6 12 25 dmod +dq7 17 6 dmod +dd1 17 10 dmod +d7 11 6 dmod +dd2 17 26 dmod +d9 23 6 dmod +dq8 11 7 dmod +d501 17 268 dmod +dq9 10 7 dmod +d14 20 27 dmod +d8 0 268 dmod + +r1 18 20 6k +r2 22 20 2.2k +r4 0 13 7k +rd1 9 13 2k +rd2 21 13 3k +r3 16 20 10k +r5 15 20 15k +r9 0 17 4k +r6 24 20 750 +r10 12 17 2k +r12 24 11 1.5k +r11 25 17 3k +r15 23 20 10k +r13 0 10 15k +r14 7 27 12 + +.ends bjtdrvr + +* subckt dioload - diode load: input=28, output=4, vcc=5 + +.subckt dioload 28 4 5 +*comment out everything in dioload except d5 and r503, and watch +* the difference in results obtained between a tran 0.1ns 20ns and +* a tran 0.01ns 20ns +c1 28 0 5pF +r503 0 4 5.55 +r4 0 28 120k +r5 1 5 7.5k + +d5 4 28 diod2 +d1 1 28 diod1 +d4 2 0 diod1 +d3 3 2 diod1 +d2 1 3 diod1 +.ends dioload + +* subckt lump - one RLC lump of the lossy line + +*10 segments per inch +.subckt lump 1 2 +*r1 1 3 0.02 +*c1 3 0 0.365pF +*l1 3 2 0.913nH + +l1 1 3 0.913nH +c1 2 0 0.365pF +r1 3 2 0.02 + +*r1 1 3 0.01 +*c1 3 0 0.1825pF +*l1 3 4 0.4565nH +*r2 4 5 0.01 +*c2 5 0 0.1825pF +*l2 5 2 0.4565nH + +*c1 1 0 0.365pF +*l1 1 2 0.913nH +.ends lump + +.subckt oneinch 1 2 +x1 1 3 lump +x2 3 4 lump +x3 4 5 lump +x4 5 6 lump +x5 6 7 lump +x6 7 8 lump +x7 8 9 lump +x8 9 10 lump +x9 10 11 lump +x10 11 2 lump +.ends oneinch + +.subckt fourinch 1 2 +x1 1 3 oneinch +x2 3 4 oneinch +x3 4 5 oneinch +x4 5 2 oneinch +.ends fourinch + +.subckt fiveinch 1 2 +x1 1 3 oneinch +x2 3 4 oneinch +x3 4 5 oneinch +x4 5 6 oneinch +x5 6 2 oneinch +.ends fiveinch + +.subckt twentyfourinch 1 2 +x1 1 3 fiveinch +x2 3 4 fiveinch +x3 4 5 fiveinch +x4 5 6 fiveinch +x5 6 2 fourinch +.ends twentyfourinch + +*modelling using R and lossless lines +*5 segments per inch +.model ymod2 txl r=0 g=0 l=9.13e-9 c=3.65e-12 length=0.2 +.subckt xlump 1 2 +y1 1 0 3 0 ymod2 +r1 2 3 0.04 +.ends xlump + +.subckt xoneinch 1 2 +x1 1 3 xlump +x2 3 4 xlump +x3 4 5 xlump +x4 5 6 xlump +x5 6 2 xlump +*x5 6 7 xlump +*x6 7 8 xlump +*x7 8 9 xlump +*x8 9 10 xlump +*x9 10 11 xlump +*x10 11 2 xlump +.ends xoneinch + +.subckt xfourinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 2 xoneinch +.ends xfourinch + +.subckt xfiveinch 1 2 +x1 1 3 xoneinch +x2 3 4 xoneinch +x3 4 5 xoneinch +x4 5 6 xoneinch +x5 6 2 xoneinch +.ends xfiveinch + +.subckt xtwentyfourinch 1 2 +x1 1 3 xfiveinch +x2 3 4 xfiveinch +x3 4 5 xfiveinch +x4 5 6 xfiveinch +x5 6 2 xfourinch +.ends xtwentyfourinch + +.end diff --git a/Windows/spice/examples/TransmissionLines/txl4_1_line.sp b/Windows/spice/examples/TransmissionLines/txl4_1_line.sp new file mode 100644 index 00000000..91586479 --- /dev/null +++ b/Windows/spice/examples/TransmissionLines/txl4_1_line.sp @@ -0,0 +1,523 @@ + Example 3 for interconnect simulation + +* From neug1, Mosaic aluminum lines. 2um thick, 11um wide. Assuming +* 10um above the ground. +* Material: aluminum; resistivity (sigma) = 2.74uohm-cm = 2.74e-8 ohm-m +* Dielectric: SiO2, dielectric constant (epsilon) =3.7 +* epsilon0 = 8.85e-12 MKS units +* mu0 = 4e-7*PI +* speed of light in free space = 1/sqrt(mu0*epsilon0) = 2.9986e8 MKS units +* +* Line parameter calculations: +* capacitance: parallel plate +* C = epsilon*epsilon0 * A / l +* C = 3.7*8.85e-12 * 11e-6 * 1(metre) / 10e-6 = 36.02e-12 F/m +* + 30% = 46.8e-12 F/m = 0.468pF/cm +* +* C_freespace = 46.8e-12/epsilon = 12.65e-12 F/m +* speed of light in free space v0 = 2.9986e8 = 1/sqrt(L0*C0) +* => L0 = 1/C0*v0^2 +* L0 = 1/(12.65e-12 * 8.9916e16) = 1/113.74e4 = 0.008792e-4 H/m +* = 0.8792 uH/m = 8.792nH/cm +* +* R = rho * l / A = 2.74e-8 * 1 / (11e-6*2e-6) = 1245.45 ohms/m +* = 12.45ohms/cm +* +* transmission line parameters: +* nominal z0 = sqrt(L/C) = 137 ohms +* td = sqrt(LC) = 64.14e-12 secs/cm = 0.064ns/cm +* +* + + +vcc vcc 0 5 +v1 1 0 0v pulse(0 5 0.1ns 0.1ns 0.1ns 1ns 100ns) +rs 1 2 10 +xdrv 1 2 vcc bjtdrvr +xrcv 3 4 vcc bjtdrvr +xrcv 3 4 vcc dioload +d1 3 vcc diod +d2 0 3 diod +cl 3 0 1pF +y1 2 0 3 0 yline +*x1 2 3 sixteencm +x1 2 3 xonecm + +.model diod d +.model yline txl r=12.45 g=0 l=8.792e-9 c=0.468e-12 length=16 + +.control +* 1cm +* 2cm +* 4cm +* 6cm +* 8cm +* 10cm +* 12cm +*tran 0.001ns 15ns 0 0.1ns +* 24cm +tran 0.001ns 10ns 0 0.1ns +* onecm10 +*tran 0.001ns 10ns 0 0.01ns +plot v(1) v(2) v(3) +.endc + + +* 1. define the subckt r10 to be one tenth of the resistance per cm. +* 2. define the subckt onecm to be one of onecm10 (modelled using +* 10 segments), onecm8, onecm4, onecm2 and lump1. Then use +* the subckts onecm, fourcm, fivecm, tencm, twelvecm, +* twentyfourcm in the circuit. The line is modelled as rlc segments. +* 3. define the subckt xonecm to be one of xonecm10, xonecm8, +* xonecm4, xonecm2 and xlump1. Use the subckts xonecm, +* xfourcm, xfivecm, xtencm, xtwelvecm, xtwentyfourcm in the +* circuit. The line will be modelled as r-lossless lumps. + +.subckt xonecm 1 2 +*x1 1 2 xlump1 +x1 1 2 xonecm4 +.ends xonecm + +.subckt onecm 1 2 +*x1 1 2 lump1 +x1 1 2 onecm4 +.ends onecm + +.subckt r10 1 2 +r1 1 2 1.245 +.ends r10 + +* ECL driver and diode receiver models - from Raytheon + +.model qmodn npn(bf=100 rb=100 cje=0.09375pF cjc=0.28125pF is=1e-12 ++pe=0.5 pc=0.5) + +.model qmodpd npn(bf=100 rb=100 cje=0.08187pF cjc=0.2525pF is=1e-12 ++pe=0.5 pc=0.5) +.model qmodpdmine npn(bf=100 rb=100 cje=0.08187pF cjc=0.05pF is=1e-12 ++pe=0.5 pc=0.5) + +.model dmod1 d(n=2.25 is=1.6399e-4 bv=10) + +.model dmod2 d + +.model dmod d(vj=0.3v) + +.model diod1 d(tt=0.75ns vj=0.6 rs=909 bv=10) + +.model diod2 d(tt=0.5ns vj=0.3 rs=100 bv=10) + +* bjt driver - 19=input, 268=output, 20=vcc; wierd node numbers from +* the Raytheon file + +.subckt bjtdrvr 19 268 20 +q1 22 18 13 qmodn +q2 18 16 13 qmodn +qd2 21 9 0 qmodn +q4 14 14 0 qmodn +q3 16 15 14 qmodpd +q5 8 13 17 qmodn +q6 25 12 0 qmodn +q7 6 17 0 qmodpd +qd1 26 10 0 qmodn +q8 7 11 10 qmodn +q10 268 17 0 qmodpdmine +*q10 268 17 0 qmodpd +q9 7 10 268 qmodn + +d1 0 19 dmod1 +d2 18 19 dmod2 +d3 13 19 dmod +dq1 18 22 dmod +dq2 16 18 dmod +d502 9 21 dmod +dq3 15 16 dmod +d10 24 8 dmod +d4 15 6 dmod +dq6 12 25 dmod +dq7 17 6 dmod +dd1 17 10 dmod +d7 11 6 dmod +dd2 17 26 dmod +d9 23 6 dmod +dq8 11 7 dmod +d501 17 268 dmod +dq9 10 7 dmod +d14 20 27 dmod +d8 0 268 dmod + +r1 18 20 6k +r2 22 20 2.2k +r4 0 13 7k +rd1 9 13 2k +rd2 21 13 3k +r3 16 20 10k +r5 15 20 15k +r9 0 17 4k +r6 24 20 750 +r10 12 17 2k +r12 24 11 1.5k +r11 25 17 3k +r15 23 20 10k +r13 0 10 15k +r14 7 27 12 + +.ends bjtdrvr + +* subckt dioload - diode load: input=28, output=4, vcc=5 + +.subckt dioload 28 4 5 +c1 28 0 5pF +r503 0 4 5.55 +r400 0 28 120k +r500 1 5 7.5k + +d5 4 28 diod2 +d1 1 28 diod1 +d4 2 0 diod1 +d3 3 2 diod1 +d2 1 3 diod1 +.ends dioload + +* End ECL driver and Diode receiver models from Raytheon + +*10 segments per cm +.subckt lump10 1 2 +l1 1 3 0.0.8792nH +c1 2 0 0.0468pF +x1 3 2 r10 +.ends lump10 + +*1 segment per cm +.subckt lump1 1 2 +l1 1 3 8.792nH +c1 2 0 0.468pF +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 8 r10 +x6 8 9 r10 +x7 9 10 r10 +x8 10 11 r10 +x9 11 12 r10 +x10 12 2 r10 +.ends lump1 + +*2 segments per cm +.subckt lump2 1 2 +l1 1 3 4.396nH +c1 2 0 0.234pF +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 2 r10 +.ends lump2 + +*4 segments per cm +.subckt lump4 1 2 +l1 1 3 2.198nH +c1 2 0 0.117pF +x1 3 4 r10 +x2 4 5 r10 +x3 5 2 r10 +x4 5 2 r10 +.ends lump4 + +*8 segments per cm +.subckt lump8 1 2 +l1 1 3 1.099nH +c1 2 0 0.0585pF +x1 3 4 r10 +x2 4 2 r10 +x3 4 2 r10 +x4 4 2 r10 +x5 4 2 r10 +.ends lump8 + +.subckt onecm10 1 2 +x1 1 3 lump10 +x2 3 4 lump10 +x3 4 5 lump10 +x4 5 6 lump10 +x5 6 7 lump10 +x6 7 8 lump10 +x7 8 9 lump10 +x8 9 10 lump10 +x9 10 11 lump10 +x10 11 2 lump10 +.ends onecm10 + +.subckt onecm8 1 2 +x1 1 3 lump8 +x2 3 4 lump8 +x3 4 5 lump8 +x4 5 6 lump8 +x5 6 7 lump8 +x6 7 8 lump8 +x7 8 9 lump8 +x8 9 2 lump8 +.ends onecm8 + +.subckt onecm4 1 2 +x1 1 3 lump4 +x2 3 4 lump4 +x3 4 5 lump4 +x4 5 2 lump4 +.ends onecm4 + +.subckt onecm2 1 2 +x1 1 3 lump2 +x2 3 2 lump2 +.ends onecm2 + +.subckt twocm 1 2 +x1 1 3 onecm +x2 3 2 onecm +.ends twocm + +.subckt threecm 1 2 +x1 1 3 onecm +x2 3 4 onecm +x3 4 2 onecm +.ends threecm + +.subckt fourcm 1 2 +x1 1 3 onecm +x2 3 4 onecm +x3 4 5 onecm +x4 5 2 onecm +.ends fourcm + +.subckt fivecm 1 2 +x1 1 3 onecm +x2 3 4 onecm +x3 4 5 onecm +x4 5 6 onecm +x5 6 2 onecm +.ends fivecm + +.subckt sixcm 1 2 +x1 1 3 fivecm +x2 3 2 onecm +.ends sixcm + +.subckt sevencm 1 2 +x1 1 3 sixcm +x2 3 2 onecm +.ends sevencm + +.subckt eightcm 1 2 +x1 1 3 sevencm +x2 3 2 onecm +.ends eightcm + +.subckt ninecm 1 2 +x1 1 3 eightcm +x2 3 2 onecm +.ends ninecm + +.subckt tencm 1 2 +x1 1 3 fivecm +x2 3 2 fivecm +.ends tencm + +.subckt elevencm 1 2 +x1 1 3 tencm +x2 3 2 onecm +.ends elevencm + +.subckt twelvecm 1 2 +x1 1 3 tencm +x2 3 4 onecm +x3 4 2 onecm +.ends twelvecm + +.subckt sixteencm 1 2 +x1 1 3 eightcm +x2 3 2 eightcm +.ends sixteencm + +.subckt twentyfourcm 1 2 +x1 1 3 twelvecm +x2 3 2 twelvecm +.ends twentyfourcm + + +*modelling using R and lossless lines +* 10 segments per cm +.model yless10 txl r=0 g=0 l=8.792e-9 c=0.468e-12 length=0.1 + +* 8 segments per cm +.model yless8 txl r=0 g=0 l=8.792e-9 c=0.468e-12 length=0.125 + +* 4 segments per cm +.model yless4 txl r=0 g=0 l=8.792e-9 c=0.468e-12 length=0.25 + +* 2 segments per cm +.model yless2 txl r=0 g=0 l=8.792e-9 c=0.468e-12 length=0.5 + +* 1 segment per cm +.model yless1 txl r=0 g=0 l=8.792e-9 c=0.468e-12 length=1 + +*10 segments per cm +.subckt xlump10 1 2 +y1 1 0 3 0 yless10 +x1 3 2 r10 +.ends xlump10 + +*1 segment per cm +.subckt xlump1 1 2 +y1 1 0 3 0 yless1 +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 8 r10 +x6 8 9 r10 +x7 9 10 r10 +x8 10 11 r10 +x9 11 12 r10 +x10 12 2 r10 +.ends xlump1 + +*2 segments per cm +.subckt xlump2 1 2 +y1 1 0 3 0 yless2 +x1 3 4 r10 +x2 4 5 r10 +x3 5 6 r10 +x4 6 7 r10 +x5 7 2 r10 +.ends xlump2 + +*4 segments per cm +.subckt xlump4 1 2 +y1 1 0 3 0 yless4 +x1 3 4 r10 +x2 4 5 r10 +x3 5 2 r10 +x4 5 2 r10 +.ends xlump4 + +*8 segments per cm +.subckt xlump8 1 2 +y1 1 0 3 0 yless8 +x1 3 4 r10 +x2 4 2 r10 +x3 4 2 r10 +x4 4 2 r10 +x5 4 2 r10 +.ends xlump8 + +.subckt xonecm10 1 2 +x1 1 3 xlump10 +x2 3 4 xlump10 +x3 4 5 xlump10 +x4 5 6 xlump10 +x5 6 7 xlump10 +x6 7 8 xlump10 +x7 8 9 xlump10 +x8 9 10 xlump10 +x9 10 11 xlump10 +x10 11 2 xlump10 +.ends xonecm10 + +.subckt xonecm8 1 2 +x1 1 3 xlump8 +x2 3 4 xlump8 +x3 4 5 xlump8 +x4 5 6 xlump8 +x5 6 7 xlump8 +x6 7 8 xlump8 +x7 8 9 xlump8 +x8 9 2 xlump8 +.ends xonecm8 + +.subckt xonecm4 1 2 +x1 1 3 xlump4 +x2 3 4 xlump4 +x3 4 5 xlump4 +x4 5 2 xlump4 +.ends xonecm4 + +.subckt xonecm2 1 2 +x1 1 3 xlump2 +x2 3 2 xlump2 +.ends xonecm2 + + +.subckt xtwocm 1 2 +x1 1 3 xonecm +x2 3 2 xonecm +.ends xtwocm + +.subckt xthreecm 1 2 +x1 1 3 xonecm +x2 3 4 xonecm +x3 4 2 xonecm +.ends xthreecm + +.subckt xfourcm 1 2 +x1 1 3 xonecm +x2 3 4 xonecm +x3 4 5 xonecm +x4 5 2 xonecm +.ends xfourcm + +.subckt xfivecm 1 2 +x1 1 3 xonecm +x2 3 4 xonecm +x3 4 5 xonecm +x4 5 6 xonecm +x5 6 2 xonecm +.ends xfivecm + +.subckt xsixcm 1 2 +x1 1 3 xfivecm +x2 3 2 xonecm +.ends xsixcm + +.subckt xsevencm 1 2 +x1 1 3 xsixcm +x2 3 2 xonecm +.ends xsevencm + +.subckt xeightcm 1 2 +x1 1 3 xsevencm +x2 3 2 xonecm +.ends xeightcm + +.subckt xninecm 1 2 +x1 1 3 xeightcm +x2 3 2 xonecm +.ends xninecm + +.subckt xtencm 1 2 +x1 1 3 xfivecm +x2 3 2 xfivecm +.ends xtencm + +.subckt xelevencm 1 2 +x1 1 3 xtencm +x2 3 2 xonecm +.ends xelevencm + +.subckt xtwelvecm 1 2 +x1 1 3 xtencm +x2 3 4 xonecm +x3 4 2 xonecm +.ends xtwelvecm + +.subckt xsixteencm 1 2 +x1 1 3 xeightcm +x2 3 2 xeightcm +.ends xsixteencm + +.subckt xtwentyfourcm 1 2 +x1 1 3 xtwelvecm +x2 3 2 xtwelvecm +.ends xtwentyfourcm + +.end diff --git a/Windows/spice/examples/cider/bicmos/bicmos.lib b/Windows/spice/examples/cider/bicmos/bicmos.lib new file mode 100644 index 00000000..cc1eb20d --- /dev/null +++ b/Windows/spice/examples/cider/bicmos/bicmos.lib @@ -0,0 +1,127 @@ +.MODEL M_NPN nbjt level=2 ++ title TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ * Since, we are only simulating half of a device, we double the unit width ++ * 1.0 um emitter length ++ options defw=2.0u ++ output dc.debug stat ++ ++ *x.mesh w=2.5 n=5 ++ x.mesh w=2.0 h.e=0.05 h.m=0.2 r=1.5 ++ x.mesh w=0.5 h.s=0.05 h.m=0.1 r=1.5 ++ ++ y.mesh l=-0.2 n=1 ++ y.mesh l= 0.0 n=5 ++ y.mesh w=0.10 h.e=0.002 h.m=0.01 r=1.5 ++ y.mesh w=0.15 h.s=0.002 h.m=0.01 r=1.5 ++ y.mesh w=0.35 h.s=0.01 h.m=0.2 r=1.5 ++ y.mesh w=0.40 h.e=0.05 h.m=0.2 r=1.5 ++ y.mesh w=0.30 h.s=0.05 h.m=0.1 r=1.5 ++ ++ domain num=1 material=1 x.l=2.0 y.h=0.0 ++ domain num=2 material=2 x.h=2.0 y.h=0.0 ++ domain num=3 material=3 y.l=0.0 ++ material num=1 polysilicon ++ material num=2 oxide ++ material num=3 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=1.1 y.h=1.3 ++ elec num=2 x.l=0.0 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=-0.2 ++ ++ doping gauss n.type conc=3e20 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.047 lat.rotate ++ doping gauss p.type conc=1e19 x.l=0.0 x.h=5.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.094 lat.rotate ++ doping unif n.type conc=1e16 x.l=0.0 x.h=5.0 y.l=0.0 y.h=1.3 ++ doping gauss n.type conc=5e19 x.l=0.0 x.h=5.0 y.l=1.3 y.h=1.3 ++ + char.l=0.100 lat.rotate ++ ++ method ac=direct itlim=10 ++ models bgn srh auger conctau concmob fieldmob + +.MODEL M_NMOS_1 numos ++ output dc.debug stat ++ title 1.0um NMOS Device ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.4 h.s=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.4 h.e=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1.0 x.h=2.0 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=2.5 x.h=3.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1.0 x.h=2.0 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=3.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=3.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=3.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1.0 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=2.0 x.h=3.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=2.05 x.h=3.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob fieldmob surfmob srh auger conctau bgn ^aval ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_1 numos ++ title 1.0um PMOS Device ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.4 h.s=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.4 h.e=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1.0 x.h=2.0 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=2.5 x.h=3.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1.0 x.h=2.0 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=3.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=3.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=3.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1.0 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=2.0 x.h=3.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=2.05 x.h=3.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob fieldmob surfmob srh auger conctau bgn ^aval ++ method ac=direct itlim=10 onec diff --git a/Windows/spice/examples/cider/bicmos/bicmpd.cir b/Windows/spice/examples/cider/bicmos/bicmpd.cir new file mode 100644 index 00000000..8096b49b --- /dev/null +++ b/Windows/spice/examples/cider/bicmos/bicmpd.cir @@ -0,0 +1,26 @@ +BiCMOS Pulldown Circuit + +VSS 2 0 0v + +VIN 3 2 0v (PULSE 0.0v 4.2v 0ns 1ns 1ns 9ns 20ns) + +M1 8 3 5 11 M_NMOS_1 W=4u L=1u +VD 4 8 0v +VBK 11 2 0v + +Q1 10 7 9 M_NPN AREA=8 +VC 4 10 0v +VB 5 7 0v +VE 9 2 0v + +CL 4 6 1pF +VL 6 2 0v + +.IC V(10)=5.0v V(7)=0.0v +.TRAN 0.1ns 5ns 0ns 0.1ns +.PLOT TRAN I(VIN) + +.include bicmos.lib + +.OPTIONS ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/bjt/astable.cir b/Windows/spice/examples/cider/bjt/astable.cir new file mode 100644 index 00000000..bdb4a8a8 --- /dev/null +++ b/Windows/spice/examples/cider/bjt/astable.cir @@ -0,0 +1,34 @@ +Astable multivibrator + +vin 5 0 dc 0 pulse(0 5 0 1us 1us 100us 100us) +vcc 6 0 5.0 +rc1 6 1 1k +rc2 6 2 1k +rb1 6 3 30k +rb2 5 4 30k +c1 1 4 150pf +c2 2 3 150pf +q1 1 3 0 qmod area = 100p +q2 2 4 0 qmod area = 100p + +.option acct bypass=1 +.tran 0.05us 8us 0us 0.05us +.print tran v(1) v(2) v(3) v(4) + +.model qmod nbjt level=1 ++ x.mesh node=1 loc=0.0 ++ x.mesh node=61 loc=3.0 ++ region num=1 material=1 ++ material num=1 silicon nbgnn=1e17 nbgnp=1e17 ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ doping unif n.type conc=1e17 x.l=0.0 x.h=1.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.5 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=3.0 ++ models bgnw srh conctau auger concmob fieldmob ++ options base.length=1.0 base.depth=1.25 + +.end diff --git a/Windows/spice/examples/cider/bjt/colposc.cir b/Windows/spice/examples/cider/bjt/colposc.cir new file mode 100644 index 00000000..bd4d31fa --- /dev/null +++ b/Windows/spice/examples/cider/bjt/colposc.cir @@ -0,0 +1,33 @@ +Colpitt's Oscillator Circuit + +r1 1 0 1 +q1 2 1 3 qmod area = 100p +vcc 4 0 5 +rl 4 2 750 +c1 2 3 500p +c2 4 3 4500p +l1 4 2 5uH +re 3 6 4.65k +vee 6 0 dc -15 pwl 0 -15 1e-9 -10 + +.tran 30n 12u +.print tran v(2) + +.model qmod nbjt level=1 ++ x.mesh node=1 loc=0.0 ++ x.mesh node=61 loc=3.0 ++ region num=1 material=1 ++ material num=1 silicon nbgnn=1e17 nbgnp=1e17 ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ doping unif n.type conc=1e17 x.l=0.0 x.h=1.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.5 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=3.0 ++ models bgnw srh conctau auger concmob fieldmob ++ options base.length=1.0 base.depth=1.25 + +.options acct bypass=1 +.end diff --git a/Windows/spice/examples/cider/bjt/ecp.cir b/Windows/spice/examples/cider/bjt/ecp.cir new file mode 100644 index 00000000..6fb2bda9 --- /dev/null +++ b/Windows/spice/examples/cider/bjt/ecp.cir @@ -0,0 +1,57 @@ +Emitter Coupled Pair + +VCC 1 0 5v +VEE 2 0 0v +RCP 1 11 10k +RCN 1 21 10k +VBBP 12 0 3v AC 1 +VBBN 22 0 3v +IEE 13 2 0.1mA +Q1 11 12 13 M_NPN AREA=8 +Q2 21 22 13 M_NPN AREA=8 + +.DC VBBP 2.75v 3.25001v 10mv +.PRINT V(21) V(11) + +.MODEL M_NPN nbjt level=2 ++ title TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ * Since, we are only simulating half of a device, we double the unit width ++ * 1.0 um emitter length ++ options defw=2.0u ++ ++ *x.mesh w=2.5 n=5 ++ x.mesh w=2.0 h.e=0.05 h.m=0.2 r=1.5 ++ x.mesh w=0.5 h.s=0.05 h.m=0.1 r=1.5 ++ ++ y.mesh l=-0.2 n=1 ++ y.mesh l= 0.0 n=5 ++ y.mesh w=0.10 h.e=0.002 h.m=0.01 r=1.5 ++ y.mesh w=0.15 h.s=0.002 h.m=0.01 r=1.5 ++ y.mesh w=0.35 h.s=0.01 h.m=0.2 r=1.5 ++ y.mesh w=0.40 h.e=0.05 h.m=0.2 r=1.5 ++ y.mesh w=0.30 h.s=0.05 h.m=0.1 r=1.5 ++ ++ domain num=1 material=1 x.l=2.0 y.h=0.0 ++ domain num=2 material=2 x.h=2.0 y.h=0.0 ++ domain num=3 material=3 y.l=0.0 ++ material num=1 polysilicon ++ material num=2 oxide ++ material num=3 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=1.1 y.h=1.3 ++ elec num=2 x.l=0.0 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=-0.2 ++ ++ doping gauss n.type conc=3e20 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.047 lat.rotate ++ doping gauss p.type conc=1e19 x.l=0.0 x.h=5.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.094 lat.rotate ++ doping unif n.type conc=1e16 x.l=0.0 x.h=5.0 y.l=0.0 y.h=1.3 ++ doping gauss n.type conc=5e19 x.l=0.0 x.h=5.0 y.l=1.3 y.h=1.3 ++ + char.l=0.100 lat.rotate ++ ++ method ac=direct itlim=10 ++ models bgn srh auger conctau concmob fieldmob + +.OPTIONS ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/bjt/invchain.cir b/Windows/spice/examples/cider/bjt/invchain.cir new file mode 100644 index 00000000..92c6fad8 --- /dev/null +++ b/Windows/spice/examples/cider/bjt/invchain.cir @@ -0,0 +1,38 @@ +4 Stage RTL Inverter Chain + +vin 1 0 dc 0v pwl 0ns 0v 1ns 5v +vcc 12 0 dc 5.0v +rc1 12 3 2.5k +rb1 1 2 8k +q1 3 2 0 qmod area = 100p +rb2 3 4 8k +rc2 12 5 2.5k +q2 5 4 0 qmod area = 100p +rb3 5 6 8k +rc3 12 7 2.5k +q3 7 6 0 qmod area = 100p +rb4 7 8 8k +rc4 12 9 2.5k +q4 9 8 0 qmod area = 100p + +.print tran v(3) v(5) v(9) +.tran 1e-9 10e-9 + +.model qmod nbjt level=1 ++ x.mesh node=1 loc=0.0 ++ x.mesh node=61 loc=3.0 ++ region num=1 material=1 ++ material num=1 silicon nbgnn=1e17 nbgnp=1e17 ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ doping unif n.type conc=1e17 x.l=0.0 x.h=1.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.5 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=3.0 ++ models bgnw srh conctau auger concmob fieldmob ++ options base.length=1.0 base.depth=1.25 + +.option acct bypass=1 +.end diff --git a/Windows/spice/examples/cider/bjt/meclgate.cir b/Windows/spice/examples/cider/bjt/meclgate.cir new file mode 100644 index 00000000..33542d5d --- /dev/null +++ b/Windows/spice/examples/cider/bjt/meclgate.cir @@ -0,0 +1,74 @@ +Motorola MECL III ECL gate +*.dc vin -2.0 0 0.02 +.tran 0.2ns 20ns +vee 22 0 -6.0 +vin 1 0 pulse -0.8 -1.8 0.2ns 0.2ns 0.2ns 10ns 20ns +rs 1 2 50 +q1 4 2 6 qmod area = 100p +q2 4 3 6 qmod area = 100p +q3 5 7 6 qmod area = 100p +q4 0 8 7 qmod area = 100p + +d1 8 9 dmod +d2 9 10 dmod + +rp1 3 22 50k +rc1 0 4 100 +rc2 0 5 112 +re 6 22 380 +r1 7 22 2k +r2 0 8 350 +r3 10 22 1958 + +q5 0 5 11 qmod area = 100p +q6 0 4 12 qmod area = 100p + +rp2 11 22 560 +rp3 12 22 560 + +q7 13 12 15 qmod area = 100p +q8 14 16 15 qmod area = 100p + +re2 15 22 380 +rc3 0 13 100 +rc4 0 14 112 + +q9 0 17 16 qmod area = 100p + +r4 16 22 2k +r5 0 17 350 +d3 17 18 dmod +d4 18 19 dmod +r6 19 22 1958 + +q10 0 14 20 qmod area = 100p +q11 0 13 21 qmod area = 100p + +rp4 20 22 560 +rp5 21 22 560 + +.model dmod d rs=40 tt=0.1ns cjo=0.9pf n=1 is=1e-14 eg=1.11 vj=0.8 m=0.5 + +.model qmod nbjt level=1 ++ x.mesh node=1 loc=0.0 ++ x.mesh node=10 loc=0.9 ++ x.mesh node=20 loc=1.1 ++ x.mesh node=30 loc=1.4 ++ x.mesh node=40 loc=1.6 ++ x.mesh node=61 loc=3.0 ++ region num=1 material=1 ++ material num=1 silicon nbgnn=1e17 nbgnp=1e17 ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ doping unif n.type conc=1e17 x.l=0.0 x.h=1.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.5 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=3.0 ++ models bgnw srh conctau auger concmob fieldmob ++ options base.length=1.0 base.depth=1.25 + +.options acct bypass=1 +.print tran v(12) v(21) +.end diff --git a/Windows/spice/examples/cider/bjt/pebjt.lib b/Windows/spice/examples/cider/bjt/pebjt.lib new file mode 100644 index 00000000..afbdb36c --- /dev/null +++ b/Windows/spice/examples/cider/bjt/pebjt.lib @@ -0,0 +1,71 @@ +** +* Numerical models for a +* polysilicon emitter complementary bipolar process. +* The default device size is 1um by 10um (LxW) +** + +.model M_NPN nbjt level=1 ++ title One-Dimensional Numerical Bipolar ++ options base.depth=0.15 base.area=0.1 base.length=1.0 defa=10p ++ x.mesh loc=-0.2 n=1 ++ x.mesh loc=0.0 n=51 ++ x.mesh wid=0.15 h.e=0.0001 h.m=.004 r=1.2 ++ x.mesh wid=1.15 h.s=0.0001 h.m=.004 r=1.2 ++ domain num=1 material=1 x.l=0.0 ++ domain num=2 material=2 x.h=0.0 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ material num=2 polysilicon ++ mobility mat=2 concmod=ct fieldmod=ct ++ doping gauss n.type conc=3e20 x.l=-0.2 x.h=0.0 char.len=0.047 ++ doping gauss p.type conc=5e18 x.l=-0.2 x.h=0.0 char.len=0.100 ++ doping unif n.type conc=1e16 x.l=0.0 x.h=1.3 ++ doping gauss n.type conc=5e19 x.l=1.3 x.h=1.3 char.len=0.100 ++ models bgn srh auger conctau concmob fieldmob ^aval ++ method devtol=1e-12 ac=direct itlim=15 + +.model M_NPSUB numd level=1 ++ title One-Dimensional Numerical Collector-Substrate Diode ++ options defa=10p ++ x.mesh loc=1.3 n=1 ++ x.mesh loc=2.0 n=101 ++ domain num=1 material=1 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ doping gauss n.type conc=5e19 x.l=1.3 x.h=1.3 char.len=0.100 ++ doping unif p.type conc=1e15 x.l=0.0 x.h=2.0 ++ models bgn srh auger conctau concmob fieldmob ^aval ++ method devtol=1e-12 itlim=10 + +.model M_PNP nbjt level=1 ++ title One-Dimensional Numerical Bipolar ++ options base.depth=0.2 base.area=0.1 base.length=1.0 defa=10p ++ x.mesh loc=-0.2 n=1 ++ x.mesh loc=0.0 n=51 ++ x.mesh wid=0.20 h.e=0.0001 h.m=.004 r=1.2 ++ x.mesh wid=1.10 h.s=0.0001 h.m=.004 r=1.2 ++ domain num=1 material=1 x.l=0.0 ++ domain num=2 material=2 x.h=0.0 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ material num=2 polysilicon ++ mobility mat=2 concmod=ct fieldmod=ct ++ doping gauss p.type conc=3e20 x.l=-0.2 x.h=0.0 char.len=0.047 ++ doping gauss n.type conc=5e17 x.l=-0.2 x.h=0.0 char.len=0.200 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.3 ++ doping gauss p.type conc=5e19 x.l=1.3 x.h=1.3 char.len=0.100 ++ models bgn srh auger conctau concmob fieldmob ^aval ++ method devtol=1e-12 ac=direct itlim=15 + +.model M_PNSUB numd level=1 ++ title One-Dimensional Numerical Collector-Substrate Diode ++ options defa=10p ++ x.mesh loc=1.3 n=1 ++ x.mesh loc=2.0 n=101 ++ domain num=1 material=1 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ doping gauss p.type conc=5e19 x.l=1.3 x.h=1.3 char.len=0.100 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=2.0 ++ models bgn srh auger conctau concmob fieldmob ^aval ++ method devtol=1e-12 itlim=10 diff --git a/Windows/spice/examples/cider/bjt/pz.cir b/Windows/spice/examples/cider/bjt/pz.cir new file mode 100644 index 00000000..ad3ee675 --- /dev/null +++ b/Windows/spice/examples/cider/bjt/pz.cir @@ -0,0 +1,16 @@ +PZ Analysis of a Common Emitter Amplifier + +Vcc 1 0 5v +Vee 2 0 0v + +Vin 3 0 0.7838 AC 1 +RS 3 4 1K +Q1 5 4 2 M_NPN AREA=4 SAVE +RL 1 5 2.5k +CL 5 0 0.1pF + +.INCLUDE pebjt.lib + +.PZ 3 0 5 0 vol pz + +.END diff --git a/Windows/spice/examples/cider/bjt/rtlinv.cir b/Windows/spice/examples/cider/bjt/rtlinv.cir new file mode 100644 index 00000000..f45eb983 --- /dev/null +++ b/Windows/spice/examples/cider/bjt/rtlinv.cir @@ -0,0 +1,29 @@ +RTL inverter + +vin 1 0 dc 1 pwl 0 4 1ns 0 +vcc 12 0 dc 5.0 +rc1 12 3 2.5k +rb1 1 2 8k +q1 3 2 0 qmod area = 100p + +.option acct bypass=1 +.tran 0.5n 5n +.print tran v(2) v(3) + +.model qmod nbjt level=1 ++ x.mesh node=1 loc=0.0 ++ x.mesh node=61 loc=3.0 ++ region num=1 material=1 ++ material num=1 silicon nbgnn=1e17 nbgnp=1e17 ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ doping unif n.type conc=1e17 x.l=0.0 x.h=1.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.5 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=3.0 ++ models bgnw srh conctau auger concmob fieldmob ++ options base.length=1.0 base.depth=1.25 + +.end diff --git a/Windows/spice/examples/cider/bjt/vco.cir b/Windows/spice/examples/cider/bjt/vco.cir new file mode 100644 index 00000000..d1b1a058 --- /dev/null +++ b/Windows/spice/examples/cider/bjt/vco.cir @@ -0,0 +1,45 @@ +Voltage controlled oscillator + +rc1 7 5 1k +rc2 7 6 1k + +q5 7 7 5 qmod area = 100p +q6 7 7 6 qmod area = 100p + +q3 7 5 2 qmod area = 100p +q4 7 6 1 qmod area = 100p + +ib1 2 0 .5ma +ib2 1 0 .5ma +cb1 2 0 1pf +cb2 1 0 1pf + +q1 5 1 3 qmod area = 100p +q2 6 2 4 qmod area = 100p + +c1 3 4 .1uf + +is1 3 0 dc 2.5ma pulse 2.5ma 0.5ma 0 1us 1us 50ms +is2 4 0 1ma +vcc 7 0 10 + +.model qmod nbjt level=1 ++ x.mesh node=1 loc=0.0 ++ x.mesh node=61 loc=3.0 ++ region num=1 material=1 ++ material num=1 silicon nbgnn=1e17 nbgnp=1e17 ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ doping unif n.type conc=1e17 x.l=0.0 x.h=1.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.5 ++ doping unif n.type conc=1e15 x.l=0.0 x.h=3.0 ++ models bgnw srh conctau auger concmob fieldmob ++ options base.length=1.0 base.depth=1.25 + +.option acct bypass=1 +.tran 3us 600us 0 3us +.print tran v(4) +.end diff --git a/Windows/spice/examples/cider/diode/diode.cir b/Windows/spice/examples/cider/diode/diode.cir new file mode 100644 index 00000000..e0ace324 --- /dev/null +++ b/Windows/spice/examples/cider/diode/diode.cir @@ -0,0 +1,35 @@ +One-Dimensional Diode Simulation + +* Several simulations are performed by this file. +* They are: +* 1. An operating point at 0.7v forward bias. +* 2. An ac analysis at 0.7v forward bias. +* 3. The forward and reverse bias characteristics from -3v to 2v. + +Vpp 1 0 0.7v (PWL 0ns 3.0v 0.01ns -6.0v) (AC 1v) +Vnn 2 0 0v +D1 1 2 M_PN AREA=100 + +.model M_PN numd level=1 ++ *************************************** ++ *** One-Dimensional Numerical Diode *** ++ *************************************** ++ options defa=1p ++ x.mesh loc=0.0 n=1 ++ x.mesh loc=1.3 n=201 ++ domain num=1 material=1 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ doping gauss p.type conc=1e20 x.l=0.0 x.h=0.0 char.l=0.100 ++ doping unif n.type conc=1e16 x.l=0.0 x.h=1.3 ++ doping gauss n.type conc=5e19 x.l=1.3 x.h=1.3 char.l=0.100 ++ models bgn aval srh auger conctau concmob fieldmob ++ method ac=direct + +.option acct bypass=0 abstol=1e-18 itl2=100 +.op +.ac dec 10 100kHz 10gHz +.dc Vpp -3.0v 2.0001v 50mv +.print i(Vpp) + +.END diff --git a/Windows/spice/examples/cider/diode/diotran.cir b/Windows/spice/examples/cider/diode/diotran.cir new file mode 100644 index 00000000..110d2550 --- /dev/null +++ b/Windows/spice/examples/cider/diode/diotran.cir @@ -0,0 +1,31 @@ +Diode Reverse Recovery + +* This file simulates reverse recovery of a diode as it switched from an +* on to off state. + +Vpp 1 0 0.7v (PWL 0ns 3.0v 0.1ns 3.0v 0.11ns -6.0v) (AC 1v) +Vnn 2 0 0v +R1 1 3 1k +D1 3 2 M_PN area=100 + +.MODEL M_PN numd level=1 ++ *************************************** ++ *** One-Dimensional Numerical Diode *** ++ *************************************** ++ options defa=1p ++ x.mesh loc=0.0 n=1 ++ x.mesh loc=1.3 n=201 ++ domain num=1 material=1 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ doping gauss p.type conc=3e20 x.l=0.0 x.h=0.0 char.l=0.100 ++ doping unif n.type conc=1e16 x.l=0.0 x.h=1.3 ++ doping gauss n.type conc=5e19 x.l=1.3 x.h=1.3 char.l=0.100 ++ models bgn aval srh auger conctau concmob fieldmob ++ method ac=direct + +.option acct bypass=1 abstol=1e-15 itl2=100 +.tran 0.001ns 1.0ns +.print i(Vpp) + +.END diff --git a/Windows/spice/examples/cider/diode/pindiode.cir b/Windows/spice/examples/cider/diode/pindiode.cir new file mode 100644 index 00000000..1eb18b42 --- /dev/null +++ b/Windows/spice/examples/cider/diode/pindiode.cir @@ -0,0 +1,42 @@ +TWO-DIMENSIONAL PIN-DIODE CIRCUIT + +VIN 1 0 0.0v (PWL 0ns 0.8v 1ns -50.0v) +L1 1 2 0.5uH +VD 2 3 0.0v +D1 3 0 M_PIN AREA=200 IC.FILE="OP.0.d1" +VRC 2 4 0.0v +R1 4 5 100 +C1 5 0 1.0nF + +.MODEL M_PIN NUMD LEVEL=2 ++ options defw=1000u ++ x.mesh n=1 l=0.0 ++ x.mesh n=2 l=0.2 ++ x.mesh n=4 l=0.4 ++ x.mesh n=8 l=0.6 ++ x.mesh n=13 l=1.0 ++ ++ y.mesh n=1 l=0.0 ++ y.mesh n=9 l=4.0 ++ y.mesh n=24 l=10.0 ++ y.mesh n=29 l=15.0 ++ y.mesh n=34 l=20.0 ++ ++ domain num=1 material=1 ++ material num=1 silicon tn=20ns tp=20ns ++ ++ electrode num=1 x.l=0.6 x.h=1.0 y.h=0.0 ++ electrode num=2 y.l=20.0 ++ ++ doping gauss p.type conc=1.0e20 char.len=1.076 x.l=0.75 x.h=1.1 y.h=0.0 ++ + lat.rotate ratio=0.1 ++ doping unif n.type conc=1.0e14 ++ doping gauss n.type conc=1.0e20 char.len=1.614 x.l=-0.1 x.h=1.1 y.l=20.0 ++ ++ models bgn srh auger conctau concmob fieldmob + +.OPTION ACCT BYPASS=1 +.TRAN 1NS 100NS +.PRINT TRAN v(3) I(VIN) + +.END diff --git a/Windows/spice/examples/cider/jfet/jfet.cir b/Windows/spice/examples/cider/jfet/jfet.cir new file mode 100644 index 00000000..e3f00536 --- /dev/null +++ b/Windows/spice/examples/cider/jfet/jfet.cir @@ -0,0 +1,36 @@ +Two-dimensional Junction Field-Effect Transistor (JFET) + +VDD 1 0 0.5V +VGG 2 0 -1.0v AC 1V +VSS 3 0 0.0V +QJ1 1 2 3 M_NJF AREA=1 + +.MODEL M_NJF NBJT LEVEL=2 ++ options jfet defw=10.0um ++ output dc.debug phin phip equ.psi vac.psi ++ x.mesh w=0.2 h.e=0.001 r=1.8 ++ x.mesh w=0.8 h.s=0.001 h.m=0.1 r=2.0 ++ x.mesh w=0.8 h.e=0.001 h.m=0.1 r=2.0 ++ x.mesh w=0.2 h.s=0.001 r=1.8 ++ y.mesh w=0.2 h.e=0.01 r=1.8 ++ y.mesh w=0.8 h.s=0.01 h.m=0.1 r=1.8 ++ ++ domain num=1 mat=1 ++ material num=1 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=0.0 y.h=1.0 ++ elec num=2 x.l=0.5 x.h=1.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=2.0 y.l=0.0 y.h=1.0 ++ ++ doping unif n.type conc=3.0e15 ++ doping unif p.type conc=2.0e17 x.l=0.2 x.h=1.8 y.h=0.2 ++ ++ models bgn srh auger conctau concmob fieldmob ^aval + +.option acct bypass=1 temp=27 +*.op +.dc vgg 0.0 -2.0001 -0.1 +*.ac dec 10 1k 100g +.print i(vnn) + +.end diff --git a/Windows/spice/examples/cider/mos/bootinv.cir b/Windows/spice/examples/cider/mos/bootinv.cir new file mode 100644 index 00000000..4c2ea40d --- /dev/null +++ b/Windows/spice/examples/cider/mos/bootinv.cir @@ -0,0 +1,59 @@ +NMOS Enhancement-Load Bootstrap Inverter + +Vdd 1 0 5.0v +Vss 2 0 0.0v + +Vin 5 0 0.0v PWL (0.0ns 5.0v) (1ns 0.0v) (10ns 0.0v) (11ns 5.0v) ++ (20ns 5.0v) (21ns 0.0v) (30ns 0.0v) (31ns 5.0v) +M1 1 1 3 2 M_NMOS w=5u +M2 1 3 4 4 M_NMOS w=5u +M3 4 5 2 2 M_NMOS w=5u +CL 4 0 0.1pf +CB 3 4 0.1pf + +.model M_NMOS numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 init elec major ++ mobility material=1 init elec minor ++ mobility material=1 init hole major ++ mobility material=1 init hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif p.type conc=2.5e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif n.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif n.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob ++ method ac=direct onec + +.tran 0.2ns 40ns +.print v(4) +.options acct bypass=1 method=gear +.end diff --git a/Windows/spice/examples/cider/mos/charge.cir b/Windows/spice/examples/cider/mos/charge.cir new file mode 100644 index 00000000..845a14a8 --- /dev/null +++ b/Windows/spice/examples/cider/mos/charge.cir @@ -0,0 +1,57 @@ +MOS charge pump + +vin 4 0 dc 0v pulse 0 5 15ns 5ns 5ns 50ns 100ns +vdd 5 6 dc 0v pulse 0 5 25ns 5ns 5ns 50ns 100ns +vbb 0 7 dc 0v pulse 0 5 0ns 5ns 5ns 50ns 100ns +rd 6 2 10k +m1 5 4 3 7 mmod w=100um +vs 3 2 0 +vc 2 1 0 +c2 1 0 10pf + +.ic v(3)=1.0 +.tran 2ns 200ns +.options acct bypass=1 +.print tran v(1) v(2) + +.model mmod numos ++ x.mesh n=1 l=0 ++ x.mesh n=3 l=0.4 ++ x.mesh n=7 l=0.6 ++ x.mesh n=15 l=1.4 ++ x.mesh n=19 l=1.6 ++ x.mesh n=21 l=2.0 ++ ++ y.mesh n=1 l=0 ++ y.mesh n=4 l=0.015 ++ y.mesh n=8 l=0.05 ++ y.mesh n=12 l=0.25 ++ y.mesh n=14 l=0.35 ++ y.mesh n=17 l=0.5 ++ y.mesh n=21 l=1.0 ++ ++ region num=1 material=1 y.l=0.015 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.015 x.l=0.5 x.h=1.5 ++ material num=2 oxide ++ ++ elec num=1 ix.l=18 ix.h=21 iy.l=4 iy.h=4 ++ elec num=2 ix.l=5 ix.h=17 iy.l=1 iy.h=1 ++ elec num=3 ix.l=1 ix.h=4 iy.l=4 iy.h=4 ++ elec num=4 ix.l=1 ix.h=21 iy.l=21 iy.h=21 ++ ++ doping unif n.type conc=1e18 x.l=0.0 x.h=0.5 y.l=0.015 y.h=0.25 ++ doping unif n.type conc=1e18 x.l=1.5 x.h=2.0 y.l=0.015 y.h=0.25 ++ doping unif p.type conc=1e15 x.l=0.0 x.h=2.0 y.l=0.015 y.h=1.0 ++ doping unif p.type conc=1.3e17 x.l=0.5 x.h=1.5 y.l=0.015 y.h=0.05 ++ ++ models concmob fieldmob ++ method onec + +.end diff --git a/Windows/spice/examples/cider/mos/cmosinv.cir b/Windows/spice/examples/cider/mos/cmosinv.cir new file mode 100644 index 00000000..8f153cc7 --- /dev/null +++ b/Windows/spice/examples/cider/mos/cmosinv.cir @@ -0,0 +1,115 @@ +CMOS Inverter + +Vdd 1 0 5.0v +Vss 2 0 0.0v + +X1 1 2 3 4 INV + +Vin 3 0 2.5v + +.SUBCKT INV 1 2 3 4 +* Vdd Vss Vin Vout +M1 14 13 15 16 M_PMOS w=6.0u +M2 24 23 25 26 M_NMOS w=3.0u + +Vgp 3 13 0.0v +Vdp 4 14 0.0v +Vsp 1 15 0.0v +Vbp 1 16 0.0v + +Vgn 3 23 0.0v +Vdn 4 24 0.0v +Vsn 2 25 0.0v +Vbn 2 26 0.0v +.ENDS INV + +.model M_NMOS numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif p.type conc=2.5e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif n.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif n.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob bgn srh conctau ++ method ac=direct onec + +.model M_PMOS numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif n.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=3e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif p.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif p.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob bgn srh conctau ++ method ac=direct onec + +*.tran 0.1ns 5ns +*.op +.dc Vin 0.0v 5.001v 0.05v +.print v(4) +.options acct bypass=1 method=gear +.end diff --git a/Windows/spice/examples/cider/mos/nmosinv.cir b/Windows/spice/examples/cider/mos/nmosinv.cir new file mode 100644 index 00000000..ac49c754 --- /dev/null +++ b/Windows/spice/examples/cider/mos/nmosinv.cir @@ -0,0 +1,55 @@ +Resistive load NMOS inverter +vin 1 0 pwl 0 0.0 2ns 5 +vdd 3 0 dc 5.0 +rd 3 2 2.5k +m1 2 1 4 5 mmod w=10um +cl 2 0 2pf +vb 5 0 0 +vs 4 0 0 + +.model mmod numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif p.type conc=2.5e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif n.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif n.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob ++ method ac=direct onec + +.tran 0.2ns 30ns +.options acct bypass=1 +.print tran v(1) v(2) +.end diff --git a/Windows/spice/examples/cider/mos/pass.cir b/Windows/spice/examples/cider/mos/pass.cir new file mode 100644 index 00000000..a58c8a5f --- /dev/null +++ b/Windows/spice/examples/cider/mos/pass.cir @@ -0,0 +1,59 @@ +Turnoff transient of pass transistor + +M1 11 2 3 4 mmod w=20um +Cs 1 0 6.0pF +Cl 3 0 6.0pF +R1 3 6 200k +Vin 6 0 dc 0 +Vdrn 1 11 dc 0 +Vg 2 0 dc 5 pwl 0 5 0.1n 0 1 0 +Vb 4 0 dc 0.0 + +.tran 0.05ns 0.2ns 0.0ns 0.05ns +.print tran v(1) i(Vdrn) +.ic v(1)=0 v(3)=0 +.option acct bypass=1 + +.model mmod numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif p.type conc=2.5e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif n.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif n.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob ++ method ac=direct onec + +.end diff --git a/Windows/spice/examples/cider/mos/ringosc.cir b/Windows/spice/examples/cider/mos/ringosc.cir new file mode 100644 index 00000000..0f313320 --- /dev/null +++ b/Windows/spice/examples/cider/mos/ringosc.cir @@ -0,0 +1,122 @@ +CMOS Ring Oscillator + +Vdd 1 0 5.0v +Vss 2 0 0.0v + +X1 1 2 3 4 INV +X2 1 2 4 5 INV +X3 1 2 5 3 INV +*X4 1 2 6 7 INV +*X5 1 2 7 8 INV +*X6 1 2 8 9 INV +*X7 1 2 9 3 INV + +.IC V(3)=0.0v V(4)=2.5v V(5)=5.0v +* V(6)=0.0v V(7)=5.0v V(8)=0.0v V(9)=5.0v + +Vin 3 0 2.5v + +.SUBCKT INV 1 2 3 4 +* Vdd Vss Vin Vout +M1 14 13 15 16 M_PMOS w=6.0u +M2 24 23 25 26 M_NMOS w=3.0u + +Vgp 3 13 0.0v +Vdp 4 14 0.0v +Vsp 1 15 0.0v +Vbp 1 16 0.0v + +Vgn 3 23 0.0v +Vdn 4 24 0.0v +Vsn 2 25 0.0v +Vbn 2 26 0.0v +.ENDS INV + +.model M_NMOS numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif p.type conc=2.5e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif n.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif n.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob bgn srh conctau ++ method ac=direct onec + +.model M_PMOS numos ++ x.mesh l=0.0 n=1 ++ x.mesh l=0.6 n=4 ++ x.mesh l=0.7 n=5 ++ x.mesh l=1.0 n=7 ++ x.mesh l=1.2 n=11 ++ x.mesh l=3.2 n=21 ++ x.mesh l=3.4 n=25 ++ x.mesh l=3.7 n=27 ++ x.mesh l=3.8 n=28 ++ x.mesh l=4.4 n=31 ++ ++ y.mesh l=-.05 n=1 ++ y.mesh l=0.0 n=5 ++ y.mesh l=.05 n=9 ++ y.mesh l=0.3 n=14 ++ y.mesh l=2.0 n=19 ++ ++ region num=1 material=1 y.l=0.0 ++ material num=1 silicon ++ mobility material=1 concmod=sg fieldmod=sg ++ mobility material=1 elec major ++ mobility material=1 elec minor ++ mobility material=1 hole major ++ mobility material=1 hole minor ++ ++ region num=2 material=2 y.h=0.0 x.l=0.7 x.h=3.7 ++ material num=2 oxide ++ ++ elec num=1 x.l=3.8 x.h=4.4 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=0.7 x.h=3.7 iy.l=1 iy.h=1 ++ elec num=3 x.l=0.0 x.h=0.6 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=0.0 x.h=4.4 y.l=2.0 y.h=2.0 ++ ++ doping unif n.type conc=1e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=2.0 ++ doping unif p.type conc=3e16 x.l=0.0 x.h=4.4 y.l=0.0 y.h=0.05 ++ doping unif p.type conc=1e20 x.l=0.0 x.h=1.1 y.l=0.0 y.h=0.2 ++ doping unif p.type conc=1e20 x.l=3.3 x.h=4.4 y.l=0.0 y.h=0.2 ++ ++ models concmob fieldmob bgn srh conctau ++ method ac=direct onec + +.tran 0.1ns 5ns +.print v(4) +.options acct bypass=1 method=gear +.end diff --git a/Windows/spice/examples/cider/parallel/BICMOS.LIB b/Windows/spice/examples/cider/parallel/BICMOS.LIB new file mode 100644 index 00000000..606570ca --- /dev/null +++ b/Windows/spice/examples/cider/parallel/BICMOS.LIB @@ -0,0 +1,931 @@ +** +* BICMOS.LIB: Library of models used in the 1.0 um CBiCMOS process +* Contains CIDER input descriptions as well as matching +* SPICE models for some of the CIDER models. +** + +** +* One-dimensional models for a +* polysilicon emitter complementary bipolar process. +* The default device size is 1um by 1um (LxW) +** + +.model M_NPN1D nbjt level=1 ++ title One-Dimensional Numerical Bipolar ++ options base.depth=0.15 base.area=0.1 base.length=0.5 defa=1p ++ x.mesh loc=-0.2 n=1 ++ x.mesh loc=0.0 n=51 ++ x.mesh wid=0.15 h.e=0.0001 h.m=.004 r=1.2 ++ x.mesh wid=1.15 h.s=0.0001 h.m=.004 r=1.2 ++ domain num=1 material=1 x.l=0.0 ++ domain num=2 material=2 x.h=0.0 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ material num=2 polysilicon ++ mobility mat=2 concmod=ct fieldmod=ct ++ doping gauss n.type conc=3e20 x.l=-0.2 x.h=0.0 char.len=0.047 ++ doping gauss p.type conc=5e18 x.l=-0.2 x.h=0.0 char.len=0.100 ++ doping unif n.type conc=1e16 x.l=0.0 x.h=1.3 ++ doping gauss n.type conc=5e19 x.l=1.3 x.h=1.3 char.len=0.100 ++ models bgn srh auger conctau concmob fieldmob ++ method devtol=1e-12 ac=direct itlim=15 + +.model M_PNP1D nbjt level=1 ++ title One-Dimensional Numerical Bipolar ++ options base.depth=0.2 base.area=0.1 base.length=0.5 defa=1p ++ x.mesh loc=-0.2 n=1 ++ x.mesh loc=0.0 n=51 ++ x.mesh wid=0.20 h.e=0.0001 h.m=.004 r=1.2 ++ x.mesh wid=1.10 h.s=0.0001 h.m=.004 r=1.2 ++ domain num=1 material=1 x.l=0.0 ++ domain num=2 material=2 x.h=0.0 ++ material num=1 silicon ++ mobility mat=1 concmod=ct fieldmod=ct ++ material num=2 polysilicon ++ mobility mat=2 concmod=ct fieldmod=ct ++ doping gauss p.type conc=3e20 x.l=-0.2 x.h=0.0 char.len=0.047 ++ doping gauss n.type conc=5e17 x.l=-0.2 x.h=0.0 char.len=0.200 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=1.3 ++ doping gauss p.type conc=5e19 x.l=1.3 x.h=1.3 char.len=0.100 ++ models bgn srh auger conctau concmob fieldmob ++ method devtol=1e-12 ac=direct itlim=15 + +** +* Two-dimensional models for a +* polysilicon emitter complementary bipolar process. +* The default device size is 1um by 1um (LxW) +** + +.MODEL M_NPNS nbjt level=2 ++ title TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ * Since half the device is simulated, double the unit width to get ++ * 1.0 um emitter. Use a small mesh for this model. ++ options defw=2.0u ++ output stat ++ ++ x.mesh w=2.0 h.e=0.02 h.m=0.5 r=2.0 ++ x.mesh w=0.5 h.s=0.02 h.m=0.2 r=2.0 ++ ++ y.mesh l=-0.2 n=1 ++ y.mesh l= 0.0 n=5 ++ y.mesh w=0.10 h.e=0.004 h.m=0.05 r=2.5 ++ y.mesh w=0.15 h.s=0.004 h.m=0.02 r=2.5 ++ y.mesh w=1.05 h.s=0.02 h.m=0.1 r=2.5 ++ ++ domain num=1 material=1 x.l=2.0 y.h=0.0 ++ domain num=2 material=2 x.h=2.0 y.h=0.0 ++ domain num=3 material=3 y.l=0.0 ++ material num=1 polysilicon ++ material num=2 oxide ++ material num=3 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=1.1 y.h=1.3 ++ elec num=2 x.l=0.0 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=-0.2 ++ ++ doping gauss n.type conc=3e20 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.047 lat.rotate ++ doping gauss p.type conc=5e18 x.l=0.0 x.h=5.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.100 lat.rotate ++ doping gauss p.type conc=1e20 x.l=0.0 x.h=0.5 y.l=-0.2 y.h=0.0 ++ + char.l=0.100 lat.rotate ratio=0.7 ++ doping unif n.type conc=1e16 x.l=0.0 x.h=5.0 y.l=0.0 y.h=1.3 ++ doping gauss n.type conc=5e19 x.l=0.0 x.h=5.0 y.l=1.3 y.h=1.3 ++ + char.l=0.100 lat.rotate ++ ++ method ac=direct itlim=10 ++ models bgn srh auger conctau concmob fieldmob + +.MODEL M_NPN nbjt level=2 ++ title TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ * Since half the device is simulated, double the unit width to get ++ * 1.0 um emitter length. Uses a finer mesh in the X direction. ++ options defw=2.0u ++ output stat ++ ++ x.mesh w=0.5 h.e=0.075 h.m=0.2 r=2.0 ++ x.mesh w=0.75 h.s=0.075 h.m=0.2 r=2.0 ++ x.mesh w=0.75 h.e=0.05 h.m=0.2 r=1.5 ++ x.mesh w=0.5 h.s=0.05 h.m=0.1 r=1.5 ++ ++ y.mesh l=-0.2 n=1 ++ y.mesh l= 0.0 n=5 ++ y.mesh w=0.10 h.e=0.003 h.m=0.01 r=1.5 ++ y.mesh w=0.15 h.s=0.003 h.m=0.02 r=1.5 ++ y.mesh w=0.35 h.s=0.02 h.m=0.2 r=1.5 ++ y.mesh w=0.40 h.e=0.05 h.m=0.2 r=1.5 ++ y.mesh w=0.30 h.s=0.05 h.m=0.1 r=1.5 ++ ++ domain num=1 material=1 x.l=2.0 y.h=0.0 ++ domain num=2 material=2 x.h=2.0 y.h=0.0 ++ domain num=3 material=3 y.l=0.0 ++ material num=1 polysilicon ++ material num=2 oxide ++ material num=3 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=1.1 y.h=1.3 ++ elec num=2 x.l=0.0 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=-0.2 ++ ++ doping gauss n.type conc=3e20 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.047 lat.rotate ++ doping gauss p.type conc=5e18 x.l=0.0 x.h=5.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.100 lat.rotate ++ doping gauss p.type conc=1e20 x.l=0.0 x.h=0.5 y.l=-0.2 y.h=0.0 ++ + char.l=0.100 lat.rotate ratio=0.7 ++ doping unif n.type conc=1e16 x.l=0.0 x.h=5.0 y.l=0.0 y.h=1.3 ++ doping gauss n.type conc=5e19 x.l=0.0 x.h=5.0 y.l=1.3 y.h=1.3 ++ + char.l=0.100 lat.rotate ++ ++ method ac=direct itlim=10 ++ models bgn srh auger conctau concmob fieldmob + +.MODEL M_PNPS nbjt level=2 ++ title TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ * Since half the device is simulated, double the unit width to get ++ * 1.0 um emitter length. Use a small mesh for this model. ++ options defw=2.0u ++ output stat ++ ++ x.mesh w=2.0 h.e=0.02 h.m=0.5 r=2.0 ++ x.mesh w=0.5 h.s=0.02 h.m=0.2 r=2.0 ++ ++ y.mesh l=-0.2 n=1 ++ y.mesh l= 0.0 n=5 ++ y.mesh w=0.12 h.e=0.004 h.m=0.05 r=2.5 ++ y.mesh w=0.28 h.s=0.004 h.m=0.02 r=2.5 ++ y.mesh w=1.05 h.s=0.02 h.m=0.1 r=2.5 ++ ++ domain num=1 material=1 x.l=2.0 y.h=0.0 ++ domain num=2 material=2 x.h=2.0 y.h=0.0 ++ domain num=3 material=3 y.l=0.0 ++ material num=1 polysilicon ++ material num=2 oxide ++ material num=3 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=1.1 y.h=1.3 ++ elec num=2 x.l=0.0 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=-0.2 ++ ++ doping gauss p.type conc=3e20 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.047 lat.rotate ++ doping gauss n.type conc=5e17 x.l=0.0 x.h=5.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.200 lat.rotate ++ doping gauss n.type conc=1e20 x.l=0.0 x.h=0.5 y.l=-0.2 y.h=0.0 ++ + char.l=0.100 lat.rotate ratio=0.7 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=5.0 y.l=0.0 y.h=1.3 ++ doping gauss p.type conc=5e19 x.l=0.0 x.h=5.0 y.l=1.3 y.h=1.3 ++ + char.l=0.100 lat.rotate ++ ++ method ac=direct itlim=10 ++ models bgn srh auger conctau concmob fieldmob + +.MODEL M_PNP nbjt level=2 ++ title TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ * Since half the device is simulated, double the unit width to get ++ * 1.0 um emitter length. Uses a finer mesh in the X direction. ++ options defw=2.0u ++ output stat ++ ++ x.mesh w=0.5 h.e=0.075 h.m=0.2 r=2.0 ++ x.mesh w=0.75 h.s=0.075 h.m=0.2 r=2.0 ++ x.mesh w=0.75 h.e=0.05 h.m=0.2 r=1.5 ++ x.mesh w=0.5 h.s=0.05 h.m=0.1 r=1.5 ++ ++ y.mesh l=-0.2 n=1 ++ y.mesh l= 0.0 n=5 ++ y.mesh w=0.12 h.e=0.003 h.m=0.01 r=1.5 ++ y.mesh w=0.28 h.s=0.003 h.m=0.02 r=1.5 ++ y.mesh w=0.20 h.s=0.02 h.m=0.2 r=1.5 ++ y.mesh w=0.40 h.e=0.05 h.m=0.2 r=1.5 ++ y.mesh w=0.30 h.s=0.05 h.m=0.1 r=1.5 ++ ++ domain num=1 material=1 x.l=2.0 y.h=0.0 ++ domain num=2 material=2 x.h=2.0 y.h=0.0 ++ domain num=3 material=3 y.l=0.0 ++ material num=1 polysilicon ++ material num=2 oxide ++ material num=3 silicon ++ ++ elec num=1 x.l=0.0 x.h=0.0 y.l=1.1 y.h=1.3 ++ elec num=2 x.l=0.0 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=3 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=-0.2 ++ ++ doping gauss p.type conc=3e20 x.l=2.0 x.h=3.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.047 lat.rotate ++ doping gauss n.type conc=5e17 x.l=0.0 x.h=5.0 y.l=-0.2 y.h=0.0 ++ + char.l=0.200 lat.rotate ++ doping gauss n.type conc=1e20 x.l=0.0 x.h=0.5 y.l=-0.2 y.h=0.0 ++ + char.l=0.100 lat.rotate ratio=0.7 ++ doping unif p.type conc=1e16 x.l=0.0 x.h=5.0 y.l=0.0 y.h=1.3 ++ doping gauss p.type conc=5e19 x.l=0.0 x.h=5.0 y.l=1.3 y.h=1.3 ++ + char.l=0.100 lat.rotate ++ ++ method ac=direct itlim=10 ++ models bgn srh auger conctau concmob fieldmob + +** +* Two-dimensional models for a +* complementary MOS process. +* Device models for 1um, 2um, 3um, 4um, 5um, 10um and 50um are provided. +** + +.MODEL M_NMOS_1 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.4 h.s=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.4 h.e=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=2 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=2.5 x.h=3.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=2 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=3.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=3.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=3.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=2 x.h=3.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=2.05 x.h=3.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_NMOS_2 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.005 h.m=0.2 r=2.0 ++ x.mesh w=0.9 h.e=0.005 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=3 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=3.5 x.h=4.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=3 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=4.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=4.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=4.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=3 x.h=4.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=3.05 x.h=4.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_NMOS_3 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=1.4 h.s=0.005 h.m=0.3 r=2.0 ++ x.mesh w=1.4 h.e=0.005 h.m=0.3 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=4 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=4.5 x.h=5.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=4 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=5.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=5.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=5.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=4 x.h=5.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=4.05 x.h=5.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_NMOS_4 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=1.9 h.s=0.005 h.m=0.4 r=2.0 ++ x.mesh w=1.9 h.e=0.005 h.m=0.4 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=5 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=5.5 x.h=6.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=5 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=6.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=6.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=6.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=5 x.h=6.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=5.05 x.h=6.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_NMOS_5 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=2.4 h.s=0.005 h.m=0.5 r=2.0 ++ x.mesh w=2.4 h.e=0.005 h.m=0.5 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=6 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=6.5 x.h=7.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=6 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=7.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=7.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=7.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=6 x.h=7.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=6.05 x.h=7.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_NMOS_10 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=4.9 h.s=0.005 h.m=1 r=2.0 ++ x.mesh w=4.9 h.e=0.005 h.m=1 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=11 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=11.5 x.h=12.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=11 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=12.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=12.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=12.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=11 x.h=12.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=11.05 x.h=12.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_NMOS_50 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=24.9 h.s=0.005 h.m=5 r=2.0 ++ x.mesh w=24.9 h.e=0.005 h.m=5 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=51 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=51.5 x.h=52.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=51 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=52.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss p.type conc=1.0e17 x.l=-0.1 x.h=52.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif p.type conc=5.0e15 x.l=-0.1 x.h=52.1 y.l=0.0 y.h=2.1 ++ doping gauss n.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss n.type conc=4e17 x.l=51 x.h=52.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss n.type conc=1e20 x.l=51.05 x.h=52.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=4.10 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_1 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.4 h.s=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.4 h.e=0.005 h.m=0.1 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=2 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=2.5 x.h=3.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=2 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=3.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=3.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=3.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=2 x.h=3.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=2.05 x.h=3.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_2 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.005 h.m=0.2 r=2.0 ++ x.mesh w=0.9 h.e=0.005 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=3 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=3.5 x.h=4.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=3 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=4.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=4.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=4.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=3 x.h=4.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=3.05 x.h=4.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_3 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=1.4 h.s=0.005 h.m=0.3 r=2.0 ++ x.mesh w=1.4 h.e=0.005 h.m=0.3 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=4 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=4.5 x.h=5.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=4 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=5.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=5.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=5.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=4 x.h=5.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=4.05 x.h=5.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_4 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=1.9 h.s=0.005 h.m=0.4 r=2.0 ++ x.mesh w=1.9 h.e=0.005 h.m=0.4 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=5 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=5.5 x.h=6.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=5 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=6.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=6.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=6.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=5 x.h=6.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=5.05 x.h=6.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_5 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=2.4 h.s=0.005 h.m=0.5 r=2.0 ++ x.mesh w=2.4 h.e=0.005 h.m=0.5 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=6 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=6.5 x.h=7.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=6 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=7.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=7.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=7.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=6 x.h=7.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=6.05 x.h=7.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_10 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=4.9 h.s=0.005 h.m=1 r=2.0 ++ x.mesh w=4.9 h.e=0.005 h.m=1 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=11 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=11.5 x.h=12.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=11 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=12.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=12.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=12.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=11 x.h=12.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=11.05 x.h=12.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +.MODEL M_PMOS_50 numos ++ output stat ++ ++ x.mesh w=0.9 h.e=0.020 h.m=0.2 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=24.9 h.s=0.005 h.m=5 r=2.0 ++ x.mesh w=24.9 h.e=0.005 h.m=5 r=2.0 ++ x.mesh w=0.2 h.e=0.005 h.m=0.02 r=2.0 ++ x.mesh w=0.9 h.s=0.020 h.m=0.2 r=2.0 ++ ++ y.mesh l=-.0200 n=1 ++ y.mesh l=0.0 n=6 ++ y.mesh w=0.15 h.s=0.0001 h.max=.02 r=2.0 ++ y.mesh w=0.45 h.s=0.02 h.max=0.2 r=2.0 ++ y.mesh w=1.40 h.s=0.20 h.max=0.4 r=2.0 ++ ++ region num=1 material=1 y.h=0.0 ++ region num=2 material=2 y.l=0.0 ++ interface dom=2 nei=1 x.l=1 x.h=51 layer.width=0.0 ++ material num=1 oxide ++ material num=2 silicon ++ ++ elec num=1 x.l=51.5 x.h=52.1 y.l=0.0 y.h=0.0 ++ elec num=2 x.l=1 x.h=51 iy.l=1 iy.h=1 ++ elec num=3 x.l=-0.1 x.h=0.5 y.l=0.0 y.h=0.0 ++ elec num=4 x.l=-0.1 x.h=52.1 y.l=2.0 y.h=2.0 ++ ++ doping gauss n.type conc=1.0e17 x.l=-0.1 x.h=52.1 y.l=0.0 ++ + char.l=0.30 ++ doping unif n.type conc=5.0e15 x.l=-0.1 x.h=52.1 y.l=0.0 y.h=2.1 ++ doping gauss p.type conc=4e17 x.l=-0.1 x.h=1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=-0.1 x.h=0.95 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ doping gauss p.type conc=4e17 x.l=51 x.h=52.1 y.l=0.0 y.h=0.0 ++ + char.l=0.16 lat.rotate ratio=0.65 ++ doping gauss p.type conc=1e20 x.l=51.05 x.h=52.1 y.l=0.0 y.h=0.08 ++ + char.l=0.03 lat.rotate ratio=0.65 ++ ++ contact num=2 workf=5.29 ++ models concmob surfmob transmob fieldmob srh auger conctau bgn ++ method ac=direct itlim=10 onec + +** +* BSIM1 NMOS and PMOS 1.0 \um models. +* Gummel-Poon bipolar models. +** +.model M_NSIM_1 nmos level=4 ++vfb= -1.1908 ++phi= .8399 ++k1= 1.5329 ++k2= 193.7322m ++eta= 2m ++muz= 746.0 ++u0= 90.0m ++x2mz= 10.1429 ++x2e= -2.5m ++x3e= 0.2m ++x2u0= -10.0m ++mus= 975.0 ++u1= .20 ++x2ms= 0.0 ++x2u1= 0.0 ++x3ms= 10 ++x3u1= 5.0m ++tox=2.00000e-02 ++cgdo=2.0e-10 ++cgso=2.0e-10 ++cgbo=0.0 ++temp= 27 ++vdd= 7.0 ++xpart ++n0= 1.5686 ++nb= 94.6392m ++nd=0.00000e+00 ++rsh=30.0 cj=7.000e-004 cjsw=4.20e-010 ++js=1.00e-008 pb=0.700e000 ++pbsw=0.8000e000 mj=0.5 mjsw=0.33 ++wdf=0 dell=0.20u + +.model M_PSIM_1 pmos level=4 ++vfb= -1.3674 ++phi= .8414 ++k1= 1.5686 ++k2= 203m ++eta= 2m ++muz= 340.0 ++u0= 35.0m ++x2mz= 6.0 ++x2e= 0.0 ++x3e= -0.2m ++x2u0= -15.0m ++mus= 440.0 ++u1= .38 ++x2ms= 0.0 ++x2u1= 0.0 ++x3ms= -20 ++x3u1= -10.0m ++tox=2.00000e-02 ++cgdo=2.0e-10 ++cgso=2.0e-10 ++cgbo=0.0 ++temp= 27 ++vdd= 5.0 ++xpart ++n0= 1.5686 ++nb= 94.6392m ++nd=0.00000e+00 ++rsh=80.0 cj=7.000e-004 cjsw=4.20e-010 ++js=1.00e-008 pb=0.700e000 ++pbsw=0.8000e000 mj=0.5 mjsw=0.33 ++wdf=0 dell=0.17u + +.model M_GNPN npn ++ is=1.3e-16 ++ nf=1.00 bf=262.5 ikf=25mA vaf=20v ++ nr=1.00 br=97.5 ikr=0.5mA var=1.8v ++ rc=20.0 ++ re=0.09 ++ rb=15.0 ++ ise=4.0e-16 ne=2.1 ++ isc=7.2e-17 nc=2.0 ++ tf=9.4ps itf=26uA xtf=0.5 ++ tr=10ns ++ cje=89.44fF vje=0.95 mje=0.5 ++ cjc=12.82fF vjc=0.73 mjc=0.49 + +.model M_GPNP pnp ++ is=5.8e-17 ++ nf=1.001 bf=96.4 ikf=12mA vaf=29v ++ nr=1.0 br=17.3 ikr=0.2mA var=2.0v ++ rc=50.0 ++ re=0.17 ++ rb=20.0 ++ ise=6.8e-17 ne=2.0 ++ isc=9.0e-17 nc=2.1 ++ tf=27.4ps itf=26uA xtf=0.5 ++ tr=10ns ++ cje=55.36fF vje=0.95 mje=0.58 ++ cjc=11.80fF vjc=0.72 mjc=0.46 diff --git a/Windows/spice/examples/cider/parallel/bicmpd.cir b/Windows/spice/examples/cider/parallel/bicmpd.cir new file mode 100644 index 00000000..be26e40d --- /dev/null +++ b/Windows/spice/examples/cider/parallel/bicmpd.cir @@ -0,0 +1,26 @@ +BICMOS INVERTER PULLDOWN CIRCUIT + +VSS 2 0 0V + +VIN 3 2 0V (PULSE 0.0V 4.2V 0NS 1NS 1NS 9NS 20NS) + +M1 8 3 5 11 M_NMOS_1 W=4U L=1U +VD 4 8 0V +VBK 11 2 0V + +Q1 10 7 9 M_NPNS AREA=8 +VC 4 10 0V +VB 5 7 0V +VE 9 2 0V + +CL 4 6 1PF +VL 6 2 0V + +.IC V(10)=5.0V V(7)=0.0V +.TRAN 0.1NS 5NS 0NS 0.1NS +.PLOT TRAN I(VIN) + +.INCLUDE BICMOS.LIB + +.OPTIONS ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/parallel/bicmpu.cir b/Windows/spice/examples/cider/parallel/bicmpu.cir new file mode 100644 index 00000000..7067ce14 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/bicmpu.cir @@ -0,0 +1,24 @@ +BICMOS INVERTER PULLUP CIRCUIT + +VDD 1 0 5.0V +VSS 2 0 0.0V + +VIN 3 0 0.75V + +VC 1 11 0.0V +VB 5 15 0.0V + +Q1 11 15 4 M_NPNS AREA=8 +M1 5 3 1 1 M_PMOS_1 W=10U L=1U + +CL 4 0 5.0PF + +.IC V(4)=0.75V V(5)=0.0V + +.INCLUDE BICMOS.LIB + +.TRAN 0.5NS 4.0NS +.PRINT TRAN V(3) V(4) + +.OPTION ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/parallel/clkfeed.cir b/Windows/spice/examples/cider/parallel/clkfeed.cir new file mode 100644 index 00000000..d0a06f15 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/clkfeed.cir @@ -0,0 +1,34 @@ +SWITCHED CURRENT CELL - CLOCK FEEDTHROUGH + +VDD 1 0 5.0V +VSS 2 0 0.0V + +IIN 13 0 0.0 +VIN 13 3 0.0 +VL 4 0 2.5V +VCK 6 0 5.0V PULSE 5.0V 0.0V 5.0NS 5NS 5NS 20NS 50NS + +M1 3 3 2 2 M_NMOS_5 W=5U L=5U +M2 4 5 2 2 M_NMOS_5 W=10U L=5U +M3 23 26 25 22 M_NMOS_5 W=5U L=5U +RLK1 3 0 100G +RLK2 5 0 100G +VD 3 23 0.0V +VG 6 26 0.0V +VS 5 25 0.0V +VB 2 22 0.0V + +M4 7 7 1 1 M_PMOS_IDEAL W=100U L=1U +M5 3 7 1 1 M_PMOS_IDEAL W=100U L=1U +M6 4 7 1 1 M_PMOS_IDEAL W=200U L=1U +IREF 7 0 50UA + +****** MODELS ****** +.MODEL M_PMOS_IDEAL PMOS VTO=-1.0V KP=100U + +.INCLUDE BICMOS.LIB + +.TRAN 0.1NS 50NS + +.OPTIONS ACCT BYPASS=1 METHOD=GEAR +.END diff --git a/Windows/spice/examples/cider/parallel/cmosamp.cir b/Windows/spice/examples/cider/parallel/cmosamp.cir new file mode 100644 index 00000000..f88115b5 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/cmosamp.cir @@ -0,0 +1,29 @@ +CMOS 2-STAGE OPERATIONAL AMPLIFIER + +VDD 1 0 2.5V +VSS 2 0 -2.5V + +IBIAS 9 0 100UA + +VPL 3 0 0.0V AC 0.5V +VMI 4 0 0.0V AC 0.5V 180 + +M1 6 3 5 5 M_PMOS_1 W=15U L=1U +M2 7 4 5 5 M_PMOS_1 W=15U L=1U +M3 6 6 2 2 M_NMOS_1 W=7.5U L=1U +M4 7 6 2 2 M_NMOS_1 W=7.5U L=1U +M5 8 7 2 2 M_NMOS_1 W=15U L=1U +M6 9 9 1 1 M_PMOS_1 W=15U L=1U +M7 5 9 1 1 M_PMOS_1 W=15U L=1U +M8 8 9 1 1 M_PMOS_1 W=15U L=1U + +*CC 7 8 0.1PF + +.INCLUDE BICMOS.LIB + +*.OP +*.AC DEC 10 1K 100G +.DC VPL -5MV 5MV 0.1MV + +.OPTIONS ACCT BYPASS=1 METHOD=GEAR +.END diff --git a/Windows/spice/examples/cider/parallel/eclinv.cir b/Windows/spice/examples/cider/parallel/eclinv.cir new file mode 100644 index 00000000..a63c1c14 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/eclinv.cir @@ -0,0 +1,30 @@ +ECL INVERTER +*** (FROM MEINERZHAGEN ET AL.) + +VCC 1 0 0.0V +VEE 2 0 -5.2V + +VIN 3 0 -1.25V +VRF 4 0 -1.25V + +*** INPUT STAGE +Q1 5 3 9 M_NPNS AREA=8 +Q2 6 4 9 M_NPNS AREA=8 +R1 1 5 662 +R2 1 6 662 +R3 9 2 2.65K + +*** OUTPUT BUFFERS +Q3 1 5 7 M_NPNS AREA=8 +Q4 1 6 8 M_NPNS AREA=8 +R4 7 2 4.06K +R5 8 2 4.06K + +*** MODEL LIBRARY +.INCLUDE BICMOS.LIB + +.DC VIN -2.00 0.001 0.05 +.PLOT DC V(7) V(8) + +.OPTIONS ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/parallel/ecpal.cir b/Windows/spice/examples/cider/parallel/ecpal.cir new file mode 100644 index 00000000..4485a442 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/ecpal.cir @@ -0,0 +1,19 @@ +EMITTER COUPLED PAIR WITH ACTIVE LOAD + +VCC 1 0 5V +VEE 2 0 0V +VINP 4 0 2.99925V AC 0.5V +VINM 7 0 3V AC 0.5V 180 +IEE 5 2 0.1MA +Q1 3 4 5 M_NPNS AREA=8 +Q2 6 7 5 M_NPNS AREA=8 +Q3 3 3 1 M_PNPS AREA=8 +Q4 6 3 1 M_PNPS AREA=8 + +.AC DEC 10 10K 100G +.PLOT AC VDB(6) + +.INCLUDE BICMOS.LIB + +.OPTIONS ACCT RELTOL=1E-6 +.END diff --git a/Windows/spice/examples/cider/parallel/foobar b/Windows/spice/examples/cider/parallel/foobar new file mode 100644 index 00000000..1e5e7b73 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/foobar @@ -0,0 +1,10 @@ +\section*{BICMPD Benchmark} +\section*{BICMPU Benchmark} +\section*{CLKFEED Benchmark} +\section*{CMOSAMP Benchmark} +\section*{ECLINV Benchmark} +\section*{ECPAL Benchmark} +\section*{GMAMP Benchmark} +\section*{LATCH Benchmark} +\section*{PPEF Benchmarks} +\section*{RINGOSC Benchmarks} diff --git a/Windows/spice/examples/cider/parallel/gmamp.cir b/Windows/spice/examples/cider/parallel/gmamp.cir new file mode 100644 index 00000000..e570beca --- /dev/null +++ b/Windows/spice/examples/cider/parallel/gmamp.cir @@ -0,0 +1,34 @@ +BICMOS 3-STAGE AMPLIFIER +*** IN GRAY & MEYER, 3RD ED. P.266, PROB. 3.12, 8.19 + +VDD 1 0 5.0V +VSS 2 0 0.0V + +*** VOLTAGE INPUT +*VIN 13 0 0.0V AC 1V +*CIN 13 3 1UF + +*** CURRENT INPUT +IIN 3 0 0.0 AC 1.0 + +M1 4 3 2 2 M_NMOS_1 W=300U L=1U +M2 7 7 2 2 M_NMOS_1 W=20U L=1U + +Q1 6 5 4 M_NPNS AREA=40 +Q2 5 5 7 M_NPNS AREA=40 +Q3 1 6 8 M_NPNS AREA=40 + +RL1 1 4 1K +RL2 1 6 10K +RB1 1 5 10K +RL3 8 2 1K +RF1 3 8 30K + +*** NUMERICAL MODEL LIBRARY *** +.INCLUDE BICMOS.LIB + +.AC DEC 10 100KHZ 100GHZ +.PLOT AC VDB(8) + +.OPTIONS ACCT BYPASS=1 KEEPOPINFO +.END diff --git a/Windows/spice/examples/cider/parallel/latch.cir b/Windows/spice/examples/cider/parallel/latch.cir new file mode 100644 index 00000000..3ad63335 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/latch.cir @@ -0,0 +1,46 @@ +STATIC LATCH +*** IC=1MA, RE6=3K +*** SPICE ORIGINAL 1-7-80, CIDER REVISED 4-16-93 + +*** BIAS CIRCUIT +*** RESISTORS +RCC2 6 8 3.33K +REE2 9 0 200 +*** TRANSISTORS +Q1 6 8 4 M_NPN1D AREA=8 +Q2 8 4 9 M_NPN1D AREA=8 + +*** MODELS +.INCLUDE BICMOS.LIB + +*** SOURCES +VCC 6 0 5V +VREF 3 0 2.5V +VRSET 1 0 PULSE(2V 3V 0.1NS 0.1NS 0.1NS 0.9NS 4NS) +VSET 7 0 PULSE(2V 3V 2.1NS 0.1NS 0.1NS 0.9NS 4NS) + +*** LATCH +X1 1 2 3 4 5 6 ECLNOR2 +X2 5 7 3 4 2 6 ECLNOR2 + +*** SUBCIRCUITS +.SUBCKT ECLNOR2 1 2 3 4 5 6 +** RESISTORS +RS 6 11 520 +RC2 11 10 900 +RE4 12 0 200 +RE6 5 0 6K +** TRANSISTORS +Q1 9 1 8 M_NPN1D AREA=8 +Q2 9 2 8 M_NPN1D AREA=8 +Q3 11 3 8 M_NPN1D AREA=8 +Q4 8 4 12 M_NPN1D AREA=8 +Q5 10 10 9 M_NPN1D AREA=8 +Q6 6 9 5 M_NPN1D AREA=8 +.ENDS ECLNOR2 + +*** CONTROL CARDS +.TRAN 0.01NS 8NS +.PRINT TRAN V(1) V(7) V(5) V(2) +.OPTIONS ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/parallel/ppef.1d.cir b/Windows/spice/examples/cider/parallel/ppef.1d.cir new file mode 100644 index 00000000..8690c665 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/ppef.1d.cir @@ -0,0 +1,25 @@ +PUSH-PULL EMITTER FOLLOWER - ONE-DIMENSIONAL MODELS + +VCC 1 0 5.0V +VEE 2 0 -5.0V + +VIN 3 0 0.0V (SIN 0.0V 0.1V 1KHZ) AC 1 +VBU 13 3 0.7V +VBL 3 23 0.7V + +RL 4 44 50 +VLD 44 0 0V + +Q1 5 13 4 M_NPN1D AREA=40 +Q2 4 5 1 M_PNP1D AREA=200 + +Q3 6 23 4 M_PNP1D AREA=100 +Q4 4 6 2 M_NPN1D AREA=80 + +.INCLUDE BICMOS.LIB + +.TRAN 0.01MS 1.00001MS 0US 0.01MS +.PLOT TRAN V(4) + +.OPTIONS ACCT BYPASS=1 TEMP=26.85OC RELTOL=1E-5 +.END diff --git a/Windows/spice/examples/cider/parallel/ppef.2d.cir b/Windows/spice/examples/cider/parallel/ppef.2d.cir new file mode 100644 index 00000000..07fa10fb --- /dev/null +++ b/Windows/spice/examples/cider/parallel/ppef.2d.cir @@ -0,0 +1,25 @@ +PUSH-PULL EMITTER FOLLOWER - TWO-DIMENSIONAL MODELS + +VCC 1 0 5.0V +VEE 2 0 -5.0V + +VIN 3 0 0.0V (SIN 0.0V 0.1V 1KHZ) AC 1 +VBU 13 3 0.7V +VBL 3 23 0.7V + +RL 4 44 50 +VLD 44 0 0V + +Q1 5 13 4 M_NPNS AREA=40 +Q2 4 5 1 M_PNPS AREA=200 + +Q3 6 23 4 M_PNPS AREA=100 +Q4 4 6 2 M_NPNS AREA=80 + +.INCLUDE BICMOS.LIB + +.TRAN 0.01MS 1.00001MS 0US 0.01MS +.PLOT TRAN V(4) + +.OPTIONS ACCT BYPASS=1 TEMP=26.85OC RELTOL=1E-5 +.END diff --git a/Windows/spice/examples/cider/parallel/readme b/Windows/spice/examples/cider/parallel/readme new file mode 100644 index 00000000..077c78f6 --- /dev/null +++ b/Windows/spice/examples/cider/parallel/readme @@ -0,0 +1,3 @@ +This directory contains the additional CIDER parallel-version benchmarks +used in the thesis "Design-Oriented Mixed-Level Circuit and Device Simulation" +by David A. Gates. diff --git a/Windows/spice/examples/cider/parallel/ringosc.1u.cir b/Windows/spice/examples/cider/parallel/ringosc.1u.cir new file mode 100644 index 00000000..2304c4eb --- /dev/null +++ b/Windows/spice/examples/cider/parallel/ringosc.1u.cir @@ -0,0 +1,39 @@ +CMOS RING OSCILLATOR - 1UM DEVICES + +VDD 1 0 5.0V +VSS 2 0 0.0V + +X1 1 2 3 4 INV +X2 1 2 4 5 INV +X3 1 2 5 6 INV +X4 1 2 6 7 INV +X5 1 2 7 8 INV +X6 1 2 8 9 INV +X7 1 2 9 3 INV + +.IC V(3)=0.0V V(4)=2.5V V(5)=5.0V ++ V(6)=0.0V V(7)=5.0V V(8)=0.0V V(9)=5.0V + +.SUBCKT INV 1 2 3 4 +* VDD VSS VIN VOUT +M1 14 13 15 16 M_PMOS_1 W=6.0U +M2 24 23 25 26 M_NMOS_1 W=3.0U + +VGP 3 13 0.0V +VDP 4 14 0.0V +VSP 1 15 0.0V +VBP 1 16 0.0V + +VGN 3 23 0.0V +VDN 4 24 0.0V +VSN 2 25 0.0V +VBN 2 26 0.0V +.ENDS INV + +.INCLUDE BICMOS.LIB + +.TRAN 0.1NS 1NS +.PRINT TRAN V(3) V(4) V(5) + +.OPTIONS ACCT BYPASS=1 METHOD=GEAR +.END diff --git a/Windows/spice/examples/cider/parallel/ringosc.2u.cir b/Windows/spice/examples/cider/parallel/ringosc.2u.cir new file mode 100644 index 00000000..c79885ab --- /dev/null +++ b/Windows/spice/examples/cider/parallel/ringosc.2u.cir @@ -0,0 +1,114 @@ +CMOS RING OSCILLATOR - 2UM DEVICES + +VDD 1 0 5.0V +VSS 2 0 0.0V + +X1 1 2 3 4 INV +X2 1 2 4 5 INV +X3 1 2 5 6 INV +X4 1 2 6 7 INV +X5 1 2 7 8 INV +X6 1 2 8 9 INV +X7 1 2 9 3 INV + +.IC V(3)=0.0V V(4)=2.5V V(5)=5.0V V(6)=0.0V ++ V(7)=5.0V V(8)=0.0V V(9)=5.0V + +.SUBCKT INV 1 2 3 4 +* VDD VSS VIN VOUT +M1 14 13 15 16 M_PMOS W=6.0U +M2 24 23 25 26 M_NMOS W=3.0U + +VGP 3 13 0.0V +VDP 4 14 0.0V +VSP 1 15 0.0V +VBP 1 16 0.0V + +VGN 3 23 0.0V +VDN 4 24 0.0V +VSN 2 25 0.0V +VBN 2 26 0.0V +.ENDS INV + +.MODEL M_NMOS NUMOS ++ X.MESH L=0.0 N=1 ++ X.MESH L=0.6 N=4 ++ X.MESH L=0.7 N=5 ++ X.MESH L=1.0 N=7 ++ X.MESH L=1.2 N=11 ++ X.MESH L=3.2 N=21 ++ X.MESH L=3.4 N=25 ++ X.MESH L=3.7 N=27 ++ X.MESH L=3.8 N=28 ++ X.MESH L=4.4 N=31 ++ ++ Y.MESH L=-.05 N=1 ++ Y.MESH L=0.0 N=5 ++ Y.MESH L=.05 N=9 ++ Y.MESH L=0.3 N=14 ++ Y.MESH L=2.0 N=19 ++ ++ REGION NUM=1 MATERIAL=1 Y.L=0.0 ++ MATERIAL NUM=1 SILICON ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ ++ REGION NUM=2 MATERIAL=2 Y.H=0.0 X.L=0.7 X.H=3.7 ++ MATERIAL NUM=2 OXIDE ++ ++ ELEC NUM=1 X.L=3.8 X.H=4.4 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=2 X.L=0.7 X.H=3.7 IY.L=1 IY.H=1 ++ ELEC NUM=3 X.L=0.0 X.H=0.6 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=4 X.L=0.0 X.H=4.4 Y.L=2.0 Y.H=2.0 ++ ++ DOPING UNIF P.TYPE CONC=2.5E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=2.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=0.05 ++ DOPING UNIF N.TYPE CONC=1E20 X.L=0.0 X.H=1.1 Y.L=0.0 Y.H=0.2 ++ DOPING UNIF N.TYPE CONC=1E20 X.L=3.3 X.H=4.4 Y.L=0.0 Y.H=0.2 ++ ++ MODELS CONCMOB FIELDMOB BGN SRH CONCTAU ++ METHOD AC=DIRECT ONEC ++ OUTPUT ^ALL.DEBUG + +.MODEL M_PMOS NUMOS ++ X.MESH L=0.0 N=1 ++ X.MESH L=0.6 N=4 ++ X.MESH L=0.7 N=5 ++ X.MESH L=1.0 N=7 ++ X.MESH L=1.2 N=11 ++ X.MESH L=3.2 N=21 ++ X.MESH L=3.4 N=25 ++ X.MESH L=3.7 N=27 ++ X.MESH L=3.8 N=28 ++ X.MESH L=4.4 N=31 ++ ++ Y.MESH L=-.05 N=1 ++ Y.MESH L=0.0 N=5 ++ Y.MESH L=.05 N=9 ++ Y.MESH L=0.3 N=14 ++ Y.MESH L=2.0 N=19 ++ ++ REGION NUM=1 MATERIAL=1 Y.L=0.0 ++ MATERIAL NUM=1 SILICON ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ ++ REGION NUM=2 MATERIAL=2 Y.H=0.0 X.L=0.7 X.H=3.7 ++ MATERIAL NUM=2 OXIDE ++ ++ ELEC NUM=1 X.L=3.8 X.H=4.4 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=2 X.L=0.7 X.H=3.7 IY.L=1 IY.H=1 ++ ELEC NUM=3 X.L=0.0 X.H=0.6 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=4 X.L=0.0 X.H=4.4 Y.L=2.0 Y.H=2.0 ++ ++ DOPING UNIF N.TYPE CONC=1E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=2.0 ++ DOPING UNIF P.TYPE CONC=3E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=0.05 ++ DOPING UNIF P.TYPE CONC=1E20 X.L=0.0 X.H=1.1 Y.L=0.0 Y.H=0.2 ++ DOPING UNIF P.TYPE CONC=1E20 X.L=3.3 X.H=4.4 Y.L=0.0 Y.H=0.2 ++ ++ MODELS CONCMOB FIELDMOB BGN SRH CONCTAU ++ METHOD AC=DIRECT ONEC ++ OUTPUT ^ALL.DEBUG + +.TRAN 0.1NS 5.0NS +.PRINT V(4) +.OPTIONS ACCT BYPASS=1 METHOD=GEAR +.END diff --git a/Windows/spice/examples/cider/resistor/gaasres.cir b/Windows/spice/examples/cider/resistor/gaasres.cir new file mode 100644 index 00000000..c35d0ddc --- /dev/null +++ b/Windows/spice/examples/cider/resistor/gaasres.cir @@ -0,0 +1,30 @@ +Gallium Arsenide Resistor + +* This transient simulation demonstrates the effects of velocity overshoot +* and velocity saturation at high lateral electric fields. +* Do not try to do DC analysis of this resistor. It will not converge +* because of the peculiar characteristics of the GaAs velocity-field +* relation. In some cases, problems can arise in transient simulation +* as well. + +VPP 1 0 1v PWL 0s 0.0v 10s 1v +VNN 2 0 0.0v +D1 1 2 M_RES AREA=1 + +.MODEL M_RES numd level=1 ++ options resistor defa=1p ++ x.mesh loc=0.0 num=1 ++ x.mesh loc=1.0 num=101 ++ domain num=1 material=1 ++ material num=1 gaas ++ doping unif n.type conc=2.5e16 ++ models fieldmob srh auger conctau ++ method ac=direct + +*.OP +*.DC VPP 0.0v 10.01v 0.1v +.TRAN 1s 10.001s 0s 0.1s +.PRINT I(VPP) + +.OPTION ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/resistor/sires.cir b/Windows/spice/examples/cider/resistor/sires.cir new file mode 100644 index 00000000..45e2aa12 --- /dev/null +++ b/Windows/spice/examples/cider/resistor/sires.cir @@ -0,0 +1,26 @@ +Silicon Resistor + +* This simulation demonstrates the effects of velocity saturation at +* high lateral electric fields. + +VPP 1 0 10v PWL 0s 0.0v 100s 10v +VNN 2 0 0.0v +D1 1 2 M_RES AREA=1 + +.MODEL M_RES numd level=1 ++ options resistor defa=1p ++ x.mesh loc=0.0 num=1 ++ x.mesh loc=1.0 num=101 ++ domain num=1 material=1 ++ material num=1 silicon ++ doping unif n.type conc=2.5e16 ++ models bgn srh conctau auger concmob fieldmob ++ method ac=direct + +*.OP +.DC VPP 0.0v 10.01v 0.1v +*.TRAN 1s 100.001s 0s 0.2s +.PRINT I(VPP) + +.OPTION ACCT BYPASS=1 RELTOL=1e-12 +.END diff --git a/Windows/spice/examples/cider/serial/astable.cir b/Windows/spice/examples/cider/serial/astable.cir new file mode 100644 index 00000000..c04c6bba --- /dev/null +++ b/Windows/spice/examples/cider/serial/astable.cir @@ -0,0 +1,30 @@ +ASTABLE MULTIVIBRATOR + +VIN 5 0 DC 0 PULSE(0 5 0 1US 1US 100US 100US) +VCC 6 0 5.0 +RC1 6 1 1K +RC2 6 2 1K +RB1 6 3 30K +RB2 5 4 30K +C1 1 4 150PF +C2 2 3 150PF +Q1 1 3 0 QMOD AREA = 100P +Q2 2 4 0 QMOD AREA = 100P + +.OPTION ACCT BYPASS=1 +.TRAN 0.05US 8US 0US 0.05US +.PRINT TRAN V(1) V(2) V(3) V(4) + +.MODEL QMOD NBJT LEVEL=1 ++ X.MESH NODE=1 LOC=0.0 ++ X.MESH NODE=61 LOC=3.0 ++ REGION NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON NBGNN=1E17 NBGNP=1E17 ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ DOPING UNIF N.TYPE CONC=1E17 X.L=0.0 X.H=1.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=1.5 ++ DOPING UNIF N.TYPE CONC=1E15 X.L=0.0 X.H=3.0 ++ MODELS BGNW SRH CONCTAU AUGER CONCMOB FIELDMOB ++ OPTIONS BASE.LENGTH=1.0 BASE.DEPTH=1.25 + +.END diff --git a/Windows/spice/examples/cider/serial/charge.cir b/Windows/spice/examples/cider/serial/charge.cir new file mode 100644 index 00000000..c4c689b6 --- /dev/null +++ b/Windows/spice/examples/cider/serial/charge.cir @@ -0,0 +1,53 @@ +MOS CHARGE PUMP + +VIN 4 0 DC 0V PULSE 0 5 15NS 5NS 5NS 50NS 100NS +VDD 5 6 DC 0V PULSE 0 5 25NS 5NS 5NS 50NS 100NS +VBB 0 7 DC 0V PULSE 0 5 0NS 5NS 5NS 50NS 100NS +RD 6 2 10K +M1 5 4 3 7 MMOD W=100UM +VS 3 2 0 +VC 2 1 0 +C2 1 0 10PF + +.IC V(3)=1.0 +.TRAN 2NS 200NS +.OPTIONS ACCT BYPASS=1 +.PRINT TRAN V(1) V(2) + +.MODEL MMOD NUMOS ++ X.MESH N=1 L=0 ++ X.MESH N=3 L=0.4 ++ X.MESH N=7 L=0.6 ++ X.MESH N=15 L=1.4 ++ X.MESH N=19 L=1.6 ++ X.MESH N=21 L=2.0 ++ ++ Y.MESH N=1 L=0 ++ Y.MESH N=4 L=0.015 ++ Y.MESH N=8 L=0.05 ++ Y.MESH N=12 L=0.25 ++ Y.MESH N=14 L=0.35 ++ Y.MESH N=17 L=0.5 ++ Y.MESH N=21 L=1.0 ++ ++ REGION NUM=1 MATERIAL=1 Y.L=0.015 ++ MATERIAL NUM=1 SILICON ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ ++ REGION NUM=2 MATERIAL=2 Y.H=0.015 X.L=0.5 X.H=1.5 ++ MATERIAL NUM=2 OXIDE ++ ++ ELEC NUM=1 IX.L=18 IX.H=21 IY.L=4 IY.H=4 ++ ELEC NUM=2 IX.L=5 IX.H=17 IY.L=1 IY.H=1 ++ ELEC NUM=3 IX.L=1 IX.H=4 IY.L=4 IY.H=4 ++ ELEC NUM=4 IX.L=1 IX.H=21 IY.L=21 IY.H=21 ++ ++ DOPING UNIF N.TYPE CONC=1E18 X.L=0.0 X.H=0.5 Y.L=0.015 Y.H=0.25 ++ DOPING UNIF N.TYPE CONC=1E18 X.L=1.5 X.H=2.0 Y.L=0.015 Y.H=0.25 ++ DOPING UNIF P.TYPE CONC=1E15 X.L=0.0 X.H=2.0 Y.L=0.015 Y.H=1.0 ++ DOPING UNIF P.TYPE CONC=1.3E17 X.L=0.5 X.H=1.5 Y.L=0.015 Y.H=0.05 ++ ++ MODELS CONCMOB FIELDMOB ++ METHOD ONEC + +.END diff --git a/Windows/spice/examples/cider/serial/colposc.cir b/Windows/spice/examples/cider/serial/colposc.cir new file mode 100644 index 00000000..b7d14ce9 --- /dev/null +++ b/Windows/spice/examples/cider/serial/colposc.cir @@ -0,0 +1,29 @@ +COLPITT'S OSCILLATOR CIRCUIT + +R1 1 0 1 +Q1 2 1 3 QMOD AREA = 100P +VCC 4 0 5 +RL 4 2 750 +C1 2 3 500P +C2 4 3 4500P +L1 4 2 5UH +RE 3 6 4.65K +VEE 6 0 DC -15 PWL 0 -15 1E-9 -10 + +.TRAN 30N 12U +.PRINT TRAN V(2) + +.MODEL QMOD NBJT LEVEL=1 ++ X.MESH NODE=1 LOC=0.0 ++ X.MESH NODE=61 LOC=3.0 ++ REGION NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON NBGNN=1E17 NBGNP=1E17 ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ DOPING UNIF N.TYPE CONC=1E17 X.L=0.0 X.H=1.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=1.5 ++ DOPING UNIF N.TYPE CONC=1E15 X.L=0.0 X.H=3.0 ++ MODELS BGNW SRH CONCTAU AUGER CONCMOB FIELDMOB ++ OPTIONS BASE.LENGTH=1.0 BASE.DEPTH=1.25 + +.OPTIONS ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/serial/dbridge.cir b/Windows/spice/examples/cider/serial/dbridge.cir new file mode 100644 index 00000000..052ae4f0 --- /dev/null +++ b/Windows/spice/examples/cider/serial/dbridge.cir @@ -0,0 +1,30 @@ +DIODE BRIDGE RECTIFIER + +VLINE 3 4 0.0V SIN 0V 10V 60HZ +VGRND 2 0 0.0V +D1 3 1 M_PN AREA=100 +D2 4 1 M_PN AREA=100 +D3 2 3 M_PN AREA=100 +D4 2 4 M_PN AREA=100 +RL 1 2 1.0K + +.MODEL M_PN NUMD LEVEL=1 ++ *************************************** ++ *** ONE-DIMENSIONAL NUMERICAL DIODE *** ++ *************************************** ++ OPTIONS DEFA=1P ++ X.MESH LOC=0.0 N=1 ++ X.MESH LOC=30.0 N=201 ++ DOMAIN NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON ++ MOBILITY MAT=1 CONCMOD=CT FIELDMOD=CT ++ DOPING GAUSS P.TYPE CONC=1E20 X.L=0.0 X.H=0.0 CHAR.L=1.0 ++ DOPING UNIF N.TYPE CONC=1E14 X.L=0.0 X.H=30.0 ++ DOPING GAUSS N.TYPE CONC=5E19 X.L=30.0 X.H=30.0 CHAR.L=2.0 ++ MODELS BGN ^AVAL SRH AUGER CONCTAU CONCMOB FIELDMOB ++ METHOD AC=DIRECT + +.OPTION ACCT BYPASS=1 METHOD=GEAR +.TRAN 0.5MS 50MS +.PRINT I(VLINE) +.END diff --git a/Windows/spice/examples/cider/serial/invchain.cir b/Windows/spice/examples/cider/serial/invchain.cir new file mode 100644 index 00000000..c05513a0 --- /dev/null +++ b/Windows/spice/examples/cider/serial/invchain.cir @@ -0,0 +1,34 @@ +4 STAGE RTL INVERTER CHAIN + +VIN 1 0 DC 0V PWL 0NS 0V 1NS 5V +VCC 12 0 DC 5.0V +RC1 12 3 2.5K +RB1 1 2 8K +Q1 3 2 0 QMOD AREA = 100P +RB2 3 4 8K +RC2 12 5 2.5K +Q2 5 4 0 QMOD AREA = 100P +RB3 5 6 8K +RC3 12 7 2.5K +Q3 7 6 0 QMOD AREA = 100P +RB4 7 8 8K +RC4 12 9 2.5K +Q4 9 8 0 QMOD AREA = 100P + +.PRINT TRAN V(3) V(5) V(9) +.TRAN 1E-9 10E-9 + +.MODEL QMOD NBJT LEVEL=1 ++ X.MESH NODE=1 LOC=0.0 ++ X.MESH NODE=61 LOC=3.0 ++ REGION NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON NBGNN=1E17 NBGNP=1E17 ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ DOPING UNIF N.TYPE CONC=1E17 X.L=0.0 X.H=1.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=1.5 ++ DOPING UNIF N.TYPE CONC=1E15 X.L=0.0 X.H=3.0 ++ MODELS BGNW SRH CONCTAU AUGER CONCMOB FIELDMOB ++ OPTIONS BASE.LENGTH=1.0 BASE.DEPTH=1.25 + +.OPTION ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/serial/meclgate.cir b/Windows/spice/examples/cider/serial/meclgate.cir new file mode 100644 index 00000000..7f5e88ba --- /dev/null +++ b/Windows/spice/examples/cider/serial/meclgate.cir @@ -0,0 +1,70 @@ +MOTOROLA MECL III ECL GATE +*.DC VIN -2.0 0 0.02 +.TRAN 0.2NS 20NS +VEE 22 0 -6.0 +VIN 1 0 PULSE -0.8 -1.8 0.2NS 0.2NS 0.2NS 10NS 20NS +RS 1 2 50 +Q1 4 2 6 QMOD AREA = 100P +Q2 4 3 6 QMOD AREA = 100P +Q3 5 7 6 QMOD AREA = 100P +Q4 0 8 7 QMOD AREA = 100P + +D1 8 9 DMOD +D2 9 10 DMOD + +RP1 3 22 50K +RC1 0 4 100 +RC2 0 5 112 +RE 6 22 380 +R1 7 22 2K +R2 0 8 350 +R3 10 22 1958 + +Q5 0 5 11 QMOD AREA = 100P +Q6 0 4 12 QMOD AREA = 100P + +RP2 11 22 560 +RP3 12 22 560 + +Q7 13 12 15 QMOD AREA = 100P +Q8 14 16 15 QMOD AREA = 100P + +RE2 15 22 380 +RC3 0 13 100 +RC4 0 14 112 + +Q9 0 17 16 QMOD AREA = 100P + +R4 16 22 2K +R5 0 17 350 +D3 17 18 DMOD +D4 18 19 DMOD +R6 19 22 1958 + +Q10 0 14 20 QMOD AREA = 100P +Q11 0 13 21 QMOD AREA = 100P + +RP4 20 22 560 +RP5 21 22 560 + +.MODEL DMOD D RS=40 TT=0.1NS CJO=0.9PF N=1 IS=1E-14 EG=1.11 VJ=0.8 M=0.5 + +.MODEL QMOD NBJT LEVEL=1 ++ X.MESH NODE=1 LOC=0.0 ++ X.MESH NODE=10 LOC=0.9 ++ X.MESH NODE=20 LOC=1.1 ++ X.MESH NODE=30 LOC=1.4 ++ X.MESH NODE=40 LOC=1.6 ++ X.MESH NODE=61 LOC=3.0 ++ REGION NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON NBGNN=1E17 NBGNP=1E17 ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ DOPING UNIF N.TYPE CONC=1E17 X.L=0.0 X.H=1.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=1.5 ++ DOPING UNIF N.TYPE CONC=1E15 X.L=0.0 X.H=3.0 ++ MODELS BGNW SRH CONCTAU AUGER CONCMOB FIELDMOB ++ OPTIONS BASE.LENGTH=1.0 BASE.DEPTH=1.25 + +.OPTIONS ACCT BYPASS=1 +.PRINT TRAN V(12) V(21) +.END diff --git a/Windows/spice/examples/cider/serial/nmosinv.cir b/Windows/spice/examples/cider/serial/nmosinv.cir new file mode 100644 index 00000000..b6fa11ab --- /dev/null +++ b/Windows/spice/examples/cider/serial/nmosinv.cir @@ -0,0 +1,51 @@ +RESISTIVE LOAD NMOS INVERTER +VIN 1 0 PWL 0 0.0 2NS 5 +VDD 3 0 DC 5.0 +RD 3 2 2.5K +M1 2 1 4 5 MMOD W=10UM +CL 2 0 2PF +VB 5 0 0 +VS 4 0 0 + +.MODEL MMOD NUMOS ++ X.MESH L=0.0 N=1 ++ X.MESH L=0.6 N=4 ++ X.MESH L=0.7 N=5 ++ X.MESH L=1.0 N=7 ++ X.MESH L=1.2 N=11 ++ X.MESH L=3.2 N=21 ++ X.MESH L=3.4 N=25 ++ X.MESH L=3.7 N=27 ++ X.MESH L=3.8 N=28 ++ X.MESH L=4.4 N=31 ++ ++ Y.MESH L=-.05 N=1 ++ Y.MESH L=0.0 N=5 ++ Y.MESH L=.05 N=9 ++ Y.MESH L=0.3 N=14 ++ Y.MESH L=2.0 N=19 ++ ++ REGION NUM=1 MATERIAL=1 Y.L=0.0 ++ MATERIAL NUM=1 SILICON ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ ++ REGION NUM=2 MATERIAL=2 Y.H=0.0 X.L=0.7 X.H=3.7 ++ MATERIAL NUM=2 OXIDE ++ ++ ELEC NUM=1 X.L=3.8 X.H=4.4 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=2 X.L=0.7 X.H=3.7 IY.L=1 IY.H=1 ++ ELEC NUM=3 X.L=0.0 X.H=0.6 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=4 X.L=0.0 X.H=4.4 Y.L=2.0 Y.H=2.0 ++ ++ DOPING UNIF P.TYPE CONC=2.5E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=2.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=0.05 ++ DOPING UNIF N.TYPE CONC=1E20 X.L=0.0 X.H=1.1 Y.L=0.0 Y.H=0.2 ++ DOPING UNIF N.TYPE CONC=1E20 X.L=3.3 X.H=4.4 Y.L=0.0 Y.H=0.2 ++ ++ MODELS CONCMOB FIELDMOB ++ METHOD AC=DIRECT ONEC + +.TRAN 0.2NS 30NS +.OPTIONS ACCT BYPASS=1 +.PRINT TRAN V(1) V(2) +.END diff --git a/Windows/spice/examples/cider/serial/pass.cir b/Windows/spice/examples/cider/serial/pass.cir new file mode 100644 index 00000000..a15a6f61 --- /dev/null +++ b/Windows/spice/examples/cider/serial/pass.cir @@ -0,0 +1,55 @@ +TURNOFF TRANSIENT OF PASS TRANSISTOR + +M1 11 2 3 4 MMOD W=20UM +CS 1 0 6.0PF +CL 3 0 6.0PF +R1 3 6 200K +VIN 6 0 DC 0 +VDRN 1 11 DC 0 +VG 2 0 DC 5 PWL 0 5 0.1N 0 1 0 +VB 4 0 DC 0.0 + +.TRAN 0.05NS 0.2NS 0.0NS 0.05NS +.PRINT TRAN V(1) I(VDRN) +.IC V(1)=0 V(3)=0 +.OPTION ACCT BYPASS=1 + +.MODEL MMOD NUMOS ++ X.MESH L=0.0 N=1 ++ X.MESH L=0.6 N=4 ++ X.MESH L=0.7 N=5 ++ X.MESH L=1.0 N=7 ++ X.MESH L=1.2 N=11 ++ X.MESH L=3.2 N=21 ++ X.MESH L=3.4 N=25 ++ X.MESH L=3.7 N=27 ++ X.MESH L=3.8 N=28 ++ X.MESH L=4.4 N=31 ++ ++ Y.MESH L=-.05 N=1 ++ Y.MESH L=0.0 N=5 ++ Y.MESH L=.05 N=9 ++ Y.MESH L=0.3 N=14 ++ Y.MESH L=2.0 N=19 ++ ++ REGION NUM=1 MATERIAL=1 Y.L=0.0 ++ MATERIAL NUM=1 SILICON ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ ++ REGION NUM=2 MATERIAL=2 Y.H=0.0 X.L=0.7 X.H=3.7 ++ MATERIAL NUM=2 OXIDE ++ ++ ELEC NUM=1 X.L=3.8 X.H=4.4 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=2 X.L=0.7 X.H=3.7 IY.L=1 IY.H=1 ++ ELEC NUM=3 X.L=0.0 X.H=0.6 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=4 X.L=0.0 X.H=4.4 Y.L=2.0 Y.H=2.0 ++ ++ DOPING UNIF P.TYPE CONC=2.5E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=2.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=4.4 Y.L=0.0 Y.H=0.05 ++ DOPING UNIF N.TYPE CONC=1E20 X.L=0.0 X.H=1.1 Y.L=0.0 Y.H=0.2 ++ DOPING UNIF N.TYPE CONC=1E20 X.L=3.3 X.H=4.4 Y.L=0.0 Y.H=0.2 ++ ++ MODELS CONCMOB FIELDMOB ++ METHOD AC=DIRECT ONEC + +.END diff --git a/Windows/spice/examples/cider/serial/pullup.cir b/Windows/spice/examples/cider/serial/pullup.cir new file mode 100644 index 00000000..a4d7a4d1 --- /dev/null +++ b/Windows/spice/examples/cider/serial/pullup.cir @@ -0,0 +1,67 @@ +BICMOS INVERTER PULLUP CIRCUIT + +VDD 1 0 5.0V +VSS 2 0 0.0V + +VIN 3 0 0.75V + +VC 1 11 0.0V +VB 5 15 0.0V + +Q1 11 15 4 M_NPN AREA=4 +M1 5 3 1 1 M_PMOS W=20U L=2U AD=30P AS=30P PD=21U PS=21U + +CL 4 0 5.0PF + +.IC V(4)=0.75V V(5)=0.0V + +.MODEL M_PMOS PMOS VTO=-0.8 UO=250 TOX=25N NSUB=5E16 ++ UCRIT=10K UEXP=.15 VMAX=50K NEFF=2 XJ=.02U ++ LD=.15U CGSO=.1N CGDO=.1N CJ=.12M MJ=0.5 ++ CJSW=0.3N MJSW=0.5 LEVEL=2 + +.MODEL M_NPN NBJT LEVEL=2 ++ TITLE TWO-DIMENSIONAL NUMERICAL POLYSILICON EMITTER BIPOLAR TRANSISTOR ++ $ SINCE ONLY HALF THE DEVICE IS SIMULATED, DOUBLE THE UNIT WIDTH TO GET ++ $ 1.0 UM EMITTER. ++ OPTIONS DEFW=2.0U ++ OUTPUT STATISTICS ++ ++ X.MESH W=2.0 H.E=0.02 H.M=0.5 R=2.0 ++ X.MESH W=0.5 H.S=0.02 H.M=0.2 R=2.0 ++ ++ Y.MESH L=-0.2 N=1 ++ Y.MESH L= 0.0 N=5 ++ Y.MESH W=0.10 H.E=0.004 H.M=0.05 R=2.5 ++ Y.MESH W=0.15 H.S=0.004 H.M=0.02 R=2.5 ++ Y.MESH W=1.05 H.S=0.02 H.M=0.1 R=2.5 ++ ++ DOMAIN NUM=1 MATERIAL=1 X.L=2.0 Y.H=0.0 ++ DOMAIN NUM=2 MATERIAL=2 X.H=2.0 Y.H=0.0 ++ DOMAIN NUM=3 MATERIAL=3 Y.L=0.0 ++ MATERIAL NUM=1 POLYSILICON ++ MATERIAL NUM=2 OXIDE ++ MATERIAL NUM=3 SILICON ++ ++ ELEC NUM=1 X.L=0.0 X.H=0.0 Y.L=1.1 Y.H=1.3 ++ ELEC NUM=2 X.L=0.0 X.H=0.5 Y.L=0.0 Y.H=0.0 ++ ELEC NUM=3 X.L=2.0 X.H=3.0 Y.L=-0.2 Y.H=-0.2 ++ ++ DOPING GAUSS N.TYPE CONC=3E20 X.L=2.0 X.H=3.0 Y.L=-0.2 Y.H=0.0 ++ + CHAR.L=0.047 LAT.ROTATE ++ DOPING GAUSS P.TYPE CONC=5E18 X.L=0.0 X.H=5.0 Y.L=-0.2 Y.H=0.0 ++ + CHAR.L=0.100 LAT.ROTATE ++ DOPING GAUSS P.TYPE CONC=1E20 X.L=0.0 X.H=0.5 Y.L=-0.2 Y.H=0.0 ++ + CHAR.L=0.100 LAT.ROTATE RATIO=0.7 ++ DOPING UNIF N.TYPE CONC=1E16 X.L=0.0 X.H=5.0 Y.L=0.0 Y.H=1.3 ++ DOPING GAUSS N.TYPE CONC=5E19 X.L=0.0 X.H=5.0 Y.L=1.3 Y.H=1.3 ++ + CHAR.L=0.100 LAT.ROTATE ++ ++ METHOD AC=DIRECT ITLIM=10 ++ MODELS BGN SRH AUGER CONCTAU CONCMOB FIELDMOB + +.TRAN 0.5NS 4.0NS +.PRINT TRAN V(3) V(4) + +.OPTION ACCT BYPASS=1 +.END diff --git a/Windows/spice/examples/cider/serial/readme b/Windows/spice/examples/cider/serial/readme new file mode 100644 index 00000000..08f29304 --- /dev/null +++ b/Windows/spice/examples/cider/serial/readme @@ -0,0 +1,3 @@ +This directory contains the CIDER serial-version benchmarks used in the +thesis "Design-Oriented Mixed-Level Circuit and Device Simulation" by +David A. Gates. diff --git a/Windows/spice/examples/cider/serial/recovery.cir b/Windows/spice/examples/cider/serial/recovery.cir new file mode 100644 index 00000000..cd33be1e --- /dev/null +++ b/Windows/spice/examples/cider/serial/recovery.cir @@ -0,0 +1,40 @@ +DIODE REVERSE RECOVERY + +VPP 1 0 0.0V (PULSE 1.0V -1.0V 1NS 1PS 1PS 20NS 40NS) +VNN 2 0 0.0V +RS 1 3 1.0 +LS 3 4 0.5UH +DT 4 2 M_PIN AREA=1 + +.MODEL M_PIN NUMD LEVEL=2 ++ OPTIONS DEFW=100U ++ X.MESH N=1 L=0.0 ++ X.MESH N=2 L=0.2 ++ X.MESH N=4 L=0.4 ++ X.MESH N=8 L=0.6 ++ X.MESH N=13 L=1.0 ++ ++ Y.MESH N=1 L=0.0 ++ Y.MESH N=9 L=4.0 ++ Y.MESH N=24 L=10.0 ++ Y.MESH N=29 L=15.0 ++ Y.MESH N=34 L=20.0 ++ ++ DOMAIN NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON TN=20NS TP=20NS ++ ++ ELECTRODE NUM=1 X.L=0.6 X.H=1.0 Y.L=0.0 Y.H=0.0 ++ ELECTRODE NUM=2 X.L=-0.1 X.H=1.0 Y.L=20.0 Y.H=20.0 ++ ++ DOPING GAUSS P.TYPE CONC=1.0E19 CHAR.LEN=1.076 X.L=0.75 X.H=1.1 Y.H=0.0 ++ + LAT.ROTATE RATIO=0.1 ++ DOPING UNIF N.TYPE CONC=1.0E14 ++ DOPING GAUSS N.TYPE CONC=1.0E19 CHAR.LEN=1.614 X.L=-0.1 X.H=1.1 Y.L=20.0 ++ ++ MODELS BGN SRH AUGER CONCTAU CONCMOB FIELDMOB + +.OPTION ACCT BYPASS=1 +.TRAN 0.1NS 10NS +.PRINT TRAN V(3) I(VIN) + +.END diff --git a/Windows/spice/examples/cider/serial/rtlinv.cir b/Windows/spice/examples/cider/serial/rtlinv.cir new file mode 100644 index 00000000..ef0dd94d --- /dev/null +++ b/Windows/spice/examples/cider/serial/rtlinv.cir @@ -0,0 +1,25 @@ +RTL INVERTER + +VIN 1 0 DC 1 PWL 0 4 1NS 0 +VCC 12 0 DC 5.0 +RC1 12 3 2.5K +RB1 1 2 8K +Q1 3 2 0 QMOD AREA = 100P + +.OPTION ACCT BYPASS=1 +.TRAN 0.5N 5N +.PRINT TRAN V(2) V(3) + +.MODEL QMOD NBJT LEVEL=1 ++ X.MESH NODE=1 LOC=0.0 ++ X.MESH NODE=61 LOC=3.0 ++ REGION NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON NBGNN=1E17 NBGNP=1E17 ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ DOPING UNIF N.TYPE CONC=1E17 X.L=0.0 X.H=1.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=1.5 ++ DOPING UNIF N.TYPE CONC=1E15 X.L=0.0 X.H=3.0 ++ MODELS BGNW SRH CONCTAU AUGER CONCMOB FIELDMOB ++ OPTIONS BASE.LENGTH=1.0 BASE.DEPTH=1.25 + +.END diff --git a/Windows/spice/examples/cider/serial/vco.cir b/Windows/spice/examples/cider/serial/vco.cir new file mode 100644 index 00000000..852ddd7f --- /dev/null +++ b/Windows/spice/examples/cider/serial/vco.cir @@ -0,0 +1,41 @@ +VOLTAGE CONTROLLED OSCILLATOR + +RC1 7 5 1K +RC2 7 6 1K + +Q5 7 7 5 QMOD AREA = 100P +Q6 7 7 6 QMOD AREA = 100P + +Q3 7 5 2 QMOD AREA = 100P +Q4 7 6 1 QMOD AREA = 100P + +IB1 2 0 .5MA +IB2 1 0 .5MA +CB1 2 0 1PF +CB2 1 0 1PF + +Q1 5 1 3 QMOD AREA = 100P +Q2 6 2 4 QMOD AREA = 100P + +C1 3 4 .1UF + +IS1 3 0 DC 2.5MA PULSE 2.5MA 0.5MA 0 1US 1US 50MS +IS2 4 0 1MA +VCC 7 0 10 + +.MODEL QMOD NBJT LEVEL=1 ++ X.MESH NODE=1 LOC=0.0 ++ X.MESH NODE=61 LOC=3.0 ++ REGION NUM=1 MATERIAL=1 ++ MATERIAL NUM=1 SILICON NBGNN=1E17 NBGNP=1E17 ++ MOBILITY MATERIAL=1 CONCMOD=SG FIELDMOD=SG ++ DOPING UNIF N.TYPE CONC=1E17 X.L=0.0 X.H=1.0 ++ DOPING UNIF P.TYPE CONC=1E16 X.L=0.0 X.H=1.5 ++ DOPING UNIF N.TYPE CONC=1E15 X.L=0.0 X.H=3.0 ++ MODELS BGNW SRH CONCTAU AUGER CONCMOB FIELDMOB ++ OPTIONS BASE.LENGTH=1.0 BASE.DEPTH=1.25 + +.OPTION ACCT BYPASS=1 +.TRAN 3US 600US 0 3US +.PRINT TRAN V(4) +.END diff --git a/Windows/spice/examples/control_structs/foreach_bjt_ft.sp b/Windows/spice/examples/control_structs/foreach_bjt_ft.sp new file mode 100644 index 00000000..ef5e9d47 --- /dev/null +++ b/Windows/spice/examples/control_structs/foreach_bjt_ft.sp @@ -0,0 +1,51 @@ +BJT ft Test + +vce 1 0 dc 3.0 +vgain 1 c dc 0.0 +f 0 2 vgain -1000 +l 2 b 1g +c 2 0 1g +ib 0 b dc 0.0 ac 1.0 +ic 0 c 0.01 +q1 c b 0 bfs17 + +.control +foreach myic 0.5e-3 1e-3 5e-3 10e-3 50e-3 100e-3 + alter ic = $myic + ac dec 10 10k 5g +end +*foreach mytf 50p 100p 150p 200p 250p 300p +* altermod q.x1.q1 tf = $mytf +* ac dec 10 10k 5g +*end +plot abs(ac1.vgain#branch) abs(ac2.vgain#branch) abs(ac3.vgain#branch) abs(ac4.vgain#branch) abs(ac5.vgain#branch) abs(ac6.vgain#branch) ylimit 0.1 100 loglog +.endc + +***************************************************************** +* SPICE2G6 MODEL OF THE NPN BIPOLAR TRANSISTOR BFS17 (SOT-23) * +* REV: 98.1 DANALYSE GMBH BERLIN (27.07.1998) * +***************************************************************** +.SUBCKT BFS17C 1 2 3 +Q1 6 5 7 BFS17 1.000 +LC 1 6 0.350N +L1 2 4 0.400N +LB 4 5 0.500N +L2 3 8 0.400N +LE 8 7 0.600N +CGBC 4 6 70.00F +CGBE 4 8 0.150P +CGCE 6 8 15.00F +.ENDS +.MODEL BFS17 NPN (level=1 IS=0.480F NF=1.008 BF=99.655 VAF=90.000 IKF=0.190 ++ ISE=7.490F NE=1.762 NR=1.010 BR=38.400 VAR=7.000 IKR=93.200M ++ ISC=0.200F NC=1.042 ++ RB=1.500 IRB=0.100M RBM=1.200 ++ RE=0.500 RC=2.680 ++ CJE=1.325P VJE=0.700 MJE=0.220 FC=0.890 ++ CJC=1.050P VJC=0.610 MJC=0.240 XCJC=0.400 ++ TF=56.940P TR=1.000N PTF=21.000 ++ XTF=68.398 VTF=0.600 ITF=0.700 ++ XTB=1.600 EG=1.110 XTI=3.000 ++ KF=1.000F AF=1.000) + +.end diff --git a/Windows/spice/examples/control_structs/new-check-3.sp b/Windows/spice/examples/control_structs/new-check-3.sp new file mode 100644 index 00000000..c85c19f6 --- /dev/null +++ b/Windows/spice/examples/control_structs/new-check-3.sp @@ -0,0 +1,96 @@ +new ft_getpnames parser check 3, try ternary + +* (compile (concat "tmp-1/ng-spice-rework/src/ngspice " buffer-file-name) t) + +VIN 1 0 DC=0 + +.control + +dc VIN 0 10 5 + +* trying the ternary + +let checks = 0 + +let const0 = 0 +let const5 = 5 +let const6 = 6 + + +let tmp = const0 ? const5 : const6 +if tmp eq const6 + let checks = checks + 1 +else + echo "ERROR:" +end + +let tmp = const6 ? const5 : const6 +if tmp eq const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +define foo(a,b,d) a ? b : d + +if foo(const0,const5,const6) eq const6 + let checks = checks + 1 +else + echo "ERROR:" +end + +if foo(const6,const5,const6) eq const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +let vec7 = 7*unitvec(7) +let vec8 = 8*unitvec(8) + +if length(const5 ? vec7 : vec8) eq 7 + let checks = checks + 1 +else + echo "ERROR:" +end + +if length(const0 ? vec7 : vec8) eq 8 + let checks = checks + 1 +else + echo "ERROR:" +end + +* FIXME, "1 ? 1:1" (without spaces around of ':') doesnt work, +* "1:1" is a lexem, WHY !!! +* ist that an old artifact, (ancient hierarchical name separator ':') +* +*print length(1?1:1) + +*if (1 ? 1:1) eq 1 +if (1 ? 1 : 1) eq 1 + let checks = checks + 1 +else + echo "ERROR:" +end + +print @vin[dc] + +* '"' survives, and will be processed in the ft_getpnames() lexer, that is PPlex() +* where the string will be unqoted +* thats used vor weired variable names, for example "zero(1)" +let foo = "vec8" +if foo eq vec8 + let checks = checks + 1 +else + echo "ERROR:" +end + +if checks eq 8 + echo "INFO: ok" +else + echo "ERROR:" +end + +.endc + +.end diff --git a/Windows/spice/examples/control_structs/new-check-4.sp b/Windows/spice/examples/control_structs/new-check-4.sp new file mode 100644 index 00000000..7c241f23 --- /dev/null +++ b/Windows/spice/examples/control_structs/new-check-4.sp @@ -0,0 +1,111 @@ +demonstrate < etc in ft_getpnames + +* (compile (concat "tmp-1/ng-spice-rework/src/ngspice " buffer-file-name) t) + +VIN 1 0 DC=0 + +.control + +dc VIN 0 10 5 + +let checks = 0 + +let const0 = 0 +let const5 = 5 +let const6 = 6 + +* check some relational operators, which are in danger to mixed up +* with csh semantic, that is IO redirection + +if const5 < const6 + let checks = checks + 1 +else + echo "ERROR:" +end + +if const6 > const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +if const5 >= const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +if const5 <= const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +if const5 = const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +* check some wired non-equality operators +* note: there are some awkward tranformations ahead of the ft_getpnames lexer +* transforming "><" into "> <" +* and "<>" into "< >" +* note: "!=" would have been in serious danger to be fooled up within +* csh history mechanism + +if const6 <> const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +if const6 >< const5 + let checks = checks + 1 +else + echo "ERROR:" +end + + +* check some boolean operators, which are in danger to be mixed up +* with csh semantic, `&' background '|' pipe '~' homedirectory + +if const5 & const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +if const0 | const5 + let checks = checks + 1 +else + echo "ERROR:" +end + +if ~ const0 + let checks = checks + 1 +else + echo "ERROR:" +end + +* note: +* "!=" would be in danger, '!' triggers the csh history mechanism +*if const5 != const6 +* echo "just trying" +*end + + +* Note: csh semantics swallows the '>' and '<' operators +* on most of the com lines +* witnessed by +let tmp = const5 > unwanted_output_file_1 +define foo(a,b) a > unwanted_output_file_2 +print const0 > unwanted_output_file_3 + +if checks eq 10 + echo "INFO: ok" +end + +.endc + +.end diff --git a/Windows/spice/examples/control_structs/repeat3.sp b/Windows/spice/examples/control_structs/repeat3.sp new file mode 100644 index 00000000..5650252a --- /dev/null +++ b/Windows/spice/examples/control_structs/repeat3.sp @@ -0,0 +1,148 @@ +Test sequences for ngspice control structures +*vectors are used (except foreach) +*start in interactive mode + +.control + +* test for while, repeat, if, break + let loop = 0 + while loop < 4 + let index = 0 + repeat + let index = index + 1 + if index > 4 + break + end + end + echo index "$&index" loop "$&loop" + let loop = loop + 1 + end + + +* test sequence for while, dowhile + let loop = 0 + echo + echo enter loop with "$&loop" + dowhile loop < 3 + echo within dowhile loop "$&loop" + let loop = loop + 1 + end + echo after dowhile loop "$&loop" + echo + let loop = 0 + while loop < 3 + echo within while loop "$&loop" + let loop = loop + 1 + end + echo after while loop "$&loop" + let loop = 3 + echo + echo enter loop with "$&loop" + dowhile loop < 3 + echo within dowhile loop "$&loop" $ output expected + let loop = loop + 1 + end + echo after dowhile loop "$&loop" + echo + let loop = 3 + while loop < 3 + echo within while loop "$&loop" $ no output expected + let loop = loop + 1 + end + echo after while loop "$&loop" + + +* test sequence for foreach + echo + foreach outvar 0 0.5 1 1.5 + echo parameters: $outvar $ foreach parameters are variables, not vectors! + end + +* test for if ... else ... end + echo + let loop = 0 + let index = 1 + dowhile loop < 10 + let index = index * 2 + if index < 128 + echo "$&index" lt 128 + else + echo "$&index" ge 128 + end + let loop = loop + 1 + end + +* simple test for label, goto + echo + let loop = 0 + label starthere + echo start "$&loop" + let loop = loop + 1 + if loop < 3 + goto starthere + end + echo end "$&loop" + +* test for label, nested goto + echo + let loop = 0 + label starthere1 + echo start nested "$&loop" + let loop = loop + 1 + if loop < 3 + if loop < 3 + goto starthere1 + end + end + echo end "$&loop" + +* test for label, goto + echo + let index = 0 + label starthere2 + let loop = 0 + echo We are at start with index "$&index" and loop "$&loop" + if index < 6 + label inhere + let index = index + 1 + if loop < 3 + let loop = loop + 1 + if index > 1 + echo jump2 + goto starthere2 + end + end + echo jump + goto inhere + end + echo We are at end with index "$&index" and loop "$&loop" + +* test goto in while loop + echo + let loop = 0 + if 1 $ outer loop to allow nested forward label 'endlabel' + while loop < 10 + if loop > 5 + echo jump + goto endlabel + end + let loop = loop + 1 + end + echo before $ never reached + label endlabel + echo after "$&loop" + end + +*test for using variables +* simple test for label, goto + echo + set loop = 0 + label starthe + echo start $loop + let loop = $loop + 1 $ expression needs vector at lhs + set loop = "$&loop" $ convert vector contents to variable + if $loop < 3 + goto starthe + end + echo end $loop +.endc diff --git a/Windows/spice/examples/control_structs/s-param.cir b/Windows/spice/examples/control_structs/s-param.cir new file mode 100644 index 00000000..bff277f7 --- /dev/null +++ b/Windows/spice/examples/control_structs/s-param.cir @@ -0,0 +1,120 @@ +Test for Scattering Parameters +** Two ports +** Examples: Bipolar, Tschebyschef, RC + +.param Rbase=50 Vbias_in=0 Vbias_out=0 + +*** The two-port circuit: +** port 1: in 0 +** port 2: out 0 +** Bias on both ports through resistor Rbase (to obtain operating point) + +** Example RF Bipolar mrf5711 +** VCE 1 V, IE = 5mA +** QXXXXXXX nc nb ne +** model obtained from +** http://141.69.160.32/~krausg/Spice_Model_CD/Vendor%20List/Motorola/Spice/RFBJT/ +*.include MRF5711.lib +*XMRF5711 out in e MRF5711 +*Ie e 0 5m +*Ce e 0 1 + +** Example Tschebyschef Low Pass filter +C1 in 0 33.2p +L1 in 2 99.2n +C2 2 0 57.2p +L2 2 out 99.2n +C3 out 0 33.2p + +** Example RC +** see +** http://www.allenhollister.com/allen/files/scatteringparameters.pdf +*R2 in out 10 +*C1 out int5 30p +*R1 int5 0 10 + +*** End of circuit + + +** The following subcircuit to be changed only by an experienced user! + +*** Driver and readout +X1 in out S22 S12 S_PARAM + +.SUBCKT S_PARAM 22 66 5 7 +* Resistors emulate switches with Ron=0.001 and Roff=1e12 +* to switch driver to input and readout to output (and vice versa, see below) +RS1 22 2 0.001 +RS2 66 6 0.001 +RS3 22 6 1e12 +RS4 66 2 1e12 +*Driver +Vacdc 1 0 DC 'Vbias_in' AC 1 $ ac voltage and dc bias at input (applied through load resistor) +R1 1 2 'Rbase' +E1 3 0 2 0 2 $ amplify in port ac voltage by 2 +Vac 3 4 DC 0 AC 1 $ subtract driving ac voltage +R_loop 4 5 0.001 +R3 5 0 1 $ ground return for measure node 5 +*Readout +E2 7 0 6 0 2 $ amplify out port ac voltage by 2 +R4 6 8 'Rbase' $ load resistor at output (ac) +Vdc 8 0 DC 'Vbias_out' AC 0 $ dc bias at output (applied through load resistor) +.ends + +** Check the two ac lines below for being equal! +.control +set noaskquit +set filetype=ascii +*** measurement for s11 and s21 +op +** save bias voltages to vector +let Vdcnew=V(X1.1) $ former Vacdc +let Vacdcnew=v(X1.8) $ former Vdc +** first ac measurement (change this line only together with following ac line) +*ac lin 20 0.1G 2G $ use for bip transistor +ac lin 100 2.5MEG 250MEG $ use for Tschebyschef +*ac lin 101 1k 10G $ use for RC +** +** switch input and output +alter R.X1.RS1=1e12 +alter R.X1.RS2=1e12 +alter R.X1.RS3=0.001 +alter R.X1.RS4=0.001 +** switch bias voltages between in and out +alter V.X1.Vacdc DC=op1.Vacdcnew +alter V.X1.Vdc DC=op1.Vdcnew +*** measurement for s12 and s22 +op +** second ac measurement (change this line only together with ac line above) +*ac lin 20 0.1G 2G $ use for bip transistor +ac lin 100 2.5MEG 250MEG $ use for Tschebyschef +*ac lin 101 1 10G $ use for RC +** +let s11=ac1.s22 +let s21=ac1.s12 +settype s-param S11 S21 S22 S12 + +let S11db = db(s11) +let S12db = db(s12) +let S21db = db(s21) +let S22db = db(s22) +settype decibel S11db S21db S22db S12db + +let P11=180*ph(s11)/pi +let P21=180*ph(s21)/pi +let P22=180*ph(S22)/pi +let P12=180*ph(S12)/pi +settype phase P11 P21 P22 P12 + +let Rbase=@R.X1.R4[Resistance] +settype impedance Rbase + +*plot s11db s21db S22db S12db ylimit -50 0 xlog $ used with RC +plot s11db s21db S22db S12db ylimit -0.5 0 $ used with Tschebyschef +plot P11 P21 P22 P12 +plot smithgrid S11 S12 +*wrdata s3046 mag(S11) P11 mag(S21) P21 mag(S22) P22 mag(S12) P12 $ write simple table +wrs2p s3046.s2p $ write touchstone vers. 1 file s3046.s2p +.endc + +.end diff --git a/Windows/spice/examples/measure/func_cap.sp b/Windows/spice/examples/measure/func_cap.sp new file mode 100644 index 00000000..eca14a86 --- /dev/null +++ b/Windows/spice/examples/measure/func_cap.sp @@ -0,0 +1,15 @@ +* func_cap.sp + + +.func icap_calc(A,B,C,D) '2*A*sqrt(B*C*D)' + +.param cap_val = 'max(icap_calc(1,2,3,4))' +VDD 1 0 DC 1 +C1 1 0 'cap_val' + +.measure tran capacitance param='cap_val' +.measure tran capac2 param='max(icap_calc(1,2,3,4))' + +.tran 1ps 100ps + +.end diff --git a/Windows/spice/examples/measure/inv-meas-tran-auto.sp b/Windows/spice/examples/measure/inv-meas-tran-auto.sp new file mode 100644 index 00000000..927d9a44 --- /dev/null +++ b/Windows/spice/examples/measure/inv-meas-tran-auto.sp @@ -0,0 +1,103 @@ +Inverter example circuit +* This netlist demonstrates the following: +* global nodes (vdd, gnd) +* autostop (.tran defines simulation end as 4ns but simulation stops at +* 142.5ps when .measure statements are evaluated) +* scale (all device units are in microns) +* model binning (look in device.values file for which bin chosen) +* +* m.x1.mn: +* model = nch.2 +* +* m.x1.mp: +* model = pch.2 +* +* parameters +* parameterized subckt +* vsrc with repeat +* .measure statements for delay and an example ternary operator +* device listing and parameter listing +* You can run the example circuit with this command: +* +* ngspice inverter3.sp + + +* global nodes +.global vdd gnd + +* autostop -- stop simulation early if .measure statements done +* scale -- define scale factor for mosfet device parameters (l,w,area,perimeter) +.option autostop +.option scale = 1e-6 + +* model binning +.model nch.1 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model nch.2 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) +.model pch.1 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch.2 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) + +* parameters +.param vp = 1.0v +.param lmin = 0.10 +.param wmin = 0.12 +.param plmin = 'lmin' +.param nlmin = 'lmin' +.param wpmin = 'wmin' +.param wnmin = 'wmin' +.param drise = 400ps +.param dfall = 100ps +.param trise = 100ps +.param tfall = 100ps +.param period = 1ns +.param skew_meas = 'vp/2' + +* parameterized subckt +.subckt inv in out pw='wpmin' pl='plmin' nw='wnmin' nl='nlmin' +mp out in vdd vdd pch w='pw' l='pl' +mn out in gnd gnd nch w='nw' l='nl' +.ends + +v0 vdd gnd 'vp' + +* vsrc with repeat +v1 in gnd pwl ++ 0ns 'vp' ++ 'dfall-0.8*tfall' 'vp' ++ 'dfall-0.4*tfall' '0.9*vp' ++ 'dfall+0.4*tfall' '0.1*vp' ++ 'dfall+0.8*tfall' 0v ++ 'drise-0.8*trise' 0v ++ 'drise-0.4*trise' '0.1*vp' ++ 'drise+0.4*trise' '0.9*vp' ++ 'drise+0.8*trise' 'vp' ++ 'period+dfall-0.8*tfall' 'vp' ++ r='dfall-0.8*tfall' + +x1 in out inv pw=60 nw=20 +c1 out gnd 220fF + +.tran 1ps 4ns + +.meas tran inv_delay trig v(in) val='vp/2' fall=1 targ v(out) val='vp/2' rise=1 +.meas tran inv_delay2 trig v(in) val='vp/2' td=1n fall=1 targ v(out) val='vp/2' rise=1 +.meas tran test_data1 trig AT = 1n targ v(out) val='vp/2' rise=3 +.meas tran out_slew trig v(out) val='0.2*vp' rise=2 targ v(out) val='0.8*vp' rise=2 +.meas tran delay_chk param='(inv_delay < 100ps) ? 1 : 0' +.meas tran skew when v(out)=0.6 +.meas tran skew2 when v(out)=skew_meas +.meas tran skew3 when v(out)=skew_meas fall=2 +.meas tran skew4 when v(out)=skew_meas fall=LAST +.meas tran skew5 FIND v(out) AT=2n +*.measure tran v0_min min i(v0) from='dfall' to='dfall+period' +*.measure tran v0_avg avg i(v0) from='dfall' to='dfall+period' +*.measure tran v0_integ integ i(v0) from='dfall' to='dfall+period' +*.measure tran v0_rms rms i(v0) from='dfall' to='dfall+period' + +.control +run +rusage all +plot v(in) v(out) +.endc + +.end + diff --git a/Windows/spice/examples/measure/inv-meas-tran-control.sp b/Windows/spice/examples/measure/inv-meas-tran-control.sp new file mode 100644 index 00000000..48f7d09a --- /dev/null +++ b/Windows/spice/examples/measure/inv-meas-tran-control.sp @@ -0,0 +1,113 @@ +Inverter example circuit +* This netlist demonstrates the following: +* global nodes (vdd, gnd) +* autostop (.tran defines simulation end as 4ns but simulation stops at +* 142.5ps when .measure statements are evaluated) +* scale (all device units are in microns) +* model binning (look in device.values file for which bin chosen) +* +* m.x1.mn: +* model = nch.2 +* +* m.x1.mp: +* model = pch.2 +* +* parameters +* parameterized subckt +* vsrc with repeat +* .measure statements for delay and an example ternary operator +* device listing and parameter listing +* You can run the example circuit with this command: +* +* ngspice inverter3.sp + + +* global nodes +.global vdd gnd + +* autostop -- stop simulation early if .measure statements done +* scale -- define scale factor for mosfet device parameters (l,w,area,perimeter) +*.option autostop +.option scale = 1e-6 + +* model binning +.model nch.1 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model nch.2 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) +.model pch.1 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch.2 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) + +* parameters +.param vp = 1.0v +.param lmin = 0.10 +.param wmin = 0.12 +.param plmin = 'lmin' +.param nlmin = 'lmin' +.param wpmin = 'wmin' +.param wnmin = 'wmin' +.param drise = 400ps +.param dfall = 100ps +.param trise = 100ps +.param tfall = 100ps +.param period = 1ns +.param skew_meas = 'vp/2' + +* parameterized subckt +.subckt inv in out pw='wpmin' pl='plmin' nw='wnmin' nl='nlmin' +mp out in vdd vdd pch w='pw' l='pl' +mn out in gnd gnd nch w='nw' l='nl' +.ends + +v0 vdd gnd 'vp' + +* vsrc with repeat +v1 in gnd pwl ++ 0ns 'vp' ++ 'dfall-0.8*tfall' 'vp' ++ 'dfall-0.4*tfall' '0.9*vp' ++ 'dfall+0.4*tfall' '0.1*vp' ++ 'dfall+0.8*tfall' 0v ++ 'drise-0.8*trise' 0v ++ 'drise-0.4*trise' '0.1*vp' ++ 'drise+0.4*trise' '0.9*vp' ++ 'drise+0.8*trise' 'vp' ++ 'period+dfall-0.8*tfall' 'vp' ++ r='dfall-0.8*tfall' + +x1 in out inv pw=60 nw=20 +c1 out gnd 220fF + +.control +tran 1ps 4ns +meas tran inv_delay trig v(in) val=0.5 fall=1 targ v(out) val=0.5 rise=1 +meas tran inv_delay2 trig v(in) val=0.5 td=1n fall=1 targ v(out) val=0.5 rise=1 +meas tran test_data1 trig AT = 1n targ v(out) val=0.5 rise=3 +meas tran out_slew trig v(out) val=0.2 rise=2 targ v(out) val=0.8 rise=2 + +*.meas tran delay_chk param='(inv_delay < 100ps) ? 1 : 0' +if ( inv_delay < 100ps ) + let delay_chk = 1 +else + let delay_chk = 0 +end +echo delay_chk = "$&delay_chk" + +meas tran skew when v(out)=0.6 +let skew_meas = 0.5 +meas tran skew2 when v(out)=skew_meas +meas tran skew3 when v(out)=skew_meas fall=2 +meas tran skew4 when v(out)=skew_meas fall=LAST +meas tran skew5 FIND v(out) AT=2n +let dfall = 100p +let period = 1n +let delta = dfall+period +meas tran v0_min min i(v0) from=dfall to=delta +meas tran i_v0_min min_at i(v0) from=dfall to=delta +meas tran v0_avg avg i(v0) from = dfall to = delta +meas tran v0_integ integ i(v0) from=dfall to=delta +meas tran v0_rms rms i(v0) from=dfall to=delta +rusage all +plot v(in) v(out) +.endc + +.end + diff --git a/Windows/spice/examples/measure/inv-meas-tran.sp b/Windows/spice/examples/measure/inv-meas-tran.sp new file mode 100644 index 00000000..0a4077ea --- /dev/null +++ b/Windows/spice/examples/measure/inv-meas-tran.sp @@ -0,0 +1,104 @@ +Inverter example circuit +* This netlist demonstrates the following: +* global nodes (vdd, gnd) +* autostop (.tran defines simulation end as 4ns but simulation stops at +* 142.5ps when .measure statements are evaluated) +* scale (all device units are in microns) +* model binning (look in device.values file for which bin chosen) +* +* m.x1.mn: +* model = nch.2 +* +* m.x1.mp: +* model = pch.2 +* +* parameters +* parameterized subckt +* vsrc with repeat +* .measure statements for delay and an example ternary operator +* device listing and parameter listing +* You can run the example circuit with this command: +* +* ngspice inverter3.sp + + +* global nodes +.global vdd gnd + +* autostop -- stop simulation early if .measure statements done +* scale -- define scale factor for mosfet device parameters (l,w,area,perimeter) +*.option autostop +.option scale = 1e-6 + +* model binning +.model nch.1 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model nch.2 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) +.model pch.1 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch.2 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) + +* parameters +.param vp = 1.0v +.param lmin = 0.10 +.param wmin = 0.12 +.param plmin = 'lmin' +.param nlmin = 'lmin' +.param wpmin = 'wmin' +.param wnmin = 'wmin' +.param drise = 400ps +.param dfall = 100ps +.param trise = 100ps +.param tfall = 100ps +.param period = 1ns +.param skew_meas = 'vp/2' + +* parameterized subckt +.subckt inv in out pw='wpmin' pl='plmin' nw='wnmin' nl='nlmin' +mp out in vdd vdd pch w='pw' l='pl' +mn out in gnd gnd nch w='nw' l='nl' +.ends + +v0 vdd gnd 'vp' + +* vsrc with repeat +v1 in gnd pwl ++ 0ns 'vp' ++ 'dfall-0.8*tfall' 'vp' ++ 'dfall-0.4*tfall' '0.9*vp' ++ 'dfall+0.4*tfall' '0.1*vp' ++ 'dfall+0.8*tfall' 0v ++ 'drise-0.8*trise' 0v ++ 'drise-0.4*trise' '0.1*vp' ++ 'drise+0.4*trise' '0.9*vp' ++ 'drise+0.8*trise' 'vp' ++ 'period+dfall-0.8*tfall' 'vp' ++ r='dfall-0.8*tfall' + +x1 in out inv pw=60 nw=20 +c1 out gnd 220fF + +.tran 1ps 4ns + +.meas tran inv_delay trig v(in) val='vp/2' fall=1 targ v(out) val='vp/2' rise=1 +.meas tran inv_delay2 trig v(in) val='vp/2' td=1n fall=1 targ v(out) val='vp/2' rise=1 +.meas tran test_data1 trig AT = 1n targ v(out) val='vp/2' rise=3 +.meas tran out_slew trig v(out) val='0.2*vp' rise=2 targ v(out) val='0.8*vp' rise=2 +.meas tran delay_chk param='(inv_delay < 100ps) ? 1 : 0' +.meas tran skew when v(out)=0.6 +.meas tran skew2 when v(out)=skew_meas +.meas tran skew3 when v(out)=skew_meas fall=2 +.meas tran skew4 when v(out)=skew_meas fall=LAST +.meas tran skew5 FIND v(out) AT=2n +.meas tran v0_min min i(v0) from='dfall' to='dfall+period' +.meas tran i_v0_min min_at i(v0) from='dfall' to='dfall+period' +.meas tran v0_avg avg i(v0) from='dfall' to='dfall+period' +.meas tran v0_integ integ i(v0) from='dfall' to='dfall+period' +.meas tran v0_rms rms i(v0) from='dfall' to='dfall+period' + +.control +run +rusage all +plot v(in) v(out) +.endc + +.end + diff --git a/Windows/spice/examples/measure/inv-meas-tran_oc.sp b/Windows/spice/examples/measure/inv-meas-tran_oc.sp new file mode 100644 index 00000000..98077b80 --- /dev/null +++ b/Windows/spice/examples/measure/inv-meas-tran_oc.sp @@ -0,0 +1,98 @@ +Inverter example circuit +* This netlist demonstrates the following: +* global nodes (vdd, gnd) +* autostop (.tran defines simulation end as 4ns but simulation stops at +* 142.5ps when .measure statements are evaluated) +* scale (all device units are in microns) +* model binning (look in device.values file for which bin chosen) +* +* m.x1.mn: +* model = nch.2 +* +* m.x1.mp: +* model = pch.2 +* +* parameters +* parameterized subckt +* vsrc with repeat +* .measure statements for delay and an example ternary operator +* device listing and parameter listing +* You can run the example circuit with this command: +* +* ngspice inverter3.sp + + +* global nodes +.global vdd gnd + +* autostop -- stop simulation early if .measure statements done +* scale -- define scale factor for mosfet device parameters (l,w,area,perimeter) +*.option autostop +.option scale = 1e-6 + +* model binning +.model nch.1 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model nch.2 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) +.model pch.1 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch.2 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) + +* parameters +.param vp = 1.0v +.param lmin = 0.10 +.param wmin = 0.12 +.param plmin = 'lmin' +.param nlmin = 'lmin' +.param wpmin = 'wmin' +.param wnmin = 'wmin' +.param drise = 400ps +.param dfall = 100ps +.param trise = 100ps +.param tfall = 100ps +.param period = 1ns +.param skew_meas = 'vp/2' + +* parameterized subckt +.subckt inv in out pw='wpmin' pl='plmin' nw='wnmin' nl='nlmin' +mp out in vdd vdd pch w='pw' l='pl' +mn out in gnd gnd nch w='nw' l='nl' +.ends + +v0 vdd gnd 'vp' + +* vsrc with repeat +v1 in gnd pwl ++ 0ns 'vp' ++ 'dfall-0.8*tfall' 'vp' ++ 'dfall-0.4*tfall' '0.9*vp' ++ 'dfall+0.4*tfall' '0.1*vp' ++ 'dfall+0.8*tfall' 0v ++ 'drise-0.8*trise' 0v ++ 'drise-0.4*trise' '0.1*vp' ++ 'drise+0.4*trise' '0.9*vp' ++ 'drise+0.8*trise' 'vp' ++ 'period+dfall-0.8*tfall' 'vp' ++ r='dfall-0.8*tfall' + +x1 in out inv pw=60 nw=20 +c1 out gnd 220fF + +.tran 1ps 4ns + +.meas tran inv_delay trig v(in) val='vp/2' fall=1 targ v(out) val='vp/2' rise=1 +.meas tran inv_delay2 trig v(in) val='vp/2' td=1n fall=1 targ v(out) val='vp/2' rise=1 +.meas tran test_data1 trig AT = 1n targ v(out) val='vp/2' rise=3 +.meas tran out_slew trig v(out) val='0.2*vp' rise=2 targ v(out) val='0.8*vp' rise=2 +.meas tran delay_chk param='(inv_delay < 100ps) ? 1 : 0' +.meas tran skew when v(out)=0.6 +.meas tran skew2 when v(out)=skew_meas +.meas tran skew3 when v(out)=skew_meas fall=2 +.meas tran skew4 when v(out)=skew_meas fall=LAST +.meas tran skew5 FIND v(out) AT=2n +.meas tran v0_min min i(v0) from='dfall' to='dfall+period' +.meas tran i_v0_min min_at i(v0) from='dfall' to='dfall+period' +.meas tran v0_avg avg i(v0) from='dfall' to='dfall+period' +.meas tran v0_integ integ i(v0) from='dfall' to='dfall+period' +.meas tran v0_rms rms i(v0) from='dfall' to='dfall+period' + +.end + diff --git a/Windows/spice/examples/measure/mos-meas-dc-control.sp b/Windows/spice/examples/measure/mos-meas-dc-control.sp new file mode 100644 index 00000000..9869cf60 --- /dev/null +++ b/Windows/spice/examples/measure/mos-meas-dc-control.sp @@ -0,0 +1,49 @@ +***** Single NMOS Transistor .measure (Id-Vd) *** +* Altering device witdth leads to select new model due to binning limits. +* New model has artificially thick gate oxide (changed from default 3n to 4n) +* to demonstrate the effect. +m1 d g s b nch L=0.6u W=9.99u ; W is slightly below binning limit + +vgs g 0 3.5 +vds d 0 3.5 +vs s 0 dc 0 +vb b 0 dc 0 + +* model binning +* uses default parameters, except toxe +.model nch.1 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u toxe=3n ) +.model nch.2 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u toxe=4n) + +.control +dc vds 0 3.5 0.05 vgs 3.5 0.5 -0.5 +meas dc is_at FIND i(vs) AT=1 +meas dc is_max max i(vs) +meas dc vds_at2 when i(vs)=10m +* starting with branches in descending order of vgs +* trig ist the first branch which crosses 5mA +* Targ is the first branch crossing 10mA +meas dc vd_diff1 trig i(vs) val=0.005 rise=1 targ i(vs) val=0.01 rise=1 +* trig ist the first branch which crosses 5mA +* Targ is the second branch crossing 10mA +meas dc vd_diff2 trig i(vs) val=0.005 rise=2 targ i(vs) val=0.01 rise=2 +alter @m1[w]=10.01u ; W is slightly above binning limit +dc vds 0 3.5 0.05 vgs 3.5 0.5 -0.5 +meas dc is_at FIND i(vs) AT=1 +meas dc is_max max i(vs) +meas dc vds_at2 when i(vs)=10m +meas dc vd_diff1 trig i(vs) val=0.005 rise=1 targ i(vs) val=0.01 rise=1 +* there is only one branch crossing 10mA, so this second meas fails with targ out of interval +echo +echo The next one will fail (no two branches crossing 10 mA): +meas dc vd_diff2 trig i(vs) val=0.005 rise=2 targ i(vs) val=0.01 rise=2 +*rusage all +plot dc1.i(vs) i(vs) +.endc + + +.end + + + + + diff --git a/Windows/spice/examples/measure/mos-meas-dc.sp b/Windows/spice/examples/measure/mos-meas-dc.sp new file mode 100644 index 00000000..eb3892db --- /dev/null +++ b/Windows/spice/examples/measure/mos-meas-dc.sp @@ -0,0 +1,37 @@ +***** Single NMOS Transistor .measure (Id-Vd) *** +m1 d g s b nch L=0.6u W=10.0u + +vgs g 0 3.5 +vds d 0 3.5 +vs s 0 dc 0 +vb b 0 dc 0 + +.dc vds 0 3.5 0.05 vgs 0.5 3.5 0.5 + +.print dc v(1) i(vs) + +* model binning +.model nch.1 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model nch.2 nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) +.model pch.1 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch.2 pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=10u wmax=100u ) + +.meas dc is_at FIND i(vs) AT=1 +.meas dc is_max max i(vs) from=0 to=3.5 +.meas dc vds_at2 when i(vs)=10m +.meas dc vd_diff1 trig i(vs) val=0.005 rise=1 targ i(vs) val=0.01 rise=1 +.meas dc vd_diff2 trig i(vs) val=0.005 rise=1 targ i(vs) val=0.01 rise=2 + +.control +run +*rusage all +plot i(vs) +.endc + + +.end + + + + + diff --git a/Windows/spice/examples/measure/rc-meas-ac-control.sp b/Windows/spice/examples/measure/rc-meas-ac-control.sp new file mode 100644 index 00000000..9b57929d --- /dev/null +++ b/Windows/spice/examples/measure/rc-meas-ac-control.sp @@ -0,0 +1,64 @@ +RC band pass example circuit +* This netlist demonstrates the following: +* global nodes (vdd, gnd) + +* .measure statements for delay and an example ternary operator + +* You can run the example circuit with this command: +* +* ngspice rc-meas-ac.sp + + +* global nodes +.global vdd gnd + +* autostop -- stop simulation early if .measure statements done +*.option autostop + +vin in gnd dc 0 ac 1 + +R1 in mid1 1k +c1 mid1 gnd 1n +C2 mid1 out 500p +R2 out gnd 1k + + +.control +ac DEC 10 1k 10MEG +meas ac vout_at FIND v(out) AT=1MEG +meas ac vout_atr FIND vr(out) AT=1MEG +meas ac vout_ati FIND vi(out) AT=1MEG +meas ac vout_atm FIND vm(out) AT=1MEG +meas ac vout_atp FIND vp(out) AT=1MEG +meas ac vout_atd FIND vdb(out) AT=1MEG +meas ac vout_max max v(out) from=1k to=10MEG +meas ac freq_at when v(out)=0.1 +meas ac vout_diff trig v(out) val=0.1 rise=1 targ v(out) val=0.1 fall=1 +meas ac fixed_diff trig AT = 10k targ v(out) val=0.1 rise=1 +meas ac vout_avg avg v(out) from=10k to=1MEG +meas ac vout_integ integ v(out) from=20k to=500k +meas ac freq_at2 when v(out)=0.1 fall=LAST +*meas ac bw_chk param='(vout_diff < 100k) ? 1 : 0' +if (vout_diff < 100k) + let bw_chk = 1 +else + let bw_chk = 0 +end +echo bw_chk = "$&bw_chk" +*meas ac bw_chk2 param='(vout_diff > 500k) ? 1 : 0' +if (vout_diff > 500k) + let bw_chk2 = 1 +else + let bw_chk2 = 0 +end +echo bw_chk2 = "$&bw_chk2" +meas ac vout_rms rms v(out) from=10 to=1G +*rusage all +plot v(out) +plot ph(v(out)) +plot mag(v(out)) +plot db(v(out)) +.endc + +.end + diff --git a/Windows/spice/examples/measure/rc-meas-ac.sp b/Windows/spice/examples/measure/rc-meas-ac.sp new file mode 100644 index 00000000..2d464ba5 --- /dev/null +++ b/Windows/spice/examples/measure/rc-meas-ac.sp @@ -0,0 +1,54 @@ +RC band pass example circuit +* This netlist demonstrates the following: +* global nodes (vdd, gnd) + +* .measure statements for delay and an example ternary operator + +* You can run the example circuit with this command: +* +* ngspice rc-meas-ac.sp + + +* global nodes +.global vdd gnd + +* autostop -- stop simulation early if .measure statements done +*.option autostop + +vin in gnd dc 0 ac 1 + +R1 in mid1 1k +c1 mid1 gnd 1n +C2 mid1 out 500p +R2 out gnd 1k + +.ac DEC 10 1k 10MEG + +.meas ac vout_at FIND v(out) AT=1MEG +.meas ac vout_atr FIND vr(out) AT=1MEG +.meas ac vout_ati FIND vi(out) AT=1MEG +.meas ac vout_atm FIND vm(out) AT=1MEG +.meas ac vout_atp FIND vp(out) AT=1MEG +.meas ac vout_atd FIND vdb(out) AT=1MEG +.meas ac vout_max max v(out) from=1k to=10MEG +.meas ac freq_at when v(out)=0.1 +.meas ac vout_diff trig v(out) val=0.1 rise=1 targ v(out) val=0.1 fall=1 +.meas ac fixed_diff trig AT = 10k targ v(out) val=0.1 rise=1 +.meas ac vout_avg avg v(out) from=10k to=1MEG +.meas ac vout_integ integ v(out) from=20k to=500k +.meas ac freq_at2 when v(out)=0.1 fall=LAST +.meas ac bw_chk param='(vout_diff < 100k) ? 1 : 0' +.meas ac bw_chk2 param='(vout_diff > 500k) ? 1 : 0' +.meas ac vout_rms rms v(out) from=10 to=1G + +.control +run +*rusage all +plot v(out) +plot ph(v(out)) +plot mag(v(out)) +plot db(v(out)) +.endc + +.end + diff --git a/Windows/spice/examples/measure/simple-meas-tran.sp b/Windows/spice/examples/measure/simple-meas-tran.sp new file mode 100644 index 00000000..0279c73f --- /dev/null +++ b/Windows/spice/examples/measure/simple-meas-tran.sp @@ -0,0 +1,57 @@ +File: simple-meas-tran.sp +* Simple .measurement examples +* transient simulation of two sine signals with different frequencies +vac1 1 0 DC 0 sin(0 1 1k 0 0) +R1 1 0 100k +vac2 2 0 DC 0 sin(0 1.2 0.9k 0 0) +.tran 10u 5m +* +.measure tran tdiff TRIG v(1) VAL=0.5 RISE=1 TARG v(1) VAL=0.5 RISE=2 +.measure tran tdiff TRIG v(1) VAL=0.5 RISE=1 TARG v(1) VAL=0.5 RISE=3 +.measure tran tdiff TRIG v(1) VAL=0.5 RISE=1 TARG v(1) VAL=0.5 FALL=1 +.measure tran tdiff TRIG v(1) VAL=0 FALL=3 TARG v(2) VAL=0 FALL=3 +.measure tran tdiff TRIG v(1) VAL=-0.6 CROSS=1 TARG v(2) VAL=-0.8 CROSS=1 +.measure tran tdiff TRIG AT=1m TARG v(2) VAL=-0.8 CROSS=3 +.measure tran teval WHEN v(2)=0.7 CROSS=LAST +.measure tran teval WHEN v(2)=v(1) FALL=LAST +.measure tran teval WHEN v(1)=v(2) CROSS=LAST +.measure tran yeval FIND v(2) WHEN v(1)=0.2 FALL=2 +.measure tran yeval FIND v(2) AT=2m +.measure tran ymax MAX v(2) from=2m to=3m +.measure tran tymax MAX_AT v(2) from=2m to=3m +.measure tran ypp PP v(1) from=2m to=4m +.measure tran yrms RMS v(1) from=2m to=3.5m +.measure tran yavg AVG v(1) from=2m to=4m +.measure tran yint INTEG v(2) from=2m to=3m +.param fval=5 +.measure tran yadd param='fval + 7' +.param vout_diff=50k +.meas tran bw_chk param='(vout_diff < 100k) ? 1 : 0' +.measure tran vtest find par('v(2)*v(1)') AT=2.3m +* +.control +run +plot v(1) v(2) +gnuplot ttt i(vac1) +meas tran tdiff TRIG v(1) VAL=0.5 RISE=1 TARG v(1) VAL=0.5 RISE=2 +meas tran tdiff TRIG v(1) VAL=0.5 RISE=1 TARG v(1) VAL=0.5 RISE=3 +meas tran tdiff TRIG v(1) VAL=0.5 RISE=1 TARG v(1) VAL=0.5 FALL=1 +meas tran tdiff TRIG v(1) VAL=0 FALL=3 TARG v(2) VAL=0 FALL=3 +meas tran tdiff TRIG v(1) VAL=-0.6 CROSS=1 TARG v(2) VAL=-0.8 CROSS=1 +meas tran tdiff TRIG AT=1m TARG v(2) VAL=-0.8 CROSS=3 +meas tran teval WHEN v(2)=0.7 CROSS=LAST +meas tran teval WHEN v(2)=v(1) FALL=LAST +meas tran teval WHEN v(1)=v(2) CROSS=LAST +meas tran yeval FIND v(2) WHEN v(1)=0.2 FALL=2 +meas tran yeval FIND v(2) AT=2m +meas tran ymax MAX v(2) from=2m to=3m +meas tran tymax MAX_AT v(2) from=2m to=3m +meas tran ypp PP v(1) from=2m to=4m +meas tran yrms RMS v(1) from=2m to=3.5m +meas tran yavg AVG v(1) from=2m to=4m +meas tran yint INTEG v(2) from=2m to=3m +meas tran ymax MAX v(2) from=2m to=3m +meas tran tmax WHEN v(2)=YMAX from=1m to=2m $ from..to.. not recognized! + +.endc +.end diff --git a/Windows/spice/examples/memristor/memristor.sp b/Windows/spice/examples/memristor/memristor.sp new file mode 100644 index 00000000..fdb9488a --- /dev/null +++ b/Windows/spice/examples/memristor/memristor.sp @@ -0,0 +1,65 @@ +Memristor with threshold +* Y. V. Pershin, M. Di Ventra: "SPICE model of memristive devices with threshold", +* arXiv:1204.2600v1 [physics.comp-ph] 12 Apr 2012, +* http://arxiv.org/pdf/1204.2600.pdf + +* Parameter selection and plotting by +* Holger Vogt 2012 + +.param stime=10n +.param vmax = 3 + +* send parameters to the .control section +.csparam stime={stime} +.csparam vmax={vmax} + +Xmem 1 0 memristor +* triangular sweep (you have to adapt the parameters to 'alter' command in the .control section) +*V1 1 0 DC 0 PWL(0 0 '0.25*stime' 'vmax' '0.5*stime' 0 '0.75*stime' '-vmax' 'stime' 0) +* sinusoidal sweep +V1 0 1 DC 0 sin(0 'vmax' '1/stime') + +* memristor model with limits and threshold +* "artificial" parameters alpha, beta, and vt. beta and vt adapted to basic programming frequency +* just to obtain nice results! +* You have to care for the physics and set real values! +.subckt memristor plus minus PARAMS: Ron=1K Roff=10K Rinit=7.0K alpha=0 beta=20e3/stime Vt=1.6 +Bx 0 x I='((f1(V(plus)-V(minus))> 0) && (V(x) < Roff)) ? {f1(V(plus)-V(minus))}: ((((f1(V(plus)-V(minus)) < 0) && (V(x)>Ron)) ? {f1(V(plus)-V(minus))}: 0)) ' +Vx x x1 dc 0 +Cx x1 0 1 IC={Rinit} +Rmem plus minus r={V(x)} +.func f1(y)={beta*y+0.5*(alpha-beta)*(abs(y+Vt)-abs(y-Vt))} +.ends + +* transient simulation same programming voltage but rising frequencies +.control +*** first simulation *** +* approx. 100 simulation points +let deltime = stime/100 +tran $&deltime $&stime uic +* plot i(v1) vs v(1) +*** you may just stop here *** +* raise the frequency +let newfreq = 1.1/stime +let newstime = stime/1.1 +let deltime = newstime/100 +alter @V1[sin] [ 0 $&vmax $&newfreq ] +tran $&deltime $&newstime uic +* raise the frequency even more +let newfreq = 1.4/stime +let newstime = stime/1.4 +let deltime = newstime/100 +alter @V1[sin] [ 0 $&vmax $&newfreq ] +tran $&deltime $&newstime uic +* the 'programming' currents +plot tran1.alli tran2.alli alli title 'Memristor with threshold: Internal Programming currents' +* resistance versus time plot +settype impedance xmem.x1 tran1.xmem.x1 tran2.xmem.x1 +plot xmem.x1 tran1.xmem.x1 tran2.xmem.x1 title 'Memristor with threshold: resistance' +* resistance versus voltage (change occurs only above threshold!) +plot xmem.x1 vs v(1) tran1.xmem.x1 vs tran1.v(1) tran2.xmem.x1 vs tran2.v(1) title 'Memristor with threshold: resistance' +* current through resistor for all plots versus voltage +plot i(v1) vs v(1) tran1.i(v1) vs tran1.v(1) tran2.i(v1) vs tran2.v(1) title 'Memristor with threshold: external current loops' +.endc + +.end diff --git a/Windows/spice/examples/memristor/memristor_x.sp b/Windows/spice/examples/memristor/memristor_x.sp new file mode 100644 index 00000000..1c283e73 --- /dev/null +++ b/Windows/spice/examples/memristor/memristor_x.sp @@ -0,0 +1,83 @@ +Memristor with threshold as XSPICE code model +* Y. V. Pershin, M. Di Ventra: "SPICE model of memristive devices with threshold", +* arXiv:1204.2600v1 [physics.comp-ph] 12 Apr 2012, +* http://arxiv.org/pdf/1204.2600.pdf + +* XSPICE code model, parameter selection and plotting by +* Holger Vogt 2012 + +* ac and op (dc) simulation just use start resistance rinit! + +.param stime=10n +.param vmax = 4.2 + +* send parameters to the .control section +.csparam stime={stime} +.csparam vmax={vmax} + +*Xmem 1 0 memristor +* triangular sweep (you have to adapt the parameters to 'alter' command in the .control section) +*V1 1 0 DC 0 PWL(0 0 '0.25*stime' 'vmax' '0.5*stime' 0 '0.75*stime' '-vmax' 'stime' 0) +* sinusoidal sweep for transient, dc for op, ac +V1 0 1 DC 0.1 ac 1 sin(0 'vmax' '1/stime') + +Rl 1 11 1k + +* memristor model with limits and threshold +* "artificial" parameters alpha, beta, and vt. beta and vt adapted to basic programming frequency +* just to obtain nice results! +* You have to care for the physics and set real values! +amen 11 2 memr +.model memr memristor (rmin=1k rmax=10k rinit=7k alpha=0 beta='20e3/stime' vt=1.6) + +vgnd 2 0 dc 0 + +* This is the original subcircuit model +.subckt memristor plus minus PARAMS: Ron=1K Roff=10K Rinit=7.0K alpha=0 beta=20e3/stime Vt=1.6 +Bx 0 x I='((f1(V(plus)-V(minus))> 0) && (V(x) < Roff)) ? {f1(V(plus)-V(minus))}: ((((f1(V(plus)-V(minus)) < 0) && (V(x)>Ron)) ? {f1(V(plus)-V(minus))}: 0)) ' +Vx x x1 dc 0 +Cx x1 0 1 IC={Rinit} +Rmem plus minus r={V(x)} +.func f1(y)={beta*y+0.5*(alpha-beta)*(abs(y+Vt)-abs(y-Vt))} +.ends + +* transient simulation same programming voltage but rising frequencies +.control +*** first simulation *** +op +print all +ac lin 101 1 100k +plot v(11) +* approx. 100 simulation points +let deltime = stime/100 +tran $&deltime $&stime uic +* plot i(v1) vs v(1) +*** you may just stop here *** +* raise the frequency +let newfreq = 1.2/stime +let newstime = stime/1.2 +let deltime = newstime/100 +alter @V1[sin] [ 0 $&vmax $&newfreq ] +tran $&deltime $&newstime uic +* raise the frequency even more +let newfreq = 1.4/stime +let newstime = stime/1.4 +let deltime = newstime/100 +alter @V1[sin] [ 0 $&vmax $&newfreq ] +tran $&deltime $&newstime uic +* the resistor currents +plot tran1.alli tran2.alli alli title 'Memristor with threshold: currents' +* calculate resistance (avoid dividing by zero) +let res = v(1)/(I(v1) + 1e-16) +let res1 = tran1.v(1)/(tran1.I(v1) + 1e-16) +let res2 = tran2.v(1)/(tran2.I(v1) + 1e-16) +* resistance versus time plot +settype impedance res res1 res2 +plot res vs time res1 vs tran1.time res2 vs tran2.time title 'Memristor with threshold: resistance' +* resistance versus voltage (change occurs only above threshold!) +plot res vs v(1) res1 vs tran1.v(1) res2 vs tran2.v(1) title 'Memristor with threshold: resistance' +* current through resistor for all plots versus voltage +plot i(v1) vs v(1) tran1.i(v1) vs tran1.v(1) tran2.i(v1) vs tran2.v(1) title 'Memristor with threshold: external current loops' +.endc + +.end diff --git a/Windows/spice/examples/numparam/example.cir b/Windows/spice/examples/numparam/example.cir new file mode 100644 index 00000000..6e13bc06 --- /dev/null +++ b/Windows/spice/examples/numparam/example.cir @@ -0,0 +1,16 @@ +* Param-example +.param amplitude= 1V + +.subckt myfilter in out rval=100k cval=100nF +Ra in p1 {2*rval} +Rb p1 out {2*rval} +C1 p1 0 {2*cval} +Ca in p2 {cval} +Cb p2 out {cval} +R1 p2 0 {rval} +.ends myfilter + +X1 input output myfilter rval=1k cval=1n +V1 input 0 AC {amplitude} + +.end diff --git a/Windows/spice/examples/numparam/pin.mod b/Windows/spice/examples/numparam/pin.mod new file mode 100644 index 00000000..b035cd2f --- /dev/null +++ b/Windows/spice/examples/numparam/pin.mod @@ -0,0 +1,33 @@ +* PIN model +* line 2 +* line 3 +* -- Summary ------------------------------- +* This is a simple spice model of a PIN diode. +* +* -- Description --------------------------- +* It is a three node device; one input node (relative to ground) and two +* output nodes (cathode and anode) +* + +* -- Model ---------------------------------- +.subckt SIMPLE_PIN input cathode anode resp=0.5 + +* Input photocurrent is modled by a voltage +* This generates a current using a linear voltage-controlled current source +Gin dk da input 0 {resp} +Rin input 0 1G +Cin input 0 {resp} + +* The pn-junction that generates this photocurrent in the real device is modelled +* here by a simple diode +Dpn da dk pndiode + +* terminal resistances +Ra anode da 0.001ohm +Rk cathode dk 0.001ohm + +* subsircuit models: +.MODEL pndiode D IS=0.974p RS=0.1 N=1.986196 BV=7.1 IBV=0.1n ++ CJO=99.2p VJ=0.455536 M=0.418717 TT=500n + +.ends diff --git a/Windows/spice/examples/numparam/pintest.cir b/Windows/spice/examples/numparam/pintest.cir new file mode 100644 index 00000000..80702e14 --- /dev/null +++ b/Windows/spice/examples/numparam/pintest.cir @@ -0,0 +1,32 @@ +* Test circuit for pin.mod + +*.include C:\Spice\tests\numparam\pin.mod +.include pin.mod + +* Photodiode supply +Vbias psu 0 10V + +* Light input is modeled by a voltage source that we can vary +Vlight input 0 2mW + +* The pin diode +Xpin input cathode anode SIMPLE_PIN resp=0.7 + +* monitor resistor +Rmon anode 0 1ohm + +* Quench restistor +Rq psu cathode 1k + +*.dc vlight 0 5mW 0.01mW + +.dc vlight 0 10mW 0.01mW + +.control +dc vlight 0 10mW 0.01mW +*write pintest.raw all +plot V(anode) +.endc + +.end + diff --git a/Windows/spice/examples/pss/colpitt_osc_pss.cir b/Windows/spice/examples/pss/colpitt_osc_pss.cir new file mode 100644 index 00000000..8d0583ae --- /dev/null +++ b/Windows/spice/examples/pss/colpitt_osc_pss.cir @@ -0,0 +1,22 @@ +Colpitt's Oscillator Circuit +* Colpitt is an harmonic oscillator (LC based) which use +* a capacitive partition of resonator to feed the single +* active device. +* Predicted frequency is about 3.30435e+06 Hz. + +* Models: +.model qnl npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) + +r1 1 0 1 +q1 2 1 3 qnl +vcc 4 0 5 +rl 4 2 750 +c1 2 3 500p +c2 4 3 4500p +l1 4 2 5uH +re 3 6 4.65k +vee 6 0 dc -10 pwl 0 0 1e-9 -10 + +*.tran 30n 12u +.pss 3.1e6 500e-6 3 256 10 50 5e-3 + diff --git a/Windows/spice/examples/pss/compl_cross_quad_osc_pss.cir b/Windows/spice/examples/pss/compl_cross_quad_osc_pss.cir new file mode 100644 index 00000000..b45e730d --- /dev/null +++ b/Windows/spice/examples/pss/compl_cross_quad_osc_pss.cir @@ -0,0 +1,35 @@ +Complimentary Cross Quad CMOS Oscillator +* Predicted frequency is 5.61224e+08 Hz. +* +* PLOT i1 + +* Supply +vdd vdd gnd 1.2 pwl 0 1.2 1e-9 1.2 +rdd vdd vdd_ana 70m +rgnd gnd gnd_ana 70m + +* Cross quad +mpsx v_plus v_minus vdd_ana vdd_ana pch w=10u l=0.1u +mnsx v_plus v_minus gnd_ana gnd_ana nch w=10u l=0.1u +mpdx v_minus v_plus vdd_ana vdd_ana pch w=10u l=0.1u +mndx v_minus v_plus gnd_ana gnd_ana nch w=10u l=0.1u + +* Lumped elements model of real inductor +ls v_plus i1 19.462n ic=0.06 +rs i1 v_minus 7.789 +cs v_plus v_minus 443f +coxs v_plus is 2.178p +coxd v_minus id 2.178p +rsis is gnd_ana 308 +rsid id gnd_ana 308 +csis is gnd_ana 51f +csid id gnd_ana 51f + +* Parallel capacitor to determine leading resonance +cp v_plus v_minus 3.4p + +.model nch nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) + +*.tran 0.05n 1u uic +.pss 500e6 1u 1 1024 10 10 5e-3 uic diff --git a/Windows/spice/examples/pss/hartley_osc_pss.cir b/Windows/spice/examples/pss/hartley_osc_pss.cir new file mode 100644 index 00000000..bd1eef3d --- /dev/null +++ b/Windows/spice/examples/pss/hartley_osc_pss.cir @@ -0,0 +1,21 @@ +Hartley's Oscillator Circuit +* Hartley is an harmonic oscillator (LC based) which use +* an inductive partition of resonator to feed the single +* active device. Output is taken on node 2. +* Prediceted frequency is about 121.176 Hz. +* +* PLOT V(3) + +* Models: +.model qnl npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) + +vcc 1 0 5 pwl 0 0 1e-5 5 +r1 1 2 0.2k +q1 2 3 0 qnl +c1 3 4 633n +l1 3 0 1.5 +l2 0 4 500m +r2 4 2 100 + +*.tran 300n 50m +.pss 50 200e-3 2 1024 11 10 5e-3 uic diff --git a/Windows/spice/examples/pss/ring_osc_pss.cir b/Windows/spice/examples/pss/ring_osc_pss.cir new file mode 100644 index 00000000..d2649605 --- /dev/null +++ b/Windows/spice/examples/pss/ring_osc_pss.cir @@ -0,0 +1,29 @@ +Ring CMOS Oscillator +* Oscillation is taken on node "bout". +* Predicted frequency is 3.8e+09 Hz. +* +* PLOT bout + +* Supply +vdd vdd gnd 1.2 pwl 0 1.2 1e-9 1.2 +rdd vdd vdd_ana 70m +rgnd gnd gnd_ana 70m + +* Inverter +mp1 inv1 inv3 vdd_ana vdd_ana pch w=10u l=0.18u +mn1 inv1 inv3 gnd_ana gnd_ana nch w=10u l=0.18u +mp2 inv2 inv1 vdd_ana vdd_ana pch w=10u l=0.18u +mn2 inv2 inv1 gnd_ana gnd_ana nch w=10u l=0.18u +mp3 inv3 inv2 vdd_ana vdd_ana pch w=10u l=0.18u +mn3 inv3 inv2 gnd_ana gnd_ana nch w=10u l=0.18u + +* Buffer out +mp4 bout inv3 vdd_ana vdd_ana pch w=10u l=0.18u +mn4 bout inv3 gnd_ana gnd_ana nch w=10u l=0.18u + +.model nch nmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) +.model pch pmos ( version=4.4 level=54 lmin=0.1u lmax=20u wmin=0.1u wmax=10u ) + +*.tran 0.005n 100n +*.plot tran v(4) +.pss 624e6 500n 1 1024 10 5 5e-3 uic diff --git a/Windows/spice/examples/pss/vackar_osc_pss.cir b/Windows/spice/examples/pss/vackar_osc_pss.cir new file mode 100644 index 00000000..13ce1a12 --- /dev/null +++ b/Windows/spice/examples/pss/vackar_osc_pss.cir @@ -0,0 +1,21 @@ +Vackar's Oscillator Circuit +* Vackar is a derivation of Colpitt's oscillator (LC based). +* Oscillation is taken on node 4. +* Predicted frequency is 1.91803e+06Hz. + +* Models: +.model qnl npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) + +vcc 1 0 5 pwl 0 10 1e-9 5 +lrfc 1 2 100u +cdec 2 0 7n +q1 3 2 0 qnl +rb 3 0 4700 +c1 3 4 100p +c2 3 0 600p +c0 4 0 1n +l1 4 1 6.2u + +*.tran 30n 12u +*.plot tran v(4) +.pss 1e6 10e-6 4 1024 10 50 5e-3 uic diff --git a/Windows/spice/examples/pss/vdp_osc_pss.cir b/Windows/spice/examples/pss/vdp_osc_pss.cir new file mode 100644 index 00000000..f4e66815 --- /dev/null +++ b/Windows/spice/examples/pss/vdp_osc_pss.cir @@ -0,0 +1,17 @@ +Van Der Pol Oscillator +* Prediceted frequency is about 4.54167e+06 Hz. + +* Third harmonic is high as the first one +Ba gib 0 I=-1e-2*v(gib,0)+1e-2*v(gib,0)^3 +* Q is about 10 +La gib 0 1.2e-6 +Ra gib 0 158.113 +Ca gib 0 1e-9 ic=0.5 +*La gib 0 1e-9 +*Ra gib 0 474.6 +*Ca gib 0 1e-9 ic=0.5 +* Ghost node... Test for my PSS! +Rb bad 0 1k + +*.tran 1e-9 150e-6 uic +.pss 0.8e6 130e-6 1 50 10 50 5e-3 uic diff --git a/Windows/spice/examples/snapshot/adder_mos.cir b/Windows/spice/examples/snapshot/adder_mos.cir new file mode 100644 index 00000000..603f1f11 --- /dev/null +++ b/Windows/spice/examples/snapshot/adder_mos.cir @@ -0,0 +1,26 @@ + Example: snsave +* load a circuit (including transistor models and .tran command) +* starts transient simulation until stop point +* store intermediate data to file +* begin with editing the file location +* to be run with 'ngspice adder_mos.cir' + +.include adder_mos_circ.cir + +.control +*cd to where all files are located +cd D:\Spice_general\ngspice\examples\snapshot +set noaskquit +unset ngdebug +set noinit +save vcc#branch 10 +iplot v(10) +*interrupt condition for the simulation +stop when time > 500n +* simulate +run +* store snapshot to file +snsave adder500.snap +.endc + +.END diff --git a/Windows/spice/examples/snapshot/adder_mos_circ.cir b/Windows/spice/examples/snapshot/adder_mos_circ.cir new file mode 100644 index 00000000..b0a591e4 --- /dev/null +++ b/Windows/spice/examples/snapshot/adder_mos_circ.cir @@ -0,0 +1,61 @@ +* ADDER - 4 BIT ALL-NAND-GATE BINARY ADDER + +*** SUBCIRCUIT DEFINITIONS +.SUBCKT NAND in1 in2 out VDD +* NODES: INPUT(2), OUTPUT, VCC +M1 out in2 Vdd Vdd p1 W=3u L=1u +M2 net.1 in2 0 0 n1 W=3u L=2u +M3 out in1 Vdd Vdd p1 W=3u L=1u +M4 out in1 net.1 0 n1 W=3u L=2u +.ENDS NAND + +.SUBCKT ONEBIT 1 2 3 4 5 6 +* NODES: INPUT(2), CARRY-IN, OUTPUT, CARRY-OUT, VCC +X1 1 2 7 6 NAND +X2 1 7 8 6 NAND +X3 2 7 9 6 NAND +X4 8 9 10 6 NAND +X5 3 10 11 6 NAND +X6 3 11 12 6 NAND +X7 10 11 13 6 NAND +X8 12 13 4 6 NAND +X9 11 7 5 6 NAND +.ENDS ONEBIT + +.SUBCKT TWOBIT 1 2 3 4 5 6 7 8 9 +* NODES: INPUT - BIT0(2) / BIT1(2), OUTPUT - BIT0 / BIT1, +* CARRY-IN, CARRY-OUT, VCC +X1 1 2 7 5 10 9 ONEBIT +X2 3 4 10 6 8 9 ONEBIT +.ENDS TWOBIT + +.SUBCKT FOURBIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +* NODES: INPUT - BIT0(2) / BIT1(2) / BIT2(2) / BIT3(2), +* OUTPUT - BIT0 / BIT1 / BIT2 / BIT3, CARRY-IN, CARRY-OUT, VCC +X1 1 2 3 4 9 10 13 16 15 TWOBIT +X2 5 6 7 8 11 12 16 14 15 TWOBIT +.ENDS FOURBIT + +*** DEFINE NOMINAL CIRCUIT +VCC 99 0 DC 3.3V +VIN1A 1 0 PULSE(0 3 0 10NS 10NS 10NS 50NS) +VIN1B 2 0 PULSE(0 3 0 10NS 10NS 20NS 100NS) +VIN2A 3 0 PULSE(0 3 0 10NS 10NS 40NS 200NS) +VIN2B 4 0 PULSE(0 3 0 10NS 10NS 80NS 400NS) +VIN3A 5 0 PULSE(0 3 0 10NS 10NS 160NS 800NS) +VIN3B 6 0 PULSE(0 3 0 10NS 10NS 320NS 1600NS) +VIN4A 7 0 PULSE(0 3 0 10NS 10NS 640NS 3200NS) +VIN4B 8 0 PULSE(0 3 0 10NS 10NS 1280NS 6400NS) +X1 1 2 3 4 5 6 7 8 9 10 11 12 0 13 99 FOURBIT +*RBIT0 9 0 100K +*RBIT1 10 0 100K +*RBIT2 11 0 100K +*RBIT3 12 0 100K +*RCOUT 13 0 100K + +.TRAN 1NS 1000NS + +.model n1 nmos level=8 version=3.3.0 +.model p1 pmos level=8 version=3.3.0 + +.END diff --git a/Windows/spice/examples/snapshot/adder_snload.script b/Windows/spice/examples/snapshot/adder_snload.script new file mode 100644 index 00000000..f5556347 --- /dev/null +++ b/Windows/spice/examples/snapshot/adder_snload.script @@ -0,0 +1,15 @@ +* SCRIPT: ADDER - 4 BIT BINARY +* script to reload circuit and continue the simulation +* begin with editing the file location +* to be started with 'ngspice adder_snload.script' + +.control +* cd to where all files are located +cd D:\Spice_general\ngspice\examples\snapshot +* load circuit and snpashot file +snload adder_mos_circ.cir adder500.snap +* continue simulation +resume +* plot some node voltages +plot v(10) v(11) v(12) +.endc diff --git a/Windows/spice/examples/transient-noise/README b/Windows/spice/examples/transient-noise/README new file mode 100644 index 00000000..ce9d4105 --- /dev/null +++ b/Windows/spice/examples/transient-noise/README @@ -0,0 +1,15 @@ +* noi-ring51-demo +ring oszillator with one noisy inverter +(requires 45min on a i7 860) + +* noi-sc-tr +noise source sampled + +* noise_vnoi +just a few 1/f and white noise sources + +* shot_ng +emulation of shot noise in a diode + +* rts-1.cir +random telegraph signals noise diff --git a/Windows/spice/examples/transient-noise/modelcard.nmos b/Windows/spice/examples/transient-noise/modelcard.nmos new file mode 100644 index 00000000..83ca9849 --- /dev/null +++ b/Windows/spice/examples/transient-noise/modelcard.nmos @@ -0,0 +1,41 @@ +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS ++Level= 8 version=3.3.0 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + + + + + + diff --git a/Windows/spice/examples/transient-noise/modelcard.pmos b/Windows/spice/examples/transient-noise/modelcard.pmos new file mode 100644 index 00000000..f50fe0a6 --- /dev/null +++ b/Windows/spice/examples/transient-noise/modelcard.pmos @@ -0,0 +1,31 @@ +.model P1 PMOS ++Level= 8 version=3.3.0 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + + + + diff --git a/Windows/spice/examples/transient-noise/noi-ring51-demo.cir b/Windows/spice/examples/transient-noise/noi-ring51-demo.cir new file mode 100644 index 00000000..8bc6f6ed --- /dev/null +++ b/Windows/spice/examples/transient-noise/noi-ring51-demo.cir @@ -0,0 +1,59 @@ +* 51 stage Ring-Osc. BSIM3, transient noise +* will need 45 min on a i7 860 with 4 threads + +* closes the loop between inverters xinv1 and xinv5 +vin in out dc 0.5 pulse 0.5 0 0.1n 5n 1 1 1 + +vdd dd 0 dc 0 pulse 0 2.2 0 1n 1 1 1 + +vss ss 0 dc 0 +ve sub 0 dc 0 + +vpe well 0 2.2 + +* noisy inverters +xiinv2 dd ss sub well out25 out50 inv253 +xiinv1 dd ss sub well in out25 inv253 + +*very noisy inverter +xiinv5 dd ss sub well out50 out inv1_2 +*output amplifier +xiinv11 dd ss sub well out25 bufout inv1 +cout bufout ss 0.2pF + +.option itl1=500 gmin=1e-15 itl4=10 noacct + +* .dc vdd 0 2 0.01 +.tran 0.01n 500n + +.save in bufout v(t1) + +.include modelcard.nmos +.include modelcard.pmos + +.include noilib-demo.h + +.control +unset ngdebug +* first run +save bufout $ needed for restricting memory usage +rusage +tran 8p 10000n +rusage +plot bufout xlimit 90n 95n +linearize +fft bufout +* next run +reset +save bufout +alter @v.xiinv5.vn1[trnoise] = [ 0 0 0 0 ] $ no noise +tran 8p 10000n +rusage +plot bufout xlimit 90n 95n +linearize +fft bufout +plot mag(bufout) mag(sp2.bufout) xlimit 0 2G ylimit 1e-11 0.1 ylog +.endc + + +.end diff --git a/Windows/spice/examples/transient-noise/noi-sc-tr.cir b/Windows/spice/examples/transient-noise/noi-sc-tr.cir new file mode 100644 index 00000000..19c738b7 --- /dev/null +++ b/Windows/spice/examples/transient-noise/noi-sc-tr.cir @@ -0,0 +1,53 @@ +* simple sample & hold, transient noise + +* switch control +* PULSE(V1 V2 TD TR TF PW PER) +vgate1 ga1 0 dc 0 pulse (0 1 0 10n 10n 90n 200n) + +Switch1 1 2 ga1 0 smodel1 + +* noisy input +* rms value white, time step, exponent < 2, rms value 1/f +vin 1 0 dc 0 trnoise 0.1m 0.2n 1 0.1m +*vin 1 0 dc 0 trnoise 0.1m 0.2n 0 0.1m + +* output +c2 2 0 10p + +* second S&H +vgate2 ga2 0 dc 0 pulse (0 1 140n 10n 10n 30n 200n) +*Buffer EXXXXXXX N+ N- NC+ NC- VALUE +e1 4 0 2 0 1 +Switch2 4 3 ga2 0 smodel2 +c3 3 0 10p + +.option itl1=500 gmin=1e-15 itl4=10 acct + +.model smodel1 sw vt=0.5 ron=100 +.model smodel2 sw vt=0.5 ron=100 + +.tran 0.4n 100u + + +.control +unset ngdebug +set filetype=ascii +rusage +run +rusage all +write noi_test.out v(1) +plot v(2) v(3) xlimit 4u 5u +plot v(ga1) v(ga2) xlimit 4u 5u +linearize +*rms v(1) +fft v(3) +plot mag(v(3)) loglog xlimit 1e4 1e8 ylimit 1e-10 1e-4 +setplot tran1 +linearize +psd 101 v(3) +plot mag(v(3)) xlimit 0 3e7 ylimit 0 10u + +.endc + + +.end diff --git a/Windows/spice/examples/transient-noise/noilib-demo.h b/Windows/spice/examples/transient-noise/noilib-demo.h new file mode 100644 index 00000000..84e119d3 --- /dev/null +++ b/Windows/spice/examples/transient-noise/noilib-demo.h @@ -0,0 +1,56 @@ + +* standard inverter made noisy +*.subckt inv1 dd ss sub well in out +*vn1 out outi dc 0 noise 0.1 0.3n 1.0 0.1 +*mn1 outi in ss sub n1 w=2u l=0.25u AS=3p AD=3p PS=4u PD=4u +*mp1 outi in dd well p1 w=4u l=0.25u AS=7p AD=7p PS=6u PD=6u +*.ends inv1 + +* standard inverter +.subckt inv1 dd ss sub well in out +mn1 out in ss sub n1 w=2u l=0.25u AS=3p AD=3p PS=4u PD=4u +mp1 out in dd well p1 w=4u l=0.25u AS=7p AD=7p PS=6u PD=6u +.ends inv1 + +* very noisy inverter (noise on vdd and well) +.subckt inv1_1 dd ss sub well in out +vn1 dd idd dc 0 trnoise 0.05 0.05n 1 0.05 +vn2 well iwell dc 0 trnoise 0.05 0.05n 1 0.05 +mn1 out in ss sub n1 w=2u l=0.25u AS=3p AD=3p PS=4u PD=4u +mp1 out in idd iwell p1 w=4u l=0.25u AS=7p AD=7p PS=6u PD=6u +*Cout out 0 0.1p +.ends inv1_1 + + +* another very noisy inverter +.subckt inv1_2 dd ss sub well in out +vn1 out outi dc 0 trnoise 0.05 8p 1.0 0.001 +mn1 outi in ss sub n1 w=2u l=0.25u AS=3p AD=3p PS=4u PD=4u +mp1 outi in dd well p1 w=4u l=0.25u AS=7p AD=7p PS=6u PD=6u +*Cout out 0 0.1p +.ends inv1_2 + +* another very noisy inverter with current souces parallel to transistor +.subckt inv13 dd ss sub well in outi +in1 ss outi dc 0 noise 200u 0.05n 1.0 50u +mn1 outi in ss sub n1 w=2u l=0.25u AS=3p AD=3p PS=4u PD=4u +in2 dd outi dc 0 noise 200u 0.05n 1.0 50u +mp1 outi in dd well p1 w=4u l=0.25u AS=7p AD=7p PS=6u PD=6u +*Cout out 0 0.1p +.ends inv13 + +.subckt inv53 dd ss sub well in out +xinv1 dd ss sub well in 1 inv1 +xinv2 dd ss sub well 1 2 inv1 +xinv3 dd ss sub well 2 3 inv1 +xinv4 dd ss sub well 3 4 inv1 +xinv5 dd ss sub well 4 out inv1 +.ends inv53 + +.subckt inv253 dd ss sub well in out +xinv1 dd ss sub well in 1 inv53 +xinv2 dd ss sub well 1 2 inv53 +xinv3 dd ss sub well 2 3 inv53 +xinv4 dd ss sub well 3 4 inv53 +xinv5 dd ss sub well 4 out inv53 +.ends inv253 diff --git a/Windows/spice/examples/transient-noise/noise_vnoi.cir b/Windows/spice/examples/transient-noise/noise_vnoi.cir new file mode 100644 index 00000000..a589d1a0 --- /dev/null +++ b/Windows/spice/examples/transient-noise/noise_vnoi.cir @@ -0,0 +1,31 @@ +* Random noise test +* internal noise source + +* one over f +VNOI1 1 0 DC 0 TRNOISE(0n 1n 1.7 1n) +VNOI2 2 0 DC 0 TRNOISE(0n 1n 1.4 1n) +VNOI3 3 0 DC 0 TRNOISE(0n 1n 1.0 1n) +VNOI4 4 0 DC 0 TRNOISE(0n 1n 0.5 1n) +* white +VNOI5 5 0 DC 0 TRNOISE(1n 1n 0 0) +* both +VNOI6 6 0 DC 0 TRNOISE(1n 1n 1 1n) + +* 250000 sample points +.tran 1n 250u + +.control +run +plot v(1) v(2) v(3) v(4) v(5) v(6) +plot v(1) v(2) v(3) v(4) v(5) v(6) xlimit 102.0u 102.01u ylimit -3n 3n +linearize +meas tran vavg5 AVG v(5) from=0 to=250u +meas tran vpp5 PP v(5) from=0 to=250u +meas tran vrms5 RMS v(5) from=0 to=250u +fft v(1) v(2) v(3) v(4) v(5) v(6) +plot mag(v(1)) mag(v(2)) mag(v(3)) mag(v(4)) mag(v(5)) loglog xlimit 1e3 1e9 +plot mag(v(6)) loglog xlimit 1e3 1e9 +.endc + +.end + diff --git a/Windows/spice/examples/transient-noise/rts-1.cir b/Windows/spice/examples/transient-noise/rts-1.cir new file mode 100644 index 00000000..f35256dc --- /dev/null +++ b/Windows/spice/examples/transient-noise/rts-1.cir @@ -0,0 +1,29 @@ +* white noise, 1/f noise, RTS noise + +* voltage source +VRTS2 13 12 DC 0 trnoise(0 0 0 0 5m 18u 30u) +VRTS3 11 0 DC 0 trnoise(0 0 0 0 10m 20u 40u) +VALL 12 11 DC 0 trnoise(1m 1u 1.0 0.1m 15m 22u 50u) + +VW1of 21 0 DC trnoise(1m 1u 1.0 0.1m) + +* current source +IRTS2 10 0 DC 0 trnoise(0 0 0 0 5m 18u 30u) +IRTS3 10 0 DC 0 trnoise(0 0 0 0 10m 20u 40u) +IALL 10 0 DC 0 trnoise(1m 1u 1.0 0.1m 15m 22u 50u) +R10 10 0 1 + +IW1of 9 0 DC trnoise(1m 1u 1.0 0.1m) +Rall 9 0 1 + +* 500000 sample points +.tran 1u 500u + +.control +run +plot v(13) v(21) +plot v(10) v(9) +.endc + +.end + diff --git a/Windows/spice/examples/transient-noise/shot_ng.cir b/Windows/spice/examples/transient-noise/shot_ng.cir new file mode 100644 index 00000000..ed06c81c --- /dev/null +++ b/Windows/spice/examples/transient-noise/shot_ng.cir @@ -0,0 +1,27 @@ +* Shot noise test with B source, diode +* voltage on device (diode, forward) +Vdev out 0 DC 0 PULSE(0.4 0.45 10u) +* diode, forward direction, to be modeled with noise +D1 mess 0 DMOD +.model DMOD D IS=1e-14 N=1 +X1 0 mess out ishot +* device between 1 and 2 +* new output terminals of device including noise: 1 and 3 +.subckt ishot 1 2 3 +* white noise source with rms 1V +VNG 0 11 DC 0 TRNOISE(1 1n 0 0) +*measure the current i(v1) +V1 2 3 DC 0 +* calculate the shot noise +* sqrt(2*current*q*bandwidth) +BI 1 3 I=sqrt(2*abs(i(v1))*1.6e-19*1e7)*v(11) +.ends ishot +* 20000 sample points +.tran 1n 20u +.control +run +plot (-1)*i(vdev) +meas tran vdev_rms avg i(vdev) from=0u to=9.9u +meas tran vdev_rms avg i(vdev) from=10.1u to=20u +.endc +.end diff --git a/Windows/spice/examples/various/FFT_Leakage.cir b/Windows/spice/examples/various/FFT_Leakage.cir new file mode 100644 index 00000000..b2bcfb7d --- /dev/null +++ b/Windows/spice/examples/various/FFT_Leakage.cir @@ -0,0 +1,53 @@ +FFT_Leakage_tests http://www.idea2ic.com/ +*=========Create_Signal================== +VTime VTime 0 DC 0 PWL( 0 0 1 1) +Vfreq Vfreq 0 DC 5.5k +BVAC IN 0 V = sin( 6.283185307179586*V(VFreq)*V(VTime)) +.control +*TRAN TSTEP TSTOP TSTART TMAX ?UIC? +tran 1u .999m 0 1u +set pensize = 2 +linearize +let numb2 = length(in) +print numb2 + +*=========Do_FFT_and_Plot_As_dB_Freq================== +let ac = in +j(0) +let ac_fft=fft(ac) +let numb_f2 = (numb2)/2 -1 +compose freq start = 1 stop = $&numb_f2 step =1 +compose vreal start = 1 stop = $&numb_f2 step =1 +compose vimag start = 1 stop = $&numb_f2 step =1 +let j = 0 +repeat $&numb_f2 +let freq[j] = freq[j] +let vreal[j] = 2*real(ac_fft[j+1]) +let vimag[j] = 2*imag(ac_fft[j+1]) +let j = j +1 +end +plot dB(abs(vreal+1f)) dB(abs(vimag+1f)) vs freq xlog + +*=========Extract_Error_Signal========================= +let funBin = 5k/1000 +let unvect = unitvec(numb2) +let fundspec = unvect*0 +j(0) +let fundspec[funBin] = real(ac_fft[funBin]) +j(imag(ac_fft[funBin] )) +let fundspec[numb2-funBin] = real(ac_fft[numb2-funBin]) +j(imag(ac_fft[numb2-funBin] )) +let fund = ifft(fundspec) +let dc_ofset = real(ac_fft[0]) +let thdspec = ac_fft +let thdspec[0] = 0 +j(0) +let thdspec[funBin] = 0 +j(0) +let thdspec[numb2-funBin] = 0 +j(0) +let thd = ifft(thdspec) +plot norm(in) norm(fund) norm(thd)/2 + +*=========Calc_Values========================= +let rms_Fund = sqrt(mean(fund*fund)) +let rms_THD = sqrt(mean(thd*thd)) +let THD_percent = 100*rms_THD/rms_Fund +let FREQ_Hz = VFreq[0] +echo "Freq_Hz=$&FREQ_Hz THD_percent=$&THD_percent Fund_rms=$&rms_Fund THD_rms=$&rms_THD " + +.endc +.end diff --git a/Windows/spice/examples/various/FFT_tests.cir b/Windows/spice/examples/various/FFT_tests.cir new file mode 100644 index 00000000..e7ede5ec --- /dev/null +++ b/Windows/spice/examples/various/FFT_tests.cir @@ -0,0 +1,123 @@ +FFT_tests http://www.idea2ic.com/ +.control +set units=degrees +let a = vector(16) +*plot a vs a +set pensize = 2 +*=========Need_a_complex_input==================== +let ac = a+j(0) +print a ac +*plot fft(a) vs a +*plot real(fft(ac)) imag(fft(ac)) vs a +* fft(a) fft(ac) + +*=========DC_Works==================== +let b = unitvec(16) +let bc = b+j(0) +*plot fft(b) vs a title DC_WORKS +*print fft(b) fft(bc) + +*=========DC_Plus_cos_Remove_AC==================== +let numb = length(b) +print numb + +let indx = 0 +repeat $&numb +let ac[indx]= cos(indx*360/8)+1 +j(0) +let indx = indx +1 +end + +let fftac=fft(ac) +plot real(fftac) imag(fftac) vs a title DC_Plus_COS + +let fftac[2]=(0,0) +let fftac[14]=(0,0) +let ifftac = ifft(fftac) +plot ifftac ac vs a title COS_REMOVED + +*=========DC_Plus_cos_Remove_DC==================== +let indx = 0 +repeat $&numb +let ac[indx]= cos(indx*360/8)+1 +j(0) +let indx = indx +1 +end + +let fftac=fft(ac) +let fftac[0]=(0,0) +let ifftac = ifft(fftac) +plot ifftac ac vs a title COS_With_DC_REMOVED + +*=========DC_Plus_sin_Remove_AC==================== +let indx = 0 +repeat $&numb +let ac[indx]= sin(indx*360/8)+1 +j(0) +let indx = indx +1 +end + +let fftac=fft(ac) +plot real(fftac) imag(fftac) vs a title DC_Plus_SIN + +let fftac[2]=(0,0) +let fftac[14]=(0,0) +let ifftac = ifft(fftac) +plot ifft(fftac) ac vs a title SIN_REMOVED + +*=========DC_Plus_sin_Remove_DC==================== +let indx = 0 +repeat $&numb +let ac[indx]= sin(indx*360/8)+1 +j(0) +let indx = indx +1 +end + +let fftac=fft(ac) +let fftac[0]=(0,0) +let ifftac = ifft(fftac) +plot ifft(fftac) ac vs a title SIN_With_DC_REMOVED + +*=========DC_Plus_cos_Nyqusit_Remove_DC==================== +let indx = 0 +repeat $&numb +let ac[indx]= cos(indx*360/2)+1 +j(0) +let indx = indx +1 +end + +plot ac vs a title Nyq_COS + +let fftac=fft(ac) +plot real(fftac) imag(fftac) vs a title Nyq_FREQ_COS +let fftac[0]=(0,0) +let ifftac = ifft(fftac) +plot ifft(fftac) ac vs a title COS_With_DC_REMOVED +*=========DC_Plus_sin_Nyqusit_Remove_DC==================== +let indx = 0 +repeat $&numb +let ac[indx]= sin(indx*360/2)+1 +j(0) +let indx = indx +1 +end + +plot ac vs a title Nyq_SIN + +let fftac=fft(ac) +plot real(fftac) imag(fftac) vs a title Nyq_FREQ_SIN +let fftac[0]=(0,0) +let ifftac = ifft(fftac) +plot ifft(fftac) ac vs a title COS_With_DC_REMOVED + +*=========DC_Plus_COS_Remove_One_BIN==================== +let indx = 0 +repeat $&numb +let ac[indx]= cos(indx*360/8)+1 +j(0) +let indx = indx +1 +end + +let fftac=fft(ac) +let fftac[2]=(0,0) +plot real(fftac) imag(fftac) vs a title DC_Plus_Cos + +let ifftac = ifft(fftac) +plot ifft(fftac) ac vs a title ONE_BIN_REMOVED + +plot real(ifft(fftac)) imag(ifft(fftac)) vs a title ONE_BIN_REMOVED + +.endc +.end diff --git a/Windows/spice/examples/various/adder_mos.cir b/Windows/spice/examples/various/adder_mos.cir new file mode 100644 index 00000000..9b85e093 --- /dev/null +++ b/Windows/spice/examples/various/adder_mos.cir @@ -0,0 +1,79 @@ + ADDER - 4 BIT ALL-NAND-GATE BINARY ADDER + +*** SUBCIRCUIT DEFINITIONS +.SUBCKT NAND in1 in2 out VDD +* NODES: INPUT(2), OUTPUT, VCC +M1 out in2 Vdd Vdd p1 W=7.5u L=0.35u pd=13.5u ad=22.5p ps=13.5u as=22.5p +M2 net.1 in2 0 0 n1 W=3u L=0.35u pd=9u ad=9p ps=9u as=9p +M3 out in1 Vdd Vdd p1 W=7.5u L=0.35u pd=13.5u ad=22.5p ps=13.5u as=22.5p +M4 out in1 net.1 0 n1 W=3u L=0.35u pd=9u ad=9p ps=9u as=9p +.ENDS NAND + +.SUBCKT ONEBIT 1 2 3 4 5 6 +* NODES: INPUT(2), CARRY-IN, OUTPUT, CARRY-OUT, VCC +X1 1 2 7 6 NAND +X2 1 7 8 6 NAND +X3 2 7 9 6 NAND +X4 8 9 10 6 NAND +X5 3 10 11 6 NAND +X6 3 11 12 6 NAND +X7 10 11 13 6 NAND +X8 12 13 4 6 NAND +X9 11 7 5 6 NAND +.ENDS ONEBIT + +.SUBCKT TWOBIT 1 2 3 4 5 6 7 8 9 +* NODES: INPUT - BIT0(2) / BIT1(2), OUTPUT - BIT0 / BIT1, +* CARRY-IN, CARRY-OUT, VCC +X1 1 2 7 5 10 9 ONEBIT +X2 3 4 10 6 8 9 ONEBIT +.ENDS TWOBIT + +.SUBCKT FOURBIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +* NODES: INPUT - BIT0(2) / BIT1(2) / BIT2(2) / BIT3(2), +* OUTPUT - BIT0 / BIT1 / BIT2 / BIT3, CARRY-IN, CARRY-OUT, VCC +X1 1 2 3 4 9 10 13 16 15 TWOBIT +X2 5 6 7 8 11 12 16 14 15 TWOBIT +.ENDS FOURBIT + +*** POWER +VCC 99 0 DC 3.3V + +*** ALL INPUTS +VIN1A 1 0 DC 0 PULSE(0 3 0 5NS 5NS 20NS 50NS) +VIN1B 2 0 DC 0 PULSE(0 3 0 5NS 5NS 30NS 100NS) +VIN2A 3 0 DC 0 PULSE(0 3 0 5NS 5NS 50NS 200NS) +VIN2B 4 0 DC 0 PULSE(0 3 0 5NS 5NS 90NS 400NS) +VIN3A 5 0 DC 0 PULSE(0 3 0 5NS 5NS 170NS 800NS) +VIN3B 6 0 DC 0 PULSE(0 3 0 5NS 5NS 330NS 1600NS) +VIN4A 7 0 DC 0 PULSE(0 3 0 5NS 5NS 650NS 3200NS) +VIN4B 8 0 DC 0 PULSE(0 3 0 5NS 5NS 1290NS 6400NS) + +*** DEFINE NOMINAL CIRCUIT +X1 1 2 3 4 5 6 7 8 9 10 11 12 0 13 99 FOURBIT + +.option noinit acct +.TRAN 500p 6400NS +* save inputs +.save V(1) V(2) V(3) V(4) V(5) V(6) V(7) V(8) + +* use BSIM3 model with default parameters +.model n1 nmos level=49 version=3.3.0 +.model p1 pmos level=49 version=3.3.0 +*.include ./Modelcards/modelcard32.nmos +*.include ./Modelcards/modelcard32.pmos + +.control +pre_set strict_errorhandling +unset ngdebug +*save outputs and specials +save x1.x1.x1.7 V(9) V(10) V(11) V(12) V(13) +run +display +* plot the inputs, use offset to plot on top of each other +plot v(1) v(2)+4 v(3)+8 v(4)+12 v(5)+16 v(6)+20 v(7)+24 v(8)+28 +* plot the outputs, use offset to plot on top of each other +plot v(9) v(10)+4 v(11)+8 v(12)+12 v(13)+16 +.endc + +.END diff --git a/Windows/spice/examples/various/agauss_test.cir b/Windows/spice/examples/various/agauss_test.cir new file mode 100644 index 00000000..c2532751 --- /dev/null +++ b/Windows/spice/examples/various/agauss_test.cir @@ -0,0 +1,48 @@ +* agauss test in ngspice +* generate a sequence of gaussian distributed random numbers. +* test the distribution by sorting the numbers into +* a histogram (buckets) +* chapt. 17.8.6 +.control + define agauss(nom, avar, sig) (nom + avar/sig * sgauss(0)) + let mc_runs = 200 + let run = 0 + let no_buck = 8 $ number of buckets + let bucket = unitvec(no_buck) $ each element contains 1 + let delta = 3e-11 $ width of each bucket, depends + $ on avar and sig + let lolimit = 1e-09 - 3*delta + let hilimit = 1e-09 + 3*delta + + dowhile run < mc_runs + let val = agauss(1e-09, 1e-10, 3) $ get the random number + if (val < lolimit) + let bucket[0] = bucket[0] + 1 $ 'lowest' bucket + end + let part = 1 + dowhile part < (no_buck - 1) + if ((val < (lolimit + part*delta)) & ++ (val > (lolimit + (part-1)*delta))) + let bucket[part] = bucket[part] + 1 + break + end + let part = part + 1 + end + if (val > hilimit) +* 'highest' bucket + let bucket[no_buck - 1] = bucket[no_buck - 1] + 1 + end + let run = run + 1 + end + + let part = 0 + dowhile part < no_buck + let value = bucket[part] - 1 + set value = "$&value" +* print the buckets' contents + echo $value + let part = part + 1 + end + +.endc +.end diff --git a/Windows/spice/examples/various/gain_stage.cir b/Windows/spice/examples/various/gain_stage.cir new file mode 100644 index 00000000..adc22bfb --- /dev/null +++ b/Windows/spice/examples/various/gain_stage.cir @@ -0,0 +1,34 @@ +** MOSFET Gain Stage (AC): Benchmarking Implementation of BSIM4.0.0 +** by Weidong Liu 5/16/2000. +** output redirection into file +** chapter 17.8.8 + +M1 3 2 0 0 N1 L=1u W=4u +Rsource 1 2 100k +Rload 3 vdd 25k +Vdd vdd 0 1.8 +Vin 1 0 1.2 ac 0.1 + +.control +ac dec 10 100 1000Meg +plot v(2) v(3) +let flen = length(frequency) $ length of the vector +let loopcounter = 0 +echo output test > text.txt $ start new file test.txt +* loop +while loopcounter lt flen + let vout2 = v(2)[loopcounter] $ generate a single point complex vector + let vout2re = real(vout2) $ generate a single point real vector + let vout2im = imag(vout2) $ generate a single point imaginary vector + let vout3 = v(3)[loopcounter] $ generate a single point complex vector + let vout3re = real(vout3) $ generate a single point real vector + let vout3im = imag(vout3) $ generate a single point imaginary vector + let freq = frequency[loopcounter] $ generate a single point vector + echo bbb "$&freq" "$&vout2re" "$&vout2im" "$&vout3re" "$&vout3im" >> ++text.txt $ append text and data to file (continued fromm line above) + let loopcounter = loopcounter + 1 +end +.endc + +.MODEL N1 NMOS LEVEL=14 VERSION=4.3.0 TNOM=27 +.end diff --git a/Windows/spice/examples/various/modelcard.nmos b/Windows/spice/examples/various/modelcard.nmos new file mode 100644 index 00000000..9a9bd56c --- /dev/null +++ b/Windows/spice/examples/various/modelcard.nmos @@ -0,0 +1,34 @@ +.model N1 NMOS ++Level= 8 version=3.3.0 ++Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++Lw = 0 Lwl = 0 Lln = .316394 ++Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 ++vgs_max=4 vds_max=4 vbs_max=4 diff --git a/Windows/spice/examples/various/modelcard.pmos b/Windows/spice/examples/various/modelcard.pmos new file mode 100644 index 00000000..1f67f274 --- /dev/null +++ b/Windows/spice/examples/various/modelcard.pmos @@ -0,0 +1,29 @@ +.model P1 PMOS ++Level= 8 version=3.3.0 ++Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 ++vgs_max=4 vds_max=4 vbs_max=4 diff --git a/Windows/spice/examples/various/nic_soa.cir b/Windows/spice/examples/various/nic_soa.cir new file mode 100644 index 00000000..5752d99d --- /dev/null +++ b/Windows/spice/examples/various/nic_soa.cir @@ -0,0 +1,39 @@ +CMOS NIC +* +.subckt osc_cmos ib_osz lc ra vdd vss +m16 ib_osz ib_osz vss vss n1 w=20u l=1u m=8 +m15 ra ib_osz vss vss n1 w=20u l=1u m=2 +m8 net99 net95 ra ra n1 w=20u l=1u m=2 +m1 net95 net95 net93 net93 n1 w=20u l=1u m=2 +m25 net99 net99 vdd vdd p1 w=3.3u l=0.5u m=1 +m5 net99 net99 vdd vdd p1 w=20u l=1u m=5 +m4 net95 net99 vdd vdd p1 w=20u l=1u m=5 +r23 net99 vss r=38K +r18 net93 lc r=10 +.ends osc_cmos +* +.subckt psens LC +R1 LC P001 40K +L1 LC P002 14.9u +R2 P002 0 0.55 +L2 P001 0 1.4m +.ends psens +* +xi36 bias lc ra vdd 0 osc_cmos +v39 vdd 0 dc=3.5 pulse ( 0 3.5 10u 10n 10n 1 2 ) +r4 ra 0 3.972K +c23 lc 0 1.8n +i37 vdd bias dc=1u +* +xi18 lc psens +* +.option warn=1 +.control +tran 1u 1m 0 50n +plot v(LC) +.endc +* +.include modelcard.nmos +.include modelcard.pmos +* +.end diff --git a/Windows/spice/examples/various/param_sweep.cir b/Windows/spice/examples/various/param_sweep.cir new file mode 100644 index 00000000..79d5869e --- /dev/null +++ b/Windows/spice/examples/various/param_sweep.cir @@ -0,0 +1,29 @@ +parameter sweep +* resistive divider, R1 swept from start_r to stop_r +* replaces .STEP R1 1k 10k 1k +* chapter 16.13.4.2 + +R1 1 2 1k +R2 2 0 1k + +VDD 1 0 DC 1 +.dc VDD 0 1 .1 + +.control +let start_r = 1k +let stop_r = 10k +let delta_r = 1k +let r_act = start_r +* loop +while r_act le stop_r + alter r1 r_act + run + write dc-sweep.out v(2) + set appendwrite + let r_act = r_act + delta_r +end +plot dc1.v(2) dc2.v(2) dc3.v(2) dc4.v(2) dc5.v(2) ++ dc6.v(2) dc7.v(2) dc8.v(2) dc9.v(2) dc10.v(2) +.endc + +.end diff --git a/Windows/spice/examples/xspice/analog_models1_transient.sp b/Windows/spice/examples/xspice/analog_models1_transient.sp new file mode 100644 index 00000000..a74bd6ca --- /dev/null +++ b/Windows/spice/examples/xspice/analog_models1_transient.sp @@ -0,0 +1,65 @@ +Code Model Test - Transient: gain, summer, mult, divide, pwl +* +* +*** analysis type *** +.control +tran .1s 10s +plot v(1) v(10) v(20) v(30) v(40) v(50) +.endc +* +*** input sources *** +* +v1 1 0 DC PWL(0 0 10 10) +* +v2 2 0 DC 2 +* +*** gain block *** +a1 1 10 gain1 +.model gain1 gain (in_offset=0.0 gain=2.0 out_offset=0.0) +* +* +*** summer block *** +a2 [1 2] 20 summer1 +.model summer1 summer (in_offset=[0.0 0.0] in_gain=[1.0 1.0] ++ out_gain=1.0 out_offset=0.0) +* +* +*** mult block *** +a3 [1 1] 30 mult1 +.model mult1 mult (in_offset=[0.0 0.0] in_gain=[1.0 1.0] ++ out_gain=0.1 out_offset=0.0) +* +* +*** divider block *** +a4 2 1 40 divide1 +.model divide1 divide (num_offset=0.0 num_gain=1.0 den_offset=0.0 den_gain=1.0 ++ den_lower_limit=0.1 den_domain=1.0e-16 ++ fraction=false out_gain=1.0 out_offset=0.0) +* +* +*** pwl block *** +a5 1 50 pwl1 +.model pwl1 pwl (x_array=[-1.0 0.0 1.0 2.0 3.0 4.0 5.0] ++ y_array=[ 0.0 0.0 1.0 4.0 4.5 5.0 5.0] ++ input_domain=0.01 fraction=TRUE) +* +* +*** resistors to ground *** +r1 1 0 1k +r2 2 0 1k +r3 3 0 1k +* +r10 10 0 1k +r20 20 0 1k +r30 30 0 1k +r40 40 0 1k +r50 50 0 1k +* +* +.end + + + + + + diff --git a/Windows/spice/examples/xspice/delta-sigma/README b/Windows/spice/examples/xspice/delta-sigma/README new file mode 100644 index 00000000..3ce6ce63 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/README @@ -0,0 +1,25 @@ +A simple delta sigma converter using XSPICE +according to +Schreier, Temes: Understanding Delta-Sigma Data Converters, 2005 +Fig. 2.13, p. 31; Fig. 2.27, p.58 + + +delta-sigma-1.cir +converter complete, tested against sine input + +mod1-ct.cir +first order modulator +consists of analog continuous time integrator and +digitally latched comparator + +count-latch-dac.cir +contains subcircuits of +10 bit digital latch +10 bit counter, non-revolving, saturating +simple 10 bit DAC with analog B source + +mod1-ct-test.cir +test of modulator with sine input, shows noise shaping 20dB/decade + +counter-test.cir +simple test with reset diff --git a/Windows/spice/examples/xspice/delta-sigma/count-latch-dac.cir b/Windows/spice/examples/xspice/delta-sigma/count-latch-dac.cir new file mode 100644 index 00000000..7a8c7d90 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/count-latch-dac.cir @@ -0,0 +1,81 @@ +* counter, latch DAC + +* 10 bit synchronous digital counter +* inhibit at overflow, no revolving +.subckt count10 din dinb dclk drs dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 + +* j k clk set reset out nout +ajk1 din dinb diclk ds1 drs dout1 dnout1 jkflop +ajk2 dout1 dout1 diclk ds2 drs dout2 dnout2 jkflop +ajk3 djk3 djk3 diclk ds3 drs dout3 dnout3 jkflop +ajk4 djk4 djk4 diclk ds4 drs dout4 dnout4 jkflop +ajk5 djk5 djk5 diclk ds1 drs dout5 dnout5 jkflop +ajk6 djk6 djk6 diclk ds2 drs dout6 dnout6 jkflop +ajk7 djk7 djk7 diclk ds3 drs dout7 dnout8 jkflop +ajk8 djk8 djk8 diclk ds4 drs dout8 dnout8 jkflop +ajk9 djk9 djk9 diclk ds3 drs dout9 dnout9 jkflop +ajk10 djk10 djk10 diclk ds4 drs dout10 dnout10 jkflop + +aand1 [dout1 dout2] djk3 and1 +aand2 [dout1 dout2 dout3] djk4 and1 +aand3 [dout1 dout2 dout3 dout4] djk5 and1 +aand4 [dout1 dout2 dout3 dout4 dout5] djk6 and1 +aand5 [dout1 dout2 dout3 dout4 dout5 dout6] djk7 and1 +aand6 [dout1 dout2 dout3 dout4 dout5 dout6 dout7] djk8 and1 +aand7 [dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8] djk9 and1 +aand8 [dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9] djk10 and1 + +* inhibit revolving of counter, just let it saturate +* (footnote p. 57) +aand_all [dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10] dinhibit nand1 +aandclk [dclk dinhibit] diclk and1 + + +.model nand1 d_nand(rise_delay = 1e-9 fall_delay = 1e-9 ++ input_load = 0.5e-12) + +.model and1 d_and(rise_delay = 1e-9 fall_delay = 1e-9 ++ input_load = 0.5e-12) + +.model jkflop d_jkff(clk_delay = 1.0e-9 set_delay = 1e-9 ++ reset_delay = 1e-9 ic = 0 rise_delay = 1.0e-9 ++ fall_delay = 1e-9) + +.ends count 10 + +** 10 bit edge triggered latch +.subckt latch10 din1 din2 din3 din4 din5 din6 din7 din8 din9 din10 ++ dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 dclk + +*data clk set reset out nout +aff1 din1 dclk dzero dzero dout1 dnout1 flop1 +aff2 din2 dclk dzero dzero dout2 dnout2 flop1 +aff3 din3 dclk dzero dzero dout3 dnout3 flop1 +aff4 din4 dclk dzero dzero dout4 dnout4 flop1 +aff5 din5 dclk dzero dzero dout5 dnout5 flop1 +aff6 din6 dclk dzero dzero dout6 dnout6 flop1 +aff7 din7 dclk dzero dzero dout7 dnout7 flop1 +aff8 din8 dclk dzero dzero dout8 dnout8 flop1 +aff9 din9 dclk dzero dzero dout9 dnout9 flop1 +aff10 din10 dclk dzero dzero dout10 dnout10 flop1 + +.model flop1 d_dff(clk_delay = 1e-9 set_delay = 0 ++ reset_delay = 0 ic = 0 rise_delay = 1e-9 ++ fall_delay = 1e-9) + +.ends latch10 + +** emulation of 10 bit DAC +.subckt dac10 din1 din2 din3 din4 din5 din6 din7 din8 din9 din10 aout +.param vref=1 +abridge1 [din1 din2 din3 din4 din5 din6 din7 din8 din9 din10] ++ [ain1 ain2 ain3 ain4 ain5 ain6 ain7 ain8 ain9 ain10] dac1 +BVout aout 0 V = 'vref'*(v(ain10)/2 + v(ain9)/4 + v(ain8)/8 + v(ain7)/16 + v(ain6)/32 + ++ v(ain5)/64 + v(ain4)/128 + v(ain3)/256 + v(ain2)/512 + v(ain1)/1024) + +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-9 ++ t_fall = 1e-9) + +.ends dac10 + diff --git a/Windows/spice/examples/xspice/delta-sigma/counter-test.cir b/Windows/spice/examples/xspice/delta-sigma/counter-test.cir new file mode 100644 index 00000000..8bf2baf6 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/counter-test.cir @@ -0,0 +1,42 @@ +* 10 bit synchronous digital counter +* inhibit at overflow, no revolving +* according to Schreier, Temes: Understanding Delta-Sigma Data Converters, 2005 +* Fig. 2.27, p. 58 + +* clock generation +* PULSE(V1 V2 TD TR TF PW PER) +vclk aclk 0 dc 0 pulse(0 1 1u 2n 2n 1u 2u) + +* reset generation +* single pulse, actual value stored in latch and read by DAC +vres ars 0 dc 0 pulse(0 1 1.1m 2n 2n 1u 2.2m) + +vone aone 0 dc 1 +vzero azero 0 dc 0 + +* digital one +* digital zero +abridge1 [aone azero] [done dzero] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +* digital clock +* digital reset +abridge2 [aclk ars] [dclk dreset] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +XCounter done done dclk dreset dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 count10 +Xlatch dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 ++ dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 dreset ++ latch10 +Xdac dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 adacout dac10 + +.include count-latch-dac.cir + +.control +tran 1u 2.5m +eprint dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 > digi4b.txt +eprint dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 >> digi4b.txt +plot adacout +.endc + +.end diff --git a/Windows/spice/examples/xspice/delta-sigma/delta-sigma-1.cir b/Windows/spice/examples/xspice/delta-sigma/delta-sigma-1.cir new file mode 100644 index 00000000..08322260 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/delta-sigma-1.cir @@ -0,0 +1,106 @@ +* delta sigma A/D converter 9 bit +* first-order continuous time delta sigma modulator +* sinc filter with counter +* according to Schreier, Temes: Understanding Delta-Sigma Data Converters, 2005 +* Fig. 2.13, p. 31; Fig. 2.27, p.58 + +** sine input signal parameters +.param infreq=500 inampl=0.5 +** clock +.param clkfreq=5Meg +** simulation time +.param simtime = 2m +.csparam simtime = 'simtime' +** sample clock cycles +.param samples=500 + +.global dzero done + +** input signal +* SIN(VO VA FREQ TD THETA) +vin inp inm dc 0 sin(0 'inampl' 'infreq' 0 0) +* steps from -0.5 to 0.4 +*vin inp inm dc 0 pwl(0 -0.5 0.2m -0.5 0.201m -0.4 0.4m -0.4 0.401m -0.3 0.6m -0.3 +*+ 0.601m -0.2 0.8m -0.2 0.801m -0.1 1.0m -0.1 1.001m 0.0 1.2m 0.0 1.201m 0.1 1.4m 0.1 +*+ 1.401m 0.2 1.6m 0.2 1.601m 0.3 1.8m 0.3 1.801m 0.4 2m 0.4) + +** clock and constant logic levels +* PULSE(V1 V2 TD TR TF PW PER) +vclk aclk 0 dc 0 pulse(0 1 0.1u 2n 2n '1/clkfreq/2' '1/clkfreq') + +* digital one +* digital zero +vone aone 0 dc 1 +vzero azero 0 dc 0 +abridge1 [aone azero] [done dzero] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +* digital clock +abridge2 [aclk] [dclk] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +****** delta-sigma converter**************************************************************** +* modulator +* inp inm: analog in + - +* dclk digital clock in +* dv, dvb: modulator non-inverting/inverting out +Xmod inp inm dclk dv dvb mod1 +* sinc filter, decimator +* dlout1 ..dlout10: converter 10 bit digital out +xsinc dv dvb dclk dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 sinc1 +******************************************************************************************** + +** DACs for measuring and plotting +* converter output +Xdac_latch dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 adaclout dac10 +* counter inside of sinc filter +Xdac_counter xsinc.dout1 xsinc.dout2 xsinc.dout3 xsinc.dout4 xsinc.dout5 ++ xsinc.dout6 xsinc.dout7 xsinc.dout8 xsinc.dout9 xsinc.dout10 adaccout dac10 + +* load modulator mod1 subcircuit +.include mod1-ct.cir + +* load counter, d-latch and 10 bit DAC +.include count-latch-dac.cir + +** sinc filter 1st order subcircuit +.subckt sinc1 din dinb dclk dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 +XCounter din dinb dclk ddivndel2 dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 count10 +Xlatch dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 ++ dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 ddivndel1 ++ latch10 + +* digital divider dclk/samples +adivn dclk ddivn divider +.model divider d_fdiv(div_factor = 'samples' high_cycles = 1 ++ i_count = 0 rise_delay = 1e-9 fall_delay = 1e-9) + +* clock delays +adelay ddivn ddivndel1 buff1 ; set latch +adelay2 ddivndel1 ddivndel2 buff1 ; reset counter +.model buff1 d_buffer(rise_delay = '1/clkfreq/8' fall_delay = '1/clkfreq/8' ++ input_load = 0.5e-12) + +.ends sinc1 + +** for plotting +abridge22 [dclk xsinc.ddivndel1 xsinc.ddivndel2 dv] [acclk acset acres acin] dac1 +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-9 ++ t_fall = 1e-9) + + +.control +save inp inm adaclout adaccout ; save memory space +tran 0.1u $&simtime +* analog out, scaled 'manually'; sinc filter counter; analog differential in +plot 4.1*(adaclout-0.486) adaccout v(inp)-v(inm) ylimit -0.6 0.6 +* modulator dig out +* eprint dv > digi1.txt +* +*eprint dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 +*+ xsinc.dout1 xsinc.dout2 xsinc.dout3 xsinc.dout4 xsinc.dout5 +*+ xsinc.dout6 xsinc.dout7 xsinc.dout8 xsinc.dout9 xsinc.dout10 > digi4b.txt +.endc + +.end diff --git a/Windows/spice/examples/xspice/delta-sigma/delta-sigma-oc.cir b/Windows/spice/examples/xspice/delta-sigma/delta-sigma-oc.cir new file mode 100644 index 00000000..a0418197 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/delta-sigma-oc.cir @@ -0,0 +1,95 @@ +* delta sigma A/D converter 9 bit +* first-order continuous time delta sigma modulator +* sinc filter with counter +* according to Schreier, Temes: Understanding Delta-Sigma Data Converters, 2005 +* Fig. 2.13, p. 31; Fig. 2.27, p.58 + +** sine input signal parameters +.param infreq=500 inampl=0.5 +** clock +.param clkfreq=5Meg +** simulation time +.param simtime = 2m +.csparam simtime = 'simtime' +** sample clock cycles +.param samples=500 + +.global dzero done + +** input signal +* SIN(VO VA FREQ TD THETA) +vin inp inm dc 0 sin(0 'inampl' 'infreq' 0 0) +* steps from -0.5 to 0.4 +*vin inp inm dc 0 pwl(0 -0.5 0.2m -0.5 0.201m -0.4 0.4m -0.4 0.401m -0.3 0.6m -0.3 +*+ 0.601m -0.2 0.8m -0.2 0.801m -0.1 1.0m -0.1 1.001m 0.0 1.2m 0.0 1.201m 0.1 1.4m 0.1 +*+ 1.401m 0.2 1.6m 0.2 1.601m 0.3 1.8m 0.3 1.801m 0.4 2m 0.4) + +** clock and constant logic levels +* PULSE(V1 V2 TD TR TF PW PER) +vclk aclk 0 dc 0 pulse(0 1 0.1u 2n 2n '1/clkfreq/2' '1/clkfreq') + +* digital one +* digital zero +vone aone 0 dc 1 +vzero azero 0 dc 0 +abridge1 [aone azero] [done dzero] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +* digital clock +abridge2 [aclk] [dclk] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +****** delta-sigma converter**************************************************************** +* modulator +* inp inm: analog in + - +* dclk digital clock in +* dv, dvb: modulator non-inverting/inverting out +Xmod inp inm dclk dv dvb mod1 +* sinc filter, decimator +* dlout1 ..dlout10: converter 10 bit digital out +xsinc dv dvb dclk dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 sinc1 +******************************************************************************************** + +** DACs for measuring and plotting +* converter output +Xdac_latch dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 adaclout dac10 +* counter inside of sinc filter +Xdac_counter xsinc.dout1 xsinc.dout2 xsinc.dout3 xsinc.dout4 xsinc.dout5 ++ xsinc.dout6 xsinc.dout7 xsinc.dout8 xsinc.dout9 xsinc.dout10 adaccout dac10 + +* load modulator mod1 subcircuit +.include mod1-ct.cir + +* load counter, d-latch and 10 bit DAC +.include count-latch-dac.cir + +** sinc filter 1st order subcircuit +.subckt sinc1 din dinb dclk dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 +XCounter din dinb dclk ddivndel2 dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 count10 +Xlatch dout1 dout2 dout3 dout4 dout5 dout6 dout7 dout8 dout9 dout10 ++ dlout1 dlout2 dlout3 dlout4 dlout5 dlout6 dlout7 dlout8 dlout9 dlout10 ddivndel1 ++ latch10 + +* digital divider dclk/samples +adivn dclk ddivn divider +.model divider d_fdiv(div_factor = 'samples' high_cycles = 1 ++ i_count = 0 rise_delay = 1e-9 fall_delay = 1e-9) + +* clock delays +adelay ddivn ddivndel1 buff1 ; set latch +adelay2 ddivndel1 ddivndel2 buff1 ; reset counter +.model buff1 d_buffer(rise_delay = '1/clkfreq/8' fall_delay = '1/clkfreq/8' ++ input_load = 0.5e-12) + +.ends sinc1 + +** for plotting +abridge22 [dclk xsinc.ddivndel1 xsinc.ddivndel2 dv] [acclk acset acres acin] dac1 +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-9 ++ t_fall = 1e-9) + +.save inp inm adaclout adaccout ; save memory space +.tran 0.1u 2m + +.end diff --git a/Windows/spice/examples/xspice/delta-sigma/mod1-ct-test.cir b/Windows/spice/examples/xspice/delta-sigma/mod1-ct-test.cir new file mode 100644 index 00000000..7ce7b0d3 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/mod1-ct-test.cir @@ -0,0 +1,52 @@ +* first-order delta sigma modulator +* continuous time +* according to Schreier, Temes: Understanding Delta-Sigma Data Converters, 2005 +* Fig. 2.13, p. 31 + +** signal +.param infreq=13k inampl=0.3 +** clock +.param clkfreq=5Meg +** simulation time +.param simtime = 5m +.csparam simtime = 'simtime' + +** input signal +*SIN(VO VA FREQ TD THETA) +vin in+ in- dc 0 sin(0 'inampl' 'infreq' 0 0) + +* clock generation +* PULSE(V1 V2 TD TR TF PW PER) +vclk aclk 0 dc 0 pulse(0 1 0.1u 2n 2n '1/clkfreq/2' '1/clkfreq') + +* digital one +* digital zero +vone aone 0 dc 1 +vzero azero 0 dc 0 +abridge1 [aone azero] [done dzero] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +* digital clock +abridge2 [aclk] [dclk] adc_buff +.model adc_buff adc_bridge(in_low = 0.5 in_high = 0.5) + +Xmod in+ in- dclk dv dvb mod1 + +* load mod1 subcircuit +.include mod1-ct.cir + +.control +save xmod.adffq in+ in- xmod.outintp xmod.outintn +tran 0.01u $&simtime +* digit density vs input +plot xmod.adffq "v(in+) - v(in-)" xlimit 0.1m 0.2m +* modulator integrator out, digital out +plot xmod.outintp-xmod.outintn xmod.adffq xlimit 0.140m 0.148m +*eprint dv dclk > digi1.txt +linearize xmod.adffq +fft xmod.adffq +* noise shaping 20dB/decade +plot db(xmod.adffq) xlimit 10k 1Meg xlog ylimit -20 -120 +.endc + +.end diff --git a/Windows/spice/examples/xspice/delta-sigma/mod1-ct.cir b/Windows/spice/examples/xspice/delta-sigma/mod1-ct.cir new file mode 100644 index 00000000..bf3129b7 --- /dev/null +++ b/Windows/spice/examples/xspice/delta-sigma/mod1-ct.cir @@ -0,0 +1,46 @@ +* delta sigma modulator +* first order, continuous time + +.subckt mod1 ainp ainn dclk ddffq ddffqb +* integrator and summer +Ri1 ainn inintn 500 +Rf1 adffq inintn 500 +Cint1 outintp inintn 1n +.IC v(outintp) = 0 v(inintp) = 0 +* +Rshunt1 outintp 0 100Meg +Rshunt2 initn 0 100Meg +* +Ri2 ainp inintp 500 +Rf2 adffqb inintp 500 +Cint2 outintn inintp 1n +.IC v(outintn) = 0 v(inintn) = 0 +* +Rshunt3 outintn 0 100Meg +Rshunt4 inintp 0 100Meg +* +aint %vd(inintp inintn) %vd(outintp outintn) amp +.model amp gain ( in_offset =0.0 gain =100000 ++ out_offset = 0) + +* latched comparator (code model or B source, analog in, digital out) +*acomp %vd(outintp outintn) acompout limit5 +*.model limit5 limit(in_offset=0 gain=100000 out_lower_limit=-1.0 +*+ out_upper_limit=1.0 limit_range=0.10 fraction=FALSE) +* +BComp acompout 0 V = (V(outintp) - V(outintn)) >= 0 ? 1 : -1 +* +abridge2 [acompout] [dcompout] adc_buff +.model adc_buff adc_bridge(in_low = 0 in_high = 0) +* +* D flip flop: data clk set reset out nout +adff1 dcompout dclk ds drs ddffq ddffqb flop2 +.model flop2 d_dff(clk_delay = 1e-9 set_delay = 1.0e-9 ++ reset_delay = 1.0e-9 ic = 0 rise_delay = 1.0e-9 ++ fall_delay = 1e-9) + +abridge1 [ddffq ddffqb dclk] [adffq adffqb aclk] dac1 +.model dac1 dac_bridge(out_low = -1 out_high = 1 out_undef = 0 ++ input_load = 5.0e-12 + +.ends mod1 diff --git a/Windows/spice/examples/xspice/fstest.sp b/Windows/spice/examples/xspice/fstest.sp new file mode 100644 index 00000000..f0f552a8 --- /dev/null +++ b/Windows/spice/examples/xspice/fstest.sp @@ -0,0 +1,26 @@ +* filesource Test + +* two differential ports 1 0 and 3 0 are used, so your input file +* has to have three columns (time, port_value 1, portvalue 2) + +AFILESRC %vd([1 0 3 0]) filesrc +.model filesrc filesource (file="sine.m" amploffset=[0 0] amplscale=[1 1] timerelative=false amplstep=false) + +V2 2 0 0.0 SIN(0 1 1MEG 0 0 0.0) +V4 4 0 0.0 SIN(0 1 1MEG 0 0 90.0) + +.tran 1n 1.0u + +.control +run +*listing param +wrdata vspice V(1) V(2) V(3) V(4) + + +plot V(1) V(2) V(3) V(4) + +* error between interpolation and sine source +* should be less than 1mV up to 1us +plot V(1,2) V(3,4) +.endc +.end diff --git a/Windows/spice/examples/xspice/pll/README b/Windows/spice/examples/xspice/pll/README new file mode 100644 index 00000000..f5c38b39 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/README @@ -0,0 +1,39 @@ +This directory contains a mixed mode pll, combining +ngspice and XSPICE circuit blocks. +The pll consists of the following blocks: + +** voltage controlled oscillator: +vco_sub.cir + 7 stage ring oscillator with gain cells, CMOS devices +or +vco_sub_new.cir + vco made from code model d_osc, cntl_array/freq_array data + are gained by running test-vco.cir with vco_sub.cir + +** digital divider and frequency reference: +pll-xspice.cir + +** phase frequency detector: +f-p-det-d-sub.cir + +** loop filter: +loop-filter.cir + switched current sources as charge pump, 2nd order + passive RC filter +or +loop-filter-2.cir + transistors as switches for charge pump, 2nd or 3rd + order passive RC filters + +** main simulation control: +pll-xspice.cir + +Two test files are included: +test-vco.cir simulates vco frequency versus control voltage +test-f-p-det.cir simulates the phase frequency detector and the loop filter. + +The main building blocks are organised as subcircuits. + +main simulation control with three reference frequencies: +pll-xspice-fstep.cir + simulates two steps of the reference in one simulation run diff --git a/Windows/spice/examples/xspice/pll/f-p-det-d-sub.cir b/Windows/spice/examples/xspice/pll/f-p-det-d-sub.cir new file mode 100644 index 00000000..cdd5af9e --- /dev/null +++ b/Windows/spice/examples/xspice/pll/f-p-det-d-sub.cir @@ -0,0 +1,16 @@ +* frequency-phase detector according to +* http://www.uwe-kerwien.de/pll/pll-phasenvergleich.htm + +.subckt f-p-det d_R d_V d_U d_U_ d_D d_D_ + +aa1 [d_U d_D] d_rset and1 +.model and1 d_and(rise_delay = 1e-10 fall_delay = 0.1e-9 ++ input_load = 0.5e-12) + +ad1 d_d1 d_R d_d0 d_rset d_U d_U_ flop1 +ad2 d_d1 d_V d_d0 d_rset d_D d_D_ flop1 +.model flop1 d_dff(clk_delay = 1.0e-10 set_delay = 1.0e-10 ++ reset_delay = 1.0e-10 ic = 2 rise_delay = 1.0e-10 ++ fall_delay = 1e-10) + +.ends f-p-det diff --git a/Windows/spice/examples/xspice/pll/loop-filter-2.cir b/Windows/spice/examples/xspice/pll/loop-filter-2.cir new file mode 100644 index 00000000..3d093167 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/loop-filter-2.cir @@ -0,0 +1,50 @@ +* loop filter for pll +* in: d_up d_down digital data +* out: vout, vco control voltage +* using transistors to switch current +* according to http://www.uwe-kerwien.de/pll/pll-schleifenfilter.htm +* digital input d_Un d_D +* anlog output vout + + +.subckt loopf d_Un d_D vout + +.param initcond=2.5 + +vdd dd 0 dc 'vcc' +vss ss 0 dc 0 + +* "driver" circuit, digital in, analog out +abridge-f1 [d_Un d_D] [u1n d1] dac1 +.model dac1 dac_bridge(out_low = 0 out_high = 'vcc' out_undef = 'vcc/2' ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +* uses BSIM3 model parameters from pll-xspice_2.cir +* transistors as switches +mnd dra d1 ss ss n1 w=12u l=0.35u AS=24p AD=24p PS=28u PD=28u +mpd dra u1n dd dd p1 w=24u l=0.35u AS=48p AD=48p PS=52u PD=52u + +*** passive filter elements *** +*third order filter +*parameters absolutely _not_ optimised +*better check +* http://www.national.com/assets/en/boards/deansbook4.pdf +*to do so +.ic v(vout)='initcond' v(c1)='initcond' v(dra)='initcond' v(int1)='initcond' v(u1n)='vcc' v(d1)=0 +R1 dra int1 300 +R2 int1 c1 200 +C1 c1 0 10n +C2 int1 0 5n +R3 int1 vout 50 +C3 vout 0 0.5n + +*second order filter +*parameters not optimized +*.ic v(vout)='initcond' v(c1)='initcond' v(dra)='initcond' v(u1n)='vcc' v(d1)=0 +*R1 dra vout 300 +*R2 vout c1 200 +*C1 c1 0 10n +*C2 vout 0 5n + +.ends loopf diff --git a/Windows/spice/examples/xspice/pll/loop-filter.cir b/Windows/spice/examples/xspice/pll/loop-filter.cir new file mode 100644 index 00000000..a83ebb7a --- /dev/null +++ b/Windows/spice/examples/xspice/pll/loop-filter.cir @@ -0,0 +1,31 @@ +* loop filter for pll +* in: d_up d_down digital data +* out: vout, vco control voltage +* according to http://www.uwe-kerwien.de/pll/pll-schleifenfilter.htm + +.subckt loopfe d_U d_D vout + +.param loadcur=5m +.param initcond=2.5 + +v1 vtop 0 1 +v2 vbot 0 -1 + +abridge-f1 [d_U d_D] [u1 d1] dac1 +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +*top switched current source +Gtop vtop vout cur='loadcur*v(u1)' +*bottom switched current source +Gbot vout vbot cur='loadcur*v(d1)' + +*passive filter elements +.ic v(vout)='initcond' v(c1)='initcond' +R2 vout c1 200 +C1 c1 0 5n +C2 vout 0 5n +Rshunt vout 0 10000k + +.ends diff --git a/Windows/spice/examples/xspice/pll/pll-xspice-fstep.cir b/Windows/spice/examples/xspice/pll/pll-xspice-fstep.cir new file mode 100644 index 00000000..5c79e152 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/pll-xspice-fstep.cir @@ -0,0 +1,165 @@ +* pll circuit using xspice code models +* three frequencies generate steps in control voltage v(cont) + +.param vcc=3.3 +.param divisor=40 +.param fref=10e6 +.param fref2=9e6 +.param fref3=11e6 +.csparam simtime=45u +.csparam f2='fref2' +.csparam f3='fref3' + +* digital zero and one +.global d_d0 d_d1 + +vdd dd 0 dc 'vcc' + +* 10 MHz reference frequency +* PULSE(V1 V2 TD TR TF PW PER) +vref ref 0 dc 0 pulse(0 'vcc' 10n 1n 1n '1/fref/2' '1/fref') +abridgeref [ref] [d_ref] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 0.5 in_high = 0.5) + +*digital zero +vzero z 0 dc 0 +abridgev3 [z] [d_d0] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 'vcc*0.5' in_high = 'vcc*0.5') +*digital one +ainv1 d_d0 d_d1 invd1 +.model invd1 d_inverter(rise_delay = 1e-10 fall_delay = 1e-10) + +* vco +* buf: analog out +* d_digout: digital out +* cont: analog control voltage +* dd: analog supply voltage +*.include vco_sub.cir +*xvco buf d_digout cont dd ro_vco +.include vco_sub_new.cir +xvco buf d_digout cont dd d_osc_vco + +* digital divider +adiv1 d_digout d_divout divider +.model divider d_fdiv(div_factor = 'divisor' high_cycles = 'divisor/2' ++ i_count = 4 rise_delay = 1e-10 ++ fall_delay = 1e-10) + +* frequency phase detector +.include f-p-det-d-sub.cir +Xfpdet d_divout d_ref d_U d_Un d_D d_Dn f-p-det + +* loop filter +*2nd or 3rd order, transistors as switches +.include loop-filter-2.cir +Xlf d_Un d_D cont loopf +* 2nd order, Exxxx voltage controlled current sources as 'switches' +* loop filter current sources as charge pump +*.include loop-filter.cir +*Xlf d_U d_D cont loopfe + +* d to a for plotting +abridge-w1 [d_divout d_ref d_Un d_D] [s1 s2 u1 d1] dac1 ; change to d_u or d_Un +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +.control +save cont s1 s2 u1 d1 +iplot cont +* calculate breakpoint for switching frequency +let t1_3 = simtime/3 +set ti1_3 ="$&t1_3" +let t2_3 = simtime/3*2 +set ti2_3 ="$&t2_3" +stop when time=$ti1_3 +stop when time=$ti2_3 +* calculate new periods for f2 +let per2=1/f2 +let pw2 = per2/2 +let per3=1/f3 +let pw3 = per3/2 +*simulate +tran 0.1n $&simtime uic +*change frequency after stopping +* first pair of [] without spaces, second pair with spaces +alter @vref[pulse] = [ 0 3.3 10n 1n 1n $&pw2 $&per2 ] +resume +*another change after second stop +alter @vref[pulse] = [ 0 3.3 10n 1n 1n $&pw3 $&per3 ] +resume +rusage +plot cont s1 s2+1.2 u1+2.4 d1+3.6 xlimit 15u 16u +*plot cont +.endc + +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + +.model P1 PMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + + +.end diff --git a/Windows/spice/examples/xspice/pll/pll-xspice.cir b/Windows/spice/examples/xspice/pll/pll-xspice.cir new file mode 100644 index 00000000..1d14368d --- /dev/null +++ b/Windows/spice/examples/xspice/pll/pll-xspice.cir @@ -0,0 +1,144 @@ +* pll circuit using xspice code models +* output frequency 400 MHz +* locked to a 1 or 10 MHz reference + +.param vcc=3.3 +.param divisor=40 +.param fref=10e6 +.csparam simtime=25u + +.global d_d0 d_d1 + +vdd dd 0 dc 'vcc' +*vco cont 0 dc 1.9 + +*PULSE(V1 V2 TD TR TF PW PER) +* reference frequency selected by param fref +* PULSE(V1 V2 TD TR TF PW PER) +vref ref 0 dc 0 pulse(0 'vcc' 10n 1n 1n '1/fref/2' '1/fref') +abridgeref [ref] [d_ref] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 0.5 in_high = 0.5) + +*digital zero +vzero z 0 dc 0 +abridgev3 [z] [d_d0] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 'vcc*0.5' in_high = 'vcc*0.5') +*digital one +ainv1 d_d0 d_d1 invd1 +.model invd1 d_inverter(rise_delay = 1e-10 fall_delay = 1e-10) + +* vco +* buf: analog out +* d_digout: digital out +* cont: analog control voltage +* dd: analog supply voltage +*.include vco_sub.cir +*xvco buf d_digout cont dd ro_vco +.include vco_sub_new.cir +xvco buf d_digout cont dd d_osc_vco + +* digital divider +adiv1 d_digout d_divout divider +.model divider d_fdiv(div_factor = 'divisor' high_cycles = 'divisor/2' ++ i_count = 4 rise_delay = 1e-10 ++ fall_delay = 1e-10) + +* frequency phase detector +.include f-p-det-d-sub.cir +Xfpdet d_divout d_ref d_U d_Un d_D d_Dn f-p-det + +* loop filters +*2nd or 3rd order, transistors as switches +.include loop-filter-2.cir +Xlf d_Un d_D cont loopf +* 2nd order, Exxxx voltage controlled current sources as 'switches' +* loop filter current sources as charge pump +*.include loop-filter.cir +*Xlf d_U d_D cont loopfe + +* d to a for plotting +abridge-w1 [d_divout d_ref d_Un d_D] [s1 s2 u1n d1] dac1 ; change to d_u or d_Un +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +.control +save cont s1 s2 u1n d1 v.xlf.vdd#branch; to save memory +iplot cont +tran 0.1n $&simtime uic +rusage +plot cont s1 s2+1.2 u1n+2.4 d1+3.6 xlimit 4u 5u +plot v.xlf.vdd#branch xlimit 4u 5u ylimit -8m 2m +*plot cont +.endc + +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + +.model P1 PMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + + +.end diff --git a/Windows/spice/examples/xspice/pll/pll-xspice_oc.cir b/Windows/spice/examples/xspice/pll/pll-xspice_oc.cir new file mode 100644 index 00000000..f2d235c3 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/pll-xspice_oc.cir @@ -0,0 +1,142 @@ +* pll circuit using xspice code models +* output frequency 400 MHz +* locked to a 1 or 10 MHz reference + +.param vcc=3.3 +.param divisor=40 +.param fref=10e6 +.csparam simtime=25u + +.control +pre_unset ngdebug +set noinit +.endc + +.global d_d0 d_d1 + +vdd dd 0 dc 'vcc' +*vco cont 0 dc 1.9 + +*PULSE(V1 V2 TD TR TF PW PER) +* reference frequency selected by param fref +* PULSE(V1 V2 TD TR TF PW PER) +vref ref 0 dc 0 pulse(0 'vcc' 10n 1n 1n '1/fref/2' '1/fref') +abridgeref [ref] [d_ref] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 0.5 in_high = 0.5) + +*digital zero +vzero z 0 dc 0 +abridgev3 [z] [d_d0] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 'vcc*0.5' in_high = 'vcc*0.5') +*digital one +ainv1 d_d0 d_d1 invd1 +.model invd1 d_inverter(rise_delay = 1e-10 fall_delay = 1e-10) + +* vco +* buf: analog out +* d_digout: digital out +* cont: analog control voltage +* dd: analog supply voltage +*.include vco_sub.cir +*xvco buf d_digout cont dd ro_vco +.include vco_sub_new.cir +xvco buf d_digout cont dd d_osc_vco + +* digital divider +adiv1 d_digout d_divout divider +.model divider d_fdiv(div_factor = 'divisor' high_cycles = 'divisor/2' ++ i_count = 4 rise_delay = 1e-10 ++ fall_delay = 1e-10) + +* frequency phase detector +.include f-p-det-d-sub.cir +Xfpdet d_divout d_ref d_U d_Un d_D d_Dn f-p-det + +* loop filters +*2nd or 3rd order, transistors as switches +.include loop-filter-2.cir +Xlf d_Un d_D cont loopf +* 2nd order, Exxxx voltage controlled current sources as 'switches' +* loop filter current sources as charge pump +*.include loop-filter.cir +*Xlf d_U d_D cont loopfe + +* d to a for plotting +abridge-w1 [d_divout d_ref d_Un d_D] [s1 s2 u1n d1] dac1 ; change to d_u or d_Un +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +.save cont s1 s2 u1n d1 v.xlf.vdd#branch; to save memory +.tran 0.1n 10u uic + +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + +.model P1 PMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + + +.end diff --git a/Windows/spice/examples/xspice/pll/test-f-p-det.cir b/Windows/spice/examples/xspice/pll/test-f-p-det.cir new file mode 100644 index 00000000..16060b9b --- /dev/null +++ b/Windows/spice/examples/xspice/pll/test-f-p-det.cir @@ -0,0 +1,114 @@ +* test frequency-phase detector similar to 12040 + +.param vcc=3.3 +.global d_d0 d_d1 + +*PULSE(V1 V2 TD TR TF PW PER) +v1 1 0 dc 0 pulse(0 'vcc' 10n 1n 1n 10n 20n) +v2 2 0 dc 0 pulse(0 'vcc' 8n 1n 1n 10n 20n) + +*digital zero +v3 3 0 dc 0 +abridgev1 [1 2 3] [d_sig1 d_sig2 d_d0] adc_vbuf +.model adc_vbuf adc_bridge(in_low = 'vcc*0.5' in_high = 'vcc*0.5') +*digital one +ainv1 d_d0 d_d1 invd1 +.model invd1 d_inverter(rise_delay = 1e-10 fall_delay = 1e-10) + +Xfpdet d_sig1 d_sig2 d_U d_Un d_D d_Dn f-p-det + +*.include f-p-det-sub.cir +.include f-p-det-d-sub.cir + +* d to a for plotting +abridge-w1 [d_sig1 d_sig2 d_U d_D] [s1 s2 u1 d1] dac1 +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +* loop filters +*2nd or 3rd order, transistors as switches +.include loop-filter-2.cir +Xlf d_Un d_D cont loopf +* 2nd order, Exxxx voltage controlled current sources as 'switches' +* loop filter current sources as charge pump +*.include loop-filter.cir +*Xlf d_U d_D cont loopfe + +.control +set xtrtol=2 +tran 0.1n 1000n +plot s1 s2+1.2 u1+2.4 d1+3.6 xlimit 140n 200n +.endc + + +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + +.model P1 PMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + + +.end diff --git a/Windows/spice/examples/xspice/pll/test_vco.cir b/Windows/spice/examples/xspice/pll/test_vco.cir new file mode 100644 index 00000000..522eac00 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/test_vco.cir @@ -0,0 +1,158 @@ +* Test of VCO: frequency versus control voltage +* 7 stage Ring-Osc. made of gain cells BSIM3 +* P.-H. Hsieh, J. Maxey, C.-K. K. Yang, IEEE JSSC, Sept. 2009, pp. 2488 - 2495 +* alternatively use d_osc code model +* measure frequency of R.O. by fft + +.param vcc=3.3 +.csparam simtime=500n + +vdd dd 0 dc 'vcc' +vco cont 0 dc 2.5 + +* vco +* buf: analog out +* d_digout: digital out +* cont: analog control voltage +* dd: analog supply voltage +*.include vco_sub.cir +*xvco buf d_digout cont dd ro_vco +.include vco_sub_new.cir +xvco buf d_digout cont dd d_osc_vco + +.option noacct + +.control +set xtrtol=2 +set dt = $curplot +set curplot = new +set curplottitle = "Frequency versus voltage" +set freq_volt = $curplot $ store its name to 'freq_volt' +setplot $freq_volt +let vcovec=vector(5) +let foscvec=vector(5) +setplot $dt +alter vco 0.5 +tran 0.1n $&simtime 0 +let {$freq_volt}.vcovec[0]=v(cont) +linearize buf +fft buf +* start meas at freq > 0 to skip large dc part +meas sp fosc MAX_AT buf from=1e3 to=1e9 +let {$freq_volt}.foscvec[0]=fosc +plot d_digout xlimit 140n 160n +reset +alter vco 1 +tran 0.1n $&simtime 0 +let {$freq_volt}.vcovec[1]=v(cont) +linearize buf +fft buf +meas sp fosc MAX_AT buf from=1e3 to=1e9 +let {$freq_volt}.foscvec[1]=fosc +plot d_digout xlimit 140n 160n +reset +alter vco 1.5 +tran 0.1n $&simtime 0 +let {$freq_volt}.vcovec[2]=v(cont) +linearize buf +fft buf +meas sp fosc MAX_AT buf from=1e3 to=1e9 +let {$freq_volt}.foscvec[2]=fosc +plot d_digout xlimit 140n 160n +reset +alter vco 2 +tran 0.1n $&simtime 0 +let {$freq_volt}.vcovec[3]=v(cont) +linearize buf +fft buf +meas sp fosc MAX_AT buf from=1e3 to=1e9 +let {$freq_volt}.foscvec[3]=fosc +plot d_digout xlimit 140n 160n +reset +alter vco 2.5 +tran 0.1n $&simtime 0 +let {$freq_volt}.vcovec[4]=v(cont) +linearize buf +fft buf +meas sp fosc MAX_AT buf from=1e3 to=1e9 +let {$freq_volt}.foscvec[4]=fosc +plot d_digout xlimit 140n 160n +plot tran1.buf tran3.buf tran5.buf tran7.buf tran9.buf xlimit 140n 160n +plot mag(sp2.buf) mag(sp4.buf) mag(sp6.buf) mag(sp8.buf) mag(sp10.buf) xlimit 100e6 1100e6 +setplot $freq_volt +settype frequency foscvec +settype voltage vcovec +plot foscvec vs vcovec +print vcovec foscvec +rusage +.endc + +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + +.model P1 PMOS +*+version = 3.2.4 ++version = 3.3.0 ++Level= 8 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + +.end diff --git a/Windows/spice/examples/xspice/pll/vco_sub.cir b/Windows/spice/examples/xspice/pll/vco_sub.cir new file mode 100644 index 00000000..77f87360 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/vco_sub.cir @@ -0,0 +1,67 @@ +* VCO: 7 stage Ring-Osc. made of gain cells BSIM3 +* P.-H. Hsieh, J. Maxey, C.-K. K. Yang, IEEE JSSC, Sept. 2009, pp. 2488 - 2495 +* 150 MHz to 900 MHz with control voltage 2.5 to 0.5 V at 3.3 V supply +* BSIM 3 model data for transistors in main file pll-xspice.cir + +***** ring oscillator as voltage controlled oscillator *************** +* name: ro_vco +* aout analog out +* dout digital out +* cont control voltage +* dd supply voltage + +.subckt ro_vco aout dout cont dd +* ignition circuit (not needed) +* feedback between in and out, pulse to help start oscillation +vin inm1 outp7 dc 0 +*vin inm1 outp7 dc 2.5 pulse 2.5 0 0.1n 5n 1 1 1 + +*vin2 inp1 outp7 dc -0.5 pulse -0.5 0 0.1n 5n 1 1 1 +vin2 inp1 outm7 dc 0 + + +vss ss 0 dc 0 +ve sub 0 dc 0 +vpe well 0 dc 3.3 + + +* gain cell +.subckt gaincell dd ss sub well co in- in+ out- out+ +mn1 out- in+ ss sub n1 w=2u l=0.35u AS=3p AD=3p PS=4u PD=4u +mn2 out- out+ ss sub n1 w=2u l=0.35u AS=3p AD=3p PS=4u PD=4u +mn3 out+ out- ss sub n1 w=2u l=0.35u AS=3p AD=3p PS=4u PD=4u +mn4 out+ in- ss sub n1 w=2u l=0.35u AS=3p AD=3p PS=4u PD=4u +mp1 out- co dd well p1 w=4u l=0.35u AS=7p AD=7p PS=6u PD=6u +mp2 out+ co dd well p1 w=4u l=0.35u AS=7p AD=7p PS=6u PD=6u +.ends gaincell + +* inverter +.subckt inv2 dd ss sub well in out +mn1 out in ss sub n1 w=6u l=0.35u AS=12p AD=12p PS=16u PD=16u +mp1 out in dd well p1 w=12u l=0.35u AS=24p AD=24p PS=28u PD=28u +.ends inv2 + +* inverter +.subckt inv1 dd ss sub well in out +mn1 out in ss sub n1 w=2u l=0.35u AS=3p AD=3p PS=4u PD=4u +mp1 out in dd well p1 w=4u l=0.35u AS=7p AD=7p PS=6u PD=6u +.ends inv1 + +* chain of 25 inverters + output buffer +xinv1 dd ss sub well cont inm1 inp1 outm1 outp1 gaincell +xinv2 dd ss sub well cont outp1 outm1 outm2 outp2 gaincell +xinv3 dd ss sub well cont outp2 outm2 outm3 outp3 gaincell +xinv4 dd ss sub well cont outp3 outm3 outm4 outp4 gaincell +xinv5 dd ss sub well cont outp4 outm4 outm5 outp5 gaincell +xinv6 dd ss sub well cont outp5 outm5 outm6 outp6 gaincell +xinv7 dd ss sub well cont outp6 outm6 outm7 outp7 gaincell +* analog out (two stage buffer) +xinv11 dd 0 sub well outm1 outm2 inv1 +xinv12 dd 0 sub well outm2 aout inv2 +cout aout 0 0.2pF +*digital out +abridge1 [aout] [dout] adc_buff +.model adc_buff adc_bridge(in_low = 'vcc*0.5' in_high = 'vcc*0.5') +.ends ro_vco +****************************************************************** + diff --git a/Windows/spice/examples/xspice/pll/vco_sub_new.cir b/Windows/spice/examples/xspice/pll/vco_sub_new.cir new file mode 100644 index 00000000..229ccf84 --- /dev/null +++ b/Windows/spice/examples/xspice/pll/vco_sub_new.cir @@ -0,0 +1,30 @@ +***** XSPICE digital controlled oscillator d_osc as vco *************** +* 150 MHz to 900 MHz +* name: d_osc_vco +* aout analog out +* dout digital out +* cont control voltage +* dd supply voltage + +.subckt d_osc_vco aout dout cont dd +* curve fitting to ro_vco 'measured' data +Bfit fitted 0 v = (-58256685.71*v(cont)*v(cont) - 186386142.9*v(cont) + 988722980)/10. + +*a5 fitted dout var_clock +*.model var_clock d_osc(cntl_array = [1.0e7 5.0e7 9.0e7] +*+ freq_array = [1.0e8 5.0e8 9.0e8] + +* linear interpolation, input data from measured ro vco +a5 cont dout var_clock +.model var_clock d_osc(cntl_array = [0.5 1 1.5 2 2.5] ++ freq_array = [8.790820e+008 7.472197e+008 5.799500e+008 3.772727e+008 1.611650e+008] ++ duty_cycle = 0.5 init_phase = 180.0 ++ rise_delay = 1e-10 fall_delay=1e-10) + +*generate an analog output for plotting +abridge-fit [dout] [aout] dac1 +.model dac1 dac_bridge(out_low = 0 out_high = 1 out_undef = 0.5 ++ input_load = 5.0e-12 t_rise = 1e-10 ++ t_fall = 1e-10) + +.ends d_osc_vco diff --git a/Windows/spice/examples/xspice/sine.m b/Windows/spice/examples/xspice/sine.m new file mode 100644 index 00000000..c01fbe9a --- /dev/null +++ b/Windows/spice/examples/xspice/sine.m @@ -0,0 +1,264 @@ +# Created by Octave 3.4.0, Mon Jun 06 10:16:19 2011 CEST <sailer@xbox360.hq.axsem.com> +# name: x +# type: matrix +# rows: 257 +# columns: 3 + 0 0 1 + 3.90625e-09 0.02454122852291229 0.9996988186962042 + 7.8125e-09 0.04906767432741801 0.9987954562051724 + 1.171875e-08 0.07356456359966743 0.9972904566786902 + 1.5625e-08 0.0980171403295606 0.9951847266721969 + 1.953125e-08 0.1224106751992162 0.99247953459871 + 2.34375e-08 0.1467304744553617 0.989176509964781 + 2.734375e-08 0.1709618887603012 0.9852776423889412 + 3.125e-08 0.1950903220161282 0.9807852804032304 + 3.515625e-08 0.2191012401568698 0.9757021300385286 + 3.90625e-08 0.2429801799032639 0.970031253194544 + 4.296875e-08 0.2667127574748984 0.9637760657954398 + 4.6875e-08 0.2902846772544623 0.9569403357322088 + 5.078125e-08 0.3136817403988915 0.9495281805930367 + 5.46875e-08 0.3368898533922201 0.9415440651830208 + 5.859374999999999e-08 0.3598950365349881 0.932992798834739 + 6.25e-08 0.3826834323650898 0.9238795325112867 + 6.640625e-08 0.4052413140049899 0.9142097557035307 + 7.03125e-08 0.4275550934302821 0.9039892931234433 + 7.421874999999999e-08 0.4496113296546065 0.8932243011955153 + 7.812499999999999e-08 0.4713967368259976 0.881921264348355 + 8.203125e-08 0.492898192229784 0.8700869911087115 + 8.59375e-08 0.5141027441932217 0.8577286100002721 + 8.984375e-08 0.5349976198870972 0.8448535652497071 + 9.375e-08 0.5555702330196022 0.8314696123025452 + 9.765624999999999e-08 0.5758081914178453 0.8175848131515837 + 1.015625e-07 0.5956993044924334 0.8032075314806449 + 1.0546875e-07 0.6152315905806268 0.7883464276266063 + 1.09375e-07 0.6343932841636455 0.773010453362737 + 1.1328125e-07 0.6531728429537768 0.7572088465064846 + 1.171875e-07 0.6715589548470183 0.7409511253549591 + 1.2109375e-07 0.6895405447370668 0.724247082951467 + 1.25e-07 0.7071067811865475 0.7071067811865476 + 1.2890625e-07 0.7242470829514669 0.6895405447370669 + 1.328125e-07 0.7409511253549591 0.6715589548470183 + 1.3671875e-07 0.7572088465064845 0.6531728429537768 + 1.40625e-07 0.773010453362737 0.6343932841636455 + 1.4453125e-07 0.7883464276266062 0.6152315905806268 + 1.484375e-07 0.8032075314806448 0.5956993044924335 + 1.5234375e-07 0.8175848131515837 0.5758081914178453 + 1.5625e-07 0.8314696123025452 0.5555702330196023 + 1.6015625e-07 0.844853565249707 0.5349976198870973 + 1.640625e-07 0.8577286100002721 0.5141027441932217 + 1.6796875e-07 0.8700869911087113 0.4928981922297841 + 1.71875e-07 0.8819212643483549 0.4713967368259978 + 1.7578125e-07 0.8932243011955153 0.4496113296546066 + 1.796875e-07 0.9039892931234433 0.4275550934302822 + 1.8359375e-07 0.9142097557035307 0.4052413140049899 + 1.875e-07 0.9238795325112867 0.3826834323650898 + 1.9140625e-07 0.9329927988347388 0.3598950365349883 + 1.953125e-07 0.9415440651830208 0.3368898533922201 + 1.9921875e-07 0.9495281805930367 0.3136817403988916 + 2.03125e-07 0.9569403357322089 0.2902846772544623 + 2.0703125e-07 0.9637760657954398 0.2667127574748984 + 2.109375e-07 0.970031253194544 0.242980179903264 + 2.1484375e-07 0.9757021300385286 0.2191012401568698 + 2.1875e-07 0.9807852804032304 0.1950903220161283 + 2.2265625e-07 0.9852776423889412 0.1709618887603014 + 2.265625e-07 0.989176509964781 0.1467304744553617 + 2.3046875e-07 0.99247953459871 0.1224106751992163 + 2.34375e-07 0.9951847266721968 0.09801714032956077 + 2.3828125e-07 0.9972904566786902 0.07356456359966745 + 2.421875e-07 0.9987954562051724 0.04906767432741813 + 2.4609375e-07 0.9996988186962042 0.02454122852291226 + 2.5e-07 1 6.123233995736766e-17 + 2.5390625e-07 0.9996988186962042 -0.02454122852291214 + 2.578125e-07 0.9987954562051724 -0.04906767432741801 + 2.6171875e-07 0.9972904566786902 -0.07356456359966733 + 2.65625e-07 0.9951847266721969 -0.09801714032956065 + 2.6953125e-07 0.99247953459871 -0.1224106751992162 + 2.734375e-07 0.989176509964781 -0.1467304744553616 + 2.7734375e-07 0.9852776423889412 -0.1709618887603012 + 2.8125e-07 0.9807852804032304 -0.1950903220161282 + 2.8515625e-07 0.9757021300385286 -0.2191012401568697 + 2.890625e-07 0.970031253194544 -0.2429801799032639 + 2.9296875e-07 0.9637760657954398 -0.2667127574748983 + 2.96875e-07 0.9569403357322089 -0.2902846772544622 + 3.0078125e-07 0.9495281805930367 -0.3136817403988914 + 3.046875e-07 0.9415440651830208 -0.3368898533922199 + 3.0859375e-07 0.9329927988347388 -0.3598950365349882 + 3.125e-07 0.9238795325112867 -0.3826834323650897 + 3.1640625e-07 0.9142097557035307 -0.4052413140049897 + 3.203125e-07 0.9039892931234434 -0.4275550934302819 + 3.2421875e-07 0.8932243011955152 -0.4496113296546067 + 3.28125e-07 0.881921264348355 -0.4713967368259977 + 3.3203125e-07 0.8700869911087115 -0.492898192229784 + 3.359375e-07 0.8577286100002721 -0.5141027441932217 + 3.3984375e-07 0.8448535652497072 -0.534997619887097 + 3.4375e-07 0.8314696123025455 -0.555570233019602 + 3.4765625e-07 0.8175848131515837 -0.5758081914178453 + 3.515625e-07 0.8032075314806449 -0.5956993044924334 + 3.5546875e-07 0.7883464276266063 -0.6152315905806267 + 3.59375e-07 0.7730104533627371 -0.6343932841636454 + 3.6328125e-07 0.7572088465064847 -0.6531728429537765 + 3.671875e-07 0.740951125354959 -0.6715589548470184 + 3.7109375e-07 0.7242470829514669 -0.6895405447370669 + 3.75e-07 0.7071067811865476 -0.7071067811865475 + 3.7890625e-07 0.6895405447370671 -0.7242470829514668 + 3.828125e-07 0.6715589548470186 -0.7409511253549589 + 3.8671875e-07 0.6531728429537766 -0.7572088465064846 + 3.90625e-07 0.6343932841636455 -0.773010453362737 + 3.9453125e-07 0.6152315905806269 -0.7883464276266062 + 3.984375e-07 0.5956993044924335 -0.8032075314806448 + 4.0234375e-07 0.5758081914178454 -0.8175848131515836 + 4.0625e-07 0.5555702330196022 -0.8314696123025453 + 4.1015625e-07 0.5349976198870972 -0.8448535652497071 + 4.140625e-07 0.5141027441932218 -0.857728610000272 + 4.1796875e-07 0.4928981922297841 -0.8700869911087113 + 4.21875e-07 0.4713967368259979 -0.8819212643483549 + 4.2578125e-07 0.4496113296546069 -0.8932243011955152 + 4.296875e-07 0.427555093430282 -0.9039892931234433 + 4.3359375e-07 0.4052413140049899 -0.9142097557035307 + 4.375e-07 0.3826834323650899 -0.9238795325112867 + 4.4140625e-07 0.3598950365349883 -0.9329927988347388 + 4.453125e-07 0.3368898533922203 -0.9415440651830207 + 4.4921875e-07 0.3136817403988914 -0.9495281805930367 + 4.53125e-07 0.2902846772544624 -0.9569403357322088 + 4.5703125e-07 0.2667127574748985 -0.9637760657954398 + 4.609375e-07 0.2429801799032641 -0.970031253194544 + 4.6484375e-07 0.21910124015687 -0.9757021300385285 + 4.6875e-07 0.1950903220161286 -0.9807852804032304 + 4.7265625e-07 0.1709618887603012 -0.9852776423889412 + 4.765625e-07 0.1467304744553618 -0.989176509964781 + 4.804687499999999e-07 0.1224106751992163 -0.99247953459871 + 4.84375e-07 0.09801714032956083 -0.9951847266721968 + 4.8828125e-07 0.07356456359966773 -0.9972904566786902 + 4.921875e-07 0.04906767432741797 -0.9987954562051724 + 4.9609375e-07 0.02454122852291233 -0.9996988186962042 + 5e-07 1.224646799147353e-16 -1 + 5.0390625e-07 -0.02454122852291208 -0.9996988186962042 + 5.078125e-07 -0.04906767432741772 -0.9987954562051724 + 5.117187499999999e-07 -0.0735645635996675 -0.9972904566786902 + 5.156249999999999e-07 -0.09801714032956059 -0.9951847266721969 + 5.1953125e-07 -0.1224106751992161 -0.99247953459871 + 5.234375e-07 -0.1467304744553616 -0.989176509964781 + 5.2734375e-07 -0.170961888760301 -0.9852776423889413 + 5.3125e-07 -0.1950903220161284 -0.9807852804032304 + 5.3515625e-07 -0.2191012401568698 -0.9757021300385286 + 5.390625e-07 -0.2429801799032638 -0.970031253194544 + 5.4296875e-07 -0.2667127574748983 -0.96377606579544 + 5.46875e-07 -0.2902846772544621 -0.9569403357322089 + 5.507812499999999e-07 -0.3136817403988912 -0.9495281805930368 + 5.546874999999999e-07 -0.3368898533922201 -0.9415440651830208 + 5.5859375e-07 -0.3598950365349881 -0.932992798834739 + 5.625e-07 -0.3826834323650897 -0.9238795325112868 + 5.6640625e-07 -0.4052413140049897 -0.9142097557035307 + 5.703125e-07 -0.4275550934302818 -0.9039892931234434 + 5.7421875e-07 -0.4496113296546067 -0.8932243011955153 + 5.78125e-07 -0.4713967368259976 -0.881921264348355 + 5.8203125e-07 -0.4928981922297839 -0.8700869911087115 + 5.859374999999999e-07 -0.5141027441932216 -0.8577286100002721 + 5.898437499999999e-07 -0.5349976198870969 -0.8448535652497072 + 5.937499999999999e-07 -0.555570233019602 -0.8314696123025455 + 5.9765625e-07 -0.5758081914178453 -0.8175848131515837 + 6.015625e-07 -0.5956993044924332 -0.8032075314806449 + 6.0546875e-07 -0.6152315905806267 -0.7883464276266063 + 6.09375e-07 -0.6343932841636453 -0.7730104533627371 + 6.1328125e-07 -0.6531728429537765 -0.7572088465064848 + 6.171875e-07 -0.6715589548470184 -0.7409511253549591 + 6.2109375e-07 -0.6895405447370668 -0.724247082951467 + 6.249999999999999e-07 -0.7071067811865475 -0.7071067811865477 + 6.289062499999999e-07 -0.7242470829514668 -0.6895405447370671 + 6.328124999999999e-07 -0.7409511253549589 -0.6715589548470187 + 6.3671875e-07 -0.7572088465064842 -0.6531728429537771 + 6.40625e-07 -0.7730104533627367 -0.6343932841636459 + 6.4453125e-07 -0.7883464276266059 -0.6152315905806273 + 6.484375e-07 -0.8032075314806451 -0.5956993044924331 + 6.5234375e-07 -0.8175848131515838 -0.5758081914178452 + 6.5625e-07 -0.8314696123025452 -0.5555702330196022 + 6.6015625e-07 -0.844853565249707 -0.5349976198870973 + 6.640624999999999e-07 -0.857728610000272 -0.5141027441932218 + 6.679687499999999e-07 -0.8700869911087113 -0.4928981922297842 + 6.718749999999999e-07 -0.8819212643483549 -0.4713967368259979 + 6.7578125e-07 -0.8932243011955152 -0.4496113296546069 + 6.796875e-07 -0.9039892931234431 -0.4275550934302825 + 6.8359375e-07 -0.9142097557035305 -0.4052413140049904 + 6.875e-07 -0.9238795325112865 -0.3826834323650903 + 6.9140625e-07 -0.932992798834739 -0.3598950365349879 + 6.953125e-07 -0.9415440651830208 -0.3368898533922199 + 6.992187499999999e-07 -0.9495281805930367 -0.3136817403988915 + 7.031249999999999e-07 -0.9569403357322088 -0.2902846772544624 + 7.070312499999999e-07 -0.9637760657954398 -0.2667127574748985 + 7.109374999999999e-07 -0.970031253194544 -0.2429801799032641 + 7.1484375e-07 -0.9757021300385285 -0.2191012401568701 + 7.1875e-07 -0.9807852804032303 -0.1950903220161287 + 7.2265625e-07 -0.9852776423889411 -0.1709618887603017 + 7.265625e-07 -0.9891765099647809 -0.1467304744553623 + 7.3046875e-07 -0.9924795345987101 -0.122410675199216 + 7.34375e-07 -0.9951847266721969 -0.09801714032956045 + 7.382812499999999e-07 -0.9972904566786902 -0.07356456359966736 + 7.421874999999999e-07 -0.9987954562051724 -0.04906767432741803 + 7.460937499999999e-07 -0.9996988186962042 -0.02454122852291239 + 7.5e-07 -1 -1.83697019872103e-16 + 7.5390625e-07 -0.9996988186962042 0.02454122852291202 + 7.578125e-07 -0.9987954562051724 0.04906767432741766 + 7.6171875e-07 -0.9972904566786902 0.07356456359966698 + 7.65625e-07 -0.9951847266721969 0.09801714032956009 + 7.6953125e-07 -0.9924795345987101 0.1224106751992156 + 7.734375e-07 -0.9891765099647809 0.1467304744553619 + 7.773437499999999e-07 -0.9852776423889412 0.1709618887603013 + 7.812499999999999e-07 -0.9807852804032304 0.1950903220161283 + 7.851562499999999e-07 -0.9757021300385286 0.2191012401568697 + 7.890625e-07 -0.970031253194544 0.2429801799032638 + 7.9296875e-07 -0.96377606579544 0.2667127574748982 + 7.96875e-07 -0.9569403357322089 0.2902846772544621 + 8.0078125e-07 -0.9495281805930368 0.3136817403988911 + 8.046875e-07 -0.9415440651830209 0.3368898533922196 + 8.0859375e-07 -0.9329927988347391 0.3598950365349876 + 8.124999999999999e-07 -0.9238795325112866 0.38268343236509 + 8.164062499999999e-07 -0.9142097557035306 0.40524131400499 + 8.203124999999999e-07 -0.9039892931234433 0.4275550934302821 + 8.242187499999999e-07 -0.8932243011955153 0.4496113296546066 + 8.28125e-07 -0.881921264348355 0.4713967368259976 + 8.3203125e-07 -0.8700869911087115 0.4928981922297839 + 8.359375e-07 -0.8577286100002722 0.5141027441932216 + 8.3984375e-07 -0.8448535652497072 0.5349976198870969 + 8.4375e-07 -0.8314696123025455 0.5555702330196018 + 8.4765625e-07 -0.817584813151584 0.5758081914178449 + 8.515624999999999e-07 -0.8032075314806453 0.5956993044924329 + 8.554687499999999e-07 -0.7883464276266061 0.615231590580627 + 8.593749999999999e-07 -0.7730104533627369 0.6343932841636456 + 8.632812499999999e-07 -0.7572088465064846 0.6531728429537768 + 8.671875e-07 -0.7409511253549591 0.6715589548470183 + 8.7109375e-07 -0.724247082951467 0.6895405447370668 + 8.75e-07 -0.7071067811865477 0.7071067811865474 + 8.7890625e-07 -0.6895405447370672 0.7242470829514667 + 8.828125e-07 -0.6715589548470187 0.7409511253549589 + 8.8671875e-07 -0.6531728429537771 0.7572088465064842 + 8.906249999999999e-07 -0.6343932841636459 0.7730104533627367 + 8.945312499999999e-07 -0.6152315905806274 0.7883464276266059 + 8.984374999999999e-07 -0.5956993044924332 0.8032075314806451 + 9.023437499999999e-07 -0.5758081914178452 0.8175848131515837 + 9.0625e-07 -0.5555702330196022 0.8314696123025452 + 9.1015625e-07 -0.5349976198870973 0.844853565249707 + 9.140625e-07 -0.5141027441932219 0.857728610000272 + 9.1796875e-07 -0.4928981922297843 0.8700869911087113 + 9.21875e-07 -0.4713967368259979 0.8819212643483548 + 9.2578125e-07 -0.449611329654607 0.8932243011955151 + 9.296874999999999e-07 -0.4275550934302825 0.9039892931234431 + 9.335937499999999e-07 -0.4052413140049904 0.9142097557035305 + 9.374999999999999e-07 -0.3826834323650904 0.9238795325112865 + 9.414062499999999e-07 -0.359895036534988 0.932992798834739 + 9.453125e-07 -0.33688985339222 0.9415440651830208 + 9.4921875e-07 -0.3136817403988915 0.9495281805930367 + 9.53125e-07 -0.2902846772544625 0.9569403357322088 + 9.5703125e-07 -0.2667127574748986 0.9637760657954398 + 9.609374999999999e-07 -0.2429801799032642 0.970031253194544 + 9.648437499999999e-07 -0.2191012401568702 0.9757021300385285 + 9.6875e-07 -0.1950903220161287 0.9807852804032303 + 9.726562499999999e-07 -0.1709618887603018 0.9852776423889411 + 9.765625e-07 -0.1467304744553624 0.9891765099647809 + 9.804687499999999e-07 -0.122410675199216 0.99247953459871 + 9.84375e-07 -0.09801714032956051 0.9951847266721969 + 9.882812499999999e-07 -0.07356456359966741 0.9972904566786902 + 9.921875e-07 -0.04906767432741809 0.9987954562051724 + 9.960937499999999e-07 -0.02454122852291245 0.9996988186962042 + 1e-06 -2.449293598294706e-16 1 + + diff --git a/Windows/spice/examples/xspice/xspice_c1.cir b/Windows/spice/examples/xspice/xspice_c1.cir new file mode 100644 index 00000000..022d9138 --- /dev/null +++ b/Windows/spice/examples/xspice/xspice_c1.cir @@ -0,0 +1,22 @@ +A Berkeley SPICE3 compatible circuit +* +* This circuit contains only Berkeley SPICE3 components. +* +* The circuit is an AC coupled transistor amplifier with +* a sinewave input at node "1", a gain of approximately -3.9, +* and output on node "coll". +* +.tran 1e-5 2e-3 +* +vcc vcc 0 12.0 +vin 1 0 0.0 ac 1.0 sin(0 1 1k) +ccouple 1 base 10uF +rbias1 vcc base 100k +rbias2 base 0 24k +q1 coll base emit generic +rcollector vcc coll 3.9k +remitter emit 0 1k +* +.model generic npn +* +.end diff --git a/Windows/spice/examples/xspice/xspice_c2.cir b/Windows/spice/examples/xspice/xspice_c2.cir new file mode 100644 index 00000000..5c66bdd1 --- /dev/null +++ b/Windows/spice/examples/xspice/xspice_c2.cir @@ -0,0 +1,16 @@ +A transistor amplifier circuit +* +.tran 1e-5 2e-3 +* +vin 1 0 0.0 ac 1.0 sin(0 1 1k) +* +ccouple 1 in 10uF +rzin in 0 19.35k +* +aamp in aout gain_block +.model gain_block gain (gain = -3.9 out_offset = 7.003) +* +rzout aout coll 3.9k +rbig coll 0 1e12 +* +.end diff --git a/Windows/spice/examples/xspice/xspice_c3.cir b/Windows/spice/examples/xspice/xspice_c3.cir new file mode 100644 index 00000000..4c536293 --- /dev/null +++ b/Windows/spice/examples/xspice/xspice_c3.cir @@ -0,0 +1,97 @@ +Mixed IO types +* This circuit contains a mixture of IO types, including +* analog, digital, user-defined (real), and 'null'. +* +* The circuit demonstrates the use of the digital and +* user-defined node capability to model system-level designs +* such as sampled-data filters. The simulated circuit +* contains a digital oscillator enabled after 100us. The +* square wave oscillator output is divided by 8 with a +* ripple counter. The result is passed through a digital +* filter to convert it to a sine wave. +* +.tran 1e-5 1e-3 +.save all +* +v1 1 0 0.0 pulse(0 1 1e-4 1e-6) +r1 1 0 1k +* +abridge1 [1] [enable] atod +.model atod adc_bridge +* +aclk [enable clk] clk nand +.model nand d_nand (rise_delay=1e-5 fall_delay=1e-5) +* +adiv2 div2_out clk NULL NULL NULL div2_out dff +adiv4 div4_out div2_out NULL NULL NULL div4_out dff +adiv8 div8_out div4_out NULL NULL NULL div8_out dff +.model dff d_dff +* +abridge2 div8_out enable filt_in node_bridge2 +.model node_bridge2 d_to_real (zero=-1 one=1) +* +xfilter filt_in clk filt_out dig_filter +* +abridge3 filt_out a_out node_bridge3 +.model node_bridge3 real_to_v +* +rlpf1 a_out oa_minus 10k +* +xlpf 0 oa_minus lpf_out opamp +* +rlpf2 oa_minus lpf_out 10k +clpf lpf_out oa_minus 0.01uF +* +* +.subckt dig_filter filt_in clk filt_out +* +.model n0 real_gain (gain=1.0) +.model n1 real_gain (gain=2.0) +.model n2 real_gain (gain=1.0) +.model g1 real_gain (gain=0.125) +.model zm1 real_delay +.model d0a real_gain (gain=-0.75) +.model d1a real_gain (gain=0.5625) +.model d0b real_gain (gain=-0.3438) +.model d1b real_gain (gain=1.0) +* +an0a filt_in x0a n0 +an1a filt_in x1a n1 +an2a filt_in x2a n2 +* +az0a x0a clk x1a zm1 +az1a x1a clk x2a zm1 +* +ad0a x2a x0a d0a +ad1a x2a x1a d1a +* +az2a x2a filt1_out g1 +az3a filt1_out clk filt2_in zm1 +* +an0b filt2_in x0b n0 +an1b filt2_in x1b n1 +an2b filt2_in x2b n2 +* +az0b x0b clk x1b zm1 +az1b x1b clk x2b zm1 +* +ad0 x2b x0b d0b +ad1 x2b x1b d1b +* +az2b x2b clk filt_out zm1 +* +.ends dig_filter +* +* +.subckt opamp plus minus out +* +r1 plus minus 300k +a1 %vd (plus minus) outint lim +.model lim limit (out_lower_limit = -12 out_upper_limit = 12 ++ fraction = true limit_range = 0.2 gain=300e3) +r3 outint out 50.0 +r2 out 0 1e12 +* +.ends opamp +* +.end diff --git a/Windows/spice/how-to-use-ngspice140111.txt b/Windows/spice/how-to-use-ngspice140111.txt new file mode 100644 index 00000000..b84e9684 --- /dev/null +++ b/Windows/spice/how-to-use-ngspice140111.txt @@ -0,0 +1,359 @@ + H. Vogt, Jan 12th, 2014 + +ngspice-26 has been compiled from the ngspice-26 tarball, Jan 11th, 2014. + +ngspice.exe was generated by MS Visual Studio 2008, configuration +ReleaseOMP, using full optimization (compiler flags /O2 /Oi /Ot /GL, linker flag /ltcg). + +vcomp90.dll is the microsoft runtime distributable for OpenMP +(see C:\Program Files (x86)\Microsoft Visual Studio 9.0\1031\redist.txt). + +The XSPICE code models *.cm were generated with +TDM mingw gcc 4.8.1 and MSYS 1.0.10 using the following configuration: + +./configure --with-windows --enable-xspice --enable-cider --disable-debug + +gcc is invoked with the -O2 compiler flag, which is set in configure.ac. + +This version of ngspice 26 thus does not contain the adms or ndev extensions. + +Expand the ngspice-26-140112.zip file directly into C: so that you will get C:\Spice\bin etc. +For other places for ngspice installation, see below. + +The following examples are tested under Windows XP professional and Windows 7 64 Bit. + +Directory /examples offers some example input files for special commands. + + +*** How to use ngspice with examples provided in directory /tests *** + +********************************************************************* +Starting ngspice from MS Explorer window (interactive mode): + +Double click on ngspice.exe in C:\Spice\bin + +*** ngspice window: + +cd c:\spice\tests\bsim4 + +source comprt.cir + +run + +display + +plot v(1) v(2) v(3) v(8) v(9) + +write comprt2.raw + +quit +********************************************************************* + +********************************************************************* +* Starting ngspice within the msys window, interactive mode: + +* Open an MSYS window. + +*** msys window: + +export PATH=$PATH:/c/Spice/bin + +cd /c/Spice/tests/bsim4 + +ngspice comprt.cir + +*** ngspice window: + +run +display +plot all + +*** write data into raw file to actual directory /c/Spice/tests/bsim4: + +write comprt.raw + +quit + +If you want to use interactive mode with a circuit file in a different +directory (e.g. C:\test\comprt.cir) , you have to call ngspice like this: + +ngspice C:\\test\\comprt.cir +or +ngspice C:\\test/comprt.cir + +MSYS 1.0.10 is specific about file and directory names! + +You cannot start ngspice from C:\ or D:\ directly if you don't +have administrator rights. You may choose a subdirectory instead. + +********************************************************************* + +********************************************************************* +* Starting ngspice within the msys window, batch mode: + +* Open an MSYS window. + +*** msys window: + +export PATH=$PATH:/c/Spice/bin + +cd /c/Spice/tests/bsim4 + +ngspice -b -r comprt3.raw -o comprt3.out comprt.cir + +* Plotting + +*** msys window: + +ngspice +load comprt3.raw +plot v(1) v(2) v(3) v(8) v(9) +quit + +* The data in the raw file comprt3.raw are stored in a compact binary +* format. If you want them to be ASCII, you have to uncomment line +set filetype=ascii +* in C:\Spice\share\ngspice\scripts\spinit (remove the '*'). +********************************************************************* + +********************************************************************* +* Starting ngspice within the dos window (cmd.exe) , interactive mode: +* (also an example for using xspice extension) + +* Open a DOS window. + +*** DOS window: + +set PATH=%PATH%;C:\Spice\bin + +cd C:\Spice\examples\transimpedanceamp + +ngspice output.net + +*** ngspice window: + +run +display +* end display with 'q' +plot vout2 + +* write all data into raw file to actual directory C:\Spice\tests\transimpedanceamp: +write timp.raw +* write only input and output +write timp2.raw v3#branch vout2 +quit + +Calling a source file in a different directory is done by: + +ngspice D:\testinput\output.net + +********************************************************************* +********************************************************************* +* Use ngnutmeg for plotting within the dos window (cmd.exe), using the +raw file timp.raw created above: + +* Open a DOS window. + +*** DOS window: + +set PATH=%PATH%;C:\Spice\bin + +cd C:\Spice\examples\transimpedanceamp + +ngspice + +*** ngspice window: +load timp.raw +plot vout2 +plot i(v3) + +quit +********************************************************************* + +********************************************************************* +* Starting ngspice within the dos window (cmd.exe) , batch mode, using +* .plot and/or .print commands in the input file (printer plot output), +* no raw file, similar to SPICE2G6: + +* Open a DOS window. + +*** DOS window: + +set PATH=%PATH%;C:\Spice\bin + +cd C:\Spice\examples\ + +ngspice -b -o cs.out cs_mixtv4.inp + +* The ouput will be plotted and printed to C:\Spice\examples\cs.out. + +* If you enter +ngspice -b -r cs.raw -o cs.out cs_mixtv4.inp +* instead, you will get a raw file (simulator output data), +* .print and .plot will be ignored. +* You may plot the data by using ngnutmeg (see example above). + +********************************************************************* +********************************************************************* +* A numparam example with convergence and ringing problems +(Xiaoqun Wu e.a.: "Bifurcation Behavior of SPICE Simulations of Switching Converters: A Systematic +Analysis of Erroneous Results", IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 5, SEPTEMBER 2007, p.1743 + +dos window (cmd.exe) , interactive mode: + +* Open a DOS window. + +*** DOS window: + +set PATH=%PATH%;C:\Spice\bin + +cd C:\Spice\examples\numparam + +ngspice power.cir + +*** ngspice window: + +run +plot vc#branch + +*** compare to literature by selecting appropriate plot windows using right mouse tab + +* write all data into raw file to actual directory C:\Spice\examples\numparam: +write power-all.raw +* write only relevant output +write power.raw vc#branch +quit + +********************************************************************* +********************************************************************* +* Running ngspice from a different directory (for example D:\tmp) +* Starting ngspice within the dos window (cmd.exe) , interactive mode: + +* Extract ngspice.zip to D:\tmp + +* Edit spinit (found in D:\tmp\Spice\share\ngspice\scripts) to have the correct + path for the XSPICE codemodels: + Line + codemodel C:/Spice/lib/spice/spice2poly.cm + has to be replaced by + codemodel D:/temp/Spice/lib/spice/spice2poly.cm + the other codemodels lines have to be changed respectively. + +* Open a DOS window. + +*** DOS window: + +set SPICE_LIB_DIR=D:\tmp\Spice\share\ngspice +set PATH=%PATH%;D:\tmp\Spice\bin +cd D:\tmp\Spice\examples\transimpedanceamp +D: + +ngspice output.net + +*** ngspice window: + +run +plot vout2 + +* write all data into raw file to actual directory D:\tmp\Spice\tests\transimpedanceamp: +write timp.raw +* write only input and output +write timp2.raw v3#branch vout2 +quit + +********************************************************************* +********************************************************************* +* Running ngspice from a different directory (for example D:\tmp) +* Starting ngspice within the dos window (cmd.exe) , interactive mode + or starting with double click on ngspice in MS explorer: + +* Extract ngspice.zip to D:\tmp +* under Windows XP you may put the following lines into C:\autoexec.bat: + +set SPICE_LIB_DIR=D:\tmp\Spice\share\ngspice +set PATH=%PATH%;D:\tmp\Spice\bin + +* Edit spinit (found in D:\tmp\share\ngspice\scripts) to have the correct + path for the XSPICE codemodels: + Line + codemodel C:/Spice/lib/spice/spice2poly.cm + has to be replaced by + codemodel D:/temp/Spice/lib/spice/spice2poly.cm + the other codemodels lines have to be changed respectively. + +* You may then start immediately after opening the command window (cmd.exe) + with: + +cd D:\tmp\Spice\examples\transimpedanceamp +D: + +ngspice output.net + +*** ngspice window: + +run +plot vout2 + +* write all data into raw file to actual directory D:\tmp\Spice\tests\transimpedanceamp: +write timp.raw +* write only input and output +write timp2.raw v3#branch vout2 +quit + +********************************************************************* + +********************************************************************* +********************************************************************* +* spinit + +* spinit is used to set options or to set varioables. spinit is read into ngspice + before any input file. The codemeodel path for xspice may be set as well. + + There is a search sequence for spinit. + 1) If the invironmental variable is SPICE_LIB_DIR is set to a path, e.g. to + SPICE_LIB_DIR=D:\tmp\Spice\share\ngspice, then spinit is searched for + in D:\tmp\Spice\share\ngspice\scripts. If not set then we look for it in + C:\Spice\share\ngspice\scripts. If this path is not available or spinit is + not there, then ngspice searches for spinit in the path where ngspice.exe + resides. If not found there, a warning note is issued. + +* .spiceinit + +* .spiceinit is read directly after the spinit file. You may keep spinit as is, + and put any personal preset variables or scripts into .spiceinit. Data in + .spiceinit will override data from spinit. + ngspice will search for .spiceinit either in your home directory or in the + directory where ngspice.exe is located. + +********************************************************************* +********************************************************************* +* Universial, simple install + + Put ngspice.exe and spinit into a subdirectory myspice\bin + Put the codemodels (e.g. analog.cm) into a subdirectoty myspice\codemodels. + Edit spinit and change the codemodel lines to + + codemodel ../codemodels/spice2poly.cm + + etc. + + Instead of 'myspice' you may now choose any directory for your installation + of \bin and \codemodels, even C:\ will work. + + +********************************************************************* +********************************************************************* +* miscellaneous + +Documentation specific to ngspice is available at +http://ngspice.sourceforge.net/docs.html. + +For additional info I recommend the Spice3 user manual at: +http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/index.html#toc + +For some information on CIDER see +http://embedded.eecs.berkeley.edu/pubs/downloads/cider/index.htm +A manual however is missing on this web site. + +For an xspice manual see +http://users.ece.gatech.edu/~mrichard/Xspice/ diff --git a/Windows/spice/lib/ngspice/analog.cm b/Windows/spice/lib/ngspice/analog.cm Binary files differnew file mode 100644 index 00000000..9d88281c --- /dev/null +++ b/Windows/spice/lib/ngspice/analog.cm diff --git a/Windows/spice/lib/ngspice/digital.cm b/Windows/spice/lib/ngspice/digital.cm Binary files differnew file mode 100644 index 00000000..dd3f943a --- /dev/null +++ b/Windows/spice/lib/ngspice/digital.cm diff --git a/Windows/spice/lib/ngspice/spice2poly.cm b/Windows/spice/lib/ngspice/spice2poly.cm Binary files differnew file mode 100644 index 00000000..e3fb67b2 --- /dev/null +++ b/Windows/spice/lib/ngspice/spice2poly.cm diff --git a/Windows/spice/lib/ngspice/xtradev.cm b/Windows/spice/lib/ngspice/xtradev.cm Binary files differnew file mode 100644 index 00000000..19117c6e --- /dev/null +++ b/Windows/spice/lib/ngspice/xtradev.cm diff --git a/Windows/spice/lib/ngspice/xtraevt.cm b/Windows/spice/lib/ngspice/xtraevt.cm Binary files differnew file mode 100644 index 00000000..437a4668 --- /dev/null +++ b/Windows/spice/lib/ngspice/xtraevt.cm diff --git a/Windows/spice/share/man/man1/ngmultidec.1 b/Windows/spice/share/man/man1/ngmultidec.1 new file mode 100644 index 00000000..617ed32d --- /dev/null +++ b/Windows/spice/share/man/man1/ngmultidec.1 @@ -0,0 +1,105 @@ +.TH NGMULTIDEC 1 ngpice +.SH NAME +ngmultidec \- make ngpice sub-circuit for coupled transmission lines +.SH SYNOPSIS +.B ngmultidec +[ +.IR options ... +] +.SH DESCRIPTION +.I ngmultidec +writes an ngspice input file to standard output which describes a sub-circuit for coupled lines +using uncoupled simple lossy lines. +.LP +Each generated subcircuit models a 4-conductor transmission line with +the following parameters: length +.IR l , +line capacitance +.IR c , +line resistance +.IR r , +line conductance +.IR g , +inductive_coeff_of_coupling +.IR k , +inter-line capacitance +.IR cm , +length +.IR l . +Derived parameters are: +.IR lm , +.IR ctot . +The values of +.IR l , +.IR c , +the model name, the number of conductors and the length of the line +must be specified. +.LP +It is important to note that the model is a simplified one - the +following assumptions are made: 1. The self-inductance l, the +self-capacitance ctot (note: not c), the series resistance r and the +parallel capacitance g are the same for all lines, and 2. Each line +is coupled only to the two lines adjacent to it, with the same +coupling parameters cm and lm. +The first assumption implies that edge effects have to be neglected. +The utility of these assumptions is +that they make the sL+R and sC+G matrices symmetric, tridiagonal and +Toeplitz, with useful consequences (see the paper referenced below). +.LP +It may be noted that a symmetric two-conductor line is +represented accurately by this model. +.LP +Standard C language scientific (exponent) notation may be used for options' numeric values. +.SH OPTIONS +.TP +.BI \-o "subcircuit_name" +Set the subcircuit name +.TP +.BI \-l "line_inductance" +Set the line inductance. +.TP +.BI \-c "line_capacitance" +Set the line capacitance. +.TP +.BI \-r "line_resistance" +Set the line resistance. +.TP +.BI \-g "line_conductance" +Set the line conductance. +.TP +.BI \-k "inductive_coefficient_of_coupling" +Set the value of the inductive coefficient of coupling, whose +absolute value +.I k +must be less than 1.0. +.TP +.BI \-x "line-to-line-capacitance" +Set the line-to-line capacitance. +.TP +.BI \-L "length" +Set the length of the line. +.TP +.BI \-n "number" +Set the number of conductors. +.TP +.B \-u +Write a usage message to standard error. +.SH EXAMPLE +.RS +.B ngmultidec -n4 -l9e9 -c20e-12 -r5.3 -x5e12 -k0.7 -otest -L5.4 > test.cir +.RE +.SH SEE ALSO +.nf +.IR "Efficient Transient Simulation of Lossy Interconnect" , +J.S. Roychowdhury and D.O. Pederson, +Proceedings of the Design Automation Conference, +pp. 740-745. +1991. +.B http://portal.acm.org/citation.cfm?doid=127601.127762 +.fi +.sp +.IR ngnutmeg (1), +.IR ngproc2mod (1), +.IR ngsconvert (1), +.IR ngspice (1), +.IR nghelp (1). diff --git a/Windows/spice/share/man/man1/ngnutmeg.1 b/Windows/spice/share/man/man1/ngnutmeg.1 new file mode 100644 index 00000000..bafc122b --- /dev/null +++ b/Windows/spice/share/man/man1/ngnutmeg.1 @@ -0,0 +1,83 @@ +.\" Copyright (c) 1985 Wayne A. Christopher, U. C. Berkeley CAD Group +.ig + +(woman-find-file buffer-file-name) + +(let* ((man-args (concat "-l " buffer-file-name)) + (bufname (concat "*Man " man-args "*"))) + (when (get-buffer bufname) + (kill-buffer bufname)) + (man man-args)) + +(compile + (concat "groff -t -e -man -Tps " + buffer-file-name + " > /tmp/tmp.ps && gv /tmp/tmp.ps")) + +.. +.TH NGNUTMEG 1 "6 June 2010" +.ds = \-\^\- +.ds ngspice \s-2NGSPICE\s+2 +.SH "NAME" +ngnutmeg \- ngspice post-processor +.SH "SYNOPSIS" +\fBngnutmeg\fP [\fIoptions\fP] [\fIdatafile\fP ...] +.SH "DESCRIPTION" +This man page is just a small overview. +The primary documentation of ngspice is in the \*[ngspice] User's Manual, +which is available as a pdf file. +.br +\fBngnutmeg\fP is a post processor for \*[ngspice] \- it takes +the raw output file created by \fBngspice \-r\fP +and plots the data on a graphics terminal or a workstation display. +Note that the raw output file is different from the +data that \*[ngspice] writes to the standard output. +.SH "OPTIONS" +.TP +\fB\-\fP +.br +Don't try to load the default data file ("rawspice") if no other files +are given. +.TP +\fB\-n\fP or \fB\*=no\-spiceinit\fP +Don't try to source the file ".spiceinit" upon startup. Normally \fBngnutmeg\fP +tries to find the file in the current directory, and if it is not found then +in the user's home directory. +.TP +\fB\-q\fP or \fB\*=completion\fP +Enable command completion. (defect) +.TP +\fB\-t\fP \fIterm\fP or \fB\*=term=\fP\fIterm\fP +The program is being run on a terminal with \fBmfb\fP name \fIterm\fP. +.TP +\fB\-h\fP or \fB\*=help\fP +Display a verbose help on the arguments available to the program. +.TP +\fB\-v\fP or \fB\*=version\fP +Display a version number and copyright information of the program. +.PP +Further arguments are taken to be data files in binary or ascii format +(see \fBsconvert\fP(1)) which are loaded into ngnutmeg. +If the file +is in binary format, it may be only partially completed (useful for +examining \*[ngspice] output before the simulation is finished). +One file may contain any number of data sets from different analyses. +.SH "ENVIRONMENT" +See ngspice(1) +.SH "FILES" +See ngspice(1) +.SH "SEE ALSO" +sconvert(1), ngspice(1), mfb(3), writedata(3), and +.br +\*[ngspice] User's Manual at \fBhttp://ngspice.sourceforge.net/docs.html\fP +.SH "BUGS" +Please report bugs to the ngspice project via +.br +\fBhttp://ngspice.sourceforge.net/bugrep.html\fP +.SH "AUTHOR" +Wayne Christopher (faustus@cad.berkeley.edu) +.br +\fBngspice\fP: various authors (see \fBhttp://sourceforge.net/projects/ngspice/\fP) +.\" Local Variables: +.\" mode: nroff +.\" End: diff --git a/Windows/spice/share/man/man1/ngsconvert.1 b/Windows/spice/share/man/man1/ngsconvert.1 new file mode 100644 index 00000000..55f72967 --- /dev/null +++ b/Windows/spice/share/man/man1/ngsconvert.1 @@ -0,0 +1,126 @@ +.\" Copyright (c) 1985 Wayne A. Christopher, U. C. Berkeley CAD Group +.TH SCONVERT 1 "20 March 1986" +.UC 4 +.SH NAME +sconvert \- convert spice formats +.SH SYNOPSIS +.B sconvert fromtype fromfile totype tofile +.br +.B sconvert fromtype totype +.br +.B sconvert +.br +.SH DESCRIPTION +.B Sconvert +translates spice output files among three formats: the old +binary format, a new binary format, and a new ascii format. +The formats are specified by the +.B fromtype +and +.B totype +arguments: `o' for the old format, `b' for the new binary format, +and `a' for the new ascii format. +.B Fromtype +specifies the format to be read, and +.B totype +specifies the format to be written. +If +.B fromfile +and +.B tofile +are given, then they are used as the input and output, otherwise +standard input and output are used. +(Note that this second option is only available on \s-2UNIX\s+2 systems +\- on VMS and other systems you must supply the filenames.) +If no arguments are given, the parameters are prompted for. +.PP +Binary format is the preferred format for general use, as it is +the most economical in terms of space and speed of access, and ascii is +provided to make it easy to modify data files and transfer them +between machines with different floating-point formats. +The old format is provided only +for backward compatibility. +The three formats are as follows: +.br +.nf + +.B Old: + + What Size in Bytes + + title 80 + date 8 + time 8 + numoutputs 2 + the integer 4 2 + variable names -- + char[numoutputs][8] numoutputs * 8 + types of output numoutputs * 2 + node index numoutputs * 2 + plot title numoutputs * 24 + the actual data numpoints * numoutputs * 8 + +.B Ascii: + + Title: \fITitle Card String\fR + Date: \fIDate\fR + [ Plotname: \fIPlot Name\fR + Flags: \fIcomplex\fR or \fIreal\fR + No. Variables: \fInumoutputs\fR + No. Points: \fInumpoints\fR + Command: \fInutmeg command\fR + Variables: 0 \fIvarname1\fR \fItypename1\fR + 1 \fIvarname2\fR \fItypename2\fR + etc... + Values: + 0 n n n n ... + 1 n n n n ... + And so forth... + ] repeated one or more times +.fi +.PP +If one of the flags is \fIcomplex\fR, the points look like r,i where r and i +are floating point (in %e format). +Otherwise they are in %e format. +Only one of \fIreal\fR and \fIcomplex\fR should appear. +.PP +The lines are guaranteed to be less than 80 columns wide (unless the +plot title or variable names are very long), so this format is safe +to mail between systems like CMS. +.PP +Any number of \fBCommand:\fR lines may appear between the \fBNo. Points:\fR +and the \fBVariables:\fR lines, and whenever the plot is loaded into +\fBnutmeg\fR they will be executed. +.nf + +.B Binary: + + \fITitle Card\fR (a NULL terminated string) + \fIDate, Time\fR (a NULL terminated string) + [ + \fIPlot title\fR (a NULL terminated string) + \fINumber of variables\fR (an int) + \fINumber of data points\fR (an int) + \fIflags\fR (a short) + \fIvariable header struct\fR (repeated numoutputs times) + \fIvariable name\fR (a NULL terminated string) + \fIvariable type\fR (an int) + \fIset of outputs\fR (repeated numpoints times) + ] repeated one or more times. +.fi +.PP +A set of outputs is a vector of doubles of length numoutputs, or +a vector of real-imaginary pairs of doubles if the data is complex. +.SH "SEE ALSO" +nutmeg(1), spice(1), writedata(3) +.SH AUTHOR +Wayne Christopher (faustus@cad.berkeley.edu) +.SH BUGS +If variable names and the title +and plotname strings have trailing +blanks in them they will be stripped off when the file is read, if +it is in ascii format. +.PP +If a plot title begins with "Title:" \fBnutmeg\fR will be fooled into thinking +that this is an ascii format file. +\fBSconvert\fR always requires the type to be specified, however. diff --git a/Windows/spice/share/man/man1/ngspice.1 b/Windows/spice/share/man/man1/ngspice.1 new file mode 100644 index 00000000..cd5e31db --- /dev/null +++ b/Windows/spice/share/man/man1/ngspice.1 @@ -0,0 +1,152 @@ +.\" Copyright (c) 1985 Wayne A. Christopher, U. C. Berkeley CAD Group +.ig + +(woman-find-file buffer-file-name) + +(let* ((man-args (concat "-l " buffer-file-name)) + (bufname (concat "*Man " man-args "*"))) + (when (get-buffer bufname) + (kill-buffer bufname)) + (man man-args)) + +(compile (concat "groff -t -e -man -Tps " + buffer-file-name + " > /tmp/tmp.ps && gv /tmp/tmp.ps")) + +.. +.TH NGSPICE 1 "6 June 2010" +.ds = \-\^\- +.ds ngspice \s-2NGSPICE\s+2 +.SH "NAME" +ngspice \- circuit simulator derived from SPICE3f5 +.SH "SYNOPSIS" +\fBngspice\fP [\fIoptions\fP] [\fIfile\fP ...] +.SH "DESCRIPTION" +This man page is just a small overview. +The primary documentation of ngspice is in the \*[ngspice] User's Manual, +which is available as a pdf file. +.SH "OPTIONS" +.TP +\fB\-n\fP or \fB\*=no\-spiceinit\fP +Don't try to source the file ".spiceinit" upon startup. Normally \*[ngspice] +tries to find the file in the current directory, and if it is not found then +in the user's home directory. +.TP +\fB\-q\fP or \fB\*=completion\fP +Enable command completion. (defect) +.TP +\fB\-t\fP \fIterm\fP or \fB\*=term=\fP\fIterm\fP +The program is being run on a terminal with \fBmfb\fP name \fIterm\fP. +.TP +\fB\-b\fP or \fB\*=batch\fP +Run in batch mode. +\*[ngspice] will read the standard input or the specified +input file and do the simulation. +Note that if the standard input is not a terminal, \*[ngspice] will default +to batch mode, unless the \-i flag is given. +.TP +\fB\-s\fP or \fB\*=server\fP +Run in server mode. +This is like batch mode, except that a temporary rawfile is used and then +written to the standard output, preceded by a line with a single "@", after +the simulation is done. +This mode is used by the ngspice daemon. +.TP +\fB\-i\fP or \fB\*=interactive\fP +Run in interactive mode. +This is useful if the standard input is not a terminal but interactive mode +is desired. +Command completion is not available unless the standard input is a terminal, +however. +.TP +\fB\-r\fP \fIrawfile\fP or \fB\*=rawfile=\fP\fIfile\fP +Use \fIrawfile\fP as the default file into which the results of +the simulation are saved. +.TP +\fB\-c\fP \fIcircuitfile\fP or \fB\*=circuitfile=\fP\fIcircuitfile\fP +Use \fIcircuitfile\fP as the default input deck. +.TP +\fB\-h\fP or \fB\*=help\fP +Display a verbose help on the arguments available to the program. +.TP +\fB\-v\fP or \fB\*=version\fP +Display a version number and copyright information of the program. +.TP +\fB\-a\fP or \fB\*=autorun\fP +FIXME +.TP +\fB\-o\fP \fIoutfile\fP or \fB\*=output=\fP\fIoutfile\fP +All logs generated during a batch run (\fB\-b\fP) will be saved in \fIoutfile\fP. +.TP +\fB\-p\fP or \fB\*=pipe\fP +Allow a program (e.g., xcircuit) to act as a GUI frontend for +ngspice through a pipe. +Thus ngspice will assume that the pipe is a tty and allows one to run in +interactive mode. +.PP +Further arguments are taken to be SPICE input decks, which are read +and saved. +(If batch mode is requested then they are run immediately.) +.SH "ENVIRONMENT" +.TP +\fBSPICE_LIB_DIR\fP +.TP +\fBSPICE_EXEC_DIR\fP +.TP +\fBSPICE_HOST\fP +.TP +\fBSPICE_BUGADDR\fP +.TP +\fBSPICE_EDITOR\fP +.TP +\fBSPICE_ASCIIRAWFILE\fP default \fI0\fP +Format of the rawfile. +\fI0\fP for binary, and \fI1\fP for ascii. +.TP +\fBSPICE_NEWS\fP default \fI$SPICE_LIB_DIR/news\fP +A file which is copied verbatim to stdout when ngspice starts in interactive mode. +.TP +\fBSPICE_MFBCAP\fP default \fI$SPICE_LIB_DIR/mfbcap\fP +.TP +\fBSPICE_HELP_DIR\fP default \fI$SPICE_LIB_DIR/helpdir\fP +.TP +\fBSPICE_SCRIPTS\fP default \fI$SPICE_LIB_DIR/scripts\fP +In this directory the \fIspinit\fP file will be searched. +.TP +\fBSPICE_PATH\fP default \fI$SPICE_EXEC_DIR/ngspice\fP +.PP +various undocumented ngspice centric environment variables : +.TP +\fBNGSPICE_MEAS_PRECISION\fP +.TP +\fBSPICE_NO_DATASEG_CHECK\fP +.PP +Common environment variables : +.TP +\fBTERM\fP \fBLINES\fP \fBCOLS\fP \fBDISPLAY\fP \fBHOME\fP \fBPATH\fP \fBEDITOR\fP \fBSHELL\fP +.TP +\fBPOSIXLY_CORRECT\fP +.SH "FILES" +.TP +\fI$SPICE_LIB_DIR/scripts/spinit\fP +The System's Initialisation File. +.TP +\fI\&.spiceinit\fP or \fI$HOME/.spiceinit\fP +The User's Initialisation File. +.SH "SEE ALSO" +sconvert(1), ngnutmeg(1), mfb(3), writedata(3), and +.br +\*[ngspice] User's Manual at \fBhttp://ngspice.sourceforge.net/docs.html\fP +.SH "BUGS" +Please report bugs to the ngspice project via +.br +\fBhttp://ngspice.sourceforge.net/bugrep.html\fP +.SH "AUTHORS" +\fBspice3\fP: Tom Quarles (quarles@cad.berkeley.edu) +.br +\fBnutmeg\fP: User interface: Wayne Christopher (faustus@cad.berkeley.edu) +.br +\fBngspice\fP: various authors (see \fBhttp://sourceforge.net/projects/ngspice/\fP) +.\" Local Variables: +.\" mode: nroff +.\" End: diff --git a/Windows/spice/share/ngspice/scripts/ciderinit b/Windows/spice/share/ngspice/scripts/ciderinit new file mode 100644 index 00000000..56163322 --- /dev/null +++ b/Windows/spice/share/ngspice/scripts/ciderinit @@ -0,0 +1,23 @@ +*** This is a sample spice/cider initialization file. +alias pl print line +alias pc print col +alias ds display +alias hi history +alias li listing +alias p plot +alias pr print +alias q quit +alias bye quit +alias exit quit +alias so source +alias ld load +alias xg xgraph tmp +alias sp setplot +alias dl devload +alias dx devaxis +set width = 80 height = 24 nosort noaskquit nobreak +set xbrushheight = 3 xbrushwidth = 3 +set unixcom +set hcopydevtype = postscript +set pointstyle = markers +set term = vt100 diff --git a/Windows/spice/share/ngspice/scripts/devaxis b/Windows/spice/share/ngspice/scripts/devaxis new file mode 100644 index 00000000..7b3d23f3 --- /dev/null +++ b/Windows/spice/share/ngspice/scripts/devaxis @@ -0,0 +1,69 @@ +* initialize a device plot +.control +begin + unset axis + if $argc = 1 + set axis = $argv[1] + strcmp flag $axis "x" + if ($flag = 0) + echo "setting axis to x" + strcmp flag "$?&devaxis" "0" + if ($flag = 0) + strcmp flag "$?&xaxis" "0" + if ($flag = 0) + echo "Error: no x axis present" + else + transpose all + setscale xaxis + let devaxis = 1 + end + else + strcmp flag "$&devaxis" "-1" + if ($flag = 0) + strcmp flag "$?&xaxis" "0" + if ($flag = 0) + echo "Error: no x axis present" + else + transpose all + setscale xaxis + let devaxis = 1 + end + end + end + else + strcmp flag $axis "y" + if ($flag = 0) + echo "setting axis to y" + strcmp flag "$?&devaxis" "0" + if ($flag = 0) + strcmp flag "$?&yaxis" "0" + if ($flag = 0) + echo "Error: no y axis present" + else + setscale yaxis + let devaxis = -1 + end + else + strcmp flag "$&devaxis" "1" + if ($flag = 0) + strcmp flag "$?&yaxis" "0" + if ($flag = 0) + echo "Error: no y axis present" + else + transpose all + setscale yaxis + let devaxis = -1 + end + end + end + else + echo "Error: unknown axis" $axis + echo "usage: devaxis <x|y>" + end + end + else + echo "usage: devaxis <x|y>" + end + + unset axis flag +end diff --git a/Windows/spice/share/ngspice/scripts/devload b/Windows/spice/share/ngspice/scripts/devload new file mode 100644 index 00000000..d007fad5 --- /dev/null +++ b/Windows/spice/share/ngspice/scripts/devload @@ -0,0 +1,21 @@ +* initialize a device plot +.control +begin + unset devfile + if $argc = 1 + set devfile = $argv[1] + load $devfile + strcmp flag "$?&y" "1" + if ($flag = 0) + let yaxis = y[0] + transpose all + let xaxis = x[0] + transpose all + setscale yaxis + end + else + echo "usage: devload <filename>" + end + + unset devfile flag +end diff --git a/Windows/spice/share/ngspice/scripts/setplot b/Windows/spice/share/ngspice/scripts/setplot new file mode 100644 index 00000000..38ca0da1 --- /dev/null +++ b/Windows/spice/share/ngspice/scripts/setplot @@ -0,0 +1,64 @@ +* set the current working plot +.control + +begin + unset resp + if $argc + set resp = $argv[1] + else + if $?plots = 0 + echo Error: there aren\'t any plots currently loaded. + goto bottom + else + if $#plots = 0 + echo Error: there aren\'t any plots currently loaded. + goto bottom + end + end + + if $?resp = 0 + set oldplot = $curplot + echo ' Type the name of the desired plot:' + echo '' + echo ' new New plot' + foreach pl $plots + set curplot = $pl + strcmp i $pl $oldplot + if $i = 0 + echo "Current $pl $curplottitle ({$curplotname})" + else + echo " $pl $curplottitle ({$curplotname})" + end + end + set curplot = $oldplot + echo -n '? ' + set resp = $< + end + end + + + strcmp i $resp "" + if $i = 0 + goto bottom + end + + strcmp i $resp new + if $i = 0 + set curplot = new + goto bottom + end + + foreach pl $plots + strcmp i $resp $pl + if $i = 0 + set curplot = $pl + goto bottom + end + end + + echo Error: no such plot name $resp + + label bottom + + unset resp i pl newflag oldplot +end diff --git a/Windows/spice/share/ngspice/scripts/spectrum b/Windows/spice/share/ngspice/scripts/spectrum new file mode 100644 index 00000000..3e394432 --- /dev/null +++ b/Windows/spice/share/ngspice/scripts/spectrum @@ -0,0 +1,165 @@ +* Fourier Series Function for SPICE +* This script is offered here for learning purposes, even if it is outdated +* and superseeded by the spec function and especially by the much faster fft function. +* You may use this script in conjunction with e.g. a ringoscillator output (see +* the ngspice manual, chapter 17). + +.control + begin + +* Variable argc delivers the number of command line parameters given by the user +* after the 'spectrum' command + if ($argc lt 4) + echo Error: Too few arguments. + echo ' 'Spectrum produces a plot containing a fourier series transformation of + echo ' 'the specified vectors + echo usage: spectrum startfreq stop step vec [[vec] ...] + goto bottom + end + +* Check if vectors 'time' and any input vector(s) are available +* argv[n] delivers the command line entries after the 'spectrum' command, +* starting with argv[1]. $argv[4-len] delivers the value of all tokens, +* starting with postion 4 till the end of the command line + if ( time eq time ) + foreach vec $argv[4-len] + if ( $vec eq $vec ) + else + goto bottom + end + end + else + echo ' 'Spectrum can not work without a time vector from a transient analysis. + goto bottom + end + + * generate a new plot entitled 'scratch', which will hold intermediate + * results and will be discarded after their evaluation. + set dt=$curplot + set title=$curplottitle + set curplot=new + set scratch=$curplot + + * A vector 'span' is created in the 'scratch' plot to hold the time difference + * of the transient simulation. {$dt}.time allows to access the 'time' vector + * from the dt plot (which is normally named 'tranx' with x a consecutoive + * integer number, depending on the amount of transient simulations already run + * in the present job. + let span={$dt}.time[length({$dt}.time)-1]-{$dt}.time[0] + +* Calculate the number of steps in all of the spectra to be evaluated below + if ($argv[3] gt 0.999/span) + let fpoints= ( $argv[2] - $argv[1] ) / $argv[3] +1 + if (fpoints < 2) + echo frequency start stop or step not correctly specified + goto reset + end + else + echo Error: time span is not long enough for a step frequency of $argv[3] Hz + goto reset + end + let lent = length({$dt}.time) + set lent = "$&lent" + let nyquist = {$lent}/2/span + if ($argv[2] gt nyquist) + echo Error: The nyquist limit is exceeded, try a frequency less than "$&nyquist" Hz + goto reset + end + set fpoints="$&fpoints" + + * generate a new plot to hold the spectra + set curplot=new + set spec=$curplot + set curplottitle=$title + set curplotname='Spectrum Analysis' + +* argv[3] is the third agrgument from the input line +* spectrum 1 1000MEG 10MEG v(out25) +* that is the delta frequency +* The fcn vector(n) creates a vector of length n, its elements have +* the values 0, 1, 2, 3, ..., n-2, n-1. Each element then is multiplied +* with the frequency step value. + let frequency=vector( $fpoints )*$argv[3] + +* Add an frequency offset to each element of vector 'frequency' +* to suppress the (typically) large dc component. + dowhile frequency[1] < ( $argv[1] + 1e-9 ) + let frequency = frequency + $argv[3] + end + +* For each input vector given on the command line, +* create a new vector for complex numbers + foreach vec $argv[4-len] + let $vec = vector( $fpoints ) + j(vector( $fpoints )) + reshape $vec [{$fpoints}] + end + +* $scratch is a plot for intermediate results, will be destroyed during cleanup +* $dt is the plot with the original data +* $spec is a plot for storing the spectrum + set curplot=$scratch + + * some test + let npers=1 + let test = span-2/$argv[3] + 1e-9 + while test > 0 + let npers = npers + 1 + let test = test-1/$argv[3] + end + + * Do the spectrum calculations + let ircle = 2*pi*max(-1,({$dt}.time-{$dt}.time[{$lent}-1])*{$argv[3]}/npers) + let win = 1 - cos(ircle) + let ircle = npers*ircle + let circle = ircle * ({$spec}.frequency[0]/$argv[3] - 1) + let k=vector( $fpoints ) + foreach k $&k + let circle = circle + ircle + foreach vec $argv[4-len] + let tmp = win*{$dt}.{$vec} + let {$spec}.{$vec}[{$k}] = 2*(mean(cos(circle)*tmp),mean(sin(circle)*tmp)) + end + end + +* plot (and write) the generated spectrum + set curplot = $spec + settype frequency frequency + foreach vec $argv[4-len] + let spectrum = mag({$vec}) + plot spectrum + write specout.out spectrum + end + +* If you have an oscillator, fimd its frequency +* as maximum of vector spectrum or goto end (uncomment next line) +* goto cleanup + set curplot=$scratch + let counter = 0 + let contents = 0 + let freqmax = 0 + let spectrum = {$spec}.spectrum + + foreach spectrum $&spectrum + if counter > 4 + if ( contents < $spectrum ) + let contents = $spectrum + set count = "$&counter" + let freqmax = {$spec}.frequency[{$count}] + end + end + let counter = counter + 1 + end + + echo + echo Osc. frequency at "$&freqmax" Hz + echo + goto cleanup + + label reset + set curplot=$dt + label cleanup + destroy $scratch + unset fpoints dt scratch spec vec k title lent + label bottom + + end diff --git a/Windows/spice/share/ngspice/scripts/spinit b/Windows/spice/share/ngspice/scripts/spinit new file mode 100644 index 00000000..ed5cd0e6 --- /dev/null +++ b/Windows/spice/share/ngspice/scripts/spinit @@ -0,0 +1,31 @@ +* Standard ngspice init file +alias exit quit +alias acct rusage all +set x11lineararcs +*set rndseed=12 +** ascii rawfile ** +*set filetype=ascii +** frontend debug output ** +*set ngdebug +** no asking after quit ** +set noaskquit +** set the number of threads in openmp +** default (if compiled with --enable-openmp) is: 2 +*set num_threads=4 + +strcmp __flag $program "ngspice" +if $__flag = 0 + +* For SPICE2 POLYs, edit the below line to point to the location +* of your codemodel. + + codemodel C:/Spice/lib/ngspice/spice2poly.cm + +* The other codemodels + codemodel C:/Spice/lib/ngspice/analog.cm + codemodel C:/Spice/lib/ngspice/digital.cm + codemodel C:/Spice/lib/ngspice/xtradev.cm + codemodel C:/Spice/lib/ngspice/xtraevt.cm + +end +unset __flag diff --git a/Windows/spice/tests/.gitignore b/Windows/spice/tests/.gitignore new file mode 100644 index 00000000..27779af0 --- /dev/null +++ b/Windows/spice/tests/.gitignore @@ -0,0 +1,8 @@ +*.test +*.log + +ngspiceCkt + +/xspice/digital/spinit + +results/ diff --git a/Windows/spice/tests/ChangeLog b/Windows/spice/tests/ChangeLog new file mode 100644 index 00000000..96f56f5b --- /dev/null +++ b/Windows/spice/tests/ChangeLog @@ -0,0 +1,23 @@ +2001-12-07 Paolo Nenzi <p.nenzi@ieee.org> + + * tests/: added mesa tests from macspice3f4 and corrected all other tests. + +2001-12-04 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr> + + * check.sh (testdir): turned that script into 'real' sh script + (was bash, really) + +2000-09-14 Arno W. Peters <A.W.Peters@ieee.org> + + * diffpair.out, filters/lowpass.out, polezero/filt_bridge_t.out, + polezero/filt_multistage.out, polezero/filt_rc.out, + resistance/res_array.out, resistance/res_partition.out: Updated + for new spice output. + + +2000-09-09 Arno W. Peters <A.W.Peters@ieee.org> + + * fourbitadder.out, resistance/res_simple.out: Updated to + correspond to the new output from ngspice. + + diff --git a/Windows/spice/tests/Makefile.am b/Windows/spice/tests/Makefile.am new file mode 100644 index 00000000..8b896304 --- /dev/null +++ b/Windows/spice/tests/Makefile.am @@ -0,0 +1,50 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = \ + bsim3 \ + bsim4 \ + bsimsoi \ + hisim \ + hisimhv1 \ + regression + +if XSPICE_WANTED +SUBDIRS += xspice +endif + + +DIST_SUBDIRS = \ + bsim1 \ + bsim2 \ + bsim3 \ + bsim3soidd \ + bsim3soifd \ + bsim3soipd \ + bsim4 \ + bsimsoi \ + filters \ + general \ + hfet \ + hisim \ + hisimhv1 \ + jfet \ + mes \ + mesa \ + mos6 \ + polezero \ + regression \ + resistance \ + sensitivity \ + transient \ + transmission \ + vbic \ + xspice + + +TESTS_ENVIRONMENT = \ + $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + README bin .gitignore + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/Makefile.in b/Windows/spice/tests/Makefile.in new file mode 100644 index 00000000..6fe8eb1a --- /dev/null +++ b/Windows/spice/tests/Makefile.in @@ -0,0 +1,644 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@XSPICE_WANTED_TRUE@am__append_1 = xspice +subdir = tests +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + ChangeLog +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = bsim3 bsim4 bsimsoi hisim hisimhv1 regression \ + $(am__append_1) +DIST_SUBDIRS = \ + bsim1 \ + bsim2 \ + bsim3 \ + bsim3soidd \ + bsim3soifd \ + bsim3soipd \ + bsim4 \ + bsimsoi \ + filters \ + general \ + hfet \ + hisim \ + hisimhv1 \ + jfet \ + mes \ + mesa \ + mos6 \ + polezero \ + regression \ + resistance \ + sensitivity \ + transient \ + transmission \ + vbic \ + xspice + +TESTS_ENVIRONMENT = \ + $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + README bin .gitignore + +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/README b/Windows/spice/tests/README new file mode 100644 index 00000000..cafa6690 --- /dev/null +++ b/Windows/spice/tests/README @@ -0,0 +1,28 @@ +ngspice test and example files: +=============================== + +This directory is organized as a tree of subdirectories containing test files +for devices and analyses implemented in ngspice. + +Some files comes from the original Spice3f5 package and others have been +contributed by developers and users. + + +File Extension Convention: + +.cir : Circuit file. This can be a simple circuit description or a spice2 + input file. +.out : .cir files have been run and results are recorded into this + type of file. This is useful if want to test ngspice against + known (hopefully correct results). + +REPLICATE TESTS + +To replicate tests you have to launch configure without any option and +compile ngspice. In the future this will change. + +TO ADD NEW TESTS + +Take an existing test and adopt it to your liking. Add the test +script and its supporting files to Makefile.am. Use `make check' to +see your new test in action. diff --git a/Windows/spice/tests/bsim1/Makefile.am b/Windows/spice/tests/bsim1/Makefile.am new file mode 100644 index 00000000..9924d8c7 --- /dev/null +++ b/Windows/spice/tests/bsim1/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + test.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim1/Makefile.in b/Windows/spice/tests/bsim1/Makefile.in new file mode 100644 index 00000000..e4034674 --- /dev/null +++ b/Windows/spice/tests/bsim1/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim1 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + test.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim1/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim1/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim1/test.cir b/Windows/spice/tests/bsim1/test.cir new file mode 100644 index 00000000..0ca6150f --- /dev/null +++ b/Windows/spice/tests/bsim1/test.cir @@ -0,0 +1,108 @@ +Test of MOS BSIM1 implementation; DC transfer curve +****************************************************************** +MN1 13 2 0 4 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN2 23 2 0 5 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN3 33 2 0 6 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN4 43 2 0 7 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN5 53 2 0 8 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +VDS 3 0 0.05 +VGS 2 0 0 +V1 3 13 0 +V2 3 23 0 +V3 3 33 0 +V4 3 43 0 +V5 3 53 0 +VBS1 4 0 0 +VBS2 5 0 -1 +VBS3 6 0 -2 +VBS4 7 0 -3 +VBS5 8 0 -4 +*************************************************************** +*.OPTIONS LIMPTS=5000 ACCT +.OPTIONS NOACCT +.DC VGS 0 5 0.01 +.PRINT DC I(V1) I(V2) I(V3) I(V4) I(V5) +*.PLOT DC I(V1) I(V2) I(V3) I(V4) I(V5) +*.OPTIONS LIMPTS=501 ACCT +*VGS 2 0 PWL(0 0 5 5) +*.TRAN 0 5 0.01 +*.PRINT TRAN I(V1) I(V2) I(V3) I(V4) I(V5) +***** MODEL PARAMETERS TEMP2 ******************** +.MODEL NMOS NMOS ++ LEVEL = 4.00000E+000 ++ TOX = 3.00000E-002 ++ VDD = 5.00000E+000 ++ TEMP = 2.70000E+001 ++ DL = 7.97991E-001 ++ DW = 4.77402E-001 ++ VFB = -1.0087E+000 ++ PHI = 7.96434E-001 ++ K1 = 1.31191E+000 ++ K2 = 1.46640E-001 ++ ETA = -1.0027E-003 ++ MUZ = 5.34334E+002 ++ U0 = 4.38497E-002 ++ U1 = -5.7332E-002 ++ X2E = -7.6911E-004 ++ X3E = 7.86777E-004 ++ X2MZ = 8.25434E+000 ++ MUS = 5.40612E+002 ++ X2MS = -1.2992E+001 ++ X3MS = -9.4035E+000 ++ X2U0 = 1.06821E-003 ++ X2U1 = -1.9209E-002 ++ X3U1 = 7.76925E-003 ++ LVFB = -2.1402E-001 ++ WVFB = 3.44354E-001 ++ LK1 = 3.23395E-001 ++ WK1 = -5.7698E-001 ++ LK2 = 1.68585E-001 ++ WK2 = -1.8796E-001 ++ LETA = -9.4847E-003 ++ WETA = 1.47316E-002 ++ LU0 = 6.38105E-002 ++ WU0 = -6.1053E-002 ++ LU1 = 1.01174E+000 ++ WU1 = 1.62706E-002 ++ LX2E = 9.62411E-003 ++ WX2E = -3.7951E-003 ++ LX3E = 7.35448E-004 ++ WX3E = -1.7796E-003 ++ LX2MZ = -2.4197E+001 ++ WX2MZ = 1.95696E+001 ++ LMUS = 6.21401E+002 ++ WMUS = -1.9190E+002 ++ LX2MS = -6.4900E+001 ++ WX2MS = 4.29043E+001 ++ LX3MS = 1.18239E+002 ++ WX3MS = -2.9747E+001 ++ LX2U0 = -8.0958E-003 ++ WX2U0 = 4.03379E-003 ++ LX2U1 = -7.4573E-002 ++ WX2U1 = 1.47520E-002 ++ LX3U1 = -1.0940E-001 ++ WX3U1 = -8.3353E-003 ++ N0 = 1.55 ++ NB = 0.09 ++ ND = 0.0 ++ LN0 = 0.0 ++ WN0 = 0.0 ++ LNB = 0.0 ++ WNB = 0.0 ++ LND = 0.0 ++ WND = 0.0 ++ CGDO = 2.70000E-010 ++ CGSO = 2.70000E-010 ++ CGBO = 1.40000E-010 ++ XPART = 1.0 ++ RSH = 35.0 ++ CJ = 2.75E-4 ++ CJSW = 1.90E-10 ++ JS = 1.0E-8 ++ PB = 0.7 ++ PBSW = 0.8 ++ MJ = 0.5 ++ MJSW = 0.33 ++ WDF = 0.0 +***** ***** +.END diff --git a/Windows/spice/tests/bsim2/Makefile.am b/Windows/spice/tests/bsim2/Makefile.am new file mode 100644 index 00000000..9924d8c7 --- /dev/null +++ b/Windows/spice/tests/bsim2/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + test.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim2/Makefile.in b/Windows/spice/tests/bsim2/Makefile.in new file mode 100644 index 00000000..02bc2f9e --- /dev/null +++ b/Windows/spice/tests/bsim2/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim2 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + test.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim2/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim2/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim2/test.cir b/Windows/spice/tests/bsim2/test.cir new file mode 100644 index 00000000..74e3a486 --- /dev/null +++ b/Windows/spice/tests/bsim2/test.cir @@ -0,0 +1,80 @@ +Test of MOS BSIM2 implementation; DC transfer curve +****************************************************************** +MN1 13 2 0 4 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN2 23 2 0 5 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN3 33 2 0 6 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN4 43 2 0 7 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +MN5 53 2 0 8 NMOS L=10U W=50.0U AD=100P AS=100P PD=40U PS=40U +VDS 3 0 0.05 +VGS 2 0 0 +V1 3 13 0 +V2 3 23 0 +V3 3 33 0 +V4 3 43 0 +V5 3 53 0 +VBS1 4 0 0 +VBS2 5 0 -1 +VBS3 6 0 -2 +VBS4 7 0 -3 +VBS5 8 0 -4 +*************************************************************** +*.OPTIONS LIMPTS=5000 ACCT +.OPTIONS NOACCT +.DC VGS 0 5 0.01 +.PRINT DC I(V1) I(V2) I(V3) I(V4) I(V5) +*.PLOT DC I(V1) I(V2) I(V3) I(V4) I(V5) +*.OPTIONS LIMPTS=501 ACCT +*VGS 2 0 PWL(0 0 5 5) +*.TRAN 0 5 0.01 +*.PRINT TRAN I(V1) I(V2) I(V3) I(V4) I(V5) +***** MODEL PARAMETERS TEMP2 ******************** +* This file contains the BSIM2 process file parameters as they should +* be input to the .model card of spice3c1. +.model nmos nmos level=5 ++ vfb = -0.7919 lvfb = -0.0266 wvfb = 0.0000 ++ phi = 0.8039 lphi = 0.0042 wphi = 0.0000 ++ k1 = 0.7286 lk1 = 0.0309 wk1 = 0.0000 ++ k2 = -0.0506 lk2 = 0.0786 wk2 = 0.0000 ++ mu0 = 453.2926 dl = 0.1553 dw = 0.0000 ++ mu0b = -5.4925 lmu0b = -1.9192 wmu0b = 0.0000 ++ mus0 = 781.7117 lmus0 = 25.2769 wmus0 = 0.0000 ++ musb = 25.5724 lmusb = -10.0060 wmusb = 0.0000 ++ mu20 = 0.9390 lmu20 = -0.0840 wmu20 = 0.0000 ++ mu2b = 0.0753 lmu2b = -0.0148 wmu2b = 0.0000 ++ mu2g = 0.1804 lmu2g = 0.0181 wmu2g = 0.0000 ++ mu30 = 44.9689 lmu30 = -0.0933 wmu30 = 0.0000 ++ mu3b = 0.5871 lmu3b = 1.0793 wmu3b = 0.0000 ++ mu3g = -11.6723 lmu3g = 0.6804 wmu3g = 0.0000 ++ mu40 = 0.2682 lmu40 = 2.3969 wmu40 = 0.0000 ++ mu4b = -0.3179 lmu4b = 0.1264 wmu4b = 0.0000 ++ mu4g = -0.2654 lmu4g = -0.5702 wmu4g = 0.0000 ++ ua0 = 0.0441 lua0 = 0.2283 wua0 = 0.0000 ++ uab = -0.0045 luab = -0.0105 wuab = 0.0000 ++ ub0 = 0.0125 lub0 = -0.0051 wub0 = 0.0000 ++ ubb = -0.0015 lubb = 0.0010 wubb = 0.0000 ++ u10 = 0.1262 lu10 = 0.5563 wu10 = 0.0000 ++ u1d = -0.2967 lu1d = -0.0062 wu1d = 0.0000 ++ u1b = 0.0960 lu1b = -0.0345 wu1b = 0.0000 ++ eta0 = -0.0373 leta0 = 0.0271 weta0 = 0.0000 ++ etab = 0.0004 letab = -0.0041 wetab = 0.0000 ++ n0 = 0.8032 ln0 = 0.1734 wn0 = 0.0000 ++ nd = 0.0105 lnd = -0.0091 wnd = 0.0000 ++ nb = 0.5978 lnb = -0.1638 wnb = 0.0000 ++ vof0 = 1.4977 lvof0 = -0.1766 wvof0 = 0.0000 ++ vofd = 0.1795 lvofd = -0.1247 wvofd = 0.0000 ++ vofb = 0.8368 lvofb = -0.3432 wvofb = 0.0000 ++ ai0 = 32.0150 lai0 = 8.2816 wai0 = 0.0000 ++ aib = -19.5396 laib = 4.9347 waib = 0.0000 ++ bi0 = 37.6044 lbi0 = -1.8713 wbi0 = 0.0000 ++ bib = -2.5109 lbib = 0.7903 wbib = 0.0000 ++ vghigh = 0.2342 lvghigh = -0.0007 wvghigh = 0.0000 ++ vglow = -0.1023 lvglow = 0.0038 wvglow = 0.0000 ++ tox = 0.0150 temp = 27 vdd = 5.0 vgg = 5.0 vbb = -3.0 ++ cgdo = 1.0e-10 cgso = 1.0e-10 cgbo = 2.5e-11 ++ xpart = 0 ++ rsh = 0 cj = 0.0002 cjsw = 1.0e-10 ++ js = 5e-5 pb = 0.7 pbsw = 0.8 ++ mj = 0.5 mjsw = 0.33 wdf = 0 ++ dell = 0 +***** ***** +.END diff --git a/Windows/spice/tests/bsim3/Makefile.am b/Windows/spice/tests/bsim3/Makefile.am new file mode 100644 index 00000000..29292d5b --- /dev/null +++ b/Windows/spice/tests/bsim3/Makefile.am @@ -0,0 +1,5 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = ac_sim dc_sim tran_sim + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3/Makefile.in b/Windows/spice/tests/bsim3/Makefile.in new file mode 100644 index 00000000..2c0560b3 --- /dev/null +++ b/Windows/spice/tests/bsim3/Makefile.in @@ -0,0 +1,609 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = ac_sim dc_sim tran_sim +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3/ac_sim/Makefile.am b/Windows/spice/tests/bsim3/ac_sim/Makefile.am new file mode 100644 index 00000000..e3cfa712 --- /dev/null +++ b/Windows/spice/tests/bsim3/ac_sim/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + +TESTS = gain-stage.cir \ + op-amp.cir + + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3/ac_sim/Makefile.in b/Windows/spice/tests/bsim3/ac_sim/Makefile.in new file mode 100644 index 00000000..82006c68 --- /dev/null +++ b/Windows/spice/tests/bsim3/ac_sim/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3/ac_sim +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = gain-stage.cir \ + op-amp.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3/ac_sim/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3/ac_sim/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3/ac_sim/gain-stage.cir b/Windows/spice/tests/bsim3/ac_sim/gain-stage.cir new file mode 100644 index 00000000..00e31738 --- /dev/null +++ b/Windows/spice/tests/bsim3/ac_sim/gain-stage.cir @@ -0,0 +1,17 @@ +*A Simple MOSFET Gain Stage. AC Analysis. + +M1 3 2 0 0 nmos w=4u l=1u +Rsource 1 2 100k +Rload 3 vdd 25k + +Vdd vdd 0 5 +Vin 1 0 1.44 ac .1 + +.options noacct +.ac dec 10 100 1000Meg +.print ac vdb(3) + +.model nmos nmos level=8 version=3.2.2 + +.end + diff --git a/Windows/spice/tests/bsim3/ac_sim/op-amp.cir b/Windows/spice/tests/bsim3/ac_sim/op-amp.cir new file mode 100644 index 00000000..9f01c3be --- /dev/null +++ b/Windows/spice/tests/bsim3/ac_sim/op-amp.cir @@ -0,0 +1,37 @@ +* Operational Amplifier. AC Analysis. +* BSIM3 testing, 3/16/96. + +*Operational Amplifier +M1 bias1 1 cm cm nmos w=10u l=1u +M2 bias2 in2 cm cm nmos w=10u l=1u +M3 vdd bias1 bias1 vdd pmos w=2u l=1u +M4 bias2 bias1 vdd vdd pmos w=2u l=1u + +m5 cm bias vss vss nmos w=2u l=1u +mbias bias bias vss vss nmos w=2u l=1u +rbias 0 bias 195k + +m6 8 bias vss vss nmos w=2u l=1u +m7 8 bias2 vdd out nmos w=2u l=1u + +Cfb bias2 8 2p + +Vid 1 c 0 ac 0.1 +eid in2 c 1 c -1 +vic c 0 dc 0 +vss vss 0 -5 +Vdd vdd 0 5 + +*AC analysis +.options noacct +.ac dec 10 100 100Meg +.print ac vdb(8) + +.model nmos nmos level=8 version=3.2.2 +.model pmos pmos level=8 version=3.2.2 + +.end + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/Makefile.am b/Windows/spice/tests/bsim3/dc_sim/Makefile.am new file mode 100644 index 00000000..f3fa5814 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/Makefile.am @@ -0,0 +1,28 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + test1.cir \ + test2.cir \ + test3.cir \ + test4.cir \ + test5.cir \ + test6.cir \ + test7.cir \ + test8.cir \ + test9.cir \ + test10.cir \ + test11.cir \ + test12.cir \ + test13.cir \ + test14.cir + + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + modelcard.nmos \ + modelcard.pmos \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3/dc_sim/Makefile.in b/Windows/spice/tests/bsim3/dc_sim/Makefile.in new file mode 100644 index 00000000..aa63fdcf --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/Makefile.in @@ -0,0 +1,529 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3/dc_sim +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + test1.cir \ + test2.cir \ + test3.cir \ + test4.cir \ + test5.cir \ + test6.cir \ + test7.cir \ + test8.cir \ + test9.cir \ + test10.cir \ + test11.cir \ + test12.cir \ + test13.cir \ + test14.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + modelcard.nmos \ + modelcard.pmos \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3/dc_sim/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3/dc_sim/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3/dc_sim/modelcard.nmos b/Windows/spice/tests/bsim3/dc_sim/modelcard.nmos new file mode 100644 index 00000000..e09340b3 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/modelcard.nmos @@ -0,0 +1,41 @@ +*model = bsim3v3 +*Berkeley Spice Compatibility +* Lmin= .35 Lmax= 20 Wmin= .6 Wmax= 20 +.model N1 NMOS ++Level= 8 version=3.2.2 ++Tnom=27.0 ++Nch= 2.498E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=9.36e-8 Wint=1.47e-7 ++Vth0= .6322 K1= .756 K2= -3.83e-2 K3= -2.612 ++Dvt0= 2.812 Dvt1= 0.462 Dvt2=-9.17e-2 ++Nlx= 3.52291E-08 W0= 1.163e-6 ++K3b= 2.233 ++Vsat= 86301.58 Ua= 6.47e-9 Ub= 4.23e-18 Uc=-4.706281E-11 ++Rdsw= 650 U0= 388.3203 wr=1 ++A0= .3496967 Ags=.1 B0=0.546 B1= 1 ++ Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213 ++Keta=-3.605872E-02 A1= 2.778747E-02 A2= .9 ++Voff=-6.735529E-02 NFactor= 1.139926 Cit= 1.622527E-04 ++Cdsc=-2.147181E-05 ++Cdscb= 0 Dvt0w = 0 Dvt1w = 0 Dvt2w = 0 ++ Cdscd = 0 Prwg = 0 ++Eta0= 1.0281729E-02 Etab=-5.042203E-03 ++Dsub= .31871233 ++Pclm= 1.114846 Pdiblc1= 2.45357E-03 Pdiblc2= 6.406289E-03 ++Drout= .31871233 Pscbe1= 5000000 Pscbe2= 5E-09 Pdiblcb = -.234 ++Pvag= 0 delta=0.01 ++ Wl = 0 Ww = -1.420242E-09 Wwl = 0 ++ Wln = 0 Wwn = .2613948 Ll = 1.300902E-10 ++ Lw = 0 Lwl = 0 Lln = .316394 ++ Lwn = 0 ++kt1=-.3 kt2=-.051 ++At= 22400 ++Ute=-1.48 ++Ua1= 3.31E-10 Ub1= 2.61E-19 Uc1= -3.42e-10 ++Kt1l=0 Prt=764.3 + + + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/modelcard.pmos b/Windows/spice/tests/bsim3/dc_sim/modelcard.pmos new file mode 100644 index 00000000..dfd8522d --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/modelcard.pmos @@ -0,0 +1,31 @@ +.model P1 PMOS ++Level= 8 version=3.2.2 ++Tnom=27.0 ++Nch= 3.533024E+17 Tox=9E-09 Xj=1.00000E-07 ++Lint=6.23e-8 Wint=1.22e-7 ++Vth0=-.6732829 K1= .8362093 K2=-8.606622E-02 K3= 1.82 ++Dvt0= 1.903801 Dvt1= .5333922 Dvt2=-.1862677 ++Nlx= 1.28e-8 W0= 2.1e-6 ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323 ++Vsat= 103503.2 Ua= 1.39995E-09 Ub= 1.e-19 Uc=-2.73e-11 ++ Rdsw= 460 U0= 138.7609 ++A0= .4716551 Ags=0.12 ++Keta=-1.871516E-03 A1= .3417965 A2= 0.83 ++Voff=-.074182 NFactor= 1.54389 Cit=-1.015667E-03 ++Cdsc= 8.937517E-04 ++Cdscb= 1.45e-4 Cdscd=1.04e-4 ++ Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023 ++Eta0= 6.024776E-02 Etab=-4.64593E-03 ++Dsub= .23222404 ++Pclm= .989 Pdiblc1= 2.07418E-02 Pdiblc2= 1.33813E-3 ++Drout= .3222404 Pscbe1= 118000 Pscbe2= 1E-09 ++Pvag= 0 ++kt1= -0.25 kt2= -0.032 prt=64.5 ++At= 33000 ++Ute= -1.5 ++Ua1= 4.312e-9 Ub1= 6.65e-19 Uc1= 0 ++Kt1l=0 + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test1.cir b/Windows/spice/tests/bsim3/dc_sim/test1.cir new file mode 100644 index 00000000..e7110a9f --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test1.cir @@ -0,0 +1,21 @@ +*****Single NMOS Transistor For BSIM3V3 general purpose check (Id-Vd) *** + +*** circuit description *** +m1 2 1 0 0 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vds 2 0 3.5 + +.options noacct +.dc vds 0 3.5 0.05 vgs 0 3.5 0.5 + + +.print dc v(1) i(vds) + +.include modelcard.nmos + +.end + + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test10.cir b/Windows/spice/tests/bsim3/dc_sim/test10.cir new file mode 100644 index 00000000..3592cca6 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test10.cir @@ -0,0 +1,19 @@ +*** For BSIM3V3 general purpose check (Id-Vd) for Pmosfet *** +****************************************** + +*** circuit description *** +m1 2 1 0 0 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -3.5 + + +.dc vds 0 -3.5 -0.05 vgs 0 -3.5 -0.5 + +.options Temp=100.0 noacct +.print dc v(1) i(vds) + + +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test11.cir b/Windows/spice/tests/bsim3/dc_sim/test11.cir new file mode 100644 index 00000000..34ad652f --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test11.cir @@ -0,0 +1,17 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Pmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -0.1 +vbs 3 0 0.0 + +.options noacct +.dc vgs 0 -3.5 -0.05 vds -0.1 -3.1 -1. + +.print dc v(2) i(vds) +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test12.cir b/Windows/spice/tests/bsim3/dc_sim/test12.cir new file mode 100644 index 00000000..9405bd7e --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test12.cir @@ -0,0 +1,17 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Pmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -0.1 +vbs 3 0 0.0 + +.options noacct +.dc vgs 0 -3.5 -0.05 vbs 0 3. 0.5 + +.print dc v(2) i(vds) +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test13.cir b/Windows/spice/tests/bsim3/dc_sim/test13.cir new file mode 100644 index 00000000..e427a0b7 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test13.cir @@ -0,0 +1,18 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Pmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -0.1 +vbs 3 0 0.0 + + +.dc vgs 0 -3.5 -0.05 vbs 0 3. 0.5 +.options Temp=-55.0 noacct + +.print dc v(2) i(vds) +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test14.cir b/Windows/spice/tests/bsim3/dc_sim/test14.cir new file mode 100644 index 00000000..e65eec57 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test14.cir @@ -0,0 +1,19 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Pmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -0.1 +vbs 3 0 0.0 + + +.dc vgs 0 -3.5 -0.05 vbs 0 3. 0.5 +.options Temp=100.0 noacct + +.print dc v(2) i(vds) + +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test2.cir b/Windows/spice/tests/bsim3/dc_sim/test2.cir new file mode 100644 index 00000000..59505042 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test2.cir @@ -0,0 +1,21 @@ +*****Single NMOS Transistor For BSIM3V3 general purpose check (Id-Vd) *** + +*** circuit description *** +m1 2 1 0 0 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vds 2 0 3.5 + + +.dc vds 0 3.5 0.05 vgs 0 3.5 0.5 +.options Temp=-55.0 noacct + +.print dc v(1) i(vds) + +.include modelcard.nmos + +.end + + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test3.cir b/Windows/spice/tests/bsim3/dc_sim/test3.cir new file mode 100644 index 00000000..3fe34d89 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test3.cir @@ -0,0 +1,21 @@ +*****Single NMOS Transistor For BSIM3V3 general purpose check (Id-Vd) *** + +*** circuit description *** +m1 2 1 0 0 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vds 2 0 3.5 + + +.dc vds 0 3.5 0.05 vgs 0 3.5 0.5 +.options Temp=100.0 noacct + +.print dc v(1) i(vds) + +.include modelcard.nmos + +.end + + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test4.cir b/Windows/spice/tests/bsim3/dc_sim/test4.cir new file mode 100644 index 00000000..dcf1e26f --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test4.cir @@ -0,0 +1,20 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Nmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 0 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vds 2 0 3.5 + +.options noacct +.dc vgs 0 3.5 0.05 vds 0.1 3.1 1 + + +.print dc v(2) i(vds) + +.include modelcard.nmos +.end + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test5.cir b/Windows/spice/tests/bsim3/dc_sim/test5.cir new file mode 100644 index 00000000..a7fc8721 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test5.cir @@ -0,0 +1,22 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Nmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vbs 3 0 0 +vds 2 0 0.1 + +.dc vgs 0 3.5 0.05 vbs 0.0 -3. -0.5 + +.options noacct +.print dc v(2) i(vds) + +.include modelcard.nmos + +.end + + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test6.cir b/Windows/spice/tests/bsim3/dc_sim/test6.cir new file mode 100644 index 00000000..71fb0cb6 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test6.cir @@ -0,0 +1,17 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Nmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vbs 3 0 0 +vds 2 0 0.1 + +.dc vgs 0 3.5 0.05 vbs 0.0 -3. -0.5 + +.options Temp=-55.0 noacct +.print dc v(2) i(vds) + +.include modelcard.nmos +.end + diff --git a/Windows/spice/tests/bsim3/dc_sim/test7.cir b/Windows/spice/tests/bsim3/dc_sim/test7.cir new file mode 100644 index 00000000..ccbd57e9 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test7.cir @@ -0,0 +1,20 @@ +*** For BSIM3V3 general purpose check (Id-Vg) for Nmosfet*** +****************************************** + +*** circuit description *** +m1 2 1 0 3 n1 L=0.35u W=10.0u +vgs 1 0 3.5 +vbs 3 0 0 +vds 2 0 0.1 + +.dc vgs 0 3.5 0.05 vbs 0.0 -3. -0.5 + +.options Temp=100.0 noacct +.print dc v(2) i(vds) +.include modelcard.nmos +.end + + + + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test8.cir b/Windows/spice/tests/bsim3/dc_sim/test8.cir new file mode 100644 index 00000000..8888bd61 --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test8.cir @@ -0,0 +1,19 @@ +*** For BSIM3V3 general purpose check (Id-Vd) for Pmosfet *** +****************************************** + +*** circuit description *** +m1 2 1 0 0 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -3.5 + +.options noacct +.dc vds 0 -3.5 -0.05 vgs 0 -3.5 -0.5 + + +.print dc v(1) i(vds) + + +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/dc_sim/test9.cir b/Windows/spice/tests/bsim3/dc_sim/test9.cir new file mode 100644 index 00000000..f65c75ad --- /dev/null +++ b/Windows/spice/tests/bsim3/dc_sim/test9.cir @@ -0,0 +1,19 @@ +*** For BSIM3V3 general purpose check (Id-Vd) for Pmosfet *** +****************************************** + +*** circuit description *** +m1 2 1 0 0 p1 L=0.35u W=10.0u +vgs 1 0 -3.5 +vds 2 0 -3.5 + + +.dc vds 0 -3.5 -0.05 vgs 0 -3.5 -0.5 + +.options Temp=-55 noacct +.print dc v(1) i(vds) + + +.include modelcard.pmos +.end + + diff --git a/Windows/spice/tests/bsim3/tran_sim/Makefile.am b/Windows/spice/tests/bsim3/tran_sim/Makefile.am new file mode 100644 index 00000000..54e433c4 --- /dev/null +++ b/Windows/spice/tests/bsim3/tran_sim/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + +TESTS = comparator.cir \ + one-shot.cir + + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3/tran_sim/Makefile.in b/Windows/spice/tests/bsim3/tran_sim/Makefile.in new file mode 100644 index 00000000..8b5f9f73 --- /dev/null +++ b/Windows/spice/tests/bsim3/tran_sim/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3/tran_sim +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = comparator.cir \ + one-shot.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3/tran_sim/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3/tran_sim/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3/tran_sim/comparator.cir b/Windows/spice/tests/bsim3/tran_sim/comparator.cir new file mode 100644 index 00000000..8e44a171 --- /dev/null +++ b/Windows/spice/tests/bsim3/tran_sim/comparator.cir @@ -0,0 +1,40 @@ +*One Bit Comparator. Takes Two Inputs (A and B), and returns Two Ouputs - +*node 8 - (high when two signalsare equal) and node 9 (high when A is Larger Then B). +* Transient Analysis + +*circuit description + +M1 Anot A Vdd Vdd PMOS w=3.6u l=1.2u +M2 Anot A 0 0 NMOS w=1.8u l=1.2u +M3 Bnot B Vdd Vdd PMOS w=3.6u l=1.2u +M4 Bnot B 0 0 NMOS w=1.8u l=1.2u +M5 AorBnot 0 Vdd Vdd PMOS w=1.8u l=3.6u +M6 AorBnot B 1 0 NMOS w=1.8u l=1.2u +M7 1 Anot 0 0 NMOS w=1.8u l=1.2u +M8 Lnot 0 Vdd Vdd PMOS w=1.8u l=3.6u +M9 Lnot Bnot 2 0 NMOS w=1.8u l=1.2u +M10 2 A 0 0 NMOS w=1.8u l=1.2u +M11 Qnot 0 Vdd Vdd PMOS w=3.6u l=3.6u +M12 Qnot AorBnot 3 0 NMOS w=1.8u l=1.2u +M13 3 Lnot 0 0 NMOS w=1.8u l=1.2u +MQLO 8 Qnot Vdd Vdd PMOS w=3.6u l=1.2u +MQL1 8 Qnot 0 0 NMOS w=1.8u l=1.2u +MLTO 9 Lnot Vdd Vdd PMOS w=3.6u l=1.2u +MLT1 9 Lnot 0 0 NMOS w=1.8u l=1.2u +CQ Qnot 0 30f +CL Lnot 0 10f + +Vdd Vdd 0 5 +Va A 0 pulse 0 5 10ns .1ns .1ns 15ns 30ns +Vb B 0 0 + +.model nmos nmos level=8 version=3.2.2 +.model pmos pmos level=8 version=3.2.2 + +* transient analysis +.tran 1ns 60ns +.options noacct +.print tran a b v(9) v(8) + +.END + diff --git a/Windows/spice/tests/bsim3/tran_sim/one-shot.cir b/Windows/spice/tests/bsim3/tran_sim/one-shot.cir new file mode 100644 index 00000000..4e75736b --- /dev/null +++ b/Windows/spice/tests/bsim3/tran_sim/one-shot.cir @@ -0,0 +1,53 @@ +*One-shot Trigger. +*This cicruit generates a pulse of a predetermined width +*triggered by an input event. BSIM3 test. + +*A two-gate delay element +Md1 4 in Vdd Vdd PMOS w=3.6u l=1.2u +Md2 4 in 0 0 NMOS w=1.8u l=1.2u +c4 4 0 30f +Md3 A 4 Vdd Vdd PMOS w=3.6u l=1.2u +Md4 A 4 0 0 NMOS w=1.8u l=1.2u +ca a 0 30f + +*EXOR gate +*A inverter +M1 Anot A Vdd Vdd PMOS w=3.6u l=1.2u +M2 Anot A 0 0 NMOS w=1.8u l=1.2u + +M3 Bnot in Vdd Vdd PMOS w=3.6u l=1.2u +M4 Bnot in 0 0 NMOS w=1.8u l=1.2u + +M5 AorBnot 0 Vdd Vdd PMOS w=1.8u l=3.6u +M6 AorBnot in 1 0 NMOS w=1.8u l=1.2u +M7 1 Anot 0 0 NMOS w=1.8u l=1.2u + +M8 Lnot 0 Vdd Vdd PMOS w=1.8u l=3.6u +M9 Lnot Bnot 2 0 NMOS w=1.8u l=1.2u +M10 2 A 0 0 NMOS w=1.8u l=1.2u + +M11 out 0 Vdd Vdd PMOS w=3.6u l=3.6u +M12 out AorBnot 3 0 NMOS w=1.8u l=1.2u +M13 3 Lnot 0 0 NMOS w=1.8u l=1.2u +*end of EXOR gate + +Vcc vdd 0 5 +vin in 0 pulse 0 5 1ns .1ns .1ns .8ns 5ns + +.model nmos nmos level=8 version=3.2.2 +.model pmos pmos level=8 version=3.2.2 + +.tran 1ns 10ns +.print tran in out +.options noacct + +.END + + + + + + + + + diff --git a/Windows/spice/tests/bsim3soidd/Makefile.am b/Windows/spice/tests/bsim3soidd/Makefile.am new file mode 100644 index 00000000..a12504ae --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + t3.cir \ + t4.cir \ + t5.cir \ + inv2.cir \ + RampVg2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + nmosdd.mod \ + pmosdd.mod \ + $(TESTS) \ + $(TESTS:.cir=.out) + +EXTRA_DIST += ring51.cir lib.h + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3soidd/Makefile.in b/Windows/spice/tests/bsim3soidd/Makefile.in new file mode 100644 index 00000000..58449324 --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3soidd +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + t3.cir \ + t4.cir \ + t5.cir \ + inv2.cir \ + RampVg2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = nmosdd.mod pmosdd.mod $(TESTS) $(TESTS:.cir=.out) \ + ring51.cir lib.h +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3soidd/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3soidd/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3soidd/RampVg2.cir b/Windows/spice/tests/bsim3soidd/RampVg2.cir new file mode 100644 index 00000000..dde2a26e --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/RampVg2.cir @@ -0,0 +1,19 @@ +* BSIMSOI (DD) example +* +* SOI, Ramp Vg + +Vd d 0 1.5 +Vg g 0 0.0 PULSE 0V 2V .02n .1n .1n .2n .6n +Ve e 0 0.0 +Vs s 0 0.0 +Vb b 0 0.0 + +m1 d g s e n1 w=10u l=0.25u debug=-1 + +.option gmin=1e-20 itl1=200 itl2=200 abstol=1e-9 noacct +.tran 1p 1.0ns +.print tran @m1[Vbs], V(g)/10 +.include nmosdd.mod + +.end + diff --git a/Windows/spice/tests/bsim3soidd/inv2.cir b/Windows/spice/tests/bsim3soidd/inv2.cir new file mode 100644 index 00000000..f1240e8e --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/inv2.cir @@ -0,0 +1,17 @@ +* model = BSIMSOI (DD) +* +* +* SOI Inverter - floating body + +vin in 0 dc 2.5 +vdd dd 0 dc 2.5 +vss ss 0 dc 0 +ve e 0 dc 1.25 +m1 out in dd e p1 w=20u l=0.25u +m2 out in ss e n1 w=10u l=0.25u + +.option itl1=500 gmin=1e-25 noacct +.dc vin 0 2.5 0.01 +.print dc v(in), v(out) +.include nmosdd.mod +.include pmosdd.mod diff --git a/Windows/spice/tests/bsim3soidd/lib.h b/Windows/spice/tests/bsim3soidd/lib.h new file mode 100644 index 00000000..310aa396 --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/lib.h @@ -0,0 +1,110 @@ + + +.subckt dum ss +mn1 ss ss ss ss ss n1 w=4u l=0.15u debug=1 AS=6p AD=6p PS=7u PD=7u +.ends dum + +* XOR2 +.subckt xnor2 dd ss sub A B out +mn1 T1 A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out A C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 out B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn5 C2 T1 ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 T1 A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 T1 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out A C3 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 C3 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp5 out T1 dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends xnor2 + +.subckt nor2 dd ss sub A B out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor2 + +.subckt nand2 dd ss sub A B out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand2 + +.subckt nor3 dd ss sub A B C out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B C2 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 C2 C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor3 + +.subckt nand3 dd ss sub A B C out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 C2 C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand3 + +.subckt nor4 dd ss sub A B C D out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B C2 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 C2 C C3 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 C3 C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor4 + +.subckt nand4 dd ss sub A B C D out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 C2 C C3 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 C3 C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand4 + +.subckt inv1 dd ss sub in out +mn1 out in ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out in dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends inv1 + +.subckt inv5 dd ss sub in out +xinv1 dd ss sub in 1 inv1 +xinv2 dd ss sub 1 2 inv1 +xinv3 dd ss sub 2 3 inv1 +xinv4 dd ss sub 3 4 inv1 +xinv5 dd ss sub 4 out inv1 +.ends inv5 + +.subckt inv25 dd ss sub in out +xinv1 dd ss sub in 1 inv5 +xinv2 dd ss sub 1 2 inv5 +xinv3 dd ss sub 2 3 inv5 +xinv4 dd ss sub 3 4 inv5 +xinv5 dd ss sub 4 out inv5 +.ends inv25 + +.subckt inv125 dd ss sub in out +xinv1 dd ss sub in 1 inv25 +xinv2 dd ss sub 1 2 inv25 +xinv3 dd ss sub 2 3 inv25 +xinv4 dd ss sub 3 4 inv25 +xinv5 dd ss sub 4 out inv25 +.ends inv125 + +.subckt inv625 dd ss sub in out +xinv1 dd ss sub in 1 inv125 +xinv2 dd ss sub 1 2 inv125 +xinv3 dd ss sub 2 3 inv125 +xinv4 dd ss sub 3 4 inv125 +xinv5 dd ss sub 4 out inv125 +.ends inv625 diff --git a/Windows/spice/tests/bsim3soidd/nmosdd.mod b/Windows/spice/tests/bsim3soidd/nmosdd.mod new file mode 100644 index 00000000..c53fe206 --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/nmosdd.mod @@ -0,0 +1,39 @@ +*Model Card for BSIMDD2.0, floating body DD SOI NMOS +*Released on 2/15/99 +.Model N1 NMOS Level= 56 ++TNOM = 27 TOX = 4.5E-09 TSI = 5e-8 TBOX = 8E-08 ++MOBMOD = 0 CAPMOD = 3 SHMOD = 0 ++PARAMCHK=0 WINT = 0 LINT = -2E-08 ++VTH0 = .52 K1 = .39 K2 = .1 K3 = 0 ++KB1 = .95 K3B = 2.2 NLX = 7.2E-08 ++DVT0 = .55 DVT1 = .28 DVT2 = -1.4 ++DVT0W = 0 DVT1W = 0 DVT2W = 0 ++NCH = 3.3E+17 NSUB = 1E+15 NGATE = 1E+20 ++DVBD0 = 60.0 DVBD1 = 1.1 VBSA = 0.0 ++KB3 = 2.2 DELP = 0.02 ++ABP = 0.9 MXC = 0.9 ADICE0 = 0.93 ++KBJT1 = 1.0E-08 EDL = .0000005 ++NDIODE = 1.13 NTUN = 14.0 ++ISBJT = 2e-6 ISDIF = 1e-6 ISTUN = 0.0 ISREC = 1e-5 ++XBJT = 0.01 XDIF = 0.01 XREC = 0.01 XTUN = 0.001 ++U0 = 352 UA = 1.3E-11 UB = 1.7E-18 UC = -4E-10 ++W0 = 1.16E-06 AGS = .25 A1 = 0 A2 = 1 ++B0 = .01 B1 = 10 ++RDSW = 700 PRWG = 0 PRWB = -.2 WR = 1 ++RBODY = 0.0 RBSH = 0.0 ++A0 = 1.4 KETA = -.67 VSAT = 135000 ++DWG = 0 DWB = 0 ++ALPHA0 = 0.0 ALPHA1 = 1.5 BETA0 = 20.5 ++AII = 1.2 BII = 0.1e-7 CII = 0.8 DII = 0.6 ++VOFF = -.14 NFACTOR = .7 CDSC = .00002 CDSCB = 0 ++CDSCD = 0 CIT = 0 ++PCLM = 2.9 PVAG = 12 PDIBLC1 = .18 PDIBLC2 = .004 ++PDIBLCB = -.234 DROUT = .2 ++DELTA = .01 ETA0 = .01 ETAB = 0 ++DSUB = .3 RTH0 = .006 ++CLC = .0000001 CLE = .6 CF = 1E-20 CKAPPA = .6 ++CGDL = 1E-20 CGSL = 1E-20 KT1 = -.3 KT1L = 0 ++KT2 = .022 UTE = -1.5 UA1 = 4.31E-09 UB1 = -7.61E-18 ++UC1 = -5.6E-11 PRT = 760 AT = 22400 ++CGSO = 1e-10 CGDO = 1e-10 CJSWG = 5e-10 TT=3e-10 ++ASD = 0.3 CSDESW = 1e-12 diff --git a/Windows/spice/tests/bsim3soidd/pmosdd.mod b/Windows/spice/tests/bsim3soidd/pmosdd.mod new file mode 100644 index 00000000..4cf2f135 --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/pmosdd.mod @@ -0,0 +1,39 @@ +*Model Card for BSIMDD2.0, floating body DD SOI PMOS +*Released on 2/15/99 +.Model P1 PMOS Level= 56 ++TNOM = 27 TOX = 4.5E-09 TSI = 5e-8 TBOX = 8E-08 ++MOBMOD = 2 CAPMOD = 3 SHMOD = 0 ++WINT = 0 LINT = -2E-08 ++VTH0 = -.52 K1 = .39 K2 = .1 K3 = 0 ++KB1 = .95 K3B = 2.2 NLX = 7.2E-08 ++DVT0 = .55 DVT1 = .28 DVT2 = -1.4 ++DVT0W = 0 DVT1W = 0 DVT2W = 0 ++NCH = 3.0E+17 NSUB = 1E+15 NGATE = 1E+20 ++DVBD0 = 60.0 DVBD1 = 1.1 VBSA = -0.2 ++KB3 = 2.2 DELP = 0.02 ++ABP = 0.9 MXC = 0.9 ADICE0 = 0.93 ++KBJT1 = 1.0E-08 EDL = .0000005 ++NDIODE = 1.13 NTUN = 14.0 ++ISBJT = 0.0 ISDIF = 1e-6 ISTUN = 0.0 ISREC = 0.0 ++XBJT = 0.01 XDIF = 0.01 XREC = 0.01 XTUN = 0.001 ++U0 = 145 UA = 1.3E-11 UB = 1.7E-18 UC = -4E-10 ++W0 = 1.16E-06 AGS = .25 A1 = 0 A2 = 1 ++B0 = .01 B1 = 10 ++RDSW = 700 PRWG = 0 PRWB = -.2 WR = 1 ++RBODY = 0.0 RBSH = 0.0 ++A0 = 1.4 KETA = -.67 VSAT = 75000 ++DWG = 0 DWB = 0 ++ALPHA0 = 0.0 ALPHA1 = 1e-4 BETA0 = 19 ++AII = 1.25 BII = 0.1e-7 CII = 0.8 DII = 0.6 ++VOFF = -.14 NFACTOR = .7 CDSC = .00002 CDSCB = 0 ++CDSCD = 0 CIT = 0 ++PCLM = 2.9 PVAG = 12 PDIBLC1 = .18 PDIBLC2 = .004 ++PDIBLCB = -.234 DROUT = .2 ++DELTA = .01 ETA0 = .01 ETAB = 0 ++DSUB = .3 RTH0 = .006 ++CLC = .0000001 CLE = .6 CF = 1E-20 CKAPPA = .6 ++CGDL = 1E-20 CGSL = 1E-20 KT1 = -.3 KT1L = 0 ++KT2 = .022 UTE = -1.5 UA1 = 4.31E-09 UB1 = -7.61E-18 ++UC1 = -5.6E-11 PRT = 760 AT = 22400 ++CGSO = 1e-10 CGDO = 1e-10 CJSWG = 5e-10 TT=3e-10 ++ASD = 0.3 CSDESW = 1e-12 diff --git a/Windows/spice/tests/bsim3soidd/ring51.cir b/Windows/spice/tests/bsim3soidd/ring51.cir new file mode 100644 index 00000000..d777727e --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/ring51.cir @@ -0,0 +1,23 @@ +* 51 stage Ring-Osc. + +vin in out 2 pulse 2 0 0.1n 5n 1 1 1 +vdd dd 0 dc 0 pulse 0 2 0 1n 1 1 1 +vss ss 0 dc 0 +ve sub 0 dc 0 + +xinv1 dd ss sub in out25 inv25 +xinv2 dd ss sub out25 out50 inv25 +xinv5 dd ss sub out50 out inv1 +xinv11 dd ss sub out buf inv1 +cout buf ss 1pF + +xdum ss dum + +.option itl1=500 gmin=1e-15 itl4=10 noacct +*.dc vdd 0 2 0.01 +.tran 0.2n 50n + +.include nmosdd.mod +.include pmosdd.mod +.include lib.h +.end diff --git a/Windows/spice/tests/bsim3soidd/t3.cir b/Windows/spice/tests/bsim3soidd/t3.cir new file mode 100644 index 00000000..4faf0c7d --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/t3.cir @@ -0,0 +1,18 @@ +*model = BSIMSOI (DD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, floating body simulation + +vd d 0 dc 1.5 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 + + +m1 d g s e n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vd 0 3 0.01 vg 0.5 3 0.5 +.print dc v(g), i(vs) +.include nmosdd.mod + diff --git a/Windows/spice/tests/bsim3soidd/t4.cir b/Windows/spice/tests/bsim3soidd/t4.cir new file mode 100644 index 00000000..a30c4cc6 --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/t4.cir @@ -0,0 +1,17 @@ +*model = BSIMSOI (DD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, tied body simulation + +vd d 0 dc 0.05 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 +vb b 0 dc 0 + +m1 d g s e b n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vg 0 1.5 0.01 vb -0.3 0.5 0.1 +.print dc i(vs) +.include nmosdd.mod diff --git a/Windows/spice/tests/bsim3soidd/t5.cir b/Windows/spice/tests/bsim3soidd/t5.cir new file mode 100644 index 00000000..54e36843 --- /dev/null +++ b/Windows/spice/tests/bsim3soidd/t5.cir @@ -0,0 +1,16 @@ +*model = BSIMSOI (DD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, floating body simulation + +vd d 0 dc 0.05 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 + +m1 d g s e n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vg 0 1.5 0.01 ve -4 4 1 +.print dc i(vs) +.include nmosdd.mod diff --git a/Windows/spice/tests/bsim3soifd/Makefile.am b/Windows/spice/tests/bsim3soifd/Makefile.am new file mode 100644 index 00000000..b1c55f51 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + t3.cir \ + t4.cir \ + t5.cir \ + inv2.cir \ + RampVg2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + nmosfd.mod \ + pmosfd.mod \ + $(TESTS) \ + $(TESTS:.cir=.out) + +EXTRA_DIST += ring51.cir lib.h + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3soifd/Makefile.in b/Windows/spice/tests/bsim3soifd/Makefile.in new file mode 100644 index 00000000..b0f1e9e4 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3soifd +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + t3.cir \ + t4.cir \ + t5.cir \ + inv2.cir \ + RampVg2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = nmosfd.mod pmosfd.mod $(TESTS) $(TESTS:.cir=.out) \ + ring51.cir lib.h +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3soifd/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3soifd/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3soifd/RampVg2.cir b/Windows/spice/tests/bsim3soifd/RampVg2.cir new file mode 100644 index 00000000..c8883d22 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/RampVg2.cir @@ -0,0 +1,19 @@ +* BSIMSOI (FD) example +* +* SOI, Ramp Vg + +Vd d 0 1.5 +Vg g 0 0.0 PULSE 0V 2V .02n .1n .1n .2n .6n +Ve e 0 0.0 +Vs s 0 0.0 +Vb b 0 0.0 + +m1 d g s e n1 w=10u l=0.25u debug=-1 + +.option gmin=1e-20 itl1=200 itl2=200 abstol=1e-9 noacct +.tran 1p 1.0ns +.print tran @m1[Vbs], V(g)/10 +.include nmosfd.mod + +.end + diff --git a/Windows/spice/tests/bsim3soifd/inv2.cir b/Windows/spice/tests/bsim3soifd/inv2.cir new file mode 100644 index 00000000..9628572f --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/inv2.cir @@ -0,0 +1,17 @@ +* model = BSIMSOI (FD) +* +* +* SOI Inverter - floating body + +vin in 0 dc 2.5 +vdd dd 0 dc 2.5 +vss ss 0 dc 0 +ve e 0 dc 1.25 +m1 out in dd e p1 w=20u l=0.25u +m2 out in ss e n1 w=10u l=0.25u + +.option itl1=500 gmin=1e-25 noacct +.dc vin 0 2.5 0.01 +.print dc v(in), v(out) +.include nmosfd.mod +.include pmosfd.mod diff --git a/Windows/spice/tests/bsim3soifd/lib.h b/Windows/spice/tests/bsim3soifd/lib.h new file mode 100644 index 00000000..310aa396 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/lib.h @@ -0,0 +1,110 @@ + + +.subckt dum ss +mn1 ss ss ss ss ss n1 w=4u l=0.15u debug=1 AS=6p AD=6p PS=7u PD=7u +.ends dum + +* XOR2 +.subckt xnor2 dd ss sub A B out +mn1 T1 A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out A C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 out B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn5 C2 T1 ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 T1 A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 T1 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out A C3 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 C3 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp5 out T1 dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends xnor2 + +.subckt nor2 dd ss sub A B out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor2 + +.subckt nand2 dd ss sub A B out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand2 + +.subckt nor3 dd ss sub A B C out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B C2 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 C2 C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor3 + +.subckt nand3 dd ss sub A B C out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 C2 C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand3 + +.subckt nor4 dd ss sub A B C D out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B C2 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 C2 C C3 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 C3 C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor4 + +.subckt nand4 dd ss sub A B C D out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 C2 C C3 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 C3 C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand4 + +.subckt inv1 dd ss sub in out +mn1 out in ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out in dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends inv1 + +.subckt inv5 dd ss sub in out +xinv1 dd ss sub in 1 inv1 +xinv2 dd ss sub 1 2 inv1 +xinv3 dd ss sub 2 3 inv1 +xinv4 dd ss sub 3 4 inv1 +xinv5 dd ss sub 4 out inv1 +.ends inv5 + +.subckt inv25 dd ss sub in out +xinv1 dd ss sub in 1 inv5 +xinv2 dd ss sub 1 2 inv5 +xinv3 dd ss sub 2 3 inv5 +xinv4 dd ss sub 3 4 inv5 +xinv5 dd ss sub 4 out inv5 +.ends inv25 + +.subckt inv125 dd ss sub in out +xinv1 dd ss sub in 1 inv25 +xinv2 dd ss sub 1 2 inv25 +xinv3 dd ss sub 2 3 inv25 +xinv4 dd ss sub 3 4 inv25 +xinv5 dd ss sub 4 out inv25 +.ends inv125 + +.subckt inv625 dd ss sub in out +xinv1 dd ss sub in 1 inv125 +xinv2 dd ss sub 1 2 inv125 +xinv3 dd ss sub 2 3 inv125 +xinv4 dd ss sub 3 4 inv125 +xinv5 dd ss sub 4 out inv125 +.ends inv625 diff --git a/Windows/spice/tests/bsim3soifd/nmosfd.mod b/Windows/spice/tests/bsim3soifd/nmosfd.mod new file mode 100644 index 00000000..af6665fd --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/nmosfd.mod @@ -0,0 +1,39 @@ +*Model Card for BSIMFD2.0, floating body FD SOI NMOS +*Released on 2/15/99 +.Model N1 NMOS Level= 55 ++TNOM = 27 TOX = 4.5E-09 TSI = 5e-8 TBOX = 8E-08 ++MOBMOD = 0 CAPMOD = 3 SHMOD = 0 ++PARAMCHK=0 WINT = 0 LINT = -2E-08 ++VTH0 = .52 K1 = .39 K2 = .1 K3 = 0 ++KB1 = .95 K3B = 2.2 NLX = 7.2E-08 ++DVT0 = .55 DVT1 = .28 DVT2 = -1.4 ++DVT0W = 0 DVT1W = 0 DVT2W = 0 ++NCH = 3.3E+17 NSUB = 1E+15 NGATE = 1E+20 ++DVBD0 = 60.0 DVBD1 = 1.1 VBSA = 0.0 ++KB3 = 2.2 DELP = 0.02 ++ABP = 0.9 MXC = 0.9 ADICE0 = 0.93 ++KBJT1 = 1.0E-08 EDL = .0000005 ++NDIODE = 1.13 NTUN = 14.0 ++ISBJT = 2e-6 ISDIF = 1e-6 ISTUN = 0.0 ISREC = 1e-5 ++XBJT = 0.01 XDIF = 0.01 XREC = 0.01 XTUN = 0.001 ++U0 = 352 UA = 1.3E-11 UB = 1.7E-18 UC = -4E-10 ++W0 = 1.16E-06 AGS = .25 A1 = 0 A2 = 1 ++B0 = .01 B1 = 10 ++RDSW = 700 PRWG = 0 PRWB = -.2 WR = 1 ++RBODY = 0.0 RBSH = 0.0 ++A0 = 1.4 KETA = -.67 VSAT = 135000 ++DWG = 0 DWB = 0 ++ALPHA0 = 0.0 ALPHA1 = 1.5 BETA0 = 20.5 ++AII = 1.2 BII = 0.1e-7 CII = 0.8 DII = 0.6 ++VOFF = -.14 NFACTOR = .7 CDSC = .00002 CDSCB = 0 ++CDSCD = 0 CIT = 0 ++PCLM = 2.9 PVAG = 12 PDIBLC1 = .18 PDIBLC2 = .004 ++PDIBLCB = -.234 DROUT = .2 ++DELTA = .01 ETA0 = .01 ETAB = 0 ++DSUB = .3 RTH0 94 = .006 ++CLC = .0000001 CLE = .6 CF = 1E-20 CKAPPA = .6 ++CGDL = 1E-20 CGSL = 1E-20 KT1 = -.3 KT1L = 0 ++KT2 = .022 UTE = -1.5 UA1 = 4.31E-09 UB1 = -7.61E-18 ++UC1 = -5.6E-11 PRT = 760 AT = 22400 ++CGSO = 1e-10 CGDO = 1e-10 CJSWG = 5e-10 TT=3e-10 ++ASD = 0.3 CSDESW = 1e-12 diff --git a/Windows/spice/tests/bsim3soifd/pmosfd.mod b/Windows/spice/tests/bsim3soifd/pmosfd.mod new file mode 100644 index 00000000..d033570c --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/pmosfd.mod @@ -0,0 +1,39 @@ +*Model Card for BSIMFD2.0, floating body FD SOI PMOS +*Released on 2/15/99 +.Model P1 PMOS Level= 55 ++TNOM = 27 TOX = 4.5E-09 TSI = 5e-8 TBOX = 8E-08 ++MOBMOD = 2 CAPMOD = 3 SHMOD = 0 ++WINT = 0 LINT = -2E-08 ++VTH0 = -.52 K1 = .39 K2 = .1 K3 = 0 ++KB1 = .95 K3B = 2.2 NLX = 7.2E-08 ++DVT0 = .55 DVT1 = .28 DVT2 = -1.4 ++DVT0W = 0 DVT1W = 0 DVT2W = 0 ++NCH = 3.0E+17 NSUB = 1E+15 NGATE = 1E+20 ++DVBD0 = 60.0 DVBD1 = 1.1 VBSA = -0.2 ++KB3 = 2.2 DELP = 0.02 ++ABP = 0.9 MXC = 0.9 ADICE0 = 0.93 ++KBJT1 = 1.0E-08 EDL = .0000005 ++NDIODE = 1.13 NTUN = 14.0 ++ISBJT = 0.0 ISDIF = 1e-6 ISTUN = 0.0 ISREC = 0.0 ++XBJT = 0.01 XDIF = 0.01 XREC = 0.01 XTUN = 0.001 ++U0 = 145 UA = 1.3E-11 UB = 1.7E-18 UC = -4E-10 ++W0 = 1.16E-06 AGS = .25 A1 = 0 A2 = 1 ++B0 = .01 B1 = 10 ++RDSW = 700 PRWG = 0 PRWB = -.2 WR = 1 ++RBODY = 0.0 RBSH = 0.0 ++A0 = 1.4 KETA = -.67 VSAT = 75000 ++DWG = 0 DWB = 0 ++ALPHA0 = 0.0 ALPHA1 = 1e-4 BETA0 = 19 ++AII = 1.25 BII = 0.1e-7 CII = 0.8 DII = 0.6 ++VOFF = -.14 NFACTOR = .7 CDSC = .00002 CDSCB = 0 ++CDSCD = 0 CIT = 0 ++PCLM = 2.9 PVAG = 12 PDIBLC1 = .18 PDIBLC2 = .004 ++PDIBLCB = -.234 DROUT = .2 ++DELTA = .01 ETA0 = .01 ETAB = 0 ++DSUB = .3 RTH0 = .006 ++CLC = .0000001 CLE = .6 CF = 1E-20 CKAPPA = .6 ++CGDL = 1E-20 CGSL = 1E-20 KT1 = -.3 KT1L = 0 ++KT2 = .022 UTE = -1.5 UA1 = 4.31E-09 UB1 = -7.61E-18 ++UC1 = -5.6E-11 PRT = 760 AT = 22400 ++CGSO = 1e-10 CGDO = 1e-10 CJSWG = 5e-10 TT=3e-10 ++ASD = 0.3 CSDESW = 1e-12 diff --git a/Windows/spice/tests/bsim3soifd/ring51.cir b/Windows/spice/tests/bsim3soifd/ring51.cir new file mode 100644 index 00000000..958b0951 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/ring51.cir @@ -0,0 +1,23 @@ +* 51 stage Ring-Osc. + +vin in out 2 pulse 2 0 0.1n 5n 1 1 1 +vdd dd 0 dc 0 pulse 0 2 0 1n 1 1 1 +vss ss 0 dc 0 +ve sub 0 dc 0 + +xinv1 dd ss sub in out25 inv25 +xinv2 dd ss sub out25 out50 inv25 +xinv5 dd ss sub out50 out inv1 +xinv11 dd ss sub out buf inv1 +cout buf ss 1pF + +xdum ss dum + +.option itl1=500 gmin=1e-15 itl4=10 noacct +*.dc vdd 0 2 0.01 +.tran 0.2n 50n + +.include nmosfd.mod +.include pmosfd.mod +.include lib.h +.end diff --git a/Windows/spice/tests/bsim3soifd/t3.cir b/Windows/spice/tests/bsim3soifd/t3.cir new file mode 100644 index 00000000..84692212 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/t3.cir @@ -0,0 +1,18 @@ +*model = BSIMSOI (FD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, floating body simulation + +vd d 0 dc 1.5 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 + + +m1 d g s e n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vd 0 3 0.01 vg 0.5 3 0.5 +.print dc v(g), i(vs) +.include nmosfd.mod + diff --git a/Windows/spice/tests/bsim3soifd/t4.cir b/Windows/spice/tests/bsim3soifd/t4.cir new file mode 100644 index 00000000..54a9794b --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/t4.cir @@ -0,0 +1,17 @@ +*model = BSIMSOI (FD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, tied body simulation + +vd d 0 dc 0.05 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 +vb b 0 dc 0 + +m1 d g s e b n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vg 0 1.5 0.01 vb -0.3 0.5 0.1 +.print dc i(vs) +.include nmosfd.mod diff --git a/Windows/spice/tests/bsim3soifd/t5.cir b/Windows/spice/tests/bsim3soifd/t5.cir new file mode 100644 index 00000000..5969f224 --- /dev/null +++ b/Windows/spice/tests/bsim3soifd/t5.cir @@ -0,0 +1,16 @@ +*model = BSIMSOI (FD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, floating body simulation + +vd d 0 dc 0.05 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 + +m1 d g s e n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vg 0 1.5 0.01 ve -4 4 1 +.print dc i(vs) +.include nmosfd.mod diff --git a/Windows/spice/tests/bsim3soipd/Makefile.am b/Windows/spice/tests/bsim3soipd/Makefile.am new file mode 100644 index 00000000..9ab5c91b --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + t3.cir \ + t4.cir \ + t5.cir \ + inv2.cir \ + RampVg2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + nmospd.mod \ + pmospd.mod \ + $(TESTS) \ + $(TESTS:.cir=.out) + +EXTRA_DIST += ring51.cir lib.h + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/bsim3soipd/Makefile.in b/Windows/spice/tests/bsim3soipd/Makefile.in new file mode 100644 index 00000000..e5f766b5 --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/bsim3soipd +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + t3.cir \ + t4.cir \ + t5.cir \ + inv2.cir \ + RampVg2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = nmospd.mod pmospd.mod $(TESTS) $(TESTS:.cir=.out) \ + ring51.cir lib.h +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/bsim3soipd/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/bsim3soipd/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/bsim3soipd/RampVg2.cir b/Windows/spice/tests/bsim3soipd/RampVg2.cir new file mode 100644 index 00000000..72d46a2b --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/RampVg2.cir @@ -0,0 +1,20 @@ +* BSIMSOI (PD) example +* +* SOI, Ramp Vg + +Vd d 0 1.5 +Vg g 0 0.0 PULSE 0V 2V .02n .1n .1n .2n .6n +Ve e 0 0.0 +Vs s 0 0.0 +Vb b 0 0.0 + +m1 d g s e n1 w=10u l=0.25u debug=-1 + +.option gmin=1e-20 itl1=200 itl2=200 abstol=1e-9 noacct +.tran 1p 1.0ns +.save @m1[Vbs], V(g)/10 +.print tran v(g)/10 +.include nmospd.mod + +.end + diff --git a/Windows/spice/tests/bsim3soipd/inv2.cir b/Windows/spice/tests/bsim3soipd/inv2.cir new file mode 100644 index 00000000..51f3aa8a --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/inv2.cir @@ -0,0 +1,17 @@ +* model = BSIMSOI (PD) +* +* +* SOI Inverter - floating body + +vin in 0 dc 2.5 +vdd dd 0 dc 2.5 +vss ss 0 dc 0 +ve e 0 dc 1.25 +m1 out in dd e p1 w=20u l=0.25u +m2 out in ss e n1 w=10u l=0.25u + +.option itl1=500 gmin=1e-25 noacct +.dc vin 0 2.5 0.01 +.print dc v(in), v(out) +.include nmospd.mod +.include pmospd.mod diff --git a/Windows/spice/tests/bsim3soipd/lib.h b/Windows/spice/tests/bsim3soipd/lib.h new file mode 100644 index 00000000..310aa396 --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/lib.h @@ -0,0 +1,110 @@ + + +.subckt dum ss +mn1 ss ss ss ss ss n1 w=4u l=0.15u debug=1 AS=6p AD=6p PS=7u PD=7u +.ends dum + +* XOR2 +.subckt xnor2 dd ss sub A B out +mn1 T1 A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out A C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 out B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn5 C2 T1 ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 T1 A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 T1 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out A C3 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 C3 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp5 out T1 dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends xnor2 + +.subckt nor2 dd ss sub A B out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor2 + +.subckt nand2 dd ss sub A B out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand2 + +.subckt nor3 dd ss sub A B C out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B C2 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 C2 C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor3 + +.subckt nand3 dd ss sub A B C out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 C2 C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand3 + +.subckt nor4 dd ss sub A B C D out +mn1 out A ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 out B ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 out C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A C1 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 C1 B C2 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 C2 C C3 sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 C3 C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nor4 + +.subckt nand4 dd ss sub A B C D out +mn1 out A C1 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn2 C1 B C2 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn3 C2 C C3 sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mn4 C3 C ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out A dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp2 out B dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp3 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +mp4 out C dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends nand4 + +.subckt inv1 dd ss sub in out +mn1 out in ss sub n1 w=4u l=0.15u AS=6p AD=6p PS=7u PD=7u +mp1 out in dd sub p1 w=10u l=0.15u AS=15p AD=15p PS=13u PD=13u +.ends inv1 + +.subckt inv5 dd ss sub in out +xinv1 dd ss sub in 1 inv1 +xinv2 dd ss sub 1 2 inv1 +xinv3 dd ss sub 2 3 inv1 +xinv4 dd ss sub 3 4 inv1 +xinv5 dd ss sub 4 out inv1 +.ends inv5 + +.subckt inv25 dd ss sub in out +xinv1 dd ss sub in 1 inv5 +xinv2 dd ss sub 1 2 inv5 +xinv3 dd ss sub 2 3 inv5 +xinv4 dd ss sub 3 4 inv5 +xinv5 dd ss sub 4 out inv5 +.ends inv25 + +.subckt inv125 dd ss sub in out +xinv1 dd ss sub in 1 inv25 +xinv2 dd ss sub 1 2 inv25 +xinv3 dd ss sub 2 3 inv25 +xinv4 dd ss sub 3 4 inv25 +xinv5 dd ss sub 4 out inv25 +.ends inv125 + +.subckt inv625 dd ss sub in out +xinv1 dd ss sub in 1 inv125 +xinv2 dd ss sub 1 2 inv125 +xinv3 dd ss sub 2 3 inv125 +xinv4 dd ss sub 3 4 inv125 +xinv5 dd ss sub 4 out inv125 +.ends inv625 diff --git a/Windows/spice/tests/bsim3soipd/nmospd.mod b/Windows/spice/tests/bsim3soipd/nmospd.mod new file mode 100644 index 00000000..e0710b2e --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/nmospd.mod @@ -0,0 +1,40 @@ +*Model Card for BSIMPD2.0 +* Lmin= .2 Lmax= .8 Wmin= 2.8 Wmax= 2.8 +.Model N1 NMOS Level= 57 ++TNOM = 27 TOX = 4.5E-09 TSI = .0000001 TBOX = 8E-08 ++MOBMOD = 0 CAPMOD = 2 SHMOD =0 ++PARAMCHK=0 WINT = 0 LINT = -2E-08 ++VTH0 = .42 K1 = .49 K2 = .1 K3 = 0 ++K3B = 2.2 NLX = 2E-7 ++DVT0 = 10 DVT1 = .55 DVT2 = -1.4 ++DVT0W = 0 DVT1W = 0 DVT2W = 0 ++NCH = 4.7E+17 NSUB = -1E+15 NGATE = 1E+20 ++AGIDL=1e-15 BGIDL=1e9 NGIDL=1.1 ++NDIODE = 1.13 NTUN = 14.0 NRECF0=2.5 NRECR0=4 ++VREC0=1.2 NTRECF=.1 NTRECR=.2 ++ISBJT = 1e-4 ISDIF = 1e-5 ISTUN = 2e-5 ISREC = 4e-2 ++XBJT = .9 XDIF = .9 XREC = .9 XTUN = 0.01 ++AHLI=1e-9 LBJT0=0.2e-6 LN=2e-6 ++NBJT=.8 NDIF=-1 AELY=1e8 VABJT=0 ++U0 = 352 UA = 1.3E-11 UB = 1.7E-18 UC = -4E-10 ++W0 = 1.16E-06 AGS = .25 A1 = 0 A2 = 1 ++B0 = .01 B1 = 10 ++RDSW = 0 PRWG = 0 PRWB = -.2 WR = 1 ++RBODY = 1e0 RBSH = 0.0 ++A0 = 1.4 KETA = 0.1 KETAS = 0.2 VSAT = 135000 ++DWG = 0 DWB = 0 ++ALPHA0 = 1e-8 BETA0 = 0 BETA1 = 0.05 BETA2 = 0.07 ++VDSATII0 = .8 ESATII = 1e7 ++VOFF = -.14 NFACTOR = .7 CDSC = .00002 CDSCB = 0 ++CDSCD = 0 CIT = 0 ++PCLM = 2.9 PVAG = 12 PDIBLC1 = .18 PDIBLC2 = .004 ++PDIBLCB = -.234 DROUT = .2 ++DELTA = .01 ETA0 = .05 ETAB = 0 ++DSUB = .2 RTH0 = .005 ++CLC = .0000001 CLE = .6 CF = 1E-20 CKAPPA = .6 ++CGDL = 1E-20 CGSL = 1E-20 KT1 = -.3 KT1L = 0 ++KT2 = .022 UTE = -1.5 UA1 = 4.31E-09 UB1 = -7.61E-18 ++UC1 = -5.6E-11 PRT = 760 AT = 22400 ++CGSO = 1e-10 CGDO = 1e-10 CJSWG = 1e-12 TT=3e-10 ++ASD = 0.3 CSDESW = 1e-12 ++TCJSWG=1e-4 MJSWG=.5 PBSWG=1 diff --git a/Windows/spice/tests/bsim3soipd/pmospd.mod b/Windows/spice/tests/bsim3soipd/pmospd.mod new file mode 100644 index 00000000..9fe7d714 --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/pmospd.mod @@ -0,0 +1,40 @@ +*Model Card for BSIMPD2.0 +* Lmin= .2 Lmax= .8 Wmin= 2.8 Wmax= 2.8 +.Model P1 PMOS Level= 57 ++TNOM = 27 TOX = 4.5E-09 TSI = .0000001 TBOX = 8E-08 ++MOBMOD = 2 CAPMOD = 2 SHMOD = 0 ++WINT = 0 LINT = -2E-08 ++VTH0 = -.42 K1 = .49 K2 = .1 K3 = 0 ++K3B = 2.2 NLX = 2E-07 ++DVT0 = 10 DVT1 = .55 DVT2 = -1.4 ++DVT0W = 0 DVT1W = 0 DVT2W = 0 ++NCH = 4.7E+17 NSUB = -1E+15 NGATE = 1E+20 ++AGIDL=1e-16 BGIDL=1e9 NGIDL=1.1 ++NDIODE = 1.13 NTUN = 14.0 NRECF0=2.5 NRECR0=4 ++VREC0=1.2 NTRECF=.1 NTRECR=.2 ++ISBJT = 1e-4 ISDIF = 1e-5 ISTUN = 2e-5 ISREC = 4e-2 ++XBJT = .9 XDIF = .9 XREC = .9 XTUN = 0.01 ++AHLI=1e-9 LBJT0=0.2e-6 LN=2e-6 ++NBJT=.8 NDIF=-1 AELY=1e8 VABJT=0 ++U0 = 145 UA = 1.3E-11 UB = 1.7E-18 UC = -4E-10 ++W0 = 1.16E-06 AGS = .25 A1 = 0 A2 = 1 ++B0 = .01 B1 = 10 ++RDSW = 350 PRWG = 0 PRWB = -.2 WR = 1 ++RBODY = 1e0 RBSH = 0.0 ++A0 = 1.4 KETA = 0.1 KETAS = 0.2 VSAT = 75000 ++DWG = 0 DWB = 0 ++ALPHA0 = 1e-8 BETA0 = 0 BETA1 = 0.05 BETA2 = 0.07 ++VDSATII0 = 1.6 ESATII = 1e7 ++VOFF = -.14 NFACTOR = .7 CDSC = .00002 CDSCB = 0 ++CDSCD = 0 CIT = 0 ++PCLM = 2.9 PVAG = 12 PDIBLC1 = .18 PDIBLC2 = .004 ++PDIBLCB = -.234 DROUT = .2 ++DELTA = .01 ETA0 = .05 ETAB = 0 ++DSUB = .2 RTH0 = .005 ++CLC = .0000001 CLE = .6 CF = 1E-20 CKAPPA = .6 ++CGDL = 1E-20 CGSL = 1E-20 KT1 = -.3 KT1L = 0 ++KT2 = .022 UTE = -1.5 UA1 = 4.31E-09 UB1 = -7.61E-18 ++UC1 = -5.6E-11 PRT = 760 AT = 22400 ++CGSO = 1e-10 CGDO = 1e-10 CJSWG = 1e-12 TT=3e-10 ++ASD = 0.3 CSDESW = 1e-12 ++TCJSWG=1e-4 MJSWG=.5 PBSWG=1 diff --git a/Windows/spice/tests/bsim3soipd/ring51.cir b/Windows/spice/tests/bsim3soipd/ring51.cir new file mode 100644 index 00000000..8fa16979 --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/ring51.cir @@ -0,0 +1,26 @@ +* 51 stage Ring-Osc. (PD) + +vin in out 2 pulse 2 0 0.1n 5n 1 1 1 +vdd dd 0 dc 0 pulse 0 2 0 1n 1 1 1 +vss ss 0 dc 0 +ve sub 0 dc 0 + +xinv1 dd ss sub in out25 inv25 +xinv2 dd ss sub out25 out50 inv25 +xinv5 dd ss sub out50 out inv1 +xinv11 dd ss sub out buf inv1 +cout buf ss 1pF + +xdum ss dum + +.option itl1=500 gmin=1e-15 itl4=10 noacct +.dc vdd 0 2 0.01 +.tran 0.2n 50n + +.print dc v(out) +.print tran v(out) + +.include nmospd.mod +.include pmospd.mod +.include lib.h +.end diff --git a/Windows/spice/tests/bsim3soipd/t3.cir b/Windows/spice/tests/bsim3soipd/t3.cir new file mode 100644 index 00000000..39d0f78e --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/t3.cir @@ -0,0 +1,18 @@ +*model = BSIMSOI (PD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, floating body simulation + +vd d 0 dc 1.5 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 + + +m1 d g s e n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vd 0 3 0.01 vg 0.5 3 0.5 +.print dc v(g), i(vs) +.include nmospd.mod + diff --git a/Windows/spice/tests/bsim3soipd/t4.cir b/Windows/spice/tests/bsim3soipd/t4.cir new file mode 100644 index 00000000..5bc912d6 --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/t4.cir @@ -0,0 +1,18 @@ +*model = BSIMSOI (PD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, tied body simulation + +vd d 0 dc 0.05 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 +vb b 0 dc 0 + +m1 d g s e b n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vg 0 1.5 0.01 vb -0.3 0.5 0.1 +.print dc i(vs) +.include nmospd.mod + diff --git a/Windows/spice/tests/bsim3soipd/t5.cir b/Windows/spice/tests/bsim3soipd/t5.cir new file mode 100644 index 00000000..69ce3725 --- /dev/null +++ b/Windows/spice/tests/bsim3soipd/t5.cir @@ -0,0 +1,16 @@ +*model = BSIMSOI (PD) +*Berkeley Spice Compatibility +* +* SOI NMOSFET, floating body simulation + +vd d 0 dc 0.05 +vs s 0 dc 0 +ve e 0 dc 0 +vg g 0 dc 3 + +m1 d g s e n1 w=10u l=0.25u + +.option gmin=1e-25 itl1=500 noacct +.dc vg 0 1.5 0.01 ve -4 4 1 +.print dc i(vs) +.include nmospd.mod diff --git a/Windows/spice/tests/filters/Makefile.am b/Windows/spice/tests/filters/Makefile.am new file mode 100644 index 00000000..8f273be2 --- /dev/null +++ b/Windows/spice/tests/filters/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + lowpass.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/filters/Makefile.in b/Windows/spice/tests/filters/Makefile.in new file mode 100644 index 00000000..a1efe192 --- /dev/null +++ b/Windows/spice/tests/filters/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/filters +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + lowpass.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/filters/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/filters/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/filters/lowpass.cir b/Windows/spice/tests/filters/lowpass.cir new file mode 100644 index 00000000..eb21b4a0 --- /dev/null +++ b/Windows/spice/tests/filters/lowpass.cir @@ -0,0 +1,13 @@ +A Simple AC Run + +.OPTIONS LIST NODE POST TRANS noacct +.OP +.AC DEC 10 1k 1Meg +.PRINT AC V(2) + +V1 1 0 DC 0 AC 1 SIN 0 1 1K 0 0 DISTOF1 0 DISTOF2 0 +R1 1 2 10k +R2 2 0 10k +C1 2 0 1n + +.END diff --git a/Windows/spice/tests/general/Makefile.am b/Windows/spice/tests/general/Makefile.am new file mode 100644 index 00000000..a6c1775d --- /dev/null +++ b/Windows/spice/tests/general/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = \ + mosamp.cir \ + mosmem.cir \ + rc.cir \ + rca3040.cir \ + rtlinv.cir \ + schmitt.cir \ + diffpair.cir \ + fourbitadder.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/general/Makefile.in b/Windows/spice/tests/general/Makefile.in new file mode 100644 index 00000000..0e59e3ce --- /dev/null +++ b/Windows/spice/tests/general/Makefile.in @@ -0,0 +1,521 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/general +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + mosamp.cir \ + mosmem.cir \ + rc.cir \ + rca3040.cir \ + rtlinv.cir \ + schmitt.cir \ + diffpair.cir \ + fourbitadder.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/general/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/general/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/general/diffpair.cir b/Windows/spice/tests/general/diffpair.cir new file mode 100644 index 00000000..732d844b --- /dev/null +++ b/Windows/spice/tests/general/diffpair.cir @@ -0,0 +1,31 @@ +simple differential pair - CM and DM dc sensitivity + +* Models: +.model qnl npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) +.model qnr npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) + +.options noacct + +* Circuit description: +q1 4 2 6 qnr +q2 5 3 6 qnl +rs1 11 2 1k +rs2 3 1 1k +rc1 4 8 10k +rc2 5 8 10k +q3 7 7 9 qnl +q4 6 7 9 qnr +rbias 7 8 20k + +* Inputs/Supplies: +vcm 1 0 dc 0 sin(0 0.1 5meg) ac 1 +vdm 1 11 dc 0 sin(0 0.1 5meg) ac 1 +vcc 8 0 12 +vee 9 0 -12 + +* Analysys: +.tf v(5) vcm +.tf v(5) vdm +.sens v(5,4) + +.end diff --git a/Windows/spice/tests/general/fourbitadder.cir b/Windows/spice/tests/general/fourbitadder.cir new file mode 100644 index 00000000..d6b577df --- /dev/null +++ b/Windows/spice/tests/general/fourbitadder.cir @@ -0,0 +1,79 @@ +4 bit adder + +* Models: +.MODEL dmod D +.MODEL qmod NPN(level=1 BF=75 RB=100 CJE=1PF CJC=3PF) + +.options noacct + +.SUBCKT NAND 1 2 3 4 +* noeuds: entrees(2) sortie vcc +q1 9 5 1 qmod +d1clamp 0 1 dmod +q2 9 5 2 qmod +d2clamp 0 2 dmod +rb 4 5 4k +r1 4 6 1.6k +q3 6 9 8 qmod +r2 8 0 1k +rc 4 7 130 +q4 7 6 10 qmod +dvbedrop 10 3 dmod +q5 3 8 0 qmod +.ends NAND + +.SUBCKT ONEBIT 1 2 3 4 5 6 +* noeuds entrees(2) ,carryin, sortie, carryout, vcc +x1 1 2 7 6 NAND +x2 1 7 8 6 NAND +x3 2 7 9 6 NAND +x4 8 9 10 6 NAND +x5 3 10 11 6 NAND +x6 3 11 12 6 NAND +x7 10 11 13 6 NAND +x8 12 13 4 6 NAND +x9 11 7 5 6 NAND +.ends ONEBIT + +.SUBCKT TWOBIT 1 2 3 4 5 6 7 8 9 +* noeuds +x1 1 2 7 5 10 9 ONEBIT +x2 3 4 10 6 8 9 ONEBIT +.ends TWOBIT + +.SUBCKT FOURBIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + +x1 1 2 3 4 9 10 13 16 15 TWOBIT +x2 5 6 7 8 11 12 16 14 15 TWOBIT +.ends FOURBIT + + + +* Inputs/Supplies: + +vcc 99 0 DC 5V +VIN1A 1 0 DC 0 pulse(0 3 0 10ns 10ns 10ns 50ns) +VIN1B 2 0 DC 0 pulse(0 3 0 10ns 10ns 20ns 100ns) +VIN2A 3 0 DC 0 pulse(0 3 0 10ns 10ns 40ns 200ns) +VIN2B 4 0 DC 0 pulse(0 3 0 10ns 10ns 80ns 400ns) +VIN3A 5 0 DC 0 pulse(0 3 0 10ns 10ns 160ns 800ns) +VIN3B 6 0 DC 0 pulse(0 3 0 10ns 10ns 320ns 1600ns) +VIN4A 7 0 DC 0 pulse(0 3 0 10ns 10ns 640ns 3200ns) +VIN4B 8 0 DC 0 pulse(0 3 0 10ns 10ns 1280ns 6400ns) + +* Circuit description: +x1 1 2 3 4 5 6 7 8 9 10 11 12 0 13 99 FOURBIT +rbit0 9 0 1k +rbit1 10 0 1k +rbit2 11 0 1k +rbit3 12 0 1k +rcout 13 0 1k + +* Analysys: +.tran 1ns 6ns +.print tran v(1) + + +.end + + diff --git a/Windows/spice/tests/general/mosamp.cir b/Windows/spice/tests/general/mosamp.cir new file mode 100644 index 00000000..7ea28504 --- /dev/null +++ b/Windows/spice/tests/general/mosamp.cir @@ -0,0 +1,46 @@ +mosamp - mos amplifier - transient + +* The original options line (removed acct) +* .options acct abstol=10n vntol=10n + +.options abstol=10n vntol=10n noacct +.tran 0.1us 10us +m1 15 15 1 32 m w=88.9u l=25.4u +m2 1 1 2 32 m w=12.7u l=266.7u +m3 2 2 30 32 m w=88.9u l=25.4u +m4 15 5 4 32 m w=12.7u l=106.7u +m5 4 4 30 32 m w=88.9u l=12.7u +m6 15 15 5 32 m w=44.5u l=25.4u +m7 5 20 8 32 m w=482.6u l=12.7u +m8 8 2 30 32 m w=88.9u l=25.4u +m9 15 15 6 32 m w=44.5u l=25.4u +m10 6 21 8 32 m w=482.6u l=12.7u +m11 15 6 7 32 m w=12.7u l=106.7u +m12 7 4 30 32 m w=88.9u l=12.7u +m13 15 10 9 32 m w=139.7u l=12.7u +m14 9 11 30 32 m w=139.7u l=12.7u +m15 15 15 12 32 m w=12.7u l=207.8u +m16 12 12 11 32 m w=54.1u l=12.7u +m17 11 11 30 32 m w=54.1u l=12.7u +m18 15 15 10 32 m w=12.7u l=45.2u +m19 10 12 13 32 m w=270.5u l=12.7u +m20 13 7 30 32 m w=270.5u l=12.7u +m21 15 10 14 32 m w=254u l=12.7u +m22 14 11 30 32 m w=241.3u l=12.7u +m23 15 20 16 32 m w=19u l=38.1u +m24 16 14 30 32 m w=406.4u l=12.7u +m25 15 15 20 32 m w=38.1u l=42.7u +m26 20 16 30 32 m w=381u l=25.4u +m27 20 15 66 32 m w=22.9u l=7.6u +cc 7 9 40pf +cl 66 0 70pf +vin 21 0 pulse(0 5 1ns 1ns 1ns 5us 10us) +vccp 15 0 dc +15 +vddn 30 0 dc -15 +vb 32 0 dc -20 +.model m nmos(nsub=2.2e15 uo=575 ucrit=49k uexp=0.1 tox=0.11u xj=2.95u ++ level=2 cgso=1.5n cgdo=1.5n cbd=4.5f cbs=4.5f ld=2.4485u nss=3.2e10 ++ kp=2e-5 phi=0.6 ) +.print tran v(20) v(66) +.plot tran v(20) v(66) +.end diff --git a/Windows/spice/tests/general/mosmem.cir b/Windows/spice/tests/general/mosmem.cir new file mode 100644 index 00000000..2a55bd9c --- /dev/null +++ b/Windows/spice/tests/general/mosmem.cir @@ -0,0 +1,31 @@ +mosmem - mos memory cell +.width in=72 +.opt abstol=1u + +.opt list node noacct +* The original line is below +*.opt acct list node + +.tran 20ns 2us +vdd 9 0 dc 5 +vs 7 0 pulse(2 0 520ns 20ns 20ns 500ns 2000ns) +vw 1 0 pulse(0 2 20ns 20ns 500ns 200ns 2000ns) +vwb 2 0 pulse(2 0 20ns 20ns 20ns 2000ns 2000ns) +m1 3 1 0 0 mod w=250u l=5u +m2 4 2 0 0 mod w=250u l=5u +m3 9 9 3 0 mod w=5u l=5u +m4 9 9 4 0 mod w=5u l=5u +m5 5 7 3 0 mod w=50u l=5u +m6 6 7 4 0 mod w=50u l=5u +m7 5 6 0 0 mod w=250u l=5u +m8 6 5 0 0 mod w=250u l=5u +m9 9 9 5 0 mod w=5u l=5u +m10 9 9 6 0 mod w=5u l=5u +m11 8 4 0 0 mod w=250u l=5u +m12 9 9 8 0 mod w=5u l=5u +.model mod nmos(vto=0.5 phi=0.7 kp=1.0e-6 gamma=1.83 lambda=0.115 ++ level=1 cgso=1u cgdo=1u cbd=50p cbs=50p) +.print dc v(5) v(6) +.plot dc v(6) +.plot tran v(6) v(5) v(7) v(1) v(2) +.end diff --git a/Windows/spice/tests/general/rc.cir b/Windows/spice/tests/general/rc.cir new file mode 100644 index 00000000..6f79d4b8 --- /dev/null +++ b/Windows/spice/tests/general/rc.cir @@ -0,0 +1,11 @@ +Basic RC circuit +r 1 2 1.0 +*l 1 2 1.0 +c 2 0 1.0 +vin 1 0 pulse (0 1) ac 1 +.options noacct +.tran 0.1 7.0 +*.ac dec 10 .01 10 +.plot tran v(2) i(vin) +*.plot ac vdb(2) xlog +.end diff --git a/Windows/spice/tests/general/rca3040.cir b/Windows/spice/tests/general/rca3040.cir new file mode 100644 index 00000000..d5323916 --- /dev/null +++ b/Windows/spice/tests/general/rca3040.cir @@ -0,0 +1,34 @@ +rca3040 ckt - rca 3040 wideband amplifier +.options noacct +.ac dec 10 1 10ghz +.dc vin -0.25 0.25 0.005 +.tran 2.0ns 200ns +vin 1 0 sin(0 0.1 50meg 0.5ns) ac 1 +vcc 2 0 15.0 +vee 3 0 -15.0 +rs1 30 1 1k +rs2 31 0 1k +r1 5 3 4.8k +r2 6 3 4.8k +r3 9 3 811 +r4 8 3 2.17k +r5 8 0 820 +r6 2 14 1.32k +r7 2 12 4.5k +r8 2 15 1.32k +r9 16 0 5.25k +r10 17 0 5.25k +q1 2 30 5 qnl +q2 2 31 6 qnl +q3 10 5 7 qnl +q4 11 6 7 qnl +q5 14 12 10 qnl +q6 15 12 11 qnl +q7 12 12 13 qnl +q8 13 13 0 qnl +q9 7 8 9 qnl +q10 2 15 16 qnl +q11 2 14 17 qnl +.model qnl npn level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf ++ cjc=2pf va=50 +.end diff --git a/Windows/spice/tests/general/rtlinv.cir b/Windows/spice/tests/general/rtlinv.cir new file mode 100644 index 00000000..2fee0617 --- /dev/null +++ b/Windows/spice/tests/general/rtlinv.cir @@ -0,0 +1,24 @@ +rtlinv ckt - cascaded rtl inverters +.width in=72 + +.opt list node lvlcod=2 noacct +* The original line is below +*.opt acct list node lvlcod=2 + +.dc vin 0.0 2.5 0.025 +.tran 2ns 200ns +vcc 6 0 5 +vin 1 0 pulse(0 5 2ns 2ns 2ns 80ns) +rb1 1 2 10k +rc1 6 3 1k +q1 3 2 0 qnd +rb2 3 4 10k +q2 5 4 0 qnd +rc2 6 5 1k +.model qnd npn(level=1 bf=50 rb=70 rc=40 ccs=2pf tf=0.1ns tr=10ns cje=0.9pf ++ cjc=1.5pf pc=0.85 va=50) +.print dc v(3) v(5) +.plot dc v(3) +.print tran v(3) v(5) +.plot tran v(3) v(5) v(1) +.end diff --git a/Windows/spice/tests/general/schmitt.cir b/Windows/spice/tests/general/schmitt.cir new file mode 100644 index 00000000..81ba0871 --- /dev/null +++ b/Windows/spice/tests/general/schmitt.cir @@ -0,0 +1,28 @@ +schmitt ckt - ecl compatible schmitt trigger +.width in=72 + +.opt list node lvlcod=2 noacct +* The original line is below +*.opt acct list node lvlcod=2 + +.tran 10ns 1000ns +vin 1 0 pulse(-1.6 -1.2 10ns 400ns 400ns 100ns 10000ns) +vee 8 0 -5 +rin 1 2 50 +rc1 0 3 50 +r1 3 5 185 +r2 5 8 760 +rc2 0 6 100 +re 4 8 260 +rth1 7 8 125 +rth2 7 0 85 +cload 7 0 5pf +q1 3 2 4 qstd off +q2 6 5 4 qstd +q3 0 6 7 qstd +q4 0 6 7 qstd +.model qstd npn(level=1 is=1.0e-16 bf=50 br=0.1 rb=50 rc=10 tf=0.12ns tr=5ns ++ cje=0.4pf pe=0.8 me=0.4 cjc=0.5pf pc=0.8 mc=0.333 ccs=1pf va=50) +.print tran v(1) v(3) v(5) v(6) +.plot tran v(3) v(5) v(6) v(1) +.end diff --git a/Windows/spice/tests/hfet/Makefile.am b/Windows/spice/tests/hfet/Makefile.am new file mode 100644 index 00000000..36913130 --- /dev/null +++ b/Windows/spice/tests/hfet/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = \ + id_vgs.cir \ + inverter.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/hfet/Makefile.in b/Windows/spice/tests/hfet/Makefile.in new file mode 100644 index 00000000..6c4fdbc1 --- /dev/null +++ b/Windows/spice/tests/hfet/Makefile.in @@ -0,0 +1,515 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/hfet +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + id_vgs.cir \ + inverter.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/hfet/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/hfet/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/hfet/id_vgs.cir b/Windows/spice/tests/hfet/id_vgs.cir new file mode 100644 index 00000000..a0a1c149 --- /dev/null +++ b/Windows/spice/tests/hfet/id_vgs.cir @@ -0,0 +1,14 @@ +HFET Id versus Vgs characteristic + +z1 1 2 0 hfet l=1u w=10u +vgs 2 0 dc 0.3 +vds 1 0 dc 1.0 + +.options noacct +.model hfet nhfet level=5 rdi=0 rsi=0 m=2.57 lambda=0.17 ++ vs=1.5e5 mu=0.385 vt0=0.13 eta=1.32 sigma0=0.04 ++ vsigma=0.1 Vsigmat=0.3 js1s=0 js1d=0 nmax=6e15 + +.dc vds 0 1 0.01 +.print DC i(vds) +.end diff --git a/Windows/spice/tests/hfet/inverter.cir b/Windows/spice/tests/hfet/inverter.cir new file mode 100644 index 00000000..16a449c6 --- /dev/null +++ b/Windows/spice/tests/hfet/inverter.cir @@ -0,0 +1,29 @@ +DCFL inverter circuit + +.subckt inv 1 2 3 +* +*Vdd 1.0 +*Vin 2 0 +*Vout 3 0 +z1 1 3 3 aload l=1u w=10u +z2 3 2 0 adrv l=1u w=10u +.ends + +vdd 1 0 dc 2 +vin 2 0 dc 0 pwl(0,0V 1ns,0V 1.005ns,1V 2ns,1V) +x1 1 2 3 inv +x2 1 3 4 inv + +.options noacct +.tran 0.01n 3n +.print tran all +.model adrv nhfet level=5 rd=60 rs=60 m=2.57 lambda=0.17 ++ vs=1.5e5 mu=0.385 vt0=0.3 eta=1.32 sigma0=0.04 ++ vsigma=0.1 vsigmat=0.3 js1s=1e-12 js1d=1e-12 ++ nmax=6e15 +.model aload nhfet level=5 rd=60 rs=60 m=2.57 lambda=0.17 ++ vs=1.5e5 mu=0.385 vt0=-0.3 eta=1.32 sigma0=0.04 ++ vsigma=0.1 vsigmat=0.3 js1s=1e-12 js1d=1e-12 ++ nmax=6e15 + +.end diff --git a/Windows/spice/tests/jfet/Makefile.am b/Windows/spice/tests/jfet/Makefile.am new file mode 100644 index 00000000..77425073 --- /dev/null +++ b/Windows/spice/tests/jfet/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = jfet_vds-vgs.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/jfet/Makefile.in b/Windows/spice/tests/jfet/Makefile.in new file mode 100644 index 00000000..136e47d6 --- /dev/null +++ b/Windows/spice/tests/jfet/Makefile.in @@ -0,0 +1,512 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/jfet +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = jfet_vds-vgs.cir +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/jfet/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/jfet/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/jfet/jfet_vds-vgs.cir b/Windows/spice/tests/jfet/jfet_vds-vgs.cir new file mode 100644 index 00000000..a2f7bce7 --- /dev/null +++ b/Windows/spice/tests/jfet/jfet_vds-vgs.cir @@ -0,0 +1,14 @@ +* I-V Characteristics of JFET 2N4221 +* +* +j1 2 1 0 MODJ +VD 2 0 25 +VG 1 0 -2 +* +.model MODJ NJF LEVEL=1 VTO=-3.5 BETA=4.1E-4 LAMBDA=0.002 RD=200 +* +.options noacct +.op +.dc VD 0 25 1 VG -3 0 1 +.print DC I(VD) +.END diff --git a/Windows/spice/tests/mes/Makefile.am b/Windows/spice/tests/mes/Makefile.am new file mode 100644 index 00000000..51dc7c39 --- /dev/null +++ b/Windows/spice/tests/mes/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = subth.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/mes/Makefile.in b/Windows/spice/tests/mes/Makefile.in new file mode 100644 index 00000000..ae06d792 --- /dev/null +++ b/Windows/spice/tests/mes/Makefile.in @@ -0,0 +1,512 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/mes +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = subth.cir +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/mes/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/mes/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/mes/subth.cir b/Windows/spice/tests/mes/subth.cir new file mode 100644 index 00000000..ba487966 --- /dev/null +++ b/Windows/spice/tests/mes/subth.cir @@ -0,0 +1,17 @@ +Mesfet level 1 subthreshold characteristics + +Vds 1 0 dc 0.1 +vids 1 2 dc 0 +Vgs 3 0 dc 0 + +z1 2 3 0 mesmod area=1.4 + +.model mesmod nmf level=1 rd=46 rs=46 vt0=-1.3 ++ lambda=0.03 alpha=3 beta=1.4e-3 + +.options noacct +.dc vgs -3 0 0.05 +.print DC vids#branch + + +.end diff --git a/Windows/spice/tests/mesa/Makefile.am b/Windows/spice/tests/mesa/Makefile.am new file mode 100644 index 00000000..a516408b --- /dev/null +++ b/Windows/spice/tests/mesa/Makefile.am @@ -0,0 +1,22 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + mesa11.cir \ + mesa13.cir \ + mesa14.cir \ + mesa15.cir \ + mesa21.cir \ + mesa.cir \ + mesgout.cir \ + mesinv.cir \ + mesosc.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +EXTRA_DIST += mesa12.cir mesa-12.cir + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/mesa/Makefile.in b/Windows/spice/tests/mesa/Makefile.in new file mode 100644 index 00000000..304d4e92 --- /dev/null +++ b/Windows/spice/tests/mesa/Makefile.in @@ -0,0 +1,519 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/mesa +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + mesa11.cir \ + mesa13.cir \ + mesa14.cir \ + mesa15.cir \ + mesa21.cir \ + mesa.cir \ + mesgout.cir \ + mesinv.cir \ + mesosc.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = $(TESTS) $(TESTS:.cir=.out) mesa12.cir mesa-12.cir +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/mesa/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/mesa/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/mesa/mesa-12.cir b/Windows/spice/tests/mesa/mesa-12.cir new file mode 100644 index 00000000..69eef9ba --- /dev/null +++ b/Windows/spice/tests/mesa/mesa-12.cir @@ -0,0 +1,23 @@ +* MESA1 transient test - +* Taken from macspice3f4 +* +* This netlist shows convergence problems in ngspice. +* Paolo Nenzi (rework-14) + +rd 1 3 10k +z1 3 2 0 mesa1 l=1u w=20u +vgs 2 0 dc 0 pulse(-3 0 0 0.5n 0.5n 2n 4n) +vdd 1 0 5v +.model mesa1 nmf(level=2 rd=31 rs=31) + +.options noacct + +.dc vgs -2 0 0.02 +.tran 0.1n 5n +.print v(3) v(2) +.end + +.control +run +plot v(2) v(3) +.endc diff --git a/Windows/spice/tests/mesa/mesa.cir b/Windows/spice/tests/mesa/mesa.cir new file mode 100644 index 00000000..2df40984 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa.cir @@ -0,0 +1,16 @@ +* DCFL GaAs MESFET Gate\ +* Taken from macspice3f4 + +vdd 1 0 dc 3 +vin 3 0 dc 0 +z1 2 3 0 enha l=1u w=10u +z2 1 2 2 depl l=1u w=10u + +.model enha nmf level=2 rd=31 rs=31 vto=0.1 astar=0 +.model depl nmf level=2 rd=31 rs=31 vto=-1.0 astar=0 + +.options noacct + +.dc vin 0 3.0 0.05 +.print dc v(2) vin#branch +.end diff --git a/Windows/spice/tests/mesa/mesa11.cir b/Windows/spice/tests/mesa/mesa11.cir new file mode 100644 index 00000000..45978b43 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa11.cir @@ -0,0 +1,18 @@ +* Mesa Level 2 test +* Taken from macspice3f4 archive. + +vds 1 0 +vids 1 2 dc 0 +vgs 3 0 dc 0 +z1 2 3 0 mesmod l=1u w=20u + +.options noacct +.op +.dc vds 0 2 0.05 vgs -1.2 0 0.4 +.print DC vids#branch + +.model mesmod nmf level=2 +*d=0.12u mu=0.23 vs=1.5e5 m=2.5 +*+ vto=-1.26 eta=1.73 lambda=0.045 sigma0=0.081 vsigma=0.1 +*+ vsigmat=1 rd=31 rs=31 +.end diff --git a/Windows/spice/tests/mesa/mesa12.cir b/Windows/spice/tests/mesa/mesa12.cir new file mode 100644 index 00000000..71efea97 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa12.cir @@ -0,0 +1,17 @@ +* MESA1 transient test +* Taken from macspice3f4 +* +* This netlist shows convergence problems in ngspice + +rd 1 3 10k +z1 3 2 0 mesa1 l=1u w=20u +vgs 2 0 dc 0 pulse(-3 0 0 0.5n 0.5n 2n 4n) +vdd 1 0 5v +.model mesa1 nmf(level=2 rd=31 rs=31) + +.options noacct +.dc vgs -2 0 0.02 +.tran 0.1n 5n +.print tran v(2) v(3) + +.print diff --git a/Windows/spice/tests/mesa/mesa13.cir b/Windows/spice/tests/mesa/mesa13.cir new file mode 100644 index 00000000..d1514501 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa13.cir @@ -0,0 +1,16 @@ +* MESA1 - Gate Leakage Test +* Taken from macspice3f4 +* + +z1 0 2 0 mesmod l=1u w=20u +vgs 1 0 dc 0 +vig 1 2 dc 0 +.model mesmod nmf(level=2 rd=31 rs=31 rg=10) + +.options noacct + +.dc vgs -3 0.4 0.05 +.print vig#branch + +.end + diff --git a/Windows/spice/tests/mesa/mesa14.cir b/Windows/spice/tests/mesa/mesa14.cir new file mode 100644 index 00000000..5d2e6031 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa14.cir @@ -0,0 +1,19 @@ +* MESA1 - DCFL GaAs MESFET Gate +* Taken from macspice3f4 +* +* Removed: jsdf = 0 in modelcards + +vdd 1 0 dc 3 +vin 3 0 dc 0 +z1 2 3 0 enha l=1u w=10u +z2 1 2 2 depl l=1u w=10u + +.model enha nmf level=2 rd=31 rs=31 vto=0.1 +.model depl nmf level=2 rd=31 rs=31 vto=-1.0 + +.options noacct + +.dc vin 0 3.0 0.05 +.print DC V(2) + +.end diff --git a/Windows/spice/tests/mesa/mesa15.cir b/Windows/spice/tests/mesa/mesa15.cir new file mode 100644 index 00000000..c5361a93 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa15.cir @@ -0,0 +1,17 @@ +* MESA1 subtreshold characteristics (T=400) +* Taken form macspice3f4 + +vds 1 0 dc 0.1 +vids 1 2 dc 0 +vgs 3 0 dc 0 + +z1 2 3 0 mesmod l=1u w=20u ts=400 td=400 +.model mesmod nmf level=2 rd=31 rs=31 + +.options noacct + +.dc vgs -3 0 0.05 +.print DC vids#branch + +.end + diff --git a/Windows/spice/tests/mesa/mesa21.cir b/Windows/spice/tests/mesa/mesa21.cir new file mode 100644 index 00000000..e1c342e4 --- /dev/null +++ b/Windows/spice/tests/mesa/mesa21.cir @@ -0,0 +1,19 @@ +* Mesa Test +* Taken from macspice3f4 + +z1 3 2 0 mesmod l=1u w=150u +vgs 2 0 dc 0 +vds 1 0 dc 0 +vids 1 3 dc 0 + +.model mesmod nmf level=3 rdi=2.7 rsi=2.7 mu=0.2 m=2.2 vto=-2.04 ++ eta=1.5 lambda=0.04 tc=0.001 sigma0=0.02 vsigma=0.1 vsigmat=1.37 ++ delta=5 beta=0.0085 + +.options noacct + +.dc vds 0 4 0.05 vgs -1.5 0.5 0.5 +.print vids#branch + +.end + diff --git a/Windows/spice/tests/mesa/mesgout.cir b/Windows/spice/tests/mesa/mesgout.cir new file mode 100644 index 00000000..e84c46fb --- /dev/null +++ b/Windows/spice/tests/mesa/mesgout.cir @@ -0,0 +1,37 @@ +* Simulation of MESFET output conductance +* Taken from macspice3f4 +* + +rd 1 2 20 +z1 3 4 0 driver l=1u w=10u +rs 5 0 20 +vgs 4 0 dc 0.5 ac 0.01 +vds 1 0 dc 1.0 +vid 2 3 dc 0 + +.model driver nmf ++ level=2 +*+ jsdf=1e-100 ++ n=1.44 ++ rd=0 ++ rs=0 ++ vs=1.5e5 ++ mu=0.25 ++ d=2e-7 ++ vto=0.1 ++ m=2 ++ lambda=0 ++ sigma0=0 ++ delfo=5 ++ flo=0.5 ++ tf=100000 ++ lambdahf=120 + +.options noacct + +.ac DEC 10 0.001 1e6 + +.print ac V(3) + +.end + diff --git a/Windows/spice/tests/mesa/mesinv.cir b/Windows/spice/tests/mesa/mesinv.cir new file mode 100644 index 00000000..33624ff3 --- /dev/null +++ b/Windows/spice/tests/mesa/mesinv.cir @@ -0,0 +1,49 @@ +* Mesfet Inverter with ungated load/Wload=2e-6 +* Taken from macspice3f4 package +* +* Output node is 70 +* + +bl1 10 40 i=0.0005*tanh(v(10,40)/0.0005/1120)*(1+v(10,40)*0.027) +bl2 20 50 i=0.0005*tanh(v(20,50)/0.0005/1120)*(1+v(20,50)*0.027) + +zd1 70 2 0 driver l=0.7u w=20u +zd2 80 70 0 driver l=0.7u w=20u + +rdl1 1 10 20 +rdl2 1 20 20 +rsl1 40 70 20 +rsl2 50 80 20 + +vin 1000 0 dc 0 +vdd 2000 0 dc 1.6 +visrc 2000 1 dc 0 +vig 1000 2 dc 0 + +.model driver nmf ++ level=2 ++ n=1.44 ++ rd=20 ++ rs=20 ++ ri=10 ++ rf=10 ++ vs=1.9e5 ++ mu=0.25 ++ d=1e-7 ++ vto=0.15 ++ m=2 ++ lambda=0.15 ++ sigma0=0.02 ++ vsigmat=0.5 + +*.nodeset v(10)=1.6 v(40)=1.6 v(70)=1.6 v(20)=0.2 v(50)=0.2 +*+ v(80)=0.2 + +.options noacct + +.dc vin 0 1 0.01 + +.print dc v(70) + +.end + diff --git a/Windows/spice/tests/mesa/mesosc.cir b/Windows/spice/tests/mesa/mesosc.cir new file mode 100644 index 00000000..e81b4ee7 --- /dev/null +++ b/Windows/spice/tests/mesa/mesosc.cir @@ -0,0 +1,41 @@ +* Mesfet Ring Oscillator with ungated load +* Taken form macspice3f4 +* + +.subckt mesinv 10 20 3 +* Node 10: Power Supply +* Node 20: Input +* Node 30: Output +rdl 10 1 20 +bl1 1 2 i=0.00025*tanh(v(1,2)/0.00025/2240)*(1+v(1,2)*0.027) +rsl 2 3 20 +zd 3 20 0 driver l=0.7u w=20u +ci 3 0 20f +.ends mesinv + +.options noacct +.model driver nmf level=2 n=1.44 rd=20 rs=20 vs=1.9e5 ++ mu=0.25 d=1e-7 vto=0.15 m=2 lambda=0.15 sigma0=0.02 ++ vsigmat=0.5 + +vdd 1 0 dc 1.6 + +xinv01 1 2 3 mesinv +xinv02 1 3 4 mesinv +xinv03 1 4 5 mesinv +xinv04 1 5 6 mesinv +xinv05 1 6 7 mesinv +xinv06 1 7 8 mesinv +xinv07 1 8 9 mesinv +xinv08 1 9 10 mesinv +xinv09 1 10 11 mesinv +xinv10 1 11 12 mesinv +xinv11 1 12 2000 mesinv + +vnoise 2000 2 dc 0 pwl(0 0 0.2n 0 0.3n 0.1 0.4n 0) + +.tran 1p 5n 1n 20p + +.print tran V(8) + +.end diff --git a/Windows/spice/tests/mos6/Makefile.am b/Windows/spice/tests/mos6/Makefile.am new file mode 100644 index 00000000..96db4d0e --- /dev/null +++ b/Windows/spice/tests/mos6/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = \ + mos6inv.cir \ + simpleinv.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/mos6/Makefile.in b/Windows/spice/tests/mos6/Makefile.in new file mode 100644 index 00000000..c5e1eb14 --- /dev/null +++ b/Windows/spice/tests/mos6/Makefile.in @@ -0,0 +1,515 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/mos6 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + mos6inv.cir \ + simpleinv.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/mos6/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/mos6/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/mos6/mos6inv.cir b/Windows/spice/tests/mos6/mos6inv.cir new file mode 100644 index 00000000..25018c60 --- /dev/null +++ b/Windows/spice/tests/mos6/mos6inv.cir @@ -0,0 +1,107 @@ +*** NDINV * 4 +XNDINV1 1 11 12 13 2 100 NDINV +XNDINV2 2 21 22 23 3 100 NDINV +XNDINV3 3 31 32 33 4 100 NDINV +XNDINV4 4 41 42 43 5 100 NDINV + +.SUBCKT NDINV 10 11 21 31 41 100 +MP11 11 100 100 100 P12L5 L=1.2U W=5U +MP12 11 100 100 100 P12L5 L=1.2U W=5U +MP13 11 100 100 100 P12L5 L=1.2U W=5U +MP14 11 10 100 100 P12L5 L=1.2U W=5U +MN11 11 100 12 0 N10L5 L=1.0U W=5U +MN12 12 100 13 0 N10L5 L=1.0U W=5U +MN13 13 100 14 0 N10L5 L=1.0U W=5U +MN14 14 10 0 0 N10L5 L=1.0U W=5U + +MP21 23 0 100 100 P12L5 L=1.2U W=20U +MP22 22 11 23 100 P12L5 L=1.2U W=20U +MP23 21 0 22 100 P12L5 L=1.2U W=20U +MN21 21 0 0 0 N10L5 L=1.0U W=5U +MN22 21 11 0 0 N10L5 L=1.0U W=5U +MN23 21 0 0 0 N10L5 L=1.0U W=5U + +MP31 31 21 100 100 P12L5 L=1.2U W=10U +MP32 31 100 100 100 P12L5 L=1.2U W=10U +MN31 31 21 32 0 N10L5 L=1.0U W=5U +MN32 32 100 0 0 N10L5 L=1.0U W=5U + +MP41 41 31 100 100 P12L5 L=1.2U W=10U +MN41 41 31 0 0 N10L5 L=1.0U W=5U + +C11 11 0 1P +C21 21 0 1P +C31 31 0 1P +C41 41 0 1P +.ENDS + +VDD 100 0 5 +VIN 1 0 DC 0 PWL(0 0 2N 5) + +.TRAN 0.5N 150N +.PRINT TRAN V(1) V(2) V(3) V(4) V(5) +.PRINT TRAN V(11) V(12) V(13) V(41) V(42) V(43) + +.OPTIONS NOACCT + +**** LEVEL 1 NMOS **** +.MODEL N10L1 NMOS ++ LEVEL=1 TPG=1 ++ KP=2.33082E-05 ++ LAMBDA=0.013333 VT0=0.69486 GAMMA=0.60309 PHI=1 ++ TOX=1.9800000E-08 XJ=0.2U LD=0.1U NSUB=4.9999999E+16 ++ NSS=0.0000000E+00 ++ CJ=4.091E-4 MJ=0.307 PB=1.0 ++ CJSW=3.078E-10 MJSW=1.0E-2 ++ CGSO=3.93E-10 CGDO=3.93E-10 +**** LEVEL 1 PMOS **** +.MODEL P12L1 PMOS ++ LEVEL=1 TPG=-1 ++ KP=7.69968E-06 ++ LAMBDA=0.018966 VT0=-0.60865 GAMMA=0.89213 PHI=1 ++ TOX=1.9800000E-08 XJ=0.4U LD=0.28U NSUB=4.9999999E+17 ++ NSS=0.0000000E+00 ++ CJ=6.852E-4 MJ=0.429 PB=1.0 ++ CJSW=5.217E-10 MJSW=0.351 ++ CGSO=7.29E-10 CGDO=7.29E-10 +**** LEVEL 3 NMOS **** +.MODEL N10L3 NMOS ++ LEVEL=3 TPG=+1 ++ GAMMA=1.140501 THETA=0.8109787 KAPPA=0.1579183 ETA=5.0622310E-02 ++ DELTA=0.000000E+00 UO=812.5126 VMAX=1186662. VTO=0.8 ++ TOX=1.9800000E-08 XJ=0.2U LD=0.1U NSUB=4.9999999E+16 ++ NSS=0.0000000E+00 ++ CJ=4.091E-4 MJ=0.307 PB=1.0 ++ CJSW=3.078E-10 MJSW=1.0E-2 ++ CGSO=3.93E-10 CGDO=3.93E-10 +**** LEVEL 3 PMOS **** +.MODEL P12L3 PMOS ++ LEVEL=3 TPG=-1 ++ GAMMA=1.211640 THETA=0.1184638 KAPPA=0.2162577 ETA=2.7580135E-02 ++ DELTA=0.000000E+00 UO=89.16160 VMAX=5.9000000E+07 VTO=-0.8 ++ TOX=1.9800000E-08 XJ=0.4U LD=0.28U NSUB=4.9999999E+17 ++ NSS=0.0000000E+00 ++ CJ=6.852E-4 MJ=0.429 PB=1.0 ++ CJSW=5.217E-10 MJSW=0.351 ++ CGSO=7.29E-10 CGDO=7.29E-10 +**** LEVEL 6 NMOS **** +.MODEL N10L5 NMOS ++ LEVEL=6 TPG=1 ++ KC=3.8921e-05 NC=1.1739 KV=0.91602 NV=0.87225 ++ LAMBDA0=0.013333 LAMBDA1=0.0046901 VT0=0.69486 GAMMA=0.60309 PHI=1 ++ TOX=1.9800000E-08 XJ=0.2U LD=0.1U NSUB=4.9999999E+16 ++ NSS=0.0000000E+00 ++ CJ=4.091E-4 MJ=0.307 PB=1.0 ++ CJSW=3.078E-10 MJSW=1.0E-2 ++ CGSO=3.93E-10 CGDO=3.93E-10 +**** LEVEL 6 PMOS **** +.MODEL P12L5 PMOS ++ LEVEL=6 TPG=-1 ++ KC=6.42696E-06 NC=1.6536 KV=0.92145 NV=0.88345 ++ LAMBDA0=0.018966 LAMBDA1=0.0084012 VT0=-0.60865 GAMMA=0.89213 PHI=1 ++ TOX=1.9800000E-08 XJ=0.4U LD=0.28U NSUB=4.9999999E+17 ++ NSS=0.0000000E+00 ++ CJ=6.852E-4 MJ=0.429 PB=1.0 ++ CJSW=5.217E-10 MJSW=0.351 ++ CGSO=7.29E-10 CGDO=7.29E-10 +.END diff --git a/Windows/spice/tests/mos6/simpleinv.cir b/Windows/spice/tests/mos6/simpleinv.cir new file mode 100644 index 00000000..6aea71c8 --- /dev/null +++ b/Windows/spice/tests/mos6/simpleinv.cir @@ -0,0 +1,45 @@ +*** NDINV * 4 + +VDD 100 0 5 +VIN 1 0 DC 0 PWL(0 0 150N 5) + +MP10 11 1 100 100 p12l5 L=1.0U W=5U +MN11 11 1 0 0 N10L5 L=1.0U W=5U + +.TRAN 0.5N 150N + +.PRINT TRAN V(1) V(11) + +.OPTIONS NOACCT + +**** LEVEL 1 NMOS **** +.MODEL N10L1 NMOS ++ LEVEL=1 TPG=1 ++ KP=2.33082E-05 ++ LAMBDA=0.013333 VT0=0.69486 GAMMA=0.60309 PHI=1 ++ TOX=1.9800000E-08 LD=0.1U NSUB=4.9999999E+16 ++ NSS=0.0000000E+00 ++ CJ=4.091E-4 MJ=0.307 PB=1.0 ++ CJSW=3.078E-10 MJSW=1.0E-2 ++ CGSO=3.93E-10 CGDO=3.93E-10 +**** LEVEL 6 NMOS **** +.MODEL N10L5 NMOS ++ LEVEL=6 TPG=1 ++ KC=3.8921e-05 NC=1.1739 KV=0.91602 NV=0.87225 ++ LAMBDA0=0.013333 LAMBDA1=0.0046901 VT0=0.69486 GAMMA=0.60309 PHI=1 ++ TOX=1.9800000E-08 LD=0.1U NSUB=4.9999999E+16 ++ NSS=0.0000000E+00 ++ CJ=4.091E-4 MJ=0.307 PB=1.0 ++ CJSW=3.078E-10 MJSW=1.0E-2 ++ CGSO=3.93E-10 CGDO=3.93E-10 +**** LEVEL 6 PMOS **** +.MODEL P12L5 PMOS ++ LEVEL=6 TPG=-1 ++ KC=6.42696E-06 NC=1.6536 KV=0.92145 NV=0.88345 ++ LAMBDA0=0.018966 LAMBDA1=0.0084012 VT0=-0.60865 GAMMA=0.89213 PHI=1 ++ TOX=1.9800000E-08 LD=0.28U NSUB=4.9999999E+17 ++ NSS=0.0000000E+00 ++ CJ=6.852E-4 MJ=0.429 PB=1.0 ++ CJSW=5.217E-10 MJSW=0.351 ++ CGSO=7.29E-10 CGDO=7.29E-10 +.END diff --git a/Windows/spice/tests/polezero/Makefile.am b/Windows/spice/tests/polezero/Makefile.am new file mode 100644 index 00000000..d48c50f3 --- /dev/null +++ b/Windows/spice/tests/polezero/Makefile.am @@ -0,0 +1,17 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + filt_multistage.cir \ + filt_rc.cir \ + filt_bridge_t.cir \ + pz2.cir \ + pzt.cir \ + simplepz.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/polezero/Makefile.in b/Windows/spice/tests/polezero/Makefile.in new file mode 100644 index 00000000..5cf0ea87 --- /dev/null +++ b/Windows/spice/tests/polezero/Makefile.in @@ -0,0 +1,519 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/polezero +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + filt_multistage.cir \ + filt_rc.cir \ + filt_bridge_t.cir \ + pz2.cir \ + pzt.cir \ + simplepz.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/polezero/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/polezero/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/polezero/filt_bridge_t.cir b/Windows/spice/tests/polezero/filt_bridge_t.cir new file mode 100644 index 00000000..9366fdcd --- /dev/null +++ b/Windows/spice/tests/polezero/filt_bridge_t.cir @@ -0,0 +1,13 @@ +BRIDGE-T FILTER +V1 1 0 12 AC 1 +C1 1 2 1U +C2 2 3 1U +R3 2 0 1K +R4 1 3 1K +* +.options noacct +.OP +.PZ 1 0 3 0 VOL PZ +.PRINT PZ ALL +* +.END diff --git a/Windows/spice/tests/polezero/filt_multistage.cir b/Windows/spice/tests/polezero/filt_multistage.cir new file mode 100644 index 00000000..11cd827d --- /dev/null +++ b/Windows/spice/tests/polezero/filt_multistage.cir @@ -0,0 +1,14 @@ +Multistage filter +v1 1 0 0 ac 1.0 +r1 1 2 1k +c1 2 0 10p +e2 3 0 2 0 10 +r2 3 4 1k +c2 4 0 1.25p +e3 5 0 4 0 10 +r3 5 6 1k +c3 6 0 .02p +.options noacct +.pz 1 0 6 0 vol pz +.print pz all +.end diff --git a/Windows/spice/tests/polezero/filt_rc.cir b/Windows/spice/tests/polezero/filt_rc.cir new file mode 100644 index 00000000..79800c12 --- /dev/null +++ b/Windows/spice/tests/polezero/filt_rc.cir @@ -0,0 +1,8 @@ +RC filter +v1 1 0 0 ac 1.0 +r1 1 2 1k +c1 2 0 10p +.options noacct +.pz 1 0 2 0 vol pz +.print pz all +.end diff --git a/Windows/spice/tests/polezero/pz2.cir b/Windows/spice/tests/polezero/pz2.cir new file mode 100644 index 00000000..9b772485 --- /dev/null +++ b/Windows/spice/tests/polezero/pz2.cir @@ -0,0 +1,25 @@ +test pz +iin 1 0 ac +r1 1 0 1.019524e+9Ohms +l1 1 0 1H + +gm2 2 0 1 0 1 +r2 2 0 8.296965e+08Ohms +l2 2 0 1H + +gm3 3 0 2 0 1 +r3 3 0 8.652054e+07Ohms +l3 3 0 1H + +gm4 4 0 3 0 1 +r4 4 0 1.060594e+07Ohms +l4 4 0 1H + +*gm5 5 0 4 0 1 +*r5 5 0 10Ohms +*l5 5 0 0.66mH + +.options noacct +.pz 1 0 4 0 cur pol +.print pz all +.end diff --git a/Windows/spice/tests/polezero/pzt.cir b/Windows/spice/tests/polezero/pzt.cir new file mode 100644 index 00000000..b94413b5 --- /dev/null +++ b/Windows/spice/tests/polezero/pzt.cir @@ -0,0 +1,25 @@ +test pz +iin 1 0 ac +r1 1 0 1Ohms +l1 1 0 0.05H + +gm2 2 0 1 0 1 +r2 2 0 1Ohms +l2 2 0 0.05H + +gm3 3 0 2 0 1 +r3 3 0 1Ohms +l3 3 0 0.05H + +*gm4 4 0 3 0 1 +*r4 4 0 1Ohms +*l4 4 0 0.05H + +*gm5 5 0 4 0 1 +*r5 5 0 10Ohms +*l5 5 0 0.66mH + +.options noacct +.pz 1 0 3 0 cur pol +.print pz all +.end diff --git a/Windows/spice/tests/polezero/simplepz.cir b/Windows/spice/tests/polezero/simplepz.cir new file mode 100644 index 00000000..e9f30d51 --- /dev/null +++ b/Windows/spice/tests/polezero/simplepz.cir @@ -0,0 +1,8 @@ +test circuit #1 for pz analysis:high pass filter +r1 1 0 1k +r2 2 0 1k +c1 1 2 1.0e-12 +.options noacct +.pz 1 0 2 0 cur pz +.print pz all +.end diff --git a/Windows/spice/tests/regression/Makefile.am b/Windows/spice/tests/regression/Makefile.am new file mode 100644 index 00000000..9fd1a3d7 --- /dev/null +++ b/Windows/spice/tests/regression/Makefile.am @@ -0,0 +1,5 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = lib-processing parser subckt-processing + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/regression/Makefile.in b/Windows/spice/tests/regression/Makefile.in new file mode 100644 index 00000000..2778feb0 --- /dev/null +++ b/Windows/spice/tests/regression/Makefile.in @@ -0,0 +1,609 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/regression +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = lib-processing parser subckt-processing +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/regression/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/regression/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/regression/lib-processing/Makefile.am b/Windows/spice/tests/regression/lib-processing/Makefile.am new file mode 100644 index 00000000..920ebed8 --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = ex1a.cir ex1b.cir ex2a.cir ex3a.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + ex1.lib ex2.lib ex3.lib extra3.lib \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/regression/lib-processing/Makefile.in b/Windows/spice/tests/regression/lib-processing/Makefile.in new file mode 100644 index 00000000..dfc9777d --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/Makefile.in @@ -0,0 +1,513 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/regression/lib-processing +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = ex1a.cir ex1b.cir ex2a.cir ex3a.cir +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + ex1.lib ex2.lib ex3.lib extra3.lib \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/regression/lib-processing/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/regression/lib-processing/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/regression/lib-processing/ex1.lib b/Windows/spice/tests/regression/lib-processing/ex1.lib new file mode 100644 index 00000000..cf64f010 --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex1.lib @@ -0,0 +1,9 @@ +* -*- spice -*- + +.LIB RES + +.subckt sub_in_lib n1 n2 +R3 n1 n2 2k +.ends + +.ENDL RES diff --git a/Windows/spice/tests/regression/lib-processing/ex1a.cir b/Windows/spice/tests/regression/lib-processing/ex1a.cir new file mode 100644 index 00000000..d3bfb5fe --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex1a.cir @@ -0,0 +1,29 @@ +ex1a, check lib processing + +I1 9 0 -1mA +X1 9 0 sub1 + +Vcheck 9 check0 1.0V + +.lib 'ex1.lib' RES + +.subckt sub1 n1 n2 +X2 n1 n2 sub_in_lib +R2 n1 n2 2k +.ends + +.control +op + +print v(check0) + +if abs(v(check0)) > 1e-9 + quit 1 +end + +echo "INFO: ok" +quit 0 + +.endc + +.end diff --git a/Windows/spice/tests/regression/lib-processing/ex1b.cir b/Windows/spice/tests/regression/lib-processing/ex1b.cir new file mode 100644 index 00000000..203fc373 --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex1b.cir @@ -0,0 +1,33 @@ +ex1b, check lib processing + +I1 9 0 -1mA +X1 9 0 sub1 +R2 9 0 4k +X3 9 0 sub_in_lib + +Vcheck 9 check0 1.0V + +.subckt sub1 n1 n2 +.lib 'ex1.lib' RES +X1 n1 n2 sub_in_lib +.ends + +.subckt sub_in_lib n1 n2 +R4 n1 n2 4k +.ends + +.control +op + +print v(check0) + +if abs(v(check0)) > 1e-9 + quit 1 +end + +echo "INFO: ok" +quit 0 + +.endc + +.end diff --git a/Windows/spice/tests/regression/lib-processing/ex2.lib b/Windows/spice/tests/regression/lib-processing/ex2.lib new file mode 100644 index 00000000..a04614e2 --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex2.lib @@ -0,0 +1,28 @@ +* -*- spice -*- + +.LIB MOS + +.subckt sub1_in_lib n1 n2 +.LIB 'ex2.lib' RES +Xsub1 n1 n2 sub3_in_lib +R1a n1 n2 4k +R1b n1 n2 2k +.ends + +.subckt sub2_in_lib n1 n2 +.LIB 'ex2.lib' RES +Xsub2 n1 n2 sub3_in_lib +R2 n1 n2 4k +.ends + +.ENDL MOS + + + +.LIB RES + +.subckt sub3_in_lib n1 n2 +R3 n1 n2 4k +.ends + +.ENDL RES diff --git a/Windows/spice/tests/regression/lib-processing/ex2a.cir b/Windows/spice/tests/regression/lib-processing/ex2a.cir new file mode 100644 index 00000000..7e119ad5 --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex2a.cir @@ -0,0 +1,33 @@ +ex2a, check lib processing + +I1 7 0 -1mA +X1 7 0 sub1_in_lib + +Vcheck1 7 check1 1.0V + +I2 9 0 -1mA +X2 9 0 sub2_in_lib + +Vcheck2 9 check2 2.0V + +.lib 'ex2.lib' MOS + +.control +op + +print v(check1) v(check2) + +if abs(v(check1)) > 1e-9 + quit 1 +end + +if abs(v(check2)) > 1e-9 + quit 1 +end + +echo "INFO: ok" +quit 0 + +.endc + +.end diff --git a/Windows/spice/tests/regression/lib-processing/ex3.lib b/Windows/spice/tests/regression/lib-processing/ex3.lib new file mode 100644 index 00000000..6f7a26d8 --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex3.lib @@ -0,0 +1,18 @@ +* -*- spice -*- + +.LIB MOS + +.subckt sub1_in_lib n1 n2 +.LIB 'extra3.lib' RES +Xsub1 n1 n2 sub3_in_lib +R1a n1 n2 4k +R1b n1 n2 2k +.ends + +.subckt sub2_in_lib n1 n2 +.LIB 'extra3.lib' RES +Xsub2 n1 n2 sub3_in_lib +R2 n1 n2 4k +.ends + +.ENDL MOS diff --git a/Windows/spice/tests/regression/lib-processing/ex3a.cir b/Windows/spice/tests/regression/lib-processing/ex3a.cir new file mode 100644 index 00000000..a2122f0d --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/ex3a.cir @@ -0,0 +1,33 @@ +ex3a, check lib processing + +I1 7 0 -1mA +X1 7 0 sub1_in_lib + +Vcheck1 7 check1 1.0V + +I2 9 0 -1mA +X2 9 0 sub2_in_lib + +Vcheck2 9 check2 2.0V + +.lib 'ex3.lib' MOS + +.control +op + +print v(check1) v(check2) + +if abs(v(check1)) > 1e-9 + quit 1 +end + +if abs(v(check2)) > 1e-9 + quit 1 +end + +echo "INFO: ok" +quit 0 + +.endc + +.end diff --git a/Windows/spice/tests/regression/lib-processing/extra3.lib b/Windows/spice/tests/regression/lib-processing/extra3.lib new file mode 100644 index 00000000..24e9498c --- /dev/null +++ b/Windows/spice/tests/regression/lib-processing/extra3.lib @@ -0,0 +1,9 @@ +* -*- spice -*- + +.LIB RES + +.subckt sub3_in_lib n1 n2 +R3 n1 n2 4k +.ends + +.ENDL RES diff --git a/Windows/spice/tests/regression/parser/Makefile.am b/Windows/spice/tests/regression/parser/Makefile.am new file mode 100644 index 00000000..4a53ca10 --- /dev/null +++ b/Windows/spice/tests/regression/parser/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = minus-minus.cir xpressn-1.cir xpressn-2.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/regression/parser/Makefile.in b/Windows/spice/tests/regression/parser/Makefile.in new file mode 100644 index 00000000..f7eeb597 --- /dev/null +++ b/Windows/spice/tests/regression/parser/Makefile.in @@ -0,0 +1,512 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/regression/parser +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = minus-minus.cir xpressn-1.cir xpressn-2.cir +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/regression/parser/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/regression/parser/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/regression/parser/minus-minus.cir b/Windows/spice/tests/regression/parser/minus-minus.cir new file mode 100644 index 00000000..b44c169a --- /dev/null +++ b/Windows/spice/tests/regression/parser/minus-minus.cir @@ -0,0 +1,36 @@ +test dash dash + +* (exec-spice "ngspice -b %s") + +v1 1 0 '2--3' +b2 2 0 v = 2--3 + +.control + +define mismatch(a,b,err) abs(a-b)>err + +op + +let foo = 2--3 + +if mismatch(v(1), 5.0, 1e-9) + echo "ERROR: v(1) failed" +end + +if mismatch(v(2), 5.0, 1e-9) + echo "ERROR: v(2) failed" +end + +if mismatch(foo, 5.0, 1e-9) + echo "ERROR: foo failed" +end + +print v(1) v(2) foo + +echo "INFO: -- yes we can, print dash dash --" +echo "INFO: -- yes we can, print upper and lower case --" +quit 0 + +.endc + +.end diff --git a/Windows/spice/tests/regression/parser/xpressn-1.cir b/Windows/spice/tests/regression/parser/xpressn-1.cir new file mode 100644 index 00000000..a680633c --- /dev/null +++ b/Windows/spice/tests/regression/parser/xpressn-1.cir @@ -0,0 +1,425 @@ +* 'xpressn-1' check xpressn.c parser + +* (exec-spice "ngspice -b %s") +* (tests-aux-renumber) + +* ---------------------------------------- +* arbitrary tests + +v1001_t n1001_t 0 '1+2' +v1002_t n1002_t 0 '1 + 2 ' +v1003_t n1003_t 0 '1+2*3' +v1004_t n1004_t 0 '(1?2:3)+100' +v1005_t n1005_t 0 '(1>2?2*4:1+2*3)+100' + +v1001_g n1001_g 0 '3' +v1002_g n1002_g 0 '3' +v1003_g n1003_g 0 '7' +v1004_g n1004_g 0 '102' +v1005_g n1005_g 0 '107' + + +v1006_t n1006_t 0 '1-2.1' +v1007_t n1007_t 0 '1--1' +v1008_t n1008_t 0 '5+2/-4' + +v1006_g n1006_g 0 '-1.1' +v1007_g n1007_g 0 '2' +v1008_g n1008_g 0 '4.5' + + +* ---------------------------------------- +* boolean operators '&&' '||' '!' +* output: 0.0 or 1.0 +* input: 0.0 is 'false', everything else is 'true' + +* --------------- +* `&&' operator + +v1009_t n1009_t 0 '0 && 0' +v1010_t n1010_t 0 '0 && 1' +v1011_t n1011_t 0 '1 && 0' +v1012_t n1012_t 0 '0.1 && 0.2' +v1013_t n1013_t 0 '-0.1 && 0.2' + +v1009_g n1009_g 0 '0' +v1010_g n1010_g 0 '0' +v1011_g n1011_g 0 '0' +v1012_g n1012_g 0 '1' +v1013_g n1013_g 0 '1' + + +* --------------- +* `||' operator + +v1014_t n1014_t 0 '0 || 0' +v1015_t n1015_t 0 '0 || 0.1' +v1016_t n1016_t 0 '-0.1 || 0' +v1017_t n1017_t 0 '0.1 || -0.2' + +v1014_g n1014_g 0 '0' +v1015_g n1015_g 0 '1' +v1016_g n1016_g 0 '1' +v1017_g n1017_g 0 '1' + + +* --------------- +* `!' operator + +v1018_t n1018_t 0 '! 0.0' +v1019_t n1019_t 0 '! 0.1' +v1020_t n1020_t 0 '! (-0.1)' + +v1018_g n1018_g 0 '1' +v1019_g n1019_g 0 '0' +v1020_g n1020_g 0 '0' + + + +* ---------------------------------------- +* comparison operators +* output: 0.0 or 1.0 + +* ---------- +* `>' + +v1021_t n1021_t 0 '3 > 2' +v1022_t n1022_t 0 '2 > 3' +v1023_t n1023_t 0 '2 > 2' + +v1021_g n1021_g 0 '1' +v1022_g n1022_g 0 '0' +v1023_g n1023_g 0 '0' + + +* ---------- +* '<' + +v1024_t n1024_t 0 '3 < 2' +v1025_t n1025_t 0 '2 < 3' +v1026_t n1026_t 0 '2 < 2' + +v1024_g n1024_g 0 '0' +v1025_g n1025_g 0 '1' +v1026_g n1026_g 0 '0' + + +* ---------- +* '<=' + +v1027_t n1027_t 0 '3 >= 2' +v1028_t n1028_t 0 '2 >= 3' +v1029_t n1029_t 0 '2 >= 2' + +v1027_g n1027_g 0 '1' +v1028_g n1028_g 0 '0' +v1029_g n1029_g 0 '1' + + +* ---------- +* '>=' + +v1030_t n1030_t 0 '3 <= 2' +v1031_t n1031_t 0 '2 <= 3' +v1032_t n1032_t 0 '2 <= 2' + +v1030_g n1030_g 0 '0' +v1031_g n1031_g 0 '1' +v1032_g n1032_g 0 '1' + + +* ---------- +* '==' + +v1033_t n1033_t 0 '3 == 2' +v1034_t n1034_t 0 '2 == 3' +v1035_t n1035_t 0 '2 == 2' + +v1033_g n1033_g 0 '0' +v1034_g n1034_g 0 '0' +v1035_g n1035_g 0 '1' + + +* ---------- +* '!=' + +v1036_t n1036_t 0 '3 != 2' +v1037_t n1037_t 0 '2 != 3' +v1038_t n1038_t 0 '2 != 2' + +v1036_g n1036_g 0 '1' +v1037_g n1037_g 0 '1' +v1038_g n1038_g 0 '0' + + +* ---------------------------------------- +* four variants of exponentiation + +v1039_t n1039_t 0 '2 ^ 3' +v1039_g n1039_g 0 '8' + +v1040_t n1040_t 0 '2 ** 3' +v1040_g n1040_g 0 '8' + +v1041_t n1041_t 0 'pwr(2,3)' +v1041_g n1041_g 0 '8' + +v1042_t n1042_t 0 'pow(2,3)' +v1042_g n1042_g 0 '8' + + +* ---------------------------------------- +* ternary 'c ? x : y' operator +* input: 0.0 is false, everything else is true + +v1043_t n1043_t 0 ' 0.1 ? 42 : 43' +v1044_t n1044_t 0 '-0.1 ? 42 : 43' +v1045_t n1045_t 0 ' 0.0 ? 42 : 43' + +v1043_g n1043_g 0 '42' +v1044_g n1044_g 0 '42' +v1045_g n1045_g 0 '43' + +* assoziativity + +v1046_t n1046_t 0 '1 ? 42 : 1 ? 41 : 40' +v1047_t n1047_t 0 '1 ? 42 : 0 ? 41 : 40' +v1048_t n1048_t 0 '0 ? 42 : 1 ? 41 : 40' +v1049_t n1049_t 0 '0 ? 42 : 0 ? 41 : 40' + +v1046_g n1046_g 0 '42' +v1047_g n1047_g 0 '42' +v1048_g n1048_g 0 '41' +v1049_g n1049_g 0 '40' + +* -------------------- +* regression tests +* these failed in the past, due to incorrect transformations in inpcom.c + +* was incorrectly transformed --> (3>2)||ternary_fcn((1<4),0.2,0.3) +v1050_t n1050_t 0 '(3>2)||(1<4) ? 0.2 : 0.3' +v1050_g n1050_g 0 '0.2' + +* was incorrectly transformed --> controlled_exit() +v1051_t n1051_t 0 '(3>2) ? (3+2)*((2>1)?1:1) : 42' +v1051_g n1051_g 0 '5' + +* was incorrectly transformed --> ternary_fcn((3>2),42,(2*2))3 +v1052_t n1052_t 0 '(3>2) ? 42 : (2*2)+3' +v1052_g n1052_g 0 '42' + + +* ---------------------------------------- +* functions + +v1053_t n1053_t 0 'sin(0.3)' +v1054_t n1054_t 0 'cos(0.3)' +v1055_t n1055_t 0 'tan(0.3)' +v1056_t n1056_t 0 'asin(0.3)' +v1057_t n1057_t 0 'acos(0.3)' +v1058_t n1058_t 0 'atan(0.3)' +v1059_t n1059_t 0 'arctan(0.3)' +v1060_t n1060_t 0 'sinh(0.3)' +v1061_t n1061_t 0 'cosh(0.3)' +v1062_t n1062_t 0 'tanh(0.3)' +v1063_t n1063_t 0 'asinh(0.3)' +v1064_t n1064_t 0 'acosh(1.3)' +v1065_t n1065_t 0 'atanh(0.3)' + +v1053_g n1053_g 0 '0.29552020666133955' +v1054_g n1054_g 0 '0.955336489125606' +v1055_g n1055_g 0 '0.30933624960962325' +v1056_g n1056_g 0 '0.3046926540153975' +v1057_g n1057_g 0 '1.266103672779499' +v1058_g n1058_g 0 '0.29145679447786704' +v1059_g n1059_g 0 '0.29145679447786704' +v1060_g n1060_g 0 '0.3045202934471426' +v1061_g n1061_g 0 '1.0453385141288605' +v1062_g n1062_g 0 '0.2913126124515909' +v1063_g n1063_g 0 '0.2956730475634223' +v1064_g n1064_g 0 '0.7564329108569595' +v1065_g n1065_g 0 '0.3095196042031116' + +* ---------- + +v1066_t n1066_t 0 'exp(2.0)' +v1067_t n1067_t 0 'exp(-2.0)' + +v1066_g n1066_g 0 '7.38905609893065' +v1067_g n1067_g 0 '0.1353352832366127' + +* ---------- + +v1068_t n1068_t 0 'log(2.0)' +v1069_t n1069_t 0 'log(0.5)' + +v1068_g n1068_g 0 '0.6931471805599453' +v1069_g n1069_g 0 '-0.6931471805599453' + +v1070_t n1070_t 0 'ln(2.0)' +v1071_t n1071_t 0 'ln(0.5)' + +v1070_g n1070_g 0 '0.6931471805599453' +v1071_g n1071_g 0 '-0.6931471805599453' + +* ---------- + +v1072_t n1072_t 0 'sqrt(2.0)' +v1072_g n1072_g 0 '1.4142135623730951' + +v1073_t n1073_t 0 'sqr(2.0)' +v1073_g n1073_g 0 '4.0' + + +* ---------------------------------------- +* functions + +v1074_t n1074_t 0 'abs(2.0)' +v1075_t n1075_t 0 'abs(-2.0)' + +v1074_g n1074_g 0 '2' +v1075_g n1075_g 0 '2' + + +v1076_t n1076_t 0 'sgn(2.0)' +v1077_t n1077_t 0 'sgn(0.0)' +v1078_t n1078_t 0 'sgn(-2.0)' + +v1076_g n1076_g 0 '1' +v1077_g n1077_g 0 '0' +v1078_g n1078_g 0 '-1' + + +v1079_t n1079_t 0 'int(2.1)' +v1080_t n1080_t 0 'int(1.9)' +v1081_t n1081_t 0 'int(0)' +v1082_t n1082_t 0 'int(-1.9)' +v1083_t n1083_t 0 'int(-2.1)' + +v1079_g n1079_g 0 '2' +v1080_g n1080_g 0 '1' +v1081_g n1081_g 0 '0' +v1082_g n1082_g 0 '-1' +v1083_g n1083_g 0 '-2' + + +v1084_t n1084_t 0 'nint(2.6)' +v1085_t n1085_t 0 'nint(2.5)' +v1086_t n1086_t 0 'nint(2.4)' +v1087_t n1087_t 0 'nint(1.6)' +v1088_t n1088_t 0 'nint(1.5)' +v1089_t n1089_t 0 'nint(1.4)' +v1090_t n1090_t 0 'nint(0.6)' +v1091_t n1091_t 0 'nint(0.5)' +v1092_t n1092_t 0 'nint(0.4)' +v1093_t n1093_t 0 'nint(0)' +v1094_t n1094_t 0 'nint(-0.4)' +v1095_t n1095_t 0 'nint(-0.5)' +v1096_t n1096_t 0 'nint(-0.6)' +v1097_t n1097_t 0 'nint(-1.4)' +v1098_t n1098_t 0 'nint(-1.5)' +v1099_t n1099_t 0 'nint(-1.6)' +v1100_t n1100_t 0 'nint(-2.4)' +v1101_t n1101_t 0 'nint(-2.5)' +v1102_t n1102_t 0 'nint(-2.6)' + +v1084_g n1084_g 0 '3' +v1085_g n1085_g 0 '2' +v1086_g n1086_g 0 '2' +v1087_g n1087_g 0 '2' +v1088_g n1088_g 0 '2' +v1089_g n1089_g 0 '1' +v1090_g n1090_g 0 '1' +v1091_g n1091_g 0 '0' +v1092_g n1092_g 0 '0' +v1093_g n1093_g 0 '0' +v1094_g n1094_g 0 '0' +v1095_g n1095_g 0 '0' +v1096_g n1096_g 0 '-1' +v1097_g n1097_g 0 '-1' +v1098_g n1098_g 0 '-2' +v1099_g n1099_g 0 '-2' +v1100_g n1100_g 0 '-2' +v1101_g n1101_g 0 '-2' +v1102_g n1102_g 0 '-3' + + +v1103_t n1103_t 0 'floor(2.1)' +v1104_t n1104_t 0 'floor(1.9)' +v1105_t n1105_t 0 'floor(0)' +v1106_t n1106_t 0 'floor(-1.9)' +v1107_t n1107_t 0 'floor(-2.1)' + +v1103_g n1103_g 0 '2' +v1104_g n1104_g 0 '1' +v1105_g n1105_g 0 '0' +v1106_g n1106_g 0 '-2' +v1107_g n1107_g 0 '-3' + + +v1108_t n1108_t 0 'ceil(2.1)' +v1109_t n1109_t 0 'ceil(1.9)' +v1110_t n1110_t 0 'ceil(0)' +v1111_t n1111_t 0 'ceil(-1.9)' +v1112_t n1112_t 0 'ceil(-2.1)' + +v1108_g n1108_g 0 '3' +v1109_g n1109_g 0 '2' +v1110_g n1110_g 0 '0' +v1111_g n1111_g 0 '-1' +v1112_g n1112_g 0 '-2' + + +* ---------------------------------------- +* min(a,b) max(a,b) + +v1113_t n1113_t 0 'min(1.1, 2.1)' +v1114_t n1114_t 0 'min(2.1, 1.1)' + +v1113_g n1113_g 0 '1.1' +v1114_g n1114_g 0 '1.1' + + +v1115_t n1115_t 0 'max(1.1, 2.1)' +v1116_t n1116_t 0 'max(2.1, 1.1)' + +v1115_g n1115_g 0 '2.1' +v1116_g n1116_g 0 '2.1' + + +* ---------------------------------------- + +.control + +define mismatch(a,b,err) abs(a-b)>err + +op + +let total_count = 0 +let fail_count = 0 + +let tests = 1001 + vector(116) + +foreach n $&tests + set n_test = "n{$n}_t" + set n_gold = "n{$n}_g" + if mismatch(v($n_test), v($n_gold), 1e-9) + let v_test = v($n_test) + let v_gold = v($n_gold) + echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold" + let fail_count = fail_count + 1 + end + let total_count = total_count + 1 +end + +if fail_count > 0 + echo "ERROR: $&fail_count of $&total_count tests failed" + quit 1 +else + echo "INFO: $&fail_count of $&total_count tests failed" + quit 0 +end + +.endc + +.end diff --git a/Windows/spice/tests/regression/parser/xpressn-2.cir b/Windows/spice/tests/regression/parser/xpressn-2.cir new file mode 100644 index 00000000..2c3ecb75 --- /dev/null +++ b/Windows/spice/tests/regression/parser/xpressn-2.cir @@ -0,0 +1,261 @@ +check precision of some functions + +* do not change this file, its generated +* (exec-spice "ngspice -b %s") + +v0 n0 0 'sin(1.0e-9)' +v1 n1 0 'sin(1.0e-1)' +v2 n2 0 'sin(7.0e-1)' +v3 n3 0 'cos(1.0e-9)' +v4 n4 0 'cos(1.0e-1)' +v5 n5 0 'cos(7.0e-1)' +v6 n6 0 'tan(1.0e-9)' +v7 n7 0 'tan(1.0e-1)' +v8 n8 0 'tan(7.0e-1)' +v9 n9 0 'asin(1.0e-9)' +v10 n10 0 'asin(1.0e-1)' +v11 n11 0 'asin(7.0e-1)' +v12 n12 0 'acos(1.0e-9)' +v13 n13 0 'acos(1.0e-1)' +v14 n14 0 'acos(7.0e-1)' +v15 n15 0 'atan(1.0e-9)' +v16 n16 0 'atan(1.0e-1)' +v17 n17 0 'atan(7.0e-1)' +v18 n18 0 'sinh(1.0e-9)' +v19 n19 0 'sinh(1.0e-1)' +v20 n20 0 'sinh(7.0e-1)' +v21 n21 0 'cosh(1.0e-9)' +v22 n22 0 'cosh(1.0e-1)' +v23 n23 0 'cosh(7.0e-1)' +v24 n24 0 'tanh(1.0e-9)' +v25 n25 0 'tanh(1.0e-1)' +v26 n26 0 'tanh(7.0e-1)' +v27 n27 0 'asinh(1.0e-9)' +v28 n28 0 'asinh(1.0e-1)' +v29 n29 0 'asinh(7.0e-1)' +v30 n30 0 'acosh(1.2e+0)' +v31 n31 0 'atanh(1.0e-9)' +v32 n32 0 'atanh(1.0e-1)' +v33 n33 0 'atanh(7.0e-1)' + + +.control + +op + +let eps = 1.1102230246251568e-16 + +define mismatch(y,gold,err) abs(y-gold)>(err*gold) + +define relerr_(y,gold) (y-gold)/(gold*eps) + + +if mismatch(v(n0), 1.0e-9, 10*eps) + let relerr = relerr_(v(n0), 1.0e-9) + echo "ERROR, sin(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n1), 9.983341664682815e-2, 10*eps) + let relerr = relerr_(v(n1), 9.983341664682815e-2) + echo "ERROR, sin(1.0e-1) versus 9.983341664682815e-2 mismatch" + print relerr +end + +if mismatch(v(n2), 6.44217687237691e-1, 10*eps) + let relerr = relerr_(v(n2), 6.44217687237691e-1) + echo "ERROR, sin(7.0e-1) versus 6.44217687237691e-1 mismatch" + print relerr +end + +if mismatch(v(n3), 1.0e+0, 10*eps) + let relerr = relerr_(v(n3), 1.0e+0) + echo "ERROR, cos(1.0e-9) versus 1.0e+0 mismatch" + print relerr +end + +if mismatch(v(n4), 9.950041652780258e-1, 10*eps) + let relerr = relerr_(v(n4), 9.950041652780258e-1) + echo "ERROR, cos(1.0e-1) versus 9.950041652780258e-1 mismatch" + print relerr +end + +if mismatch(v(n5), 7.648421872844885e-1, 10*eps) + let relerr = relerr_(v(n5), 7.648421872844885e-1) + echo "ERROR, cos(7.0e-1) versus 7.648421872844885e-1 mismatch" + print relerr +end + +if mismatch(v(n6), 1.0e-9, 10*eps) + let relerr = relerr_(v(n6), 1.0e-9) + echo "ERROR, tan(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n7), 1.0033467208545055e-1, 10*eps) + let relerr = relerr_(v(n7), 1.0033467208545055e-1) + echo "ERROR, tan(1.0e-1) versus 1.0033467208545055e-1 mismatch" + print relerr +end + +if mismatch(v(n8), 8.422883804630794e-1, 10*eps) + let relerr = relerr_(v(n8), 8.422883804630794e-1) + echo "ERROR, tan(7.0e-1) versus 8.422883804630794e-1 mismatch" + print relerr +end + +if mismatch(v(n9), 1.0e-9, 10*eps) + let relerr = relerr_(v(n9), 1.0e-9) + echo "ERROR, asin(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n10), 1.0016742116155979e-1, 10*eps) + let relerr = relerr_(v(n10), 1.0016742116155979e-1) + echo "ERROR, asin(1.0e-1) versus 1.0016742116155979e-1 mismatch" + print relerr +end + +if mismatch(v(n11), 7.753974966107529e-1, 10*eps) + let relerr = relerr_(v(n11), 7.753974966107529e-1) + echo "ERROR, asin(7.0e-1) versus 7.753974966107529e-1 mismatch" + print relerr +end + +if mismatch(v(n12), 1.5707963257948965e+0, 10*eps) + let relerr = relerr_(v(n12), 1.5707963257948965e+0) + echo "ERROR, acos(1.0e-9) versus 1.5707963257948965e+0 mismatch" + print relerr +end + +if mismatch(v(n13), 1.470628905633337e+0, 10*eps) + let relerr = relerr_(v(n13), 1.470628905633337e+0) + echo "ERROR, acos(1.0e-1) versus 1.470628905633337e+0 mismatch" + print relerr +end + +if mismatch(v(n14), 7.953988301841437e-1, 10*eps) + let relerr = relerr_(v(n14), 7.953988301841437e-1) + echo "ERROR, acos(7.0e-1) versus 7.953988301841437e-1 mismatch" + print relerr +end + +if mismatch(v(n15), 1.0e-9, 10*eps) + let relerr = relerr_(v(n15), 1.0e-9) + echo "ERROR, atan(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n16), 9.966865249116206e-2, 10*eps) + let relerr = relerr_(v(n16), 9.966865249116206e-2) + echo "ERROR, atan(1.0e-1) versus 9.966865249116206e-2 mismatch" + print relerr +end + +if mismatch(v(n17), 6.107259643892086e-1, 10*eps) + let relerr = relerr_(v(n17), 6.107259643892086e-1) + echo "ERROR, atan(7.0e-1) versus 6.107259643892086e-1 mismatch" + print relerr +end + +if mismatch(v(n18), 1.0e-9, 10*eps) + let relerr = relerr_(v(n18), 1.0e-9) + echo "ERROR, sinh(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n19), 1.0016675001984403e-1, 10*eps) + let relerr = relerr_(v(n19), 1.0016675001984403e-1) + echo "ERROR, sinh(1.0e-1) versus 1.0016675001984403e-1 mismatch" + print relerr +end + +if mismatch(v(n20), 7.585837018395335e-1, 10*eps) + let relerr = relerr_(v(n20), 7.585837018395335e-1) + echo "ERROR, sinh(7.0e-1) versus 7.585837018395335e-1 mismatch" + print relerr +end + +if mismatch(v(n21), 1.0e+0, 10*eps) + let relerr = relerr_(v(n21), 1.0e+0) + echo "ERROR, cosh(1.0e-9) versus 1.0e+0 mismatch" + print relerr +end + +if mismatch(v(n22), 1.0050041680558035e+0, 10*eps) + let relerr = relerr_(v(n22), 1.0050041680558035e+0) + echo "ERROR, cosh(1.0e-1) versus 1.0050041680558035e+0 mismatch" + print relerr +end + +if mismatch(v(n23), 1.255169005630943e+0, 10*eps) + let relerr = relerr_(v(n23), 1.255169005630943e+0) + echo "ERROR, cosh(7.0e-1) versus 1.255169005630943e+0 mismatch" + print relerr +end + +if mismatch(v(n24), 1.0e-9, 10*eps) + let relerr = relerr_(v(n24), 1.0e-9) + echo "ERROR, tanh(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n25), 9.966799462495581e-2, 10*eps) + let relerr = relerr_(v(n25), 9.966799462495581e-2) + echo "ERROR, tanh(1.0e-1) versus 9.966799462495581e-2 mismatch" + print relerr +end + +if mismatch(v(n26), 6.043677771171635e-1, 10*eps) + let relerr = relerr_(v(n26), 6.043677771171635e-1) + echo "ERROR, tanh(7.0e-1) versus 6.043677771171635e-1 mismatch" + print relerr +end + +if mismatch(v(n27), 1.0e-9, 10*eps) + let relerr = relerr_(v(n27), 1.0e-9) + echo "ERROR, asinh(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n28), 9.983407889920759e-2, 10*eps) + let relerr = relerr_(v(n28), 9.983407889920759e-2) + echo "ERROR, asinh(1.0e-1) versus 9.983407889920759e-2 mismatch" + print relerr +end + +if mismatch(v(n29), 6.526665660823557e-1, 10*eps) + let relerr = relerr_(v(n29), 6.526665660823557e-1) + echo "ERROR, asinh(7.0e-1) versus 6.526665660823557e-1 mismatch" + print relerr +end + +if mismatch(v(n30), 6.223625037147784e-1, 10*eps) + let relerr = relerr_(v(n30), 6.223625037147784e-1) + echo "ERROR, acosh(1.2e+0) versus 6.223625037147784e-1 mismatch" + print relerr +end + +if mismatch(v(n31), 1.0e-9, 10*eps) + let relerr = relerr_(v(n31), 1.0e-9) + echo "ERROR, atanh(1.0e-9) versus 1.0e-9 mismatch" + print relerr +end + +if mismatch(v(n32), 1.0033534773107558e-1, 10*eps) + let relerr = relerr_(v(n32), 1.0033534773107558e-1) + echo "ERROR, atanh(1.0e-1) versus 1.0033534773107558e-1 mismatch" + print relerr +end + +if mismatch(v(n33), 8.673005276940532e-1, 10*eps) + let relerr = relerr_(v(n33), 8.673005276940532e-1) + echo "ERROR, atanh(7.0e-1) versus 8.673005276940532e-1 mismatch" + print relerr +end + + +quit 0 + + +.endc diff --git a/Windows/spice/tests/regression/subckt-processing/Makefile.am b/Windows/spice/tests/regression/subckt-processing/Makefile.am new file mode 100644 index 00000000..4bef8024 --- /dev/null +++ b/Windows/spice/tests/regression/subckt-processing/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = model-scope-5.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/regression/subckt-processing/Makefile.in b/Windows/spice/tests/regression/subckt-processing/Makefile.in new file mode 100644 index 00000000..50c1402c --- /dev/null +++ b/Windows/spice/tests/regression/subckt-processing/Makefile.in @@ -0,0 +1,512 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/regression/subckt-processing +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = model-scope-5.cir +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/regression/subckt-processing/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/regression/subckt-processing/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/regression/subckt-processing/model-scope-5.cir b/Windows/spice/tests/regression/subckt-processing/model-scope-5.cir new file mode 100644 index 00000000..1baf1081 --- /dev/null +++ b/Windows/spice/tests/regression/subckt-processing/model-scope-5.cir @@ -0,0 +1,84 @@ +check scoping of nested .model definitions + +* (exec-spice "ngspice -b %s") +* (tests-aux-renumber) + + +i1 n1001_t 0 dc=-1 +i2 n1002_t 0 dc=-1 +i3 n1003_t 0 dc=-1 +i4 n1004_t 0 dc=-1 +i5 n1005_t 0 dc=-1 +i6 n1006_t 0 dc=-1 +i7 n1007_t 0 dc=-1 + +x1 n1001_t sub1 +v1_g n1001_g 0 2k + +x2 n1002_t n1003_t n1004_t n1005_t n1006_t n1007_t sub2 +v2_g n1002_g 0 4k +v3_g n1003_g 0 1k +v4_g n1004_g 0 8k +v5_g n1005_g 0 1k +v6_g n1006_g 0 8k +v7_g n1007_g 0 43 + +.subckt sub1 2 + .model my r r=2k + r1 2 0 my +.ends + +.subckt sub2 3 41a 41b 42a 42b 5 + r2 3 0 my + + x31 41a 41b sub3 + x32 42a 42b sub3 + + .subckt sub3 4 5 + .model my r r=8k + .model any r r=42 + r5 4 0 1k + r6 5 0 my + .ends + + .model just r r=43 + r5 5 0 just +.ends + +.model my r r=4k + + +.control + +define mismatch(a,b,err) abs(a-b)>err + +op + +let total_count = 0 +let fail_count = 0 + +let tests = 1001 + vector(7) + +foreach n $&tests + set n_test = "n{$n}_t" + set n_gold = "n{$n}_g" + if mismatch(v($n_test), v($n_gold), 1e-9) + let v_test = v($n_test) + let v_gold = v($n_gold) + echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold" + let fail_count = fail_count + 1 + end + let total_count = total_count + 1 +end + +if fail_count > 0 + echo "ERROR: $&fail_count of $&total_count tests failed" + quit 1 +else + echo "INFO: $&fail_count of $&total_count tests failed" + quit 0 +end + +.endc + +.end diff --git a/Windows/spice/tests/resistance/Makefile.am b/Windows/spice/tests/resistance/Makefile.am new file mode 100644 index 00000000..ff1e7970 --- /dev/null +++ b/Windows/spice/tests/resistance/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + res_array.cir \ + res_simple.cir \ + res_partition.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/resistance/Makefile.in b/Windows/spice/tests/resistance/Makefile.in new file mode 100644 index 00000000..1c0671b3 --- /dev/null +++ b/Windows/spice/tests/resistance/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/resistance +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + res_array.cir \ + res_simple.cir \ + res_partition.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/resistance/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/resistance/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/resistance/res_array.cir b/Windows/spice/tests/resistance/res_array.cir new file mode 100644 index 00000000..4080fc3e --- /dev/null +++ b/Windows/spice/tests/resistance/res_array.cir @@ -0,0 +1,28 @@ +A paralled resistor array + +Vin 1 0 DC 1 SIN (0 1 100MEG 1NS 0.0) AC 1 + +VR1 1 2 DC 0 +R1 2 0 10K + +VR2 1 3 DC 0 +R2 3 0 10K ac=5K + +VR3 1 4 DC 0 +R3 4 0 rmodel1 L=11u W=2u ac=2.5k + +VR4 1 5 DC 0 +R4 5 0 10K ac=5k m=2 +.model rmodel1 R RSH = 1000 NARROW = 1u + +VR5 1 6 DC 0 +R5 6 0 10 ac=5 scale=1K + +.options noacct +.OP +.TRAN 1ns 10ns +.AC DEC 100 1MEG 100MEG +.PRINT TRAN I(VR1), I(VR2), I(VR3), I(VR4),I(VR5) +.PRINT AC I(VR1), I(VR2), I(VR3), I(VR4),I(VR5) + +.END diff --git a/Windows/spice/tests/resistance/res_partition.cir b/Windows/spice/tests/resistance/res_partition.cir new file mode 100644 index 00000000..40bcdd02 --- /dev/null +++ b/Windows/spice/tests/resistance/res_partition.cir @@ -0,0 +1,11 @@ +* Resistive partition with different ratios for AC/DC (Print V(2)) + +vin 1 0 DC 1V AC 1V +r1 1 2 5K +r2 2 0 5K ac=15k + +.options noacct +.OP +.AC DEC 10 1 10K +.print ac v(2) +.END diff --git a/Windows/spice/tests/resistance/res_simple.cir b/Windows/spice/tests/resistance/res_simple.cir new file mode 100644 index 00000000..7dc66cae --- /dev/null +++ b/Windows/spice/tests/resistance/res_simple.cir @@ -0,0 +1,10 @@ +A simple resistor with a voltage source + +R1 1 0 10k +V1 1 0 DC 1 + +.options noacct +.TRAN 1ns 6ns +.PRINT TRAN I(V1) + +.END diff --git a/Windows/spice/tests/sensitivity/Makefile.am b/Windows/spice/tests/sensitivity/Makefile.am new file mode 100644 index 00000000..437ad699 --- /dev/null +++ b/Windows/spice/tests/sensitivity/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = diffpair.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/sensitivity/Makefile.in b/Windows/spice/tests/sensitivity/Makefile.in new file mode 100644 index 00000000..e10e8d3d --- /dev/null +++ b/Windows/spice/tests/sensitivity/Makefile.in @@ -0,0 +1,512 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/sensitivity +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = diffpair.cir +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/sensitivity/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/sensitivity/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/sensitivity/diffpair.cir b/Windows/spice/tests/sensitivity/diffpair.cir new file mode 100644 index 00000000..ddd1b8ef --- /dev/null +++ b/Windows/spice/tests/sensitivity/diffpair.cir @@ -0,0 +1,33 @@ +simple differential pair - CM and DM dc sensitivity + +* Models: +.model qnl npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) +.model qnr npn(level=1 bf=80 rb=100 ccs=2pf tf=0.3ns tr=6ns cje=3pf cjc=2pf va=50) + +* Circuit description: +q1 4 2 6 qnr +q2 5 3 6 qnl +rs1 11 2 1k +rs2 3 1 1k +rc1 4 8 10k +rc2 5 8 10k +q3 7 7 9 qnl +q4 6 7 9 qnr +rbias 7 8 20k + +* Inputs/Supplies: +vcm 1 0 dc 0 sin(0 0.1 5meg) ac 1 +vdm 1 11 dc 0 sin(0 0.1 5meg) ac 1 +vcc 8 0 12 +vee 9 0 -12 + +.options noacct + +* Analyses: +.tf v(5) vcm +.tf v(5) vdm +.sens v(5,4) + +.print SENS all + +.end diff --git a/Windows/spice/tests/transient/Makefile.am b/Windows/spice/tests/transient/Makefile.am new file mode 100644 index 00000000..9b2ccced --- /dev/null +++ b/Windows/spice/tests/transient/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to produce Makefile.in + + +TESTS = fourbitadder.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/transient/Makefile.in b/Windows/spice/tests/transient/Makefile.in new file mode 100644 index 00000000..360024fa --- /dev/null +++ b/Windows/spice/tests/transient/Makefile.in @@ -0,0 +1,512 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/transient +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = fourbitadder.cir +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/transient/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/transient/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/transient/fourbitadder.cir b/Windows/spice/tests/transient/fourbitadder.cir new file mode 100644 index 00000000..d6b577df --- /dev/null +++ b/Windows/spice/tests/transient/fourbitadder.cir @@ -0,0 +1,79 @@ +4 bit adder + +* Models: +.MODEL dmod D +.MODEL qmod NPN(level=1 BF=75 RB=100 CJE=1PF CJC=3PF) + +.options noacct + +.SUBCKT NAND 1 2 3 4 +* noeuds: entrees(2) sortie vcc +q1 9 5 1 qmod +d1clamp 0 1 dmod +q2 9 5 2 qmod +d2clamp 0 2 dmod +rb 4 5 4k +r1 4 6 1.6k +q3 6 9 8 qmod +r2 8 0 1k +rc 4 7 130 +q4 7 6 10 qmod +dvbedrop 10 3 dmod +q5 3 8 0 qmod +.ends NAND + +.SUBCKT ONEBIT 1 2 3 4 5 6 +* noeuds entrees(2) ,carryin, sortie, carryout, vcc +x1 1 2 7 6 NAND +x2 1 7 8 6 NAND +x3 2 7 9 6 NAND +x4 8 9 10 6 NAND +x5 3 10 11 6 NAND +x6 3 11 12 6 NAND +x7 10 11 13 6 NAND +x8 12 13 4 6 NAND +x9 11 7 5 6 NAND +.ends ONEBIT + +.SUBCKT TWOBIT 1 2 3 4 5 6 7 8 9 +* noeuds +x1 1 2 7 5 10 9 ONEBIT +x2 3 4 10 6 8 9 ONEBIT +.ends TWOBIT + +.SUBCKT FOURBIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + +x1 1 2 3 4 9 10 13 16 15 TWOBIT +x2 5 6 7 8 11 12 16 14 15 TWOBIT +.ends FOURBIT + + + +* Inputs/Supplies: + +vcc 99 0 DC 5V +VIN1A 1 0 DC 0 pulse(0 3 0 10ns 10ns 10ns 50ns) +VIN1B 2 0 DC 0 pulse(0 3 0 10ns 10ns 20ns 100ns) +VIN2A 3 0 DC 0 pulse(0 3 0 10ns 10ns 40ns 200ns) +VIN2B 4 0 DC 0 pulse(0 3 0 10ns 10ns 80ns 400ns) +VIN3A 5 0 DC 0 pulse(0 3 0 10ns 10ns 160ns 800ns) +VIN3B 6 0 DC 0 pulse(0 3 0 10ns 10ns 320ns 1600ns) +VIN4A 7 0 DC 0 pulse(0 3 0 10ns 10ns 640ns 3200ns) +VIN4B 8 0 DC 0 pulse(0 3 0 10ns 10ns 1280ns 6400ns) + +* Circuit description: +x1 1 2 3 4 5 6 7 8 9 10 11 12 0 13 99 FOURBIT +rbit0 9 0 1k +rbit1 10 0 1k +rbit2 11 0 1k +rbit3 12 0 1k +rcout 13 0 1k + +* Analysys: +.tran 1ns 6ns +.print tran v(1) + + +.end + + diff --git a/Windows/spice/tests/transmission/Makefile.am b/Windows/spice/tests/transmission/Makefile.am new file mode 100644 index 00000000..0d79bbd0 --- /dev/null +++ b/Windows/spice/tests/transmission/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + cpl_ibm2.cir \ + cpl3_4_line.cir \ + ltra1_1_line.cir \ + ltra2_2_line.cir \ + txl1_1_line.cir \ + txl2_3_line.cir + + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/transmission/Makefile.in b/Windows/spice/tests/transmission/Makefile.in new file mode 100644 index 00000000..73aabe47 --- /dev/null +++ b/Windows/spice/tests/transmission/Makefile.in @@ -0,0 +1,519 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/transmission +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + cpl_ibm2.cir \ + cpl3_4_line.cir \ + ltra1_1_line.cir \ + ltra2_2_line.cir \ + txl1_1_line.cir \ + txl2_3_line.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/transmission/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/transmission/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/transmission/cpl3_4_line.cir b/Windows/spice/tests/transmission/cpl3_4_line.cir new file mode 100644 index 00000000..5f90ec21 --- /dev/null +++ b/Windows/spice/tests/transmission/cpl3_4_line.cir @@ -0,0 +1,36 @@ +6.3inch 4 lossy lines CPL model -- R load + +Ra 1 2 1K +Rb 0 3 1K +Rc 0 4 1K +Rd 0 5 1K +Re 6 0 1Meg +Rf 7 0 1Meg +Rg 8 0 1Meg +Rh 9 0 1Meg +* +P1 2 3 4 5 0 6 7 8 9 0 LOSSYMODE +* +* +VS1 1 0 PWL(15.9NS 0.0 16.1Ns 5.0 31.9Ns 5.0 32.1Ns 0.0) +* +.OPTION NOACCT +.TRAN 0.2NS 50NS 0 0.05N +.PRINT TRAN V(2) V(7) V(9) +.MODEL LOSSYMODE CPL ++R=0.3 0 0 0 ++ 0.3 0 0 ++ 0.3 0 ++ 0.3 ++L=9e-9 5.4e-9 0 0 ++ 9e-9 5.4e-9 0 ++ 9e-9 5.4e-9 ++ 9e-9 ++G=0 0 0 0 0 0 0 0 0 0 ++C=3.5e-13 -3e-14 0 0 ++ 3.5e-13 -3e-14 0 ++ 3.5e-13 -3e-14 ++ 3.5e-13 ++length=6.3 + +.END diff --git a/Windows/spice/tests/transmission/cpl_ibm2.cir b/Windows/spice/tests/transmission/cpl_ibm2.cir new file mode 100644 index 00000000..912dd6e6 --- /dev/null +++ b/Windows/spice/tests/transmission/cpl_ibm2.cir @@ -0,0 +1,19 @@ +Simple coupled transmissionlines +VES IN 0 PULSE (0 1 0N 1.5N 1.5N 4.5N 200N) +R1 IN V1 50 +R2 V2 0 10 +p1 V1 V2 0 V3 V4 0 cpl1 +.model cpl1 cpl ++R = 0.5 0 0.5 ++L = 247.3e-9 31.65e-9 ++ 247.3e-9 ++C = 31.4e-12 -2.45e-12 ++ 31.4e-12 ++G = 0 0 0 ++length = 0.3048 +R3 V3 0 100 +R4 V4 0 100 +.OPTION NOACCT +.TRAN 0.1N 20N +.PRINT TRAN V(V1) V(V3) +.END diff --git a/Windows/spice/tests/transmission/ltra1_1_line.cir b/Windows/spice/tests/transmission/ltra1_1_line.cir new file mode 100644 index 00000000..7b85af97 --- /dev/null +++ b/Windows/spice/tests/transmission/ltra1_1_line.cir @@ -0,0 +1,18 @@ +MOSdriver -- lossy line LTRA model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +o1 2 0 3 0 lline +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.OPTION NOACCT +.TRAN 0.2N 47N 0 0.1N +.PRINT TRAN V(2) V(3) +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.model lline ltra rel=1 r=12.45 g=0 l=8.972e-9 c=0.468e-12 ++len=16 steplimit compactrel=1.0e-3 compactabs=1.0e-14 +.end diff --git a/Windows/spice/tests/transmission/ltra2_2_line.cir b/Windows/spice/tests/transmission/ltra2_2_line.cir new file mode 100644 index 00000000..d8a39137 --- /dev/null +++ b/Windows/spice/tests/transmission/ltra2_2_line.cir @@ -0,0 +1,23 @@ +MOSdriver -- 2 lossy lines LTRA model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +m1 0 3 4 0 mn0p9 w = 18.0u l=0.9u +m2 1 3 4 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +CN4 4 0 0.025398e-12 +CN5 5 0 0.007398e-12 +o1 2 0 3 0 lline +o2 4 0 5 0 lline +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.OPTION NOACCT +.TRAN 0.2N 47N 0 0.1N +.PRINT TRAN V(2) V(3) V(4) V(5) +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.model lline ltra rel=1 r=12.45 g=0 l=8.972e-9 c=0.468e-12 ++len=16 steplimit compactrel=1.0e-3 compactabs=1.0e-14 +.end diff --git a/Windows/spice/tests/transmission/txl1_1_line.cir b/Windows/spice/tests/transmission/txl1_1_line.cir new file mode 100644 index 00000000..6993161d --- /dev/null +++ b/Windows/spice/tests/transmission/txl1_1_line.cir @@ -0,0 +1,17 @@ +MOSdriver -- lossy line TXL model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +y1 2 0 3 0 ymod +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.OPTION NOACCT +.TRAN 0.2N 47N 0 0.1N +.PRINT TRAN V(2) V(3) +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL ymod txl R=12.45 L=8.972e-9 G=0 C=0.468e-12 length=16 +.end diff --git a/Windows/spice/tests/transmission/txl2_3_line.cir b/Windows/spice/tests/transmission/txl2_3_line.cir new file mode 100644 index 00000000..a7200009 --- /dev/null +++ b/Windows/spice/tests/transmission/txl2_3_line.cir @@ -0,0 +1,25 @@ +MOSdriver -- 3 lossy lines TXL model -- C load +m5 0 168 2 0 mn0p9 w = 18.0u l=0.9u +m6 1 168 2 1 mp1p0 w = 36.0u l=1.0u +m1 0 3 4 0 mn0p9 w = 18.0u l=0.9u +m2 1 3 4 1 mp1p0 w = 36.0u l=1.0u +CN2 2 0 0.025398e-12 +CN3 3 0 0.007398e-12 +CN4 4 0 0.025398e-12 +CN5 5 0 0.007398e-12 +CN6 6 0 0.007398e-12 +CN7 168 0 0.007398e-12 +y1 2 0 3 0 ymod +y2 4 0 5 0 ymod +y3 6 0 168 0 ymod +vdd 1 0 dc 5.0 +VS 168 0 PULSE (0 5 15.9NS 0.2NS 0.2NS 15.8NS 32NS ) +.OPTION NOACCT +.TRAN 0.2N 47N 0 0.1N +.PRINT TRAN V(2) V(3) V(4) V(5) V(6) +.MODEL mn0p9 NMOS VTO=0.8 KP=48U GAMMA=0.30 PHI=0.55 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL mp1p0 PMOS VTO=-0.8 KP=21U GAMMA=0.45 PHI=0.61 ++LAMBDA=0.00 CGSO=0 CGDO=0 CJ=0 CJSW=0 TOX=18000N LD=0.0U +.MODEL ymod txl R=12.45 L=8.972e-9 G=0 C=0.468e-12 length=16 +.end diff --git a/Windows/spice/tests/vbic/CEamp.cir b/Windows/spice/tests/vbic/CEamp.cir new file mode 100644 index 00000000..df3096e1 --- /dev/null +++ b/Windows/spice/tests/vbic/CEamp.cir @@ -0,0 +1,27 @@ +VBIC Pole Zero Test + +Vcc 3 0 5 +Rc 2 3 1k +Rb 3 1 200k +I1 0 1 AC 1 DC 0 +Vmeas 4 2 DC 0 +Cshunt 4 0 .1u + +Q1 2 1 0 0 N1 + +.OPTIONS NOACCT + +.ac dec 100 0.1Meg 10G +.print ac db(i(vmeas)) +.print ac ph(i(vmeas)) +.pz 1 0 4 0 cur pz +.print pz all + + +.MODEL N1 NPN LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 RTH=300 + +.END diff --git a/Windows/spice/tests/vbic/FG.cir b/Windows/spice/tests/vbic/FG.cir new file mode 100644 index 00000000..23eed0f8 --- /dev/null +++ b/Windows/spice/tests/vbic/FG.cir @@ -0,0 +1,17 @@ +VBIC Gummel Test +V1 Q1_E 0 5.0 +VC Q1_C 0 0.0 +VB Q1_B 0 0.0 +Q1 Q1_C Q1_B Q1_E P1 +.DC V1 0.2 1.2 10m +.OPTIONS GMIN=1e-13 NOACCT + +.print dc abs(i(vc)) abs(i(vb)) + +.MODEL P1 PNP LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 RTH=300 + +.END diff --git a/Windows/spice/tests/vbic/FO.cir b/Windows/spice/tests/vbic/FO.cir new file mode 100644 index 00000000..37950b23 --- /dev/null +++ b/Windows/spice/tests/vbic/FO.cir @@ -0,0 +1,20 @@ +VBIC Output Test +V1 V1_P V1_N 0.0 +VB V1_N 0 0.5 +VC Q1_C 0 0.0 +Q1 Q1_C V1_P 0 N1 + +.OPTIONS NOACCT + +.DC VC 0 5 50M VB 700M 1 50M + +.print dc -i(vc) +.print dc -i(vb) + +.MODEL N1 NPN LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 RTH=300 + +.END diff --git a/Windows/spice/tests/vbic/Makefile.am b/Windows/spice/tests/vbic/Makefile.am new file mode 100644 index 00000000..e9186f87 --- /dev/null +++ b/Windows/spice/tests/vbic/Makefile.am @@ -0,0 +1,19 @@ +## Process this file with automake to produce Makefile.in + + + +TESTS = CEamp.cir \ + FG.cir \ + FO.cir \ + diffamp.cir \ + noise_scale_test.cir \ + temp.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice + +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/vbic/Makefile.in b/Windows/spice/tests/vbic/Makefile.in new file mode 100644 index 00000000..530ef907 --- /dev/null +++ b/Windows/spice/tests/vbic/Makefile.in @@ -0,0 +1,518 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/vbic +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = CEamp.cir \ + FG.cir \ + FO.cir \ + diffamp.cir \ + noise_scale_test.cir \ + temp.cir + +TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice +EXTRA_DIST = \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/vbic/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/vbic/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/vbic/diffamp.cir b/Windows/spice/tests/vbic/diffamp.cir new file mode 100644 index 00000000..cf1b9108 --- /dev/null +++ b/Windows/spice/tests/vbic/diffamp.cir @@ -0,0 +1,47 @@ +VBIC DiffAmp Test + +V1 VCC 0 3.3 +V2 V2_P R3_N AC 1 DC 0 Sine(0 10m 10Meg 0 0) +R1 Q3_C 0 100k +R2 Q4_C 0 100k +R3 VCC R3_N 1K +R4 R3_N 0 1K +Q10 Q1_E I1_N 0 0 N1 +Q11 I1_N I1_N 0 0 N1 +Q12 Q9_B I1_N 0 0 N1 M=2 +Q13 Q5_B I1_N 0 0 N1 M=2 +Q1 Q5_C V2_P Q1_E 0 N1 +Q2 Q6_C R3_N Q1_E 0 N1 +Q3 Q3_C Q9_B Q5_C Q3_C P1 +Q4 Q4_C Q9_B Q6_C Q4_C P1 +I1 VCC I1_N 10u +Q5 Q5_C Q5_B VCC Q5_C P1 +Q6 Q6_C Q5_B VCC Q6_C P1 +E1 E1_P 0 Q3_C Q4_C 1 +RH E1_P 0 1G +Q7 Q5_B Q5_B VCC Q5_B P1 +Q8 Q8_B Q8_B VCC Q8_B P1 +Q9 Q9_B Q9_B Q8_B Q9_B P1 + +.OPTIONS NOACCT + +.OP +.TRAN 1n 1u 0 10n +.AC DEC 25 100k 1G + +.print ac v(e1_p) +.print tran v(e1_p) + +.MODEL N1 NPN LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 RTH=300 + +.MODEL P1 PNP LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 RTH=300 + +.END diff --git a/Windows/spice/tests/vbic/noise_scale_test.cir b/Windows/spice/tests/vbic/noise_scale_test.cir new file mode 100644 index 00000000..6d9bd5e4 --- /dev/null +++ b/Windows/spice/tests/vbic/noise_scale_test.cir @@ -0,0 +1,27 @@ +VBIC Noise Scale Test + +V1 R3_P 0 5 +V2 V2_P 0 5 AC 1 +C1 R3_N V2_P 1n +R4 R3_N 0 100k +Q1 VOUT R3_N Q1_E N1 M=2 +*Q2 VOUT R3_N Q1_E N1 +R1 R3_P VOUT 100k +R2 Q1_E 0 10k +R3 R3_P R3_N 500k + +.OPTIONS NOACCT + +.NOISE v(vout) V2 DEC 25 1k 100Meg + +.print noise v(inoise_spectrum) + + +.MODEL N1 NPN LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 ++ RTH=300 KFN=10e-15 AFN=1 BFN=1 + +.END diff --git a/Windows/spice/tests/vbic/temp.cir b/Windows/spice/tests/vbic/temp.cir new file mode 100644 index 00000000..15355b76 --- /dev/null +++ b/Windows/spice/tests/vbic/temp.cir @@ -0,0 +1,19 @@ +VBIC Temp test + +V1 1 0 1.0 +VC 1 Q1_C 0.0 +VB 1 Q1_B 0.0 +Q1 Q1_C Q1_B 0 N1 +.OPTIONS TEMP=150 NOACCT +.DC V1 0.2 1.2 10m + +.print dc i(vc) i(vb) + + +.MODEL N1 NPN LEVEL=4 ++ IS=1e-16 IBEI=1e-18 IBEN=5e-15 IBCI=2e-17 IBCN=5e-15 ISP=1e-15 RCX=10 ++ RCI=60 RBX=10 RBI=40 RE=2 RS=20 RBP=40 VEF=10 VER=4 IKF=2e-3 ITF=8e-2 ++ XTF=20 IKR=2e-4 IKP=2e-4 CJE=1e-13 CJC=2e-14 CJEP=1e-13 CJCP=4e-13 VO=2 ++ GAMM=2e-11 HRCF=2 QCO=1e-12 AVC1=2 AVC2=15 TF=10e-12 TR=100e-12 TD=2e-11 RTH=300 + +.END diff --git a/Windows/spice/tests/xspice/Makefile.am b/Windows/spice/tests/xspice/Makefile.am new file mode 100644 index 00000000..77f968b3 --- /dev/null +++ b/Windows/spice/tests/xspice/Makefile.am @@ -0,0 +1,5 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = digital + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/xspice/Makefile.in b/Windows/spice/tests/xspice/Makefile.in new file mode 100644 index 00000000..5b596649 --- /dev/null +++ b/Windows/spice/tests/xspice/Makefile.in @@ -0,0 +1,609 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/xspice +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = digital +MAINTAINERCLEANFILES = Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/xspice/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/xspice/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/xspice/digital/Makefile.am b/Windows/spice/tests/xspice/digital/Makefile.am new file mode 100644 index 00000000..c89536ee --- /dev/null +++ b/Windows/spice/tests/xspice/digital/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to produce Makefile.in + +TESTS = \ + d_ram.cir \ + d_source.cir \ + d_state.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) SPICE_SCRIPTS=. $(SHELL) $(top_srcdir)/tests/bin/check.sh "$(top_builddir)/src/ngspice -r foobaz" + +EXTRA_DIST = \ + d_ram-stimulus.txt \ + d_source-stimulus.txt \ + d_state-stimulus.txt \ + d_state-updn.txt \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in diff --git a/Windows/spice/tests/xspice/digital/Makefile.in b/Windows/spice/tests/xspice/digital/Makefile.in new file mode 100644 index 00000000..37e4f3f0 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/Makefile.in @@ -0,0 +1,523 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests/xspice/digital +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/spinit.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/ngspice/config.h +CONFIG_CLEAN_FILES = spinit +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMSXML = @ADMSXML@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_CPPFLAGS = @AM_CPPFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NOTVLADEVDIR = @NOTVLADEVDIR@ +NOTXGRAPH = @NOTXGRAPH@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC = @STATIC@ +STRIP = @STRIP@ +TCL_LIB_SPEC = @TCL_LIB_SPEC@ +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ +VERSION = @VERSION@ +VLADEV = @VLADEV@ +VLADEVDIR = @VLADEVDIR@ +XGRAPHDIR = @XGRAPHDIR@ +XMKMF = @XMKMF@ +XSPICEDLLIBS = @XSPICEDLLIBS@ +XSPICEINIT = @XSPICEINIT@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + d_ram.cir \ + d_source.cir \ + d_state.cir + +TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) SPICE_SCRIPTS=. $(SHELL) $(top_srcdir)/tests/bin/check.sh "$(top_builddir)/src/ngspice -r foobaz" +EXTRA_DIST = \ + d_ram-stimulus.txt \ + d_source-stimulus.txt \ + d_state-stimulus.txt \ + d_state-updn.txt \ + $(TESTS) \ + $(TESTS:.cir=.out) + +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/xspice/digital/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/xspice/digital/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +spinit: $(top_builddir)/config.status $(srcdir)/spinit.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Windows/spice/tests/xspice/digital/d_ram-stimulus.txt b/Windows/spice/tests/xspice/digital/d_ram-stimulus.txt new file mode 100644 index 00000000..36b04c84 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_ram-stimulus.txt @@ -0,0 +1,36 @@ +* ram test +* a a a d d d d d we cs +0ns 0s 0s 0s 0r 0r 0r 0r 0r 0s 1s +10ns 0s 0s 0s 0r 0r 0r 0r 0r 1s 1s +20ns 0s 0s 0s 0r 0r 0r 0r 0r 0s 1s +30ns 0s 0s 1s 0r 1r 1r 0r 1r 0s 1s +40ns 0s 0s 1s 0r 1r 1r 0r 1r 1s 1s +50ns 0s 0s 1s 0r 1r 1r 0r 1r 0s 1s +60ns 0s 1s 0s 1r 1r 0r 1r 0r 0s 0s +70ns 0s 1s 0s 1r 1r 0r 1r 0r 1s 0s +80ns 0s 1s 0s 1r 1r 0r 1r 0r 0s 0s +90ns 0s 1s 1s 0r 0r 1r 1r 1r 0s 1s +100ns 0s 1s 1s 0r 0r 1r 1r 1r 1s 1s +110ns 0s 1s 1s 0r 0r 1r 1r 1r 0s 1s +120ns 1s 0s 0s 1r 0r 1r 0r 0r 0s 1s +130ns 1s 0s 0s 1r 0r 1r 0r 0r 1s 1s +140ns 1s 0s 0s 1r 0r 1r 0r 0r 0s 1s +150ns 1s 0s 1s 0r 0r 0r 0r 1r 0s 1s +160ns 1s 0s 1s 0r 0r 0r 0r 1r 1s 1s +170ns 1s 0s 1s 0r 0r 0r 0r 1r 0s 1s +180ns 1s 1s 0s 0r 1r 1r 1r 0r 0s 1s +190ns 1s 1s 0s 0r 1r 1r 1r 0r 1s 1s +200ns 1s 1s 0s 0r 1r 1r 1r 0r 0s 1s +210ns 1s 1s 1s 1r 1r 0r 1r 1r 0s 1s +220ns 1s 1s 1s 1r 1r 0r 1r 1r 1s 1s +230ns 1s 1s 1s 1r 1r 0r 1r 1r 0s 1s +240ns 0s 0s 0s 0r 0r 0r 0r 0r 0s 1s +250ns 0s 0s 1s 0r 1r 1r 0r 1r 0s 1s +260ns 0s 1s 0s 1r 1r 0r 1r 0r 0s 1s +270ns 0s 1s 1s 0r 0r 1r 1r 1r 0s 1s +280ns 1s 0s 0s 1r 0r 1r 0r 0r 0s 1s +290ns 1s 0s 1s 0r 0r 0r 0r 1r 0s 1s +300ns 1s 1s 0s 0r 1r 1r 1r 0r 0s 1s +310ns 1s 1s 1s 1r 1r 0r 1r 1r 0s 1s +320ns 1s 1s 1s 1r 1r 0r 1r 1r 0s 0s +330ns 1s 1s 1s 1r 1r 0r 1r 1r 0s 1s diff --git a/Windows/spice/tests/xspice/digital/d_ram.cir b/Windows/spice/tests/xspice/digital/d_ram.cir new file mode 100644 index 00000000..1f1deb43 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_ram.cir @@ -0,0 +1,24 @@ +Code Model Test: d_source + d_ram + +* (compile (concat "SPICE_SCRIPTS=. ../../../src/ngspice " buffer-file-name) t) + + +vdummy dummy 0 DC=0 + +a_source [a0 a1 a2 d0 d1 d2 d3 d4 we cs] d_source1 +aram [d0 d1 d2 d3 d4] [o0 o1 o2 o3 o4] [a0 a1 a2] we [cs] d_ram1 + + +.model d_source1 d_source input_file="d_ram-stimulus.txt" + +.model d_ram1 d_ram (select_value=1 ic=2 read_delay=1ns) + + +.control +set noaskquit +set noacct +tran 100ps 350ns +eprint a0 a1 a2 d0 d1 d2 d3 d4 o0 o1 o2 o3 o4 we cs +.endc + +.end diff --git a/Windows/spice/tests/xspice/digital/d_source-stimulus.txt b/Windows/spice/tests/xspice/digital/d_source-stimulus.txt new file mode 100644 index 00000000..7f0d5d6a --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_source-stimulus.txt @@ -0,0 +1,13 @@ +* time, a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab +0n 0s 0s Uu Uu Uu Uu Uu Uu Uu Uu Uu +1n 1s 0s Uu Uu 0u Uu Uu Uu Uu Uu Uu +2n Us 0s Uu Uu 0u 0u Uu Uu Uu Uu Uu +3n Us 0r Uu Uu 0u 0u 0u Uu Uu Uu Uu +4n Us 1r Uu Uu 0u 0u 0u 0u Uu Uu Uu +5n Us Ur Uu Uu 0u 0u 0u 0u 0u Uu Uu +6n Us Ur 0z Uu 0u 0u 0u 0u 0u 0u Uu +7n Us Ur 1z Uu 0u 0u 0u 0u 0u 0u 0u +8n Us Ur Uz Uu 0u 0u 0u 0u 0u 0u 0u +9n Us Ur Uz 0u 0u 0u 0u 0u 0u 0u 0u +10n Us Ur Uz 1u 0u 0u 0u 0u 0u 0u 0u +11n Us Ur Uz Uu 0u 0u 0u 0u 0u 0u 0u diff --git a/Windows/spice/tests/xspice/digital/d_source.cir b/Windows/spice/tests/xspice/digital/d_source.cir new file mode 100644 index 00000000..83cc8b56 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_source.cir @@ -0,0 +1,19 @@ +Code Model Test: d_source + +* (compile (concat "SPICE_SCRIPTS=. ../../../src/ngspice " buffer-file-name) t) + + +vdummy dummy 0 DC=0 + +a_source [a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab] d_source1 + +.model d_source1 d_source (input_file="d_source-stimulus.txt") + +.control +set noaskquit +set noacct +tran 100ps 30ns +eprint a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab +.endc + +.end diff --git a/Windows/spice/tests/xspice/digital/d_state-stimulus.txt b/Windows/spice/tests/xspice/digital/d_state-stimulus.txt new file mode 100644 index 00000000..92b493c1 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_state-stimulus.txt @@ -0,0 +1,4 @@ +* time, enable, reset, up +0 0s 1s 1s +1n 1s 0s 1s +9n 1s 0s 0s diff --git a/Windows/spice/tests/xspice/digital/d_state-updn.txt b/Windows/spice/tests/xspice/digital/d_state-updn.txt new file mode 100644 index 00000000..085159e7 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_state-updn.txt @@ -0,0 +1,16 @@ +* This is an example state.in file. This file +* defines a simple 2-bit counter with one input. The +* value of this input determines whether the counter counts +* up (in = 1) or down (in = 0). + +0 0s 0s 0 -> 3 + 1 -> 1 + +1 0s 1z 0 -> 0 + 1 -> 2 + +2 1z 0s 0 -> 1 + 1 -> 3 + +3 1z 1z 0 -> 2 +3 1z 1z 1 -> 0 diff --git a/Windows/spice/tests/xspice/digital/d_state.cir b/Windows/spice/tests/xspice/digital/d_state.cir new file mode 100644 index 00000000..facc8650 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/d_state.cir @@ -0,0 +1,35 @@ +Code Model Test: d_source + d_state + +* (compile (concat "SPICE_SCRIPTS=. ../../../src/ngspice " buffer-file-name) t) + + +vdummy dummy 0 DC=0 + +a_source [enable reset up] d_source1 + +a_osc [enable clk] clk d_xor1 + +a_counter [up] clk reset [o1 o2] d_state1 + + +.model d_source1 d_source (input_file="d_state-stimulus.txt") + +.model d_xor1 d_xor (rise_delay=1ns fall_delay=1ns) + +.model d_state1 d_state (clk_delay=0.1ns reset_delay=0.1ns ++ state_file="d_state-updn.txt" reset_state=0) + +.control +set noaskquit +set noacct +tran 100ps 20ns +eprint clk up reset o1 o2 +.endc + +.end + + + + + + diff --git a/Windows/spice/tests/xspice/digital/spinit.in b/Windows/spice/tests/xspice/digital/spinit.in new file mode 100644 index 00000000..d43d6aa9 --- /dev/null +++ b/Windows/spice/tests/xspice/digital/spinit.in @@ -0,0 +1,3 @@ +codemodel @top_builddir@/src/xspice/icm/digital/digital.cm +set sourcepath = ( $ngspice_vpath . ) +set filetype=binary |