-
- News
- Books
Featured Books
- design007 Magazine
Latest Issues
Current IssueDesigning Through the Noise
Our experts discuss the constantly evolving world of RF design, including the many tradeoffs, material considerations, and design tips and techniques that designers and design engineers need to know to succeed in this high-frequency realm.
Learning to Speak ‘Fab’
Our expert contributors clear up many of the miscommunication problems between PCB designers and their fab and assembly stakeholders. As you will see, a little extra planning early in the design cycle can go a long way toward maintaining open lines of communication with the fab and assembly folks.
Training New Designers
Where will we find the next generation of PCB designers and design engineers? Once we locate them, how will we train and educate them? What will PCB designers of the future need to master to deal with tomorrow’s technology?
- Articles
- Columns
Search Console
- Links
- Media kit
||| MENU - design007 Magazine
Estimating PCB Design Time and Complexity
March 2, 2011 |Estimated reading time: 7 minutes
One thing that I have had to do over and over on my new PCB jobs is to make an estimate of how long I think the layout will take, or if it is even possible in the first place, given the PCB area.
I have traditionally accomplished this by roughing out by hand, on paper or in a spreadsheet, the parts area for the proposed PCB area. This provides me with a kind of utilization ratio that allows me to make a good estimate on the time it will take me to complete the design, or even if the design is possible.
For instance, if the utilization ratio is 0.25, the parts only take up 25% of the PCB area and this is pretty easy to route, but if the number gets above 0.5 or even 0.8 these are really getting very dense and it may be difficult to route. But just this number alone is not enough to make a complete estimation. In a simple case you might be building a breakout board for a single IC and the utilization factor might be 0.95, but the design is easy to route.
The other number needed to make a more complete estimate is the number of pins that need to be routed. Everything is easy if you have only 100 pins to route, but as this number goes up so does the total time route the board.
These two numbers lead to another possible metric – the number of routing layers. As the pin count and utilization factor increase, the other option for keeping the routing job reasonable (or even possible) is to add routing layers.
Once the utilization factor and the number of pins to be routed have been identified, the designer begins to have real data that can be used in making even better estimates in the future. This is especially true if the method is used to analyze previous designs where the time to completion is well known.
Most designers have some method of estimating design time, based on gut feel or past experience. Perhaps they make up a spreadsheet and make an estimate, but there is a better way.
The Better Way
Instead of spending half an hour or more putting together a spreadsheet, the better way is to automate the spreadsheet method so that the results can be seen in seconds. All schematic capture tools can produce a BOM with the most important information in it. For our estimation purposes, all we need are the footprint name and the quantity of each part used.
I automated this process by writing a simple standalone C# program that I call the PCB Estimator. This program reads a simple CSV spreadsheet format BOM and extracts the quantity for each PCB footprint as it is used on the schematic. The program then looks for another simple CSV spreadsheet file that contains the area and number of pins for each footprint that the user provides.
The end result of this process is to provide an Estimate File in a spreadsheet format that contains just the quantity, footprint name, area and number of pins, plus formulas to total all these numbers up. See Figure 1.
Figure 1. The output of the PCB Estimator program is a spreadsheet file that contains the information needed to make a better estimate of a given PCB's difficulty. For each footprint the area and pins are multiplied by the quantity of the footprint that were present in the BOM and then these columns are totaled automatically. I work in square mils, but the program doesn't care about units and will work for any measurement system.
Simple Input Data Needed
The footprint database would seem like a difficult thing to build, especially if you have libraries consisting of thousands of parts, but features in the program provide a way to built this incrementally as needed. Any given design will probably use very few different footprints. For instance, I recently completed an 850-part board that used only 30 different footprints. The PCB Estimator program can determine what footprints were not present in the database file, and as a help to the user these missing footprint names can be appended back to the file.
Then it is a simple matter to add the area and number of pins for each of the missing footprints. In this way the footprint area spreadsheet fills up quickly and only needs to be incrementally added to.
This is much like making a new schematic from scratch: Usually 80% of the symbols are already made and only 20% need to be created each time, and things proceed quite rapidly.
Running The PCB Estimator
Using the program is quite easy, even for infrequent users. The GUI lists each step required to produce an output in a top down fashion. See Figure 2.
Figure 2. The User Interface of the PCB Estimator leads the PCB designer to an output in a logical step by step fashion. The program kindly remembers the last location of all the files and settings so this information only needs to be incrementally changed for multiple runs and projects. This program was written in C# (.NET based) and will run on Windows XP and above.
First we’ll need a BOM from the schematic to process. I just start with a standard BOM output in a spreadsheet format. Then I strip out all the columns until I have just the Quantity in Column A and the Footprint name in Column B. After saving this as a CSV (Comma Separated Values) format file, this will become the PCB Estimators BOM Input File.
The next step is to point the program to the location of the Footprint area database file. This file is expected to be in CSV format also. The CSV format is in plain ASCII and can be read into any spreadsheet or text editor. I chose this format because sometimes when editing files like this it is just as easy to use a simple text editor for editing and this format provides the ultimate flexibility in this regard. The format is also obsolescence proof. As long as there are spreadsheets there will be the CSV format.
The PCB Estimator program has the option to make the estimator file for you automatically or you can browse to a location and file name (Steps 2 and 5). Synchronizing the output to the input BOM directories places the output file in the location where the input BOM file was and changes its name by appending “Estimator.CSV” to the input BOM file name.
The final step is to hit the Run button. The Estimator then reads both input files, searches for matches, combines like items and then writes the output file including the summation formulas to the specified CSV format file (Figure 1).
If the program finds any missing footprints in the database file it will prompt if you would like to append these missing footprint names back to the footprint database file. This is a really useful and time-saving feature, as you don't have to remember the missing footprint names. All you have to do is open the Footprints CSV file in any spreadsheet or text editor and for each missing footprint add the PCB area and number of pins used. Re-save the footprints file, then run the estimator again and the message “Finished with all footprints found” will be given.
Next steps
If you use the PCB Estimator program on previous designs whose time to completion is known, compare these real-world numbers with those of new designs. You will probably find that some pretty strong correlation of data can be found between the PCB Utilization Factor and the pin count versus the time required to complete a design. Having these numbers will help in making better and more accurate PCB estimates for your clients in the future, and since the process is automated it won't take long to get real data either.
The free PCB Estimator program can be downloaded from www.AnalogHome.com/articles/pcb_estimator.html
Steve Hageman has always looked for ways to decrease the cycle time and improve the accuracy of his designs. He did his first PCB design in AutoCAD way back in 1986, and he hasn't looked back at doughnut pads and tape since. Currently Steve serves a variety of clients designing and building virtual instruments and other electronic products with the goal of “straight to production” always in mind. Steve may be reached via his Web site at www.AnalogHome.com.