In the not-so-distant past, it was relatively easy to categorize different types of integrated circuits into well-defined "buckets." For example, we had memory ICs, microprocessors (MPUs), microcontrollers (MCUs), ASICs, ASSPs, SoCs, and of course, FPGAs.
As we've discussed elsewhere on All Programmable Planet, early FPGAs offered only a relatively small amount of fundamental programmable fabric. These devices were of interest for tasks such as gathering "Glue Logic" or implementing simple state machines. Of course, it wasn't long before more sophisticated FPGA architectures began to appear. These devices augmented the traditional programmable fabric with blocks on on-chip RAM, DSP functions, high-speed serial interconnect, and a host of other capabilities.
Over the years, FPGAs saw dramatic increases in terms of capacity and performance. Most recently, with the introduction of their 7 Series families implemented at the 28nm process node, the folks at Xilinx have changed the programmable landscape with new device classes known as All Programmable FPGAs, SoCs, and 3D ICs.
The question I'm now being asked -- almost on a daily basis -- is "When should I use which type of All Programmable Device?" Fortunately, I have the answers at my fingertips (did you ever doubt me?).
When should I use an All Programmable FPGA?
This is an easy one. Let's assume that the main thing you are looking for is the ability to perform pure algorithmic data processing, such as digital signal processing (DSP). Let's also assume that even if you do need a processor, it doesn't have to be an applications-level processor running a full-blown operating system or anything of that ilk -- just a processor that can perform general-purpose decision making, housekeeping, control, and processing tasks.
In this case, an All Programmable FPGA provides the ideal solution. These devices offer large amounts of traditional programmable fabric, large quantities of on-chip RAM, and large numbers of DSP slices/functions. All Programmable FPGAs also provide large numbers of general-purpose inputs/outputs (GPIOs) and large numbers of hi-speed serial interconnects, thereby allowing humongous amounts of data to be brought on-chip, processed, and sent off-chip at extreme speed. If a general-purpose processor is required as part of the design, then one or more 32-bit MicroBlaze soft cores can be implemented in the programmable fabric.
When should I use an All Programmable 3D IC?
As I discussed in a recent article, the current state-of-the-art in 3D IC technology is an active-on-passive system-in-package (SiP) using a silicon interposer and through-silicon vias (TSVs). The idea here is that we place a (passive) silicon interposer layer between the SiP substrate and the (active) silicon dice. The tracks on the silicon interposer's topside and backside metal layers (there can be multiple metal layers in both cases) are created using the same processes as the tracks on the silicon chips, which means they transport signals just about as fast as is possible. The metallization layers on the silicon interposer's upper and lower surfaces are connected using the TSVs.
In the context of 3D IC FPGAs, the term "homogenous" refers to having multiple identical FPGA dice mounted on the silicon interposer. In this case, the current state-of-the art is the Virtex-7 2000T All Programmable FPGA from Xilinx. This little rascal involves four FPGA dice attached to the silicon interposer, which supports ~10,000 ultra-high-speed connections between adjacent dice.
The Virtex-7 2000T has four FPGA dice in the same package.
At the time of this writing, the Virtex-7 2000T is currently the world's highest-capacity programmable logic device -- it contains 6.8 billion transistors, providing designers with access to 2 million logic cells, which is equivalent to 20 million ASIC gates.
As opposed to "homogenous," the term "heterogeneous" refers to having dissimilar dice mounted on the silicon interposer. In this case, the current state-of-the art is the Virtex-7 H580T All Programmable FPGA from Xilinx. This little scamp comprises 2X FPGA dice and 1X 8-channel 28Gbps transceiver die in the same package (the forthcoming Virtex-7 H870T will boast 3X FPGA dice and 2X 8-channel 28Gbps transceiver dice in the same package).
The Virtex-7 H580T has two FPGA dice and one 8-channel 28Gbps transceiver die in the same package.
Featuring up to 16 28Gbp/s and 72 13.1Gbp/s transceivers, Virtex-7 HT devices deliver mind-boggling bandwidth, making them incredible single-package solutions for addressing key Nx100G and 400G line card applications and functions. The sort of thing we're talking about here is the ability to perform tasks like real-time packet-processing and traffic management in the programmable fabric. Once again, one or more 32-bit MicroBlaze soft cores can be implemented in the programmable fabric to perform tasks like configuration management and control plane management.
In addition to applications like system integration and ASIC replacement, All Programmable 3D ICs are also ideal for ASIC prototyping and emulation. As I mentioned in a recent column, a great example of this is the recently announced HAPS-70 series of prototyping systems from Synopsys. The HAPS-70 series is incredibly modular. Each system comprises one or more boards, where each board carries one Virtex-7 2000T.
A HAPS-70 S48 ASIC prototyping system featuring Virtex-7 2000T All Programmable 3D ICs.
The HAPS-70 S12 boasts one board and provides the equivalent of 12 million ASIC gates (traditionally 2-input NAND gates); the HAPS-70 S24 boasts two boards providing 24 million equivalent gates; the HAPS-70 S48 boasts four boards providing 48 million equivalent gates; and three HAPS-70 S48 units can be combined to create a HAPS-70 S144 providing 144 million equivalent gates.
To Page 2 >