When Xilinx offers a family of different sized parts in the same package, they make sure the dedicated pins such as power, ground, configuration and JTAG are located on the same pins for each of the parts. These different parts are referred to as having a common footprint. In some families such as the Virtex 2, Xilinx made the pinout of the FG456 package a subset of the larger FG676. Essentially, if you add two rows of pins around the FG456 pinout you create the FG676 pinout. This technique is discussed further in the Xilinx Xcell article, Footprints in Silicon. With the dedicated pins already matched, you as an FPGA designer, must focus on making the user IO assignments match across the parts in your migration path.
From the PCB layout point of view, you must create a layout symbol for your footprint that contains the union of pad locations from each part that fits your footprint. In the case of this image, your layout symbol needs to have locations for all the green pads and all the red pads. At the schematic level, an additional constraint must be met. We need the ability to distinguish which IO pins are available in all the supported parts (the green pins) and which IO pins are only connected on a subset of the total group (the red pins).
We used the Oleda Migration Planner to identify the pins common to the FG456 and FG676 packages for the Virtex 2 family and create this image.
This article assumes that your are familiar with Oleda's Symbol generator. Creating a set of heterogeneous symbols for multiple parts adds only one additional step to the Oleda tool flow. When you click on 'Configure Symbol Set' from the main screen, you are asked to choose between creating a symbol only for the design's current part-package combination, or creating a symbol set for the parts that share a common pinout with that part.
Choosing to support multiple parts will launch the following applet:
This applet allows us to create customized text for the pins on our symbols. The description gets rather confusing, so to see where we are headed, jump down to the end. Once you see the end, the steps in the middle will begin to make more sense.

Supporting common-footprint parts is a way to maintain the ultimate in flexibility throughout your product lifetime. Careful choice of IO assignments can gain additional options when expanding features, reducing cost or add purchasing flexibility over your product lifetime. Manually supporting these options can be tedious and error-prone. Oleda tools simplifies the process through the planning, implementation and documentation phases of your design.
| ©2004-2005 Oleda Technologies | 978-223-2213 |