X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-TCPREMOTEIP: 207.224.51.38 X-Authenticated-UID: jpd AT noqsi DOT com From: John Doty Mime-Version: 1.0 (Apple Message framework v1085) Content-Type: multipart/alternative; boundary=Apple-Mail-226-103809229 Subject: Re: [geda-user] single row .subckt Date: Sun, 16 Mar 2014 20:20:36 -0600 In-Reply-To: To: geda-user AT delorie DOT com References: Message-Id: <90989E71-79DC-4CAE-8A33-EBCC26DDBFB4@noqsi.com> X-Mailer: Apple Mail (2.1085) 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 --Apple-Mail-226-103809229 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 On Mar 16, 2014, at 3:21 PM, =D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9 = =D0=A5=D0=B0=D1=80=D1=8C=D0=BA=D0=BE=D0=B2=D1=81=D0=BA=D0=B8=D0=B9 = wrote: > Hello all. > I want to place to symbol single row model .subckt. >=20 > Example of spice: >=20 > .SUBCKT opamp 1 2 3 4 5 > B1 5 0 V =3D V(3)<1e5*(V(1)-V(2)) ? V(3) : V(4)>1e5*(V(1)-V(2)) ? V(4) = : 1e5*(V(1)-V(2)) > .ends >=20 > But I do not finded this in wiki. > How I understand single row may be only .model > refdes=3DU? > model =3D .... > model-name =3D name >=20 > SUBCKT section adds by file mechanism: > refdes=3DX? > model-name =3D name > file=3D/file >=20 > Why? >=20 Because the way that the spice and spice-sdb back ends are implemented, = things like this must be implemented as special cases in the code. There = are an unlimited number of such cases, but only a few are actually = implemented. If you want another, you have to modify the Scheme code. = That's a major motivation for https://github.com/noqsi/gnet-spice-noqsi. In the spice-noqsi back end, you define how a symbol is to be = represented in the SPICE netlist with a spice-prototype attribute. In = this case (assuming your symbol has pinseq attributes in the correct = order for the other back ends), you could use two multi-line attributes: spice-prototype=3DX? %pinseq opamp model@ model=3D.SUBCKT opamp 1 2 3 4 5 B1 5 0 V =3D V(3)<1e5*(V(1)-V(2)) ? V(3) : V(4)>1e5*(V(1)-V(2)) ? V(4) : = 1e5*(V(1)-V(2)) .ends You can't put the model directly in the spice-prototype because it = contains the "magic" character "?". I may consider a less crude quoting = mechanism in the future. You can also use pin number to specify connections in any order if = pinseq isn't right: this gives you a way around the overloading of = pinseq (also used for slotting). spice-noqsi can also imitate the way = gnetlist natively handles hierarchy when flattening a netlist, allowing = you to create hierarchical SPICE netlists representing circuits drawn = for flat printed circuit designs. John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ jpd AT noqsi DOT com --Apple-Mail-226-103809229 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8
Hello all.
I want to = place to symbol single row model .subckt.

Example of = spice:

.SUBCKT opamp 1 2 3 4 5
B1 5 0 V =3D = V(3)<1e5*(V(1)-V(2)) ? V(3) : V(4)>1e5*(V(1)-V(2)) ? V(4) : = 1e5*(V(1)-V(2))
.ends

But I do not finded this in wiki.
How I = understand single row may be only = .model
refdes=3DU?
model =3D = ....
model-name =3D name

SUBCKT section = adds by file mechanism:
refdes=3DX?
model-name =3D = name
file=3D/file

Why?


Because the way that the spice and = spice-sdb back ends are implemented, things like this must be = implemented as special cases in the code. There are an unlimited number = of such cases, but only a few are actually implemented. If you want = another, you have to modify the Scheme code. That's a major motivation = for https://github.com/noqs= i/gnet-spice-noqsi.

In the spice-noqsi back end, = you define how a symbol is to be represented in the SPICE netlist with a = spice-prototype attribute. In this case (assuming your symbol has pinseq = attributes in the correct order for the other back ends), you could use = two multi-line attributes:

spice-prototype=3DX? = %pinseq opamp
model@

model=3D.SUBCKT = opamp 1 2 3 4 5
B1 5 0 V =3D V(3)<1e5*(V(1)-V(2)) ? V(3) : = V(4)>1e5*(V(1)-V(2)) ? V(4) : = 1e5*(V(1)-V(2))
.ends

You can't put the = model directly in the spice-prototype because it contains the "magic" = character "?". I may consider a less crude quoting mechanism in the = future.

You can also use pin number to specify = connections in any order if pinseq isn't right: this gives you a way = around the overloading of pinseq (also used for slotting). spice-noqsi = can also imitate the way gnetlist natively handles hierarchy when = flattening a netlist, allowing you to create hierarchical SPICE netlists = representing circuits drawn for flat printed circuit = designs.

John Doty              Noqsi = Aerospace, Ltd.

http://www.noqsi.com/

jpd AT noqsi DOT com



= --Apple-Mail-226-103809229--