Quote:
Quote:
The smaller package that I recommended, the VQG100 package, provides significantly fewer I/O, but it does provide the potential to upgrade the FPGA. The TQG144 package provides more potential I/O but only supports the 50kgate FPGA.
Not quite sure what you mean by this? I see capacities of 50k, 100k, 200k and 250k gates in VQG100.
I thought I was replying to your question regarding the Spartan 3AN FPGA family. There are a number of FPGAs as you correctly indicate within each family that are pin compatible within a package.
That is, the XC3S50A-xVQG100 and the XC3S200A-xVQG100 are drop in replacements. This also applies to the other Spartan 3 FPGA families. One thing to keep in mind is that drop-in replacement only applies across members of the same family. Across Spartan 3 families there is not a drop-in replacement capability. For example, substitution of an XC3S50-xVQG100 for an XC3S50A-xVQG100 is not possible. There are a number of pin-out differences between several of the five Spartan 3 families. The exception is that Spartan 3A and Spartan 3AN are compatible because the FPGA in the Spartan 3AN is a Spartan 3A. (The Spartan 3A DSP is an outlier. Its two members are enhanced extensions of the Spartan 3A family.) There are some minor differences that have to be considered, and these are related to I/O pins that are used for accessing the on-board SPI SEEPROM on the Spartan 3AN and not on the Spartan 3A.
Thus, holding to my recommendation regarding the Spartan 3A, only the VQG100 provides drop-in replacement capability between the 50k and 200k parts.
For the Spartan 3, the VQG100 package also provides the same number of drop-in replacement options as in the Spartan 3A family. The very useful TQG144 package does not offer any drop-in replacement capabilities in the Spartan 3A family, but it is compatible (except as noted above) with the Spartan 3AN 50k part. The Spartan 3 and Spartan 3E have three drop-in parts in the TQG144 package. The Spartan 3E family offers a larger selection of drop-in replacements in several packages: VQG100, TQG144, and the PQ208 (everyone's favorite Spartan II package).
The most flexible package of all, in terms of drop-in replacement options, appears to be the 256-ball fine-pitch (1mm) BGA package. In the Spartan 3A family, this package provides access to every member of the family. If the application I/O is restricted to that of the 144 I/O pins of the XC3S50A-xFTG256 FPGA, then drop-in replacements ranging from 50k ($9.71) to 1400k ($45.42) are available.
With a manageable amount of difficulty, I can solder the 0.5mm fine pitch parts represented by the VQG100 and TQG144 packages. I am not inclined to personally attach BGA packages to my boards. So for a hobby project, I stand by my recommendation to use the VQG100 package. Whether the Spartan 3, Spartan 3E, or Spartan 3A FPGA families are used is not at issue. I have personally used both the Spartan 3A and Spartan 3AN parts. Since they were older families, I have never used the Spartan 3 or Spartan 3E FPGAs. Any member of the Spartan 3 families is a very capable FPGA.
The newer Spartan 6 FPGAs should also enter into the discussion. EEyE and Arlet have demonstrated some pretty cool stuff on their Spartan 6 implementations. The architectural differences between the Spartan 3 and Spartan 6 are significant. Of particular benefit is the input and output delay controls that Arlet has discussed as being useful for data and clock alignment. The deeper/wider internal look-up tables are also useful in reducing the depth of combinatorial logic.
I am focused on the Spartan 3A because it has the VQG100 package available. The smallest QFP package currently available for the Spartan 6 is the TQG144 package. I am interested in some space constrained applications. A uBGA or fine pitch BGA may be acceptable, but during the initial design exploration phases, I will stick with the VQG100 package.