Ground trampolines and Phase Locked Loops

A customer was using the UPduino v2.1 low-cost Lattice iCE40 FPGA board in their prototype to check out some IP in the FPGA. This IP required the use of a Phase Locked Loop (PLL) within the FPGA to generate specific frequencies that the design required.

The customer reported that the FPGA PLL was going out of lock intermittently.


Phase locked loops are useful blocks (and there is one in the Lattice iCE40 UP5K FPGA) used to generate specific clock frequencies that may not necessarily be an integer multiple of a reference clock. The principle of operation is covered very well in this Wikipedia article.

The UPduino 2.1 is a low cost FPGA board thats designed for fast prototyping. The board has a couple of voltage regulators, an FT232H USB to SPI bridge, flash for FPGA code storage and supporting passives. The board is laid out on 2 layers.


Test Case

I was able to duplicate the failure mode on my setup which consisted of an UPduino connected to the customers test board. By a process of elimination, I was able to get the PLL to fail with an FPGA design consisting of the PLL, an output clock from the PLL, a GPIO input and an LED output from the FPGA. This rather minimal design exhibited the symptoms described by the user in a significantly more complex design.

On to Debug

Now that I had the test case, it was time to delve deeper: why would such a simple design cause the PLL to lose lock and that too by toggling a switch to the FPGA! This strange behavior was also not consistent: pushing the switch would intermittently cause the PLL to go out of lock. There didn't appear to be any pattern to the behavior either.

I was also able to eliminate the customer board as the source of the issue. I checked all DC power supplies on the UPduino and customer board with a multi-meter, things looked good. Searching online gave me a hint on what to pursue next, (isn't information sharing a wonderful thing!) ie. clock quality and board layout.

From my experience, I knew that PLL's were finicky analog creatures and had to be cared for by low jitter input clocks and proper filtering of the power supply.

A simple change I made was to source a clean 12MHz clock from an external crystal instead of using the on-board resonator which has poor phase noise in comparison. This seemed to reduce the probability of PLL unlocking but didnt make the issue go away.

Power and Ground

The dedicated power supply on the PLL and the ground near it looked good with about 10-15mV of digital noise, not too bad. Its important to follow proper probing guidelines when making such measurements!

I probed the DC voltages and noticed a substantial noise of >50mV or so on the supplies. This was significantly reduced by adding 10uF caps on the LDO's. However, this didnt seem to improve the probability of the PLL losing lock.

I then measured the ground plane from one end of the board to the other. I was shocked to see huge spikes on the ground plane! This meant that the various circuits on the board had a different view of what they considered a reference.

The UPduino is a small board, about 2.2cm x 5.1cm. Having the ground plane be different by hundreds of mV across such a small board, that too with such a simple design on the FPGA, not consuming much power seemed to indicate something was very wrong!

I analyzed the board layout in Eagle and noticed that the Ground plane was routed on the bottom side as follows:

The solid filled areas are the ground plane in the above picture. As you can see, the ground plane is split into multiple discrete sections, never a good idea! This gave me a good idea of what to try next. I used copper braid to short across various sections of the ground plane and was able to get the noise down significantly. More importantly, this correlated well with a decreasing probability of the PLL failing to lock. A good indication that I was on the right track.

Unfortunately, all the hacking was not able to restore a reliable PLL lock on this board. Needless to say, the customer was unable to use this board for their design as the board design was to blame.

Next Steps and a New Beginning!

I had inherited the design from the original manufacturer/designer. This experience, as well as the feedback from users about various features missing from the UPduino, got me thinking about coming up with the next generation of the board.

UPduino 3.0!

I kicked off the next generation: the UPduino 3.0, with a goal of not just fixing the layout but adding significant features as documented on this GitHub site.

The ground plane on the UPduino 3.0 is a solid plane with no cuts. This was a hard requirement on the layout. The power plane does have some cuts but shouldn't be too significant as shown in the plots below. A detailed review was done to ensure that power and grounds had sufficiently thick traces and decoupling caps were placed close to the pins being decoupled. A 0.1uF/4.7uF capacitor combination was settled on as a standard decoupling strategy. Going to a 4 layer board made the design implementable: it was clear during routing of this board that the original design with 2 layers was simply not feasible and a bad design choice in the first place. The extra cost of going to 4 layers vs. 2 layers was simply not worth the risk.

UPduino 3.0 ground plane

UPduino 3.0 power plane

The first version of the design is now complete and will be fabricated soon with a high expectation that the PLL will lock!

If you would like to be involved, please feel free to browse Discourse and/or join the Discord channel!



    شركات نقل العفش بجدة
  • شركة ريلاكس لنقل العفش والاثاث شركة نقل عفش بالطائف شركة نقل عفش بالرياض شركة نقل عفش بجدة شركة نقل عفش بمكة شركة نقل عفش بالمدينة المنورة شركة نقل عفش بخميس مشيط شركة نقل اثاث بابها شركة نقل عفش بنجران ِشركة نقل عفش بحائل شركة نقل عفش بالقصيم شركة نقل عفش بالباحة

    شركة ريلاكس لنقل العفش والاثاث
  • شركة كيان لنقل العفش بالرياض والمدينة المنورة وجدة ومكة والطائف والدمام تقديم لكم دليل كامل لشركات نقل العفش بالمملكة العربية السعودية شركة كيان لنقل العفش منتدي نقل العفش شركة نقل اثاث بالرياض شركة نقل اثاث بجدة شركة نقل اثاث بمكة شركة نقل اثاث بالطائف شركة نقل اثاث بالمدينة المنورة شركة نقل اثاث بالدمام شركة نقل اثاث بالخبر شركة نقل اثاث بالظهران شركة نقل اثاث بالجبيل شركة نقل اثاث بالقطيف شركة نقل اثاث بالاحساء شركة نقل اثاث بالخرج شركة نقل اثاث بخميس مشيط شركة نقل اثاث بابها شركة نقل اثاث بنجران شركة نقل اثاث بجازان شركة نقل اثاث بعسير شركة نقل اثاث بحائل

    شركة كيان لنقل العفش
  • نقل عفش شمال الرياض شركات نقل عفش بخميس مشيط شركة نقل العفش بخميس مشيط شركات نقل اثاث بخميس مشيط افضل شركات نقل اثاث بخميس مشيط شركات نقل اثاث بخميس مشيط نقل عفش جدة نقل عفش من جدة الي الاردن اسعار شركات تنظيف خزانات بجدة نقل عفش من جدة الي مصر نقل عفش من جدة الي لبنان شركات نقل اثاث بجدة افضل شركات نقل اثاث جدة شركات نقل العفش بينبع شركة نقل عفش في الطائف شركات نقل العفش طرق نقل العفش خطوات نقل العفش والاثاث افضل 10 شركات نقل عفش اختيار شركات نقل العفش والاثاث شركة تنظيف منازل بالطائف شركة تنظيف شقق بالطائف شركة تنظيف فلل بالطائف

    نقل عفش شمال الرياض
  • نقل عفش بحفر الباطن اسعار شركات نقل العفش بمكة نقل اثاث بمكة 2017 كيفية نقل العفش بمكة اهم شركات نقل العفش بمكة افضل شركة نقل عفش بمكة اسعار شركات نقل العفش بجدة نقل اثاث بجدة 2017 كيفية نقل العفش بجدة اهم شركات نقل العفش بجدة افضل شركة نقل عفش بجدة اسعار شركات نقل العفش بينبع نقل اثاث بينبع 2017 كيفية نقل العفش بينبع اهم شركات نقل العفش بينبع افضل شركة نقل عفش بينبع اسعار شركات نقل العفش بالمدينة المنورة نقل اثاث بالمدينة المنورة 2017 كيفية نقل العفش بالمدينة المنورة اهم شركات نقل العفش بالمدينة المنورة افضل شركة نقل عفش بالمدينة المنورة اسعار شركات نقل العفش بالرياض نقل اثاث بالرياض 2017 كيفية نقل العفش بالرياض اهم شركات نقل العفش بالرياض افضل شركة نقل عفش بالرياض

    شركات نقل العفش بجدة

Leave a comment