Unit 5
Circuit Design using CPLD and FPGA
A CPLD contains a bunch of PLD blocks whose inputs and outputs are connected by global interconnection matrix. So, a CPLD has two levels of programmability, each PLD block can be programmed, and then the interconnections between the PLDs can be programmed.
An FPGA takes a different idea. It has a clump of simple, configurable logic blocks arranged in an array with interspersed switches that can rearrange the interconnections between the logic blocks. Each logic block is individually programmed to perform a logic function such as AND, OR, XOR, etc. and then the switches are programmed to connect the blocks so that the complete logic functions are implemented.
Key takeaways:
The number of logic blocks, an FPGA can contain around 100,000 logic blocks while a CPLD only contains thousands.
CPLD — Complex PLD that consists of an arrangement of multiple SPLD-like blocks on a single chip.
A CPLD comprises multiple circuit blocks on a single chip, with internal wiring re sources to connect the circuit blocks. Each circuit block is like a PLA or a PAL; An example of a CPLD is shown in Figure
It includes four PAL-like blocks that are connected to a set of interconnection wires. Each PAL-like block is also connected to a subcircuit labelled block, which is attached to severalof the chip's input and output pins.
Figure shows an example of the wiring structure and the connections to a PAL-like block in a CPLD. The PAL-like block includes 3 macrocells each consisting of a four-input OR gate the real CPLDs usually provide between 5 and 20 inputs to each OR gate. The OR-gate output is connected to another type of logic. It is called an Exclusive-OR (XOR) gate. The behaviour of an XOR gate is the same as for an OR gate except that if both inputs are 1, the XOR gate produces a 0.
Figure 1. CPLD
FPGAs comprise an array of uncommitted circuit elements, called logic blocks, and interconnect resources, but FPGA configuration is performed through programming by the end user. An illustration of a typical FPGA architecture appears in Figure. As the only type of FPD that supports extremely high logic capacity, FPGAs have been responsible for a major shift in the way digital circuits are designed.
Figure 2. FPGA
Key takeaways
Field-Programmable Gate Array is an FPD featuring a general structure that allows very high logic capacity. Whereas CPLDs feature logic resources with a wide number of inputs (AND planes).
Figure 3: Configurable Logic Block Architecture
Figure 4.Interconnect
Figure 4 shows the generic structure of an FPGA fabric. FPGA Architectures 107 The interconnection system of an FPGA is one of its most complex aspects because wiring is a global property of a logic design
Input Output Block
Key takeaways:
In interconnect wires to connect inputs and outputs to logic blocks
Transistors are used to turn on or off connections between different lines. There are also several programmable switch matrices in the FPGA to connect these long and short lines together in specific, flexible combinations. Three-state buffers are used to connect many CLBs to a long line, creating a bus.
Figure 5. Switch matrix
Key takeaways:
Switch matrix realizes the interconnection logic of the FPGA by configuring so-called PIPs.
Figure 6.General strucrture of FPGA fabric
Figure 6 shows the basic structure of an FPGA that incorporates these three elements. The combinational logic is divided into relatively small units which may be known as logic elements (LEs) or combinational logic blocks (CLBs). The LE or CLB can usually form the function of several typical logic gates but it is still small compared to the typical combinational logic block found in a large design. The interconnections are made between the logic elements using programmable interconnect. The interconnect may be logically organized into channels or other units. FPGAs typically offer several types of interconnect depending on the distance between the combinational logic blocks that are to be connected; clock signals are also provided with their own interconnection networks. The I/O pins may be referred to as I/O blocks (IOBs). They are generally programmable to be inputs or outputs and often provide other features such as low-power or high-speed connections.
Key takeaways:
An FPGA is an integrated circuit (IC) that can be programmed for different algorithms after fabrication
- High-performance
- Endurance of 10,000 program/erase cycles
- Program/erase over full commercial voltage and temperature range
- Enhanced pin-locking architecture
- Flexible 36V18 Function Block
- Slew rate control on individual outputs - User programmable ground pin capability
- Extended pattern security features for design protection
- High-drive 24 mA outputs
- 3.3V or 5V I/O capability
Figure 7. Xilinx 9500 series
MAX 7000 family devices are combined into groups known as logic array blocks. In order to build complex logic circuits, the macrocell is supplemented product terms. The MAX 7000 family provides programmable speed/power optimization. The features of this family of CPLDs are, 1) High-performance second-generation MAX architecture, 2) Built-in JTAG boundary-scan test, 3) Complete EPLD family, 4) Programmable macrocell flip-flops with individual controls and 4) Programmable power-saving mode in each macrocell.
The MAX 7000 macrocell configured for sequential and combinational logic operation. In MAX 7000 macrocell the combinational logic is implemented in the logic array and provides five product terms per macrocell. Here, logic is routed between logic array blocks to programmable interconnect array.
Signals required by each logic array block are routed from the programmable interconnect array into the logic array block. EEPROM cell controls one input to a 2-input AND gate, and selects a programmable interconnect array signal to drive into the logic array block. The I/O control block for the MAX 7000 family leads to I/O pin configuration for input, output, or bidirectional operation. The I/O pins has tri-state buffer to control global output signals. The I/O control block of devices has two global output enable signals.
Figure 8.Altera-FLASH-logic-CPLDs
Key takeways:
The I/O control block for the MAX 7000 family leads to I/O pin configuration for input, output, or bidirectional operation.
Figure 9. Xilinx Spartan 4000 archirtecture
Features:
2 Four-input function generators (Look Up Tables) 1 Three-input function 2 Registers: - Pos. or Neg. edgetrig. Synchronous and asynchr. Set/Reset Possible functions: - any fct of 5 var. - two fcts of 4 var. + one fct of 3 var. - some fct of 9 var.
Implement the following functions on a single CLB of the XC4000 FPGA: X = A’B’ (C + D) Y = AK + BK + C’D’K + AEJL
Key takeaways:
The Xilinx XC4000E family includes three major configurable elements: configurable logic blocks (CLBs), input/output blocks, and interconnects
References:
Fundamentals of Modern VLSI Devices Book by Tak H. Ning and Yuan Taur
Introduction to VLSI systems Book by Carver Mead
VLSI physical design automation Textbook by Sadiq Sait
Cmos Digital Integrated Circuits Book by Sung-Mo Kang and Yusuf Leblebici