delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/10/25/13:48:15

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-TCPREMOTEIP: 74.5.120.2
X-Authenticated-UID: jpd AT noqsi DOT com
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
Subject: Re: [geda-user] Pin mapping (separate symbols from mappings)
X-Pgp-Agent: GPGMail 2.5.2
From: John Doty <jpd AT noqsi DOT com>
In-Reply-To: <CAC4O8c8wD923YXdEr7SJHvc7T+jnNwVM7S6ZO_fiLijq4fCxgw@mail.gmail.com>
Date: Sun, 25 Oct 2015 08:13:11 -0600
Message-Id: <27CCBD21-273A-45CD-B0E9-6FAA64AFFFB7@noqsi.com>
References: <20151018204010 DOT 9cce6a231dcc296256e187bd AT gmail DOT com> <201510181843 DOT t9IIhmWo025346 AT envy DOT delorie DOT com> <20151018234424 DOT c0551dad9bef0859130239d9 AT gmail DOT com> <36B94694-F2AC-4A75-A8EB-40A1CE9A534C AT noqsi DOT com> <201510182225 DOT t9IMPkxK032763 AT envy DOT delorie DOT com> <20151019003814 DOT f62620bf0fec77e65104c105 AT gmail DOT com> <BED51F9A-F6FF-4A23-B18B-C2EC8BB9DAB6 AT noqsi DOT com> <201510190242 DOT t9J2gl7w009345 AT envy DOT delorie DOT com> <20151019092555 DOT 46eed4540c2d2044bbeab878 AT gmail DOT com> <1A419AED-FCCA-4B1F-8589-912435534E2E AT noqsi DOT com> <201510191647 DOT t9JGlu4j024585 AT envy DOT delorie DOT com> <041FF42A-691F-4E6B-9DEB-8C6B3C2F3E53 AT noqsi DOT com> <201510191850 DOT t9JIop8Y029095 AT envy DOT delorie DOT com> <A5C4636C-6064-4D9C-9F55-03185FE35379 AT noqsi DOT com> <201510192055 DOT t9JKt2o6005861 AT envy DOT delorie DOT com> <1E816300-E31E-4B85-B51D-7EAEC5A466BF AT noqsi DOT com> <201510192110 DOT t9JLAFKG007281 AT envy DOT delorie DOT com> <AAAC7015-AF0E-41BE-83F0-C64862CF2670 AT noqsi DOT com> <201510192340 DOT t9JNeo6n020302 AT envy DOT delorie DOT com> <D892D347-2B31-4063-9A02-0D54B358070D AT noqsi DOT com> <!
CAC4O8c8O9H5YN+xmiKjU5nfHrO9S2mjn+3bB35MCFpdUDWdtHw AT mail DOT gmail DOT com> <EC68D243-0569-4932-B62E-7B068D815CDE AT noqsi DOT com> <CAC4O8c9d+U_itePrfKktZ6=XUykscLzg8EFu3Md1VZ=fS_yopQ AT mail DOT gmail DOT com> <201510240510 DOT t9O5AvSi019180 AT envy DOT delorie DOT com> <CAC4O8c8wD923YXdEr7SJHvc7T+jnNwVM7S6ZO_fiLijq4fCxgw AT mail DOT gmail DOT com>
To: geda-user AT delorie DOT com
X-Mailer: Apple Mail (2.1878.6)
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

--Apple-Mail=_E0BD620B-4F68-4E09-AEE2-6462AD367E6F
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_0BB5D405-0499-4DF3-A90C-8BE2FC91A02D"


--Apple-Mail=_0BB5D405-0499-4DF3-A90C-8BE2FC91A02D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252


On Oct 24, 2015, at 11:57 AM, Britton Kerin (britton DOT kerin AT gmail DOT com) =
[via geda-user AT delorie DOT com] <geda-user AT delorie DOT com> wrote:

>=20
>=20
> On Fri, Oct 23, 2015 at 9:10 PM, DJ Delorie <dj AT delorie DOT com> wrote:
>=20
> > IIRC at the moment it give NO WARNING for duplicate refdes, which is =
just
> > inexcusable.  To be fair you can blame this on pcb but still...
>=20
> It's common to break large chips (like MCUs) into separate symbols to
> manage them better, which means that a duplicate refdes is allowed (in
> fact, required) in those cases.
>=20
> If you stop using separate pages, you'll stop wanting to do that.  I =
use beaglebone symbols, they are large and square but so what?

For big projects, schematics wind up in printable documentation for =
reviewers, layout engineers, fabricators, test engineers, and =
technicians. Sometimes this is a contractual requirement. I like to =
weave some explanatory text around them, too. My colleagues/customers =
seem to like this, although one colleague jokes that I apparently love =
writing masters=92 theses.

I sometimes use big symbols on extensive sheets, but then things get =
unreadable on letter or A4 paper. I do projects on all scales with gEDA, =
from little tests of breadboard ideas (another joke is that I love doing =
science fair projects) to multi-board systems with thousands of =
components. There is not a single style for all purposes. The fact that =
gEDA does not enforce any particular style is a good thing.

>=20
> What should not be allowed is duplicate pins, module how slotting is
> implemented.  The problem I forsee is that "duplicate pins" is a
> problem that will be solved in the netlister *if* slotting is moved
> out of gschem, resulting in duplicates being allowed in gschem,
> resulting in ambiguity.
>=20
> So there's three cases:
>=20
> 1. One symbol to one component, refdes should be unique, no problem.
>=20
> 2. Many symbols to one component (MCU), refdes must be same but pins
>    should be unique.
>=20
> One way would be to require symbols that want to do this to have a =
"part_of=3Dsomething_real" attribute.  They could then work with warning =
on.  Warning could be enabled by default, and parts still portable to =
instances with the default behavior.

It can get tricky. There may be multiple ways to partition a package. =
Consider an MCU whose internal peripherals use multiplexed pins: you =
might want a symbol per peripheral, but you can=92t use every peripheral =
in a design. I=92ve heard of one prominent developer/user employing =
redundant slots to implement pin swaps. We have a lot of freedom.

I think a rather robust way to detect problems with packages composed of =
multiple symbols is to check that all pins are represented exactly once. =
Some symbols in the standard gEDA library have a pins=3D attribute, so =
there=92s a precedent for providing the required information. If it=92s =
absent, schema that standard gEDA footprints use makes the pin count =
easy to decode. This is another problem that looks much simpler from the =
bottom up (what is actually implemented?) than from the top down (are =
the user=92s intentions consistent?).

>=20
> 3. Many symbols to one component (SLOTTING), refdes and pins may be be
>    same or unique depending on how slotting is implemented.
>=20
> Hmm, since my inclination here is to have Q1 refer to a particular =
transistor rather than a part, I guess I have to acknowledge =
inconsistency.
> In practice I've avoided slotting entirely out of fear and just made =
e.g. multi-amp symbols when needed.  To be honest I can't imagine how to =
make slotting and subcircs work together gracefully.
>=20
> > Schematic pages except for subcircs are obsolete IMO,
>=20
> I use separate pages because I often implement subcircuits separately
> for testing.  For example, I might fab just the power supply.  In my
> powermeter board, 15 of the 16 channel circuits were implemented with
> a script that copied the first channel's page.
>=20
> Same here.  My point was that when you do subcirc pages they get their =
own refdes space, so the fact that gschem can't check for inter-page =
uniqueness isn't relevant.

When I wrote gnet-spice-noqsi, I didn=92t anticipate how it would change =
my design flow. It can generate a subcircuit from the same =
symbol/attribute conventions that the gnetlist core uses when expanding =
hierarchy. As a consequence, it is very convenient to make the first =
draft of a subsystem as a subcircuit. It=92s much handier to instantiate =
the subsystem in a test schematic of SPICE-specific components than to =
mix SPICE components with physical components. One result is that my top =
level schematics look more like block diagrams.

>=20
> > If you need to print your schematics it's because your CAD sucks
> > somehow.
>=20
> Or because you want to debug and the bench doesn't have its own
> monitor.  Or because you're writing an article and need the schematic
>=20
> Time for a new bench :)
>=20
>=20

John Doty              Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd AT noqsi DOT com



--Apple-Mail=_0BB5D405-0499-4DF3-A90C-8BE2FC91A02D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space;"><br><div><div>On Oct 24, 2015, at 11:57 AM, Britton =
Kerin (<a =
href=3D"mailto:britton DOT kerin AT gmail DOT com">britton DOT kerin AT gmail DOT com</a>) =
[via <a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>] =
&lt;<a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>&gt;=
 wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div =
class=3D"gmail_quote">On Fri, Oct 23, 2015 at 9:10 PM, DJ Delorie <span =
dir=3D"ltr">&lt;<a href=3D"mailto:dj AT delorie DOT com" =
target=3D"_blank">dj AT delorie DOT com</a>&gt;</span> wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><span class=3D""><br>
&gt; IIRC at the moment it give NO WARNING for duplicate refdes, which =
is just<br>
&gt; inexcusable.&nbsp; To be fair you can blame this on pcb but =
still...<br>
<br>
</span>It's common to break large chips (like MCUs) into separate =
symbols to<br>
manage them better, which means that a duplicate refdes is allowed =
(in<br>
fact, required) in those cases.<br></blockquote><div><br></div><div =
style=3D"">If you stop using separate pages, you'll stop wanting to do =
that.&nbsp; I use beaglebone symbols, they are large and square but so =
what?</div></div></div></div></blockquote><div><br></div>For big =
projects, schematics wind up in printable documentation for reviewers, =
layout engineers, fabricators, test engineers, and technicians. =
Sometimes this is a contractual requirement. I like to weave some =
explanatory text around them, too. My colleagues/customers seem to like =
this, although one colleague jokes that I apparently love writing =
masters=92 theses.</div><div><br></div><div>I sometimes use big symbols =
on extensive sheets, but then things get unreadable on letter or A4 =
paper. I do projects on all scales with gEDA, from little tests of =
breadboard ideas (another joke is that I love doing science fair =
projects) to multi-board systems with thousands of components. There is =
not a single style for all purposes. The fact that gEDA does not enforce =
any particular style is a good thing.</div><div><br><blockquote =
type=3D"cite"><div dir=3D"ltr"><div class=3D"gmail_extra"><div =
class=3D"gmail_quote"><div>&nbsp;</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What should not be allowed is duplicate pins, module how slotting is<br>
implemented.&nbsp; The problem I forsee is that "duplicate pins" is =
a<br>
problem that will be solved in the netlister *if* slotting is moved<br>
out of gschem, resulting in duplicates being allowed in gschem,<br>
resulting in ambiguity.<br>
<br>
So there's three cases:<br>
<br>
1. One symbol to one component, refdes should be unique, no problem.<br>
<br>
2. Many symbols to one component (MCU), refdes must be same but pins<br>
&nbsp; &nbsp;should be unique.<br></blockquote><div><br></div><div =
style=3D"">One way would be to require symbols that want to do this to =
have a "part_of=3Dsomething_real" attribute.&nbsp; They could then work =
with warning on.&nbsp; Warning could be enabled by default, and parts =
still portable to instances with the default =
behavior.&nbsp;</div></div></div></div></blockquote><div><br></div>It =
can get tricky. There may be multiple ways to partition a package. =
Consider an MCU whose internal peripherals use multiplexed pins: you =
might want a symbol per peripheral, but you can=92t use every peripheral =
in a design. I=92ve heard of one prominent developer/user employing =
redundant slots to implement pin swaps. We have a lot of =
freedom.<br><div><br></div>I think a rather robust way to detect =
problems with packages composed of multiple symbols is to check that all =
pins are represented exactly once. Some symbols in the standard gEDA =
library have a pins=3D attribute, so there=92s a precedent for providing =
the required information. If it=92s absent, schema that standard gEDA =
footprints use makes the pin count easy to decode. This is another =
problem that looks much simpler from the bottom up (what is actually =
implemented?) than from the top down (are the user=92s intentions =
consistent?).</div><div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div class=3D"gmail_extra"><div =
class=3D"gmail_quote"><div>&nbsp;</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3. Many symbols to one component (SLOTTING), refdes and pins may be =
be<br>
&nbsp; &nbsp;same or unique depending on how slotting is =
implemented.<br></blockquote><div><br></div><div style=3D"">Hmm, since =
my inclination here is to have Q1 refer to a particular transistor =
rather than a part, I guess I have to acknowledge =
inconsistency.</div><div style=3D"">In practice I've avoided slotting =
entirely out of fear and just made e.g. multi-amp symbols when =
needed.&nbsp; To be honest I can't imagine how to make slotting and =
subcircs work together gracefully.</div><div =
style=3D"">&nbsp;</div><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">
&gt; Schematic pages except for subcircs are obsolete IMO,<br>
<br>
</span>I use separate pages because I often implement subcircuits =
separately<br>
for testing.&nbsp; For example, I might fab just the power supply.&nbsp; =
In my<br>
powermeter board, 15 of the 16 channel circuits were implemented =
with<br>
a script that copied the first channel's =
page.</blockquote><div><br></div><div style=3D"">Same here.&nbsp; My =
point was that when you do subcirc pages they get their own refdes =
space, so the fact that gschem can't check for inter-page uniqueness =
isn't =
relevant.</div></div></div></div></blockquote><div><br></div><div>When I =
wrote gnet-spice-noqsi, I didn=92t anticipate how it would change my =
design flow. It can generate a subcircuit from the same symbol/attribute =
conventions that the gnetlist core uses when expanding hierarchy. As a =
consequence, it is very convenient to make the first draft of a =
subsystem as a subcircuit. It=92s much handier to instantiate the =
subsystem in a test schematic of SPICE-specific components than to mix =
SPICE components with physical components. One result is that my top =
level schematics look more like block diagrams.</div><br><blockquote =
type=3D"cite"><div dir=3D"ltr"><div class=3D"gmail_extra"><div =
class=3D"gmail_quote"><div>&nbsp;</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><span class=3D"">
&gt; If you need to print your schematics it's because your CAD =
sucks<br>
&gt; somehow.<br>
<br>
</span>Or because you want to debug and the bench doesn't have its =
own<br>
monitor.&nbsp; Or because you're writing an article and need the =
schematic<br></blockquote><div><br></div><div style=3D"">Time for a new =
bench :)</div><div>&nbsp;</div></div><br></div></div>
</blockquote></div><br><div apple-content-edited=3D"true">
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: auto; =
-khtml-text-decorations-in-effect: none; text-indent: 0px; =
-apple-text-size-adjust: auto; text-transform: none; orphans: 2; =
white-space: normal; widows: 2; word-spacing: 0px; "><p style=3D"margin: =
0.0px 0.0px 0.0px 0.0px"><font face=3D"Helvetica" size=3D"3" =
style=3D"font: 12.0px Helvetica">John Doty<span =
class=3D"Apple-converted-space">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span><span =
class=3D"Apple-converted-tab">&nbsp; &nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span>Noqsi =
Aerospace, Ltd.</font></p><p style=3D"margin: 0.0px 0.0px 0.0px =
0.0px"><a href=3D"http://www.noqsi.com/">http://www.noqsi.com/</a></p><p =
style=3D"margin: 0.0px 0.0px 0.0px 0.0px"><font face=3D"Helvetica" =
size=3D"3" style=3D"font: 12.0px Helvetica"><a =
href=3D"mailto:jpd AT noqsi DOT com">jpd AT noqsi DOT com</a></font></p><br =
class=3D"Apple-interchange-newline"></span>
</div>
<br></body></html>=

--Apple-Mail=_0BB5D405-0499-4DF3-A90C-8BE2FC91A02D--

--Apple-Mail=_E0BD620B-4F68-4E09-AEE2-6462AD367E6F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJWLON3AAoJEF1Aj/0UKykRZRIP/3y9EQJA27mxqcdWoKhLRIRi
lAZZjjbNl43kz17ESxl0blTJ6CNmH+W1CfR4ba4SqiRkjaRz9mE4GN1v/5ZlBXx6
kSMcsxVgtD7Up8saPwLQI5w3tQJJgxNbMo1vG21S7c/7XjoJJGpU9ZhLe3N4UTrO
c4v0U7RCJ9L49OPRFfZI9Nc6CJsptfVAg0uWDvISerIhW5Wo7JpxE0Zpm9sbUd+F
ywLO5crDNoWqI7zntQIkHnLalnihlyNxIDosYC6FIet2ZxDhF1kjlOH3DqrlQPlM
piZ/4ONpP9FCkHnnVFn633TqEWGAb5GNZZF5SmSDnAgvqYHbz41Qvg9/F2+rhsb8
Q6wUzzM0G5Ggs43uD4BBCXip9NjfRISyWILI9/VB8DkjIsYDv+UJyGonCGZvethZ
Fkxz9hXdNn8fHf3rSS22dOX+oGMbqMJJ8VZnT2MMrXZ7zcPJFnXDGuzEo7G1G21a
XmaH4yB1RTtyER2H/wQqUTlOsiAA6NgSZ3DtmFu1J6IAjSVgXacZ7GlyUFzWp58o
s/sxw8iFHcZwveCIG9bTBgV1zOfi780W8NHwTE13kh7kxHgOyigvVp2IwRRSG4gS
ruFhApe32QtUKZocSt2tGFNRVDe/udBtO76J5ylUSCQlFwgfkCxUnDoawIBPiyNh
X3bPZREHKe2DFbGH7+zA
=q11w
-----END PGP SIGNATURE-----

--Apple-Mail=_E0BD620B-4F68-4E09-AEE2-6462AD367E6F--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019