FPGAs

FPGAs
Although the term is well established, Field Programmable Gate Array (FPGA) is actually something of a misnomer as its internal structure bears very little resemblance to a true Gate Array. In the early days of FPGAs when Gate Arrays were commonly used devices, the term was coined as a way of establishing some market credibility for the new products.

Today, Gate Arrays have all but disappeared, ASICs are used by fewer and fewer companies and FPGAs have become a well established way to design custom logic. Another common term is Complex Programmable Logic Device (CPLD). The primary differences between the two types of device are: FPGAs are typically larger, require configuration at power-up and internal timing is a function of layout. In contrast, CPLDs tend to be smaller and have predictable internal timing.

FPGA Vendors
Without a doubt the two leading FPGA / CPLD vendors are Altera and Xilinx with Actel running a close third. Octera has an established partnership with Altera. This relationship provides us access to advance information and allows us special access to internal Altera resources.

FPGA SERDES
Another component of embedded IP found on modern FPGAs is multiple SERDES (Serializer / Deserializer). These are mainly analog design blocks that are used for all the various high speed serial data communication protocols such as: PCIe, FibreChannel 1, 2 and 4Gig, SATA 1 and 2 and SAS in storage, Advanced Switching (AS), Serial RIO 1 and 2 (used mainly to talk to high-performance DSPs) and Infiniband (found almost exclusively in high-end servers).

All of these protocols use one of two encoding techniques to embed the clock and data into a serial data stream - these are 8b/10b or 64/66. As an FPGA designer you probably don't need to worry about the details of these encoding techniques, but knowledge of them becomes more important when shifting to ASIC technology. High speed serial protocols are rapidly replacing high speed parallel buses such as PCI and PCI-X as they offer higher performance and many fewer pins to connect. However, good board design is vital when routing these high speed (1-10GHz) signals.

FPGA IP
Arguably, no area creates more problems in FPGAs than the use of Intellectual Property (IP). Realistically, the days of designing complex FPGAs from the ground up are over. It can be done, but it is likely a huge waste of engineering time and ultimately far more expensive than paying for pre-designed code. For this reason your design will almost certainly use some form of IP.

Common types of bought IP include:

  • PCI and its variants
  • DDR variants
  • Reed Solomon Encoder and Decoders
  • Processor cores
  • Processor peripherals: UARTs, I2C, CAN
  • DSP functions: FFT, Viterbi
  • More complex communication protocols such as Fibre Channel, PCIe, Advanced Switching
  • More complex sub-systems such as processor peripherals, modulator / de-modulator designs

Seizing the opportunity to purchasing quality IP rather than attempting to re-invent the wheel is one of the most critical decisions that today's FPGA designers can make. As an example, it not uncommon for a company to decide to allocate four man-months of resources to develop the equivalent of a piece of IP that can be purchased for under $10K. As a conservative estimate, that would equal a total cost to the company of $40K not to mention the added delay and uncertainty of creating the complex code. The key phrase is, of course, 'quality IP'. How do you know in advance if IP is quality or not? The best answer is to find someone who has already used it and ask them about their experience. If that is not possible, look for a 'try-before-you-buy' evaluation copy.

Many companies will allow you to use the IP for 30 days on an evaluation license basis, trusting you to destroy the copy if you decide not to use it. Good IP comes with documentation, a test bench and technical support. FPGA IP is generally much lower cost than ASIC IP - the FPGA vendors subsidize the price as it helps win designs for their silicon. All the same, expect to pay $5-100K depending on the complexity of the product and the type of license you are requesting.

Typically you can buy:

  • Source code or Netlist (source code being roughly twice the price)
  • A single use license
  • A single site license (unlimited uses)
  • A global license (unlimited uses)

There is a level of trust when an IP vendor sells you code, that you are going to use it in the manner you have stated. Finally, if you are going to use a Design Services company most IP vendors will allow you to share the code with them, but you should check with them before doing so.

FPGA tools
All FPGA vendors supply their own tools, most of which can be used to complete a full design. These tools range from fairly inexpensive to free. Altera provides the Quartus tool suite which performs all of the steps from design synthesis through programming of the device. Our partnership with Altera provides us with frequent and up-to-date training on the Quartus tool suite and special access to Altera's internal team for help in resolving tool issues.

Copyright 2015 Octera Corporation.