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 Content-Type: multipart/signed; boundary="Apple-Mail=_E0BD620B-4F68-4E09-AEE2-6462AD367E6F"; protocol="application/pgp-signature"; micalg=pgp-sha512 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 In-Reply-To: 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> <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> <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> <201510192340 DOT t9JNeo6n020302 AT envy DOT delorie DOT com> <201510240510 DOT t9O5AvSi019180 AT envy DOT delorie 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 Precedence: bulk --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] wrote: >=20 >=20 > On Fri, Oct 23, 2015 at 9:10 PM, DJ Delorie 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
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:



On Fri, Oct 23, 2015 at 9:10 PM, DJ Delorie <dj AT delorie DOT com> wrote:

> 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...

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.

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.

 
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.

So there's three cases:

1. One symbol to one component, refdes should be unique, no problem.

2. Many symbols to one component (MCU), refdes must be same but pins
   should be unique.

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?).

 
3. Many symbols to one component (SLOTTING), refdes and pins may be = be
   same or unique depending on how slotting is = implemented.

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.
 
> Schematic pages except for subcircs are obsolete IMO,

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.

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.

 
> If you need to print your schematics it's because your CAD = sucks
> somehow.

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

Time for a new = bench :)
 


John Doty              Noqsi = Aerospace, Ltd.

http://www.noqsi.com/

jpd AT noqsi DOT com



= --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--