X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=W4lOG5oIpq5O4h+67Ou2bWkoHYg8SdVdqR7o3OnGPis=; b=HQK9U5Eb3V0CiYeCwrrV86+pkOu9i3Wf7zp/ZjCRd4d2YV32X3RoNCN8crBZF43ctv zWA7ZOL0pOlC3ETGiipj2wlFh0SEJ4wbqKsVpxHqqeeX4fS97Kd4dNS8Ho4DG16lZuBV EriudAn/iHUCgvOhs/rKmnNMmwyFvGZH9Exp4N/600iD6i0vHLIqQgLmsnlSvPtg4Gvn N1gAM3vOAdKPrFTpwHX1rYfRLv4qSTo5LsZ4HulF01hh3E/v2Yq71hZNL/19VJFpBMul lIB9rpznBLtCBWgwXaKFwLfjDGDdg1OSMoWp4T/RYM61DNWX3fxTYuvLnFSVbfVBSxfM ZbXA== MIME-Version: 1.0 X-Received: by 10.182.226.103 with SMTP id rr7mr2814375obc.76.1360965416013; Fri, 15 Feb 2013 13:56:56 -0800 (PST) In-Reply-To: <201302151349.44182.ad252@freeelectron.net> References: <201302151349 DOT 44182 DOT ad252 AT freeelectron DOT net> Date: Fri, 15 Feb 2013 13:56:55 -0800 Message-ID: Subject: Re: [geda-user] gnetlist extractor From: "bsalinux AT gmail DOT com" To: geda-user AT delorie DOT com Content-Type: multipart/alternative; boundary=f46d044796172c4dcf04d5ca7486 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --f46d044796172c4dcf04d5ca7486 Content-Type: text/plain; charset=ISO-8859-1 Thanks Al :-) On Fri, Feb 15, 2013 at 10:49 AM, al davis wrote: > On Wednesday 13 February 2013, bsalinux AT gmail DOT com wrote: > > I tried to do a gnucap simulation involving BS170 MOSFET and > > the extractor did not extract / interpret four contacts for > > the MOSFET as expected by GNUCAP. > > > > What was extracted was: > > > > M1 4 1 0 bs170 > > > > instead of (substrate connected to source) > > > > M1 4 1 0 0 bs170 > > > > > > According to gnucap, first statement takes "BS170" as the > > substrate contact. > > The spice, and spice compatible simulators, require 4 > connections for a mosfet. The fourth one is the substrate. If > in doubt, and for all discrete 3-terminal mosfets, the substrate > should be connected to the source. > > But now look at the schematic, and how netlist extraction works. > Whatever number of pins a device has on the schematic, that's > how many it will have in the extracted netlist. Therefore, any > 3-pin mosfet will give you an incorrect netlist. The problem is > in the symbol, or really using the wrong symbol for the > application, not with the netlister. You need to use a symbol > that has 4 pins. > > Exactly how this situation is handled by the simulator varies. > > With gnucap, if you just list everything without delimeters, it > will screw up in this case. If you put the node list in > parenthesis, it will give you a warning "need 1 more nodes", and > try to guess what to do with the other one, (grounding it) often > not the way you want. Same goes for Verilog format netlists, > where you can map the pins by name. > > I don't know what ngspice does in this case, but since the > "standard" says you need 4 pins, and you are missing one, you > can't depend on anything in particular. > > Again ... you need to use a mosfet symbol that has 4 pins. > > Why is it this way? I didn't make that decision, but remember > SPICE is "Simulation Program with Integrated Circuit Emphasis" > .. designed for chip designers. They need to be concerned about > the substrate. The substrate is like a second gate, or "back > gate". > > --f46d044796172c4dcf04d5ca7486 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Thanks Al :-)


=
On Fri, Feb 15, 2013 at 10:49 AM, al davis <ad252 AT freeelectron DOT net> wrote:
On Wednesday 13 February 2= 013, bsalinux AT gmail DOT com wrote: > I tried to do a gnucap simulation involving BS170 MOSFET and
> the extractor did not extract / interpret four contacts for
> the MOSFET as expected by GNUCAP.
>
> What was extracted was:
>
> M1 =A04 1 0 bs170
>
> instead of (substrate connected to source)
>
> M1 =A04 1 0 0 bs170
>
>
> According to gnucap, first =A0statement takes "BS170" as the=
> substrate contact.

The spice, and spice compatible simulators, require 4
connections for a mosfet. =A0The fourth one is the substrate. =A0If
in doubt, and for all discrete 3-terminal mosfets, the substrate
should be connected to the source.

But now look at the schematic, and how netlist extraction works.
Whatever number of pins a device has on the schematic, that's
how many it will have in the extracted netlist. =A0Therefore, any
3-pin mosfet will give you an incorrect netlist. =A0The problem is
in the symbol, or really using the wrong symbol for the
application, not with the netlister. =A0You need to use a symbol
that has 4 pins.

Exactly how this situation is handled by the simulator varies.

With gnucap, if you just list everything without delimeters, it
will screw up in this case. =A0If you put the node list in
parenthesis, it will give you a warning "need 1 more nodes", and<= br> try to guess what to do with the other one, (grounding it) often
not the way you want. =A0Same goes for Verilog format netlists,
where you can map the pins by name.

I don't know what ngspice does in this case, but since the
"standard" says you need 4 pins, and you are missing one, you
can't depend on anything in particular.

Again ... you need to use a mosfet symbol that has 4 pins.

Why is it this way? =A0I didn't make that decision, but remember
SPICE is "Simulation Program with Integrated Circuit Emphasis" .. designed for chip designers. =A0They need to be concerned about
the substrate. =A0The substrate is like a second gate, or "back
gate".


--f46d044796172c4dcf04d5ca7486--