Sunday, November 30, 2025

Taking FEDEVEL's Advanced PCB Layout Course

As part of a hobby project I'm designing a PCB that will include a Xilinx Zynq-7000 System-on-Chip and a DDR3L SDRAM. Both of these come in ball-grid array (BGA) packages with balls on a 0.8mm grid. This is my first attempt at a PCB using BGAs, but more critically, it's my first attempt with high-speed DRAMs.

I'm fairly confident, but at the same time I'm a little bit intimidated.

Twenty-some years ago I worked with a team to design and bring up a high-speed TCP/IP router for use in cellphone base stations. The data path was based on a rather strange Intel network processor chip that did 3-way interleave with three Rambus DRAM chips. Three experienced electronics engineers designed the hardware while a coworker and I implemented bootloaders and embedded Linux operating systems. A third party did the final PCB layout.

When we got the boards only two of the three RDRAM banks worked. The third just didn't want to cooperate. An Intel field application engineer came on site and worked with our EEs for weeks to identify the problem. Finally it was determined that the problem was that the characteristic impedance of the tracks between the CPU and the RDRAM chips was out of spec. 

We did some magic in the bootstrap software to disable the third RDRAM interface and made the board work using only two, but we lost a third of our RAM capacity and some speed in the process.

As an experienced embedded software engineer my reaction to this huge debacle was, "What does 'characteristic impedance' mean?"

Since then I've learned a bit (okay, a lot) about electronics and signal propagation. The problem with mismatched impedance is that it generates reflections, and generally degrades the integrity of the signals. The two RDRAM chips closest to the CPU could tolerate the signal integrity degradation this mismatch caused, but the signals to the farthest chip were just too degraded to work.

Now that I'm setting out to design a board with DDR3L SDRAM, this 20 year old experience has fresh import. While my PCB won't cost anything close the roughly $15,000 (in 2025 dollars) each of the router boards cost, having to respin the board would still be costly in hobbyist terms. (I'm estimating $300 for two, assuming a certain politician doesn't throw another hissy fit).

Rather than make an easily avoidable mistake, I've been learning what I can about this sort of design. Some of the Youtube videos I've found very informative were made by FEDEVEL, a company that offers training classes on embedded electronics design. After giving it a couple of weeks of thought I decided to register for their Advanced PCB Layout Course.

Although they offer a few courses aimed at the hobbyist, this is not one of them. I was a bit unsure whether I had the prerequisite skills I'd need to get anything out of it, but I have been designing digital PCBs for a few years now and I thought it would be worth the risk.

This course is structured as seven lessons, each lasting about two hours each. With the (cheapest) package I purchased, I get access to a new lesson online at the rate of one per week, and are available for 10 weeks with the option to extend that for a month. At the time I'm writing this I'm a quarter of the way through lesson two.

A few observations:

  • I'll repeat here: this is not a course for the beginner hobbyist. If that's you, consider the KiCad for Makers course instead. It's only $80, rather than the $232 I paid for this class.
  • This instructor, Robert Feranec, speaks English with a pronounced accent. However, he clearly enunciates his words and speaks slowly enough that I'm having very little trouble understanding him. It's rare that I need to turn on the closed captioning to understand specific words. He's also consistent, so once I understand an odd pronunciation (for example, he pronounces "button" as "boo-ton", and "module" as "model") I don't have trouble understanding that word again.
  • Closed captioning for this course is available in eight languages, including English. Oddly, neither French nor German are among them -- I guess those folk are assumed to be able to understand English?
  • The course assumes you are using Altium Designer to design the PCB. Altium is not cheap: a one-year subscription for the Standard edition is nearly $4,000. I use KiCad, which is free, but the user interface is different.
  • The instructor offers helpful tips on how to use Altium to assist in the design. Many of these translate well to similar or equivalent capabilities in other CAD tools like KiCad, if you know the tool. If you don't have familiarity with your CAD tool these may be lost on you.
  • Lesson Two briefly addresses board stackups, and the instructor configures a board with a 10-layer stackup. For reference, a 2-layer, 100mm x 100mm board from JLCPCB is currently priced at $2, while a 10-layer board of the same size would be nearly $200.
  • Similarly, he recommends using microvias a lot. Valuable advice if you're a professional designer (and someone else is paying for the boards), but microvias can be expensive and many fab houses that cater to hobbyists don't offer them.

At this point, barely into the second lesson, much of what has been presented has been review for me but there are enough nuggets of new information mixed in that I'm finding the course useful. This gives me a bit of confidence. I expect the ratio of review to new info will shift as we get deeper into the course.

I'll post updates as I progress through the course.

No comments:

Post a Comment