Smart Architecture for Successful PCB Component Libraries
Table of Contents
Organizing is what you do before you do something so that when you do it, it is not all mixed up. - A. A. Milne
Architecture is the specific structure that governs our collected data. It determines how we store, arrange, and utilize the data in the system.
In a way, the architecture of your PCB library is like the architecture of a building. You need to have it completed before you build your library so you don’t wind up with a virtual Hotel Del Coronado on your hands...
In Coronado, California, right on the beach across the bay from San Diego, there stands a hotel called the Hotel Del Coronado. This massive, entirely wooden structure is the second largest in the country. Its claim to fame includes being the first hotel in the United States to have electric lights and the first electrically-lit, outdoor living Christmas tree. It was the hotel in the 1959 classic movie. Some Like it Hot, featuring Marilyn Monroe, Jack Lemmon, and Tony Curtis.
Construction of the hotel began in March 1887, and it opened for business in February 1888. What is impressive and surprising about this beautiful hotel is that no official architectural plans were used to build it. Everything was “pieced” together. It was planned out as it went along. This fact is evident when you look at the very front of the façade of the building and see the broken-up structure. Despite this, this beautiful hotel has become the crown jewel of Coronado.
I share that because although building something with no plan can happen, it’s not advised. It was a fantastic feat of architecture—probably something not to attempt today.
I am amazed by the structure of a building watching it go up. The construction workers grade the land, lay the foundation, the walls go up, the roof goes on. Before you know it, you have a building. All of this happens because of proper planning—especially architectural planning.
Let’s look at how we will structure our part library.
This one pillar stands above all others. The architecture and ultimately the structure which develops from it determine and affect every other pillar. Being so important, architecture is also is the pillar that can cause the most damage to our libraries if it's not set up correctly.
Of course, the details of the library vary depending on the individual company needs, and those needs will drive how your architecture will ultimately pan out.
Just open any electronic component vendor catalog and you are quickly overwhelmed by the millions of components that are available. The most recent number of available components on a popular Electronic component vendor site was 8,621,770 components.
The component information is very dynamic, which adds to the confusion. It is continuously in a state of flux. Electronic components are added to it, while others are removed. Data and parameter fields change. Then, of course, the availability and sourcing information is impossible to nail down. It would be easier to nail Jello to the wall.
Too many times, PCB libraries are set to accommodate where a company is now rather than where it might be five to ten years down the road. I don’t know of any companies that wish to merely stagnate for several years. Therefore, you must first prepare and consider how your company will grow.
I recently sat down with a company talking about their library (Singular because they had already set up their first pillar). They told me they were struggling with about 1500 components. When I asked how they would handle 10,000 components, their eyes glazed over and a dead silence ensued. However, they understood the point—we must construct a component library which can govern the 10,000 components even if we are not there yet. So, the structure of the part library is done in a way that allows for natural expansion as hopefully, the company grows. Planning is what is needed.
A common way to organize components is to break them down into categories and families and then apply a specific category number of 100-series. Then breaking down the next level into Families with a numbering system of 1-Series.
With this sort of structure, we can easily find and organize any component. However, it allows for expansion as the database grows, since under each category of a component can be 100 different families with an endless number of components under each.
Fortunately, the hard part has is already completed. Most component vendors organize their components in the same way. The best that I have personally found is Octopart®, which has a very detailed structure of components based not just by category but sub-category and families. Based on the intricacy needed in your library, we can easily add further levels (which we’ll see when dealing with discrete). I’ve never seen a part library suffer from too much organization. The more, the better.
Have a detailed structure of how the library should look before you start because it is a challenge to switch mid-stream, which I have personally done. The only way to fix it was to delete the entire library and start over. A little planning and organization go a long way. Contrary to the Hotel Del Coronado, it is not a good practice to try to construct this on the fly and hope that everything “comes together” in the end.
Allow the components that are in your present designs to dictate what you need. Not every component category and family is necessary, so it does not make sense to set up every category and family.
Start with your initial structure and begin to build. Once a new part comes online (as we say), you can add component categories and families quickly as the part library grows. This results in many tasks up front. However, these tasks will fall off rather quickly.
Let’s peel back one more layer of the proverbial onion. The electronic component is the building block of any library. As mentioned earlier, the primary type of library used today is the Component Library, which splits the various models that make up the component into separate entities. Where they are highly controlled, managed blocks of information allow for some real configuration of the library. If we know what makes up each component, then we can place that in the library structure.
What makes up a component?
The various pieces of a component are divided into 2 main categories: the information and the Models.
We find that component information is often static in nature. So, it is best to embed in the component itself. Also, in that way, the vital information stays connected to that component. The Parametric component information holds specific details regarding the part. As we see in the figure below. Many of the millions of components mentioned earlier are separated by the minutest of differences, but differences that can either make or break a PCB design.
The secondary type of information is sourcing. Sourcing information is on a new level of dynamic data. With shifting component supplies changing not by the day or week but instantly, this has been a growing concern of PCB designers.
The second category of every component is its models. The minimal models required for each component is the Schematic Symbol, Footprint/Decal, and the 3D Model. If we can find a good simulation model that would be a plus. But, this cannot be a hard and fast rule because for some components, especially IC Manufacturers, details of how certain chips work is proprietary.
The component models are more static with changes coming at a slower rate. With that in mind, it is vital to keep these components as general as possible. The rule is if the model can easily be used in multiple places you do not want to “tie” a model to a particular part with either parametric or sourcing information. The information and the models' area for the components should not cross each other when possible and when it comes to the naming conventions.
The schematic symbol is a pictogram used to represent various electrical and electronic devices or functions.
The one exception to that rule is the naming of certain schematic symbols that are attached. Many times, a schematic symbol is unique to a specific footprint package. It is best to use the MFG part number as the name of the symbol.
The PCB Footprint is the arrangement of pads (in surface-mount technology) or through-holes (in through-hole technology) used to physically attach and electrically connect a component to a printed circuit board. The land pattern on a circuit board matches the arrangement of leads on a component. The standing rule is that the schematic symbol and the footprint must match.
Footprint Naming convention
So to be able to search a library and find the components that are there, you must have a standardized naming convention. Especially if you have more than one person creating the required footprints. Fortunately, IPC has taken care of it for us. Two standards which are required reading:
- IPC-7251C Generic Requirements for Through-Hole Design and Land Pattern Standard
- IPC-7351C Generic Requirements for Surface Mount Design and Land Pattern Standard
- The naming convention of the PCB Footprint/Decal using IPC-7351C
As a synopsis, the footprints are identified by the package type and size.
The 3D representation of the component on the PCB has become more important as the sizes of the finished units have reduced in size. The mechanical constraints will most likely be what drives most PCB designs. Fortunately, many sources for 3D models have cropped up, including 3D Content Central and Grab CAD. But, the go-to source for the 3D model is the manufacturer themselves. More and more of them are listening to the PCB designers and including the models along with the Parametric information.
This necessity of having accurate 3D representation has not gone unnoticed by the PCB ECAD software companies. Altium has now made it their standard protocol that when a new component is created and the 3D model exists, it is automatically brought in.
Simulations become a bit problematic. Since finding them is a real hit and miss proposition. There is not a problem with the conventional discrete. But, for the advanced ICs, as mentioned earlier, the only source usually is the Manufacturer. This forces engineers to develop some unique methods to simulate circuits that do not have an IC represented.
Home for the Models
Various strategies arose regarding the managing of the models. One point of view is to hold all models for the entire library in a single folder. The problem I have found is that it’s difficult to manage the content with this method. Just finding the model you need becomes a significant undertaking.
I feel a better plan is to have a model folder for each category of component. In this way, at least it breaks the models down and organizes them very nicely for that category.
One problem occurs when a model has multiple categories in which it could reside. For example, an SOT size package could reside for various component categories throughout your library. So how do we handle this? We follow the rule mentioned above, but with the single caveat that whenever a change is done on any footprint, a search must be done to determine if the other matching footprints also need to be changed.
A Word about Discrete Components
To use a metaphor, if a library were a human body, the massive beer belly would make up the discrete components. As your library grows, guarantee that the discrete categories are what has the most components. Therefore, special attention should be given to that area of your library by providing further architectural structure. One way is to add additional levels which would include the size of the component. So, they will be additionally organized by size.
Furthermore, since much time is spent creating the discrete—if you have categorized them by size—it would help to create a discrete Component template. What this template is, is a generic component consisting of the Schematic symbol and the footprints used. These components are saved off with a unique name so as to find them during a search easily. For example, a standard discrete size for a Resistor is the 0402. In the template, we would have the resistor symbol and in that example 3- footprints for the least, nominal and max conditions. It is saved off as <RES0402> with that syntax. The next 0402 resistors needed would search for the <RES0402> template, make a copy, drop in the parametric information, hook up the sourcing and it is done. This has a couple of advantages; it speeds up the time necessary to create components, and it standardizes the process and the models used.
Working with Discrete Components
With the vast number of discrete component manufacturers, it turns out that not all components are the same size. There are slight differences between them. Which only increases the importance of using a standard such as IPC for the PCB designer. To prove this point, a simple search in Digikey for an 0402 Chip Resistor brings up total results of 12 different footprint sizes using a total of 10 different heights ranging from 0.35mm to 0.85mm. This would result in about 15 - 20 different footprints for only this single component.
So how do we handle such a problem? You first start with the 3-baseline footprints of Max, Nominal and Least. Secondly, the height of the component for each would be the tallest component. The critical thought is to check any interference with any mechanical objects, and the tallest 3D model would be the max condition.
- Conduct a complete audit of the components used in your environment and determine the specific Category and family for each.
- Set up the model folder for each category
- Set up your discrete component templates, to make part creation easier.