EAGLE Central Forums
Where the EAGLE community meets. Sponsored by Stratford Digital.

Home » CadSoft Support Forums » eagle.suggest.eng » Why do I need to draw the same symbol N times?
Why do I need to draw the same symbol N times? [message #167237] Fri, 23 September 2016 04:29 Go to next message
zoltan
Messages: 24
Registered: February 2006
Junior Member
More often than not the same chip is available in different packages,
quite often with different number of pins and the packages with fewer
pins omit some of the lesser used signals.

Currently, you need to create a different symbol for every package: if
you have a chip that comes in 5 different packages, with a few pin
differences, you need a symbol drawn for ABC1234-SOIC, ABC1234-BGA,
ABC1234-TSOP and so on. It's the same damn chip, just on some packages
some pins are missing.

I wonder if I'm alone with the wish of having just one symbol, with
every possible signal drawn. Then, when it gets placed to the schematic
with a package selected, the not bonded pins grey out and don't allow
wires to be connected to them?
--
Zoltán Kócsi
Bendor Research Pty. Ltd.
Re: Why do I need to draw the same symbol N times? [message #167239 is a reply to message #167237] Fri, 23 September 2016 06:47 Go to previous messageGo to next message
Morten Leikvoll
Messages: 1343
Registered: November 2007
Senior Member
On 23.09.2016 06:32, Zoltán Kócsi wrote:
> More often than not the same chip is available in different packages,
> quite often with different number of pins and the packages with fewer
> pins omit some of the lesser used signals.
>
> Currently, you need to create a different symbol for every package: if
> you have a chip that comes in 5 different packages, with a few pin
> differences, you need a symbol drawn for ABC1234-SOIC, ABC1234-BGA,
> ABC1234-TSOP and so on. It's the same damn chip, just on some packages
> some pins are missing.
>
> I wonder if I'm alone with the wish of having just one symbol, with
> every possible signal drawn. Then, when it gets placed to the schematic
> with a package selected, the not bonded pins grey out and don't allow
> wires to be connected to them?
>

You dont need to redraw the symbol. You just create a new component and
add the symbol + all the packages that work with this symbol at the same
component, then connect them correctly. This works, even if some
packages have more gnd/shield pins, cause every package is connected
separately.

Look at the attached sample. I got one symbol and 5 different packages
for the same symbol.

But currently (7.x), if the symbol differs slightly betweeen packages,
you have to copy/make a new symbol, and add/remove pins. Sometimes it
would have been nice if unconnected pins at the symbol were hidden at
the schematics, if they are not user/connected to the chosen package.
Re: Why do I need to draw the same symbol N times? [message #167241 is a reply to message #167239] Fri, 23 September 2016 07:31 Go to previous messageGo to next message
Stoneshop
Messages: 3
Registered: March 2010
Location: Netherlands
Junior Member
Quote:
You dont need to redraw the symbol. You just create a new component and
add the symbol + all the packages that work with this symbol at the same
component, then connect them correctly. This works, even if some
packages have more gnd/shield pins, cause every package is connected
separately.


That won't work if one or more of the package variants has less pins than the symbol.

It would help if the Table of Contents view of the library allowed copying a symbol, so that you can draw the most extensive symbol for the component, copy it, delete some pins from the copy (repeat for all variants).

The way I work around this is by drawing the symbol, saving the library and exiting the library editor, then opening the library in a plain text editor, find the symbol you just added, then copy/paste it (between <symbol name="..."> and </symbol name>), with a modified name for the copied symbol. Then reopen the library editor, edit the copied symbol and delete the pins not used in that variant.
Re: Why do I need to draw the same symbol N times? [message #167242 is a reply to message #167241] Fri, 23 September 2016 07:45 Go to previous messageGo to next message
Tilmann Reh
Messages: 2068
Registered: October 2004
Senior Member
Rik Steenwinkel schrieb:

> It would help if the Table of Contents view of the library allowed copying
> a symbol, so that you can draw the most extensive symbol for the component,
> copy it, delete some pins from the copy (repeat for all variants).
>
> The way I work around this is by drawing the symbol, saving the library and
> exiting the library editor, then opening the library in a plain text
> editor, find the symbol you just added, then copy/paste it (between <symbol
> name="..."> and </symbol name>), with a modified name for the copied
> symbol. Then reopen the library editor, edit the copied symbol and delete
> the pins not used in that variant.

Why don't you simply use GROUP - CUT - PASTE within the symbol editor?

Tilmann
Re: Why do I need to draw the same symbol N times? [message #167243 is a reply to message #167241] Fri, 23 September 2016 07:46 Go to previous messageGo to next message
Morten Leikvoll
Messages: 1343
Registered: November 2007
Senior Member
On 23.09.2016 09:31, Rik Steenwinkel wrote:
> Quote:
>> You dont need to redraw the symbol. You just create a new component
>> and
>> add the symbol + all the packages that work with this symbol at the
>> same
>> component, then connect them correctly. This works, even if some
>> packages have more gnd/shield pins, cause every package is connected
>> separately.
>
>
> That won't work if one or more of the package variants has less pins than
> the symbol.
>
> It would help if the Table of Contents view of the library allowed copying
> a symbol, so that you can draw the most extensive symbol for the component,
> copy it, delete some pins from the copy (repeat for all variants).
>
> The way I work around this is by drawing the symbol, saving the library and
> exiting the library editor, then opening the library in a plain text
> editor, find the symbol you just added, then copy/paste it (between <symbol
> name="..."> and </symbol name>), with a modified name for the copied
> symbol. Then reopen the library editor, edit the copied symbol and delete
> the pins not used in that variant.
>

It works for many packages, not for all.
Your symbol should not have the same name over again, like multiple GND
pins. Just draw one and merge all the [gnd] pins of a package onto the
same symbol pin. This way you can reuse a symbol for same-function packages.

I guess you do know you can use copy/paste to copy a symbol and paste it
onto a new one, then make changes. Just group all , copy group, create a
new symbol and paste.

Or paste these commands into the command line when you got the symbol
you want to copy open:

group all;
copy (>c0 0);
edit newname.sym;
paste (0 0);

All of a sudden you have a copy. (It doesnt copy the description tho)
Re: Why do I need to draw the same symbol N times? [message #167244 is a reply to message #167241] Fri, 23 September 2016 08:45 Go to previous messageGo to next message
rachaelp
Messages: 551
Registered: March 2015
Location: UK
Senior Member
[quote title=Stoneshop wrote on Fri, 23 September 2016 08:31]Quote:
It would help if the Table of Contents view of the library allowed copying a symbol, so that you can draw the most extensive symbol for the component, copy it, delete some pins from the copy (repeat for all variants).


It does... Right click on the symbol you want to copy and select "Duplicate". It then asks you to enter a new name for the duplicate and you're done.
Re: Why do I need to draw the same symbol N times? [message #167245 is a reply to message #167244] Fri, 23 September 2016 08:54 Go to previous messageGo to next message
Stoneshop
Messages: 3
Registered: March 2010
Location: Netherlands
Junior Member
rachaelp wrote on Fri, 23 September 2016 10:45
Stoneshop wrote on Fri, 23 September 2016 08:31
It would help if the Table of Contents view of the library allowed copying a symbol, so that you can draw the most extensive symbol for the component, copy it, delete some pins from the copy (repeat for all variants).


It does... Right click on the symbol you want to copy and select "Duplicate". It then asks you to enter a new name for the duplicate and you're done.


Not in my version (7.3.0 standard). You can duplicate devices and packages, but not symbols.
Re: Why do I need to draw the same symbol N times? [message #167246 is a reply to message #167237] Fri, 23 September 2016 08:55 Go to previous messageGo to next message
rachaelp
Messages: 551
Registered: March 2015
Location: UK
Senior Member
zoltan wrote on Fri, 23 September 2016 05:29

I wonder if I'm alone with the wish of having just one symbol, with
every possible signal drawn. Then, when it gets placed to the schematic
with a package selected, the not bonded pins grey out and don't allow
wires to be connected to them?


Morten Leikvoll wrote on Fri, 23 September 2016 07:47

But currently (7.x), if the symbol differs slightly betweeen packages,
you have to copy/make a new symbol, and add/remove pins. Sometimes it
would have been nice if unconnected pins at the symbol were hidden at
the schematics, if they are not user/connected to the chosen package.


Yes I think this would be nice. For a lot of cases the existing system works fine but being able to have a single device which deals with the entire part in all its variants rather than having to have duplicate parts with slightly different symbols would be a big benefit in terms of having much tidier and easier to use libraries. I like the idea of greying out or hiding unconnected pins but sometimes that might not be enough as a variant can possibly change a pin function (i.e. it bonds the pin to another function internally). For this reason I think being able to specify alternative symbols within the device as well as alternative packages would be a big benefit too.

Best Regards,

Rachael



Re: Why do I need to draw the same symbol N times? [message #167247 is a reply to message #167245] Fri, 23 September 2016 08:59 Go to previous messageGo to next message
rachaelp
Messages: 551
Registered: March 2015
Location: UK
Senior Member
Stoneshop wrote on Fri, 23 September 2016 09:54
Not in my version (7.3.0 standard). You can duplicate devices and packages, but not symbols.


Yes they added a lot of new features to the library manager throughout the 7.x releases and I can't remember where that was added. If it's an issue for you at least you have the option of going to a newer release as you have a v7 license.

Best Regards,

Rachael
Re: Why do I need to draw the same symbol N times? [message #167274 is a reply to message #167239] Sun, 25 September 2016 05:53 Go to previous messageGo to next message
zoltan
Messages: 24
Registered: February 2006
Junior Member
On Fri, 23 Sep 2016 08:47:48 +0200
Morten Leikvoll <mleikvol@yahoo.nospam> wrote:

> You dont need to redraw the symbol. You just create a new component
> and add the symbol + all the packages that work with this symbol at
> the same component, then connect them correctly. This works, even if
> some packages have more gnd/shield pins, cause every package is
> connected separately.

As Rik Steenwinkel pointed out, that doesn't work with very many chips.
Microcontrollers, FPGAs, power supply chips being ominous examples.
Micros more often than not drop/gain a few port pins between package
variants. FPGAs ditto. Power supply chips often drop rarely used
feature pins. SPI FLASH chips tend to have a 'BUSY' signal on the higher
pincount package, which is dropped if you go to the smallest
pincount/footprint one. So the list is quite long.

In my original post I was specifically talking about packages with
different pin counts and *signal* pins going missing in the smaller
package.

> But currently (7.x), if the symbol differs slightly betweeen
> packages, you have to copy/make a new symbol, and add/remove pins.

Exactly. As it has always been the case. Hence my request: I'd like to
draw only *one* symbol and assign a package, even if the symbol has
more pins than the package. Then the schematics could grey out or even
completely hide the pins that are not available on the package.

In the software world copy-paste-massage-ing code is one of the cardinal
sins, and rightly so, why am I forced to do it with my hardware?
--
Zoltán Kócsi
Bendor Research Pty. Ltd.
Re: Why do I need to draw the same symbol N times? [message #167279 is a reply to message #167274] Sun, 25 September 2016 21:32 Go to previous messageGo to next message
Olin
Messages: 903
Registered: December 2009
Location: Massachusetts
Senior Member
zoltan wrote on Sun, 25 September 2016 01:53

Hence my request: I'd like to
draw only *one* symbol and assign a package, even if the symbol has
more pins than the package. Then the schematics could grey out or even
completely hide the pins that are not available on the package.


By the time you specify which pins should be greyed out, you might as well have made the minor modifications from the symbol with a little more or little less pins. If you're only changing a few pins, there isn't really a problem to solve here.

You don't want Eagle to just assume that you intentionally used a symbol with too many pins and not show you the remaining ones. That would circumvent useful error checking. Also, if a different chip has fewer pins, you most likely want to draw the symbol differently. You may want to make it a little smaller, change some of the labeling inside the symbol, etc.

A good example is a voltage regulator. The simple 3-pin variety can be drawn more simply and smaller than one with a shutdown input, for example. I wouldn't want the simple 3-pin version burdened with a greyed out shutdown input. I also wouldn't want it drawn bigger with inexplicable extra space in the 3-pin usage case.

If the symbols are similar except for a few pins, then there isn't really a problem here. Copy and edit works fine. If the symbols are substantially different, then you're going to have to do some work for each case one way or the other.

Quote:

In the software world copy-paste-massage-ing code is one of the cardinal
sins, and rightly so,


Exactly. This is the same thing. Just like with software, you copy and paste, then make a few minor edits to adapt to details of the situation.
Re: Why do I need to draw the same symbol N times? [message #167282 is a reply to message #167279] Mon, 26 September 2016 07:38 Go to previous messageGo to next message
zoltan
Messages: 24
Registered: February 2006
Junior Member
On Sun, 25 Sep 2016 17:32:32 -0400
Olin Lathrop <eagle9304@embedinc.com> wrote:

> By the time you specify which pins should be greyed out, you might as

Um, all of them which I did not assign to a package pin? What else
should I specify in some time-consuming manner?

> You don't want Eagle to just assume that you intentionally used a
> symbol with too many pins and not show you the remaining ones. That
> would circumvent useful error checking.

So, maybe a message box asking me whether I really want to assign this
package to this chip could be a good solution?

> Also, if a different chip
> has fewer pins, you most likely want to draw the symbol differently.

Most definitely not, especially not for microcontrollers or FPGAs or
anything with 20 or 50 or 100 or 200 or more pins of which a few
percentage may or may not be present on any particular package variant.
It is not a different chip, it is the *same* chip, except that some of
its pins on the silicon are not connected to package pins.

> A good example is a voltage regulator. The simple 3-pin variety can
> be drawn more simply and smaller than one with a shutdown input, for
> example. I wouldn't want the simple 3-pin version burdened with a
> greyed out shutdown input. I also wouldn't want it drawn bigger with
> inexplicable extra space in the 3-pin usage case.

And how about the 24-pin variety (a switch mode), which is also
available in a 21 pin variety, being exactly the same except that a
normally left open pin, only used for synchronising multiple chips, is
not available (the other 3 missing pins are the ground pins, which are
now all on the central tab under the chip)?

> Quote:
>> In the software world copy-paste-massage-ing code is one of the
>> cardinal
>> sins, and rightly so,
>
>
> Exactly. This is the same thing. Just like with software, you copy
> and paste, then make a few minor edits to adapt to details of the
> situation.

I don't think you understood what you quoted and said 'Exactly' to.
Cardinal sin means something that one should never, ever do. It has
religious origins, the 'cardinal sins' are the '7 deadly sins' of
Christianity, like murder. Copy-paste-massage is known to be the source
of bugs too numerous to mention and is generally considered a very bad
way of doing software.
--
Zoltán Kócsi
Bendor Research Pty. Ltd.
Re: Why do I need to draw the same symbol N times? [message #167288 is a reply to message #167279] Mon, 26 September 2016 13:54 Go to previous messageGo to next message
Chuck Huber
Messages: 593
Registered: October 2004
Senior Member
On 09/25/2016 05:32 PM, Olin Lathrop wrote:
> zoltan wrote on Sun, 25 September 2016 01:53
>> Hence my request: I'd like to
>> draw only *one* symbol and assign a package, even if the symbol has
>> more pins than the package. Then the schematics could grey out or even
>> completely hide the pins that are not available on the package.
>
> By the time you specify which pins should be greyed out, you might as well
> have made the minor modifications from the symbol with a little more or
> little less pins. If you're only changing a few pins, there isn't really a
> problem to solve here.

Olin,

The implication of extra work is not entirely accurate. This has
already been discussed in at least one thread that I started titled
"Allow and Hide Unconnected Pins." in this newsgroup on December 20th of
2014

In my case, I was dealing with the MSP430 family of microcontrollers.
Others have run into this problem on Xylinx, Atmel, and others. This
addresses instances where everything on the glass is the same. The
difference is that on smaller packages with fewer pins, some pads on the
die are not wired to pins on the package.

(back to Eagle's definition of pads and pins...)
It is a reasonable request to create one device, draw one set of symbols
for the most extensive package, and on smaller packages either grey out
the pin on the symbol, or put an "x" at the connect point for those pins
that have not been connected to a pad.

At this time, Eagle does not permit one to choose a package that has
fewer pads than the device's symbols have pins.

There is no extra work involved - the relationship between pads on the
package and pins on the symbol established in the library editor must be
done regardless of whether are more pins than pads, more pads than pins,
or an equal number of each.

Jorge, Is there any chance of refreshing this request?


>
> You don't want Eagle to just assume that you intentionally used a symbol
> with too many pins and not show you the remaining ones. That would
> circumvent useful error checking.

I also don't want Eagle to assume that using a package without enough
pads is prohibited.

An alert box in the library editor can verify the choice.


> Also, if a different chip has fewer
> pins, you most likely want to draw the symbol differently. You may want to
> make it a little smaller, change some of the labeling inside the symbol,
> etc.

You actually make a good argument for having the choice available to
reuse a larger symbol, or design separate symbols. It would be nice to
have the ability to use a smaller package. Whether one chooses to use
that feature is up to the designer.

There are many cases where one might start out a uC design with a
smaller package, and promote to a larger package as the design
develops. Feature creep can cause this.

On more than one occasion I have designed embedded systems to accept
multiple packages of the same IC. This allows the same design to
survive unavailability of parts. i.e. If I can get by with a QFP48,
I'll also overlay the same package with a QFP64, or QFP80. If the
optimal 48-pin package is out of stock, production can drop in a 64 and
keep rolling.

Sure, it takes up a bit more real estate, but it beats having to spin
another board and qualify it while production is waiting.

> A good example is a voltage regulator. The simple 3-pin variety can be
> drawn more simply and smaller than one with a shutdown input, for example.
> I wouldn't want the simple 3-pin version burdened with a greyed out
> shutdown input. I also wouldn't want it drawn bigger with inexplicable
> extra space in the 3-pin usage case.
>
> If the symbols are similar except for a few pins, then there isn't really a
> problem here. Copy and edit works fine. If the symbols are substantially
> different, then you're going to have to do some work for each case one way
> or the other.

I think you're overestimating the work involved. The proposed feature
reduces work - one does not have to create a separate device for each of
the very similar symbols that also have to be created. The idea is one
device, one set of symbols, and variations in package connections.

In my suggestion in December of 2014, I stated that the unused pins (on
the symbol) should not be shown. I later refined this to state that
these pins should either be greyed, or have an "x" at the connection
point, or both. As you pointed out, it can introduce errors if the pins
are simply not shown.

Regards,
- Chuck
Re: Why do I need to draw the same symbol N times? [message #167307 is a reply to message #167246] Tue, 27 September 2016 16:36 Go to previous messageGo to next message
Jorge Garcia
Messages: 1291
Registered: April 2010
Senior Member
Hi All,

This is definitely a pretty split topic it would be hard to make a
suggestion either way.

To answer the original question, the way I would handle this is a I
would create one symbol which would represent the smallest( the one with
the fewest pads) of the packages.

I would create a device for the smallest package using just that symbol.

Let's say that the next package up has 4 extra pins. I would create a
new symbol with just those 4 pins. When I go to make the device for this
package, I would add this symbol plus the symbol with the 4 extra pins.

Repeat this for as many packages as necessary. Basically, instead of
subtracting pins from the largest package configuration, we add pins to
the lowest. You can adjust the add levels to make the two symbols come
in together.

I don't like the idea of greying out pins in the schematic or x-ing them
out in some way. I think it makes the schematic untidy and adds
unnecessary additional info.

hth,
Jorge Garica
Re: Why do I need to draw the same symbol N times? [message #167309 is a reply to message #167307] Tue, 27 September 2016 16:56 Go to previous messageGo to next message
rachaelp
Messages: 551
Registered: March 2015
Location: UK
Senior Member
Jorge Garcia wrote on Tue, 27 September 2016 17:36
Hi All,

This is definitely a pretty split topic it would be hard to make a
suggestion either way.

To answer the original question, the way I would handle this is a I
would create one symbol which would represent the smallest( the one with
the fewest pads) of the packages.

I would create a device for the smallest package using just that symbol.

Let's say that the next package up has 4 extra pins. I would create a
new symbol with just those 4 pins. When I go to make the device for this
package, I would add this symbol plus the symbol with the 4 extra pins.

Repeat this for as many packages as necessary. Basically, instead of
subtracting pins from the largest package configuration, we add pins to
the lowest. You can adjust the add levels to make the two symbols come
in together.

I don't like the idea of greying out pins in the schematic or x-ing them
out in some way. I think it makes the schematic untidy and adds
unnecessary additional info.

hth,
Jorge Garica


I'm sort of in agreement with you regarding the negatives of greying out or x-ing out the pins, but then for a lot of cases adding extra symbol parts just for the additional pins could quickly lead to a messy schematics too and you may not be able to group pins how you would like.

So the only other solution I can think of would be to have the ability to specify a symbol variant based on the "master" symbol which could then have pins removed / renamed / added as necessary. Then anything in the master symbol which was unrelated to the changes on the variants would be inherited such that any changes to these parts of the master symbol would occur in the variant symbols. This would remove the issue of having multiple copies of a single symbol to maintain.

There are several other use cases for having the ability to specify multiple symbols (I covered one of these in one of my earliest posts on this forum) but the way of using the feature would probably need to be slightly tweaked. It would be good if there was a way to support multiple symbols which could cover all use cases.

Best Regards,

Rachael



Re: Why do I need to draw the same symbol N times? [message #167320 is a reply to message #167307] Wed, 28 September 2016 07:15 Go to previous message
Morten Leikvoll
Messages: 1343
Registered: November 2007
Senior Member
On 27.09.2016 18:36, Jorge Garcia wrote:
> Hi All,
>
> This is definitely a pretty split topic it would be hard to make a
> suggestion either way.
>
> To answer the original question, the way I would handle this is a I
> would create one symbol which would represent the smallest( the one with
> the fewest pads) of the packages.
>
> I would create a device for the smallest package using just that symbol.
>
> Let's say that the next package up has 4 extra pins. I would create a
> new symbol with just those 4 pins. When I go to make the device for this
> package, I would add this symbol plus the symbol with the 4 extra pins.
>
> Repeat this for as many packages as necessary. Basically, instead of
> subtracting pins from the largest package configuration, we add pins to
> the lowest. You can adjust the add levels to make the two symbols come
> in together.
>
> I don't like the idea of greying out pins in the schematic or x-ing them
> out in some way. I think it makes the schematic untidy and adds
> unnecessary additional info.
>
> hth,
> Jorge Garica
>
>

I don't want to suggest a complete solution for this, but rather throw
in options.

Devices may consist of several symbols, and maybe a [full] symbol could
be optional for each package. Like if a mcu/fpga or similar comes in
packages without a set of IO, you can put that package specific IO in a
separate symbol and connect it to those packages that has it. This would
keep some of the symbol-package consistancy check that exist today.

On the other hand, I'd like to see changes to pin directions wich has
been discussed across several topics before. This includes the current
problematic sup/pwr directions and an additional "project dependant
programmable" directions (for fpga/mcu). I think this can be solved
easily by introducing new io directions, and keep the current ones as is.

Since I am a FPGA man, I'd also see the need for symbols to change
visible pin text depending on usage. The symbols gets very large if you
want to include every special function of a single pin. To give an
example, for an Altera Arria10 fpga, in a 1517pin package, a single pin
(G20) has one of these functions, depending on configuration/project usage:
-PLL_2L_CLKOUT0p (lvds clock output from a pll, positive pin)
-PLL_2L_CLKOUT0 (single end clock output from the above pll)
-PLL_2L_FB0 (feedback input to the above pll)
-LVDS2L_15p, with no soft CDR support, for dedicated LVDS high speed io.
-DQ4 for a 4 bit DDR memory lane
-DQ2 for a 8 bit DDR memory lane
-DQ1 for a 16 bit DDR memory lane
-DQ0 for a 32 bit DDR memory lane
To further complicate this, the IO's may even have special functions
before it is configured, so the function of the io in some design may be
double.

Now try to get all that into a single symbol. Of course that is not
practical. This suggests the need for "symbol" configuration, and it
will be needed pr pin. Also note that every project specific function
have a assigned direction, wich would be nice if it could go into the
ERC. But tbh, I think this is a bit far into the future, but nice to
keep in mind when looking ahead.

For now, I draw application specific symbols.
Previous Topic: Comparing packages
Next Topic: toggle layer displaying
Goto Forum:
  


Current Time: Thu May 25 18:14:37 GMT 2017