33
Architecture of CPLD and FPGA Prof. Anish Goel CPLD and FPGA Prof. Anish Goel

Cpld fpga

Embed Size (px)

Citation preview

Page 1: Cpld fpga

Architecture of CPLD and FPGA

Prof. Anish Goel

CPLD and FPGA Prof. Anish Goel

Page 2: Cpld fpga

PLD Problems by Using Basic Gates Many components on PCB: As no. of components rise, nodes interconnection complexity

grow exponentially Growth in interconnection will cause increase in interference,

PCB size, PCB design cost, and manufacturing time

CPLD and FPGA Prof. Anish Goel

Page 3: Cpld fpga

PLD The purpose of a PLD device is to permit elaborate digital logic

designs to be implemented by the user in a single device.

Can be erased electrically and reprogrammed with a new design, making them very well suited for academic and prototyping

Types of Programmable Logic Devices SPLDs (Simple Programmable Logic Devices)

ROM (Read-Only Memory) PLA (Programmable Logic Array) PAL (Programmable Array Logic) GAL (Generic Array Logic)

CPLD (Complex Programmable Logic Device) FPGA (Field-Programmable Gate Array)

CPLD and FPGA Prof. Anish Goel

Page 4: Cpld fpga

PLD The first three varieties are quite similar to each other: They all have an input connection matrix, which connects the

inputs of the device to an array of AND-gates. They all have an output connection matrix, which connect

the outputs of the AND-gates to the inputs of OR-gates which drive the outputs of the device.

The gate array is significantly different and will be described later.

CPLD and FPGA Prof. Anish Goel

Page 5: Cpld fpga

PLD The differences between the first three categories

are these: In a ROM, the input connection matrix is hardwired. The

user can modify the output connection matrix. In a PAL/GAL the output connection matrix is hardwired.

The user can modify the input connection matrix. In a PLA the user can modify both the input connection

matrix and the output connection matrix.

CPLD and FPGA Prof. Anish Goel

Page 6: Cpld fpga

General structure of PLDs.

CPLD and FPGA Prof. Anish Goel

Page 7: Cpld fpga

(a) Before programming. (b) After programming.

Programming by blowing fuses.

CPLD and FPGA Prof. Anish Goel

Page 8: Cpld fpga

OR - PLD Notation

CPLD and FPGA Prof. Anish Goel

Page 9: Cpld fpga

AND - PLD Notation

CPLD and FPGA Prof. Anish Goel

Page 10: Cpld fpga

PROM Notation

CPLD and FPGA Prof. Anish Goel

Page 11: Cpld fpga

Using a PROM for logic design

(a) Truth table. (b) PROM realization.CPLD and FPGA Prof. Anish Goel

Page 12: Cpld fpga

3 Input PLA…Implement f1 = A.B + A.C + B.C

And

f2 = A. B.C

Using the givenPLA circuit

Inputs

Outputs

AND array

OR array

CPLD and FPGA Prof. Anish Goel

Page 13: Cpld fpga

Function Implementation using PLA..Inputs

Outputs

AND array

OR array

A B C

f1 f2

CPLD and FPGA Prof. Anish Goel

Page 14: Cpld fpga

A simple four-input, three-output PAL device.

CPLD and FPGA Prof. Anish Goel

Page 15: Cpld fpga

An example of using a PAL device to realize two

Boolean functions. (a) Karnaugh maps. (b) Realization.

CPLD and FPGA Prof. Anish Goel

Page 16: Cpld fpga

CPLD and FPGA Prof. Anish Goel

Page 17: Cpld fpga

CPLD and FPGA Prof. Anish Goel

Example CPLD

Page 18: Cpld fpga

CPLD and FPGA Prof. Anish Goel

Structure of an FPGA

Page 19: Cpld fpga

CPLD and FPGA Prof. Anish Goel

LUTs

Page 20: Cpld fpga

CPLD and FPGA Prof. Anish Goel

Example 2 Input LUT

Page 21: Cpld fpga

CPLD and FPGA Prof. Anish Goel

3 Input LUT

Page 22: Cpld fpga

CPLD and FPGA Prof. Anish Goel

Example FPGA

Page 23: Cpld fpga

CPLD and FPGA Prof. Anish Goel

FPGA Implementation

Page 24: Cpld fpga

CPLD and FPGA Prof. Anish Goel

Another Example FPGA

Page 25: Cpld fpga

FPGA AND CPLD

1. FPGA - Field-Programmable Gate Array.2. CPLD - Complex Programmable Logic Device3. FPGA and CPLD is an advance PLD.4. Support thousands of gate where as PLD only

support hundreds of gates.

CPLD and FPGA Prof. Anish Goel

Page 26: Cpld fpga

What is an FPGA? Before the advent of programmable logic, custom logic circuits were built at

the board level using standard components, or at the gate level in expensive application-specific (custom) integrated circuits.

FPGA is an integrated circuit that contains many (64 to over 10,000) identical logic cells that can be viewed as standard components. Each logic cell can independently take on any one of a limited set of personalities.

Individual cells are interconnected by a matrix of wires and programmable switches. A user's design is implemented by specifying the simple logic function for each cell and selectively closing the switches in the interconnect matrix.

Array of logic cells and interconnect form a fabric of basic building blocks for logic circuits. Complex designs are created by combining these basic blocks to create the desired circuit

CPLD and FPGA Prof. Anish Goel

Page 27: Cpld fpga

FPGA architecture

CPLD and FPGA Prof. Anish Goel

Page 28: Cpld fpga

What does a logic cell do? The logic cell architecture varies between different device families.

Each logic cell combines a few binary inputs (typically between 3 and 10) to one or two outputs according to a Boolean logic function specified in the user program .

In most families, the user also has the option of registering the combinatorial output of the cell, so that clocked logic can be easily implemented.

Cell's combinatorial logic may be physically implemented as a small look-up table memory (LUT) or as a set of multiplexers and gates.

LUT devices tend to be a bit more flexible and provide more inputs per cell than multiplexer cells at the expense of propagation delay.

CPLD and FPGA Prof. Anish Goel

Page 29: Cpld fpga

what does 'Field Programmable' mean? Field Programmable means that the FPGA's function is defined by a user's

program rather than by the manufacturer of the device.

A typical integrated circuit performs a particular function defined at the time of manufacture. In contrast, the FPGA's function is defined by a program written by someone other than the device manufacturer.

Depending on the particular device, the program is either 'burned' in permanently or semi-permanently as part of a board assembly process, or is loaded from an external memory each time the device is powered up.

This user programmability gives the user access to complex integrated designs without the high engineering costs associated with application specific integrated circuits.

CPLD and FPGA Prof. Anish Goel

Page 30: Cpld fpga

How are FPGA programs created? Individually defining the many switch connections and cell logic functions

would be a daunting task.

This task is handled by special software. The software translates a user's schematic diagrams or textual hardware description language code then places and routes the translated design.

Most of the software packages have hooks to allow the user to influence implementation, placement and routing to obtain better performance and utilization of the device.

Libraries of more complex function macros (eg. adders) further simplify the design process by providing common circuits that are already optimized for speed or area.

CPLD and FPGA Prof. Anish Goel

Page 31: Cpld fpga

FPGA FPGA applications:-

i. DSPii. Software-defined radioiii. Aerospaceiv. Defense systemv. ASIC Prototypingvi. Medical Imagingvii. Computer visionviii. Speech Recognitionix. Cryptographyx. Bioinformaticxi. And others.

CPLD and FPGA Prof. Anish Goel

Page 32: Cpld fpga

CPLD1. Complexity of CPLD is between FPGA and PLD.2. CPLD featured in common PLD:-

i. Non-volatile configuration memory – does not need an external configuration PROM.

ii. Routing constraints. Not for large and deeply layered logic.

3. CPLD featured in common FPGA:-i. Large number of gates available.ii. Can include complicated feedback path.

4. CPLD application:-i. Address codingii. High performance control logiciii. Complex finite state machines

CPLD and FPGA Prof. Anish Goel

Page 33: Cpld fpga

CPLD5. CPLD architecture:-

LAB – Logic Array Block / uses PALs

PIA – Programmable Interconnect ArrayCPLD and FPGA Prof. Anish Goel