Mail Archives: geda-user/2015/10/25/13:48:15
--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>] =
<<a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>>=
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"><<a href=3D"mailto:dj AT delorie DOT com" =
target=3D"_blank">dj AT delorie DOT com</a>></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>
> IIRC at the moment it give NO WARNING for duplicate refdes, which =
is just<br>
> inexcusable. 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. 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> </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. 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>
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. They could then work =
with warning on. Warning could be enabled by default, and parts =
still portable to instances with the default =
behavior. </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> </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>
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. To be honest I can't imagine how to make slotting and =
subcircs work together gracefully.</div><div =
style=3D""> </div><blockquote class=3D"gmail_quote" style=3D"margin:0=
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">
> Schematic pages except for subcircs are obsolete IMO,<br>
<br>
</span>I use separate pages because I often implement subcircuits =
separately<br>
for testing. For example, I might fab just the power supply. =
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. 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> </div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><span class=3D"">
> If you need to print your schematics it's because your CAD =
sucks<br>
> somehow.<br>
<br>
</span>Or because you want to debug and the bench doesn't have its =
own<br>
monitor. 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> </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"> <span =
class=3D"Apple-converted-space"> </span><span =
class=3D"Apple-converted-tab"> <span =
class=3D"Apple-converted-space"> </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 -