<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><entry xmlns='http://www.w3.org/2005/Atom' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-31006871.post-7924235526110753457</id><published>2008-10-20T09:09:00.002+02:00</published><updated>2008-10-20T09:30:05.397+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='processes'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic design automation'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><title type='text'>Light and heavy symbols</title><content type='html'>&lt;i&gt;This post is aimed at electronic engineers working with electronic design automation (EDA) packages.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;As an electronic engineer you have probably been through it. It all starts simply and clearly. You need to draw a schematic; so you make some symbols, attach some attributes to them and get going. Then you draw some footprints for the PCB layout and make sure the correct footprint names are attached to the components you have created. The boards go the PCB manufacturer and you use a simple spreadsheet to manage the bill of materials (BOM). Everything goes nice and smoothly – you are happy.&lt;br /&gt;&lt;br /&gt;Then another project comes along – a bigger one with more engineers working on it. You carry on like you have before, explaining to people how to create new components and footprints and how to make sure the part numbers are correct. It all seems to be going well. The PCBs and components arrive, but something is not quite right. One of the components (an expensive one!) is the wrong part, and another component does not fit onto the PCB footprint correctly (even though there is another component with the same footprint that does fit correctly). What went wrong?&lt;br /&gt;&lt;br /&gt;Eventually with more projects and more people managing the component library becomes a full time job for someone, and getting a new component approved is a lengthy process for engineers. Let's not even talk about managing the now massive stock and BOM spreadsheet which keeps you awake at night. The quick process you started with has become a slow moving, time consuming beast. We need to find a way to kill that beast so that engineers can spend more time &lt;a href="http://blog.engineersimplicity.com/2006/08/you-do-what.html"&gt;creating solutions to problems&lt;/a&gt;, and less time on administration.&lt;br /&gt;&lt;br /&gt;There are two ways to handles components. We can either have "heavy" symbols, or "light" symbols. First a few definitions so that we are all talking the same language.&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;b&gt;component&lt;/b&gt;&lt;/td&gt;&lt;td&gt;:&lt;/td&gt;&lt;td&gt;an actual physical part.&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;b&gt;symbol&lt;/b&gt;&lt;/td&gt;&lt;td&gt;:&lt;/td&gt;&lt;td&gt;a diagram depicting a component which is placed in a schematic drawing.&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;b&gt;footprint&lt;/b&gt;&lt;/td&gt;&lt;td&gt;:&lt;/td&gt;&lt;td&gt;the physical layout of a component on a PCB.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;A heavy symbol has all of its attributes, such as part name, value, voltage, tolerance, footprint, ordering number, etc. specified in the symbol library. A light symbol has no attributes specified in the library and all attributes are added at a schematic level.&lt;br /&gt;&lt;br /&gt;There are some obvious flaws with each approach. A heavy symbol library will quickly grow in size – just think about having a symbol defined for each different opamp or resistor that is used. The graphical representation of an opamp is generic to a number of different parts, but now duplicates are created for each component. If a fault does creep into the library it can result in a number of different symbols needing to be fixed.&lt;br /&gt;&lt;br /&gt;With a light symbol library all the attributes are added to the schematic. Maintaining the symbols is easy (because there are fewer), but ensuring that the correct attribute information is added can lead to errors (each time data is manually copied or entered there is the potential for an error).&lt;br /&gt;&lt;br /&gt;There are also some obvious advantages. A heavy symbol immediately makes a lot of information available in the schematic which can be passed on to other tools, such as the footprint to the PCB layout package, or the part number to the BOM. A light symbol allows for information to be drawn from multiple sources, and the schematic can be updated without having to propagate the changes back into the library.&lt;br /&gt;&lt;br /&gt;Here is a brief summary of the feature of each type of symbol.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Heavy symbols:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data duplication,&lt;/li&gt;&lt;li&gt;Errors requires changes to numerous symbols,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Require a librarian to maintain symbol library sanity,&lt;/li&gt;&lt;li&gt;Single source of information.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Light symbols:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No data duplication,&lt;/li&gt;&lt;li&gt;Errors can be fixed at schematic level, or only affect a single symbol,&lt;/li&gt;&lt;li&gt;Allows multiple data sources for component information,&lt;/li&gt;&lt;li&gt;Requires addition of attributes at schematic level.&lt;/li&gt;&lt;/ul&gt;If you remember that &lt;a href="http://blog.engineersimplicity.com/2008/10/information-duplication-is-enemy-of.html"&gt;I am against information duplication&lt;/a&gt;, then you should have guessed that I am in favour of light symbols.&lt;br /&gt;&lt;br /&gt;The "light" and "heavy" nomenclature arose out of discussions on the &lt;a href="http://geda.seul.org/"&gt;gEDA&lt;/a&gt; mailing list. The &lt;a href="http://geda.seul.org/wiki/geda:faq-gschem#what_s_this_business_about_heavy_vs._light_symbols"&gt;gEDA wiki has a brief summary&lt;/a&gt;, and the two threads which I think are the most relevant are "&lt;a href="http://archives.seul.org/geda/user/Jun-2005/msg00001.html"&gt;Light vs. Heavy gschem symbols?&lt;/a&gt;" and "&lt;a href="http://archives.seul.org/geda/user/Dec-2007/msg00146.html"&gt;Heavy symbols and such&lt;/a&gt;."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31006871-7924235526110753457?l=blog.engineersimplicity.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.engineersimplicity.com/feeds/7924235526110753457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.engineersimplicity.com/2008/10/light-and-heavy-components.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31006871/posts/default/7924235526110753457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31006871/posts/default/7924235526110753457'/><link rel='alternate' type='text/html' href='http://blog.engineersimplicity.com/2008/10/light-and-heavy-components.html' title='Light and heavy symbols'/><author><name>Duncan Drennan</name><uri>http://www.blogger.com/profile/18356141566912975917</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04600832983671621308'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry>