113
S O F T P O L Y N O M I A L S FPGAs Field Programmable Gate Arrays 1 Subhash Iyer

Session 2,3 FPGAs

Embed Size (px)

Citation preview

Page 1: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAsField Programmable Gate Arrays

1Subhash Iyer

Page 2: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAsGeneral

2Subhash Iyer

Page 3: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Why choose an FPGA?

3

The choice depends on design

requirements / cost / availability

Excuse the old data please Subhash Iyer

Page 4: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Understanding the FPGA

Gate Array

Programmable

Field

Field : “in the field”

Programmable : “Re-Configurable” Change Logic Functions

Gate Array : reference to ASIC internal architecture

4Subhash Iyer

Page 5: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

What is an FPGA?

Field Programmable Gate Array

(Very) Large Scale Integrated Circuit

Digital Logic

Programmed after manufacture rather than

unchangeable Application Specific Integrated

Circuit ASIC

First appeared in 1980’s.

Standard IC manufacturing process

5Subhash Iyer

Page 6: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Why are they of Interest?

Essential Components in modern Electronics (&

Industry!)

◦ Data Acquisition (Millions Channels)

◦ Triggers

◦ Computer Interfaces

6Subhash Iyer

Page 7: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

When to use an FPGA?

Options:

◦ Microcontrollers and processors

When a function is dedicated

When decision making is protocol based

When multiple chips interact between themselves

When NOT to use and FPGA???

7Subhash Iyer

Page 8: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

What is an FPGA?

8

Field Programmable Gate Array

◦ Configurable (Programmable) General Logic Blocks

◦ Configurable Interconnects

◦ Plus Special Purpose Blocks (Embedded Processors)

◦ Configured (multiple times) to perform variety of tasks

Simple Logic Block ‘Islands’ in a ‘Sea’ of Interconnects

Programmable

interconnect

Programmable

logic blocks

Subhash Iyer

Page 9: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Little bit of History…

9

FPGAs appeared in the 1980’s.

Bridge gap between simple Programmable

Logic and semi custom ASICs (Application

Specific Integration Circuits).

PLDs ASICs

Standard Cell

Full Custom

Gate Arrays

Structured ASICs*

SPLDs

CPLDs

*Not available circa early 1980s

The

GAP

Subhash Iyer

Page 10: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

ASICs

10

Large Complex Functions

Customised for Extremes of Speed, Low Power,

Radiation Hard

(Very) Expensive (in small quantities) @ 90 nm ~ $1M

mask set

(Very) Hard to Design.

Long Design cycles.

Not Reprogrammable. High Risk.

Semi Custom Gate Arrays.ASICs

Structured

ASICs

Gate

Arrays

Standard

Cell

Full

Custom

Increasing complexity

(a) Single-column arrays (b) Dual-column arrays

I/O cells/pads

Channels

Basic cells

Subhash Iyer

Page 11: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAs best of both worlds…

11

Large Complex

Functions

Programmability,

Flexibility.

Massively Parallel

Architecture

Fast Turnaround

Designs

Mass produced. Cheap

Prototype ASICs

Power Hungry

PLDs ASICs

Standard Cell

Full Custom

Gate Arrays

Structured ASICs*

SPLDs

CPLDs

*Not available circa early 1980s

The

GAP

Programmable

interconnect

Programmable

logic blocks

Subhash Iyer

Page 12: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Common FPGA Characteristics

12

Logic Elements

◦ Lookup Table /

AND-OR implementation

◦ Flip Flops

◦ Multiplexers

Memory Resources

◦ SRAM blocks

Routing Resources

◦ Hierarchy Programmable Channels between Logic Elements

Configurable I/O

◦ Interfaces to the real world. Logic Levels. Fast Serial I/O

Massively Parallel Architecture

Clocked Logic Design

CMOS based using SRAM cells for configuration

Programmable

interconnect

Programmable

logic blocks

Subhash Iyer

Page 13: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Common FPGA Characteristics

Field Programmable Gate Arrays

(FPGA) can handle larger circuits

◦No AND/OR planes

◦ Provide logic blocks, I/O blocks, and

interconnection wires and switches

◦ Logic blocks provide functionality

◦ Interconnection switches allow logic

blocks to be connected to each other

and to the I/O pins

13Subhash Iyer

Page 14: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA

The elements of an FPGA structure are:◦ Logical Building Block: ROM type, PLA/PAL type,

LUT type

◦ Interconnect Mechanism: Transistors, fuses, matrix, bus

◦ I/O block: Latched, buffered, additional logic

◦ Other features: RAM

Depends on the manufacturer

Each method has its pros and cons

Can you propose a structure???

14Subhash Iyer

Page 15: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAsHalf-way Through !!!

15Subhash Iyer

Page 16: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAStructure and construction

16Subhash Iyer

Page 17: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA

17

I/O block

I/O block

I/O b

lock I/

O b

lock

logic block

interconnection

switch

Subhash Iyer

Page 18: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA

18

I/O block

I/O block

I/O b

lock I/

O b

lock

logic block

interconnection

switch

Subhash Iyer

Page 19: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA

Closer look

19Subhash Iyer

Page 20: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA: Xilinx

20

Blo

ck R

AM

s

Blo

ck R

AM

s

Configurable

Logic

Blocks

I/O

Blocks

Block

RAMs

Subhash Iyer

Page 21: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Xilinx CLBs:

Look Up Tables (LUTs) Logic blocks are

implemented using a lookup table (LUT)

◦ Small number of inputs, one output

◦ Contains storage cells that can be loaded with the desired values

◦ A 2 input LUT uses 3 MUXesto implement any desired functionof 2 variables

21

f

0/1

0/1

0/1

0/1

x 1

x 2 Subhash Iyer

Page 22: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Xilinx CLBs:

Look Up Tables (LUTs) Example 2 Input LUT

22

x1 x2 f

0 0 1

0 1 0

1 0 0

1 1 1 f

1

0

0

1

x 1

x 2

Subhash Iyer

Page 23: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Xilinx CLBs:

Look Up Tables (LUTs) 3 Input LUT

◦ 7 2x1 MUXes and

8 storage cells are

required

◦ Commercial LUTs have

4-5 inputs, and 16-32

storage cells

23

f

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

x 2

x 3

x 1

Subhash Iyer

Page 24: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Xilinx: FPGA CLBs

Making a LUT on an FGPA

Adding a sequential element

24Subhash Iyer

Page 25: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Xilinx: FPGA CLBs

25

Making a LUT on an FGPA

Adding a sequential element

Making it programmable

Subhash Iyer

Page 26: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Xilinx: FPGA CLBs

Newer implementation

26Subhash Iyer

Page 27: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA CLBs: Altera

Uses a Macrocell

27

Clk

MUX

Output

MUXQ

F/B

MUX

Inv ert

Control

AND

ARRAY

CLK

pad

8 Product Term

AND-OR Array

+Programmable

MUX's

Programmable polarity

I/O Pin

Seq. LogicBlock

Programmable feedback

Subhash Iyer

Page 28: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA CLBs: Altera

28

Newer implementation

Subhash Iyer

Page 29: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA

29

I/O block

I/O block

I/O b

lock I/

O b

lock

logic block

interconnection

switch

Subhash Iyer

Page 30: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA – CLBs

How they are used!!! CLBs can be configured to

implement Boolean functions

Typically CLBs have between

4-6 inputs

Functions of larger number of

variables use more than one

CLB.

CLB typically contains 1 or 2

FFs for sequential logic.

Large designs are partitioned

and mapped to a number of

CLBs with each CLB

configured (programmed) to

perform a particular function.

CLBs are then interconnected

to implement target design. 30Subhash Iyer

Page 31: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA – Beyond the CLBs

Interconnects 3 programmable

routing resources:

For flexible

interconnection

of CLBs,

◦ Vertical and

Horizontal

Channels

◦ Connection Boxes

◦ Switch Boxes

31Subhash Iyer

Page 32: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA Interconnects: Channels

Vertical and

horizontal routing

channels

Different length

wires that can be

connected together

if needed.

Run vertically and

horizontally between

columns and rows of

CLBs

32Subhash Iyer

Page 33: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Channel Architecture

33Subhash Iyer

Page 34: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Channeled Routing Structure

34

Programmed

Antifuse

Horizontal

Track

Vertical Track

Modules

Unprogrammed

Antifuse

Modules

Horizontal Control

Subhash Iyer

Page 35: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA Interconnects: Connection

Boxes Programmable

links

Connect input

and output of

the CLBs to

wires of the

vertical or the

horizontal

routing channels.

35Subhash Iyer

Page 36: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA Interconnects: Switch Boxes

Located at intersections of vertical and horizontal channels

Programmable links

Used to connect wire segments in the horizontal and vertical channels

36Subhash Iyer

Page 37: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Programmable Switch Matrix

37

programmable switch element

turning the corner, etc.

Subhash Iyer

Page 38: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA Interconnects: Switch Boxes -

Xilinx

38Subhash Iyer

Page 39: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Interconnect Structure

39Subhash Iyer

Page 40: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Structure of an FPGA

40

I/O block

I/O block

I/O b

loc

k I/

O b

lock

logic block

interconnection

switch

Subhash Iyer

Page 41: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA IO Blocks

Mainly buffers

Can be configured either as input buffers, output buffers or input/output buffers.

Allow pins of the FPGA chip to function either as input pins, output pins or input/output pins

41Subhash Iyer

Page 42: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Basic I/O Block Structure

42

D

EC

Q

SR

D

EC

Q

SR

D

EC

Q

SR

Three-StateControl

Output Path

Input Path

Three-State

Output

Clock

Set/Reset

Direct Input

Registered Input

FF Enable

FF Enable

FF Enable

Subhash Iyer

Page 43: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA IO Block example: Xilinx

43Subhash Iyer

Page 44: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAProgramming

44Subhash Iyer

Page 45: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

What to Program???

CLBs: Need to fix the inputs to the LUT /

AND-OR array and the sequential logic

Interconnects: Need to fix the inputs of

the switches which connect the various

elements

IO Blocks: Need to fix the configuration

of the pins as input / output / input-

output or tristate / bistate

45Subhash Iyer

Page 46: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

How to Program

A memory element behind every

programmable element

This memory element is set to a

particular value 1/ 0 while programming

The entire memory is made as a serial

shift register

During configuration, a bit stream is sent

to this complete shift register which

becomes the program

46Subhash Iyer

Page 47: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Programmable element

A FET which acts as a switch

A memory element (depicted here as an SRAM cell) for each switch

Input at the switch determines the connection of the lines

1 of the switch means connection is made else not made.

47Subhash Iyer

Page 48: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Programming the CLB

48

Connection

Switch

Transmission

Gate

LUT

CLB

Subhash Iyer

Page 49: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Programming (Configuring) an

FPGA SRAM cells holding

configuration are Volatile Memory

Lose configuration when board power is turned off.

Keep Bit Pattern describes the Logic Functions in non-Volatile Memory e.g. ROM or Compact Flash card

Reprogramming takes ~ secs

49

Configuration data in

Configuration data out

= I/O pin/pad

= SRAM cell

SRAM

Subhash Iyer

Page 50: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Methods

Serial communication

JTAG : Joint Test Action Group – most

commonly adopted standard

Serial port

USB

ISP feature: In-circuit programmable

50Subhash Iyer

Page 51: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAImplementation Example

51Subhash Iyer

Page 52: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Example FPGA: 1

Use an FPGA with 2 input LUTS to

implement the function f = x1x2 + x2'x3

◦ f1 = x1x2

◦ f2 = x2'x3

◦ f = f1 + f2

52

0

1

0

0

0

1

1

1

0

0

0

1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

Subhash Iyer

Page 53: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGADesign Flow

53Subhash Iyer

Page 54: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Design Steps

• Understand and define design

requirements

• Design description

• Behavioural simulation

(Source code interpretation)

• Synthesis

• Functional or Gate level

simulation

• Implementation

• Fitting

• Place and Route

• Timing or Post layout

simulation

• Programming, Test and Debug

54Subhash Iyer

Page 55: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Design process

55

Design and implement a simple unit permitting to

speed up encryption with RC5-similar cipher with

fixed key set on 8031 microcontroller. Unlike in

the experiment 5, this time your unit has to be able

to perform an encryption algorithm by itself,

executing 32 rounds…..

Library IEEE;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity RC5_core is

port(

clock, reset, encr_decr: in std_logic;

data_input: in std_logic_vector(31 downto 0);

data_output: out std_logic_vector(31 downto 0);

out_full: in std_logic;

key_input: in std_logic_vector(31 downto 0);

key_read: out std_logic;

);

end AES_core;

Specification (Lab Experiments)

VHDL description (Your Source Files)

Functional simulation

Post-synthesis simulationSynthesis

Subhash Iyer

Page 56: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Design process

56

Implementation

Configuration

Timing simulation

On chip testing

Subhash Iyer

Page 57: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGA Generic Design Flow

Design Entry◦ Create Design Schematic / HDL

Design Implementation◦ Partition

◦ Place

◦ Route

Design Verification◦ Simulation

◦ Physical in-circuit testing Using logic analyser

57Subhash Iyer

Page 58: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Design Implementation

Partitioning

◦ Breaking up the design to fit into the nature of CLBs

◦ In other work making the design into LUTs and FFs

Placement

◦ Choosing the right CLBs to locate the design on

◦ Based on proximity to IOBs, delay constraints, area constraints, etc

◦ Achieve wiring minimization

Routing

◦ Choice of interconnect

◦ Based on timing constraints

58Subhash Iyer

Page 59: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Circuit Compilation

59

LUT

LUT

?

Assign a logical

LUT to a physical

location.

Select wire segments

And switches for

Interconnection.

1. Partitioning / Technology Mapping

2. Placement

3. Routing

Subhash Iyer

Page 60: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Example

60

Programmable Connections

Subhash Iyer

Page 61: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGATechnology Aspects

61Subhash Iyer

Page 62: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Programmable Elements Overview

Antifuse

◦ ONO and Metal-to-Metal (M2M)

◦ Construction

◦ Resistance

SRAM

◦ Structure

◦ Quantity

EEPROM/Flash

Ferroelectric Memory

Summary of Properties

62Subhash Iyer

Page 63: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Antifuse Technology

63

ONO Antifuse (Actel)

Poly/ONO/N++

Heavy As doped Poly/N++

Thickness controlled by

CVD nitride

Programs ~ 18V

Typical Toxono ~ 85 Å

Hardened Toxono ~ 95 Å

R = 200 - 500 ohms

thermal oxide

CVD nitride

thermal oxide

FOX

N++

Polysilicon

ONO

Metal-to-Metal Antifuse

(Actel, UTMC, Quicklogic)

‘Pancake’ Stack Between Metal Layers

Used in 3.3V Operation in Sea Of Gates FPGA

Other devices (as shown later)

Program at ~ 10V

Typical thickness ~ 500 - 1000 Å

R = 20 - 100 ohms

Metal - 3 Top Electrode

Amorphous Silicon

Dielectric (optional)

Metal - 2 Bottom Electrode

Subhash Iyer

Page 64: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Antifuse Cross-Sections

64

Amorphous Silicon

(Vialink)ONO

(Act 1)

Subhash Iyer

Page 65: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

M2M Antifuse in

Multi-layer Metal Process

65

M2M = Metal-to-metal

SX, SX-A, and SX-S Vialink

Subhash Iyer

Page 66: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Switch Technology

Memory behind the switch could be

◦ SRAM

◦ EEPROM

◦ Flash

66

Read or Write

Data

Configuration Memory Cell

Routing Connections

Subhash Iyer

Page 67: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Other technologies

EEPROM

67Subhash Iyer

Page 68: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

FPGAQuestions???

68Subhash Iyer

Page 69: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

WELCOME TO THE FPGA

WORLD

69Subhash Iyer

Page 70: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S

Example FPGA: 1

Use an FPGA with 2 input LUTS to

implement the function

◦ f1 = x1x2

◦ f2 = x2'x3

◦ f = f1 + f2

1

Page 71: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S2

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 72: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S3

f1 = x1x2, f2 = x2'x3, f = f1 + f2

x 1

x 2

x 3 f

Page 73: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S4

f1 = x1x2, f2 = x2'x3, f = f1 + f2

x 1

x 2

x 3 f

x 1

x 2

f

x 2

3

f 1

f 2

f

f

1 2

x

Page 74: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S5

f1 = x1x2, f2 = x2'x3, f = f1 + f2

x 1

x 2

x 3 f

0 0 0 1

x 1

x 2

f

0 1 0 0

0 1 1 1

x 2

x 3

f 1

f 2

f

f

1 2

Page 75: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S6

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 76: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S7

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 77: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S8

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 78: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S9

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 79: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S10

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 80: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S11

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 81: Session 2,3 FPGAs

S

O

F

T

P

O

L

Y

N

O

M

I

A

L

S12

0 1 0 0

0 1 1 1

0 0 0 1

x 1

x 2

x 2

x 3

f 1

f 2

f 1 f 2

f

x 1

x 2

x 3 f

f1 = x1x2, f2 = x2'x3, f = f1 + f2

Page 82: Session 2,3 FPGAs

Slide 1Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Field Programmable Gate Arrays

A Comparison of available devices

Page 83: Session 2,3 FPGAs

Slide 2Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

FPGAs

Consists of uncommitted logic arrays and user

programmable interconnection.

The interconnect programming is done through

programmable switches

The Logic circuits are implemented by partitioning

the logic into blocks and then interconnecting the

blocks with the programmable switches

The architecture of an FPGA varies from device to

device , vendor to vendor it can be based on CPLDs,

EPROMS, EEPROMS, LUT, Buses, PALS

The interconnect is also varied from EPROM, static

RAM, antifuse, EEprom

Page 84: Session 2,3 FPGAs

Slide 3Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

FPGA Classification

Implementation

Architecture

Logic

Implementation

Interconnect

Technology

Symmetrical

Array

Row based Array

Hierarchial PLD

Sea of Gates

Look Up table

Multiplexer

based

PLD Block

NAND Gates

Static Ram

Antifuse

E/EPROM

FPGA types

Page 85: Session 2,3 FPGAs

Slide 4Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Classes of Common Commercial FPGAs

Row-basedInterconnect

Logic Block

PLD BlockInterconnectoverlayed on LogicBlocks

Logic Block

Interconnect

Sea-of-GatesHierarchical PLD

Interconnect

Symmetrical Array

Various Block Architecture & Routing Architecture

Page 86: Session 2,3 FPGAs

Slide 5Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ACTEL (Now MicroSemi) FPGA

ACT1 module has three 2:1 Muxs with AND-OR logic

at the select of final MUX and implements all 2 input

functions, most 3 input and many 4 input functions.

Apart from variety of combinational logic functions,

the ACT1 module can implement sequential logic cells

in a flexible and efficient manner. For example an

ACT1 module can be used for a transparent Latch or

two modules for a flip flop.

Page 87: Session 2,3 FPGAs

Slide 6Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

General Architecture of Actel FPGAs

I/O Blocks

I/O Blocks

LogicModule Rows

I/O BlocksI/O Blocks

Channel Routing

SAA0 A1

B0 B1 SB

S1

Y

S0

ACT-1 Logic Module

Page 88: Session 2,3 FPGAs

Slide 7Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ACT 1 Programmable Interconnect

Architecture

The basic Architecture of Actel FPGA consists of rows of programmable

block with horizontal routing channels between the rows.

Each routing switch in these FPGAs is implemented by the PLICE Anti fuse.

LMLMLMLMLM

LMLMLMLMLM

Input Segment

Wiring Segment

Anti fuse

Clock Track VerticalTrack

Connections are all and orbut shown only in this section

for clarity

Page 89: Session 2,3 FPGAs

Slide 8Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Page 90: Session 2,3 FPGAs

Slide 9Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Page 91: Session 2,3 FPGAs

Slide 10Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ACT 1 and ACT 3 Logic Modules

ACT1 module is simple logical block. It does not

have built in function to generate a Flip Flop.

Although it can generate a FF if required.

ACT2 and ACT3 that has separate FF module is used

for Sequential Circuits.

Page 92: Session 2,3 FPGAs

Slide 11Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Timing Models and Critical Paths

Exact timing (delays) on any FPGA chip cannot be

estimated until place and routing step has been

performed. This is due to the delay of the interconnect.

A critical path of SE in is shown on the next slide.

Page 93: Session 2,3 FPGAs

Slide 12Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Actel ACT3 Timing Model

Page 94: Session 2,3 FPGAs

Slide 13Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Anti-Fuse (ACTEL)

An anti fuse is normally an open circuit until a programming

current is forced though it (about 5mA).

The two prominent methods are Poly to Diffusion (Actel) and

Metal to Metal (Via Link). In a Poly-diffusion anti fuse the high

current density causes a large power dissipation in a small area.

Anti fuse Polysilicon

n+ Diffusion

Dielectric

2 λ

Anti fuse Polysilicon

Anti fusePolysilicon

Anti fuse

n+ anti fuse diffusion

Contact

The actual anti fuse link is less than 10nm x 10nm

Page 95: Session 2,3 FPGAs

Slide 14Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Anti-Fuse (ACTEL)

This will melt a thin insulating dielectric between polysilicon and diffusion and form

a thin

(about 20nm in diameter) permanent, and resistive silicon link. The programming

process also

drives dopand atoms from the poly and diffusion electrodes. The fabrication process

and

Programming current controls the average resistance of blown anti fuses.

Actel Device # of Anti fuses

A1010 112,000

A1225 250,000

A1280 750,000

To design and program an Actel FPGA, designers iterate between design entry and

simulation when design is verified both by functional and timing tests. Chip is

plugged into a socket on a special programming box that generates the programming

voltage.

250 500 750 1000

Anti fuse Resistance in Ω

% Blown Anti fuses

Page 96: Session 2,3 FPGAs

Slide 15Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Anti-Fuse (ACTEL)

Metal-Metal Anti fuse (Via Link) Same principle as previous slide but different process with 2 main advantages

1) Direct metal to metal eliminating connection between poly and metal or diffusion to

metal thus reducing parasitic capacitance and interconnect space requirement.

2) Lower resistance.

Anti fuse

Routing wiresRouting wires

M3M2

Thin amorphous Si

M3

M2

2λ50 80 100

Anti fuse Resistance Ω

% Blown Anti fuses

Page 97: Session 2,3 FPGAs

Slide 16Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

EPROM and EEPROM

Altera MAX 5K and Xilinx ELPDs both use UV-erasable “electrically

programmable read-only memory” (EPROM) cells as their programming

technology. The EPROM cell is almost as small as an anti fuse.

GroundS D

G2

G1

S D

G2

G1+Vgs>Vtn

+Vpp

+Vgs>Vtn

Vds

No channel

G2

G1

UV light

Page 98: Session 2,3 FPGAs

Slide 17Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

EPROM and EEPROM

Altera MAX 5K and Xilinx ELPDs both use UV-erasable “electrically

programmable read-only memory” (EPROM) cells as their programming

technology. The EPROM cell is almost as small as an anti fuse.

An EPROM looks like a normal transistor except it has a second floating

gate.

(a) Applying a programming voltage Vpp (>12) to the drain of the n-channel,

programs the cell. A high electric field causes electrons flowing towards the

drain to move so fast they “jump” across the insulating gate oxide where

they are trapped on the bottom of the floating gate.

(b) Electrons trapped on the floating gate raise the threshold voltage. Once

programmed an n-channel EPROM remains off even with Vdd applied to the

gate. An unprogrammed n-channel device will turn on as normal with a top-

gate voltage Vdd.

(c) Exposure to an ultra-violet (UV) light will erase the EPROM cell. An

absorbed light quantum gives an electron enough energy to jump for the

floating gate.

Page 99: Session 2,3 FPGAs

Slide 18Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

EPROM and EEPROM

EPLD package can be bought in a windowed package

for development, erase it and use it again.

Programming EEPROM transistors is similar to

programming an UV-erasable EPROM transistor, but

the erase mechanism is different.

In an EEPROM transistor and electric field is also

used to remove electrons from the floating gate of a

programmed transistor.

This is faster than the UV-procedure and the chip

doesn’t have to removed from the system.

Page 100: Session 2,3 FPGAs

Slide 19Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

EEPROM

Creating a wired-AND with EPROM cells [3]

Structure of a FAMOS transistor [3]

F= A + B + C + D + …….= A . B . C . D . ……..

First Level Polysilicon

Second Level Polysilicon

Field OxideGate Oxide

Page 101: Session 2,3 FPGAs

Slide 20Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

General Structure of Altera FPGAs

8-input fracturable look-up table (LUT) with

the Stratix® II family in 2004

At its core is the adaptive logic module (ALM)

with 8 inputs

Can implement a full 6-input LUT (6-LUT) or

select 7-input functions

ALM can also be efficiently partitioned into

independent smaller LUTs

Performance advantage of larger LUTs and

the area efficiency of smaller LUTs

Page 102: Session 2,3 FPGAs

Slide 21Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Logic Fabric

High-performance, area-efficient

architecture is the ALM

Combinational portion has eight inputs

Includes a LUT that can be divided between

two adaptive LUTs (ALUTs)

Entire ALM is needed to implement an

arbitrary six-input function

But because it has eight inputs to the

combinational logic block, one ALM can

implement various combinations of two

functions.

Page 103: Session 2,3 FPGAs

Slide 22Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Logic Fabric

Page 104: Session 2,3 FPGAs

Slide 23Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Adaptive Logic Module

In addition to implementing

a full 6-input LUT, the ALM

can, for example,

implement 2 independent

4-input functions or a 5-

input and a 3-input function

with independent inputs.

Because 2 registers and 2

adders are available, the

ALM has the flexibility to

implement 2.5 logic

elements (LEs) of a classic

4-input LUT (4-LUT)

architecture, consisting of

a 4-LUT, carry logic, and a

register

Page 105: Session 2,3 FPGAs

Slide 24Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ALM Flexibility

Page 106: Session 2,3 FPGAs

Slide 25Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ALM Flexibility

Page 107: Session 2,3 FPGAs

Slide 26Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ALM Flexibility

Page 108: Session 2,3 FPGAs

Slide 27Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

ALM Block diagram

Page 109: Session 2,3 FPGAs

Slide 28Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Comparing Stratix-II and Virtex-5

8 input block

supports all 6-

input functions

other

combinations of

smaller functions

6 input block

Smaller additional

logic

Page 110: Session 2,3 FPGAs

Slide 29Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Logic Array Blocks (LAB) and

Interconnects

Page 111: Session 2,3 FPGAs

Slide 30Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

FPGA Comparison Table

Page 112: Session 2,3 FPGAs

Slide 31Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

FPGA Comparison Table

Company General

Architecture

Logic Block

Type

Programming Technology

Xilinx Symmetrical Array Look-up Table Static RAM

Actel Row-based Multiplexer-Based Anti-fuse

Altera Hierarchical-PLD PLD Block EPROM

Plessey Sea-of-Gates NAND-gate Static RAM

PLUS Hierarchical-PLD PLD Block EPROM

AMD Hierarchical-PLD PLD Block EEPROM

QuickLogic Symmetrical Array Multiplexer-Based Anti-fuse

Algotronix Sea-of-gates Multiplexers & Basic Gate Static RAM

Concurrent Sea-of-gates Multiplexers & Basic Gate Static RAM

Crosspoint Row-based Transistors Pairs &

Multiplexers

Anti-fuse

Page 113: Session 2,3 FPGAs

Slide 32Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd

Critical Condition !!!

FPGA Overdose

Need a Chai Break

and a NEW Topic