44
Outline Outline Field Programmable Gate Arrays Field Programmable Gate Arrays Historical perspective Historical perspective Programming Technologies Programming Technologies Architectures Architectures PALs, PLDs, and CPLDs PALs, PLDs, and CPLDs C. Stroud 8/06 FPGAs 1 PALs, PLDs, and CPLDs PALs, PLDs, and CPLDs FPGAs FPGAs Programmable logic Programmable logic Interconnect network Interconnect network I/O buffers I/O buffers Specialized cores Specialized cores Programming Interfaces Programming Interfaces

Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

OutlineOutline��Field Programmable Gate ArraysField Programmable Gate Arrays

��Historical perspectiveHistorical perspective

��Programming TechnologiesProgramming Technologies��ArchitecturesArchitectures

��PALs, PLDs, and CPLDsPALs, PLDs, and CPLDs

C. Stroud 8/06 FPGAs 1

��PALs, PLDs, and CPLDsPALs, PLDs, and CPLDs��FPGAsFPGAs

��Programmable logicProgrammable logic��Interconnect networkInterconnect network��I/O buffersI/O buffers��Specialized coresSpecialized cores

��Programming InterfacesProgramming Interfaces

Page 2: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

HistoryHistory��Programmable Logic Arrays ~ 1970Programmable Logic Arrays ~ 1970

��Implement any set of sumImplement any set of sum--ofof--products logic equationsproducts logic equations��Incorporated in VLSI devicesIncorporated in VLSI devices

��Programmable Logic Devices ~ 1980Programmable Logic Devices ~ 1980��MMI Programmable Array Logic (PAL)MMI Programmable Array Logic (PAL)

��16L8 16L8 –– combinational logic onlycombinational logic only��16R8 16R8 –– sequential logic onlysequential logic only

C. Stroud 8/06 FPGAs 2

��16R8 16R8 –– sequential logic onlysequential logic only��AMD 22V10 and Lattice 16V8AMD 22V10 and Lattice 16V8��Complex PLDs Complex PLDs –– arrays of PLDs with routing networkarrays of PLDs with routing network

��Field Programmable Gate Arrays ~ 1985Field Programmable Gate Arrays ~ 1985��Xilinx Logic Cell Array (LCA)Xilinx Logic Cell Array (LCA)

��CPLD & FPGA architectures became similar ~2000CPLD & FPGA architectures became similar ~2000��Incorporation of RAMs and other specialized coresIncorporation of RAMs and other specialized cores

��Programmable systemProgrammable system--onon--chipchip

Page 3: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Programming TechnologiesProgramming Technologies��PLAs were mask programmablePLAs were mask programmable��PALs used fuses for programmingPALs used fuses for programming��Early PLDs & CPLDs used floating gate Early PLDs & CPLDs used floating gate

technologytechnology��Erasable Programmable Read Only Memory Erasable Programmable Read Only Memory

(EPROM)(EPROM)��UltraUltra--violet erasable (UVEPROM)violet erasable (UVEPROM)

C. Stroud 8/06 FPGAs 3

��UltraUltra--violet erasable (UVEPROM)violet erasable (UVEPROM)��Electrically erasable (EEPROM)Electrically erasable (EEPROM)��Flash memory came later and was used for CPLDsFlash memory came later and was used for CPLDs

��FPGAs used RAM for programmingFPGAs used RAM for programming��Later trendsLater trends

��Fuses were replaced with antiFuses were replaced with anti--fusesfuses��Better reliabilityBetter reliability

��Large CPLDs went to RAMLarge CPLDs went to RAM--based programmingbased programming

Page 4: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Programming TechnologiesProgramming Technologies��RAMRAM

��Volatile Volatile –– must configure after powermust configure after power--upup��InIn--System ReSystem Re--programmable (ISR)programmable (ISR)��RunRun--Time Reconfiguration (RTR)Time Reconfiguration (RTR)

��dynamic reconfiguration while system is operatingdynamic reconfiguration while system is operating

��Floating gate technologiesFloating gate technologies��NonNon--volatile but revolatile but re--usableusable

C. Stroud 8/06 FPGAs 4

��NonNon--volatile but revolatile but re--usableusable��UV EPROM, EEPROM, and flash memoryUV EPROM, EEPROM, and flash memory

��InIn--System Programmable (ISP)System Programmable (ISP)��EEPROM and flash memoryEEPROM and flash memory

��InIn--System ReSystem Re--programmable (ISR)programmable (ISR)��Flash memoryFlash memory

��Fuse/antiFuse/anti--fusefuse��NonNon--volatile but not revolatile but not re--usableusable��One Time Programmable (OTP)One Time Programmable (OTP)

Page 5: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

PALsPALs16L8 16L8 –– combinational logiccombinational logic�� 10 to 16 inputs, each with 10 to 16 inputs, each with

true and complement true and complement signalsignal

�� 2 to 8 outputs, each with2 to 8 outputs, each with�� 7 product terms can AND 7 product terms can AND

any of up to 16 inputs or any of up to 16 inputs or

C. Stroud 8/06 FPGAs 5

their complementstheir complements�� TriTri--state control product state control product

term for inverting output term for inverting output bufferbuffer��When output in triWhen output in tri--state, state,

I/O pin can be used as I/O pin can be used as inputinput�� High impedance High impedance

output with no signal output with no signal drivendriven

Page 6: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

PALsPALs16R8 16R8 –– sequential logicsequential logic�� 8 inputs, each with true & 8 inputs, each with true &

complementcomplement�� 8 outputs, each with8 outputs, each with

��D flipD flip--flopflop��With feedback for FSMsWith feedback for FSMs

��8 product terms that can 8 product terms that can AND any of:AND any of:

C. Stroud 8/06 FPGAs 6

AND any of:AND any of:��8 inputs or their 8 inputs or their

complementscomplements��8 feedbacks or their 8 feedbacks or their

complements from D flipcomplements from D flip--flopsflops

�� One clock for all FFsOne clock for all FFs�� One triOne tri--state control for all state control for all

outputsoutputs

Page 7: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

PLDsPLDs22V10 replaced all PALs22V10 replaced all PALs�� Combinational and/or Combinational and/or

sequential logicsequential logic�� Macrocell program bits C0, C1Macrocell program bits C0, C1

�� Up to 22 inputs w/complementUp to 22 inputs w/complement�� Up to 10 outputs, each withUp to 10 outputs, each with

�� MacrocellMacrocell�� 88--16 product terms16 product terms�� TriTri--state control product termstate control product term

C. Stroud 8/06 FPGAs 7

�� TriTri--state control product termstate control product term�� GlobalGlobal

�� preset & clear PTspreset & clear PTs�� clockclock

Page 8: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

PLDsPLDs��16V816V8��Up to 16 inputs (bit & bitbar)Up to 16 inputs (bit & bitbar)��Up to 8 outputs, each withUp to 8 outputs, each with

��8 product terms (PTs), or8 product terms (PTs), or��7 with tri7 with tri--state control (PT)state control (PT)��Macrocell similar to 22V10Macrocell similar to 22V10

��More programming options More programming options ��Ability to select adjacent pinAbility to select adjacent pin

��Allows embedded registersAllows embedded registers

C. Stroud 8/06 FPGAs 8

Page 9: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

CPLDsCPLDsCypress Semiconductor 374 CPLD Architecture

84-pin package w/~6 Vcc and 8 Gnd pins36 inputs to AND-plane w/84 PTs and partially programmable OR-plane

C. Stroud 8/06 FPGAs 9

Page 10: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

CPLDsCPLDs�� An array of PLDsAn array of PLDs

�� Global routing resources Global routing resources for connectionsfor connections�� PLDs to other PLDsPLDs to other PLDs�� PLDs to/from I/O pinsPLDs to/from I/O pins

�� Example: Cypress 39KExample: Cypress 39K�� Each Logic Block (LB) Each Logic Block (LB)

similar to a 22V10similar to a 22V10

I/O Block

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LB

LB

LB

LB

8192 bitRAM

LB

LB

LB

I/O B

lock

I/O B

lock

I/O Block

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LB

LB

LB

LB

8192 bitRAM

LB

LB

LB

I/O Block

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LB

LB

LB

LB

8192 bitRAM

LB

LB

LB

GCLK[3:0]

GCLK[3:0]

C. Stroud 8/06 FPGAs 10

similar to a 22V10similar to a 22V10�� Each cluster of 8 LBs Each cluster of 8 LBs

has two 8K RAMs & one has two 8K RAMs & one 4K dual4K dual--port RAM/FIFOport RAM/FIFO�� Programmable Programmable

Interconnect Modules Interconnect Modules (PIMs) provide (PIMs) provide interconnectionsinterconnections

�� Array of up to 24 Array of up to 24 clusters with global clusters with global routingrouting

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LB

LB

LB

LB

8192 bitRAM

LB

LB

LBI/O

Blo

ck

I/O B

lock

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LB

LB

LB

LB

8192 bitRAM

LB

LB

LB

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LB

LB

LB

LB

8192 bitRAM

LB

LB

LB

I/O Block I/O Block I/O Block

GCLK[3:0]

CNTL[3:0]4

4

8

PLLs &Clock Mux

Page 11: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Ranges of ResourcesRanges of Resources

FPGA ResourceFPGA Resource Small FPGASmall FPGA Large FPGALarge FPGA

LogicLogicPLBs per FPGAPLBs per FPGA 256256 25,92025,920

LUTs and flipLUTs and flip--flops per PLBflops per PLB 11 88

RoutingRoutingWire segments per PLBWire segments per PLB 4545 406406

PIPs per PLBPIPs per PLB 139139 3,4623,462

C. Stroud 8/06 FPGAs 11

RoutingRoutingPIPs per PLBPIPs per PLB 139139 3,4623,462

SpecializedSpecializedCoresCores

Bits per memory coreBits per memory core 128128 36,86436,864

Memory cores per FPGAMemory cores per FPGA 1616 576576

DSP coresDSP cores 00 512512

OtherOtherInput/output cellsInput/output cells 6262 1,2001,200

Configuration memory bitsConfiguration memory bits 42,10442,104 79,704,83279,704,832

Page 12: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Basic PLB ArchitectureBasic PLB Architecture��LookLook--up Table (LUT) implements truth tableup Table (LUT) implements truth table��Memory elements:Memory elements:

��FlipFlip--flop/latchflop/latch��Some FPGAs Some FPGAs -- LUTs can also implement small LUTs can also implement small

RAMsRAMs

C. Stroud 8/06 FPGAs 12

RAMsRAMs

��Carry & control logic implements fast Carry & control logic implements fast adders/subtractorsadders/subtractors

carry in

LUT/RAM Carry &

ControlLogic

Flip-flop/Latch

4

carry out

3

Control

OutputQ output

Input[1:4]

clock, enable, set/reset

Page 13: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

A Simple PLBA Simple PLB�� Two 3Two 3--input LUTsinput LUTs

�� Can implement any Can implement any 44--input combinational input combinational logic functionlogic function

�� 1 flip1 flip--flopflop�� Programmable:Programmable:

�� Active levelsActive levels�� Clock edgeClock edge

C0C1C2C3C4C5C6C7

111 110 101 100 011 010 001 000D2-0

outLUTCoutLUT C

8x1

C. Stroud 8/06 FPGAs 13

�� Clock edgeClock edge�� Set/resetSet/reset

�� 22 configuration 22 configuration memory bitsmemory bits�� 8 per LUT8 per LUT

�� C0C0--77�� S0S0--77

�� 6 controls6 controls�� CB0CB0--77

D2-0

D3

FF

CB4

Clock

Set/Reset

Sout01

CB3

01

01

01

Clock Enable

CB = ConfigurationMemory Bit

Smux

CEmux SRmux

SOmux

CB5

CB1CB0 CB2

8x1

LUT S8x1

3

Page 14: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Combinational Logic FucntionsCombinational Logic Fucntions��Gates are combined to Gates are combined to

create complex circuitscreate complex circuits��Multiplexer exampleMultiplexer example

��If S = 0, Z = AIf S = 0, Z = A��If S = 1, Z = BIf S = 1, Z = B

A

S

B

Z

Truth table

C. Stroud 8/06 FPGAs 14

��If S = 1, Z = BIf S = 1, Z = B��Very common digital Very common digital

circuitcircuit��Heavily used in FPGAsHeavily used in FPGAs

��S input controlled by S input controlled by configuration memory bitconfiguration memory bit

��We’ll see it againWe’ll see it again

0

1

A

B

S

Z

Logic symbol

01

S A B Z0 0 0 00 0 1 00 1 0 10 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1

Truth table

Page 15: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

LookLook--up Tablesup Tables��Recall multiplexer Recall multiplexer

exampleexample��Configuration Configuration

memory holds memory holds outputs for truth outputs for truth tabletable

��Internal signals Internal signals

0

1

A

B

S

Z

Multiplexer

S A B Z0 0 0 0

Truth table0 Z

0

1

0

1

0

1

0

0

1

1

1

C. Stroud 8/06 FPGAs 15

��Internal signals Internal signals connect to control connect to control signals of signals of multiplexers to multiplexers to select value of select value of truth table for any truth table for any given input valuegiven input value

0 0 0 00 0 1 00 1 0 10 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1

B A S

1

0

1

0

1

0

1

0

1

0

1

1 0 1

1

Page 16: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Data In

Add

ress

Dec

oder

In0

In1

ck0

ck1

ck2

ck3

LookLook--up Table Based RAMsup Table Based RAMs��Normal LUT mode Normal LUT mode

performs read performs read operationsoperations

��Address decoder Address decoder with write enable with write enable 0 Z

0

1

0

1

0

1

0

0

1

1

C. Stroud 8/06 FPGAs 16

Add

ress

Dec

oder

WriteEnable

In2 ck4

ck5

ck6

ck7

with write enable with write enable generates clock generates clock signals to latches signals to latches for write operationsfor write operations

��Small RAMs but Small RAMs but can be combined can be combined for larger RAMsfor larger RAMs

In0 In1 In2

1

0

1

0

1

0

1

0

1

0

1

Page 17: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Interconnect NetworkInterconnect Network��Wire segments of varying lengthWire segments of varying length

��xxNN = = NN PLBs in lengthPLBs in length��1, 2, 4, and 6 are most common1, 2, 4, and 6 are most common

��xH = half the array in lengthxH = half the array in length��xL = length of full arrayxL = length of full array

��Programmable Interconnect Points (PIPs)Programmable Interconnect Points (PIPs)

C. Stroud 8/06 FPGAs 17

��Programmable Interconnect Points (PIPs)Programmable Interconnect Points (PIPs)��Also known as Configurable Interconnect Points (CIPs)Also known as Configurable Interconnect Points (CIPs)

��Transmission gate connects to 2 wire segmentsTransmission gate connects to 2 wire segments��Controlled by configuration memory bitControlled by configuration memory bit

��0 = wires disconnected0 = wires disconnected��1 = wires connected1 = wires connected

configbit

Wire A

Wire B

Page 18: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

PIPsPIPs��BreakBreak--point PIPpoint PIP

��Connect or isolate 2 wire segmentsConnect or isolate 2 wire segments

��CrossCross--point PIPpoint PIP��Turn cornersTurn corners

��Multiplexer PIPMultiplexer PIP��Directional and bufferedDirectional and buffered

C. Stroud 8/06 FPGAs 18

��Directional and bufferedDirectional and buffered��Select 1Select 1--ofof--NN inputs for outputinputs for output

��Decoded MUX PIP Decoded MUX PIP –– NN config bits select from 2config bits select from 2NN inputsinputs��NonNon--decoded MUX PIP decoded MUX PIP –– 1 config bit per input1 config bit per input

��Compound crossCompound cross--point PIPpoint PIP��Collection of 6 breakCollection of 6 break--point PIPspoint PIPs

��Can route to two isolated signal netsCan route to two isolated signal nets

Page 19: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Spartan 3 Routing ResourcesSpartan 3 Routing Resources

PLB consistsof 4 slices

switch matrixover 2,400 PIPs

mostly MUX PIPs

x6 wiresegments

C. Stroud 8/06 FPGAs 19

x2 wiresegments

xH & xL wiresegments

over 450total wire

segmentsin PLB

Page 20: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

FPGAsFPGAs��Recent trend Recent trend -- incorporate specialized coresincorporate specialized cores

��RAMs RAMs –– singlesingle--port, dualport, dual--port, FIFOsport, FIFOs��128 bits to 36K bits per RAM128 bits to 36K bits per RAM��4 to 575 per FPGA4 to 575 per FPGA

��DSPs DSPs –– 18x1818x18--bit multiplier, 48bit multiplier, 48--bit accumulator, bit accumulator, etc.etc.

C. Stroud 8/06 FPGAs 20

etc.etc.��up to 512 per FPGAup to 512 per FPGA

��Microprocessors and/or microcontrollersMicroprocessors and/or microcontrollers��up to 2 per FPGAup to 2 per FPGA

��Hard core processorHard core processor

��Support soft core processorsSupport soft core processors��Synthesized from HDL into programmable resourcesSynthesized from HDL into programmable resources

Page 21: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

FPGA ArchitecturesFPGA Architectures��4000/Spartan4000/Spartan

�� NNxxNN array of unit cellsarray of unit cells��Unit cell = CLB + routingUnit cell = CLB + routing

�� Special routing along center axesSpecial routing along center axes�� I/O cells around perimeterI/O cells around perimeter

��Virtex/SpartanVirtex/Spartan--22�� MMxxNN array of unit cellsarray of unit cells

C. Stroud 9/07 FPGAs 21

�� MMxxNN array of unit cellsarray of unit cells�� Added block 4K RAMs at edgesAdded block 4K RAMs at edges

��VirtexVirtex--2/Spartan2/Spartan--33�� Block 18K RAMs in arrayBlock 18K RAMs in array�� Added 18x18 multipliers with each RAMAdded 18x18 multipliers with each RAM�� Added PowerPCs in VirtexAdded PowerPCs in Virtex--2 Pro2 Pro

��VirtexVirtex--4/Virtex4/Virtex--55�� Added 48Added 48--bit DSP cores w/multipliersbit DSP cores w/multipliers�� I/O cells along columns for BGAI/O cells along columns for BGA

PC PC

PC

PC

Page 22: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Specialized CoresSpecialized Cores

250

300

350

400

450R

AM

s/m

ult

iplier

s

Virtex and Spartan II Virtex II and Spartan 3

C. Stroud 8/06 FPGAs 22

0

50

100

150

200

2S15

2S30

2S50

2S10

02S

150

2S20

0V

50V

100

V15

0V

200

V30

0V

400

V60

0V

800

V10

003S

503S

200

3S40

03S

1000

3S15

003S

2000

3S40

003S

5000

2V40

2V80

2V25

02V

500

2V10

002V

1500

2V20

002V

3000

2V40

002V

6000

2V80

002V

P2

2VP

42V

P7

2VP

202V

PX

202V

P30

2VP

402V

P50

2VP

702V

PX

702V

P10

0

RA

Ms/

mu

ltip

lier

s

4K-bit RAMs 18K-bit RAMs and 18×18-bit multipliers

Virtex and Spartan II Virtex II and Spartan 3

Page 23: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Programmable RAMsProgrammable RAMs��18 Kbit dual18 Kbit dual--port RAMport RAM��Each port independently configurable asEach port independently configurable as

��512 words x 36 bits512 words x 36 bits��32 data bits + 4 parity bits32 data bits + 4 parity bits

��1K words x 18 bits1K words x 18 bits��16 data bits + 2 parity bits16 data bits + 2 parity bits

��2K words x 9 bits2K words x 9 bits

C. Stroud 8/06 FPGAs 23

��2K words x 9 bits2K words x 9 bits��8 data bits + 1 parity bit8 data bits + 1 parity bit

��4K words x 4 bits (no parity)4K words x 4 bits (no parity)��8K words x 2 bits (no parity)8K words x 2 bits (no parity)��16K words x 1 bit (no parity)16K words x 1 bit (no parity)

��Each port has independently programmableEach port has independently programmable��clock edgeclock edge��active levels for write enable, RAM enable, resetactive levels for write enable, RAM enable, reset

Page 24: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Specialized CoresSpecialized Cores

300

400

500

600C

ore

s

18K bit RAMsXtreme DSPs

C. Stroud 8/06 FPGAs 24

0

100

200

4VLX

15

4VLX

25

4VLX

40

4VLX

60

4VLX

80

4VLX

100

4VLX

160

4VLX

200

4VS

X25

4VS

X35

4VS

X55

4VF

X12

4VF

X20

4VF

X40

4VF

X60

4VF

X10

0

4VF

X14

0

Virtex 4

Co

res

Page 25: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

FPGA Configuration MemorysFPGA Configuration Memorys��PLB addressablePLB addressable

��Good for partial reconfigurationGood for partial reconfiguration��XX--Y coordinates of PLB location to be writtenY coordinates of PLB location to be written

��Requires tag to identify which resources will be Requires tag to identify which resources will be configuredconfigured

��Frame addressableFrame addressable

C. Stroud 8/06 FPGAs 25

��Frame addressableFrame addressable��Vertical or horizontal frameVertical or horizontal frame��Access to all PLBs in frameAccess to all PLBs in frame

��Only portion of logic and routing resources Only portion of logic and routing resources accessible in a given frameaccessible in a given frame

��Many frames to configure PLBsMany frames to configure PLBs��Major address for column, minor address for frameMajor address for column, minor address for frame

Page 26: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Frame LengthFrame LengthN

umbe

r of

32

Num

ber

of 3

2--bi

t wor

ds p

er fr

ame

bit w

ords

per

fram

e

200

250

300

350

Very large frame lengthsVery large frame lengthsfor large devicesfor large devices

Day #1 FPGA Verfication Course 26

Num

ber

of 3

2N

umbe

r of

32

0

50

100

150

XC2S

15

XC2S

30

XC2S

50/V

50/E

XC2S

100/

V10

0

XC2S

150/

V15

0

XCV20

0/E

XCV30

0/E

XCV40

0/E/4

05

XCV60

0/E

XCV80

0/81

2E

XCV10

00/E

XCV16

00E

XCV20

00E

XCV26

00E

XCV32

00E

XC2V

P2

XC2V

P4

XC2V

P7

XC2V

P20

/X

XC2V

P30

XC2V

P40

XC2V

P50

XC2V

P70

/X

XC2V

P10

0

XC3S

50

XC3S

200

XC3S

400

XC3S

1000

XC3S

1500

XC3S

2000

XC3S

4000

XC3S

5000

Page 27: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Frames vs. Column TypeFrames vs. Column TypeN

umbe

r of

Fra

mes

Num

ber

of F

ram

es

40

50

60

70

80

Virtex1/Spartan2Virtex2proSpartan3Virtex4

Day #1 FPGA Verfication Course 27

Num

ber

of F

ram

esN

umbe

r of

Fra

mes

0

10

20

30

40

CLB IOB/TERM IOI/DSP RAMrouting RAMcontent center

Page 28: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

VirtexVirtex--4 Architectures4 Architectures

Day #1 FPGA Verfication Course 28

PowerPClocation

Page 29: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Tile Map for VirtexTile Map for Virtex--4 LX154 LX15

IOBsIOBs

CLBsCLBs

RAMsRAMs

DSPsDSPs

centercenter

Tile coordinatesTile coordinates

C. Stroud 8/06 FPGAs 29XDL coordinatesXDL coordinates

Page 30: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Configuration MemoryConfiguration Memory�� Frame orderFrame order

�� CLBs, IOBs, DSPs, & center CLBs, IOBs, DSPs, & center column form main portioncolumn form main portion

�� BRAMs come afterBRAMs come after

�� Frames span 16 rows (Frames span 16 rows (V5=20V5=20))�� 2.5 words per row (2.5 words per row (V5=2V5=2))�� All columns have INT switch box All columns have INT switch box

routingroutingN1 2 3

2NN+1 N+2 N+3

XN+NXN+1 XN+2 XN+3

(X+1)N(X+1)N (X+1)N (X+1)N

C. Stroud 8/06 FPGAs 30

routingrouting�� 3,312 PIPs 3,312 PIPs ≈≈ first 18.5 framesfirst 18.5 frames

�� Total frames/columnTotal frames/column�� CLBs = 22 framesCLBs = 22 frames�� DSPs = 21 columnsDSPs = 21 columns�� Center column = 33 framesCenter column = 33 frames�� IOBs = 30 framesIOBs = 30 frames

�� Left & right cols in LX & SXLeft & right cols in LX & SX

�� BRAMs & GTs = 20 framesBRAMs & GTs = 20 frames�� 2 frames at end of row2 frames at end of row

(X+1)N+N

(X+1)N+1

(X+1)N+2

(X+1)N+3

(X+2)N+N

(X+2)N+1

(X+2)N+2

(X+2)N+3

(2X+1)N+N

(2X+1)N+1

(2X+1)N+2

(2X+1)N+3

N N = # columns= # columnsX X = (# rows/16)= (# rows/16)--11

Page 31: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

VirtexVirtex--5 Architectures5 Architectures��Similar architecture, Similar architecture, frame structure and orderframe structure and order

��I/O cells not along outside column on right sideI/O cells not along outside column on right side��“Center” column (Xs) not in center of array“Center” column (Xs) not in center of array

��More columns to right side of “center” columnMore columns to right side of “center” column

��Similar top/bottom and config row formatSimilar top/bottom and config row format��41 words (3241 words (32--bit) per framebit) per frame

��Hamming bits in middle word of frameHamming bits in middle word of frame

C. Stroud 9/07 FPGAs 31

partpart #rows#rows LX & LXT Legend3030 8080 O 4 R 2 D 8 X 8 R 4 O 4 T C #=#CLBcols5050 120120 O 4 R 2 D 8 X 8 R 4 O 4 T C D=DSPs8585 120120 O 4 R10R 2 D 8 X12R10R 4 O 4 T C R=RAMs

110110 160160 O 4 R10R 2 D 8 X12R10R 4 O 4 T C O=I/O cells220220 160160 O 4 R22R 2 D 2 D 2 R20 X20R 6 R22R 4 O 4 T C X=IO&DCM330330 240240 O 4 R22R 2 D 2 D 2 R20 X20R 6 R22R 4 O 4 T C T/C=T only

SXT3535 8080 O 4 R 2 D 2 D 2 R 2 D 2 D 2 R 2 X 2 R 2 D 2 D 2 R 4 O 4 T C5050 120120 O 4 R 2 D 2 D 2 R 2 D 2 D 2 R 2 X 2 R 2 D 2 D 2 R 4 O 4 T C95 O 4 R 2 D 2 D 2 R 2 D 2 D 2 R 2 D 2 D 2 R 2 X 2 R 2 D 2 D 2 R 2 D 2 D 2 R 4 O 4 T C

160

��Hamming bits in middle word of frameHamming bits in middle word of frame

Page 32: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

VirtexVirtex--5 FX30T5 FX30T��5,120 slices5,120 slices

��4 FFs & 64 FFs & 6--input LUTsinput LUTs

��68 DPRAMs/FIFOs68 DPRAMs/FIFOs��36Kbits36Kbits

��64 DSPs64 DSPs��64 DSPs64 DSPs��24x18 24x18 multmult & 48& 48--bit ALUbit ALU

��1 PowerPC 4401 PowerPC 440��1 PCI Express1 PCI Express��4 Ethernet MACs4 Ethernet MACs��8 Gigabit 8 Gigabit XceiversXceivers

C. Stroud 9/07 FPGAs 32

Page 33: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

FPGA Configuration MemorysFPGA Configuration Memorys��PLB addressablePLB addressable

��Good for partial reconfigurationGood for partial reconfiguration��XX--Y coordinates of PLB location to be writtenY coordinates of PLB location to be written

��Requires tag to identify which resources will be Requires tag to identify which resources will be configuredconfigured

��Frame addressableFrame addressable

C. Stroud 8/06 FPGAs 33

��Frame addressableFrame addressable��Vertical or horizontal frameVertical or horizontal frame��Access to all PLBs in frameAccess to all PLBs in frame

��Only portion of logic and routing resources Only portion of logic and routing resources accessible in a given frameaccessible in a given frame

��Many frames to configure PLBsMany frames to configure PLBs��Major address for column, minor address for frameMajor address for column, minor address for frame

Hybridi.e.:

Virtex-4Virtex-5Virtex-6

Page 34: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Tile Map for VirtexTile Map for Virtex--4 LX154 LX15

IOBsIOBs

CLBsCLBs

RAMsRAMs

DSPsDSPs

centercenter

Tile coordinatesTile coordinates

C. Stroud 8/06 FPGAs 34XDL coordinatesXDL coordinates

Page 35: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Configuration InterfacesConfiguration Interfaces�� Master Master –– FPGA retrieves its own configuration from FPGA retrieves its own configuration from

ROM after powerROM after power--upup�� Serial or Parallel optionsSerial or Parallel options

�� Slave Slave –– FPGA configured by external source (i.e., a FPGA configured by external source (i.e., a µµP)P)�� Serial or Parallel optionsSerial or Parallel options�� Used for dynamic reconfigurationUsed for dynamic reconfiguration�� Can also read configuration memory contentsCan also read configuration memory contents

�� Boundary Scan InterfaceBoundary Scan Interface

clock

PROM withConfiguration

Data

data out

CCLK

FPGA inMasterMode

Din Dout

CCLK

FPGA inSlaveMode

Din Dout

CCLK

FPGA inSlaveMode

Din Dout

C. Stroud 9/07 FPGAs 35

�� Boundary Scan InterfaceBoundary Scan Interface�� 44--wire IEEE standard serial interface for testingwire IEEE standard serial interface for testing�� Write and read access to configuration memoryWrite and read access to configuration memory

�� Not available in all FPGAsNot available in all FPGAs�� Used for dynamic partial reconfigurationUsed for dynamic partial reconfiguration

�� Interfaces to FPGA coreInterfaces to FPGA core�� Not available in all FPGAsNot available in all FPGAs�� Connections between Boundary Scan Interface and internal routing Connections between Boundary Scan Interface and internal routing

network and PLBs (Xilinx provides 2network and PLBs (Xilinx provides 2--4 of these ports)4 of these ports)

�� Other configuration interfaces in some FPGAsOther configuration interfaces in some FPGAs

Page 36: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Xilinx Configuration Interface PinsXilinx Configuration Interface Pins

C. Stroud 8/06 FPGAs 36

Page 37: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Spartan Spartan 3 3

Master Master ModesModes

C. Stroud 8/06 FPGAs 37

Page 38: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Master modeMaster mode��Configuration Configuration

sequence during sequence during powerpower--up of deviceup of device��Typically fromTypically from

��Serial EPROMSerial EPROM��Master SerialMaster Serial

C. Stroud 8/06 FPGAs 38

��Master SerialMaster Serial��Parallel EPROMParallel EPROM

��Master ParallelMaster Parallel�� 88--bitbit�� 3232--bitbit

Page 39: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Spartan 3 Slave ConfigurationSpartan 3 Slave Configuration

C. Stroud 8/06 FPGAs 39

Page 40: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Spartan 3 Spartan 3 Daisy Daisy

ChainsChains

C. Stroud 8/06 FPGAs 40

Page 41: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Configuration TechniquesConfiguration Techniques��Full configuration & readbackFull configuration & readback

��Simple configuration interfaceSimple configuration interface��Internal automatic calculation of frame addressInternal automatic calculation of frame address

��Long download time for large FPGAsLong download time for large FPGAs

��Partial reconfiguration & readbackPartial reconfiguration & readback��Only change portions of configuration memory with Only change portions of configuration memory with

respect to reference designrespect to reference design

C. Stroud 9/07 FPGAs 41

respect to reference designrespect to reference design��Reduces download time for reconfigurationReduces download time for reconfiguration

��Requires more complicated interfaceRequires more complicated interface��Command Register (CMR)Command Register (CMR)��Frame Length Register (FLR)Frame Length Register (FLR)��Frame Address Register (FAR)Frame Address Register (FAR)��Frame Data RegisterFrame Data Register

�� Input (FDRI) Input (FDRI) –– for downloadfor download��Output (FDRO) Output (FDRO) –– for readback (for readback (note separate accessnote separate access))

Page 42: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Configuration TechniquesConfiguration Techniques��Compressed configurationCompressed configuration

��Requires multiple frame write capabilityRequires multiple frame write capability��Write identical frames of config data to multiple frame addressesWrite identical frames of config data to multiple frame addresses

��Extension of partial reconfiguration interface Extension of partial reconfiguration interface capabilitiescapabilities

C. Stroud 9/07 FPGAs 42

��Frame address is much smaller than frame of configuration dataFrame address is much smaller than frame of configuration data

��Reduces download time for initial configuration Reduces download time for initial configuration depending ondepending on��Regularity of system function designRegularity of system function design��% utilization of array% utilization of array

��Unused portions written with default configuration dataUnused portions written with default configuration data

Page 43: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Full Configuration ExampleFull Configuration Example� Dummy Word 0xFFFFFFFF� Synchronize Word 0xAA995566� CMD Write 0x30008001

� Reset CRC 0x00000007� FLR Write 0x30016001

� FLR = 0x00000024�� Frame length = 37 wordsFrame length = 37 words

�� 1,184 bits 1,184 bits ÷÷ 32 bits/word32 bits/word� COR Write 0x30012001

� COR Write 0x00003FE5� IDCODE Write 0x3001C001

Xilinx ASCII BitstreamCreated by Bitstream I.32Design name: s3mod7.ncdArchitecture: spartan3Part: 3s50tq144Date: Tue Sep 04 15:50:09 2007Bits: 439264111111111111111111111111111111111010101010011001010101010110011000110000000000001000000000000001000000000000000000000000000001110011000000000001011000000000000100000000000000000000000000100100

C. Stroud 9/07 FPGAs 43

� IDCODE Write 0x3001C001� Device ID = 0x0140D093 (3S50)

� MASK Write 0x3000C001� MASK = 0x00000000

� CMD Write 0x30008001� Switch CCLK 0x00000009

� FAR Write 0x30002001� FAR = 0x00000000 (full config)

� CMD Write 0x30008001� Write CFG 0x00000001

� FDRI Write 0x30004000� # words to write 0x50003555

000000000000000000000000001001000011000000000001001000000000000101000000000000000011111111100101001100000000000111000000000000010000000101000000110100001001001100110000000000001100000000000001000000000000000000000000000000000011000000000000100000000000000100000000000000000000000000001001001100000000000000100000000000010000000000000000000000000000000000110000000000001000000000000001000000000000000000000000000000010011000000000000010000000000000001010000000000000011010101010101start of actual configuration data

Page 44: Outline - Auburn Universitystrouce/class/elec4200/FPGAs.pdf · Programmable systemProgrammable system--oonn--chip chip. Programming Technologies PLAs were mask programmable ... FPGA

Partial Reconfiguration ExamplePartial Reconfiguration Example

� Dummy Word 0xFFFFFFFF� Synchronization Word 0xAA995566� CMD Write 0x30008001

� Reset CRC 0x00000007� IDCODE Write 0x3001C001

� Device ID = 0x0140D093 (3S50) � COR Write 0x30012001

� COR Write Packet Data 0x00003FE5� CMD Write 0x30008001

� Shutdown 0x0000000B

……Bits: Bits: 26656266561111111111111111111111111111111111111111111111111111111111111111101010101001100101010101011001101010101010011001010101010110011000110000000000001000000000000001001100000000000010000000000000010000000000000000000000000000011100000000000000000000000000000111001100000000000111000000000000010011000000000001110000000000000100000001010000001101000010010011000000010100000011010000100100110011000000000001001000000000000100110000000000010010000000000001010000000000000000111111111001010100000000000000001111111110010100110000000000001000000000000001001100000000000010000000000000010000000000000000000000000000101100000000000000000000000000001011

C. Stroud 9/07 FPGAs 44

� Shutdown 0x0000000B� CRC Write 0x30000001

� CRC = 0x00002CE9� CMD Write 0x30008001

� AGhigh 0x00000008� CMD Write 0x30008001

� WCFG 0x00000001� FAR Write 0x30002001

� FAR = 0x00080000 (partial config)� Part Reconfig Reg Write 0x3001E001

� Null 0x00000000� FDRI Write 0x300042E4

� #words to write 0x000002E4

000000000000000000000000000010110000000000000000000000000000101100110000000000000000000000000001001100000000000000000000000000010000000000000000001011001110100100000000000000000010110011101001… 4 NOOPs 0x20000000… 4 NOOPs 0x2000000000110000000000001000000000000001001100000000000010000000000000010000000000000000000000000000100000000000000000000000000000001000001100000000000010000000000000010011000000000000100000000000000100000000000000000000000000000001000000000000000000000000000000010011000000000000001000000000000100110000000000000010000000000001000000000000100000000000000000000000000000001000000000000000000000110000000000011110000000000001001100000000000111100000000000010000000000000000000000000000000000000000000000000000000000000000… 16 NOOPs 0x20000000… 16 NOOPs 0x200000000011000000000000010001100000000000001000010111001000001011100100start of actual configuration datastart of actual configuration data