I have been developing applications in Xilinx FPGAs using VHDL for the past 3 years for a small company in Virginia. As our designs are getting larger and more complex, the off-the-shelf boards we have been using are proving to be insufficient. I am interested in learning about designing boards myself with FPGAs, ADCs, DACs etc. I am new to board design and am wondering where to start. Any suggestions would be greatly appreciated.
Without communicating the level of engineer you are, it's hard to communicate what it takes to succeed in board design. Are you even a hardware engineer? Do you prototype hardware with flying wires, a soldering iron, and cheap plastic cases? Do you know anything about power regulators, amplifiers, transmission line theory, or PCB manufacturing issues?
Please tell us a little more about what you bring to the table.
You are right.. I should've mentioned before that I don't have any hardware experience, but do have some theoretical knowledge about amplifiers, transmission line theory etc. I am a complete newbie in PCB design..
Here's some basics on board design for the relatively uninitiated.
1) Get the eval board schematics for each major part in your design.
2) Assume all eval boards are overdesigned and try to get a grasp of the subset of the eval design required for your system.
3) Don't assume anyone smarter than you has done the mundane parts of the eval design such as power supplies and bypass caps. Look at the recommended bypassing from manufacturer appnotes. Use the data sheet values for power consumption where available, or use the power estimator when using a programmable part. Some power estimators also provide estimated bypass cap requirements.
4) If possible get another engineer to review your schematics. For programmable parts like FPGA's make sure you can fit a design with the pinout assignments in the schematic. If you don't have the design already finished, at least set up a project with the appropriate inputs, outputs, and IO standards to check for issues like banking or clock routing.
5) Use a reputable design house to lay out your circuitry. Don't assume you can pick up a copy of PADS layout and push the autoroute button to design a board.
I'm sure there are a lot more items that could be added to this list, but its a starting point. You may also find that hiring an outside design firm to do at least your first design will be worth it in the long run. Later designs that are variations on the original will then have a solid starting point.
Your are entering a very big subject area that most people make the classic mistake that "it's just drawing lines on the screen". We entered the manufacturing market 4 years ago with some substantial practical experience being involved in customer designs but it was still a very big jump to doing it all yourself. I know, from many years helping customers out of problems, that our own hit rate in delivering perfect boards is exceptional. Some our boards are still effectively in their first revision. Even now after our having design something like 100 major designs in the last 4 years we still are learning things about the process and even new tricks. Some companies that we see actually think they are doing well if they get it right in
3 revisions of a particular board. I have seen some customer designed projects go to 7+ revisions before they called us in.
That all said it can be a very pleasant task to layout boards somthing like tacking a jigsaw pauzzle. Whether you find doing boards yourself good fun, or frustrating and expensive when you make mistakes, you might want to start doing a simple design on a cheap package like Eagle and then going through the manufacturing process. Having learned some of the ropes you can then make better judgements on what tools to buy and even if the own layout process works for you.
John Adair Enterpoint Ltd. - Home of CR1 the J1962 solution.
Thank you Gabor and John. I know I am entering a whole new area and that it will take a lot of time (years...) and effort to get good at it. But I will try out the suggestions you guys have posted. I will start out with some cheap CAD package and see how it goes. Thanks again for the replies.
After designing a simple board, a very handy thing to do is to submit the design files to
formatting link
It will tell you quickly about a number of ordinary board design problems you might have. There is no obligation to purchase boards, though for simple boards the price is decent.
In my experience it is good design practise to design contigency plans into the board so that mistakes can be rectified easily without having to hack the board around with a scapel. For example, bring some unused IO out to test pads, tie pins high or low via a zero ohm resistor, track the JTAG port to a header. I would never expect a design to be correct on the first spin and if the only changes for the respin are to remove redundant test points etc, you're doing well.
Also, I'd avoid BGA packages if at all possible as it is significantly more difficult to design the board, fabricate it, rework faults and rectify design mistakes.
I'd also check the website of your FPGA vendor as they usually have lots of information on PCB design.
Finally, the PCB design difficulty goes up as the clock frequencies go up. If you are designing something slow with small FPGAs then I'd say have a crack at it and learn as you go. If it's something with lots of high speed logic signals you may be better off going to the experts and paying a third party design house to do the work for you.
Tell us more about the off-the-shelf boards that don't meet your new requirements. Have you looked at Digilent's products? They make Xilinx FPGA starter boards. Perhaps it would be simpler/cheaper to design a daughter board that has ADCs, DACs, whatever, than to design a FPGA board from scratch.
What sort of speed of signals are you anticipating on your board? This will have a great effect on whether you have a productive or painfully fruitless learning experience.
Maybe it would be better to knock up a few small boards with some discretes on first. That way you are more likely to learn about the design/manufacturing process, without making expensive mistakes. You could even do this purely as a paper exercise. Draw the schematic of a circuit, then cut out some component shapes from card. Position the shapes on a piece of paper the way you think they would best fit. Then draw a few interconnecting lines, and see if you can route them by hand.
FWIW, we have in the past prototyped parts of systems using prefabricated PCBs from Bellin Dynamic Systems
formatting link
They stock a wide variety of break-apart cards with different IC footprints and surrounding pads that make it quite simple to build up quick prototype circuits.
As a first step, consider taking an off-the-shelf board which (a) is a reasonably close match (only some peripherals you need are missing) and (b) has spare I/O connectivity.
As an example, see the spare connectors on this board
formatting link
(If I have misjudged your requirements, there are other boards, from this and other suppliers, with much more I/O to play with...)
Now design a circuit board containing ONLY the missing peripherals, to connect to the available I/O headers.
The cost, complexity and risk are much lower with this approach, and you still end up with a solution tailored specifically to your needs. If it matters, your customers cannot simply buy the original board and bypass you either...
If this means you can get away with a small two-layer or four-layer board instead of a large complex 6 or 8-layer board, it greatly increases your chances of first-time success.
It also means you are within the realm of low-cost prototyping services, like PCB123.com, who offer a crude but very usable PCB layout tool for free. The catch: it is only programmed to submit board designs to pcb123.com!However, given their prices and delivery speeds, that is not much of a catch.
(Incidentally PCB123 is usable with SMT devices including QFP package FPGAs, but not realistically for larger BGA packages, because it imposes restrictions on minimum via size that will not fit between 1mm BGA pins. So it will do your add-on board, but possibly not your complete FPGA board. Also the schematic editor is not very useful. I used it on a simple design, and edited the resulting netlist to generate a more complex design)
Combining the whole solution on to a single board can come later, but depending on the economics it may not be necessary.
I looked at Digilent's products and their A/D and D/A sampling frequencies do not meet my requirements, I need about 50-100MHz. In fact, I have looked at companies which offer FPGA based boards that can fit daughter cards. Very few of them really match my needs. And the ones that accomodate all my requirements are expensive. Thats why the move to designing custom boards. We figure, the initial investment might be a little heavy but it will prove to be better in the long run.. I like both ideas from John and Brian, it will probably be the best option instead of designing a whole board from scratch. But before getting into all that, I will design some small boards, hopefully learn how not to make expensive mistakes.
Thank you all for all the suggestions. They have been very helpful to me.
I second this recommendation. It's got a lot of useful concepts, though the book is a bit too cookbook-y for my taste.
The most useful PCB design material, I've found, has been manufacturer datasheets and app notes. (For my first time designing an FPGA board, I found dev board schematics to be very useful.) In particular, Analog Devices has a lot of material on board design considerations for data conversion. You'll probably find yourself reading lots of app notes on various associated topics, like power regulation.
And yes, making (cheap) mistakes is a great way to learn.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.